/* =========================================================
   The Ad Attic — Contact page
   Design source: Figma "The Ad Attic" (desktop base 1280px)
   Content column is 1200px (1280 − 2×40 gutter).
   ========================================================= */

/* ---------- Tokens ---------- */
:root{
  /* Palette */
  --primary:        #DCE24C;
  --yellow:         #E1E85E;
  --text:           #211B0E;
  --muted:          #474836;
  --olive:          #636700;
  --maroon:         #64003D;
  --pink:           #FE5BAE;
  --cream:          #F4E6D1;
  --lavender:       #F4E2F3;
  --faq-bg:         #FAECD7;
  --blue:           #0C39BF;
  --white:          #FFFFFF;
  --black:          #000000;

  /* Sampled directly from the Figma export */
  --dossier-bg:     #E2FAFB;   /* intake dossier card */
  --nav-pill:       #F1F1F1;   /* active nav pill */
  --sticker-shadow: #3F8944;   /* solid green offset behind the hero sticker */

  /* Type */
  --font-sans: 'Montserrat', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-serif: 'Playfair Display', Georgia, 'Times New Roman', serif;

  /* Layout */
  --container: 1280px;
  /* Figma: hero/section content starts at x64 (measured from the exports). */
  --gutter: 64px;
  --radius-card: 20px;
  --radius-pill: 999px;

  /* Elevation */
  --shadow-header: 0 2px 24px rgba(33, 27, 14, .08);
  --shadow-card:   0 14px 40px rgba(33, 27, 14, .06);
  --shadow-soft:   0 6px 18px rgba(33, 27, 14, .06);
}

/* ---------- Reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
/* No overflow-x:hidden here — on <html> it turns the root into its own scroll
   container, which kills window scrolling and the sticky header. The layout
   has no horizontal overflow to clip at any breakpoint. */
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0;
  font-family:var(--font-sans);
  font-weight:400;
  font-size:18px;
  line-height:28px;
  color:var(--text);
  background:var(--white);
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; height:auto; display:block; }
button,input,textarea{ font:inherit; color:inherit; }
button{ cursor:pointer; background:none; border:0; }
ul{ list-style:none; margin:0; padding:0; }
h1,h2,h3,p,figure,fieldset,legend{ margin:0; padding:0; }
fieldset{ border:0; min-width:0; }
address{ font-style:normal; }

:focus-visible{ outline:3px solid var(--blue); outline-offset:3px; border-radius:4px; }

.skip-link{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--text); color:var(--white);
  padding:12px 20px; border-radius:0 0 8px 0;
}
.skip-link:focus{ left:0; }

.container{
  width:100%;
  max-width:var(--container);
  margin-inline:auto;
  padding-inline:var(--gutter);
}

/* ---------- Shared type ---------- */
.micro{
  font-weight:600;
  font-size:12px;
  line-height:16px;
  letter-spacing:1.2px;
  text-transform:uppercase;
  color:var(--maroon);
}

.pill{
  display:inline-block;
  padding:7px 16px;
  border-radius:var(--radius-pill);
  background:var(--primary);
  color:var(--text);
  font-weight:600;
  font-size:11px;
  line-height:14px;
  letter-spacing:1.2px;
  text-transform:uppercase;
}
.pill--ghost{ background:rgba(33,27,14,.08); color:var(--muted); }
.pill--plum{ background:var(--maroon); color:var(--white); }

.tag{
  display:inline-block;
  font-weight:700;
  font-size:11px;
  line-height:14px;
  letter-spacing:1.2px;
  text-transform:uppercase;
}

/* =========================================================
   HEADER  (113px band)
   ========================================================= */
.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(220,226,76,.92);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  box-shadow:0 0 0 rgba(33,27,14,0);
  transition:box-shadow .35s ease, background-color .35s ease;
}
.site-header.is-stuck{
  background:rgba(220,226,76,.86);
  box-shadow:var(--shadow-header);
}
.header__inner{
  /* Figma: lime band y5–116 = 113px. Header gutter is 48px (logo left edge
     x50), tighter than the 64px used by the page content below it. */
  height:113px;
  /* Figma: logo left edge x50, Let's Talk right edge x1248. */
  padding-left:48px;
  padding-right:32px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:32px;
  transition:height .35s ease;
}
.site-header.is-stuck .header__inner{ height:92px; }

