/* Åstveit – shared tokens, type utilities and buttons.
   Colors/fonts only via Elementor globals: var(--e-global-…). */

body{
  --as-side:100px;
  --as-radius:20px;
  --as-radius-lg:28px;
  --as-section-y:clamp(80px, 9vw, 130px);
  --as-ftr-ridge:clamp(70px, 9vw, 150px); /* footer wave height (overlaps last section) */
  --as-shadow:0 24px 60px -30px color-mix(in srgb, var(--e-global-color-dark) 45%, transparent);
}
@media (max-width:1440px){ body{ --as-side:64px; } }
@media (max-width:1024px){ body{ --as-side:40px; } }
@media (max-width:640px){ body{ --as-side:20px; } }

html.as-text-large{ font-size:112.5%; } /* «Større tekst» */
html{ scroll-behavior:smooth; }

[class^="as-"],[class^="as-"] *,[class^="as-"] *::before,[class^="as-"] *::after{ box-sizing:border-box; }
[class^="as-"] img,[class^="as-"] video{ display:block; max-width:100%; }
[class^="as-"] svg{ display:block; }
.as-sr-only{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

.as-wrap{ width:100%; padding-inline:var(--as-side); position:relative; z-index:1; }

.as-section{ font-family:var(--e-global-typography-text-font-family); color:var(--e-global-color-text); -webkit-font-smoothing:antialiased; }
.as-section :focus-visible{ outline:3px solid var(--e-global-color-secondary); outline-offset:3px; border-radius:6px; }
.as-section.as-on-dark :focus-visible{ outline-color:var(--e-global-color-surface); }
.as-section p{ margin:0 0 1em; max-width:62ch; }
.as-section a{ color:var(--e-global-color-text); text-underline-offset:.2em; }

/* Typography utilities — each maps to one Elementor Global Font */
.as-t-h1,.as-t-h2,.as-t-h3,.as-t-h4{ margin:0 0 .5em; color:var(--e-global-color-text); }
.as-t-h1{ font-family:var(--e-global-typography-h1-font-family); font-size:var(--e-global-typography-h1-font-size); font-weight:var(--e-global-typography-h1-font-weight); line-height:var(--e-global-typography-h1-line-height); letter-spacing:var(--e-global-typography-h1-letter-spacing); }
.as-t-h2{ font-family:var(--e-global-typography-h2-font-family); font-size:var(--e-global-typography-h2-font-size); font-weight:var(--e-global-typography-h2-font-weight); line-height:var(--e-global-typography-h2-line-height); letter-spacing:var(--e-global-typography-h2-letter-spacing); }
.as-t-h3{ font-family:var(--e-global-typography-h3-font-family); font-size:var(--e-global-typography-h3-font-size); font-weight:var(--e-global-typography-h3-font-weight); line-height:var(--e-global-typography-h3-line-height); letter-spacing:var(--e-global-typography-h3-letter-spacing); }
.as-t-h4{ font-family:var(--e-global-typography-h4-font-family); font-size:var(--e-global-typography-h4-font-size); font-weight:var(--e-global-typography-h4-font-weight); line-height:var(--e-global-typography-h4-line-height); letter-spacing:var(--e-global-typography-h4-letter-spacing); }
.as-t-text{ font-family:var(--e-global-typography-text-font-family); font-size:var(--e-global-typography-text-font-size); font-weight:var(--e-global-typography-text-font-weight); line-height:var(--e-global-typography-text-line-height); }
.as-t-bodylg{ font-family:var(--e-global-typography-bodylg-font-family); font-size:var(--e-global-typography-bodylg-font-size); font-weight:var(--e-global-typography-bodylg-font-weight); line-height:var(--e-global-typography-bodylg-line-height); }
.as-t-label{ font-family:var(--e-global-typography-label-font-family); font-size:var(--e-global-typography-label-font-size); font-weight:var(--e-global-typography-label-font-weight); }
.as-t-secondary{ font-family:var(--e-global-typography-secondary-font-family); font-size:var(--e-global-typography-secondary-font-size); font-weight:var(--e-global-typography-secondary-font-weight); line-height:var(--e-global-typography-secondary-line-height); }

/* Buttons */
.as-section .as-btn{
  display:inline-flex; align-items:center; gap:.6em; min-height:56px; padding:.8em 1.6em; margin:0;
  border-radius:999px; border:2px solid transparent; text-decoration:none; cursor:pointer;
  font-family:var(--e-global-typography-accent-font-family); font-size:var(--e-global-typography-accent-font-size);
  font-weight:var(--e-global-typography-accent-font-weight); line-height:var(--e-global-typography-accent-line-height);
  transition:background-color .2s, color .2s, border-color .2s;
}
.as-section .as-btn svg{ width:20px; height:20px; flex:none; }
.as-section .as-btn--primary{ background:var(--e-global-color-primary); color:var(--e-global-color-surface); }
.as-section .as-btn--primary:hover{ background:var(--e-global-color-secondary); color:var(--e-global-color-surface); }
.as-section .as-btn--light{ background:var(--e-global-color-surface); color:var(--e-global-color-text); }
.as-section .as-btn--light:hover{ background:var(--e-global-color-accent); color:var(--e-global-color-text); }
.as-section .as-btn--ghost{ border-color:color-mix(in srgb, var(--e-global-color-surface) 75%, transparent); color:var(--e-global-color-surface); background:color-mix(in srgb, var(--e-global-color-surface) 8%, transparent); }
.as-section .as-btn--ghost:hover{ background:color-mix(in srgb, var(--e-global-color-surface) 20%, transparent); border-color:var(--e-global-color-surface); color:var(--e-global-color-surface); }
.as-section .as-btn--outline{ border-color:var(--e-global-color-primary); color:var(--e-global-color-text); background:transparent; }
.as-section .as-btn--outline:hover{ background:var(--e-global-color-primary); color:var(--e-global-color-surface); }

/* Mountain ridges between sections */
.as-ridges{ position:absolute; left:0; width:100%; height:clamp(70px, 9vw, 150px); pointer-events:none; z-index:1; }

/* Soft mist shapes */
.as-mist{ position:absolute; border-radius:50%; pointer-events:none; z-index:0; }
.as-mist--blue{ background:radial-gradient(closest-side, color-mix(in srgb, var(--e-global-color-primary) 18%, transparent), color-mix(in srgb, var(--e-global-color-primary) 7%, transparent) 55%, transparent); }
.as-mist--light{ background:radial-gradient(closest-side, color-mix(in srgb, var(--e-global-color-surface) 95%, transparent), transparent); }

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  [class^="as-"] *, [class^="as-"] *::before, [class^="as-"] *::after{ transition-duration:.01ms !important; animation-duration:.01ms !important; }
}

