/* ==========================================================================
   First Move Media Group - Growth Consulting Firm
   Monochrome editorial system with a restrained brand-gold accent.
   Fonts: Satoshi (display) + General Sans (text), self-hosted, Avenir-adjacent.
   ========================================================================== */

/* --------------------------------------------------------------------------
   0. Fonts (self-hosted woff2, font-display: swap)
   -------------------------------------------------------------------------- */
@font-face { font-family:"Satoshi"; src:url("../fonts/satoshi-400.woff2") format("woff2"); font-weight:400; font-display:swap; font-style:normal; }
@font-face { font-family:"Satoshi"; src:url("../fonts/satoshi-500.woff2") format("woff2"); font-weight:500; font-display:swap; font-style:normal; }
@font-face { font-family:"Satoshi"; src:url("../fonts/satoshi-700.woff2") format("woff2"); font-weight:700; font-display:swap; font-style:normal; }
@font-face { font-family:"Satoshi"; src:url("../fonts/satoshi-900.woff2") format("woff2"); font-weight:900; font-display:swap; font-style:normal; }
@font-face { font-family:"General Sans"; src:url("../fonts/general-sans-300.woff2") format("woff2"); font-weight:300; font-display:swap; font-style:normal; }
@font-face { font-family:"General Sans"; src:url("../fonts/general-sans-400.woff2") format("woff2"); font-weight:400; font-display:swap; font-style:normal; }
@font-face { font-family:"General Sans"; src:url("../fonts/general-sans-500.woff2") format("woff2"); font-weight:500; font-display:swap; font-style:normal; }
@font-face { font-family:"General Sans"; src:url("../fonts/general-sans-600.woff2") format("woff2"); font-weight:600; font-display:swap; font-style:normal; }

/* --------------------------------------------------------------------------
   1. Design tokens
   -------------------------------------------------------------------------- */
:root{
  /* color */
  --ink:#111111;
  --paper:#ffffff;
  --paper-2:#fafafa;      /* faint section tint, same hue family */
  --paper-3:#f4f4f3;
  --grey-1:#666666;
  --grey-2:#999999;
  --hairline:#e9e9e7;
  --hairline-strong:#dededa;
  --gold:#b08a45;         /* restrained brand gold, desaturated for print-like calm */
  --gold-soft:rgba(176,138,69,.16);
  --ink-95:rgba(17,17,17,.95);

  /* type */
  --font-display:"Satoshi","Avenir Next",Avenir,"Helvetica Neue",Helvetica,Arial,sans-serif;
  --font-text:"General Sans","Avenir Next",Avenir,"Helvetica Neue",Helvetica,Arial,sans-serif;

  /* radius (one system: interactive + surfaces = 6px; hairlines = none) */
  --radius:6px;
  --radius-lg:10px;

  /* layout */
  --maxw:1240px;
  --gutter:clamp(20px,5vw,64px);

  /* motion */
  --ease:cubic-bezier(.16,1,.3,1);
  --dur:.6s;

  /* z */
  --z-nav:100;
  --z-mega:99;
  --z-float:80;
  --z-overlay:120;
}

/* --------------------------------------------------------------------------
   2. Reset & base
   -------------------------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box;}
*{margin:0;padding:0;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}

body{
  font-family:var(--font-text);
  font-weight:400;
  color:var(--ink);
  background:var(--paper);
  line-height:1.6;
  font-size:17px;
  letter-spacing:-0.006em;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}

img,svg{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer;}
ul{list-style:none;}
::selection{background:var(--ink);color:var(--paper);}

:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:3px;}

/* --------------------------------------------------------------------------
   3. Typography scale
   -------------------------------------------------------------------------- */