.header__logo img{ width:180px; height:auto; transition:width .35s ease; }
.site-header.is-stuck .header__logo img{ width:150px; }

/* Figma nav ink: About x484-559, Work x586-652, Contact pill x679-803,
   Careers x825-919, Let's Talk x1095-1253. Only the active item is a pill,
   so the other links carry no horizontal padding. */
.nav{ display:flex; align-items:center; gap:183px; }
.nav__list{ display:flex; align-items:center; gap:31px; }
.nav__link{
  display:inline-block;
  padding:5px 0;
  border-radius:10px;
  font-weight:700;
  font-size:22px;
  line-height:28px;
  letter-spacing:-.1px;
  color:var(--white);
  text-decoration:underline;
  text-decoration-thickness:2px;
  text-underline-offset:5px;
  transition:background-color .25s ease, color .25s ease, box-shadow .25s ease, transform .25s ease;
}
.nav__link:hover{ color:var(--maroon); }
/* Active item is an off-white chip with a hard black offset shadow — the same
   sticker treatment the Let's Talk button uses in pink. */
.nav__link--active{
  padding:5px 16px;
  background:var(--nav-pill);
  color:var(--pink);
  box-shadow:4px 4px 0 var(--black);
}
.nav__link--active:hover{
  background:var(--nav-pill);
  color:var(--pink);
  transform:translate(1px,1px);
  box-shadow:3px 3px 0 var(--black);
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  font-weight:600;
  text-decoration:none;
  border-radius:var(--radius-pill);
  transition:transform .25s ease, background-color .25s ease, color .25s ease, box-shadow .25s ease;
}
/* White chip with the same hard black offset shadow as the active nav item. */
.btn--talk{
  padding:7px 38px;
  border-radius:10px;
  font-weight:700;
  font-size:16px;
  line-height:20px;
  background:var(--white);
  color:var(--black);
  text-decoration:underline;
  text-decoration-thickness:2px;
  text-underline-offset:4px;
  box-shadow:4px 4px 0 var(--black);
}
.btn--talk:hover{
  background:var(--pink);
  color:var(--white);
  box-shadow:3px 3px 0 var(--black);
  transform:translate(1px,1px);
}

/* Mobile nav */
.nav-toggle{ display:none; flex-direction:column; gap:5px; padding:10px; }
.nav-toggle span{
  display:block; width:26px; height:2px; background:var(--text);
  transition:transform .3s ease, opacity .3s ease;
}
.nav-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

.mobile-nav{
  padding:8px var(--gutter) 28px;
  border-top:1px solid rgba(33,27,14,.12);
  background:var(--primary);
}
.mobile-nav ul{ display:flex; flex-direction:column; }
.mobile-nav a{
  display:block; padding:14px 0;
  font-weight:600; font-size:18px; color:var(--text); text-decoration:none;
  border-bottom:1px solid rgba(33,27,14,.1);
}
.mobile-nav a[aria-current="page"]{ color:var(--maroon); }
.mobile-nav .btn--talk{ margin-top:20px; width:100%; }

/* =========================================================
   HERO  (~480px band)
   ========================================================= */
/* Figma: only the header band and the footer are lime — the hero is WHITE.
   Badge top y165 (49px below the 113px header), section bottom y606. */
.hero{
  background:var(--white);
  padding:49px 0 26px;
}
.hero__inner{ position:relative; }

/* Figma: cream pill 230x25. */
.badge{
  display:inline-flex;
  align-items:center;
  gap:9px;
  padding:5px 18px;
  border-radius:var(--radius-pill);
  background:var(--cream);
  color:var(--muted);
  font-weight:600;
  font-size:11px;
  line-height:14px;
  letter-spacing:1.2px;
  text-transform:uppercase;
}
.badge__dot{
  width:7px; height:7px; border-radius:50%;
  background:var(--olive);
  box-shadow:0 0 0 0 rgba(99,103,0,.5);
  animation:pulse 2.4s ease-out infinite;
}
@keyframes pulse{
  0%{ box-shadow:0 0 0 0 rgba(99,103,0,.45); }
  70%{ box-shadow:0 0 0 9px rgba(99,103,0,0); }
  100%{ box-shadow:0 0 0 0 rgba(99,103,0,0); }
}

