/* ============================================================
   HV Solutions OÜ — Theme (tokens + ACSS/AutoBEM components)
   Font: Public Sans. Default accent: forest green. Default corners: rounded.
   Drop-in for a flat-file PHP (FrontPress) theme. Link this file, then use
   the semantic block classes (.btn, .service-card, .work-card, .eyebrow,
   .field, .site-header, .site-footer, .hero, .why, .facts, .contact, ...).
   Reference brand colour ONLY through var(--primary*). rem units throughout.
   Note: the .reveal / .media-reveal classes fade/curtain on scroll and need
   a tiny IntersectionObserver (see README § Scroll reveal). They are
   fail-open: without JS everything is visible.
   ============================================================ */

/* ============================================================
   HV Solutions OÜ — design tokens + BEM components (v2)
   ACSS / AutoBEM: semantic blocks, no prefix, flat elements,
   rem units, var(--token) throughout. Industrial / editorial.
   ============================================================ */
:root{
  /* PRIMARY (industrial red) — channels derive the ladder */
  --primary-h:156; --primary-s:42%; --primary-l:32%;
  --primary:              hsl(var(--primary-h) var(--primary-s) var(--primary-l));  /* forest #2f7457 */
  --primary-hover:        hsl(156 43% 27%);
  --primary-strong:       hsl(157 45% 22%);   /* AA-safe deep: white-on-this & this-on-white */
  --primary-strong-hover: hsl(158 47% 17%);
  --primary-light:        hsl(154 36% 88%);
  --primary-ultra-light:  hsl(150 38% 96%);

  /* BASE (chrome ladder) */
  --base-ultra-dark:#000000;
  --base-dark:#121117;
  --base:#1c1b22;
  --base-light:#2c2b33;
  --base-ultra-light:#5a5961;

  /* NEUTRAL + hairlines */
  --white:#ffffff; --black:#000000;
  --neutral-ultra-light:#f7f7f8;
  --neutral-light:#f3f4f6;     /* --bg in source */
  --neutral:#e6e7ea;
  --hairline:rgba(0,0,0,.10);
  --hairline-light:rgba(255,255,255,.12);

  /* TEXT */
  --text-dark:#333333;
  --text-dark-muted:#555a61;
  --text-subtle:#5b6168;       /* AA on white & on #f3f4f6 */
  --text-light:#999999;
  --text-on-dark:#ffffff;
  --heading-color:#0a0a0b;

  /* STATUS */
  --success:#1f7a45; --success-bg:#e8f5ee;
  --warning:#9a6312; --warning-bg:#fbf1de;
  --error:#c0291f;   --error-bg:#fbe9e7;
  --info:#1d5e96;    --info-bg:#e7f0f8;

  /* TYPE — Public Sans throughout */
  --brand-font:'Public Sans', system-ui, -apple-system, sans-serif;
  --text-font-family:'Public Sans', system-ui, -apple-system, sans-serif;
  --text-2xs:clamp(0.72rem,0.7rem + 0.1vw,0.78rem);
  --text-xs: clamp(0.8rem,0.77rem + 0.15vw,0.88rem);
  --text-s:  clamp(0.875rem,0.85rem + 0.12vw,0.95rem);
  --text-m:  clamp(0.95rem,0.92rem + 0.15vw,1.05rem);
  --text-l:  clamp(1.05rem,1rem + 0.3vw,1.18rem);
  --text-xl: clamp(1.2rem,1.1rem + 0.55vw,1.45rem);
  --text-2xl:clamp(1.5rem,1.3rem + 1vw,2rem);
  --text-3xl:clamp(2rem,1.6rem + 1.8vw,3rem);
  --h1:clamp(2.6rem,1.9rem + 3.4vw,4.4rem);
  --h2:clamp(2rem,1.55rem + 2.1vw,3.1rem);
  --h3:clamp(1.6rem,1.3rem + 1.4vw,2.3rem);
  --h4:clamp(1.3rem,1.12rem + 0.8vw,1.7rem);
  --h5:clamp(1.1rem,1rem + 0.45vw,1.3rem);
  --h6:clamp(1rem,0.95rem + 0.2vw,1.1rem);
  /* hero display */
  --display:clamp(3.4rem,2rem + 9vw,9.5rem);
  --lh-body:1.7; --lh-heading:1.1;
  --tracking-display:-0.01em; --tracking-eyebrow:0.12em;

  /* SPACE */
  --space-3xs:0.25rem;
  --space-2xs:clamp(0.375rem,0.32rem + 0.25vw,0.5rem);
  --space-xs: clamp(0.5rem,0.42rem + 0.4vw,0.75rem);
  --space-s:  clamp(0.75rem,0.6rem + 0.7vw,1rem);
  --space-m:  clamp(1rem,0.8rem + 1vw,1.5rem);
  --space-l:  clamp(1.5rem,1.2rem + 1.5vw,2.25rem);
  --space-xl: clamp(2.25rem,1.8rem + 2.2vw,3.5rem);
  --space-2xl:clamp(3.5rem,2.8rem + 3.5vw,5.5rem);
  --space-3xl:clamp(5rem,4rem + 5vw,8rem);
  --section-space:clamp(4.5rem,3rem + 7vw,9.4rem);  /* ~150px */
  --grid-gap:clamp(1.25rem,1rem + 1.4vw,1.75rem);
  --card-pad:clamp(1.4rem,1.1rem + 1.2vw,2.1rem);
  --container-max:83.5rem; --gutter:clamp(1.25rem,0.7rem + 2.4vw,2rem);

  /* RADIUS / SHADOW / MOTION — tight, industrial */
  --radius:14px; --radius-xs:9px; --radius-l:26px; --radius-circle:50%;
  --shadow-s:0 1px 2px rgba(10,10,11,.05);
  --shadow-m:0 20px 45px rgba(10,10,11,.08);
  --shadow-l:0 30px 60px rgba(10,10,11,.10);
  --ease:cubic-bezier(.5,0,.2,1); --dur:.32s; --dur-slow:.8s;
}

