/* Horizon CMS – public theme "Goldene Stunde". Colours come ONLY from the design tokens in /theme.css (--c-*). */

@font-face{font-family:"Fraunces";src:url("../fonts/fraunces.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"Fraunces";src:url("../fonts/fraunces-italic.woff2") format("woff2");font-weight:100 900;font-style:italic;font-display:swap}
@font-face{font-family:"DM Sans";src:url("../fonts/dm-sans.woff2") format("woff2");font-weight:100 1000;font-style:normal;font-display:swap}
@font-face{font-family:"Nunito";src:url("../fonts/nunito.woff2") format("woff2");font-weight:200 1000;font-style:normal;font-display:swap}
@font-face{font-family:"Inter";src:url("../fonts/inter.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"Space Grotesk";src:url("../fonts/space-grotesk.woff2") format("woff2");font-weight:300 700;font-style:normal;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url("../fonts/jetbrains-mono.woff2") format("woff2");font-weight:100 800;font-style:normal;font-display:swap}

:root{
  --gutter:clamp(1.1rem,4.5vw,2.25rem);--maxw:74rem;--radius:.35rem;--radius-lg:.4rem;
  --focus-ring:var(--c-focus);
  --field-border:color-mix(in srgb,var(--c-text) 50%,var(--c-surface));
  --shadow:0 2px 4px color-mix(in srgb,var(--c-primary) 6%,transparent),0 18px 34px -24px color-mix(in srgb,var(--c-primary) 55%,transparent);
  --ease:cubic-bezier(.2,.7,.2,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:7.5rem;scroll-behavior:smooth}
body{margin:0;background:var(--c-bg);color:var(--c-text);font-family:var(--font-body);font-size:1rem;line-height:1.7;overflow-wrap:break-word;hyphens:manual;text-rendering:optimizeLegibility;overflow-x:clip}
img,svg{max-inline-size:100%;block-size:auto}
h1,h2,h3,h4{font-family:var(--font-heading);line-height:1.08;letter-spacing:-.01em;margin:0 0 .55em;text-wrap:balance;font-weight:300}
h1{font-size:clamp(2rem,1.3rem + 3vw,3.4rem)}h2{font-size:clamp(1.7rem,1.2rem + 1.8vw,2.5rem)}h3{font-size:1.2rem;font-weight:500;letter-spacing:0}
p{margin:0 0 1em}
a{color:var(--c-link);text-decoration-thickness:.08em;text-underline-offset:.2em}a:hover{color:color-mix(in srgb,var(--c-link) 70%,var(--c-text))}
:focus{outline:none}:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px;border-radius:4px}main:focus{outline:none}
.visually-hidden{position:absolute!important;inline-size:1px;block-size:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.container{inline-size:min(100% - 2*var(--gutter),var(--maxw));margin-inline:auto}
.container--text{inline-size:min(100% - 2*var(--gutter),var(--maxw))}.container--text>*{max-inline-size:52rem}
.container--narrow{inline-size:min(100% - 2*var(--gutter),44rem)}
.skip-link{position:absolute;inset-inline-start:var(--gutter);inset-block-start:-4rem;z-index:200;background:var(--c-btn-bg);color:var(--c-btn-text);padding:.75rem 1.1rem;border-radius:.6rem;text-decoration:none;font-weight:600}.skip-link:focus{inset-block-start:.75rem}
.preview-bar{background:var(--c-warning);color:var(--c-on-warning);padding:.55rem var(--gutter);text-align:center;font-weight:600;font-size:.95rem;position:sticky;inset-block-start:0;z-index:120}

.on-dark{--focus-ring:var(--c-on-primary);color:var(--c-on-primary)}.on-dark a{color:inherit}
.on-dark .btn,.on-dark-btn{--b-bg:var(--c-btn-bg);--b-fg:var(--c-btn-text);--b-hbg:var(--c-on-primary);--b-hfg:var(--c-primary)}

/* Buttons */
.btn{--b-bg:var(--c-btn-bg);--b-fg:var(--c-btn-text);--b-hbg:var(--c-btn-hover-bg);--b-hfg:var(--c-btn-hover-text);
  display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-block-size:2.9rem;padding:.65rem 1.5rem;border-radius:.2rem;border:2px solid transparent;background:var(--b-bg);color:var(--b-fg);font:600 .82rem/1.2 var(--font-body);letter-spacing:.06em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:background-color .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease);text-align:center}
.btn:hover{background:var(--b-hbg);color:var(--b-hfg)}
.btn--dark{--b-bg:var(--c-primary);--b-fg:var(--c-on-primary);--b-hbg:var(--c-btn-bg);--b-hfg:var(--c-btn-text)}
.on-dark .btn--ghost,.btn--ghost{background:transparent;color:inherit;border-color:color-mix(in srgb,currentColor 70%,transparent)}
.on-dark .btn--ghost:hover,.btn--ghost:hover{background:var(--c-on-primary);color:var(--c-primary);border-color:var(--c-on-primary)}
.btn--small{min-block-size:2.4rem;padding:.4rem 1.1rem;font-size:.78rem}

/* Top bar */
.topbar{background:var(--c-primary);color:var(--c-on-primary);font-size:.8rem;--focus-ring:var(--c-on-primary)}
.topbar a{color:inherit;text-decoration:none}.topbar a:hover{text-decoration:underline}
.topbar__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.2rem 1.4rem;min-block-size:2.5rem;padding-block:.25rem}
.topbar__info,.topbar__social{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:.2rem 1.4rem}
.topbar__info a{display:inline-flex;align-items:center;gap:.5rem;min-block-size:2rem}
.topbar__ico{inline-size:1rem;block-size:1rem;color:var(--c-accent);flex:none}
.topbar__end{display:flex;align-items:center;gap:.9rem}.topbar__social{gap:.35rem}
.social__link{display:grid;place-items:center;inline-size:2rem;block-size:2rem;border-radius:.2rem;transition:background-color .2s}.topbar .social__link:hover{background:color-mix(in srgb,var(--c-on-primary) 18%,transparent);text-decoration:none}

/* Header */
.site-header{position:sticky;inset-block-start:0;z-index:100;background:var(--c-header-bg);color:var(--c-header-text);--focus-ring:var(--c-focus);border-block-end:1px solid var(--c-border)}
.has-preview .site-header{inset-block-start:2.9rem}
.header__inner{display:flex;align-items:center;gap:.5rem;min-block-size:5rem;padding-block:.4rem}
.brand{display:inline-flex;align-items:center;color:inherit;text-decoration:none;margin-inline-end:auto;min-inline-size:0}.brand__img{max-block-size:4.25rem;max-inline-size:min(100%,19rem);inline-size:auto;block-size:auto}
@media (min-width:62em){.brand__img{max-block-size:5.75rem;max-inline-size:26rem}.header__inner{min-block-size:7rem}}
.wordmark{display:inline-flex;align-items:center;gap:.7rem;font:600 1.25rem/1.15 var(--font-heading);letter-spacing:-.01em;text-transform:uppercase}.wordmark__mark{flex:none;inline-size:2.5rem;block-size:2.5rem}.wordmark__text{max-inline-size:20rem;overflow-wrap:anywhere}
.wm-arc,.wm-line{stroke:var(--c-btn-bg)}.wm-line{opacity:.55}.wm-sun{fill:var(--c-btn-bg)}
.header__panel{display:none;align-items:center;gap:1rem}
/* Navigation: links, drop-down and mega menu */
.nav__list{list-style:none;margin:0;padding:0;display:flex;gap:.1rem;flex-wrap:wrap}
.nav__item{position:relative;display:flex;flex-wrap:wrap;align-items:center}
.nav__link{display:block;position:relative;padding:.7rem .9rem;color:inherit;text-decoration:none;font-weight:500;font-size:.9rem;transition:color .2s}
a.nav__link:hover,.nav__item.is-current>.nav__link,.nav__more--label:hover .nav__link{color:var(--c-link)}
.nav__more{display:inline-grid;place-items:center;inline-size:1.9rem;block-size:2.4rem;padding:0;border:0;background:none;color:inherit;cursor:pointer;margin-inline-start:-.5rem}
.nav__more::before{content:"";inline-size:.45rem;block-size:.45rem;border-inline-end:2px solid currentColor;border-block-end:2px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .2s}
.nav__more[aria-expanded=true]::before{transform:rotate(-135deg) translateY(-1px)}
.nav__more--label{inline-size:auto;margin:0;display:inline-flex;align-items:center;gap:.1rem;padding-inline-end:.6rem}.nav__more--label .nav__link{padding-inline-end:.4rem}
.nav__panel{display:none;inline-size:100%;color:var(--c-text)}
.nav__panel a{display:block;color:inherit;text-decoration:none;padding:.55rem .9rem;font-size:.92rem}.nav__panel a:hover{color:var(--c-link)}
.nav__panel a[aria-current=page]{color:var(--c-link);font-weight:600}
.nav__sub{list-style:none;margin:0;padding:0}
.nav__cols{list-style:none;margin:0;padding:0;display:grid;gap:1rem 2rem}
.nav__col>ul{list-style:none;margin:0;padding:0}
.nav__col-h{display:block;padding:.4rem .9rem;font:600 .78rem/1.3 var(--font-body);letter-spacing:.09em;text-transform:uppercase;color:var(--c-muted);border-block-end:2px solid var(--c-btn-bg);margin-block-end:.4rem;inline-size:max-content;max-inline-size:100%}
a.nav__col-h{color:var(--c-text)}a.nav__col-h:hover{color:var(--c-link)}
html:not(.js) .nav__panel{display:block}html:not(.js) .nav__more{display:none}
.js .nav__item.is-open>.nav__panel{display:block}
.nav-toggle{display:inline-flex;align-items:center;justify-content:center;inline-size:2.9rem;block-size:2.9rem;border:1px solid var(--c-border);border-radius:.2rem;background:transparent;color:inherit;cursor:pointer}
.nav-toggle svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}.nav-toggle path{transition:transform .25s var(--ease),opacity .2s;transform-origin:center;transform-box:fill-box}
.nav-toggle[aria-expanded=true] .bar1{transform:translateY(5px) rotate(45deg)}.nav-toggle[aria-expanded=true] .bar2{opacity:0}.nav-toggle[aria-expanded=true] .bar3{transform:translateY(-5px) rotate(-45deg)}
html:not(.js) .header__inner{flex-wrap:wrap}html:not(.js) .header__panel{display:flex;flex-direction:column;align-items:flex-start;inline-size:100%;order:5;padding-block-end:1rem}html:not(.js) .nav-toggle{display:none}
.js .header__inner{flex-wrap:wrap}.js .header__panel{order:5;inline-size:100%;padding-block:.2rem 1rem;flex-direction:column;align-items:stretch}.js .header__panel:not(.is-open){display:none}.js .header__panel.is-open{display:flex}
.js .nav__list{flex-direction:column}.js .nav__item{border-block-end:1px solid var(--c-border)}.js .nav__link{padding:.85rem .2rem;font-size:1.02rem}.js .nav__item.has-sub>.nav__link{flex:1}.js .nav__more{inline-size:2.6rem;margin:0}.js .nav__more--label{flex:1;justify-content:space-between}.js .nav__panel{padding:0 0 .6rem .8rem}.js .header__panel .btn{align-self:flex-start}.nav__cols{grid-template-columns:1fr}
.lang{position:relative}
.lang__menu summary{list-style:none;display:inline-flex;align-items:center;gap:.45rem;min-block-size:2rem;padding:0 .4rem;cursor:pointer;font-size:.8rem;user-select:none}
.lang__menu summary:hover{text-decoration:underline}.lang__menu summary::-webkit-details-marker{display:none}
.lang__menu summary::after{content:"";inline-size:.4rem;block-size:.4rem;border-inline-end:1.5px solid currentColor;border-block-end:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .2s}.lang__menu[open] summary::after{transform:rotate(-135deg) translateY(-1px)}
.lang__list{list-style:none;margin:.3rem 0 0;padding:.3rem;position:absolute;inset-inline-end:0;min-inline-size:10.5rem;background:var(--c-surface);color:var(--c-text);border:1px solid var(--c-border);border-radius:.3rem;box-shadow:var(--shadow);z-index:150;--focus-ring:var(--c-focus)}
.topbar .lang__list a{color:var(--c-text);display:block;padding:.55rem .75rem;border-radius:.2rem;font-size:.9rem}.topbar .lang__list a:hover{background:color-mix(in srgb,var(--c-accent) 14%,var(--c-surface));text-decoration:none}
.topbar .lang__list a[aria-current=true]{font-weight:700;background:color-mix(in srgb,var(--c-accent) 22%,var(--c-surface))}.lang__list a[aria-current=true]::after{content:" \2713"}
@media (min-width:62rem){
  .header__inner{flex-wrap:nowrap}.nav-toggle{display:none!important}
  .header__panel,.js .header__panel,.js .header__panel:not(.is-open),html:not(.js) .header__panel{display:flex;flex-direction:row;align-items:center;inline-size:auto;order:0;padding:0;flex:1;justify-content:flex-end;gap:.8rem}
  .header__panel{align-self:stretch}.nav,.nav__list{block-size:100%}
  .js .nav__list{flex-direction:row}.js .nav__item{border-block-end:0}.js .nav__link{padding:.7rem .9rem;font-size:.9rem}.js .nav__item.has-sub>.nav__link{flex:none}.js .nav__more{inline-size:1.9rem}.js .nav__more--label{flex:none;justify-content:flex-start}.js .nav__panel{padding:0}.brand{margin-inline-end:1rem}
  a.nav__link[aria-current=page]::after,a.nav__link:hover::after{content:"";position:absolute;inset-inline:.9rem;inset-block-end:.55rem;block-size:2px;background:var(--c-btn-bg)}
  .nav__panel{position:absolute;inset-block-start:100%;inset-inline-start:0;inline-size:auto;min-inline-size:15rem;background:var(--c-bg);border:1px solid var(--c-border);border-block-start:3px solid var(--c-btn-bg);box-shadow:var(--shadow);z-index:120;padding:.4rem 0}
  html:not(.js) .nav__panel{display:none}html:not(.js) .nav__item:hover>.nav__panel,html:not(.js) .nav__item:focus-within>.nav__panel{display:block}
  .js .nav__item:hover>.nav__panel{display:block}
  .nav__item.is-mega{position:static}
  .nav__mega{inset-inline:0;inline-size:auto;min-inline-size:0;padding:1.6rem 0 1.8rem;border-inline:0}
  .nav__mega .nav__cols{inline-size:min(100% - 2*var(--gutter),var(--maxw));margin-inline:auto;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr))}
  .nav__mega .nav__col>ul a{padding-inline:.9rem}
}