h1,h2,h3,h4{font-family:var(--font-display);font-weight:700;line-height:1.02;letter-spacing:-0.03em;color:var(--ink);}
.h-display{font-weight:900;font-size:clamp(2.5rem,6.2vw,5.6rem);line-height:.99;letter-spacing:-0.04em;}
.h1{font-weight:900;font-size:clamp(2.2rem,5.2vw,4.4rem);line-height:1.0;letter-spacing:-0.035em;}
.h2{font-weight:700;font-size:clamp(1.8rem,3.6vw,3.05rem);line-height:1.03;letter-spacing:-0.03em;}
.h3{font-weight:600;font-size:clamp(1.25rem,1.9vw,1.6rem);line-height:1.12;letter-spacing:-0.02em;font-family:var(--font-display);}
.lead{font-size:clamp(1.05rem,1.5vw,1.28rem);color:var(--grey-1);line-height:1.55;font-weight:400;max-width:34ch;}
.eyebrow{font-family:var(--font-text);font-weight:500;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--grey-2);}
.gold{color:var(--gold);}
.muted{color:var(--grey-1);}
.tnum{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;}

/* --------------------------------------------------------------------------
   4. Layout helpers
   -------------------------------------------------------------------------- */
.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter);}
.section{padding-block:clamp(72px,11vw,148px);position:relative;}
.section--tight{padding-block:clamp(56px,8vw,100px);}
.tint{background:var(--paper-2);}
.tint-3{background:var(--paper-3);}
.divide-top{border-top:1px solid var(--hairline);}
.center{text-align:center;}
.stack-sm>*+*{margin-top:14px;}

.section-head{max-width:62ch;}
.section-head .h2{margin-top:.5em;}
.section-head .lead{margin-top:20px;}

/* --------------------------------------------------------------------------
   5. Buttons
   -------------------------------------------------------------------------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-family:var(--font-text);font-weight:500;font-size:.98rem;letter-spacing:-0.01em;
  padding:15px 26px;border-radius:var(--radius);
  transition:transform .25s var(--ease),background-color .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease);
  will-change:transform;white-space:nowrap;
}
.btn:active{transform:translateY(1px);}
.btn--primary{background:var(--ink);color:var(--paper);}
.btn--primary:hover{background:#000;transform:translateY(-2px);}
.btn--ghost{background:transparent;color:var(--ink);border:1px solid var(--hairline-strong);}
.btn--ghost:hover{border-color:var(--ink);transform:translateY(-2px);}
.btn--lg{padding:18px 32px;font-size:1.05rem;}
.btn .arrow{transition:transform .3s var(--ease);}
.btn:hover .arrow{transform:translateX(4px);}

.link-arrow{display:inline-flex;align-items:center;gap:8px;font-weight:500;color:var(--ink);position:relative;}
.link-arrow::after{content:"";position:absolute;left:0;bottom:-3px;height:1px;width:0;background:var(--gold);transition:width .35s var(--ease);}
.link-arrow:hover::after{width:100%;}
.link-arrow .arrow{transition:transform .3s var(--ease);}
.link-arrow:hover .arrow{transform:translateX(4px);}

/* --------------------------------------------------------------------------
   6. Navigation
   -------------------------------------------------------------------------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:var(--z-nav);
  height:72px;display:flex;align-items:center;
  background:rgba(255,255,255,.72);
  backdrop-filter:saturate(180%) blur(14px);
  -webkit-backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid transparent;
  transition:height .3s var(--ease),background-color .3s var(--ease),border-color .3s var(--ease);
}
.nav.is-scrolled{height:62px;border-bottom-color:var(--hairline);background:rgba(255,255,255,.85);}
.nav__inner{position:relative;width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:24px;}
.nav__logo{display:flex;align-items:center;height:100%;}
.nav__logo img{height:26px;width:auto;}
.nav__menu{display:flex;align-items:center;gap:6px;}
.nav__item{position:relative;}
.nav__item[data-mega]{position:static;} /* mega panel centers on the nav bar, not the trigger */
.nav__link{
  display:inline-flex;align-items:center;gap:6px;
  padding:10px 14px;border-radius:var(--radius);
  font-size:.95rem;font-weight:500;color:var(--ink);
  transition:color .2s var(--ease),background-color .2s var(--ease);
}
.nav__link:hover{color:#000;background:var(--paper-3);}
.nav__link .chev{width:12px;height:12px;transition:transform .3s var(--ease);color:var(--grey-2);}
.nav__item.is-open .chev{transform:rotate(180deg);}
.nav__actions{display:flex;align-items:center;gap:14px;}
.nav__cta{font-size:.92rem;}

/* Mega menu */
.mega{
  position:absolute;top:calc(100% + 10px);left:50%;transform:translateX(-50%) translateY(8px);
  width:min(1120px,94vw);
  background:var(--paper);border:1px solid var(--hairline);border-radius:var(--radius-lg);
  box-shadow:0 24px 70px -30px rgba(17,17,17,.28),0 2px 8px -4px rgba(17,17,17,.1);
  padding:26px;z-index:var(--z-mega);
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .28s var(--ease),transform .28s var(--ease),visibility .28s;
}
.nav__item.is-open .mega{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0);}
.mega__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px 26px;}
.mega__col h4{font-family:var(--font-text);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--grey-2);margin-bottom:8px;padding:0 12px;}
.mega__link{display:block;padding:11px 12px;border-radius:var(--radius);transition:background-color .18s var(--ease);}
.mega__link:hover{background:var(--paper-2);}
.mega__link strong{display:block;font-family:var(--font-text);font-weight:600;font-size:.96rem;color:var(--ink);letter-spacing:-0.01em;}
.mega__link span{display:block;font-size:.84rem;color:var(--grey-1);margin-top:2px;line-height:1.4;}