/* Figma: small one-line pink pill, 171x25, rotated -6.63deg, centred at
   x820/y207 — i.e. beside the badge, not out at the right edge. */
.sticker{
  position:absolute;
  top:32px; left:735px;
  width:171px;
  height:25px;
  display:grid;
  place-items:center;
  border-radius:var(--radius-pill);
  background:var(--pink);
  /* Figma: DARK underlined text on pink, with a solid (unblurred) dark-green
     layer offset 3px right / 3px down — sampled #3F8944 from the export. */
  color:var(--text);
  box-shadow:3px 3px 0 var(--sticker-shadow);
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:2px;
  text-align:center;
  white-space:nowrap;
  font-weight:700;
  font-size:11px;
  line-height:14px;
  letter-spacing:1.2px;
  text-transform:uppercase;
  transform:rotate(-6.63deg);
  will-change:transform;
}

/* Figma: glyph top y222, 32px below the badge (badge bottom y190). */
.hero__title{
  margin-top:24px;
  font-family:var(--font-sans);
  font-weight:600;
  font-size:64px;
  line-height:65px;
  letter-spacing:-3.36px;
  color:var(--text);
}
/* Figma sets these four breaks manually — no natural wrap reproduces them,
   so at desktop each line is held on one row and the block sizes to the
   widest line. Below 1024px the copy is allowed to reflow. */
.hero__title .line{ display:block; }
@media (min-width:1025px){
  .hero__title .line{ white-space:nowrap; }
}
/* No underline in the Figma hero — the pixel scan found zero solid runs. */

.hero__sub{
  margin-top:29px;
  max-width:620px;
  font-size:18px;
  line-height:28px;
  color:var(--muted);
}
.hero__note{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:34px;
  font-family:var(--font-serif);
  font-style:italic;
  font-weight:700;
  font-size:17px;
  line-height:24px;
  letter-spacing:0;
  text-transform:none;
  color:var(--olive);
}
.hero__note-icon{ flex:0 0 auto; width:16px; height:16px; }

/* =========================================================
   CONTACT / INTAKE
   ========================================================= */
/* Figma: dossier x67-819 (753w) y76-1044 (968h); Find Us x854-1213 (359w). */
.contact{
  background:var(--white);
  padding:44px 0 27px;
}
.contact__grid{
  display:grid;
  grid-template-columns:753px minmax(0,1fr);
  gap:35px;
  align-items:start;          /* side column stays short, as in Figma */
}

/* --- Dossier card --- */
/* The card reads as a file folder: the "Let's work together" tab sits on the
   page background above the cyan body, so the dossier itself is just a
   wrapper and the cyan/border/shadow live on the form. */
.dossier{
  min-height:1000px;
  padding:0;
  border:0;
  background:none;
  box-shadow:none;
}
/* Tab row: the eyebrow is a white folder tab whose bottom edge meets the cyan
   body; the lime STEP badge floats beside it on the page background. */
.dossier__head{
  display:flex;
  align-items:flex-end;
  gap:14px;
  margin:0;
}
.dossier__eyebrow{
  display:inline-flex;
  align-items:center;
  gap:9px;
  padding:11px 22px;
  border-radius:12px 12px 0 0;
  background:var(--dossier-bg);
  border:1px solid rgba(33,27,14,.08);
  border-bottom:0;
  font-weight:700;
  font-size:14px;
  line-height:18px;
  letter-spacing:1.2px;
  text-transform:uppercase;
  color:var(--text);
}
.dossier__eyebrow span{
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:3px;
}
.dossier__step{
  margin-bottom:6px;
  padding:5px 14px;
  border-radius:6px;
  background:var(--yellow);
  color:var(--text);
  font-weight:700;
  font-size:13px;
  line-height:17px;
  letter-spacing:1.2px;
  text-transform:uppercase;
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:3px;
}

.form{
  display:flex;
  flex-direction:column;
  gap:26px;
  padding:36px;
  /* Square top-left so the tab above it reads as part of the same folder. */
  border-radius:0 var(--radius-card) var(--radius-card) var(--radius-card);
  border:1px solid rgba(33,27,14,.08);
  background:var(--dossier-bg);
  box-shadow:var(--shadow-card);
}