/* Hero: world map on a gradient */
.hero{position:relative;isolation:isolate;overflow:visible;min-block-size:clamp(27rem,40vw,38rem);display:flex;align-items:flex-end;
  background:radial-gradient(52rem 26rem at 88% -12%,color-mix(in srgb,var(--c-on-primary) 30%,transparent),transparent 62%),radial-gradient(40rem 22rem at 0% 115%,color-mix(in srgb,var(--c-accent) 40%,transparent),transparent 70%),linear-gradient(115deg,var(--c-primary) 0%,color-mix(in srgb,var(--c-secondary) 70%,var(--c-primary)) 48%,color-mix(in srgb,var(--c-secondary) 62%,var(--c-on-primary)) 100%)}
.hero:not(.hero--none){margin-block-end:3.5rem}.hero:not(.hero--none) .hero__card{margin-block-end:-3.5rem}
.hero--none{min-block-size:0;padding-block:3.5rem}.hero--none .hero__card{background:transparent;padding:0;max-inline-size:44rem}
.hero__bg{position:absolute;inset:0;z-index:-2;overflow:hidden}.hero__bg>*{position:absolute;inset:0;inline-size:100%;block-size:100%}
.hero__img{object-fit:cover;object-position:center 40%}
.hero--image::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,color-mix(in srgb,var(--c-primary) 70%,transparent),transparent 70%)}
.worldmap{position:absolute;inset:0;pointer-events:none;container-type:size}
.worldmap__stage{position:absolute;inset-inline-end:2%;inset-block-start:50%;inline-size:min(98cqw,200.6cqh);aspect-ratio:2000/997;transform:translateY(-50%);--wm-dot:calc(min(98cqw,200.6cqh) / 128)}
.worldmap__stage>*{position:absolute;inset:0}
.worldmap__land,.worldmap__dots,.worldmap__sheen,.worldmap__shadow i,.worldmap__glow i{display:block;-webkit-mask:url("../img/world-map.svg") center/100% 100% no-repeat;mask:url("../img/world-map.svg") center/100% 100% no-repeat}
.worldmap__shadow i,.worldmap__glow i{position:absolute;inset:0}
.worldmap__shadow{filter:blur(10px);transform:translate(.4%,1.6%);opacity:.5}.worldmap__shadow i{background:#000}
.worldmap__glow{filter:blur(22px);opacity:.5}.worldmap__glow i{background:linear-gradient(100deg,color-mix(in srgb,var(--c-accent) 85%,transparent),color-mix(in srgb,var(--c-on-primary) 55%,transparent) 70%)}
.worldmap__land{background:linear-gradient(150deg,color-mix(in srgb,var(--c-on-primary) 16%,transparent),color-mix(in srgb,var(--c-primary) 30%,transparent))}
.worldmap__dots{background:radial-gradient(circle closest-side,var(--c-on-primary) 0 24%,transparent 50%) 0 0/var(--wm-dot) var(--wm-dot),radial-gradient(circle closest-side,var(--c-on-primary) 0 24%,transparent 50%) calc(var(--wm-dot) / 2) calc(var(--wm-dot) / 2)/var(--wm-dot) var(--wm-dot);
  -webkit-mask:url("../img/world-map.svg") center/100% 100% no-repeat,radial-gradient(75% 95% at 62% 42%,#000 25%,rgba(0,0,0,.35) 100%);-webkit-mask-composite:source-in;
  mask:url("../img/world-map.svg") center/100% 100% no-repeat,radial-gradient(75% 95% at 62% 42%,#000 25%,rgba(0,0,0,.35) 100%);mask-composite:intersect}
.worldmap__sheen{background:linear-gradient(105deg,transparent 38%,color-mix(in srgb,var(--c-accent) 55%,var(--c-on-primary)) 50%,transparent 62%) 160% 0/260% 100% no-repeat;opacity:.55;mix-blend-mode:screen}
.worldmap__net{inline-size:100%;block-size:100%;overflow:visible}
.wm-arc{fill:none;stroke:color-mix(in srgb,var(--c-accent) 55%,var(--c-on-primary));stroke-width:2.4;opacity:.8}
.wm-run{fill:none;stroke:var(--c-accent);stroke-width:5;stroke-linecap:round;stroke-dasharray:7 100;stroke-dashoffset:7;filter:drop-shadow(0 0 6px var(--c-accent))}
.wm-core{fill:var(--c-accent);stroke:#fff;stroke-width:2.5}.wm-hub .wm-core{fill:#fff;stroke:var(--c-accent);stroke-width:5}.wm-node{filter:drop-shadow(0 0 8px var(--c-accent))}
.wm-ring{fill:none;stroke:var(--c-accent);stroke-width:2;opacity:0;transform-box:fill-box;transform-origin:center}
.worldmap--soft .worldmap__stage{inset-inline-end:auto;inset-inline-start:50%;transform:translate(-50%,-50%)}
.worldmap--soft .worldmap__glow,.worldmap--soft .worldmap__shadow,.worldmap--soft .worldmap__sheen{display:none}
.hero__inner{position:relative;align-self:stretch;display:flex;align-items:flex-end}
.hero__card{max-inline-size:min(100%,31rem);padding:clamp(1.5rem,3vw,2.2rem) clamp(1.4rem,3vw,2.3rem);background:color-mix(in srgb,var(--c-primary) 94%,transparent);color:var(--c-on-primary);box-shadow:0 24px 50px -24px rgba(0,0,0,.55)}
.eyebrow{display:block;margin:0 0 .3rem;font:600 .82rem/1.2 var(--font-body);letter-spacing:.04em;color:color-mix(in srgb,var(--c-accent) 65%,var(--c-on-primary))}
.section .eyebrow{color:var(--c-link)}
.hero__title{margin:0 0 .5em;color:var(--c-on-primary);font-size:clamp(1.9rem,1.2rem + 2.4vw,2.9rem);line-height:1.1;font-weight:500;letter-spacing:-.01em}
.accent{font-style:normal;font-weight:inherit;color:var(--c-accent)}
.hero__lead{font-size:.95rem;line-height:1.65;color:color-mix(in srgb,var(--c-on-primary) 90%,var(--c-primary));margin-block-end:1.5rem}
.hero__actions{display:flex;flex-wrap:wrap;gap:.6rem}
@media (prefers-reduced-motion:no-preference){
  .hero__card{animation:rise .8s var(--ease) both}@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
  .worldmap__stage{animation:mapin 1.6s var(--ease) both}@keyframes mapin{from{opacity:0}to{opacity:1}}
  .worldmap--soft .worldmap__stage{animation:none}
  .worldmap__sheen{animation:wmsheen 11s ease-in-out 1.6s infinite}@keyframes wmsheen{0%{background-position:160% 0}55%,100%{background-position:-60% 0}}
  .worldmap__glow{animation:wmglow 7s ease-in-out infinite alternate}@keyframes wmglow{from{opacity:.38}to{opacity:.62}}
  .wm-run{animation:wmrun 6s linear infinite}@keyframes wmrun{from{stroke-dashoffset:7}to{stroke-dashoffset:-100}}
  .wm-run:nth-of-type(3n){animation-delay:-2s}.wm-run:nth-of-type(3n+1){animation-delay:-4s}.wm-run:nth-of-type(4n){animation-duration:7.5s}
  .wm-ring{animation:wmping 3.6s ease-out infinite}@keyframes wmping{0%{opacity:.8;transform:scale(1)}80%,100%{opacity:0;transform:scale(4.2)}}
  .wm-node:nth-of-type(2n) .wm-ring{animation-delay:-1.2s}.wm-node:nth-of-type(3n) .wm-ring{animation-delay:-2.4s}
}

/* Page head for pages that start with a text block */
.pagehero{position:relative;isolation:isolate;overflow:hidden;padding-block:clamp(2.4rem,5vw,3.6rem);background:radial-gradient(40rem 18rem at 90% -40%,color-mix(in srgb,var(--c-on-primary) 26%,transparent),transparent 65%),linear-gradient(115deg,var(--c-primary),color-mix(in srgb,var(--c-secondary) 72%,var(--c-primary)))}
.pagehero__map{position:absolute;inset:0;z-index:-1;opacity:.22}
.pagehero h1{margin:0;color:var(--c-on-primary);font-size:clamp(1.9rem,1.3rem + 2.4vw,3rem);font-weight:300;max-inline-size:26ch}
.pagehero__rule{display:block;inline-size:4rem;block-size:3px;background:var(--c-accent);margin-block-start:1rem}

/* Sections */
.section{padding-block:clamp(3.5rem,7.5vw,6.25rem)}
.section--tinted{background:color-mix(in srgb,var(--c-border) 52%,var(--c-bg))}
.section--pagebody{padding-block:clamp(2.5rem,5vw,4rem) clamp(2rem,4vw,3rem)}
.section__title{max-inline-size:26ch}.container--text .section__title{max-inline-size:52rem}
.lead{font-size:1.15rem;color:var(--c-muted);line-height:1.58}
.rich{max-inline-size:68ch}.rich,.service__body p,.step__body p,.alert p{hyphens:auto;-webkit-hyphens:auto}
.rich h2{font-size:clamp(1.45rem,1.15rem + 1vw,1.95rem);margin-block-start:1.8em}.rich h3{margin-block-start:1.5em}.rich h4{font-size:1.05rem;margin-block-start:1.3em}
.rich ul,.rich ol{padding-inline-start:1.4rem;margin:0 0 1.1em}.rich li{margin-block-end:.35em}
.rich blockquote{margin:1.4em 0;padding-inline-start:1.1rem;border-inline-start:3px solid var(--c-accent);color:var(--c-muted);font-family:var(--font-heading);font-style:italic}
.rich code{font-family:"JetBrains Mono",ui-monospace,monospace;font-size:.92em;background:color-mix(in srgb,var(--c-primary) 7%,var(--c-surface));padding:.1em .35em;border-radius:.3em}
.rich>:first-child{margin-block-start:0}
.company-details{margin:1.5rem 0 0;display:grid;gap:.9rem}.company-details div{padding-block-start:.9rem;border-block-start:1px solid var(--c-border)}
.company-details dt{font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--c-muted)}.company-details dd{margin:.15rem 0 0}


/* Section heads: centred like the reference, light title + coloured intro */
.section-head{max-inline-size:46rem;margin-inline:auto;text-align:center}.section-head .section__title{margin-inline:auto;max-inline-size:none}
.section-head__intro{color:var(--c-link);font-style:italic;font-size:1.02rem;max-inline-size:40rem;margin:0 auto}
.services__layout{display:grid;gap:clamp(2rem,4.5vw,3rem)}

/* Services: icon tiles */
.service-list,.steps{list-style:none;margin:0;padding:0}
.service-list{display:grid;gap:2.2rem 1.8rem;grid-template-columns:1fr}
.service{display:flex;flex-direction:column;gap:.7rem}
.service__head{display:flex;align-items:center;gap:1rem;margin-block-end:.4rem}.service__head h3{margin:0;font-weight:400;font-size:1.2rem;line-height:1.2}
.service__icon{position:relative;flex:none;display:grid;place-items:center;inline-size:3rem;block-size:3.2rem;background:var(--c-btn-bg);color:var(--c-btn-text);transition:transform .25s var(--ease)}
.service__icon::after{content:"";position:absolute;inset-inline-start:.9rem;inset-block-end:-.42rem;border:.45rem solid transparent;border-block-end:0;border-block-start-color:var(--c-btn-bg)}
.service__icon .icon{inline-size:1.5rem;block-size:1.5rem}.service:hover .service__icon{transform:translateY(-3px)}
.service p{color:var(--c-muted);font-size:.93rem;margin:0}
.more{margin-block-start:auto;padding-block-start:.3rem;font-weight:600;font-size:.82rem;color:var(--c-text);text-decoration:none;display:inline-flex;gap:.4rem;align-items:center}
.more::after{content:"+";display:inline-grid;place-items:center;inline-size:1rem;block-size:1rem;border-radius:50%;background:var(--c-text);color:var(--c-bg);font-size:.8rem;line-height:1;transition:background-color .2s}.more:hover{color:var(--c-link)}.more:hover::after{background:var(--c-link)}
/* Steps */
.steps{display:grid;gap:0}
.step{display:grid;grid-template-columns:3.4rem 1fr;gap:1.2rem;padding-block-end:2.2rem;position:relative}
.step::before{content:"";position:absolute;inset-inline-start:1.7rem;inset-block:3.4rem 0;inline-size:3px;border-radius:3px;background:linear-gradient(var(--c-accent),color-mix(in srgb,var(--c-accent) 12%,transparent))}.step:last-child::before{display:none}
.step__node{display:grid;place-items:center;inline-size:3.4rem;block-size:3.4rem;border-radius:50%;background:var(--c-bg);color:var(--c-text);font:650 1.25rem/1 var(--font-heading);border:3px solid var(--c-accent);position:relative}
.step__body h3{margin-block:.6rem .4em}.step__body p{color:var(--c-muted);max-inline-size:34ch;margin:0}


/* Image + text */
.image-text__grid{display:grid;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.image-text__figure{margin:0;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow);position:relative}
.figure__img{display:block;inline-size:100%;block-size:auto;aspect-ratio:4/3;object-fit:cover}
.figure--illustration{aspect-ratio:5/4;display:grid;place-items:center;background:linear-gradient(160deg,var(--c-primary),var(--c-secondary))}
.figure--illustration .ill,.figure--illustration>div{inline-size:100%;block-size:100%}
.image-text__cta{margin-block-start:1.8rem}
.i-arc{fill:none;stroke:var(--c-accent);stroke-width:1.6;opacity:.55}.i-arc1{opacity:.35}.i-arc2{opacity:.2}
.i-grid line,.i-grid-line{stroke:var(--c-on-primary);stroke-width:1;opacity:.12}.i-grid--lines line{opacity:.25}
.i-horizon{stroke:var(--c-accent);stroke-width:1.8;opacity:.85}.i-sun{fill:var(--c-accent)}.i-ring{fill:none;stroke:var(--c-accent);stroke-width:1.3;opacity:.4}.i-node{fill:var(--c-on-primary);opacity:.9}
.i-plane{stroke:var(--c-accent);stroke-width:1.5;fill:var(--c-accent)}.i-plane0{fill-opacity:.35}.i-plane1{fill-opacity:.2}.i-plane2{fill-opacity:.08}
.i-wave{fill:none;stroke:var(--c-accent);stroke-width:2.2;opacity:.9}.i-wave1{opacity:.5}.i-wave2{opacity:.3}.stop-acc{stop-color:var(--c-accent)}


/* Call-to-action band (light grey, centred) */
.cta-band{position:relative;isolation:isolate;overflow:hidden;text-align:center;padding-block:clamp(2.6rem,6vw,4rem);background:var(--c-surface);border-block:1px solid var(--c-border)}
.cta-band__inner{max-inline-size:56rem}
.cta__title{margin:0 0 .5em;font-size:clamp(1.6rem,1.15rem + 1.8vw,2.4rem);font-weight:300;color:inherit}.cta__title .accent{color:var(--c-link)}
.cta-band p{margin:0 auto 1.4rem;color:var(--c-muted);max-inline-size:46rem}
.cta__actions{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center}
.cta-band--photo{padding-block:clamp(4.5rem,10vw,8rem);background:var(--c-primary);border:0}
.cta-band__bg{position:absolute;inset:0;z-index:-2}.cta-band__bg img{inline-size:100%;block-size:100%;object-fit:cover;display:block}
.cta-band--photo::before{content:"";position:absolute;inset:0;z-index:-1;background:color-mix(in srgb,var(--c-primary) 66%,transparent)}
.cta-band--photo .cta__title,.cta-band--photo p{color:var(--c-on-primary)}.cta-band--photo .cta__title .accent{color:color-mix(in srgb,var(--c-accent) 70%,var(--c-on-primary))}

/* FAQ */
.faq__list{margin-block-start:1.8rem;display:grid;gap:.8rem}
.faq__item{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);transition:border-color .25s,box-shadow .3s}.faq__item[open]{border-color:color-mix(in srgb,var(--c-accent) 70%,var(--c-border));box-shadow:var(--shadow)}
.faq__item summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.15rem 1.4rem;font:500 1.08rem/1.35 var(--font-heading);min-block-size:3.4rem}.faq__item summary::-webkit-details-marker{display:none}
.faq__item summary::after{content:"+";flex:none;display:grid;place-items:center;inline-size:2.1rem;block-size:2.1rem;border-radius:50%;border:1px solid var(--c-border);font-size:1.35rem;line-height:1;color:var(--c-link)}
.faq__item[open] summary::after{content:"\2212";background:color-mix(in srgb,var(--c-accent) 28%,var(--c-surface))}.faq__item .rich{padding:0 1.4rem 1.4rem}.faq__item summary:hover{color:var(--c-link)}

/* Contact */
.contact__grid{display:grid;gap:clamp(2rem,5vw,4rem)}.contact__grid--single{max-inline-size:46rem}
.contact__form{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-lg);padding:clamp(1.4rem,4vw,2.4rem);box-shadow:var(--shadow);align-self:start;position:relative;overflow:hidden}
.contact__form::before{content:"";position:absolute;inset-inline:0;inset-block-start:0;block-size:5px;background:var(--c-btn-bg)}
.form{display:grid;gap:1.15rem}.field label{display:block;font-weight:650;margin-block-end:.4rem;font-size:.98rem}.field__opt{font-weight:400;color:var(--c-muted)}
.field input,.field textarea{inline-size:100%;font:inherit;color:var(--c-text);background:var(--c-bg);border:1.5px solid var(--field-border);border-radius:.3rem;padding:.8rem 1rem;min-block-size:3.1rem;transition:border-color .2s,box-shadow .2s}
.field textarea{resize:vertical;min-block-size:9rem}.field input:hover,.field textarea:hover{border-color:var(--c-text)}
.field input:focus-visible,.field textarea:focus-visible{outline:3px solid var(--c-focus);outline-offset:1px;border-color:var(--c-focus)}
.field--error input,.field--error textarea{border-color:var(--c-danger);border-width:2px}
.field__error{display:flex;gap:.4rem;margin:.4rem 0 0;color:var(--c-danger);font-size:.92rem;font-weight:650}
.field__error::before{content:"!";flex:none;display:grid;place-items:center;inline-size:1.15rem;block-size:1.15rem;border-radius:50%;background:var(--c-danger);color:var(--c-on-danger);font-size:.75rem;line-height:1;margin-block-start:.1rem}
.hp{position:absolute;inset-inline-start:-10000px;inline-size:1px;block-size:1px;overflow:hidden}.form__privacy{font-size:.88rem;color:var(--c-muted);margin:0}.form-wrap{outline:none}.form-wrap:not(:empty){margin-block-end:1.2rem}
.alert{--a:var(--c-text);display:flex;gap:.8rem;padding:1rem 1.1rem;border-radius:var(--radius);border:1px solid var(--a);border-inline-start-width:5px;background:color-mix(in srgb,var(--a) 9%,var(--c-surface));color:var(--c-text);margin-block-end:1rem}
.alert p{margin:0}.alert__title{font-weight:700;margin-block-end:.2rem!important}.alert ul{margin:.4rem 0 0;padding-inline-start:1.2rem}
.alert__icon{flex:none;display:grid;place-items:center;inline-size:1.5rem;block-size:1.5rem;border-radius:50%;background:var(--a);color:var(--c-surface);font:700 .9rem/1 var(--font-body)}
.alert--success{--a:var(--c-success)}.alert--warning{--a:var(--c-warning)}.alert--danger{--a:var(--c-danger)}.alert--info{--a:var(--c-link)}

/* Footer */
.site-footer{position:relative;background:var(--c-footer-bg);color:var(--c-footer-text);--focus-ring:var(--c-footer-text);padding-block:clamp(3rem,6vw,4.5rem) 1.4rem}
.site-footer a{color:inherit;text-underline-offset:.2em}.site-footer a:hover{color:var(--c-on-primary)}
.footer__grid{display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr))}
.footer__name{font:500 1.35rem/1.2 var(--font-heading);margin:0 0 .6rem;color:var(--c-footer-text);text-transform:uppercase}.footer__tagline{margin:0;opacity:.9;max-inline-size:28ch;font-size:.95rem}
.footer__h{font:700 .76rem/1 var(--font-body);letter-spacing:.14em;text-transform:uppercase;margin:0 0 1.1rem;padding-block-end:.7rem;color:var(--c-footer-text);border-block-end:2px solid var(--c-btn-bg);display:inline-block}
.footer__grid ul{list-style:none;margin:0 0 1.4rem;padding:0;display:grid;gap:.5rem}.footer__grid address{font-style:normal;line-height:1.75;font-size:.95rem}
.footer__bottom{margin-block-start:2.6rem;padding-block-start:1.2rem;border-block-start:1px solid color-mix(in srgb,var(--c-footer-text) 18%,transparent);font-size:.85rem;opacity:.92}.footer__bottom p{margin:0}

