/* 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: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:4.5rem}
.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:3rem;inline-size:auto}
.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:hidden;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--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}.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}
.worldmap__land,.worldmap__shadow{position:absolute;inset:0;-webkit-mask:url("../img/world-map.svg") right 2% center/contain no-repeat;mask:url("../img/world-map.svg") right 2% center/contain no-repeat}
.worldmap__land{background:linear-gradient(160deg,color-mix(in srgb,var(--c-on-primary) 96%,var(--c-secondary)) 0%,color-mix(in srgb,var(--c-on-primary) 80%,var(--c-secondary)) 100%);opacity:.92}
.worldmap__shadow{background:#000;opacity:.42;transform:translate(.35%,1.4%);filter:blur(7px)}
.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__land{animation:mapin 1.6s var(--ease) both}@keyframes mapin{from{opacity:0;transform:scale(1.03)}to{opacity:.92;transform:none}}
}

/* 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:.2}.pagehero__map .worldmap__land{-webkit-mask-position:center;mask-position:center;animation:none}
.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:6.5rem}.worldmap__land,.worldmap__shadow{-webkit-mask-position:center 1.2rem;mask-position:center 1.2rem}.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)}