.field-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px 22px;
}
.field{ display:flex; flex-direction:column; gap:8px; }

/* Labels read as dark underlined headings with a red required marker, matching
   the "01. YOUR NAME *" treatment in the design. The text sits inside .lbl so
   the underline stops before the asterisk. */
.field label,
.chip-block legend{
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  gap:0 6px;
  font-weight:700;
  font-size:14px;
  line-height:19px;
  letter-spacing:.6px;
  text-transform:uppercase;
  color:var(--text);
}
.field label .lbl,
.chip-block legend .lbl{
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:4px;
}
.req{ color:#D62828; font-weight:700; }
.num{ color:inherit; }
.legend-hint{
  flex-basis:100%;
  font-weight:600;
  font-size:11px;
  line-height:15px;
  color:var(--muted);
  letter-spacing:1px;
}

.field input,
.field textarea{
  width:100%;
  padding:16px 18px;
  font-family:inherit;
  font-size:16px;
  line-height:24px;
  color:var(--text);
  background:var(--white);
  border:1px solid rgba(33,27,14,.10);
  border-radius:14px;
  transition:border-color .2s ease, background-color .2s ease, box-shadow .2s ease;
}
.field textarea{ resize:vertical; min-height:165px; }
.field input::placeholder,
.field textarea::placeholder{ color:rgba(71,72,54,.45); }
.field input:focus,
.field textarea:focus{
  outline:none;
  border-color:var(--olive);
  box-shadow:0 0 0 3px rgba(99,103,0,.15);
}
.field.has-error input,
.field.has-error textarea{ border-color:var(--maroon); box-shadow:0 0 0 3px rgba(100,0,61,.12); }

.error{ font-size:11px; line-height:15px; font-weight:600; color:var(--maroon); }
.error:empty{ display:none; }

.counter{
  align-self:flex-end;
  margin-top:4px;
  font-weight:600;
  font-size:10px;
  line-height:13px;
  letter-spacing:1.2px;
  text-transform:uppercase;
  color:var(--muted);
}
.counter.is-over{ color:var(--maroon); }

/* --- Chips --- */
.chip-block legend{ margin-bottom:12px; }
.chips{ display:flex; flex-wrap:wrap; gap:10px; }
.chip{
  padding:10px 15px;
  border-radius:8px;
  border:1px solid rgba(33,27,14,.16);
  background:rgba(255,255,255,.72);
  font-weight:600;
  font-size:12px;
  line-height:16px;
  color:var(--muted);
  transition:background-color .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}
.chip:hover{ border-color:var(--olive); transform:translateY(-1px); }
/* Selected state is lime in the Figma, not maroon. */
.chip[aria-pressed="true"],
.chip[aria-checked="true"]{
  background:var(--yellow);
  border-color:var(--olive);
  color:var(--text);
}
/* Figma: the budget group's selected chip is pink, not lime. */
[data-group="budget"] .chip[aria-checked="true"]{
  background:var(--pink);
  border-color:var(--pink);
  color:var(--text);
}
/* The selected look is ours alone — never the browser's focus ring. A chip
   only shows an outline while actually keyboard-navigating. */
.chip:focus{ outline:none; }
.chip:focus-visible{ outline:3px solid var(--blue); outline-offset:3px; }

.form__foot{
  display:flex;
  align-items:center;
  gap:20px;
  flex-wrap:wrap;
  margin-top:2px;
}
.btn--submit{
  padding:13px 26px;
  font-size:14px;
  line-height:18px;
  background:var(--primary);
  color:var(--text);
  box-shadow:var(--shadow-soft);
}
.btn--submit:hover{ background:var(--yellow); transform:translateY(-2px); }
.btn--submit span{ transition:transform .25s ease; display:inline-block; }
.btn--submit:hover span{ transform:translateX(4px); }

.nda{
  font-weight:600;
  font-size:11px;
  line-height:14px;
  letter-spacing:.8px;
  color:var(--muted);
}
.form-status{ font-weight:600; font-size:13px; color:var(--olive); }
.form-status:empty{ display:none; }
.form-status.is-error{ color:var(--maroon); }

/* Honeypot — removed from layout and from assistive tech, never visible. */
.hp{
  position:absolute;
  width:1px; height:1px;
  margin:-1px; padding:0; border:0;
  overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%);
  white-space:nowrap;
}