/* mobile nav */
.nav__toggle{display:none;width:44px;height:44px;align-items:center;justify-content:center;margin-right:-10px;}
.nav__toggle span{display:block;width:22px;height:1.5px;background:var(--ink);position:relative;transition:transform .3s var(--ease),opacity .3s var(--ease);}
.nav__toggle span::before,.nav__toggle span::after{content:"";position:absolute;left:0;width:22px;height:1.5px;background:var(--ink);transition:transform .3s var(--ease);}
.nav__toggle span::before{top:-7px;}
.nav__toggle span::after{top:7px;}
.nav.is-open .nav__toggle span{background:transparent;}
.nav.is-open .nav__toggle span::before{transform:translateY(7px) rotate(45deg);}
.nav.is-open .nav__toggle span::after{transform:translateY(-7px) rotate(-45deg);}

.mobile-panel{
  position:fixed;inset:0 0 0 0;top:0;z-index:90;
  background:var(--paper);
  padding:96px var(--gutter) 40px;
  transform:translateY(-100%);opacity:0;visibility:hidden;
  transition:transform .45s var(--ease),opacity .35s var(--ease),visibility .45s;
  overflow-y:auto;
}
.mobile-panel.is-open{transform:translateY(0);opacity:1;visibility:visible;}
.mobile-panel a{display:block;font-family:var(--font-display);font-weight:600;font-size:1.6rem;letter-spacing:-0.02em;padding:14px 0;border-bottom:1px solid var(--hairline);}
.mobile-panel .sub{font-family:var(--font-text);font-weight:500;font-size:1rem;color:var(--grey-1);padding:10px 0;border:none;}
.mobile-panel .btn{width:100%;margin-top:24px;}

/* --------------------------------------------------------------------------
   7. Hero
   -------------------------------------------------------------------------- */
.hero{position:relative;padding-top:clamp(118px,14vh,160px);padding-bottom:clamp(48px,7vw,88px);overflow:hidden;}
.hero__eyebrow{display:block;margin-bottom:22px;}
.hero h1{margin-bottom:clamp(36px,5vw,58px);max-width:20ch;}
.hero__row{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(32px,5vw,72px);align-items:end;}
.hero__sub{font-size:clamp(1.08rem,1.5vw,1.32rem);color:var(--grey-1);max-width:40ch;line-height:1.5;margin-bottom:36px;}
.hero__ctas{display:flex;flex-wrap:wrap;gap:14px;}
.hero__aside{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--hairline);}
.metric{padding:22px 0;border-bottom:1px solid var(--hairline);}
.metric__value{font-family:var(--font-display);font-weight:900;font-size:clamp(2.2rem,4vw,3.2rem);letter-spacing:-0.04em;line-height:1;color:var(--ink);}
.metric__value .suffix{color:var(--gold);}
.metric__label{font-size:.9rem;color:var(--grey-1);margin-top:8px;}
.hero__note{font-size:.8rem;color:var(--grey-2);margin-top:16px;}

