/* =====================================================================
   Assist' à faire — Design system (v2)
   Palette conservée : navy #252958 · orange #EA5927 · crème #FAEAE1
   ===================================================================== */

:root{
  /* Brand (locked) */
  --navy:#252958;
  --orange:#EA5927;
  --cream:#FAEAE1;

  /* Derived tints */
  --navy-2:#2f3570;
  --navy-3:#3a4088;
  --orange-2:#f4713f;
  --cream-2:#f3ddd0;
  --paper:#FBF1EA;

  /* Semantic tokens (light surface default) */
  --bg:var(--cream);
  --fg:var(--navy);
  --muted:rgba(37,41,88,0.62);
  --hairline:rgba(37,41,88,0.14);
  --surface:#ffffff;
  --accent:var(--orange);

  /* Type */
  --font-display:"Bricolage Grotesque",system-ui,sans-serif;
  --font-body:"Schibsted Grotesk",system-ui,sans-serif;

  /* Spacing / layout */
  --container:1320px;
  --gutter:clamp(20px,4vw,56px);
  --radius:20px;
  --radius-sm:12px;

  /* Motion */
  --ease:cubic-bezier(.22,1,.36,1);
  --dur:.5s;

  --z-nav:900;
  --z-cursor:9998;
  --z-pre:10000;
}

/* ---------- Reset ---------- */
*{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
html,body{ margin:0; padding:0; }
body{
  background:var(--bg);
  font-family:var(--font-body);
  color:var(--fg);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
  line-height:1.5;
}
img{ max-width:100%; display:block; }
a{ color:inherit; }
button{ font-family:inherit; }
::selection{ background:var(--orange); color:var(--cream); }
:focus-visible{ outline:2px solid var(--orange); outline-offset:3px; border-radius:4px; }

.glos{ font-family:var(--font-display); }
.tabnum{ font-variant-numeric:tabular-nums; }

/* ---------- Layout helpers ---------- */
.container{ width:100%; max-width:var(--container); margin:0 auto; padding-left:var(--gutter); padding-right:var(--gutter); }
.section{ position:relative; width:100%; }
.section--pad{ padding-block:clamp(90px,13vh,180px); }

/* Section label : (0x) — TITRE */
.eyebrow{
  display:inline-flex; align-items:center; gap:12px;
  font-size:13px; letter-spacing:.2em; text-transform:uppercase; font-weight:600;
}
.eyebrow .num{ font-family:var(--font-display); color:var(--orange); }
.eyebrow .line{ width:28px; height:1px; background:currentColor; opacity:.5; }
.eyebrow--muted{ color:var(--muted); }

.h-display{
  font-family:var(--font-display);
  font-weight:500;
  line-height:.98;
  letter-spacing:-.035em;
  margin:0;
}
.text-accent{ color:var(--orange); }

/* ---------- Buttons ---------- */
.btn{
  --btn-bg:var(--navy); --btn-fg:var(--cream);
  display:inline-flex; align-items:center; gap:10px;
  text-decoration:none; cursor:pointer; border:none;
  background:var(--btn-bg); color:var(--btn-fg);
  font-weight:600; font-size:15px; line-height:1;
  padding:16px 26px; border-radius:100px;
  transition:transform .5s var(--ease), background .35s var(--ease), color .35s var(--ease), box-shadow .35s var(--ease);
  position:relative; overflow:hidden; white-space:nowrap;
}
.btn .btn-arrow{ transition:transform .4s var(--ease); }
.btn:hover .btn-arrow{ transform:translateX(4px); }
.btn:hover{ box-shadow:0 12px 30px -12px rgba(37,41,88,.5); }
.btn--accent{ --btn-bg:var(--orange); --btn-fg:var(--cream); }
.btn--accent:hover{ box-shadow:0 12px 30px -12px rgba(234,89,39,.6); }
.btn--light{ --btn-bg:var(--cream); --btn-fg:var(--navy); }
.btn--ghost{
  --btn-bg:transparent; --btn-fg:var(--navy);
  border:1.5px solid var(--hairline);
}
.btn--ghost:hover{ background:var(--navy); color:var(--cream); border-color:var(--navy); }
.btn--lg{ padding:20px 40px; font-size:clamp(16px,1.3vw,18px); }

.pill{
  display:inline-flex; align-items:center; gap:8px;
  font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  border:1px solid currentColor; border-radius:100px; padding:6px 12px;
  opacity:.85;
}

/* ---------- Custom cursor ---------- */
#af-cursor-dot,#af-cursor-ring{ position:fixed; top:0; left:0; pointer-events:none; z-index:var(--z-cursor); transform:translate(-50%,-50%); }
#af-cursor-dot{ width:7px; height:7px; border-radius:50%; background:var(--orange); z-index:9999; }
#af-cursor-ring{
  width:42px; height:42px; border-radius:50%; border:1.5px solid rgba(37,41,88,.45);
  display:flex; align-items:center; justify-content:center;
  transition:width .35s var(--ease),height .35s var(--ease),background .35s,border-color .35s;
}
#af-cursor-label{ font-family:var(--font-body); font-size:11px; letter-spacing:.04em; color:var(--cream); opacity:0; transition:opacity .25s; text-transform:uppercase; }