/* --- Find Us --- */
/* Figma: Find Us y76-436 (360h), map y497-690 (193h) — 61px apart. */
.contact__side{ display:flex; flex-direction:column; gap:61px; }

/* Figma: card x854-1213 y76-436 (359x360), 23px padding. Three white inner
   boxes at x877-1189 (312w), heights 78 / 96 / 58, gaps 22 / 23.
   Heading "FIND US" is plain underlined text — not a pill. */
.findus{
  min-height:360px;
  padding:23px;
  border-radius:var(--radius-card);
  background:var(--lavender);
}
.findus__heading{
  display:inline-block;
  font-family:var(--font-sans);
  font-weight:600;
  font-size:28px;
  line-height:34px;
  letter-spacing:3px;
  text-transform:uppercase;
  color:var(--olive);
  text-decoration:underline;
  text-decoration-thickness:2px;
  text-underline-offset:6px;
  margin-bottom:11px;
}

.findus__box{
  background:var(--white);
  border-radius:12px;
  padding:16px 17px;
}
.findus__box + .findus__box{ margin-top:22px; }
/* Figma: the working-hours box is the shortest of the three (58 vs 78/96). */
.findus__box:last-child{ padding:12px 17px; }
.findus__box:last-child .findus__text{ margin-top:4px; font-size:13px; line-height:16px; }

.findus__label{
  display:flex;
  align-items:center;
  gap:6px;
  font-weight:700;
  font-size:10px;
  line-height:13px;
  letter-spacing:1.2px;
  text-transform:uppercase;
  color:var(--muted);
}
.findus__label svg{ flex:0 0 auto; }

.findus__text{
  margin-top:8px;
  font-size:15px;
  line-height:22px;
  color:var(--text);
}

.findus__mailrow{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:8px;
}
.findus__email{ font-size:15px; line-height:20px; color:var(--text); }
.findus__copy{
  display:inline-flex;
  padding:2px;
  color:var(--muted);
  transition:color .2s ease;
}
.findus__copy:hover{ color:var(--maroon); }

.copy-done{
  display:block; margin-top:6px;
  font-weight:600; font-size:10px; letter-spacing:1.2px; text-transform:uppercase;
  color:var(--olive);
}
.copy-done:empty{ display:none; }

/* --- Map: its own card below Find Us --- */
.mapcard{
  position:relative;
  border-radius:var(--radius-card);
  overflow:hidden;
  border:1px solid rgba(33,27,14,.10);
  box-shadow:var(--shadow-soft);
}
.mapcard img{ width:100%; height:193px; object-fit:cover; }
.map-pin{
  position:absolute; left:12px; bottom:12px;
  display:inline-flex; align-items:center; gap:7px;
  padding:7px 13px;
  border-radius:var(--radius-pill);
  background:var(--white);
  font-weight:700; font-size:10px; letter-spacing:1.2px; text-transform:uppercase;
  color:var(--text);
  box-shadow:var(--shadow-soft);
}
.map-pin__dot{ width:7px; height:7px; border-radius:50%; background:var(--pink); }

/* =========================================================
   FAQ  (left-aligned heading, cream cards on white)
   ========================================================= */
/* Figma: eyebrow y73, heading y111-155, cards y203-568 (365h), section 642h. */
.faq{
  background:var(--white);
  padding:66px 0 74px;
}
.faq__title{
  margin:18px 0 48px;
  font-family:var(--font-sans);
  font-weight:600;
  font-size:56px;
  line-height:60px;
  letter-spacing:-1.4px;
  color:var(--text);
}
.faq__grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
}
.faq-card{
  display:flex;
  flex-direction:column;
  min-height:365px;
  padding:30px 28px 30px;
  border-radius:var(--radius-card);
  background:var(--faq-bg);
  border:1px solid rgba(33,27,14,.08);
}
.faq-card__num{
  font-weight:700;
  font-size:13px;
  line-height:18px;
  letter-spacing:1.2px;
  margin-bottom:12px;
}
.faq-card__q{
  font-family:var(--font-sans);
  font-weight:600;
  font-size:28px;
  line-height:36px;
  letter-spacing:-.5px;
  color:var(--text);
}
.faq-card__a{
  margin-top:16px;
  font-size:13px;
  line-height:22px;
  color:var(--muted);
}
.faq-card .tag{ margin-top:auto; padding-top:28px; }