*,*::before,*::after{box-sizing:border-box;}
.site{margin:0;font-family:var(--text-font-family);font-size:var(--text-m);
  line-height:var(--lh-body);color:var(--text-dark);background:var(--white);
  font-weight:400;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:clip;}

/* Lenis smooth scroll (vendored lenis.min.js) */
html.lenis,html.lenis body{height:auto;}
.lenis.lenis-smooth{scroll-behavior:auto !important;}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain;}
.lenis.lenis-stopped{overflow:clip;}
.lenis.lenis-smooth iframe{pointer-events:none;}
/* native + reduced-motion #hash jumps clear the sticky header */
html{scroll-padding-top:5.5rem;}
.site h1,.site h2,.site h3,.site h4,.site h5,.site h6{font-family:var(--brand-font);
  color:var(--heading-color);line-height:var(--lh-heading);font-weight:600;
  overflow-wrap:break-word;text-wrap:balance;}
.site p{text-wrap:pretty;}
/* Margin reset kept at element-level specificity (:where = 0) so component
   margin utilities on headings/paragraphs are never clobbered by the reset. */
:where(.site) :is(h1,h2,h3,h4,h5,h6,p){margin:0;}
.site a:not(.btn){color:inherit;text-decoration:none;}
.site a.btn{text-decoration:none;}
.site img{display:block;max-width:100%;}
.site :focus-visible{outline:2px solid var(--primary-strong);outline-offset:3px;}
.site ::selection{background:var(--primary);color:#fff;}

.shell{width:100%;max-width:var(--container-max);margin-inline:auto;padding-inline:var(--gutter);}
.section{margin-bottom:var(--section-space);}
.section__head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-l);
  margin-bottom:var(--space-xl);flex-wrap:wrap;}