/* ---------- Preloader ---------- */
#af-preloader{
  position:fixed; inset:0; z-index:var(--z-pre); background:var(--navy);
  display:flex; flex-direction:column; align-items:center; justify-content:center; color:var(--cream);
}
#af-pre-logo{ font-family:var(--font-display); font-weight:600; font-size:clamp(28px,5vw,56px); letter-spacing:-.02em; transform:translateY(110%); }
.af-pre-track{ width:min(46vw,420px); height:1px; background:rgba(250,234,225,.2); margin-top:34px; position:relative; overflow:hidden; }
#af-pre-bar{ position:absolute; inset:0; background:var(--orange); transform:scaleX(0); transform-origin:left; }
#af-pre-count{ position:absolute; bottom:7vh; right:7vw; font-family:var(--font-display); font-size:clamp(48px,10vw,120px); font-weight:300; line-height:1; color:rgba(250,234,225,.92); }
.af-pre-tag{ position:absolute; bottom:7vh; left:7vw; font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:rgba(250,234,225,.5); }

/* ---------- Navigation ---------- */
#af-nav{
  position:fixed; top:0; left:0; width:100%; z-index:var(--z-nav);
  display:flex; align-items:center; justify-content:space-between;
  padding:22px var(--gutter);
  transition:background .5s var(--ease),backdrop-filter .5s var(--ease),padding .5s var(--ease),box-shadow .5s var(--ease),color .4s var(--ease);
  color:var(--navy);
}
#af-nav.is-dark{ color:var(--cream); }
#af-nav.is-scrolled{ padding:14px var(--gutter); backdrop-filter:blur(14px); }
#af-nav.is-scrolled:not(.is-dark){ background:rgba(250,234,225,.82); box-shadow:0 1px 0 rgba(37,41,88,.08); }
#af-nav.is-scrolled.is-dark{ background:rgba(29,32,70,.72); box-shadow:0 1px 0 rgba(250,234,225,.08); }

.af-logo{ display:flex; align-items:center; text-decoration:none; }
.af-logo img{ height:44px; width:auto; display:block; transition:filter .4s var(--ease),height .5s var(--ease); }
#af-nav.is-scrolled .af-logo img{ height:38px; }
/* two-tone logo is navy+orange; render it warm-white so it stays legible on dark sections */
#af-nav.is-dark .af-logo img{ filter:brightness(0) invert(1); }

#af-nav-links{ display:flex; align-items:center; gap:clamp(18px,2.6vw,38px); }
.af-navlink{ text-decoration:none; color:inherit; font-weight:500; font-size:15px; letter-spacing:.01em; position:relative; }
.af-navlink::after{ content:""; position:absolute; left:0; bottom:-4px; width:100%; height:1.5px; background:currentColor; transform:scaleX(0); transform-origin:right; transition:transform .4s var(--ease); }
.af-navlink:hover::after{ transform:scaleX(1); transform-origin:left; }
.af-nav-cta{
  text-decoration:none; font-weight:600; font-size:15px; padding:12px 22px; border-radius:100px;
  background:var(--navy); color:var(--cream); transition:background .4s var(--ease),color .4s var(--ease);
}
#af-nav.is-dark .af-nav-cta{ background:var(--orange); color:var(--cream); }