/* thin ascending accent line behind hero (motivated: growth trajectory) */
.hero__spark{position:absolute;right:-3%;bottom:4%;width:44%;max-width:600px;opacity:.45;pointer-events:none;z-index:-1;}
@media (max-width:900px){.hero__spark{display:none;}}

/* --------------------------------------------------------------------------
   8. Marquee (trusted-by) - one per page
   -------------------------------------------------------------------------- */
.trusted{padding-block:clamp(40px,5vw,64px);border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);}
.trusted__label{text-align:center;color:var(--grey-2);font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:30px;}
.marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);}
.marquee__track{display:flex;gap:64px;width:max-content;animation:marquee 38s linear infinite;}
.marquee__track:hover{animation-play-state:paused;}
.marquee__item{display:flex;align-items:center;height:34px;color:var(--grey-1);font-family:var(--font-display);font-weight:600;font-size:1.15rem;letter-spacing:-0.02em;opacity:.62;transition:opacity .3s var(--ease);white-space:nowrap;}
.marquee__item:hover{opacity:1;color:var(--ink);}
@keyframes marquee{to{transform:translateX(-50%);}}
@media (prefers-reduced-motion:reduce){.marquee__track{animation:none;flex-wrap:wrap;justify-content:center;}}

/* --------------------------------------------------------------------------
   9. Capabilities (offset list, not equal cards)
   -------------------------------------------------------------------------- */
.cap-list{display:grid;gap:0;margin-top:56px;border-top:1px solid var(--hairline);}
.cap{
  display:grid;grid-template-columns:64px minmax(0,1fr) minmax(0,1.15fr);gap:clamp(20px,4vw,56px);
  padding:clamp(30px,4vw,48px) 0;border-bottom:1px solid var(--hairline);
  align-items:start;transition:background-color .3s var(--ease);
}
.cap:hover{background:var(--paper-2);}
.cap__idx{font-family:var(--font-display);font-weight:500;font-size:.9rem;color:var(--grey-2);padding-top:6px;font-variant-numeric:tabular-nums;}
.cap__title .h3{margin-bottom:12px;}
.cap__tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;}
.tag{font-size:.78rem;color:var(--grey-1);border:1px solid var(--hairline-strong);padding:5px 11px;border-radius:999px;transition:border-color .2s var(--ease),color .2s var(--ease);}
.cap:hover .tag{border-color:var(--hairline);}
.cap__body p{color:var(--grey-1);font-size:1.02rem;}
.cap__result{margin-top:20px;display:flex;align-items:baseline;gap:12px;}
.cap__result b{font-family:var(--font-display);font-weight:900;font-size:1.9rem;letter-spacing:-0.03em;color:var(--ink);}
.cap__result span{font-size:.9rem;color:var(--grey-1);}

/* --------------------------------------------------------------------------
   10. Growth Framework (horizontal timeline)
   -------------------------------------------------------------------------- */
