/* ============================================================
   KW MEDIA — Editorial Monochrome Design System
   Kristof Winkler · Personal-Brand-Agentur
   ============================================================ */

:root{
  /* palette */
  --bg:        #ffffff;
  --surface:   #f5f4f1;   /* warm off-white for alternating sections */
  --surface-2: #efeee9;
  --ink:       #0b0b0b;   /* near-black */
  --ink-soft:  #565650;
  --ink-faint: #8a8a83;
  --line:      #e5e4de;
  --accent:    #14463b;   /* petrol green (from portrait backdrop) */
  --accent-2:  #0c2f28;
  --accent-ink:#eafaf3;
  --black:     #0b0b0b;

  /* type */
  --font-head: 'Fraunces', Georgia, 'Times New Roman', serif;
  --font-body: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;

  /* rhythm */
  --wrap: 1200px;
  --gap: clamp(1rem, 3vw, 2rem);
  --section-y: clamp(4.5rem, 9vw, 9rem);
  --radius: 14px;
  --radius-lg: 22px;

  /* motion */
  --ease: cubic-bezier(.22,.61,.36,1);
  --ease-spring: cubic-bezier(.34,1.4,.5,1);
  --dur: .55s;
}

/* ---------- reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:var(--font-body);
  font-size:clamp(1rem,.55vw + .9rem,1.075rem);
  line-height:1.65; letter-spacing:-.01em;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,video{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; cursor:pointer; }
:focus-visible{ outline:2.5px solid var(--accent); outline-offset:3px; border-radius:4px; }
::selection{ background:var(--accent); color:#fff; }

/* ---------- typography ---------- */
h1,h2,h3,h4{ font-family:var(--font-head); font-weight:400; line-height:1.02;
  letter-spacing:-.02em; margin:0; font-optical-sizing:auto; }
.display{ font-size:clamp(2.9rem, 8.5vw, 6.6rem); line-height:.98; letter-spacing:-.035em; }
h2.section-title{ font-size:clamp(2rem, 4.6vw, 3.4rem); letter-spacing:-.03em; }
h3{ font-size:clamp(1.3rem,2vw,1.6rem); }
p{ margin:0 0 1.1em; color:var(--ink-soft); }
p.lead{ font-size:clamp(1.12rem,1.4vw,1.35rem); color:var(--ink); line-height:1.55; }
strong{ color:var(--ink); font-weight:600; }
em{ font-style:italic; }

.eyebrow{
  display:inline-flex; align-items:center; gap:.6em;
  font-family:var(--font-body); font-size:.74rem; font-weight:600;
  letter-spacing:.22em; text-transform:uppercase; color:var(--accent);
  margin:0 0 1.4rem;
}
.eyebrow::before{ content:""; width:26px; height:1.5px; background:var(--accent); display:inline-block; }