/* Mobile menu toggle */
.af-burger{ display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:8px; }
.af-burger span{ width:24px; height:2px; background:currentColor; border-radius:2px; transition:transform .35s var(--ease),opacity .35s var(--ease); }
body.af-menu-open .af-burger span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
body.af-menu-open .af-burger span:nth-child(2){ opacity:0; }
body.af-menu-open .af-burger span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

#af-mobile-menu{
  position:fixed; inset:0; z-index:890; background:var(--navy); color:var(--cream);
  display:flex; flex-direction:column; justify-content:center; gap:8px; padding:0 var(--gutter);
  transform:translateY(-100%); transition:transform .6s var(--ease); pointer-events:none;
}
body.af-menu-open #af-mobile-menu{ transform:translateY(0); pointer-events:auto; }
#af-mobile-menu a{ font-family:var(--font-display); font-weight:500; font-size:clamp(34px,9vw,64px); letter-spacing:-.03em; text-decoration:none; color:inherit; padding:8px 0; }
#af-mobile-menu a .idx{ font-size:14px; color:var(--orange); margin-right:14px; vertical-align:super; font-family:var(--font-body); }
.af-mobile-foot{ margin-top:40px; display:flex; gap:20px; font-size:14px; color:rgba(250,234,225,.6); }
[data-magnetic]{ width:fit-content; }
/* ---------- HERO ---------- */
#af-hero{
  position:relative; width:100%; min-height:100svh; overflow:hidden;
  display:flex; align-items:center; justify-content:center; background:var(--cream);
}
.af-hero-grid{
  position:absolute; inset:0; z-index:0; pointer-events:none;
  background-image:linear-gradient(var(--hairline) 1px,transparent 1px),linear-gradient(90deg,var(--hairline) 1px,transparent 1px);
  background-size:clamp(60px,7vw,110px) clamp(60px,7vw,110px);
  -webkit-mask-image:radial-gradient(120% 100% at 50% 40%,#000 30%,transparent 78%);
  mask-image:radial-gradient(120% 100% at 50% 40%,#000 30%,transparent 78%);
  opacity:.6;
}
#af-sphere-stage{
  position:absolute; top:50%; left:50%; width:min(37vh,310px); height:min(37vh,310px);
  transform:translate(-50%,-50%); will-change:transform; z-index:2;
}
#af-sphere-canvas{ width:100%; height:100%; display:block; }
#af-hero-content{
  position:relative; z-index:5; width:100%; max-width:var(--container);
  min-height:100svh; padding:17vh var(--gutter) 15vh; text-align:center; pointer-events:none;
  display:flex; flex-direction:column; align-items:center; justify-content:space-between;
}
#af-hero-eyebrow{ color:var(--orange); margin-bottom:26px; }
#af-hero-title{ font-size:clamp(39px,6vw,110px); color:var(--navy); }
#af-hero-sub{ margin:0 auto; max-width:550px; font-size:clamp(14px,1.15vw,17px); line-height:1.6; color:var(--muted);}
#af-hero-actions{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; margin-top:30px; pointer-events:auto; }

#af-hero-switch{ position:absolute; bottom:34px; left:50%; transform:translateX(-50%); z-index:6; display:flex; align-items:center; gap:16px; }
#af-hero-switch .lbl{ font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); }
.af-hero-dot{ cursor:pointer; background:none; border:none; padding:6px 4px; font-family:var(--font-display); font-size:14px; font-weight:600; color:rgba(37,41,88,.4); }
.af-hero-dot.is-active{ color:var(--navy); }
#af-scroll-hint{ position:absolute; bottom:34px; right:var(--gutter); z-index:6; display:flex; align-items:center; gap:10px; font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); }
#af-scroll-hint .dot{ width:30px; height:30px; border-radius:50%; border:1px solid var(--hairline); display:inline-flex; align-items:center; justify-content:center; animation:afFloatDot 2.4s ease-in-out infinite; }

