/* Motion layer 2026-10-20 */
.gmap{display:block;width:100%;aspect-ratio:4/3.4;min-height:340px;border:0;filter:saturate(.9) contrast(1.02)}
.map-frame{position:relative}
.map-open{position:absolute;right:.75rem;bottom:.75rem;background:#26291c;color:#fff;font-size:.85rem;font-weight:600;padding:.5rem .85rem;border-radius:999px;text-decoration:none;box-shadow:0 6px 18px rgba(0,0,0,.2);transition:transform .3s}
.map-open:hover{transform:translateY(-2px)}
.cert{margin:0;display:flex;flex-direction:column;align-items:center;gap:.3rem}
.cert figcaption{font-size:.75rem;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums}
.hero{overflow:hidden}
[data-parallax]{will-change:transform}
.about-visual img[data-parallax],.cta-band-media img[data-parallax]{transform:translate3d(0,var(--py,0),0) scale(1.18)}
.hero-media[data-parallax]{transform:translate3d(0,var(--py,0),0)}
.hero-copy{transform:translate3d(0,var(--hy,0),0);opacity:var(--ho,1)}
#progress{background:linear-gradient(90deg,#B0BA75,#d8e0a4)}
/* Reveal variants */
.reveal-ready [data-reveal]{filter:blur(6px);transition:opacity .9s cubic-bezier(.22,1,.36,1),transform 1s cubic-bezier(.22,1,.36,1),filter .9s ease,clip-path 1.2s cubic-bezier(.77,0,.18,1);transition-delay:calc(var(--i,0)*90ms)}
.reveal-ready [data-reveal].is-in{filter:none}
.reveal-ready [data-reveal="left"]{transform:translateX(-40px)}
.reveal-ready [data-reveal="right"]{transform:translateX(40px)}
.reveal-ready [data-reveal="scale"]{transform:scale(.92) translateY(30px)}
.reveal-ready [data-reveal="clip"]{opacity:1;filter:none;transform:none;clip-path:inset(18% 10% 18% 10% round 24px)}
.reveal-ready [data-reveal="clip"].is-in{clip-path:inset(0 0 0 0 round 0)}
.reveal-ready [data-reveal].is-in{transform:none}
/* Stagger children */
.reveal-ready [data-stagger]>*{opacity:0;transform:translateY(26px) scale(.98);transition:opacity .8s cubic-bezier(.22,1,.36,1),transform .9s cubic-bezier(.22,1,.36,1);transition-delay:calc(var(--si,0)*110ms + 120ms)}
.reveal-ready [data-stagger].is-in>*{opacity:1;transform:none}
/* Hero headline line rise */
.reveal-ready .hero h1 .ln{display:block;overflow:hidden}
/* Section transitions: heading underline + soft rise */
.reveal-ready .sec-head .eyebrow{position:relative}
.reveal-ready .sec-head .eyebrow::after{content:"";display:block;height:2px;width:56px;margin-top:.5rem;background:#B0BA75;transform:scaleX(0);transform-origin:left;transition:transform 1s cubic-bezier(.77,0,.18,1) .3s}
.reveal-ready .sec-head.is-in .eyebrow::after{transform:scaleX(1)}
.reveal-ready main>section,.reveal-ready body>section{--sp:1}
.sec-veil{transform:translate3d(0,calc((1 - var(--sp,1))*60px),0)}
@media (hover:hover){.svc,.bem-card,.loc{transition:transform .5s cubic-bezier(.22,1,.36,1),box-shadow .5s}.svc:hover,.bem-card:hover,.loc:hover{transform:translateY(-6px);box-shadow:0 22px 50px rgba(38,41,28,.14)}}
@media (prefers-reduced-motion:reduce){
  [data-parallax],.hero-copy,.sec-veil{transform:none!important;opacity:1!important}
  .about-visual img[data-parallax],.cta-band-media img[data-parallax]{transform:none!important}
  [data-reveal],[data-stagger]>*{opacity:1!important;transform:none!important;filter:none!important;clip-path:none!important;transition:none!important}
}
/* Work areas (Byggeri / Industri) */
.svc-link{color:inherit;text-decoration:none}.svc-link:hover{color:var(--green)}
.wa-sec{scroll-margin-top:70px;position:relative;overflow:hidden}
.wa-sec--light{background:var(--bg-2)}
.wa-sec--dark{background:var(--olive);color:#f3f5ea}
.wa-sec--dark .h2,.wa-sec--dark .h3{color:#fff}.wa-sec--dark .lead{color:rgba(243,245,234,.75)}
.wa-sec::before{content:"";position:absolute;width:520px;height:520px;right:-160px;top:-160px;border-radius:50%;background:radial-gradient(closest-side,rgba(176,186,117,.22),transparent);pointer-events:none}
.wa-grid{display:grid;gap:1.1rem;margin-top:2rem}
@media(min-width:800px){.wa-grid{grid-template-columns:repeat(3,1fr)}}
.wa{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem 1.5rem 1.4rem;overflow:hidden;transition:transform .5s cubic-bezier(.22,1,.36,1),box-shadow .5s,border-color .4s}
.wa-sec--dark .wa{background:rgba(255,255,255,.04);border-color:rgba(176,186,117,.22)}
.wa::after{content:"";position:absolute;left:0;top:0;height:3px;width:100%;background:var(--green);transform:scaleX(0);transform-origin:left;transition:transform .8s cubic-bezier(.77,0,.18,1)}
.wa:hover::after,[data-stagger].is-in>.wa::after{transform:scaleX(1)}
.wa-num{display:inline-flex;width:2.4rem;height:2.4rem;align-items:center;justify-content:center;border-radius:50%;background:var(--green);color:var(--olive);font-weight:700;font-size:.85rem;margin-bottom:1rem}
.wa p{color:var(--muted);font-size:.95rem;margin:.5rem 0 1rem}.wa-sec--dark .wa p{color:rgba(243,245,234,.72)}
.wa-tags{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.4rem}
.wa-tags li{font-size:.75rem;font-weight:600;padding:.3rem .65rem;border-radius:999px;background:rgba(176,186,117,.18);color:inherit}
@media(hover:hover){.wa:hover{transform:translateY(-6px);box-shadow:0 22px 50px rgba(0,0,0,.14);border-color:var(--green)}}
.wa-note{margin-top:1.5rem;display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between;padding:1.2rem 1.4rem;border-radius:var(--radius);border:1px dashed var(--green)}
.wa-note p{margin:0;max-width:60ch}.wa-note strong{display:block;margin-bottom:.2rem}
.wa-actions{display:flex;gap:.6rem;flex-wrap:wrap}
.btn--ghost-dark{background:transparent;border:1.5px solid currentColor;color:inherit}
.wa-back{margin:1.2rem 0 0;font-size:.9rem}.wa-back a{color:inherit;opacity:.7}
.wa-sec.is-target .wa-grid{animation:waPulse 1.2s ease}
@keyframes waPulse{0%{transform:scale(.985);opacity:.6}100%{transform:none;opacity:1}}
@media(prefers-reduced-motion:reduce){.wa-sec.is-target .wa-grid{animation:none}.wa::after{transition:none}}
html.lenis,html.lenis body{height:auto;scroll-behavior:auto!important}
.di-member{margin-top:1.6rem;display:flex;flex-wrap:wrap;align-items:center;gap:1.1rem 1.4rem;padding:1.1rem 1.3rem;background:#fff;border:1px solid var(--line);border-left:4px solid var(--green);border-radius:var(--radius);box-shadow:0 14px 36px rgba(38,41,28,.08);transition:transform .5s cubic-bezier(.22,1,.36,1),box-shadow .5s}
@media(hover:hover){.di-member:hover{transform:translateY(-4px);box-shadow:0 22px 50px rgba(38,41,28,.14)}}
.di-logo img{display:block;height:40px;width:auto}
.di-text{flex:1;min-width:220px;font-size:.9rem;color:var(--muted);line-height:1.45}
.di-text strong{display:block;color:var(--olive);font-size:1.05rem;margin:.25rem 0 .2rem}
.di-badge{display:inline-block;font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--olive);background:rgba(176,186,117,.3);padding:.2rem .55rem;border-radius:999px}
/* Lokationer: HQ badge + flags (flags sit in .loc-cards grid => same width as the Danmark card) */
.loc-hq{display:inline-block;margin-left:.35rem;font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;background:var(--olive);color:var(--green);padding:.25rem .6rem;border-radius:999px;vertical-align:middle}
.loc-flags{display:grid;grid-template-columns:1fr 1fr;gap:1rem;width:100%;margin:0}
.flag{margin:0;position:relative;border-radius:var(--radius-sm);overflow:hidden;aspect-ratio:3/2;box-shadow:0 14px 34px rgba(38,41,28,.12);border:1px solid var(--line);transform-origin:left center}
.flag svg{display:block;width:100%;height:100%}
.flag figcaption{position:absolute;left:.6rem;bottom:.6rem;background:rgba(38,41,28,.85);color:#fff;font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:.25rem .6rem;border-radius:999px}
.flag::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.35) 45%,transparent 60%);transform:translateX(-120%);pointer-events:none}
.loc-cards.is-in .flag::after{animation:flagShine 2.4s 1s ease-in-out}
.loc-cards.is-in .flag{animation:flagIn .9s cubic-bezier(.22,1,.36,1) both}.loc-cards.is-in .flag--pl{animation-delay:.15s}
@keyframes flagIn{from{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:none}}
@keyframes flagShine{to{transform:translateX(120%)}}
@keyframes flagWave{0%,100%{transform:skewY(0) scaleX(1)}50%{transform:skewY(-1.2deg) scaleX(1.02)}}
@media(hover:hover){.flag{transition:transform .5s cubic-bezier(.22,1,.36,1)}.flag:hover{transform:translateY(-4px)}}
@media(prefers-reduced-motion:reduce){.flag svg,.flag::after{animation:none!important}}