/* Shared lists (sub-pages): soft leaf check + line bar. Also applied to plain <ul> inside .as-rich--checks */
.as-checks,.as-rich--checks ul:not([class]){ list-style:none; margin:0; padding:0; display:grid; gap:16px; }
.as-checks li,.as-rich--checks ul:not([class]) li{ position:relative; padding-left:52px; min-height:34px; line-height:1.55; padding-top:3px; font-weight:600; color:var(--e-global-color-text); }
.as-checks li::before,.as-rich--checks ul:not([class]) li::before{ content:""; position:absolute; left:0; top:0; width:34px; height:34px; border-radius:50% 50% 50% 8px; background:var(--e-global-color-accent); }
.as-checks li::after,.as-rich--checks ul:not([class]) li::after{ content:""; position:absolute; left:8px; top:8px; width:19px; height:19px; background:var(--e-global-color-primary);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4L18.5 8'/%3E%3C/svg%3E") center / contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4L18.5 8'/%3E%3C/svg%3E") center / contain no-repeat; }
.as-bars,.as-rich--bars ul:not([class]){ list-style:none; margin:0; padding:0; display:grid; gap:14px; }
.as-bars li,.as-rich--bars ul:not([class]) li{ position:relative; padding-left:40px; line-height:1.6; color:var(--e-global-color-text); }
.as-bars li::before,.as-rich--bars ul:not([class]) li::before{ content:""; position:absolute; left:0; top:.8em; width:24px; height:4px; border-radius:4px; background:linear-gradient(90deg, var(--e-global-color-primary) 0%, color-mix(in srgb, var(--e-global-color-primary) 45%, var(--e-global-color-surface)) 100%); }

/* Last section on a page: keep its normal bottom space, plus room for the footer wave that hangs over it. */
[data-elementor-type="wp-page"] > .e-con:last-child .as-section:last-child,
[data-elementor-type="wp-page"] > .elementor-section:last-child .as-section:last-child{ padding-bottom:calc(var(--as-section-y) + var(--as-ftr-ridge)) !important; }

/* GDPR Cookie Compliance (moove) */
#moove_gdpr_cookie_info_bar .moove-gdpr-info-bar-content {
    display: block !important;
}

#moove_gdpr_cookie_info_bar .moove-gdpr-button-holder {
    display: block !important;
    padding-left: 0 !important;
    margin-top: 30px;
}

#moove_gdpr_cookie_info_bar .moove-gdpr-cookie-notice p,
#moove_gdpr_cookie_info_bar .moove-gdpr-info-bar-content,
#moove_gdpr_cookie_info_bar button.mgbutton,
#moove_gdpr_cookie_info_bar .change-settings-button {
    font-size: 19px !important;
}

#moove_gdpr_cookie_info_bar .moove-gdpr-cookie-notice p:first-of-type {
    padding-bottom: 25px !important;
    font-size: 21px !important;
}

#moove_gdpr_cookie_info_bar button.mgbutton {
    background-color: #22b14c;
    width: 250px;
    border-radius: 5px !important;
}

#moove_gdpr_cookie_info_bar .change-settings-button {
    margin-top: 20px;
}

#moove_gdpr_cookie_info_bar {
    padding: 30px 10px !important;
    border: none !important;
}

/* Settings link: no border on click, keep keyboard focus ring */
#moove_gdpr_cookie_info_bar .change-settings-button,
#moove_gdpr_cookie_info_bar .change-settings-button:focus,
#moove_gdpr_cookie_info_bar .change-settings-button:active {
    outline: none !important;
    box-shadow: none !important;
    border: 0 !important;
    -webkit-tap-highlight-color: transparent;
}

#moove_gdpr_cookie_info_bar .change-settings-button:focus-visible {
    outline: 2px solid currentColor !important;
    outline-offset: 3px;
}

@media only screen and (max-width: 768px) {
    #moove_gdpr_cookie_info_bar .moove-gdpr-info-bar-content button {
        text-wrap-mode: wrap;
        text-align: start;
    }

    #moove_gdpr_cookie_info_bar .moove-gdpr-info-bar-container {
        max-width: 350px;
    }

    .banner-color {
        background-color: #000000;
    }
}
/* /GDPR Cookie Compliance (moove) */