.section__title{font-size:var(--h2);text-transform:uppercase;font-weight:600;letter-spacing:-0.01em;}
.site .section__title--light{color:#fff;}

/* eyebrow (sub-title + boxes) */
.eyebrow{display:inline-flex;align-items:center;gap:0.5rem;text-transform:uppercase;
  font-size:var(--text-xs);font-weight:600;letter-spacing:var(--tracking-eyebrow);color:var(--text-dark);
  margin-bottom:var(--space-s);}
.eyebrow--light{color:#fff;}
.eyebrow__boxes{display:flex;gap:0.25rem;}
.eyebrow__box{width:0.4rem;height:0.4rem;background:rgba(0,0,0,.18);}
.eyebrow__box--accent{background:var(--primary);}
.eyebrow--light .eyebrow__box{background:rgba(255,255,255,.25);}
.eyebrow--light .eyebrow__box--accent{background:var(--primary);}

/* ---------- BUTTONS (text-roll) ---------- */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:0.6rem;
  width:fit-content;
  font-family:var(--brand-font);font-weight:600;font-size:var(--text-s);line-height:1.2;
  padding:0.9rem 1.4rem;border:1px solid transparent;cursor:pointer;background:none;
  text-transform:none;transition:background var(--dur) var(--ease),color var(--dur) var(--ease),border-color var(--dur) var(--ease);}
.btn__labels{position:relative;overflow:hidden;display:inline-grid;}
.btn__label{grid-area:1/1;display:block;transition:transform var(--dur) var(--ease);}
.btn__label--hover{position:absolute;inset:0;transform:translateY(120%);}
.btn:hover .btn__label--base{transform:translateY(-120%);}
.btn:hover .btn__label--hover{transform:translateY(0);}
.btn__arrow{width:1.1em;height:1.1em;flex:none;transition:transform var(--dur) var(--ease);}
.btn:hover .btn__arrow{transform:translate(3px,-3px);}
.btn--primary{background:var(--primary-strong);color:#fff;}
.btn--primary:hover{background:var(--primary-strong-hover);}
.btn--outline{border-color:var(--heading-color);color:var(--heading-color);}
.btn--outline:hover{background:var(--heading-color);color:#fff;}
.btn--outline-light{border-color:rgba(255,255,255,.6);color:#fff;}
.btn--outline-light:hover{background:#fff;color:var(--heading-color);border-color:#fff;}
.btn--text{padding:0;color:var(--heading-color);}
.btn--text.btn--light{color:#fff;}

/* ---------- SITE HEADER / NAV ---------- */
.site-header{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.92);
  backdrop-filter:saturate(160%) blur(10px);-webkit-backdrop-filter:saturate(160%) blur(10px);
  box-shadow:0 8px 24px rgba(10,10,11,.05);}
.site-header__inner{display:flex;align-items:center;gap:var(--space-l);min-height:4.6rem;
  padding-block:0.7rem;}
.brand{display:flex;align-items:center;gap:0.65rem;flex:none;}
.brand__mark{width:2.7rem;height:2.7rem;display:grid;place-items:center;flex:none;}
.brand__mark svg{width:100%;height:100%;display:block;}
.brand__name{font-family:var(--brand-font);font-weight:800;font-size:var(--text-l);
  color:var(--heading-color);text-transform:uppercase;letter-spacing:0.02em;line-height:1;}
.brand__name b{color:var(--primary);font-weight:800;}
.site-nav{display:flex;align-items:center;gap:var(--space-l);margin-left:auto;}
.site-nav__list{display:flex;align-items:center;gap:var(--space-l);list-style:none;margin:0;padding:0;}
.nav-link{position:relative;font-weight:500;font-size:var(--text-s);color:var(--heading-color);
  padding-block:0.3rem;text-transform:uppercase;letter-spacing:0.03em;}
.nav-link__line{position:absolute;left:0;bottom:0;height:1px;width:100%;background:var(--primary);
  transform:scaleX(0);transform-origin:right;transition:transform var(--dur) var(--ease);}
.nav-link:hover .nav-link__line{transform:scaleX(1);transform-origin:left;}
.site-nav__right{display:flex;align-items:center;}
.site-nav__phone{display:inline-flex;align-items:center;gap:0.4rem;font-weight:600;font-size:var(--text-xs);
  color:var(--heading-color);white-space:nowrap;}
.site-nav__phone svg{width:1em;height:1em;color:var(--primary);}
.menu-toggle{display:none;margin-left:auto;flex-direction:column;gap:5px;width:2.75rem;height:2.75rem;
  border:1px solid var(--hairline);background:none;cursor:pointer;align-items:center;justify-content:center;}
.menu-toggle span{width:22px;height:2px;background:var(--heading-color);transition:transform var(--dur) var(--ease),opacity var(--dur) var(--ease);}

/* ---------- TOP UTILITY BAR ---------- */
.topbar{background:var(--base-dark);color:rgba(255,255,255,.72);font-size:var(--text-2xs);}
.topbar__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-m);
  min-height:2.5rem;padding-block:0.35rem;}
.topbar__left{display:flex;align-items:center;gap:var(--space-l);min-width:0;}
.topbar__right{display:flex;align-items:center;gap:var(--space-l);}
.topbar__item{display:inline-flex;align-items:center;gap:0.45rem;color:rgba(255,255,255,.72);
  letter-spacing:0.02em;white-space:nowrap;transition:color var(--dur) var(--ease);}
.topbar__item svg{width:0.95em;height:0.95em;flex:none;color:var(--primary);}
.topbar__item:hover{color:#fff;}
.lang-switch{display:inline-flex;align-items:center;gap:0.35rem;}
.lang-switch__btn{background:none;border:none;cursor:pointer;font:inherit;font-size:var(--text-2xs);
  color:rgba(255,255,255,.5);padding:0.15rem 0.3rem;letter-spacing:0.06em;text-transform:uppercase;
  transition:color var(--dur) var(--ease);}
.lang-switch__btn:hover{color:rgba(255,255,255,.85);}
.lang-switch__btn.is-active{color:#fff;font-weight:700;}
.lang-switch__sep{color:rgba(255,255,255,.28);}

/* ---------- HERO ---------- */
.hero{margin-bottom:var(--section-space);}
.hero__media{position:relative;overflow:hidden;}
.hero__image{width:100%;height:clamp(17rem,44vw,37rem);object-fit:cover;display:block;}
.hero__headline{font-family:var(--brand-font);text-transform:uppercase;font-weight:700;
  font-size:clamp(2.1rem,8vw,6.5rem);line-height:0.94;letter-spacing:var(--tracking-display);
  margin-top:var(--space-l);white-space:nowrap;overflow-wrap:break-word;
  background-image:url("images/hero.jpg");background-position:50% 30%;background-repeat:no-repeat;background-size:cover;
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;}
.hero__lead{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-xl);
  margin-top:var(--space-xl);flex-wrap:wrap;}
.hero__text{font-size:var(--text-l);color:var(--text-dark-muted);max-width:46rem;margin:0;}
.hero__points{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-l);
  margin-top:var(--space-2xl);padding-top:var(--space-l);border-top:1px solid var(--hairline);}
.hero__point{display:flex;align-items:center;gap:0.8rem;}
.hero__point-icon{width:2.85rem;height:2.85rem;border:1px solid var(--heading-color);border-radius:var(--radius-circle);
  display:grid;place-items:center;flex:none;color:var(--heading-color);}
.hero__point-icon svg{width:1.25rem;height:1.25rem;}
.hero__point-text{font-size:var(--text-s);color:var(--text-dark-muted);}

/* ---------- SERVICES ---------- */
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--grid-gap);}
.service-card{position:relative;border:1px solid var(--hairline);padding:var(--card-pad);
  min-height:24rem;display:flex;flex-direction:column;overflow:hidden;
  transition:background var(--dur) var(--ease),box-shadow var(--dur) var(--ease);}
.service-card:hover{background:var(--neutral-light);box-shadow:var(--shadow-l);}
.service-card__head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-m);}
.service-card__title{font-size:var(--h5);text-transform:uppercase;font-weight:600;}
.service-card__icon{width:2.5rem;height:2.5rem;flex:none;color:var(--primary-strong);}
.service-card__icon svg{width:100%;height:100%;}
.service-card__text{font-size:var(--text-s);color:var(--text-subtle);margin-top:var(--space-m);}
.service-card__media{position:absolute;left:var(--card-pad);right:var(--card-pad);bottom:var(--card-pad);
  height:11rem;overflow:hidden;}