.framework{position:relative;}
.fw-track{display:grid;grid-template-columns:repeat(5,1fr);gap:24px;margin-top:64px;position:relative;}
.fw-track::before{content:"";position:absolute;top:11px;left:0;right:0;height:1px;background:var(--hairline);}
.fw-line{position:absolute;top:11px;left:0;height:1px;background:var(--gold);width:0;transition:width 1.4s var(--ease);}
.fw-step{position:relative;padding-top:34px;}
.fw-step__node{position:absolute;top:5px;left:0;width:13px;height:13px;border-radius:50%;background:var(--paper);border:1.5px solid var(--grey-2);transition:border-color .4s var(--ease),background-color .4s var(--ease);}
.fw-step.is-active .fw-step__node{border-color:var(--gold);background:var(--gold);}
.fw-step__k{font-family:var(--font-display);font-weight:500;font-size:.78rem;color:var(--grey-2);letter-spacing:.02em;}
.fw-step h3{font-size:1.28rem;margin:8px 0 10px;}
.fw-step p{font-size:.94rem;color:var(--grey-1);line-height:1.5;}
@media (max-width:820px){
  .fw-track{grid-template-columns:1fr;gap:0;}
  .fw-track::before{top:0;bottom:0;left:6px;right:auto;width:1px;height:auto;}
  .fw-line{top:0;left:6px;width:1px!important;height:0;transition:height 1.4s var(--ease);}
  .fw-step{padding:0 0 34px 34px;}
  .fw-step__node{top:4px;left:0;}
}

/* --------------------------------------------------------------------------
   11. Success stories (feature rows w/ imagery)
   -------------------------------------------------------------------------- */
.case{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,72px);align-items:center;padding-block:clamp(36px,5vw,64px);border-top:1px solid var(--hairline);}
.case:first-of-type{border-top:none;}
.case__media{position:relative;border-radius:var(--radius-lg);overflow:hidden;background:var(--paper-3);aspect-ratio:4/3;}
.case__media img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.02);transition:transform .8s var(--ease),filter .6s var(--ease);}
.case:hover .case__media img{transform:scale(1.04);}
.case__sector{font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:600;}
.case h3{font-size:clamp(1.5rem,2.4vw,2.1rem);margin:14px 0 18px;}
.case__row{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;padding:14px 0;border-top:1px solid var(--hairline);font-size:.96rem;}
.case__row dt{color:var(--grey-2);font-weight:500;white-space:nowrap;}
.case__row dd{color:var(--ink);}
.case__kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:26px;}
.case__kpi b{display:block;font-family:var(--font-display);font-weight:900;font-size:clamp(1.6rem,2.6vw,2.3rem);letter-spacing:-0.03em;}
.case__kpi span{display:block;font-size:.82rem;color:var(--grey-1);margin-top:4px;line-height:1.3;}
.case--rev .case__media{order:2;}
@media (max-width:860px){
  .case{grid-template-columns:1fr;}
  .case--rev .case__media{order:0;}
}

/* --------------------------------------------------------------------------
   12. Industries grid
   -------------------------------------------------------------------------- */