/* Per-card accents */
.faq-card--a .faq-card__num, .faq-card--a .tag{ color:var(--olive); }
.faq-card--b .faq-card__num, .faq-card--b .tag{ color:var(--maroon); }
.faq-card--c .faq-card__num, .faq-card--c .tag{ color:var(--blue); }

/* =========================================================
   CTA / CLAPPERBOARD  (compact band)
   ========================================================= */
/* Figma: section 446h; clapperboard x871-1221 y136-400 (349x264);
   blue text x83-659 (576w) y314-361. */
.cta{
  background:var(--white);
  padding:136px 0 46px;
}
.cta__grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) 349px;
  gap:56px;
  align-items:end;
}
/* Figma: CTA copy ink starts at x81, indented from the 64px gutter. */
.cta__copy{ padding-bottom:39px; padding-left:17px; }
.cta__title{
  font-family:var(--font-sans);
  font-weight:600;
  font-size:26px;
  line-height:31px;
  letter-spacing:-.2px;
  color:var(--blue);
  max-width:580px;
}
/* Figma renders the 354x269 asset at 349px — essentially 1:1. */
.cta__art img{ width:349px; max-width:100%; margin-left:auto; }

/* =========================================================
   FOOTER  (two columns)
   ========================================================= */
/* Figma: footer band 348h. Logo y36-146 (295w), STALK US y73-137 (456w),
   socials y171-195, copyright y285 and tagline y309 are CENTRED. */
.site-footer{
  background:var(--primary);
  padding:36px 0 17px;
}
.footer__grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:56px;
  align-items:start;
}
.footer__left{ padding-top:37px; }

.footer__title{ margin:0; }
/* The lockup (wordmark + underline + eyes) is one video, cropped to its content
   and keyed onto the footer lime, so it drops into the 456px Figma slot exactly
   where the old PNG sat. width/height on the element reserve the box before the
   video loads, so there is no shift. */
.footer__title-media{
  display:block;
  width:456px;
  max-width:100%;
  height:auto;
  aspect-ratio:870/164;
  pointer-events:none;
}
/* The wordmark now lives inside the video, so the heading needs its own text. */
.footer__title-text{
  position:absolute;
  width:1px; height:1px;
  margin:-1px; padding:0; border:0;
  overflow:hidden; clip-path:inset(50%);
  white-space:nowrap;
}

.socials{ display:flex; gap:10px; flex-wrap:wrap; margin-top:34px; }
.socials a{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:4px 16px;
  border-radius:var(--radius-pill);
  background:var(--text);
  color:var(--primary);
  font-weight:600;
  font-size:12px;
  line-height:16px;
  text-decoration:none;
  transition:background-color .25s ease, color .25s ease, transform .25s ease;
}
.socials a img{ width:16px; height:16px; object-fit:contain; }
.socials a:hover{ background:var(--maroon); color:var(--white); transform:translateY(-2px); }

.footer__right{ text-align:right; }
.footer__logo{ width:295px; margin-left:auto; }
.footer__address{ margin-top:12px; font-size:13px; line-height:24px; color:var(--muted); }

/* Centred bottom block */
.footer__bottom{ margin-top:36px; text-align:center; }
.footer__copy{
  font-weight:700; font-size:11px; line-height:15px;
  letter-spacing:1.2px; text-transform:uppercase; color:var(--text);
}
.footer__tagline{ margin-top:6px; font-size:13px; line-height:21px; color:var(--muted); }

/* =========================================================
   RESPONSIVE — dense desktop
   ========================================================= */
@media (max-width:1279px){
  /* The exact Figma nav gap only fits at 1280; collapse it below that. */
  .nav{ gap:40px; }
  .nav__link{ font-size:18px; }
}