.service-card__image{width:100%;height:100%;object-fit:cover;filter:grayscale(.28) contrast(.97);
  transition:transform .6s var(--ease),filter var(--dur) var(--ease);}
.service-card:hover .service-card__image{transform:scale(1.06);filter:none;}
.service-card--cta{justify-content:center;align-items:flex-start;gap:var(--space-m);border-color:transparent;
  background:linear-gradient(155deg,var(--primary-strong) 0%,hsl(var(--primary-h) 48% 11%) 100%);}
.service-card--cta::before{content:"";position:absolute;right:-3.5rem;top:-3.5rem;width:17rem;height:17rem;
  background:url("images/art-compass.svg") no-repeat center/contain;opacity:.16;pointer-events:none;}
.service-card--cta:hover{background:linear-gradient(155deg,var(--primary) 0%,hsl(var(--primary-h) 48% 13%) 100%);box-shadow:var(--shadow-l);}
.service-card--cta>*{position:relative;z-index:1;}
.service-card--cta .service-card__title{color:#fff;}
.service-card--cta .service-card__text{color:rgba(255,255,255,.72);}

/* ---------- WHY US ---------- */
.why__wrap{display:grid;grid-template-columns:1.05fr 1fr;gap:var(--space-2xl);align-items:center;}
.why__title{font-size:var(--h3);text-transform:uppercase;font-weight:600;margin-bottom:var(--space-m);}
.why__text{font-size:var(--text-l);color:var(--text-subtle);}
.why__list{display:flex;flex-direction:column;gap:var(--space-s);margin-top:var(--space-l);}
.why__item{display:flex;align-items:center;gap:0.7rem;font-weight:500;color:var(--heading-color);font-size:var(--text-m);}
.why__item-box{width:0.7rem;height:0.7rem;background:var(--primary);flex:none;}
.why__inner{display:flex;gap:var(--space-l);margin-top:var(--space-xl);align-items:stretch;}
.why__inner-media{width:42%;flex:none;}
.why__inner-data{display:flex;flex-direction:column;justify-content:space-between;gap:var(--space-m);align-items:flex-start;}
.why__inner-text{font-size:var(--text-s);color:var(--text-subtle);}

/* media-reveal (curtain wipe) */
.media-reveal{position:relative;overflow:hidden;}
.media-reveal__img{width:100%;height:100%;object-fit:cover;display:block;
  transform:scale(1);transition:transform 1.1s var(--ease);}
.js-reveal .media-reveal__img{transform:scale(1.12);}
.media-reveal__panel{position:absolute;inset:0;background:var(--primary);transform-origin:right;
  transform:scaleX(0);transition:transform var(--dur-slow) var(--ease);z-index:2;}
.js-reveal .media-reveal__panel{transform:scaleX(1);}
.media-reveal.is-revealed .media-reveal__panel{transform:scaleX(0);}
.media-reveal.is-revealed .media-reveal__img{transform:scale(1);}
.why__media-main{height:clamp(20rem,34vw,30rem);}
.why__inner-media .media-reveal{height:100%;min-height:13rem;}

/* ---------- WORK / REFERENCES ---------- */
.work-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--grid-gap);}
.work-card{position:relative;overflow:hidden;background:var(--neutral-light);display:flex;flex-direction:column;justify-content:flex-end;}
.work-card__img-wrap{overflow:hidden;}
.work-card__image{width:100%;height:clamp(22rem,30vw,33rem);object-fit:cover;
  transition:transform var(--dur-slow) var(--ease);}
