/* ============================================================ *
 *  Gruene Digital Marketing Agency — Landing page styles
 *  Recreated from the Claude Design handoff. Brand colors,
 *  type, and layout sampled from the GDM logo.
 * ============================================================ */

:root{
  /* Brand — sampled from the GDM logo */
  --lime: #46A645;
  --lime-bright: #57B84F;
  --green: #1E7D38;
  --forest: #0B4D20;
  --deep: #083A18;
  --deep-2: #052b12;

  --ink: #0A1C12;
  --ink-soft: #324a3b;
  --muted: #5d7567;

  --paper: #ffffff;
  --bg: #F4F8F1;
  --bg-2: #EAF3E5;
  --line: #e2ece0;
  --line-strong:#cde0c8;

  --grad: linear-gradient(135deg, var(--lime-bright) 0%, var(--green) 48%, var(--forest) 100%);
  --grad-soft: linear-gradient(135deg, #f1faec 0%, #e6f4df 100%);
  --grad-deep: linear-gradient(160deg, #0e4f25 0%, #083A18 70%, #052b12 100%);

  --shadow-sm: 0 1px 2px rgba(8,58,24,.06), 0 2px 6px rgba(8,58,24,.05);
  --shadow-md: 0 8px 24px -8px rgba(8,58,24,.18), 0 2px 8px rgba(8,58,24,.06);
  --shadow-lg: 0 30px 60px -20px rgba(8,58,24,.30), 0 12px 28px -12px rgba(8,58,24,.18);
  --shadow-green: 0 18px 40px -14px rgba(30,125,56,.45);

  --r-sm: 10px;
  --r: 16px;
  --r-lg: 24px;
  --r-xl: 32px;

  --btn-radius: 999px;

  --container: 1200px;
  --ease: cubic-bezier(.22,.61,.36,1);
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  font-family:"Plus Jakarta Sans", system-ui, sans-serif;
  color:var(--ink);
  background:var(--paper);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
::selection{ background:var(--lime); color:#04341d; }

h1,h2,h3,h4{ font-family:"Sora", system-ui, sans-serif; line-height:1.05; letter-spacing:-.02em; font-weight:700; color:var(--ink); }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; }
img{ max-width:100%; display:block; }

.container{ width:100%; max-width:var(--container); margin-inline:auto; padding-inline:24px; }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.55em;
  font-family:"Sora",sans-serif; font-weight:600; font-size:1rem;
  padding:.95em 1.5em; border-radius:var(--btn-radius); border:1px solid transparent;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s, color .2s;
  white-space:nowrap; line-height:1;
}
.btn svg{ width:1.1em; height:1.1em; }
.btn-primary{ background:var(--grad); color:#fff; box-shadow:var(--shadow-green); }
.btn-primary:hover{ transform:translateY(-2px); box-shadow:0 24px 50px -16px rgba(30,125,56,.6); }
.btn-ghost{ background:rgba(255,255,255,.06); color:var(--ink); border-color:var(--line-strong); }
.btn-ghost:hover{ border-color:var(--green); color:var(--green); transform:translateY(-2px); }
.btn-white{ background:#fff; color:var(--forest); }
.btn-white:hover{ transform:translateY(-2px); box-shadow:var(--shadow-lg); }
.btn-lg{ font-size:1.075rem; padding:1.1em 1.9em; }
.btn-block{ width:100%; }

/* ---------- Section scaffolding ---------- */
section{ position:relative; }
.sec-pad{ padding:clamp(72px, 9vw, 130px) 0; }
.eyebrow{
  display:inline-flex; align-items:center; gap:.5em;
  font-family:"Sora",sans-serif; font-weight:600; font-size:.8rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--green);
}
.eyebrow .dot{ width:7px; height:7px; border-radius:50%; background:var(--grad); box-shadow:0 0 0 4px rgba(70,166,69,.16); }
.section-head{ max-width:660px; }
.section-head h2{ font-size:clamp(2rem, 4vw, 3.1rem); margin:.5em 0 .35em; }
.section-head p{ color:var(--muted); font-size:1.125rem; }
.text-grad{ background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; }

/* chips */
.chip{ display:inline-flex; align-items:center; gap:.5em; font-size:.85rem; font-weight:600; color:var(--ink-soft);
  background:#fff; border:1px solid var(--line); border-radius:999px; padding:.5em .9em; box-shadow:var(--shadow-sm); }

/* reveal — base state is fully visible so the page works with no JS and with
   reduced motion. When JS is active (html.js) elements start hidden and
   animate in as they scroll into view (purely an enhancement). */
.reveal{ opacity:1; transform:none; }
html.js .reveal{ opacity:0; transform:translateY(18px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
html.js .reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  html.js .reveal{ opacity:1; transform:none; transition:none; }
}

/* ============ HEADER ============ */
.hdr{ position:fixed; top:0; left:0; right:0; z-index:40; transition:background .3s, box-shadow .3s, border-color .3s; border-bottom:1px solid transparent; }
.hdr.solid{ background:rgba(255,255,255,.82); backdrop-filter:blur(14px) saturate(1.3); border-color:var(--line); box-shadow:0 2px 20px -12px rgba(8,58,24,.25); }
.hdr-in{ display:flex; align-items:center; gap:24px; height:72px; }
.hdr-logo{ display:flex; align-items:center; }
.hdr-nav{ display:flex; align-items:center; gap:30px; margin-left:18px; }
.hdr-nav a{ font-family:"Sora",sans-serif; font-weight:500; font-size:.95rem; color:var(--ink-soft); position:relative; padding:4px 0; transition:color .2s; }
.hdr-nav a::after{ content:""; position:absolute; left:0; right:100%; bottom:-2px; height:2px; background:var(--grad); border-radius:2px; transition:right .3s var(--ease); }
.hdr-nav a:hover{ color:var(--ink); } .hdr-nav a:hover::after{ right:0; }
.hdr-cta{ margin-left:auto; }
.hdr-burger{ display:none; margin-left:auto; flex-direction:column; gap:5px; background:none; border:0; padding:8px; }
.hdr-burger span{ width:24px; height:2px; background:var(--ink); border-radius:2px; }
.hdr-mobile{ display:none; }
@media (max-width:880px){
  .hdr-nav, .hdr-cta{ display:none; }
  .hdr-burger{ display:flex; }
  .hdr-mobile.open{ display:flex; flex-direction:column; gap:14px; padding:20px 24px 26px; background:#fff; border-bottom:1px solid var(--line); }
  .hdr-mobile.open a:not(.btn){ font-family:"Sora",sans-serif; font-weight:600; color:var(--ink); padding:6px 0; }
}

/* ============ HERO ============ */
.hero{ position:relative; padding:140px 0 90px; overflow:hidden; background:var(--paper); }
.hero-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center; }
.hero-badge{ display:inline-flex; align-items:center; gap:.6em; background:#fff; border:1px solid var(--line-strong); border-radius:999px; padding:.5em .9em .5em .6em; font-size:.85rem; font-weight:600; color:var(--ink-soft); box-shadow:var(--shadow-sm); }
.hero-badge b{ background:var(--grad); color:#fff; font-size:.72rem; padding:.35em .7em; border-radius:999px; font-family:"Sora",sans-serif; letter-spacing:.02em; }
.hero h1{ font-size:clamp(2.5rem, 5.4vw, 4.3rem); font-weight:800; margin:.5em 0 .42em; }
.hero h1 .text-grad{ display:inline; }
.hero-sub{ font-size:1.2rem; color:var(--ink-soft); max-width:540px; }
.hero-cta{ display:flex; flex-wrap:wrap; gap:14px; margin:34px 0 26px; }
.hero-assure{ display:flex; flex-wrap:wrap; gap:20px; color:var(--muted); font-size:.92rem; }
.hero-assure span{ display:inline-flex; align-items:center; gap:.5em; }
.hero-assure svg{ width:17px; height:17px; color:var(--green); }
@media (max-width:960px){ .hero-grid{ grid-template-columns:1fr; gap:40px; } .hero{ padding:118px 0 70px; } }

/* hero visual */
.hv{ position:relative; }
.hv-card{ position:relative; background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--shadow-lg); overflow:hidden; }
.hv-bar{ display:flex; align-items:center; gap:7px; padding:13px 16px; border-bottom:1px solid var(--line); background:linear-gradient(180deg,#fbfdfa,#fff); }
.hv-dot{ width:11px; height:11px; border-radius:50%; }
.hv-url{ margin-left:10px; font-size:.78rem; color:var(--muted); background:var(--bg); border:1px solid var(--line); border-radius:8px; padding:.32em .7em; font-family:"Sora",sans-serif; }
.hv-body{ padding:22px; }
.hv-row{ display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:18px; }
.hv-kpis{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-bottom:20px; }
.hv-kpi{ background:var(--bg); border:1px solid var(--line); border-radius:var(--r-sm); padding:12px 14px; }
.hv-kpi .k-label{ font-size:.72rem; color:var(--muted); font-weight:600; }
.hv-kpi .k-val{ font-family:"Sora",sans-serif; font-weight:800; font-size:1.5rem; color:var(--ink); line-height:1.1; }
.hv-kpi .k-val small{ font-size:.95rem; color:var(--green); font-weight:700; }
.hv-chart{ background:linear-gradient(180deg,#f7fcf3,#fff); border:1px solid var(--line); border-radius:var(--r); padding:16px 16px 8px; }
.hv-float{ position:absolute; bottom:-20px; right:-22px; background:#ffffff; color:var(--paper); border:1px solid var(--paper); border-radius:15px; box-shadow:0 30px 60px -20px rgba(255,255,255,.30), 0 12px 28px -12px rgba(255,255,255,.18); padding:14px 16px; display:flex; align-items:center; gap:12px; animation:floaty 5.4s ease-in-out infinite; z-index:2; }
.hv-float .fi{ width:40px; height:40px; border-radius:12px; display:grid; place-items:center; color:var(--green); background:#ffffff; border:1px solid var(--line); flex:none; }
.hv-float .fi svg{ width:21px; height:21px; }
.hv-float .ftt{ font-family:"Sora",sans-serif; font-weight:800; font-size:1.12rem; line-height:1; color:var(--green); }
.hv-float .fs{ font-size:.76rem; color:var(--muted); margin-top:2px; }
@keyframes floaty{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-9px); } }
@media (max-width:1100px){ .hv-float{ right:16px; bottom:16px; } }
@media (max-width:540px){ .hv-float{ display:none; } }

/* industries marquee */
.inds{ border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--bg); padding:26px 0; }
.inds-lab{ text-align:center; font-size:.82rem; letter-spacing:.13em; text-transform:uppercase; font-weight:600; color:var(--muted); font-family:"Sora",sans-serif; margin-bottom:18px; }
.inds-row{ display:flex; flex-wrap:wrap; justify-content:center; gap:14px; }
.ind-pill{ display:inline-flex; align-items:center; gap:.55em; background:#fff; border:1px solid var(--line); border-radius:999px; padding:.6em 1.1em; font-family:"Sora",sans-serif; font-weight:600; font-size:.95rem; color:var(--ink-soft); box-shadow:var(--shadow-sm); }
.ind-pill svg{ width:18px; height:18px; color:var(--green); }

/* ============ SERVICES ============ */
.svc-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:54px; }
.svc-card{ background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:30px 28px; transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s; position:relative; overflow:hidden; }
.svc-card::before{ content:""; position:absolute; inset:0 0 auto 0; height:3px; background:var(--grad); transform:scaleX(0); transform-origin:left; transition:transform .4s var(--ease); }
.svc-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-md); border-color:var(--line-strong); }
.svc-card:hover::before{ transform:scaleX(1); }
.svc-ic{ display:grid; place-items:center; width:54px; height:54px; border-radius:15px; background:var(--grad-soft); color:var(--green); margin-bottom:18px; transition:transform .35s var(--ease); }
.svc-ic svg{ width:26px; height:26px; }
.svc-card:hover .svc-ic{ transform:translateY(-2px) rotate(-4deg); }
.svc-card h3{ font-size:1.22rem; margin-bottom:.5em; }
.svc-card p{ color:var(--muted); font-size:.97rem; }
@media (max-width:900px){ .svc-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:600px){ .svc-grid{ grid-template-columns:1fr; } }

/* ============ PROCESS ============ */
.proc{ background:var(--bg); }
.proc-grid{ position:relative; display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:54px; }
.proc-line{ position:absolute; top:34px; left:11%; right:11%; height:2px; }
.proc-line span{ display:block; height:100%; background:repeating-linear-gradient(90deg, var(--line-strong) 0 10px, transparent 10px 18px); }
.proc-step{ position:relative; text-align:left; }
.proc-node{ width:68px; height:68px; border-radius:20px; background:#fff; border:1px solid var(--line); box-shadow:var(--shadow-sm); display:grid; place-items:center; color:var(--green); position:relative; z-index:1; transition:transform .35s var(--ease), box-shadow .35s; }
.proc-node svg{ width:30px; height:30px; }
.proc-step:hover .proc-node{ transform:translateY(-4px); box-shadow:var(--shadow-green); background:var(--grad); color:#fff; }
.proc-num{ font-family:"Sora",sans-serif; font-weight:800; font-size:.82rem; color:var(--lime); letter-spacing:.1em; margin:18px 0 6px; }
.proc-step h3{ font-size:1.2rem; margin-bottom:.45em; }
.proc-step p{ color:var(--muted); font-size:.95rem; }
@media (max-width:900px){ .proc-grid{ grid-template-columns:1fr 1fr; gap:34px 24px; } .proc-line{ display:none; } }
@media (max-width:520px){ .proc-grid{ grid-template-columns:1fr; } }

/* ============ BOOKING ============ */
.book{ background:var(--grad-deep); color:#fff; overflow:hidden; }
.book::before{ content:""; position:absolute; inset:0; background:
    radial-gradient(60% 50% at 85% 0%, rgba(87,184,79,.18) 0%, transparent 60%),
    radial-gradient(50% 45% at 5% 100%, rgba(70,166,69,.16) 0%, transparent 55%); pointer-events:none; }
.book .container{ position:relative; }
.book .section-head h2, .book .section-head{ color:#fff; }
.book .section-head p{ color:rgba(255,255,255,.72); }
.book .eyebrow{ color:var(--lime-bright); }
.book .text-grad{ background:linear-gradient(120deg,#9fdd7a,#46A645); -webkit-background-clip:text; background-clip:text; color:transparent; }

.book-shell{ display:grid; grid-template-columns:340px 1fr; background:#fff; border-radius:var(--r-xl); box-shadow:var(--shadow-lg); margin-top:46px; overflow:hidden; color:var(--ink); min-height:560px; }
@media (max-width:880px){ .book-shell{ grid-template-columns:1fr; } }

.book-aside{ background:linear-gradient(165deg,#0d4a22,#083A18); color:#fff; padding:34px 30px; position:relative; }
.ba-brand{ margin-bottom:22px; filter:brightness(1.15); }
.ba-host{ font-size:.85rem; color:rgba(255,255,255,.6); font-weight:600; }
.ba-title{ color:#fff; font-size:1.5rem; margin:.25em 0 1.1em; line-height:1.15; }
.ba-meta{ list-style:none; display:flex; flex-direction:column; gap:13px; }
.ba-meta li{ display:flex; align-items:flex-start; gap:11px; font-size:.94rem; color:rgba(255,255,255,.9); }
.ba-meta svg{ width:19px; height:19px; color:var(--lime-bright); flex:none; margin-top:1px; }
.ba-quote{ margin-top:24px; padding:16px 18px; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.12); border-radius:14px; font-size:.9rem; line-height:1.55; color:rgba(255,255,255,.82); font-style:italic; }
.ba-pick{ margin-top:22px; padding-top:20px; border-top:1px solid rgba(255,255,255,.14); display:flex; flex-direction:column; gap:10px; }
.ba-pick-row{ display:flex; align-items:center; gap:10px; font-size:.95rem; }
.ba-pick-row svg{ width:18px; height:18px; color:var(--lime-bright); }
.ba-pick-row b{ font-family:"Sora",sans-serif; }

.book-main{ padding:34px 34px 36px; }
@media (max-width:520px){ .book-main, .book-aside{ padding:26px 22px; } }

/* calendar layout — date only; the time is chosen on Calendly */
.book-cal{ max-width:480px; margin:0 auto; }
.book-go{ max-width:480px; margin:22px auto 0; padding-top:22px; border-top:1px solid var(--line); display:flex; flex-direction:column; align-items:center; gap:12px; text-align:center; }
.book-go-date{ display:inline-flex; align-items:center; gap:8px; font-family:"Sora",sans-serif; font-weight:700; font-size:1.08rem; color:var(--ink); }
.book-go-date svg{ width:18px; height:18px; color:var(--green); }
.book-go .btn{ min-width:260px; }
.book-go-note{ font-size:.85rem; color:var(--muted); }

.cal-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
.cal-title{ font-family:"Sora",sans-serif; font-weight:700; font-size:1.12rem; }
.cal-nav{ width:36px; height:36px; border-radius:10px; border:1px solid var(--line); background:#fff; color:var(--ink); font-size:1.2rem; line-height:1; display:grid; place-items:center; transition:.2s; }
.cal-nav:hover:not(:disabled){ border-color:var(--green); color:var(--green); }
.cal-nav:disabled{ opacity:.3; cursor:not-allowed; }
.cal-dow{ display:grid; grid-template-columns:repeat(7,1fr); gap:4px; margin-bottom:6px; }
.cal-dow span{ text-align:center; font-size:.72rem; font-weight:700; color:var(--muted); font-family:"Sora",sans-serif; }
.cal-grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:4px; }
.cal-cell{ aspect-ratio:1; border:1px solid transparent; background:var(--bg); border-radius:11px; font-family:"Sora",sans-serif; font-weight:600; font-size:.95rem; color:var(--ink); position:relative; transition:.18s; }
.cal-cell:hover:not(.dis):not(.empty){ background:var(--grad-soft); border-color:var(--line-strong); color:var(--green); transform:translateY(-1px); }
.cal-cell.sel{ background:var(--grad); color:#fff; box-shadow:var(--shadow-green); border-color:transparent; }
.cal-cell.dis{ color:#c2cfc4; background:transparent; cursor:not-allowed; }
.cal-cell.empty{ background:transparent; border:0; pointer-events:none; }
.cal-today{ position:absolute; bottom:5px; left:50%; transform:translateX(-50%); width:4px; height:4px; border-radius:50%; background:var(--lime); }
.cal-cell.sel .cal-today{ background:#fff; }
.cal-legend{ display:flex; align-items:center; gap:8px; margin-top:14px; font-size:.8rem; color:var(--muted); }
.lg-dot{ width:10px; height:10px; border-radius:3px; background:var(--grad); }

/* (booking details-form + confirmation styles removed — booking hands off to Calendly) */

/* ============ ABOUT ============ */
.about-grid{ display:grid; grid-template-columns:.92fr 1.08fr; gap:56px; align-items:center; }
@media (max-width:880px){ .about-grid{ grid-template-columns:1fr; gap:38px; } }
.about-media{ position:relative; }
.about-photo{ display:block; width:100%; aspect-ratio:4/5; border-radius:22px; box-shadow:var(--shadow-lg); border:1px solid var(--line); object-fit:cover; }
/* editable placeholder — swap for a real <img class="about-photo"> when you have a photo */
.about-photo--ph{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; text-align:center; padding:24px;
  background:linear-gradient(160deg,#0e4f25 0%,#083A18 70%,#052b12 100%); color:rgba(255,255,255,.82); }
.about-photo--ph svg{ width:46px; height:46px; opacity:.7; }
.about-photo--ph .ph-cap{ font-family:"Sora",sans-serif; font-weight:600; font-size:.98rem; max-width:80%; }
.about-photo--ph .ph-sub{ font-size:.8rem; opacity:.7; }
.about-media::before{ content:""; position:absolute; inset:auto -16px -16px auto; width:62%; height:62%; background:var(--grad); border-radius:24px; z-index:-1; opacity:.16; }
.about-badge{ position:absolute; right:-18px; bottom:26px; background:#fff; border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow-md); padding:13px 16px; display:flex; align-items:center; gap:12px; }
.about-badge .ab-ic{ width:42px; height:42px; border-radius:12px; background:var(--grad); color:#fff; display:grid; place-items:center; flex:none; }
.about-badge .ab-ic svg{ width:22px; height:22px; }
.about-badge b{ display:block; font-family:"Sora",sans-serif; font-size:.98rem; }
.about-badge span{ font-size:.8rem; color:var(--muted); }
.about-copy h2{ font-size:clamp(2rem,3.6vw,2.9rem); margin:.5em 0 .55em; }
.about-copy > p{ color:var(--ink-soft); font-size:1.06rem; margin-bottom:1.1em; }
.about-copy b{ color:var(--ink); font-weight:700; }
.about-stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin:30px 0 30px; }
@media (max-width:520px){ .about-stats{ grid-template-columns:1fr 1fr; } }
.about-stat{ background:var(--bg); border:1px solid var(--line); border-radius:14px; padding:16px 14px; }
.as-val{ font-family:"Sora",sans-serif; font-weight:800; font-size:1.5rem; background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; line-height:1; }
.as-lab{ font-size:.8rem; color:var(--muted); margin-top:6px; }

/* ============ FAQ ============ */
.faq{ background:var(--bg); }
.faq-grid{ display:grid; grid-template-columns:.8fr 1.2fr; gap:48px; align-items:start; }
@media (max-width:880px){ .faq-grid{ grid-template-columns:1fr; gap:28px; } }
.faq-intro{ position:sticky; top:96px; }
@media (max-width:880px){ .faq-intro{ position:static; } }
.faq-intro h2{ font-size:clamp(2rem,3.6vw,2.9rem); margin:.5em 0 .5em; }
.faq-intro p{ color:var(--muted); font-size:1.05rem; margin-bottom:1.3em; }
.faq-list{ display:flex; flex-direction:column; gap:12px; }
.faq-item{ background:#fff; border:1px solid var(--line); border-radius:16px; overflow:hidden; transition:border-color .25s, box-shadow .25s; }
.faq-item.open{ border-color:var(--line-strong); box-shadow:var(--shadow-md); }
.faq-q{ width:100%; display:flex; align-items:center; justify-content:space-between; gap:16px; text-align:left; background:none; border:0; padding:20px 22px; font-family:"Sora",sans-serif; font-weight:600; font-size:1.06rem; color:var(--ink); }
.faq-plus{ flex:none; width:32px; height:32px; border-radius:9px; background:var(--grad-soft); color:var(--green); display:grid; place-items:center; transition:transform .3s var(--ease), background .3s; }
.faq-plus svg{ width:18px; height:18px; }
.faq-item.open .faq-plus{ transform:rotate(135deg); background:var(--grad); color:#fff; }
.faq-a{ display:grid; grid-template-rows:0fr; transition:grid-template-rows .35s var(--ease); }
.faq-item.open .faq-a{ grid-template-rows:1fr; }
.faq-a-in{ overflow:hidden; }
.faq-a p{ padding:0 22px 22px; color:var(--muted); font-size:1rem; line-height:1.6; }

/* ============ FINAL CTA ============ */
.final{ padding:0 0 clamp(60px,8vw,100px); }
.final-card{ position:relative; background:var(--paper); border:1px solid var(--line-strong); box-shadow:var(--shadow-md); border-radius:var(--r-xl); padding:clamp(44px,6vw,80px); overflow:hidden; text-align:center; }
.final-glow{ display:none; }
.final-in{ position:relative; max-width:680px; margin:0 auto; }
.final-in h2{ color:var(--ink); font-size:clamp(2.1rem,4.4vw,3.3rem); margin:.45em 0 .5em; }
.final-in .text-grad{ background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; }
.final-in > p{ color:var(--ink-soft); font-size:1.18rem; margin-bottom:32px; }
.final-cta{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
.final-call{ color:#fff; border:1px solid rgba(255,255,255,.25); background:rgba(255,255,255,.05); }
.final-call:hover{ border-color:#fff; transform:translateY(-2px); }
.final-call svg{ width:18px; height:18px; }

/* ============ FOOTER ============ */
.ft{ background:var(--ink); color:rgba(255,255,255,.7); padding:64px 0 30px; }
.ft-grid{ display:grid; grid-template-columns:1.6fr 1fr 1.2fr 1fr; gap:40px; padding-bottom:46px; border-bottom:1px solid rgba(255,255,255,.1); }
@media (max-width:880px){ .ft-grid{ grid-template-columns:1fr 1fr; gap:34px; } }
@media (max-width:520px){ .ft-grid{ grid-template-columns:1fr; } }
.ft-brand p{ font-size:.95rem; margin:16px 0 14px; max-width:300px; }
.ft-loc{ display:inline-flex; align-items:center; gap:8px; font-size:.9rem; color:var(--lime-bright); font-weight:600; }
.ft-loc svg{ width:17px; height:17px; }
.ft-col h4, .ft-cta h4{ color:#fff; font-family:"Sora",sans-serif; font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; margin-bottom:16px; }
.ft-col{ display:flex; flex-direction:column; gap:11px; }
.ft-col a{ font-size:.95rem; color:rgba(255,255,255,.7); display:inline-flex; align-items:center; gap:9px; transition:color .2s; width:fit-content; }
.ft-col a svg{ width:16px; height:16px; color:var(--lime-bright); }
.ft-col a:hover{ color:#fff; }
.ft-base{ display:flex; align-items:center; justify-content:space-between; padding-top:24px; font-size:.85rem; color:rgba(255,255,255,.5); flex-wrap:wrap; gap:12px; }
.ft-base-links{ display:flex; gap:20px; }
.ft-base-links a:hover{ color:#fff; }

/* footer wordmark logo */
.ft-logo{ height:46px; width:auto; }