/* ---------- layout ---------- */
.wrap{ width:min(var(--wrap), 92vw); margin-inline:auto; }
.wrap-wide{ width:min(1360px, 94vw); margin-inline:auto; }
section{ padding-block:var(--section-y); position:relative; }
.section--alt{ background:var(--surface); }
.section--dark{ background:var(--black); color:#f4f4f0; }
.section--dark p{ color:#b9b9b1; }
.section--dark .eyebrow{ color:#fff; }
.section--dark .eyebrow::before{ background:#fff; }

/* ---------- buttons ---------- */
.btn{
  --b:var(--ink);
  display:inline-flex; align-items:center; justify-content:center; gap:.65em;
  padding:1.02em 1.7em; border-radius:999px; border:1.5px solid var(--b);
  background:var(--b); color:var(--bg);
  font-size:.94rem; font-weight:600; letter-spacing:-.01em;
  transition:transform .35s var(--ease-spring), box-shadow .35s var(--ease), background .3s, color .3s;
  will-change:transform;
}
.btn:hover{ transform:translateY(-3px); box-shadow:0 14px 30px -12px rgba(11,11,11,.5); }
.btn:active{ transform:translateY(-1px) scale(.99); }
.btn .arw{ transition:transform .4s var(--ease-spring); }
.btn:hover .arw{ transform:translateX(5px); }
.btn--ghost{ background:transparent; color:var(--ink); --b:var(--line); }
.btn--ghost:hover{ --b:var(--ink); box-shadow:none; }
.btn--accent{ --b:var(--accent); background:var(--accent); color:#fff; }
.btn--light{ --b:#fff; background:#fff; color:var(--ink); }
.btn--lg{ padding:1.15em 2em; font-size:1rem; }

/* text link with underline sweep */
.link-arrow{ display:inline-flex; align-items:center; gap:.5em; font-weight:600;
  color:var(--ink); position:relative; }
.link-arrow::after{ content:""; position:absolute; left:0; bottom:-3px; height:1.5px; width:100%;
  background:currentColor; transform:scaleX(0); transform-origin:left; transition:transform .4s var(--ease); }
.link-arrow:hover::after{ transform:scaleX(1); }
.link-arrow svg{ transition:transform .4s var(--ease-spring); }
.link-arrow:hover svg{ transform:translateX(4px); }

/* ============================================================
   NAV
   ============================================================ */
.site-header{
  position:sticky; top:0; z-index:100;
  background:color-mix(in srgb, var(--bg) 82%, transparent);
  backdrop-filter:saturate(1.4) blur(14px);
  -webkit-backdrop-filter:saturate(1.4) blur(14px);
  border-bottom:1px solid transparent; transition:border-color .3s, background .3s;
}
.site-header.scrolled{ border-bottom-color:var(--line); }
.nav{ display:flex; align-items:center; justify-content:space-between; gap:2rem;
  height:74px; }
.brand{ display:flex; align-items:center; gap:.7rem; flex-shrink:0; }
.brand img{ height:34px; width:auto; }
.brand .brand-txt{ font-family:var(--font-head); font-size:1.05rem; letter-spacing:-.01em; }
.nav-links{ display:flex; align-items:center; gap:2.1rem; list-style:none; margin:0; padding:0; }
.nav-links a{ font-size:.95rem; font-weight:500; color:var(--ink-soft); position:relative;
  transition:color .25s; padding-block:.3rem; }
.nav-links a:hover, .nav-links a[aria-current="page"]{ color:var(--ink); }
.nav-links a::after{ content:""; position:absolute; left:0; right:0; bottom:-2px; height:1.5px;
  background:var(--accent); transform:scaleX(0); transform-origin:center; transition:transform .35s var(--ease); }
.nav-links a:hover::after, .nav-links a[aria-current="page"]::after{ transform:scaleX(1); }
.nav-cta{ display:flex; align-items:center; gap:1rem; }
.nav-cta .btn{ padding:.72em 1.25em; font-size:.88rem; }

.mobile-menu{ display:none; } /* hidden on desktop; enabled in mobile breakpoint */
.nav-toggle{ display:none; width:44px; height:44px; border:none; background:transparent;
  position:relative; border-radius:10px; }
.nav-toggle span{ position:absolute; left:11px; right:11px; height:2px; background:var(--ink);
  border-radius:2px; transition:transform .4s var(--ease-spring), opacity .25s; }
.nav-toggle span:nth-child(1){ top:16px; } .nav-toggle span:nth-child(2){ top:22px; }
.nav-toggle span:nth-child(3){ top:28px; }
.nav-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(6px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

/* ============================================================
   HERO
   ============================================================ */
.hero{ position:relative; padding-top:clamp(3rem,7vw,6rem); padding-bottom:clamp(3.5rem,7vw,6rem);
  overflow:clip; }
.hero-bg{ position:absolute; inset:0; z-index:0; background-size:cover; background-position:center;
  pointer-events:none; } /* editor hero background hook (empty by default) */
.hero .wrap{ position:relative; z-index:1; }
.hero-grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(2rem,5vw,5rem); align-items:center; }
.hero-kicker{ display:flex; align-items:center; gap:.8rem; margin-bottom:1.6rem; }
.hero-kicker .dot{ width:9px; height:9px; border-radius:50%; background:var(--accent);
  box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 60%,transparent); animation:pulse 2.4s var(--ease) infinite; }
@keyframes pulse{ 0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 55%,transparent);} 70%{box-shadow:0 0 0 12px transparent;} 100%{box-shadow:0 0 0 0 transparent;} }
.hero-kicker span{ font-size:.8rem; font-weight:600; letter-spacing:.03em; color:var(--ink-soft); }
.hero h1{ margin-bottom:1.5rem; }
.hero h1 .accent{ color:var(--accent); font-style:italic; }
/* smaller hero headline so "Social Media Content," sits on one line, "der performt" below */
.hero-headline{ font-size:clamp(2.2rem, 4.9vw, 3.9rem); line-height:1.06; letter-spacing:-.03em; }
/* services: 3rd card centered under the first two (desktop/tablet 2-col) */
.svc-grid > :nth-child(3){ grid-column:1 / -1; width:calc(50% - .7rem); margin-inline:auto; }
.hero-sub{ max-width:34ch; margin-bottom:2.2rem; }
.hero-actions{ display:flex; flex-wrap:wrap; gap:1rem; align-items:center; }
.hero-media{ position:relative; }
.hero-portrait{ aspect-ratio:3/4; width:100%; border-radius:var(--radius-lg); overflow:hidden;
  background:var(--surface-2); box-shadow:0 40px 80px -40px rgba(11,11,11,.45);
  object-fit:cover; }
.hero-badge{ position:absolute; left:-1.4rem; bottom:1.8rem; background:var(--bg);
  border:1px solid var(--line); border-radius:16px; padding:1rem 1.3rem; box-shadow:0 20px 45px -22px rgba(11,11,11,.4); }
.hero-badge b{ font-family:var(--font-head); font-size:1.7rem; display:block; line-height:1; }
.hero-badge small{ font-size:.78rem; color:var(--ink-faint); letter-spacing:.02em; }

/* marquee logos */
.trust{ border-block:1px solid var(--line); padding-block:1.6rem; }
.trust-inner{ display:flex; align-items:center; gap:clamp(1.5rem,5vw,4rem); flex-wrap:wrap;
  justify-content:center; }
.trust-label{ font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-faint); }
.trust-logo{ font-family:var(--font-head); font-size:clamp(1.15rem,2.2vw,1.6rem); color:var(--ink);
  opacity:.7; transition:opacity .3s; }
.trust-logo:hover{ opacity:1; }

/* ============================================================
   SERVICE CARDS
   ============================================================ */
.section-head{ max-width:60ch; margin-bottom:clamp(2.4rem,5vw,4rem); }
.section-head.center{ margin-inline:auto; text-align:center; }
.grid{ display:grid; gap:1.4rem; }
.grid-3{ grid-template-columns:repeat(3,1fr); }
.grid-2{ grid-template-columns:repeat(2,1fr); }
.card{
  background:var(--bg); border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:clamp(1.6rem,2.4vw,2.3rem); position:relative; overflow:hidden;
  transition:transform .5s var(--ease), border-color .4s, box-shadow .5s var(--ease);
}
.card:hover{ transform:translateY(-6px); border-color:var(--ink); box-shadow:0 30px 60px -34px rgba(11,11,11,.4); }
.card .num{ font-family:var(--font-head); font-size:.95rem; color:var(--accent); letter-spacing:.05em; }
.card h3{ margin:1.2rem 0 .7rem; }
.card p{ margin:0; font-size:.98rem; }
.card .card-ico{ width:46px; height:46px; border-radius:12px; display:grid; place-items:center;
  background:var(--surface); color:var(--accent); margin-bottom:.2rem; }
.section--alt .card{ background:var(--bg); }

/* stat row */
.stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem; }
.stat b{ font-family:var(--font-head); font-size:clamp(2.4rem,4.5vw,3.6rem); display:block;
  line-height:1; letter-spacing:-.03em; }
.stat span{ font-size:.9rem; color:var(--ink-soft); }
.section--dark .stat span{ color:#b9b9b1; }
.stat .accent{ color:var(--accent); }
.section--dark .stat .accent{ color:#7fd8bf; }

/* ============================================================
   VIDEO SHOWCASE
   ============================================================ */
.video-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.video-card{ position:relative; }
.video-frame{
  position:relative; aspect-ratio:9/16; border-radius:var(--radius-lg); overflow:hidden;
  background:#111; box-shadow:0 30px 60px -34px rgba(11,11,11,.5);
  transition:transform .5s var(--ease);
}
.video-card:hover .video-frame{ transform:translateY(-6px); }
.video-frame video{ width:100%; height:100%; object-fit:cover; }
.video-frame .poster{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  transition:opacity .5s var(--ease); }
.video-frame.playing .poster{ opacity:0; pointer-events:none; }
.video-frame::after{ content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.5)); opacity:1; transition:opacity .4s; }
.video-frame.playing::after{ opacity:0; }

.play-btn{
  position:absolute; inset:0; margin:auto; width:76px; height:76px; border-radius:50%;
  border:none; background:color-mix(in srgb,#fff 90%,transparent); color:var(--ink);
  display:grid; place-items:center; backdrop-filter:blur(6px);
  box-shadow:0 12px 30px -10px rgba(0,0,0,.55);
  transition:transform .4s var(--ease-spring), background .3s, opacity .3s;
}
.play-btn:hover{ transform:scale(1.08); }
.play-btn:active{ transform:scale(.96); }
.play-btn svg{ width:26px; height:26px; }
.play-btn .ico-pause{ display:none; }
.video-frame.playing .play-btn{ opacity:0; }
.video-frame.playing:hover .play-btn{ opacity:1; background:color-mix(in srgb,#fff 78%,transparent); }
.video-frame.playing .play-btn .ico-play{ display:none; }
.video-frame.playing .play-btn .ico-pause{ display:block; }

.video-meta{ display:flex; align-items:center; justify-content:space-between; gap:1rem;
  margin-top:1.1rem; }
.video-meta h3{ font-size:1.12rem; }
.video-meta p{ margin:.25rem 0 0; font-size:.86rem; color:var(--ink-faint); }
.ig-link{ display:inline-flex; align-items:center; gap:.45em; font-size:.85rem; font-weight:600;
  color:var(--ink); padding:.55em .9em; border:1px solid var(--line); border-radius:999px;
  transition:border-color .3s, background .3s, color .3s; flex-shrink:0; }
.ig-link:hover{ background:var(--ink); color:#fff; border-color:var(--ink); }
.ig-link svg{ width:16px; height:16px; }

/* per-video stats */
.video-stats{ display:flex; gap:.5rem; margin-top:.9rem; }
.stat-badge{ flex:1; min-width:0; display:flex; flex-direction:column; gap:.15rem;
  padding:.55rem .7rem; border:1px solid var(--line); border-radius:12px; background:var(--bg); }
.stat-badge b{ font-family:var(--font-head); font-size:1.15rem; line-height:1; letter-spacing:-.02em; }
.stat-badge span{ font-size:.62rem; letter-spacing:.04em; text-transform:uppercase; color:var(--ink-faint);
  line-height:1.15; hyphens:auto; overflow-wrap:break-word; }
.stat-badge.placeholder b{ color:var(--ink-faint); }
.stat-toggle{ margin-top:.7rem; display:inline-flex; align-items:center; gap:.4em; font-size:.82rem;
  font-weight:600; color:var(--ink); background:none; border:none; padding:.25rem 0; }
.stat-toggle:hover{ color:var(--accent); }
.stat-toggle svg{ width:15px; height:15px; transition:transform .35s var(--ease); }
.stat-toggle[aria-expanded="true"] svg{ transform:rotate(180deg); }
.stat-shot{ overflow:hidden; max-height:0; transition:max-height .5s var(--ease); }
.stat-shot.open{ max-height:900px; margin-top:.7rem; }
.stat-shot img{ width:100%; max-width:340px; border:1px solid var(--line); border-radius:14px; }

/* reference / trust logos (image with graceful text fallback) */
.trust-logo-img{ height:34px; width:auto; max-width:170px; object-fit:contain; opacity:.85;
  transition:opacity .3s; filter:saturate(0); }
.trust-logo-img:hover{ opacity:1; filter:none; }
.ref .ref-logo{ height:40px; width:auto; max-width:180px; object-fit:contain; margin-bottom:.9rem; }

/* logo chips (dark tile so light/white logos read on white bg) */
.logo-chip{ display:inline-flex; align-items:center; justify-content:center;
  background:#0b0b0b; border-radius:12px; padding:.6rem 1.05rem; }
.logo-chip img{ height:24px; width:auto; max-width:150px; object-fit:contain; display:block; }
.logo-chip--lg{ padding:.85rem 1.3rem; border-radius:14px; margin-bottom:1rem; }
.logo-chip--lg img{ height:34px; max-width:200px; }
/* plain full-colour logo (no chip) — e.g. Delikant on white */
.trust-logo-plain{ height:36px; width:auto; max-width:170px; object-fit:contain; }

/* ============================================================
   COOKIE CONSENT BANNER (TTDSG/DSGVO)
   ============================================================ */
.cookie-banner{
  position:fixed; left:50%; bottom:1rem; transform:translateX(-50%);
  width:min(560px, 92vw); background:var(--bg); border:1px solid var(--line);
  border-radius:16px; box-shadow:0 26px 60px -26px rgba(11,11,11,.45);
  padding:1.3rem 1.4rem; z-index:300; display:flex; flex-direction:column; gap:1rem;
  animation:cookieUp .5s var(--ease);
}
@keyframes cookieUp{ from{opacity:0; transform:translateX(-50%) translateY(18px);}
  to{opacity:1; transform:translateX(-50%) translateY(0);} }
.cookie-banner p{ margin:0; font-size:.9rem; line-height:1.55; color:var(--ink-soft); }
.cookie-banner a{ color:var(--ink); font-weight:600; text-decoration:underline; text-underline-offset:2px; }
.cookie-actions{ display:flex; gap:.7rem; }
.cookie-actions .btn{ flex:1; padding:.82em 1em; font-size:.9rem; }
@media (max-width:420px){ .cookie-actions{ flex-direction:column-reverse; } }
@media (prefers-reduced-motion:reduce){ .cookie-banner{ animation:none; } }

/* ============================================================
   SPLIT / ABOUT / REFERENCE
   ============================================================ */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,4.5rem); align-items:center; }
.split.reverse .split-media{ order:2; }
.split-media{ border-radius:var(--radius-lg); overflow:hidden; background:var(--surface-2);
  aspect-ratio:4/5; box-shadow:0 40px 80px -44px rgba(11,11,11,.4); }
.split-media img{ width:100%; height:100%; object-fit:cover; }

.ref-list{ display:grid; gap:1.2rem; }
.ref{ display:grid; grid-template-columns:auto 1fr; gap:1.4rem; align-items:start;
  padding:1.7rem 0; border-top:1px solid var(--line); }
.ref:last-child{ border-bottom:1px solid var(--line); }
.ref .ref-tag{ font-family:var(--font-head); font-size:1.4rem; color:var(--accent); min-width:2ch; }
.ref h3{ margin:0 0 .5rem; }
.ref p{ margin:0; font-size:.98rem; }
.ref .meta{ font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-faint);
  margin-bottom:.6rem; }

/* timeline */
.timeline{ position:relative; margin-top:2rem; padding-left:2rem; }
.timeline::before{ content:""; position:absolute; left:6px; top:6px; bottom:6px; width:2px;
  background:var(--line); }
.tl-item{ position:relative; padding-bottom:2.2rem; }
.tl-item::before{ content:""; position:absolute; left:-2rem; top:5px; width:14px; height:14px;
  border-radius:50%; background:var(--bg); border:2.5px solid var(--accent); }
.tl-item .tl-when{ font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; color:var(--accent);
  font-weight:600; margin-bottom:.35rem; }
.tl-item h3{ font-size:1.2rem; margin:0 0 .4rem; }
.tl-item p{ margin:0; font-size:.96rem; }

/* ============================================================
   CTA BANNER
   ============================================================ */
.cta-banner{ text-align:center; }
.cta-banner .display{ margin-bottom:1.6rem; }
.cta-banner .btn{ margin-top:.5rem; }
.section--dark .btn{ --b:#fff; background:#fff; color:var(--ink); }
.section--dark .btn--ghost{ background:transparent; color:#fff; --b:rgba(255,255,255,.35); }

/* ============================================================
   FORMS (contact)
   ============================================================ */
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1.1rem; }
.field{ display:flex; flex-direction:column; gap:.5rem; margin-bottom:0; }
.field.full{ grid-column:1 / -1; }
.field label{ font-size:.84rem; font-weight:600; letter-spacing:.01em; }
.field label .req{ color:var(--accent); }
.field input, .field textarea, .field select{
  font:inherit; font-size:1rem; padding:.95em 1.05em; border:1.5px solid var(--line);
  border-radius:12px; background:var(--bg); color:var(--ink); transition:border-color .25s, box-shadow .25s;
  width:100%;
}
.field textarea{ resize:vertical; min-height:140px; }
.field input:focus, .field textarea:focus, .field select:focus{
  outline:none; border-color:var(--accent); box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 12%,transparent); }
.field .err{ font-size:.8rem; color:#c0392b; min-height:1em; display:none; }
.field.invalid input, .field.invalid textarea{ border-color:#c0392b; }
.field.invalid .err{ display:block; }
.form-note{ font-size:.86rem; color:var(--ink-faint); background:var(--surface); border-radius:12px;
  padding:1rem 1.2rem; border:1px solid var(--line); }
.form-success{ display:none; padding:2.5rem; text-align:center; border:1px solid var(--line);
  border-radius:var(--radius-lg); background:var(--surface); }
.form-success.show{ display:block; animation:fadeUp .6s var(--ease); }
.form-success .ico{ width:56px; height:56px; border-radius:50%; background:var(--accent); color:#fff;
  display:grid; place-items:center; margin:0 auto 1.2rem; }

.contact-aside{ display:grid; gap:1.2rem; align-content:start; }
.contact-card{ border:1px solid var(--line); border-radius:var(--radius); padding:1.4rem 1.5rem; }
.contact-card .lbl{ font-size:.74rem; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-faint); }
.contact-card a{ font-size:1.1rem; font-weight:600; display:inline-block; margin-top:.35rem; }

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{ background:var(--black); color:#f2f2ee; padding-top:clamp(3.5rem,6vw,5.5rem);
  padding-bottom:2.5rem; }
.footer-top{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:2.5rem; padding-bottom:3rem;
  border-bottom:1px solid rgba(255,255,255,.12); }
.footer-brand img{ height:40px; margin-bottom:1.2rem; }
.footer-brand p{ color:#a9a9a1; max-width:34ch; font-size:.95rem; }
.footer-col h4{ font-family:var(--font-body); font-size:.76rem; letter-spacing:.18em; text-transform:uppercase;
  color:#8a8a83; margin:0 0 1.1rem; font-weight:600; }
.footer-col ul{ list-style:none; margin:0; padding:0; display:grid; gap:.7rem; }
.footer-col a{ color:#d7d7d1; font-size:.95rem; transition:color .25s; }
.footer-col a:hover{ color:#fff; }
.footer-social{ display:flex; gap:.8rem; margin-top:.4rem; }
.footer-social a{ width:42px; height:42px; border-radius:50%; border:1px solid rgba(255,255,255,.18);
  display:grid; place-items:center; color:#fff; transition:background .3s, border-color .3s, transform .3s var(--ease-spring); }
.footer-social a:hover{ background:#fff; color:var(--black); transform:translateY(-3px); }
.footer-bottom{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem;
  padding-top:1.8rem; font-size:.84rem; color:#8a8a83; }
.footer-bottom a{ color:#a9a9a1; } .footer-bottom a:hover{ color:#fff; }

/* ============================================================
   LEGAL PAGES
   ============================================================ */
.legal-head{ padding-top:clamp(3rem,6vw,5rem); padding-bottom:2rem; }
.legal-body{ max-width:760px; padding-bottom:var(--section-y); }
.legal-body h2{ font-size:1.5rem; margin:2.6rem 0 .9rem; }
.legal-body h3{ font-size:1.12rem; margin:1.8rem 0 .6rem; }
.legal-body p, .legal-body li{ color:var(--ink-soft); font-size:.98rem; }
.legal-body ul{ padding-left:1.2rem; }
.legal-note{ background:#fdf6e3; border:1px solid #eadfb8; border-radius:12px; padding:1.1rem 1.3rem;
  font-size:.9rem; color:#6b5d2f; margin:1.5rem 0; }
.legal-note strong{ color:#6b5d2f; }

/* ============================================================
   REVEAL ANIMATIONS
   ============================================================ */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.in{ opacity:1; transform:none; }
.reveal.d1{ transition-delay:.08s; } .reveal.d2{ transition-delay:.16s; }
.reveal.d3{ transition-delay:.24s; } .reveal.d4{ transition-delay:.32s; }
@keyframes fadeUp{ from{opacity:0; transform:translateY(16px);} to{opacity:1; transform:none;} }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1024px){
  .footer-top{ grid-template-columns:1fr 1fr; }
  .footer-brand{ grid-column:1 / -1; }
}
@media (max-width:860px){
  .hero-grid{ grid-template-columns:1fr; }
  .hero-media{ max-width:420px; }
  .grid-3{ grid-template-columns:1fr 1fr; }
  .video-grid{ grid-template-columns:1fr; max-width:440px; margin-inline:auto; }
  .split{ grid-template-columns:1fr; }
  .split.reverse .split-media{ order:0; }
  .stats{ grid-template-columns:1fr 1fr; gap:2rem 1rem; }
  .form-grid{ grid-template-columns:1fr; }

  .nav-links, .nav-cta .btn{ display:none; }
  .nav-toggle{ display:block; }
  .mobile-menu{ display:block; position:fixed; inset:74px 0 auto 0; background:var(--bg);
    border-bottom:1px solid var(--line); padding:1.5rem 4vw 2.2rem;
    transform:translateY(-12px); opacity:0; pointer-events:none; visibility:hidden;
    transition:transform .4s var(--ease), opacity .3s, visibility .3s; z-index:99; }
  .mobile-menu.open{ transform:none; opacity:1; pointer-events:auto; visibility:visible; }
  .mobile-menu ul{ list-style:none; margin:0 0 1.4rem; padding:0; display:grid; gap:.3rem; }
  .mobile-menu a{ display:block; padding:.85rem .4rem; font-family:var(--font-head); font-size:1.5rem;
    border-bottom:1px solid var(--line); }
  .mobile-menu .btn{ width:100%; }
}
@media (max-width:600px){
  .grid-2{ grid-template-columns:1fr; }   /* service cards full-width so they aren't tall & cramped */
  .svc-grid > :nth-child(3){ width:auto; }  /* centered card back to full width on mobile */
  .card{ padding:1.4rem 1.5rem; }
  .card h3{ font-size:1.3rem; margin:.9rem 0 .55rem; }
  .card p{ font-size:.95rem; }
  .card .num{ font-size:.85rem; }
}
@media (max-width:560px){
  .grid-3{ grid-template-columns:1fr; }
  .stats{ grid-template-columns:1fr 1fr; }
  .hero-badge{ left:0; }
  .footer-top{ grid-template-columns:1fr; }
  .footer-bottom{ justify-content:flex-start; }
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.001ms !important; transition-duration:.001ms !important;
    scroll-behavior:auto !important; }
  .reveal{ opacity:1; transform:none; }
}