/* Reveal on scroll */
@media (prefers-reduced-motion:no-preference){
  .js [data-reveal]{opacity:0;transform:translateY(20px);transition:opacity .7s var(--ease),transform .7s var(--ease)}.js [data-reveal].is-visible{opacity:1;transform:none}
}

@media (min-width:40rem){.service-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:48rem){
  .image-text__grid{grid-template-columns:1fr 1fr}.image-text--start .image-text__figure{order:-1}
  .steps{grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1.8rem}.step{grid-template-columns:1fr;padding-block-end:0}
  .step::before{inset-inline-start:4.2rem;inset-inline-end:-1.8rem;inset-block:1.7rem auto;inline-size:auto;block-size:3px;background:linear-gradient(to right,var(--c-accent),color-mix(in srgb,var(--c-accent) 12%,transparent))}
  [dir=rtl] .step::before{background:linear-gradient(to left,var(--c-accent),color-mix(in srgb,var(--c-accent) 12%,transparent))}.step__body h3{margin-block-start:1.1rem}
}
@media (min-width:62rem){
  .service-list--n3{grid-template-columns:repeat(3,minmax(0,1fr))}.service-list--n4{grid-template-columns:repeat(4,minmax(0,1fr))}.service-list--n5{grid-template-columns:repeat(5,minmax(0,1fr))}.service-list--n6{grid-template-columns:repeat(3,minmax(0,1fr))}
  .service-list--n1{grid-template-columns:minmax(0,28rem);justify-content:center}.service-list--n2{grid-template-columns:repeat(2,minmax(0,22rem));justify-content:center}
  .contact__grid:not(.contact__grid--single){grid-template-columns:minmax(0,5fr) minmax(0,6fr)}.footer__grid{grid-template-columns:1fr 1.6fr 1fr 1fr}
}
@media (min-width:100rem){:root{--maxw:80rem}}
@media (max-width:40rem){.hero{padding-top:12.5rem}
  .worldmap__stage{inset-inline-end:50%;inset-block-start:1.4rem;transform:translateX(50%);inline-size:118cqw}.worldmap--soft .worldmap__stage{inset-block-start:50%;transform:translate(-50%,-50%);inset-inline-end:auto}.wordmark{font-size:1.02rem}.wordmark__text{max-inline-size:11rem}.hero__card{max-inline-size:100%}.hero{align-items:flex-end}.topbar__info li:nth-child(n+2){display:none}}