.work-card:hover .work-card__image{transform:scale(1.06);}
.work-card__data{position:absolute;left:0;right:0;bottom:0;background:var(--neutral-light);
  padding:var(--space-l);transition:background var(--dur) var(--ease);}
.work-card:hover .work-card__data{background:#fff;}
.work-card__loc{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:0.08em;color:var(--text-subtle);}
.work-card__name{font-size:var(--h5);text-transform:uppercase;font-weight:600;margin-top:0.2rem;
  transition:color var(--dur) var(--ease);}
.work-card:hover .work-card__name{color:var(--primary-strong);}
.work-card__inner{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--dur-slow) var(--ease);}
.work-card__inner-clip{overflow:hidden;}
.work-card:hover .work-card__inner{grid-template-rows:1fr;}
.work-card__text{font-size:var(--text-s);color:var(--text-subtle);padding-top:var(--space-s);}
.work-card__view{display:inline-flex;align-items:center;gap:0.4rem;font-weight:600;font-size:var(--text-s);
  color:var(--primary-strong);padding-top:var(--space-s);}
.work-card__view svg{width:1em;height:1em;}

/* ---------- ABOUT (dark) ---------- */
.about{background:var(--base-dark);color:var(--text-on-dark);padding-block:var(--section-space);margin-bottom:var(--section-space);}
.about__wrap{display:grid;grid-template-columns:0.9fr 1.1fr;gap:var(--space-2xl);align-items:center;}
.about__images{display:grid;grid-template-columns:1fr 1fr;gap:var(--grid-gap);}
.about__thumb{height:clamp(13rem,22vw,20rem);}
.about__thumb--tall{margin-top:var(--space-2xl);}
.about__text{font-size:var(--text-xl);color:rgba(255,255,255,.86);font-weight:400;line-height:1.5;}
.site .about__title{font-size:var(--h3);text-transform:uppercase;color:#fff;font-weight:600;margin-bottom:var(--space-m);}
.founder{display:flex;align-items:center;gap:var(--space-m);margin-top:var(--space-xl);
  padding-top:var(--space-l);border-top:1px solid var(--hairline-light);}
.founder__media{width:4.5rem;height:4.5rem;border-radius:var(--radius-circle);overflow:hidden;flex:none;
  background:var(--base-light);}
.founder__media img{width:100%;height:100%;object-fit:cover;}
.founder__name{font-family:var(--brand-font);font-weight:700;font-size:var(--text-l);color:#fff;display:block;}
.founder__role{font-size:var(--text-s);color:var(--primary);font-weight:600;display:block;text-transform:uppercase;letter-spacing:0.06em;}
.founder__text{font-size:var(--text-s);color:rgba(255,255,255,.66);display:block;margin-top:0.2rem;}
.about__actions{margin-top:var(--space-xl);}

/* ---------- FACTS ---------- */
.facts{background:var(--neutral-light);padding-block:var(--space-2xl);margin-bottom:var(--section-space);}
.facts__wrap{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--neutral);
  border:1px solid var(--neutral);}
.facts__block{display:flex;flex-direction:column;gap:var(--space-l);justify-content:space-between;
  padding:var(--space-xl);background:var(--neutral-light);}
.facts__title{font-size:var(--h4);text-transform:uppercase;font-weight:600;margin-bottom:0.4rem;}
.facts__intro{font-size:var(--text-s);color:var(--text-subtle);}
.fact{display:flex;flex-direction:column;justify-content:center;gap:0.5rem;background:#fff;
  padding:var(--space-xl);}
.fact--dark{position:relative;overflow:hidden;
  background:linear-gradient(155deg,var(--primary-strong) 0%,hsl(var(--primary-h) 48% 11%) 100%);}
.fact__art{position:absolute;right:-2.75rem;bottom:-3rem;width:14.5rem;height:auto;color:#fff;
  opacity:.17;pointer-events:none;}
.fact--dark .fact__num,.fact--dark .fact__text{position:relative;z-index:1;}
.fact__num{font-size:var(--text-3xl);font-weight:700;color:var(--heading-color);line-height:1;text-transform:uppercase;}
.fact--dark .fact__num{color:#fff;}
.fact--accent .fact__num{color:var(--primary-strong);}
.fact__text{font-size:var(--text-s);color:var(--text-subtle);max-width:24rem;}
.fact--dark .fact__text{color:rgba(255,255,255,.72);}

/* ---------- CONTACT ---------- */
.contact__wrap{display:grid;grid-template-columns:0.95fr 1.05fr;gap:var(--space-2xl);align-items:stretch;}
.contact__left{display:flex;flex-direction:column;gap:var(--space-l);border:1px solid var(--hairline);padding:var(--card-pad);}
.contact__img{height:clamp(14rem,22vw,18rem);overflow:hidden;}
.contact__img img{width:100%;height:100%;object-fit:cover;}
.contact__block{display:flex;flex-direction:column;gap:0.25rem;}
.contact__label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:0.08em;color:var(--text-subtle);}
.contact__value{font-size:var(--text-l);font-weight:600;color:var(--heading-color);}
.contact__right{display:flex;flex-direction:column;gap:var(--space-l);}
.contact__lead{font-size:var(--text-m);color:var(--text-subtle);}
.contact-form{display:flex;flex-direction:column;gap:var(--space-m);}
.field{display:flex;flex-direction:column;gap:0.4rem;}
.field__label{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:0.06em;color:var(--heading-color);}
.field__input,.field__textarea{font-family:var(--text-font-family);font-size:var(--text-m);color:var(--heading-color);
  background:var(--neutral-ultra-light);border:1px solid var(--hairline);padding:0.85rem 1rem;width:100%;
  transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease);}