.ind-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--hairline);border:1px solid var(--hairline);border-radius:var(--radius-lg);overflow:hidden;margin-top:52px;}
.ind{background:var(--paper);padding:30px 26px;min-height:168px;display:flex;flex-direction:column;justify-content:space-between;transition:background-color .3s var(--ease);position:relative;}
.ind:hover{background:var(--paper-2);}
.ind__n{font-family:var(--font-display);font-weight:500;font-size:.8rem;color:var(--grey-2);font-variant-numeric:tabular-nums;}
.ind h3{font-size:1.32rem;letter-spacing:-0.02em;}
.ind p{font-size:.86rem;color:var(--grey-1);margin-top:6px;}
.ind__arrow{position:absolute;top:26px;right:24px;opacity:0;transform:translate(-4px,4px);transition:opacity .3s var(--ease),transform .3s var(--ease);color:var(--gold);}
.ind:hover .ind__arrow{opacity:1;transform:translate(0,0);}
.ind--cta{background:var(--ink);}
.ind--cta:hover{background:#000;}
.ind--cta h3{color:var(--paper);}
.ind--cta p{color:rgba(255,255,255,.6);}
.ind--cta .ind__arrow{opacity:1;transform:none;color:var(--gold);top:auto;bottom:28px;right:24px;}
.ind--cta:hover .ind__arrow{transform:translate(3px,0);}
@media (max-width:1000px){.ind-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:520px){.ind-grid{grid-template-columns:1fr;}}

/* --------------------------------------------------------------------------
   13. Why First Move (split: statement + proof points)
   -------------------------------------------------------------------------- */
.why{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(36px,6vw,88px);align-items:start;}
.why__points{display:grid;gap:0;border-top:1px solid var(--hairline);}
.why__point{padding:26px 0;border-bottom:1px solid var(--hairline);display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:start;}
.why__point .k{font-family:var(--font-display);font-weight:900;font-size:1.05rem;color:var(--gold);line-height:1.4;}
.why__point h3{font-size:1.18rem;margin-bottom:6px;}
.why__point p{font-size:.96rem;color:var(--grey-1);}
@media (max-width:860px){.why{grid-template-columns:1fr;}}

/* --------------------------------------------------------------------------
   14. Testimonial
   -------------------------------------------------------------------------- */
.quote{max-width:26ch;}
.quote blockquote{font-family:var(--font-display);font-weight:500;font-size:clamp(1.5rem,3vw,2.4rem);line-height:1.2;letter-spacing:-0.025em;color:var(--ink);}
.quote figcaption{margin-top:26px;font-size:.95rem;color:var(--grey-1);}
.quote figcaption b{color:var(--ink);font-weight:600;}

/* --------------------------------------------------------------------------
   15. FAQ
   -------------------------------------------------------------------------- */
.faq{border-top:1px solid var(--hairline);margin-top:48px;}
.faq__item{border-bottom:1px solid var(--hairline);}
.faq__q{width:100%;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:26px 0;text-align:left;font-family:var(--font-display);font-weight:600;font-size:clamp(1.05rem,1.6vw,1.28rem);letter-spacing:-0.015em;color:var(--ink);}
.faq__q .pm{position:relative;width:16px;height:16px;flex-shrink:0;}
.faq__q .pm::before,.faq__q .pm::after{content:"";position:absolute;background:var(--grey-1);transition:transform .3s var(--ease),background-color .3s var(--ease);}
.faq__q .pm::before{top:7.25px;left:0;width:16px;height:1.5px;}
.faq__q .pm::after{left:7.25px;top:0;height:16px;width:1.5px;}
.faq__item.is-open .pm::after{transform:scaleY(0);}
.faq__item.is-open .pm::before{background:var(--gold);}
.faq__a{overflow:hidden;height:0;transition:height .4s var(--ease);}
.faq__a-inner{padding:0 0 26px;color:var(--grey-1);font-size:1rem;max-width:70ch;}

/* --------------------------------------------------------------------------
   16. Final CTA
   -------------------------------------------------------------------------- */
.cta{background:var(--ink);color:var(--paper);border-radius:0;position:relative;overflow:hidden;}
.cta .wrap{position:relative;z-index:1;}
.cta h2{color:var(--paper);}
.cta .lead{color:rgba(255,255,255,.66);max-width:40ch;}
.cta__inner{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:48px;align-items:end;}
.cta .btn--primary{background:var(--paper);color:var(--ink);}
.cta .btn--primary:hover{background:#fff;}
.cta .btn--ghost{border-color:rgba(255,255,255,.24);color:var(--paper);}
.cta .btn--ghost:hover{border-color:var(--paper);}
.cta__spark{position:absolute;inset:0;opacity:.14;pointer-events:none;}
@media (max-width:860px){.cta__inner{grid-template-columns:1fr;align-items:start;}}

/* --------------------------------------------------------------------------
   17. Contact form
   -------------------------------------------------------------------------- */
.contact{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(36px,6vw,80px);align-items:start;}
.form{display:grid;gap:18px;}
.field{display:grid;gap:8px;}
.field label{font-size:.85rem;font-weight:500;color:var(--ink);}
.field input,.field textarea,.field select{
  width:100%;font:inherit;font-size:1rem;color:var(--ink);background:var(--paper);
  border:1px solid var(--hairline-strong);border-radius:var(--radius);padding:14px 16px;
  transition:border-color .2s var(--ease),box-shadow .2s var(--ease);
}
.field input::placeholder,.field textarea::placeholder{color:var(--grey-2);}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px var(--gold-soft);}
.field textarea{min-height:120px;resize:vertical;}
.field--row{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.field .err{font-size:.8rem;color:#b23b3b;min-height:0;}
.field.invalid input,.field.invalid textarea{border-color:#b23b3b;}
.form__note{font-size:.82rem;color:var(--grey-2);}
.form__ok{display:none;padding:16px;border:1px solid var(--hairline);border-radius:var(--radius);background:var(--paper-2);font-size:.95rem;}
.form.sent .form__ok{display:block;}
.contact__side .h3{margin-bottom:14px;}
.contact__side ul{display:grid;gap:2px;margin-top:22px;}
.contact__side .cline{display:flex;gap:12px;align-items:center;padding:12px 0;border-top:1px solid var(--hairline);color:var(--grey-1);font-size:.98rem;}
.contact__side .cline b{color:var(--ink);font-weight:500;}
@media (max-width:860px){.contact{grid-template-columns:1fr;}.field--row{grid-template-columns:1fr;}}

/* --------------------------------------------------------------------------
   18. Footer
   -------------------------------------------------------------------------- */
.footer{background:var(--ink);color:rgba(255,255,255,.7);padding-block:clamp(56px,7vw,88px) 34px;}
.footer a{color:rgba(255,255,255,.7);transition:color .2s var(--ease);}
.footer a:hover{color:#fff;}
.footer__top{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px;padding-bottom:56px;border-bottom:1px solid rgba(255,255,255,.12);}
.footer__brand img{height:30px;margin-bottom:22px;}
.footer__brand p{max-width:34ch;font-size:.95rem;color:rgba(255,255,255,.6);}
.footer__social{display:flex;gap:12px;margin-top:26px;}
.footer__social a{width:40px;height:40px;border:1px solid rgba(255,255,255,.16);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;transition:border-color .2s var(--ease),background-color .2s var(--ease);}
.footer__social a:hover{border-color:rgba(255,255,255,.4);background:rgba(255,255,255,.05);}
.footer__col h4{color:#fff;font-family:var(--font-text);font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:18px;font-weight:500;}
.footer__col a{display:block;padding:7px 0;font-size:.95rem;}
.footer__bottom{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:center;padding-top:28px;font-size:.85rem;color:rgba(255,255,255,.45);}
.footer__bottom a{color:rgba(255,255,255,.45);}
@media (max-width:900px){.footer__top{grid-template-columns:1fr 1fr;gap:36px;}.footer__brand{grid-column:1/-1;}}
@media (max-width:520px){.footer__top{grid-template-columns:1fr;}}

/* --------------------------------------------------------------------------
   19. Floating actions (WhatsApp)
   -------------------------------------------------------------------------- */
.float-wa{
  position:fixed;right:22px;bottom:22px;z-index:var(--z-float);
  width:54px;height:54px;border-radius:50%;background:var(--ink);color:#fff;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 12px 34px -10px rgba(17,17,17,.5);
  transition:transform .3s var(--ease),background-color .3s var(--ease);
}
.float-wa:hover{transform:translateY(-3px) scale(1.04);background:#000;}
.float-wa svg{width:26px;height:26px;}

/* --------------------------------------------------------------------------
   20. Scroll reveal
   -------------------------------------------------------------------------- */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s var(--ease),transform .7s var(--ease);}
.reveal.in{opacity:1;transform:none;}
.reveal[data-d="1"]{transition-delay:.07s;}
.reveal[data-d="2"]{transition-delay:.14s;}
.reveal[data-d="3"]{transition-delay:.21s;}
.reveal[data-d="4"]{transition-delay:.28s;}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none;}
  .btn,.link-arrow,*{transition-duration:.01ms!important;}
}

/* --------------------------------------------------------------------------
   20b. Language switcher
   -------------------------------------------------------------------------- */
.lang{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-text);font-weight:500;font-size:.85rem;letter-spacing:.03em;}
.lang__opt{color:var(--grey-2);padding:6px 3px;transition:color .2s var(--ease);border-radius:3px;}
.lang__opt:hover{color:var(--ink);}
.lang__opt.is-active{color:var(--ink);}
.lang__sep{color:var(--hairline-strong);font-weight:300;}

/* --------------------------------------------------------------------------
   20c. Cookie banner
   -------------------------------------------------------------------------- */
.cookie{
  position:fixed;left:22px;right:22px;bottom:22px;z-index:var(--z-overlay);
  max-width:600px;margin-inline:auto;
  background:var(--paper);border:1px solid var(--hairline);border-radius:var(--radius-lg);
  box-shadow:0 24px 70px -30px rgba(17,17,17,.32),0 2px 8px -4px rgba(17,17,17,.1);
  padding:16px 20px;display:flex;align-items:center;gap:18px;flex-wrap:wrap;justify-content:space-between;
  transform:translateY(160%);opacity:0;visibility:hidden;
  transition:transform .5s var(--ease),opacity .4s var(--ease),visibility .5s;
}
.cookie.is-visible{transform:none;opacity:1;visibility:visible;}
.cookie__text{font-size:.86rem;color:var(--grey-1);flex:1 1 240px;line-height:1.45;}
.cookie__text a{color:var(--ink);text-decoration:underline;text-underline-offset:2px;}
.cookie__actions{display:flex;gap:10px;flex-shrink:0;}
.btn--sm{padding:10px 18px;font-size:.85rem;}
.cookie-visible .float-wa{bottom:104px;transition:bottom .5s var(--ease),transform .3s var(--ease),background-color .3s var(--ease);}
@media (min-width:680px){.cookie-visible .float-wa{bottom:22px;}}

/* --------------------------------------------------------------------------
   20d. Legal / privacy page
   -------------------------------------------------------------------------- */
.legal{max-width:780px;padding-top:130px;padding-bottom:clamp(64px,10vw,110px);}
.legal__back{margin-bottom:30px;font-size:.9rem;color:var(--grey-1);}
.legal__back svg{transition:transform .3s var(--ease);}
.legal__back:hover svg{transform:translateX(-4px);}
.legal h1{margin-bottom:12px;}
.legal__updated{color:var(--grey-2);font-size:.9rem;margin-bottom:46px;}
.legal__block{margin-top:34px;}
.legal__block h2{font-size:1.32rem;margin-bottom:12px;letter-spacing:-0.02em;}
.legal__block p{color:var(--grey-1);margin-bottom:12px;max-width:68ch;}

/* --------------------------------------------------------------------------
   21. Responsive
   -------------------------------------------------------------------------- */
/* nav condenses to a single line; ES labels run longer than EN, so collapse early */
@media (max-width:1024px){
  .nav__menu,.nav__actions .nav__cta-secondary{display:none;}
  .nav__toggle{display:flex;}
}
.mobile-panel .lang{display:flex;gap:12px;margin:22px 0 6px;}
.mobile-panel .lang__opt{font-family:var(--font-text);font-weight:500;font-size:1.05rem;padding:6px 2px;border:none;display:inline-flex;}
.mobile-panel .btn{border:none;}
@media (max-width:1040px){
  .cap{grid-template-columns:44px 1fr;gap:16px 28px;}
  .cap__body{grid-column:2/3;margin-top:8px;}
}
@media (max-width:900px){
  .hero__row{grid-template-columns:1fr;gap:40px;align-items:start;}
  .hero__aside{max-width:440px;}
  .hero h1{max-width:none;}
  .cta__inner,.contact,.why{gap:36px;}
}
@media (max-width:640px){
  body{font-size:16px;}
  .section{padding-block:clamp(56px,14vw,88px);}
  .case__kpis{gap:14px;}
  .hero__ctas .btn{flex:1;}
  .nav__actions .lang{display:none;} /* switcher lives in the mobile panel here */
  .cookie{padding:16px;gap:12px;}
  .cookie__actions{width:100%;}
  .cookie__actions .btn{flex:1;}
}
@media (min-width:1600px){
  :root{--maxw:1340px;}
}