@media (max-width:22.5rem){.btn{padding-inline:1rem}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media (forced-colors:active){.btn,.field input,.field textarea{border:2px solid ButtonText}.alert{border:2px solid CanvasText}.service__icon{border:2px solid CanvasText}}
@media print{.topbar,.site-header,.site-footer,.hero__bg,.cta-band__bg{display:none}body{background:#fff;color:#000}}
.muted-sample{color:var(--c-muted)}

/* Video */
.video__figure{margin:0 auto;max-inline-size:56rem}
.video__player,.video__embed{display:block;inline-size:100%;aspect-ratio:16/9;background:#000;border:0}
.video__embed{position:relative;overflow:hidden;display:grid}.video__embed iframe{inline-size:100%;block-size:100%;border:0}
.video__poster{position:absolute;inset:0;inline-size:100%;block-size:100%;object-fit:cover;opacity:.75}
.video__play{position:relative;display:grid;place-items:center;align-content:center;gap:.5rem;padding:1rem;color:#fff;text-decoration:none;text-align:center;background:linear-gradient(135deg,var(--c-primary),var(--c-secondary))}
.video__poster+.video__play{background:transparent}
.video__btn{display:grid;place-items:center;inline-size:4.2rem;block-size:4.2rem;border-radius:50%;background:var(--c-btn-bg);color:var(--c-btn-text);transition:transform .2s var(--ease)}.video__btn .icon{inline-size:2rem;block-size:2rem}
.video__play:hover .video__btn{transform:scale(1.08)}
.video__label{font-weight:600}.video__note{font-size:.8rem;opacity:.85;max-inline-size:30rem}
.video__figure figcaption{margin-block-start:.7rem;color:var(--c-muted);font-size:.92rem;text-align:center}

/* Gallery */
.gallery__grid{list-style:none;margin:0;padding:0;display:grid;gap:1rem;grid-template-columns:repeat(2,minmax(0,1fr))}
.gallery__item{position:relative;overflow:hidden;background:var(--c-primary)}
.gallery__img{display:block;inline-size:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .5s var(--ease),opacity .3s}
.gallery__link{display:block;color:inherit;text-decoration:none}
.gallery__item:hover .gallery__img{transform:scale(1.05);opacity:.85}
.gallery__cap{position:absolute;inset-inline:0;inset-block-end:0;padding:1.6rem .9rem .7rem;color:#fff;font-weight:500;font-size:.95rem;background:linear-gradient(transparent,rgba(0,0,0,.72))}
@media (min-width:48rem){.gallery__grid--n3{grid-template-columns:repeat(3,minmax(0,1fr))}.gallery__grid--n4{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* Hero slideshow */
.hero__slide{position:absolute;inset:0;opacity:0;transition:opacity 1.4s ease}.hero__slide.is-active{opacity:1}
.hero__slide .hero__img{inline-size:100%;block-size:100%}
.hero__pause{position:absolute;inset-inline-end:var(--gutter);inset-block-end:1rem;z-index:2;padding:.45rem .9rem;border:1px solid color-mix(in srgb,var(--c-on-primary) 70%,transparent);border-radius:.2rem;background:color-mix(in srgb,var(--c-primary) 70%,transparent);color:var(--c-on-primary);font:600 .75rem/1 var(--font-body);letter-spacing:.05em;text-transform:uppercase;cursor:pointer}
.hero__pause:hover{background:var(--c-primary)}
@media (prefers-reduced-motion:reduce){.hero__slide{transition:none}}

/* Rich text extras (tables, images, callouts, columns, button links) */
.rich--wide{max-inline-size:none}
.rich img{display:block;max-inline-size:100%;block-size:auto;margin-block:1.2em;border-radius:.2rem}
.rich table{inline-size:100%;border-collapse:collapse;margin-block:1.4em;font-size:.95rem}
.rich th,.rich td{padding:.6rem .8rem;border:1px solid var(--c-border);text-align:start;vertical-align:top}
.rich th{background:var(--c-surface);font-weight:600}
.rich hr{border:0;border-block-start:1px solid var(--c-border);margin-block:2em}
.rich figure{margin:1.4em 0}.rich figcaption{font-size:.9rem;color:var(--c-muted);margin-block-start:.4rem}
.rich details{border:1px solid var(--c-border);padding:.7rem 1rem;margin-block:1em}.rich summary{cursor:pointer;font-weight:600}
.rich .callout{padding:1.1rem 1.3rem;border-inline-start:4px solid var(--c-btn-bg);background:var(--c-surface);margin-block:1.4em}.rich .callout>:last-child{margin-block-end:0}
.rich .lead{font-size:1.2rem;color:var(--c-muted)}.rich .small{font-size:.88rem}.rich .text-center{text-align:center}
.rich .cols-2,.rich .cols-3{display:grid;gap:1.4rem;grid-template-columns:1fr}
@media (min-width:48rem){.rich .cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.rich .cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}
.rich a.btn{text-decoration:none;color:var(--c-btn-text);margin-inline-end:.4rem;margin-block:.3rem}.rich a.btn:hover{color:var(--c-btn-hover-text)}.rich a.btn--ghost{color:var(--c-text)}.rich a.btn--dark{color:var(--c-on-primary)}


/* ===== Modern layer: cards, glass, motion ===== */
.progress{position:fixed;inset-block-start:0;inset-inline:0;block-size:3px;z-index:300;pointer-events:none;background:linear-gradient(90deg,var(--c-accent),color-mix(in srgb,var(--c-accent) 35%,var(--c-on-primary)));transform:scaleX(0);transform-origin:left}
[dir=rtl] .progress{transform-origin:right}

/* Header: frosted glass, compact while scrolling */
.site-header{background:color-mix(in srgb,var(--c-header-bg) 84%,transparent);-webkit-backdrop-filter:saturate(1.7) blur(16px);backdrop-filter:saturate(1.7) blur(16px);transition:box-shadow .35s var(--ease),background-color .35s}
.site-header.is-scrolled{box-shadow:0 14px 34px -22px rgba(0,0,0,.5)}
.brand__img,.header__inner{transition:max-block-size .35s var(--ease),min-block-size .35s var(--ease)}
@media (min-width:62em){.site-header.is-scrolled .header__inner{min-block-size:5rem}.site-header.is-scrolled .brand__img{max-block-size:3.9rem}}
a.nav__link::after{content:"";position:absolute;inset-inline:.9rem;inset-block-end:.35rem;block-size:2px;border-radius:2px;background:var(--c-accent);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
a.nav__link:hover::after,.nav__item.is-current>a.nav__link::after{transform:scaleX(1)}

/* Buttons */
.btn{position:relative;overflow:hidden;border-radius:.55rem;transition:transform .3s var(--ease),box-shadow .3s var(--ease),background-color .2s,color .2s,border-color .2s}
.btn::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.3) 50%,transparent 65%);transform:translateX(-130%);pointer-events:none}
.btn:hover{transform:translateY(-2px);box-shadow:0 16px 26px -16px var(--b-bg)}.btn:hover::after{transform:translateX(130%);transition:transform .8s var(--ease)}
.btn:active{transform:translateY(0)}

/* Hero card: glass */
.hero__card{border-radius:1.1rem;background:color-mix(in srgb,var(--c-primary) 90%,transparent);-webkit-backdrop-filter:blur(16px) saturate(1.3);backdrop-filter:blur(16px) saturate(1.3);border:1px solid color-mix(in srgb,var(--c-on-primary) 14%,transparent);box-shadow:0 40px 70px -34px rgba(0,0,0,.7)}

/* Section heads */
.section-head::before{content:"";display:block;inline-size:3.2rem;block-size:4px;border-radius:4px;margin:0 auto 1.2rem;background:linear-gradient(90deg,var(--c-accent),color-mix(in srgb,var(--c-accent) 25%,transparent))}
.section-head .section__title{font-size:clamp(2rem,1.3rem + 2.7vw,3.3rem);font-weight:500;letter-spacing:-.025em}
.section-head__intro{font-style:normal;color:var(--c-muted);font-size:1.1rem;line-height:1.6}
.section--tinted{background:linear-gradient(180deg,color-mix(in srgb,var(--c-border) 50%,var(--c-bg)),var(--c-bg))}

/* Services: cards with spotlight */
.service-list{gap:1.4rem;counter-reset:svc}
.service{counter-increment:svc;position:relative;isolation:isolate;overflow:hidden;padding:1.8rem 1.6rem 1.5rem;border:1px solid var(--c-border);border-radius:1.2rem;background:linear-gradient(170deg,var(--c-surface),color-mix(in srgb,var(--c-surface) 55%,var(--c-bg)));transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .35s}
.service::before{content:"";position:absolute;inset:0;z-index:-1;opacity:0;transition:opacity .4s;background:radial-gradient(20rem circle at var(--mx,50%) var(--my,0%),color-mix(in srgb,var(--c-accent) 20%,transparent),transparent 62%)}
.service::after{content:counter(svc,decimal-leading-zero);position:absolute;inset-block-start:1.3rem;inset-inline-end:1.4rem;font:600 .78rem/1 var(--font-heading);letter-spacing:.12em;color:color-mix(in srgb,var(--c-text) 30%,transparent)}
.service:hover{transform:translateY(-7px);border-color:color-mix(in srgb,var(--c-accent) 60%,var(--c-border));box-shadow:0 34px 54px -32px color-mix(in srgb,var(--c-primary) 60%,transparent)}.service:hover::before{opacity:1}
.service__head{flex-direction:column;align-items:flex-start;gap:1.15rem;margin:0 0 .3rem}.service__head h3{font-weight:600;font-size:1.25rem;letter-spacing:-.01em}
.service__icon{inline-size:3.5rem;block-size:3.5rem;border-radius:1rem;background:linear-gradient(140deg,var(--c-btn-bg),color-mix(in srgb,var(--c-btn-bg) 50%,var(--c-accent)));box-shadow:0 14px 26px -12px var(--c-btn-bg),inset 0 1px 0 rgba(255,255,255,.25)}
.service__icon::after{display:none}.service:hover .service__icon{transform:none}
.service__icon .icon{inline-size:1.6rem;block-size:1.6rem;transition:transform .6s var(--ease)}.service:hover .service__icon .icon{transform:scale(1.18) rotate(-7deg)}
.more::after{content:"\2192";inline-size:1.6rem;block-size:1.6rem;font-size:.9rem;transition:transform .3s var(--ease),background-color .2s}.more:hover::after{transform:translateX(4px)}

/* Steps: cards with a growing top line */
.step{position:relative;overflow:hidden;background:var(--c-surface);border:1px solid var(--c-border);border-radius:1.2rem;padding:1.7rem 1.6rem;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.step:hover{transform:translateY(-5px);box-shadow:0 30px 50px -32px color-mix(in srgb,var(--c-primary) 55%,transparent)}
.step::before{display:none}
.step::after{content:"";position:absolute;inset:0 0 auto 0;block-size:3px;background:linear-gradient(90deg,var(--c-accent),transparent);transform:scaleX(0);transform-origin:left;transition:transform 1s var(--ease) .35s}
.is-visible .step::after,.step:hover::after{transform:scaleX(1)}
.step__node{border:0;color:var(--c-on-accent);background:linear-gradient(140deg,var(--c-accent),color-mix(in srgb,var(--c-accent) 55%,var(--c-btn-bg)));box-shadow:0 0 0 7px color-mix(in srgb,var(--c-accent) 18%,transparent)}
.step__body h3{font-weight:600}

/* Image + text: offset colour frame */
.image-text__figure{overflow:visible;box-shadow:none;isolation:isolate;border-radius:1.5rem}
.image-text__figure::before{content:"";position:absolute;inset:7% -4% -7% 9%;z-index:-1;border-radius:1.6rem;background:linear-gradient(140deg,var(--c-accent),color-mix(in srgb,var(--c-btn-bg) 55%,var(--c-primary)));opacity:.9;transition:transform .9s var(--ease)}
.image-text--start .image-text__figure::before{inset:7% 9% -7% -4%}
.image-text__figure:hover::before{transform:translate(.6rem,.6rem)}
.image-text__figure .figure__img,.figure--illustration{border-radius:1.5rem;box-shadow:0 44px 64px -34px color-mix(in srgb,var(--c-primary) 75%,transparent)}
.image-text__figure .figure__img{transition:transform .9s var(--ease)}.image-text__figure:hover .figure__img{transform:scale(1.015)}

/* Call to action: dark glow panel */
.cta-band:not(.cta-band--photo){background:transparent;border:0;padding-block:clamp(2rem,5vw,4rem);text-align:center}
.cta-band:not(.cta-band--photo) .cta-band__inner{position:relative;isolation:isolate;overflow:hidden;max-inline-size:none;border-radius:1.8rem;padding:clamp(2.6rem,6.5vw,5rem) clamp(1.4rem,5vw,4rem);color:var(--c-on-primary);
  background:radial-gradient(38rem 20rem at 12% -25%,color-mix(in srgb,var(--c-accent) 42%,transparent),transparent 62%),radial-gradient(34rem 22rem at 105% 125%,color-mix(in srgb,var(--c-on-primary) 16%,transparent),transparent 65%),linear-gradient(125deg,var(--c-primary),color-mix(in srgb,var(--c-secondary) 82%,var(--c-primary)));box-shadow:0 50px 80px -46px color-mix(in srgb,var(--c-primary) 85%,transparent)}
.cta-band:not(.cta-band--photo) .cta-band__inner::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(circle,color-mix(in srgb,var(--c-on-primary) 26%,transparent) 1px,transparent 1.7px) 0 0/24px 24px;-webkit-mask:radial-gradient(75% 100% at 85% 10%,#000,transparent);mask:radial-gradient(75% 100% at 85% 10%,#000,transparent)}
.cta-band:not(.cta-band--photo) .cta-band__inner::after{content:"";position:absolute;inline-size:22rem;block-size:22rem;border-radius:50%;inset-inline-start:-6rem;inset-block-end:-12rem;z-index:-1;background:color-mix(in srgb,var(--c-accent) 38%,transparent);filter:blur(60px);opacity:.7}
.cta-band:not(.cta-band--photo) .cta__title{color:var(--c-on-primary);font-weight:500;letter-spacing:-.02em;font-size:clamp(1.9rem,1.2rem + 2.6vw,3.1rem)}.cta-band:not(.cta-band--photo) .cta__title .accent{color:var(--c-accent)}
.cta-band:not(.cta-band--photo) p{color:color-mix(in srgb,var(--c-on-primary) 84%,var(--c-primary));font-size:1.08rem}

/* FAQ / contact / footer / gallery */
.faq__item{border-radius:1rem;transition:border-color .3s,box-shadow .35s var(--ease),transform .35s var(--ease)}.faq__item:hover{transform:translateX(3px)}
.faq__item[open]{background:linear-gradient(90deg,color-mix(in srgb,var(--c-accent) 10%,var(--c-surface)),var(--c-surface) 40%)}
.contact__form{border-radius:1.4rem;box-shadow:0 40px 70px -46px color-mix(in srgb,var(--c-primary) 65%,transparent)}
.field input,.field textarea{border-radius:.7rem;transition:border-color .2s,box-shadow .25s}
.field input:focus-visible,.field textarea:focus-visible{box-shadow:0 0 0 5px color-mix(in srgb,var(--c-focus) 22%,transparent)}
.site-footer::before{content:"";position:absolute;inset:0 0 auto 0;block-size:1px;background:linear-gradient(90deg,transparent,var(--c-accent),transparent)}
.site-footer{background-image:radial-gradient(circle,color-mix(in srgb,var(--c-footer-text) 10%,transparent) 1px,transparent 1.6px);background-size:26px 26px}
.site-footer a:not(.social__link){text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .4s var(--ease),color .2s}.site-footer a:not(.social__link):hover{background-size:100% 1px}
.gallery__item{border-radius:1rem}.gallery__item:hover .gallery__img{transform:scale(1.07);opacity:1}
.pagehero::after{content:"";position:absolute;inset:auto 0 0 0;block-size:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--c-accent) 80%,transparent),transparent)}

/* Motion */
@media (prefers-reduced-motion:no-preference){
  .js [data-reveal] .section-head::before{transform:scaleX(0);transform-origin:left;transition:transform .9s var(--ease) .15s}.js [data-reveal].is-visible .section-head::before{transform:scaleX(1)}
  .js [data-reveal]:not(.is-visible) :is(.service,.step,.faq__item,.gallery__item){opacity:0}
  .js [data-reveal].is-visible :is(.service,.step,.faq__item,.gallery__item){animation:cardin .85s var(--ease) backwards;animation-delay:calc(var(--i,0) * 110ms + 120ms)}
  @keyframes cardin{from{opacity:0;transform:translateY(34px) scale(.97)}to{opacity:1;transform:none}}
  .cta-band:not(.cta-band--photo) .cta-band__inner::after{animation:orb 12s ease-in-out infinite alternate}@keyframes orb{from{transform:translate(0,0) scale(1)}to{transform:translate(14rem,-4rem) scale(1.25)}}
  .service:hover .service__icon{animation:pulse 1.4s ease-out}@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--c-btn-bg) 55%,transparent)}100%{box-shadow:0 0 0 18px transparent}}
}
@media (hover:none){.service:hover,.step:hover,.faq__item:hover{transform:none}}
.step{align-content:start}
.site-header{background:color-mix(in srgb,var(--c-header-bg) 92%,transparent)}
.section__title{font-weight:500;letter-spacing:-.025em}
.image-text__copy .section__title::before,.faq .section__title::before{content:"";display:block;inline-size:3.2rem;block-size:4px;border-radius:4px;margin-block-end:1.1rem;background:linear-gradient(90deg,var(--c-accent),color-mix(in srgb,var(--c-accent) 25%,transparent))}