/* ---------- Marquee ---------- */
.af-marquee{ background:var(--orange); color:var(--cream); overflow:hidden; padding:22px 0; border-block:1px solid rgba(250,234,225,.18); }
.af-marquee__row{ display:flex; width:max-content; gap:0; will-change:transform; animation:afMarquee 34s linear infinite; }
.af-marquee:hover .af-marquee__row{ animation-play-state:paused; }
.af-marquee__item{ display:inline-flex; align-items:center; gap:26px; padding-right:26px; font-family:var(--font-display); font-weight:500; font-size:clamp(20px,2.4vw,34px); letter-spacing:-.02em; }
.af-marquee__item .sep{ width:9px; height:9px; border-radius:50%; background:var(--cream); opacity:.85; }

/* ---------- About ---------- */
#af-about{ background:var(--navy); color:var(--cream); overflow:hidden; }
#af-about .eyebrow{ color:rgba(250,234,225,.7); }
#af-about-title{ font-weight:400; font-size:clamp(28px,4.4vw,68px); line-height:1.08; letter-spacing:-.025em; margin:0; max-width:17ch; }
.af-about-body{ display:grid; grid-template-columns:1.05fr 1fr; gap:clamp(40px,5vw,90px); margin-top:clamp(60px,8vh,110px); align-items:stretch; }
#af-bureau-wrap{ position:relative; min-height:420px; border-radius:var(--radius); background:linear-gradient(160deg,#2c3168,#1c2046); overflow:hidden; border:1px solid rgba(250,234,225,.08); }
#af-bureau-canvas{ width:100%; height:100%; display:block; position:absolute; inset:0; }
.af-bureau-cap{ position:absolute; bottom:16px; left:18px; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:rgba(250,234,225,.5); }
.af-about-col{ display:flex; flex-direction:column; gap:32px; justify-content:center; }
.af-about-col p{ font-size:clamp(17px,1.5vw,22px); line-height:1.55; color:rgba(250,234,225,.92); margin:0; }
.af-stats{ display:grid; grid-template-columns:1fr 1fr; gap:28px; border-top:1px solid rgba(250,234,225,.15); padding-top:32px; }
.af-stat .num{ font-family:var(--font-display); font-size:clamp(40px,5vw,68px); font-weight:300; line-height:1; }
.af-stat .num.o{ color:var(--orange); }
.af-stat .lbl{ margin-top:10px; font-size:14px; color:rgba(250,234,225,.6); }

/* ---------- Services (horizontal scroll) ---------- */
#af-services{ background:var(--cream); overflow:hidden; }
#af-h-pin{ height:100svh; width:100%; display:flex; align-items:center; overflow:hidden; }
#af-h-track{ display:flex; align-items:stretch; height:78vh; will-change:transform; padding:0 var(--gutter); gap:26px; }
.af-h-intro{ flex:0 0 auto; width:clamp(340px,38vw,540px); display:flex; flex-direction:column; justify-content:center; padding-right:clamp(24px,3vw,60px); }
.af-h-intro h2{ font-weight:400; font-size:clamp(34px,4.6vw,72px); line-height:1.02; letter-spacing:-.03em; margin:18px 0 0; }
.af-h-intro p{ margin-top:22px; max-width:36ch; font-size:16px; line-height:1.6; color:var(--muted); }
.af-h-progress{ margin-top:34px; width:180px; height:3px; border-radius:3px; background:var(--hairline); overflow:hidden; }
.af-h-progress i{ display:block; height:100%; width:20%; background:var(--orange); transform-origin:left; }