.field__input:focus,.field__textarea:focus{outline:none;border-color:var(--primary-strong);
  box-shadow:0 0 0 3px var(--primary-light);}
.field__textarea{min-height:8rem;resize:vertical;}
.field--error .field__input,.field--error .field__textarea{border-color:var(--error);box-shadow:0 0 0 3px var(--error-bg);}
.field__error{font-size:var(--text-xs);color:var(--error);}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-m);}
.form-note{padding:0.9rem 1rem;font-size:var(--text-s);}
.form-note--success{background:var(--success-bg);color:var(--success);border-left:3px solid var(--success);}
.form-note--error{background:var(--error-bg);color:var(--error);border-left:3px solid var(--error);}

/* ---------- FOOTER ---------- */
.site-footer{background:var(--base-ultra-dark);color:rgba(255,255,255,.7);padding-bottom:var(--space-l);overflow:hidden;}
.site-footer__top{display:flex;justify-content:space-between;align-items:center;gap:var(--space-xl);
  padding-block:var(--space-2xl);border-bottom:1px solid var(--hairline-light);flex-wrap:wrap;}
.site .site-footer__title{font-size:var(--h2);color:#fff;font-weight:600;text-transform:uppercase;max-width:24ch;line-height:1.1;}
.site-footer__links{display:flex;gap:var(--space-l);flex-wrap:wrap;padding-block:var(--space-l);border-bottom:1px solid var(--hairline-light);}
.ftr-link{display:inline-flex;align-items:center;gap:0.5rem;color:#fff;font-size:var(--text-s);font-weight:500;text-transform:uppercase;letter-spacing:0.04em;
  transition:color var(--dur) var(--ease);}
.ftr-link svg{width:1.05em;height:1.05em;color:var(--primary);}
.ftr-link:hover{color:var(--primary);}
.site-footer__cols{display:flex;justify-content:space-between;gap:var(--space-xl);flex-wrap:wrap;padding-block:var(--space-xl);}
.site-footer__col-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:0.1em;color:rgba(255,255,255,.45);margin-bottom:var(--space-s);}
.site-footer__menu{display:flex;flex-direction:column;gap:0.4rem;}
.site-footer__menu a{color:rgba(255,255,255,.7);font-size:var(--text-s);transition:color var(--dur) var(--ease);}
.site-footer__menu a:hover{color:#fff;}
.site-footer__contact a{color:#fff;font-weight:600;font-size:var(--text-m);}
.site-footer__wordmark{font-family:var(--brand-font);font-weight:800;text-transform:uppercase;
  font-size:clamp(3rem,13vw,12rem);line-height:0.8;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.16);
  letter-spacing:-0.02em;white-space:nowrap;margin-block:var(--space-l) var(--space-m);user-select:none;}
.site-footer__legal{display:flex;flex-wrap:wrap;gap:var(--space-xs) var(--space-l);
  padding-top:var(--space-l);border-top:1px solid var(--hairline-light);font-size:var(--text-xs);color:rgba(255,255,255,.5);}
.site-footer__socials{display:flex;gap:var(--space-xs);}
.site-footer__social{width:2.4rem;height:2.4rem;border:1px solid var(--hairline-light);display:grid;place-items:center;
  color:rgba(255,255,255,.8);transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease);}