@media (max-width:1180px){
  .contact__grid{ grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); gap:28px; }
  .cta__grid{ grid-template-columns:minmax(0,1fr) 320px; gap:40px; }
  .hero__title{ font-size:54px; line-height:58px; letter-spacing:-2.4px; }
  .faq__title{ font-size:46px; line-height:52px; }
}

/* =========================================================
   RESPONSIVE — Tablet (768–1024)
   ========================================================= */
@media (max-width:1024px){
  .nav{ display:none; }
  .nav-toggle{ display:flex; }
  .header__inner{ height:92px; }
  .site-header.is-stuck .header__inner{ height:80px; }

  .hero{ padding:36px 0 64px; }
  .hero__title{ font-size:46px; line-height:50px; letter-spacing:-1.8px; margin-top:24px; }
  /* The Figma x-offset only fits at 1280 — pin to the content edge below it. */
  .sticker{ left:auto; right:var(--gutter); width:auto; padding-inline:16px; font-size:11px; line-height:14px; }

  .contact{ padding:52px 0 56px; }
  .contact__grid{ grid-template-columns:minmax(0,1fr); gap:24px; }
  .mapcard img{ height:260px; }

  .faq{ padding:60px 0 64px; }
  .faq__grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }

  .cta{ padding:44px 0 48px; }
  .cta__grid{ grid-template-columns:minmax(0,1fr); gap:32px; }
  .cta__title{ font-size:30px; line-height:40px; }
  .cta__art img{ max-width:340px; margin-inline:auto; }

  .footer__grid{ grid-template-columns:minmax(0,1fr); gap:36px; }
  .footer__right{ text-align:left; }
  .footer__logo{ margin-left:0; }
  .footer__title-media{ width:300px; }
}

/* =========================================================
   RESPONSIVE — Mobile (<768)
   ========================================================= */
@media (max-width:767px){
  :root{ --gutter:20px; }
  body{ font-size:16px; line-height:26px; }

  .header__inner{ height:76px; }
  .site-header.is-stuck .header__inner{ height:70px; }
  .header__logo img{ width:104px; }
  .site-header.is-stuck .header__logo img{ width:96px; }

  .hero{ padding:28px 0 52px; }
  /* align-items must stay `stretch`: flex-start would size the headline to
     max-content and widen the whole document. */
  .hero__inner{ display:flex; flex-direction:column; align-items:stretch; }
  .sticker{
    position:static;
    order:-1;
    align-self:flex-end;
    width:auto;
    max-width:calc(100vw - 40px);
    padding-inline:14px;
    margin:0 0 16px;
    font-size:11px; line-height:14px;
  }
  .badge{ order:-2; align-self:flex-start; }
  .hero__title{ margin-top:20px; font-size:32px; line-height:36px; letter-spacing:-1.2px; }
  /* Let the copy reflow instead of holding the desktop line breaks. */
  .hero__title .line{ display:inline; }
  .hero__title em{ text-decoration-thickness:2px; text-underline-offset:5px; }
  .hero__sub{ margin-top:20px; }

  .contact{ padding:40px 0 48px; }
  /* Keep the tab and badge on one row at small widths. */
  .dossier__head{ gap:10px; }
  .dossier__eyebrow{ padding:9px 14px; font-size:12px; line-height:16px; letter-spacing:.8px; }
  .dossier__step{ font-size:11px; line-height:15px; padding:4px 10px; }
  .form{ padding:22px 18px 24px; }
  .field-grid{ grid-template-columns:minmax(0,1fr); }
  .form__foot{ flex-direction:column; align-items:stretch; gap:12px; }
  .btn--submit{ width:100%; }

  .findus{ padding:20px 18px 6px; }
  .mapcard img{ height:200px; }

  .faq{ padding:48px 0 56px; }
  .faq__title{ font-size:32px; line-height:38px; letter-spacing:-.8px; margin-bottom:24px; }
  .faq__grid{ grid-template-columns:minmax(0,1fr); gap:14px; }
  .faq-card__q{ font-size:22px; line-height:29px; }

  .cta{ padding:40px 0 44px; }
  .cta__title{ font-size:26px; line-height:35px; }

  .site-footer{ padding:44px 0 28px; }
  .footer__title-media{ width:100%; max-width:280px; }
  .socials a{ flex:1 1 auto; justify-content:center; }
}

/* ---------- Motion preferences ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
}