.af-card{
  flex:0 0 auto; width:clamp(300px,32vw,460px); position:relative; border-radius:var(--radius); overflow:hidden;
  padding:38px; display:flex; flex-direction:column; justify-content:space-between; gap:60px;
  transform-style:preserve-3d;
}
.af-card__head{ position:relative; z-index:1; display:flex; justify-content:space-between; align-items:flex-start; }
.af-card__num{ font-family:var(--font-display); font-size:15px; opacity:.6; }
.af-card__icon{ position:relative; z-index:1; width:46px; height:46px; }
.af-card__icon svg{ width:100%; height:100%; }
.af-card__body{ position:relative; z-index:1; }
.af-card__body h3{ font-family:var(--font-display); font-weight:500; font-size:clamp(25px,2.4vw,36px); line-height:1.05; margin:0 0 12px; letter-spacing:-.02em; }
.af-card__body p{ margin:0; font-size:15px; line-height:1.55; }
.af-card__bg{ position:absolute; inset:0; z-index:0; }
.af-card--navy{ background:var(--navy); color:var(--cream); }
.af-card--navy p{ color:rgba(250,234,225,.78); }
.af-card--navy .af-card__bg{ background:radial-gradient(120% 120% at 80% 0%,#34397a 0%,#252958 55%); }
.af-card--orange{ background:var(--orange); color:var(--cream); }
.af-card--orange p{ color:rgba(250,234,225,.92); }
.af-card--orange .af-card__bg{ background:radial-gradient(120% 120% at 20% 100%,#f4713f 0%,#EA5927 55%); }
.af-card--cream{ background:var(--paper); color:var(--navy); border:1px solid var(--hairline); }
.af-card--cream p{ color:var(--muted); }
.af-card--cream .af-card__bg{ background:radial-gradient(120% 120% at 80% 0%,#fff 0%,var(--paper) 60%); }
.af-h-outro{ flex:0 0 auto; width:clamp(320px,30vw,440px); display:flex; flex-direction:column; justify-content:center; padding-left:clamp(10px,2vw,30px); }
.af-h-outro h3{ font-family:var(--font-display); font-weight:400; font-size:clamp(28px,3vw,46px); line-height:1.05; margin:0 0 22px; letter-spacing:-.02em; }
.af-h-outro p{ margin:0 0 28px; font-size:16px; line-height:1.6; color:var(--muted); max-width:32ch; }

/* ---------- Process ---------- */
#af-process{ background:var(--paper); }
.af-process-head{ display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:clamp(50px,7vh,90px); }
.af-process-head h2{ font-weight:400; font-size:clamp(30px,4.2vw,60px); line-height:1.04; letter-spacing:-.03em; margin:16px 0 0; max-width:16ch; }
.af-steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; border-top:1px solid var(--hairline); }
.af-step{ padding:38px 30px 44px 38px; border-right:1px solid var(--hairline); position:relative; }
.af-step:last-child{ border-right:none; }
.af-step__n{ font-family:var(--font-display); font-size:14px; color:var(--orange); font-weight:600; }
.af-step__bar{ height:2px; background:var(--hairline); margin:18px 30px 26px 0; position:relative; overflow:hidden; }
.af-step__bar i{ position:absolute; inset:0; background:var(--orange); transform:scaleX(0); transform-origin:left; }
.af-step h3{ font-family:var(--font-display); font-weight:500; font-size:clamp(20px,1.9vw,26px); letter-spacing:-.02em; margin:0 0 12px; }
.af-step p{ margin:0; font-size:15px; line-height:1.6; color:var(--muted); max-width:26ch; }

/* ---------- Testimonials (bento) ---------- */
#af-testimonials{ background:var(--cream); }
.af-testi-head{ max-width:640px; margin-bottom:clamp(46px,6vh,80px); }
.af-testi-head h2{ font-weight:400; font-size:clamp(30px,4.2vw,60px); line-height:1.04; letter-spacing:-.03em; margin:16px 0 0; }
.af-testi-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.af-quote{
  background:var(--surface); border:1px solid var(--hairline); border-radius:var(--radius);
  padding:32px; display:flex; flex-direction:column; justify-content:space-between; gap:34px;
  transition:transform .5s var(--ease),box-shadow .5s var(--ease);
}
.af-quote:hover{ transform:translateY(-4px); box-shadow:0 20px 40px -24px rgba(37,41,88,.35); }
.af-quote__mark{ font-family:var(--font-display); font-size:44px; line-height:.6; color:var(--orange); }
.af-quote p{ margin:0; font-size:clamp(16px,1.2vw,18px); line-height:1.55; color:var(--navy); }
.af-quote__who{ display:flex; align-items:center; gap:12px; }
.af-quote__av{ width:42px; height:42px; border-radius:50%; background:var(--navy); color:var(--cream); display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-weight:600; font-size:15px; flex-shrink:0; }
.af-quote__name{ font-weight:600; font-size:15px; color:var(--navy); }
.af-quote__role{ font-size:13px; color:var(--muted); }
.af-quote--feature{ grid-column:span 2; grid-row:span 2; background:var(--navy); color:var(--cream); border-color:transparent; }
.af-quote--feature p{ color:var(--cream); font-size:clamp(22px,2.4vw,34px); font-family:var(--font-display); font-weight:400; line-height:1.2; letter-spacing:-.02em; }
.af-quote--feature .af-quote__name{ color:var(--cream); }
.af-quote--feature .af-quote__role{ color:rgba(250,234,225,.6); }
.af-quote--feature .af-quote__av{ background:var(--orange); }
.af-quote--accent{ background:var(--orange); color:var(--cream); border-color:transparent; }
.af-quote--accent p,.af-quote--accent .af-quote__name{ color:var(--cream); }
.af-quote--accent .af-quote__role{ color:rgba(250,234,225,.75); }
.af-quote--accent .af-quote__mark{ color:var(--cream); }
.af-quote--accent .af-quote__av{ background:var(--cream); color:var(--orange); }

/* ---------- Engagements ---------- */
#af-engagements, #af-work{ background:var(--navy); color:var(--cream); }
#af-engagements .eyebrow, #af-work .eyebrow{ color:rgba(250,234,225,.7); }
.af-commit-head{ text-align:center; max-width:640px; margin:0 auto clamp(50px,7vh,86px); }
.af-commit-head h2{ font-weight:400; font-size:clamp(30px,4.2vw,60px); line-height:1.04; letter-spacing:-.03em; margin:16px 0 14px; }
.af-commit-head p{ margin:0 auto; max-width:48ch; color:rgba(250,234,225,.72); font-size:clamp(15px,1.2vw,17px); line-height:1.6; }
.af-commit-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; align-items:stretch; }
.af-commit-grid--3{ grid-template-columns:repeat(3,1fr); }
.af-commit-grid--2{ grid-template-columns:repeat(2,1fr); max-width:820px; margin-inline:auto; }
.af-commit-note{ margin:clamp(34px,5vh,54px) 0 0; text-align:center; font-family:var(--font-display); font-weight:400; font-size:clamp(18px,2vw,26px); letter-spacing:-.01em; color:var(--cream); }
.af-commit-note span{ color:var(--orange); }
.af-commit{
  position:relative; border-radius:var(--radius); border:1px solid rgba(250,234,225,.16);
  background:rgba(250,234,225,.04); padding:32px 28px; display:flex; flex-direction:column; gap:18px;
  transition:transform .5s var(--ease),background .5s var(--ease),border-color .5s var(--ease);
}
.af-commit:hover{ transform:translateY(-4px); border-color:rgba(250,234,225,.32); background:rgba(250,234,225,.07); }
.af-commit__ico{ width:46px; height:46px; border-radius:12px; display:flex; align-items:center; justify-content:center; background:rgba(234,89,39,.16); color:var(--orange); }
.af-commit__ico svg{ width:24px; height:24px; }
.af-commit h3{ font-family:var(--font-display); font-weight:500; font-size:clamp(19px,1.6vw,23px); letter-spacing:-.01em; margin:0; }
.af-commit p{ margin:0; font-size:15px; line-height:1.55; color:rgba(250,234,225,.72); }
.af-commit-cta{ margin-top:clamp(40px,6vh,70px); display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:24px; border-top:1px solid rgba(250,234,225,.15); padding-top:clamp(36px,5vh,54px); }
.af-commit-cta p{ margin:0; font-size:clamp(17px,1.8vw,24px); font-family:var(--font-display); font-weight:400; letter-spacing:-.01em; max-width:22ch; }

/* ---------- FAQ ---------- */
#af-faq{ background:var(--cream); }
.af-faq-grid{ display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(40px,6vw,90px); align-items:start; }
.af-faq-intro h2{ font-weight:400; font-size:clamp(30px,4vw,56px); line-height:1.04; letter-spacing:-.03em; margin:16px 0 20px; }
.af-faq-intro p{ color:var(--muted); font-size:16px; line-height:1.6; max-width:34ch; margin:0 0 26px; }
.af-faq-list{ border-top:1px solid var(--hairline); }
.af-faq-item{ border-bottom:1px solid var(--hairline); }
.af-faq-q{
  width:100%; background:none; border:none; cursor:pointer; text-align:left;
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  padding:26px 4px; font-family:var(--font-display); font-weight:500; font-size:clamp(17px,1.5vw,21px);
  letter-spacing:-.01em; color:var(--navy);
}
.af-faq-ico{ position:relative; width:18px; height:18px; flex-shrink:0; }
.af-faq-ico::before,.af-faq-ico::after{ content:""; position:absolute; background:var(--orange); border-radius:2px; transition:transform .4s var(--ease),opacity .4s var(--ease); }
.af-faq-ico::before{ top:8px; left:0; width:18px; height:2px; }
.af-faq-ico::after{ top:0; left:8px; width:2px; height:18px; }
.af-faq-item.is-open .af-faq-ico::after{ transform:scaleY(0); opacity:0; }
.af-faq-a{ overflow:hidden; height:0; }
.af-faq-a__inner{ padding:0 4px 28px; max-width:52ch; color:var(--muted); font-size:16px; line-height:1.65; }

/* ---------- Contact ---------- */
#af-contact{ background:var(--navy); color:var(--cream); overflow:hidden; }
#af-contact .eyebrow{ color:rgba(250,234,225,.7); }
.af-contact-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(48px,6vw,110px); align-items:center; }
.af-contact-lead h2{ font-weight:400; font-size:clamp(40px,7vw,110px); line-height:.95; letter-spacing:-.04em; margin:20px 0 0; }
.af-contact-lead p{ margin:34px 0 40px; max-width:42ch; font-size:clamp(16px,1.3vw,19px); line-height:1.6; color:rgba(250,234,225,.75); }
.af-contact-direct{ display:flex; flex-direction:column; gap:18px; }
.af-contact-direct a{ display:inline-flex; align-items:center; gap:12px; text-decoration:none; color:var(--cream); font-size:clamp(16px,1.3vw,18px); }
.af-contact-direct a .ci{ width:38px; height:38px; border-radius:50%; border:1px solid rgba(250,234,225,.25); display:flex; align-items:center; justify-content:center; }
.af-contact-direct a:hover .ci{ background:var(--orange); border-color:var(--orange); }

.af-form{ background:rgba(250,234,225,.05); border:1px solid rgba(250,234,225,.14); border-radius:var(--radius); padding:clamp(24px,3vw,38px); }
.af-field{ margin-bottom:20px; }
.af-field:last-of-type{ margin-bottom:26px; }
.af-field label{ display:block; font-size:13px; letter-spacing:.02em; margin-bottom:8px; color:rgba(250,234,225,.8); }
.af-field label .req{ color:var(--orange); }
.af-field input,.af-field textarea,.af-field select{
  width:100%; background:rgba(250,234,225,.06); border:1px solid rgba(250,234,225,.18); border-radius:12px;
  color:var(--cream); font-family:inherit; font-size:15px; padding:14px 16px; min-height:50px;
  transition:border-color .3s var(--ease),background .3s var(--ease);
}
.af-field textarea{ resize:vertical; min-height:120px; }
.af-field input::placeholder,.af-field textarea::placeholder{ color:rgba(250,234,225,.4); }
.af-field input:focus,.af-field textarea:focus,.af-field select:focus{ outline:none; border-color:var(--orange); background:rgba(250,234,225,.09); }
.af-field select{ appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23FAEAE1' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 16px center; padding-right:44px; }
.af-field .err{ display:none; margin-top:7px; font-size:13px; color:#ffb59b; }
.af-field.is-error input,.af-field.is-error textarea{ border-color:#ff8a66; }
.af-field.is-error .err{ display:block; }
.af-form .btn{ width:100%; justify-content:center; }
.af-form__note{ margin:16px 0 0; font-size:12.5px; color:rgba(250,234,225,.5); text-align:center; }
.af-form__ok{ display:none; text-align:center; padding:20px 0; }
.af-form.is-sent .af-form__ok{ display:block; }
.af-form.is-sent .af-form__fields{ display:none; }
.af-form__ok .ok-ic{ width:56px; height:56px; border-radius:50%; background:var(--orange); color:var(--cream); display:flex; align-items:center; justify-content:center; margin:0 auto 18px; }
.af-form__ok h3{ font-family:var(--font-display); font-weight:500; font-size:24px; margin:0 0 8px; }
.af-form__ok p{ margin:0; color:rgba(250,234,225,.7); font-size:15px; }

/* ---------- Footer ---------- */
#af-footer{ background:var(--navy); color:var(--cream); }
.af-foot-cta{ border-top:1px solid rgba(250,234,225,.15); padding:clamp(60px,9vh,110px) 0 clamp(50px,7vh,80px); text-align:center; }
.af-foot-cols{ border-top:1px solid rgba(250,234,225,.15); padding:44px 0; display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:34px; }
.af-foot-brand .word{ font-family:var(--font-display); font-size:24px; font-weight:600; letter-spacing:-.01em; }
.af-foot-brand p{ margin:16px 0 0; max-width:30ch; font-size:14px; color:rgba(250,234,225,.6); line-height:1.6; }
.af-foot-col h4{ font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:rgba(250,234,225,.45); margin:0 0 18px; font-weight:600; }
.af-foot-col a,.af-foot-col span{ display:block; text-decoration:none; color:rgba(250,234,225,.82); font-size:15px; margin-bottom:12px; transition:color .3s var(--ease); }
.af-foot-col a:hover{ color:var(--orange); }
.af-foot-base{ border-top:1px solid rgba(250,234,225,.15); padding:26px 0 34px; display:flex; flex-wrap:wrap; gap:16px; align-items:center; justify-content:space-between; font-size:13px; color:rgba(250,234,225,.45); }

/* ---------- Reveal utility ---------- */
[data-reveal]{ opacity:0; transform:translateY(28px); }
.af-line-mask{ display:block; overflow:hidden; }
.af-word{ display:inline-block; }

/* ---------- Keyframes ---------- */
@keyframes afFloatDot{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-10px); } }
@keyframes afMarquee{ to{ transform:translateX(-50%); } }

/* ---------- Responsive ---------- */
@media (max-width:1024px){
  .af-about-body{ grid-template-columns:1fr; }
  .af-testi-grid{ grid-template-columns:repeat(2,1fr); }
  .af-quote--feature{ grid-column:span 2; grid-row:auto; }
  .af-commit-grid{ grid-template-columns:repeat(2,1fr); }
  .af-faq-grid{ grid-template-columns:1fr; }
  .af-contact-grid{ grid-template-columns:1fr; }
  .af-foot-cols{ grid-template-columns:1fr 1fr; }
}
@media (max-width:760px){
  #af-nav-links .af-navlink,#af-nav-links .af-nav-cta{ display:none; }
  .af-burger{ display:flex; }
  #af-hero-switch{ display:none; }
  .af-about-body{ margin-top:50px; }
  .af-steps{ grid-template-columns:1fr; }
  .af-step{ border-right:none; border-bottom:1px solid var(--hairline); padding:28px 0 30px; }
  .af-step:last-child{ border-bottom:none; }
  .af-step__bar{ margin-right:0; }
  .af-testi-grid{ grid-template-columns:1fr; }
  .af-quote--feature{ grid-column:auto; }
  .af-commit-grid{ grid-template-columns:1fr; }
  .af-commit-cta{ flex-direction:column; align-items:flex-start; }
  .af-foot-cols{ grid-template-columns:1fr; }
  .af-contact-lead h2{ font-size:clamp(44px,14vw,80px); }
}
@media (max-width:760px) and (min-width:0){
  body{ overflow-x:hidden; }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
  .af-marquee__row{ animation:none; }
  [data-reveal]{ opacity:1 !important; transform:none !important; }
  #af-scroll-hint .dot{ animation:none; }
}