.site-footer__social:hover{background:var(--primary);border-color:var(--primary);color:#fff;}
.site-footer__social svg{width:1.05rem;height:1.05rem;}

/* ---------- REVEAL (scroll) ---------- */
.reveal{transition:opacity .7s var(--ease),transform .7s var(--ease);}
.js-reveal .reveal{opacity:0;transform:translateY(34px);}
.js-reveal .reveal.is-visible{opacity:1;transform:none;}
.reveal-d1{transition-delay:.08s;} .reveal-d2{transition-delay:.16s;} .reveal-d3{transition-delay:.24s;}

/* ---------- CORNER RADII (applied globally; toggle via `corners` prop) ---------- */
.btn{border-radius:var(--radius);}
.brand__mark{border-radius:var(--radius);}
.menu-toggle{border-radius:var(--radius);}
.service-card{border-radius:var(--radius-l);}
.service-card__media{border-radius:var(--radius);}
.work-card{border-radius:var(--radius-l);}
.work-card__img-wrap{border-radius:var(--radius-l);overflow:hidden;}
.hero__media{border-radius:var(--radius-l);}
.hero__point-icon{border-radius:var(--radius-circle);}
.media-reveal{border-radius:var(--radius-l);}
.contact__left{border-radius:var(--radius-l);}
.contact__img{border-radius:var(--radius);}
.field__input,.field__textarea{border-radius:var(--radius);}
.form-note{border-radius:var(--radius);}
.facts__wrap{border-radius:var(--radius-l);overflow:hidden;}
.site-footer__social{border-radius:var(--radius);}
.lang-switch__btn{border-radius:var(--radius-xs);}

/* ---------- RESPONSIVE ---------- */
@media (max-width:75rem){
  .service-grid,.work-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:64rem){
  .menu-toggle{display:flex;}
  .topbar__left{display:none;}
  .topbar__inner{justify-content:flex-end;}
  .site-nav{position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;
    margin-left:0;background:#fff;border-bottom:1px solid var(--hairline);
    max-height:0;overflow:hidden;padding-inline:var(--gutter);transition:max-height var(--dur) var(--ease),padding var(--dur) var(--ease);}
  .site-header--open .site-nav{max-height:40rem;padding-block:var(--space-xs) var(--space-l);
    box-shadow:0 18px 40px -24px rgba(0,0,0,.35);}
  .site-nav__list{flex-direction:column;align-items:stretch;gap:0;width:100%;}
  .nav-link{padding-block:1.1rem;font-size:var(--text-l);font-weight:600;
    border-bottom:1px solid var(--hairline);}
  .site-nav__list li:last-child .nav-link{border-bottom:0;}
  .nav-link__line{display:none;}
  .site-nav__right{flex-direction:column;align-items:stretch;gap:var(--space-s);margin-top:var(--space-m);}
  .site-nav__right .btn{width:100%;}
  .site-nav__phone{justify-content:center;}
  .why__wrap,.about__wrap,.contact__wrap{grid-template-columns:1fr;}
  .facts__wrap{grid-template-columns:1fr;}
}
@media (max-width:40rem){
  .service-grid,.work-grid{grid-template-columns:1fr;}
  .form-row{grid-template-columns:1fr;}
  .hero__headline{white-space:normal;}
  .hero__points{grid-template-columns:1fr;}
  .hero__lead{flex-direction:column;align-items:flex-start;}
  .why__inner{flex-direction:column;}
  .why__inner-media{width:100%;}
  .about__images{grid-template-columns:1fr;}
  .about__thumb--tall{margin-top:0;}
}
@media (prefers-reduced-motion:reduce){
  .site *{transition-duration:.001s !important;animation:none !important;}
  .reveal{opacity:1;transform:none;}
  .media-reveal__panel{transform:scaleX(0);}
  .media-reveal__img{transform:scale(1);}
}

/* ============================================================
   ACCENT ALTERNATES — override these 6 vars + 3 channels on :root.
   forest (DEFAULT): #2f7457 / #275f48 / #1f4f3a / #173d2c / #d9ede4 / #eef7f2  (156/42%/32%)
   pine:             #1d7d6e / #166558 / #114e44 / #0c3a33 / #d5ece8 / #edf7f5  (171/63%/30%)
   moss:             #647f33 / #51682a / #41551f / #313f17 / #e7eed5 / #f4f7ec  (82/42%/34%)
   clay:             #b06440 / #95502f / #7a4026 / #5f3019 / #f3e2d8 / #faf2ec  (18/46%/47%)
   order: --primary / -hover / -strong (AA) / -strong-hover / -light / -ultra-light

   CORNERS toggle:
   rounded (DEFAULT): --radius:14px; --radius-xs:9px; --radius-l:26px;
   subtle:            --radius:3px;  --radius-xs:3px; --radius-l:3px;
   ============================================================ */

/* ============================================================
   HV — inner-page additions (page hero, team grid, map, prose).
   Same ACSS/AutoBEM system: semantic blocks, rem, var(--token).
   ============================================================ */
.page-hero{padding-block:var(--space-2xl) 0;margin-bottom:var(--space-2xl);}
.page-hero__title{font-size:clamp(1.95rem,1.25rem + 3vw,4.4rem);text-transform:uppercase;font-weight:700;letter-spacing:var(--tracking-display);margin-top:var(--space-s);hyphens:auto;}
.page-hero__lead{font-size:var(--text-l);color:var(--text-dark-muted);max-width:48rem;margin-top:var(--space-l);}

.prose{max-width:46rem;display:flex;flex-direction:column;gap:var(--space-m);}
.prose p{font-size:var(--text-l);color:var(--text-subtle);}
.prose h2,.prose h3{text-transform:uppercase;font-weight:600;margin-top:var(--space-l);}

.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--grid-gap);}
.team-card{border:1px solid var(--hairline);overflow:hidden;display:flex;flex-direction:column;background:#fff;
  border-radius:var(--radius-l);transition:box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease);}
.team-card:hover{box-shadow:var(--shadow-l);transform:translateY(-2px);}
.team-card__media{height:clamp(16rem,26vw,22rem);overflow:hidden;background:var(--neutral-light);}
.team-card__media img{width:100%;height:100%;object-fit:cover;}
.team-card__body{padding:var(--card-pad);display:flex;flex-direction:column;gap:0.3rem;}
.team-card__name{font-size:var(--h5);text-transform:uppercase;font-weight:600;}
.team-card__role{font-size:var(--text-s);color:var(--primary-strong);font-weight:600;text-transform:uppercase;letter-spacing:0.06em;}
.team-card__text{font-size:var(--text-s);color:var(--text-subtle);margin-top:var(--space-2xs);}

.map{border-radius:var(--radius-l);overflow:hidden;border:1px solid var(--hairline);margin-bottom:var(--section-space);}
.map iframe{display:block;width:100%;height:clamp(18rem,32vw,26rem);border:0;}

@media (max-width:75rem){ .team-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:40rem){ .team-grid{grid-template-columns:1fr;} }
