/* ==========================================================================
   FENDARO — design system stylesheet
   Art direction: "Quiet Confidence Grid" — airy editorial, unequal grids,
   a single accent spine connecting section headings, asymmetric hero.
   Class scheme: fdn.<module>[.<state>]  (dot-segmented, prefix "fdn")
   ========================================================================== */

:root{
  /* shared tokens (consumed by cookie-consent.js etc.) */
  --site-bg:#2a1e2b;
  --site-surface:#352738;
  --site-text:#ece3e7;
  --site-muted:#a89aa4;
  --site-accent:#d1a3ac;
  --site-accent2:#8f7290;

  /* local aliases */
  --bg:var(--site-bg);
  --surface:var(--site-surface);
  --surface-2:#3d2c40;
  --text:var(--site-text);
  --muted:var(--site-muted);
  --accent:var(--site-accent);
  --accent2:var(--site-accent2);
  --line:rgba(236,227,231,.12);

  --font-heading:'Sora', 'Segoe UI', sans-serif;
  --font-body:'Work Sans', 'Segoe UI', sans-serif;

  --container:1180px;
  --gutter:24px;
  --section-pad:72px;
}

/* ==========================================================================
   Reset / base
   ========================================================================== */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
html,body{ max-width:100%; overflow-x:hidden; }
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-body);
  font-weight:400;
  line-height:1.6;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
}
img,svg{ max-width:100%; display:block; }
ul{ margin:0; padding:0; list-style:none; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }
input,textarea,select{ font:inherit; color:inherit; }
h1,h2,h3,h4{ font-family:var(--font-heading); font-weight:700; line-height:1.15; margin:0; letter-spacing:-.01em; }
p{ margin:0; }

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

h1{ font-size:clamp(2.1rem,4.6vw + 1rem,3.6rem); }
h2{ font-size:clamp(1.7rem,2.6vw + 1rem,2.5rem); }
h3{ font-size:clamp(1.2rem,1.2vw + 1rem,1.5rem); }

.fdn\.container{
  width:100%;
  max-width:var(--container);
  margin-inline:auto;
  padding-inline:var(--gutter);
}

.fdn\.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--font-heading);
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--accent);
  margin-bottom:14px;
}
.fdn\.eyebrow::before{ content:''; width:22px; height:1px; background:var(--accent); }

/* ==========================================================================
   Section rhythm + signature spine element
   ========================================================================== */
.fdn\.section{
  position:relative;
  padding-block:var(--section-pad);
}
.fdn\.section.is-tinted{ background:var(--surface); }
.fdn\.section::before{
  content:'';
  position:absolute;
  top:0; bottom:0;
  left:calc(var(--gutter) + 2px);
  width:1px;
  background:linear-gradient(to bottom, transparent, var(--accent) 12%, var(--accent2) 88%, transparent);
  opacity:.4;
  pointer-events:none;
}
@media (min-width:768px){
  .fdn\.section::before{ left:calc((100vw - var(--container))/2 + 4px); }
}
.fdn\.section-head{
  position:relative;
  padding-left:34px;
  max-width:640px;
  margin-bottom:44px;
}
.fdn\.section-head::before{
  content:'';
  position:absolute;
  left:6px; top:9px;
  width:9px; height:9px;
  transform:translateX(-4px) rotate(45deg);
  background:var(--accent);
}
.fdn\.section-head p{ color:var(--muted); margin-top:12px; max-width:52ch; }

/* ==========================================================================
   Header — centered logo, split nav
   ========================================================================== */
#site-head-j3k{
  position:sticky; top:0; z-index:100;
  background:var(--bg);
  border-bottom:1px solid var(--line);
  transition:background .3s ease, border-color .3s ease;
}
#site-head-j3k.is-scrolled{ background:var(--surface); }

.fdn\.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding-block:18px;
}

.fdn\.brand{
  display:inline-flex;
  align-items:baseline;
  gap:10px;
  order:2;
}
.fdn\.brand-mark{
  width:30px; height:30px;
  color:var(--accent);
  align-self:center;
}
.fdn\.brand-word{
  font-family:var(--font-heading);
  font-size:1.28rem;
  font-weight:700;
  letter-spacing:-.01em;
  color:var(--text);
}

.fdn\.nav-cluster{
  display:none;
  flex:1;
}
.fdn\.nav-cluster.is-left{ order:1; justify-content:flex-end; }
.fdn\.nav-cluster.is-right{ order:3; justify-content:flex-start; }

.fdn\.nav{
  display:flex;
  align-items:center;
  gap:28px;
}
.fdn\.nav-cluster.is-left .fdn\.nav{ justify-content:flex-end; }

.fdn\.nav-item{
  position:relative;
  font-size:.92rem;
  font-weight:500;
  color:var(--muted);
  padding-block:6px;
  transition:color .2s ease;
}
.fdn\.nav-item:hover{ color:var(--text); }
.fdn\.nav-item\.is-active{ color:var(--text); }
.fdn\.nav-item\.is-active::after{
  content:'';
  position:absolute;
  left:0; right:0; bottom:0;
  height:2px;
  background:var(--accent);
}

/* duplicate nav content split visually left/right of the wordmark */
.fdn\.nav-cluster.is-left li:nth-child(n+3){ display:none; }
.fdn\.nav-cluster.is-right li:nth-child(-n+2){ display:none; }

.fdn\.nav-toggle{
  order:4;
  display:inline-flex;
  flex-direction:column;
  gap:5px;
  padding:8px;
  margin-left:auto;
}
.fdn\.nav-toggle span{
  width:22px; height:2px;
  background:var(--text);
  display:block;
}

@media (min-width:768px){
  .fdn\.header-inner{ padding-block:22px; }
  .fdn\.nav-cluster{ display:flex; }
  .fdn\.nav-toggle{ display:none; }
}

/* Mobile drawer (does not lock page scroll) */
#dim-a04{
  position:fixed; inset:0;
  background:rgba(20,14,20,.55);
  opacity:0; visibility:hidden;
  transition:opacity .3s ease;
  z-index:150;
}
#dim-a04.is-open{ opacity:1; visibility:visible; }

#drawer-l6l{
  position:fixed; top:0; right:0; bottom:0;
  width:min(84vw,340px);
  background:var(--surface);
  border-left:1px solid var(--line);
  transform:translateX(100%);
  transition:transform .35s ease;
  z-index:160;
  padding:26px 28px;
  overflow-y:auto;
}
#drawer-l6l.is-open{ transform:translateX(0); }

.fdn\.drawer-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:32px;
}
#nav-close-8sn{ font-size:1.4rem; padding:6px; line-height:1; }

.fdn\.drawer-nav{
  display:flex;
  flex-direction:column;
  gap:4px;
}
.fdn\.drawer-nav .fdn\.nav-item{
  padding-block:12px;
  border-bottom:1px solid var(--line);
  color:var(--text);
  font-size:1.02rem;
}

@media (min-width:768px){ #drawer-l6l, #dim-a04{ display:none; } }

/* ==========================================================================
   Buttons
   ========================================================================== */
.fdn\.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:14px 28px;
  background:var(--accent);
  color:#2a1e2b;
  font-family:var(--font-heading);
  font-weight:600;
  font-size:.92rem;
  letter-spacing:.01em;
  border:1px solid var(--accent);
  min-height:46px;
  transition:background .2s ease, color .2s ease, border-color .2s ease, opacity .2s ease;
}
.fdn\.btn:hover{ background:transparent; color:var(--text); }
.fdn\.btn\.is-outline{
  background:transparent;
  color:var(--text);
  border-color:var(--line);
}
.fdn\.btn\.is-outline:hover{ border-color:var(--accent); color:var(--accent); }
.fdn\.btn\.is-ghost{
  background:transparent;
  border-color:transparent;
  color:var(--accent);
  padding-inline:4px;
}
.fdn\.btn\.is-ghost:hover{ color:var(--text); }

/* ==========================================================================
   HERO — asymmetric, headline overlapping top edge of image
   ========================================================================== */
.fdn\.hero{
  position:relative;
  display:grid;
  grid-template-columns:1fr;
  gap:40px;
  padding-top:44px;
}
.fdn\.hero-copy{
  position:relative;
  z-index:2;
  max-width:560px;
}
.fdn\.hero-copy .fdn\.eyebrow{ margin-bottom:18px; }
.fdn\.hero-lead{
  font-size:clamp(2.2rem,5vw + 1rem,3.9rem);
  font-family:var(--font-heading);
  font-weight:700;
  letter-spacing:-.02em;
}
.fdn\.hero-copy p{
  margin-top:22px;
  color:var(--muted);
  font-size:1.08rem;
  max-width:44ch;
}
.fdn\.hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:16px;
  margin-top:34px;
}
.fdn\.hero-media{
  position:relative;
  aspect-ratio:4/5;
  overflow:hidden;
  background:var(--surface);
}
.fdn\.hero-media img{
  width:100%; height:100%;
  object-fit:cover;
  filter:saturate(.92) contrast(1.02);
}
.fdn\.hero-stat{
  position:absolute;
  left:20px; bottom:20px;
  background:var(--bg);
  border:1px solid var(--line);
  padding:16px 20px;
  z-index:3;
}
.fdn\.hero-stat strong{
  display:block;
  font-family:var(--font-heading);
  font-size:1.6rem;
  color:var(--accent);
}
.fdn\.hero-stat span{ font-size:.78rem; color:var(--muted); }

@media (min-width:768px){
  .fdn\.hero{
    grid-template-columns:1fr 1.35fr;
    align-items:center;
    padding-top:60px;
    padding-bottom:12px;
  }
  .fdn\.hero-copy{
    margin-right:-40px;
    margin-top:70px;
    padding:36px 32px 36px 0;
    background:var(--bg);
  }
  .fdn\.hero-media{
    margin-right:calc((100vw - var(--container))/-2 - var(--gutter));
    margin-top:-46px;
  }
}

/* ==========================================================================
   Sectors — list rows: sector + what changes
   ========================================================================== */
.fdn\.sector-list{ display:flex; flex-direction:column; }
.fdn\.sector-row{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
  padding-block:26px;
  border-top:1px solid var(--line);
}
.fdn\.sector-row:last-child{ border-bottom:1px solid var(--line); }
.fdn\.sector-name{
  font-family:var(--font-heading);
  font-size:1.15rem;
  font-weight:600;
}
.fdn\.sector-name span{ color:var(--accent); margin-right:12px; font-size:.85rem; }
.fdn\.sector-change{ color:var(--muted); max-width:60ch; }

@media (min-width:768px){
  .fdn\.sector-row{ grid-template-columns:1fr 1.6fr; align-items:baseline; gap:32px; }
}

/* ==========================================================================
   FAQ — accordion (index)
   ========================================================================== */
.fdn\.accordion{ display:flex; flex-direction:column; }
.fdn\.accordion-item{ border-top:1px solid var(--line); }
.fdn\.accordion-item:last-child{ border-bottom:1px solid var(--line); }
.fdn\.accordion-toggle{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding-block:22px;
  text-align:left;
  font-family:var(--font-heading);
  font-size:1.02rem;
  font-weight:600;
}
.fdn\.accordion-toggle i{
  color:var(--accent);
  transition:transform .3s ease;
  flex-shrink:0;
}
.fdn\.accordion-item\.is-open .fdn\.accordion-toggle i{ transform:rotate(45deg); }
.fdn\.accordion-body{
  max-height:0;
  overflow:hidden;
  transition:max-height .35s ease;
}
.fdn\.accordion-item\.is-open .fdn\.accordion-body{ max-height:600px; }
.fdn\.accordion-body-inner{ padding-bottom:24px; color:var(--muted); max-width:65ch; }

/* Compact FAQ chips (tax page) */
.fdn\.faq-chips{ display:flex; flex-direction:column; gap:12px; }
.fdn\.faq-chip{ background:var(--surface); border:1px solid var(--line); }
.fdn\.faq-chip .fdn\.accordion-toggle{ padding:16px 20px; font-size:.95rem; }
.fdn\.faq-chip .fdn\.accordion-body-inner{ padding:0 20px 20px; }

/* ==========================================================================
   Process — 4 steps in a row (index)
   ========================================================================== */
.fdn\.process-row{
  display:grid;
  grid-template-columns:1fr;
  gap:32px;
}
.fdn\.process-step{
  position:relative;
  padding-top:26px;
  border-top:2px solid var(--accent2);
}
.fdn\.process-step strong{
  display:block;
  font-family:var(--font-heading);
  font-size:2rem;
  color:var(--accent);
  margin-bottom:10px;
}
.fdn\.process-step h3{ margin-bottom:8px; }
.fdn\.process-step p{ color:var(--muted); }

@media (min-width:768px){
  .fdn\.process-row{ grid-template-columns:repeat(4,1fr); gap:28px; }
}

/* Vertical timeline (due-diligence page) */
.fdn\.timeline{ position:relative; display:flex; flex-direction:column; gap:0; }
.fdn\.timeline-step{
  position:relative;
  display:grid;
  grid-template-columns:56px 1fr;
  gap:22px;
  padding-block:30px;
}
.fdn\.timeline-step::before{
  content:'';
  position:absolute;
  left:27px; top:0; bottom:0;
  width:1px;
  background:var(--line);
}
.fdn\.timeline-step:first-child::before{ top:30px; }
.fdn\.timeline-step:last-child::before{ bottom:calc(100% - 30px); }
.fdn\.timeline-num{
  position:relative;
  z-index:1;
  width:54px; height:54px;
  display:flex; align-items:center; justify-content:center;
  background:var(--surface);
  border:1px solid var(--accent);
  color:var(--accent);
  font-family:var(--font-heading);
  font-weight:700;
}
.fdn\.timeline-copy h3{ margin-bottom:8px; }
.fdn\.timeline-copy p{ color:var(--muted); max-width:56ch; }

/* ==========================================================================
   Case study — three-act layout
   ========================================================================== */
.fdn\.case-study{ display:flex; flex-direction:column; }
.fdn\.case-act{
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
  padding-block:30px;
  border-top:1px solid var(--line);
}
.fdn\.case-act:last-child{ border-bottom:1px solid var(--line); }
.fdn\.case-act-label{
  font-family:var(--font-heading);
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--accent);
}
.fdn\.case-act-copy p{ color:var(--muted); max-width:60ch; }
.fdn\.case-act-copy h3{ margin-bottom:10px; }

@media (min-width:768px){
  .fdn\.case-act{ grid-template-columns:200px 1fr; gap:36px; align-items:start; }
}

/* ==========================================================================
   Pricing — 3 cards
   ========================================================================== */
.fdn\.pricing-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:2px;
  background:var(--line);
}
.fdn\.card-pricing{
  background:var(--surface);
  padding:40px 32px;
  display:flex;
  flex-direction:column;
  gap:18px;
}
.fdn\.card-pricing\.is-featured{
  background:var(--bg);
  border-top:3px solid var(--accent);
}
.fdn\.pricing-name{ font-family:var(--font-heading); font-size:1.1rem; font-weight:600; }
.fdn\.pricing-figure{ font-family:var(--font-heading); font-size:2.2rem; color:var(--accent); }
.fdn\.pricing-figure span{ font-size:.9rem; color:var(--muted); font-weight:400; }
.fdn\.pricing-list{ display:flex; flex-direction:column; gap:10px; margin-top:6px; flex:1; }
.fdn\.pricing-list li{ display:flex; gap:10px; color:var(--muted); font-size:.92rem; }
.fdn\.pricing-list li i{ color:var(--accent); margin-top:3px; }

/* ==========================================================================
   Team — person cards
   ========================================================================== */
.fdn\.team-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:28px;
}
.fdn\.card-person{ display:flex; flex-direction:column; }
.fdn\.card-person-photo{
  aspect-ratio:3/4;
  overflow:hidden;
  background:var(--surface);
}
.fdn\.card-person-photo img{ width:100%; height:100%; object-fit:cover; }
.fdn\.card-person h3{ margin-top:18px; }
.fdn\.card-person span{ display:block; color:var(--accent); font-size:.86rem; margin-top:4px; }
.fdn\.card-person p{ color:var(--muted); margin-top:10px; font-size:.92rem; }

/* ==========================================================================
   CTA strips — 4 variants
   ========================================================================== */
.fdn\.cta-strip{
  background:var(--surface);
  padding:56px var(--gutter);
  text-align:center;
}
.fdn\.cta-strip h2{ max-width:26ch; margin-inline:auto; }
.fdn\.cta-strip p{ color:var(--muted); max-width:52ch; margin:16px auto 0; }
.fdn\.cta-actions{ display:flex; justify-content:center; gap:16px; margin-top:30px; flex-wrap:wrap; }

/* full-width band (index) */
.fdn\.cta-strip\.is-band{
  background:linear-gradient(120deg, var(--surface), var(--surface-2));
  padding-block:80px;
}

/* split CTA — text + inline form (due-diligence) */
.fdn\.cta-strip\.is-split{
  text-align:left;
  display:grid;
  grid-template-columns:1fr;
  gap:28px;
  align-items:center;
}
.fdn\.cta-strip\.is-split h2,
.fdn\.cta-strip\.is-split p{ margin-inline:0; }
.fdn\.cta-inline-form{ display:flex; flex-wrap:wrap; gap:12px; }
.fdn\.cta-inline-form input{
  flex:1; min-width:200px;
  background:var(--bg);
  border:1px solid var(--line);
  padding:14px 16px;
  color:var(--text);
}
@media (min-width:768px){
  .fdn\.cta-strip\.is-split{ grid-template-columns:1.4fr 1fr; padding:64px 56px; }
}

/* centered card (business-valuations) */
.fdn\.cta-strip\.is-card{
  max-width:640px;
  margin-inline:auto;
  border:1px solid var(--line);
  background:var(--bg);
  padding:56px 40px;
}

/* icons + reassurance line (tax page) */
.fdn\.cta-strip\.is-icons .fdn\.cta-reassure{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:28px;
  margin-top:28px;
  color:var(--muted);
  font-size:.88rem;
}
.fdn\.cta-reassure li{ display:flex; align-items:center; gap:8px; }
.fdn\.cta-reassure i{ color:var(--accent); }

/* ==========================================================================
   Page hero variants
   ========================================================================== */
.fdn\.page-hero{ padding-block:56px 20px; }
.fdn\.page-hero .fdn\.eyebrow{ margin-bottom:16px; }
.fdn\.page-hero h1{ max-width:20ch; }
.fdn\.page-hero p{ color:var(--muted); max-width:56ch; margin-top:20px; font-size:1.05rem; }

/* hero over tinted band */
.fdn\.page-hero\.has-band{
  background:var(--surface);
  padding-block:80px;
  border-bottom:1px solid var(--line);
}

/* hero with side image */
.fdn\.page-hero\.has-side-image{
  display:grid;
  grid-template-columns:1fr;
  gap:32px;
  align-items:center;
}
.fdn\.page-hero-media{
  aspect-ratio:16/10;
  overflow:hidden;
  background:var(--surface);
}
.fdn\.page-hero-media img{ width:100%; height:100%; object-fit:cover; }
@media (min-width:768px){
  .fdn\.page-hero\.has-side-image{ grid-template-columns:1.1fr 1fr; gap:48px; }
}

/* type-only oversized headline on gradient field */
.fdn\.page-hero\.is-typeonly{
  background:linear-gradient(160deg, var(--bg) 0%, var(--surface2,var(--surface)) 120%);
  padding-block:96px;
  text-align:left;
}
.fdn\.page-hero\.is-typeonly h1{
  font-size:clamp(2.4rem,6vw + 1rem,4.6rem);
  max-width:16ch;
}

/* centered compact hero (contact) */
.fdn\.page-hero\.is-compact{
  text-align:center;
  padding-block:64px 30px;
}
.fdn\.page-hero\.is-compact h1,
.fdn\.page-hero\.is-compact p{ margin-inline:auto; }

/* ==========================================================================
   Checklist — two columns
   ========================================================================== */
.fdn\.checklist{
  display:grid;
  grid-template-columns:1fr;
  gap:12px 40px;
}
.fdn\.checklist-item{
  display:flex; gap:12px;
  padding-block:14px;
  border-top:1px solid var(--line);
}
.fdn\.checklist-item i{ color:var(--accent); margin-top:3px; }
.fdn\.checklist-item p{ color:var(--muted); }
.fdn\.checklist-item strong{ display:block; color:var(--text); margin-bottom:4px; }
@media (min-width:768px){
  .fdn\.checklist{ grid-template-columns:1fr 1fr; }
}

/* ==========================================================================
   Stats row
   ========================================================================== */
.fdn\.stat-row{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:32px;
}
.fdn\.stat-figure{
  font-family:var(--font-heading);
  font-size:clamp(2rem,3vw + 1rem,3.2rem);
  color:var(--accent);
  display:block;
}
.fdn\.stat-cell{ border-top:2px solid var(--accent2); padding-top:18px; }
.fdn\.stat-cell span{ color:var(--muted); font-size:.86rem; }

/* ==========================================================================
   Methodology — numbered phases with rule between
   ========================================================================== */
.fdn\.methodology{ display:flex; flex-direction:column; }
.fdn\.methodology-phase{
  display:grid;
  grid-template-columns:64px 1fr;
  gap:24px;
  padding-block:34px;
  border-top:1px solid var(--line);
}
.fdn\.methodology-phase:last-child{ border-bottom:1px solid var(--line); }
.fdn\.methodology-phase strong{
  font-family:var(--font-heading);
  font-size:1.6rem;
  color:var(--accent2);
}
.fdn\.methodology-phase h3{ margin-bottom:8px; }
.fdn\.methodology-phase p{ color:var(--muted); max-width:60ch; }

/* ==========================================================================
   Comparison — us vs them
   ========================================================================== */
.fdn\.comparison{
  display:grid;
  grid-template-columns:1fr;
  gap:2px;
  background:var(--line);
}
.fdn\.comparison-col{ background:var(--bg); padding:32px 28px; }
.fdn\.comparison-col\.is-them{ background:var(--surface); }
.fdn\.comparison-col h3{ margin-bottom:18px; }
.fdn\.comparison-col ul{ display:flex; flex-direction:column; gap:12px; }
.fdn\.comparison-col li{ display:flex; gap:10px; color:var(--muted); font-size:.92rem; }
.fdn\.comparison-col\.is-us li i{ color:var(--accent); }
@media (min-width:768px){ .fdn\.comparison{ grid-template-columns:1fr 1fr; } }

/* ==========================================================================
   Testimonial — single large, with photo
   ========================================================================== */
.fdn\.testimonial{
  display:grid;
  grid-template-columns:1fr;
  gap:28px;
  align-items:center;
}
.fdn\.testimonial-photo{
  aspect-ratio:1/1;
  max-width:180px;
  overflow:hidden;
  background:var(--surface);
}
.fdn\.testimonial-photo img{ width:100%; height:100%; object-fit:cover; }
.fdn\.testimonial-quote{
  font-family:var(--font-heading);
  font-size:clamp(1.3rem,2vw + 1rem,1.9rem);
  font-weight:500;
  line-height:1.4;
}
.fdn\.testimonial-name{ margin-top:20px; color:var(--accent); font-size:.9rem; }
.fdn\.testimonial-name span{ color:var(--muted); }
@media (min-width:768px){
  .fdn\.testimonial{ grid-template-columns:220px 1fr; gap:48px; }
}

/* ==========================================================================
   Services — two-column list (tax page)
   ========================================================================== */
.fdn\.services-list{
  display:grid;
  grid-template-columns:1fr;
  gap:0 40px;
}
.fdn\.service-row{
  padding-block:24px;
  border-top:1px solid var(--line);
}
.fdn\.service-row h3{ margin-bottom:8px; }
.fdn\.service-row p{ color:var(--muted); font-size:.94rem; }
@media (min-width:768px){ .fdn\.services-list{ grid-template-columns:1fr 1fr; } }

/* ==========================================================================
   Benefits — checkmarks beside image
   ========================================================================== */
.fdn\.benefits{
  display:grid;
  grid-template-columns:1fr;
  gap:32px;
  align-items:center;
}
.fdn\.benefits-media{
  aspect-ratio:4/3;
  overflow:hidden;
  background:var(--surface);
}
.fdn\.benefits-media img{ width:100%; height:100%; object-fit:cover; }
.fdn\.benefits-list{ display:flex; flex-direction:column; gap:16px; }
.fdn\.benefits-list li{ display:flex; gap:14px; }
.fdn\.benefits-list i{ color:var(--accent); margin-top:4px; }
.fdn\.benefits-list strong{ display:block; margin-bottom:2px; }
.fdn\.benefits-list p{ color:var(--muted); font-size:.92rem; }
@media (min-width:768px){ .fdn\.benefits{ grid-template-columns:1.6fr 1fr; } }

/* ==========================================================================
   Contact form layout
   ========================================================================== */
.fdn\.contact-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:44px;
}
.fdn\.contact-note{ color:var(--muted); max-width:44ch; }
.fdn\.contact-detail{
  display:flex; gap:14px; align-items:flex-start;
  padding-top:18px; margin-top:18px;
  border-top:1px solid var(--line);
}
.fdn\.contact-detail i{ color:var(--accent); margin-top:3px; }
@media (min-width:768px){ .fdn\.contact-grid{ grid-template-columns:1fr 1.15fr; } }

/* ==========================================================================
   Forms
   ========================================================================== */
.fdn\.form{ display:flex; flex-direction:column; gap:20px; }
.fdn\.form-field{ display:flex; flex-direction:column; gap:8px; }
.fdn\.form-field label{ font-size:.84rem; color:var(--muted); }
.fdn\.form-field input,
.fdn\.form-field textarea{
  background:var(--surface);
  border:1px solid var(--line);
  padding:14px 16px;
  color:var(--text);
  min-height:48px;
  transition:border-color .2s ease;
}
.fdn\.form-field textarea{ min-height:140px; resize:vertical; }
.fdn\.form-field input:focus,
.fdn\.form-field textarea:focus{ border-color:var(--accent); }
.fdn\.form-field\.has-error input,
.fdn\.form-field\.has-error textarea{ border-color:#c97a7a; }
.fdn\.form-error{ font-size:.78rem; color:#e2a1a1; display:none; }
.fdn\.form-field\.has-error .fdn\.form-error{ display:block; }

/* ==========================================================================
   Cards (generic metric card, used site-wide)
   ========================================================================== */
.fdn\.card-metric{
  background:var(--surface);
  padding:28px 26px;
  border-top:2px solid var(--accent);
}
.fdn\.card-metric strong{ display:block; font-family:var(--font-heading); font-size:1.8rem; color:var(--accent); }
.fdn\.card-metric span{ color:var(--muted); font-size:.88rem; }

/* ==========================================================================
   Footer — newsletter-led, unequal grid
   ========================================================================== */
.fdn\.footer{
  background:var(--surface);
  border-top:1px solid var(--line);
  padding-block:64px 28px;
}
.fdn\.footer-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:48px;
}
.fdn\.footer-newsletter h2{ max-width:16ch; margin-bottom:14px; }
.fdn\.footer-newsletter p{ color:var(--muted); max-width:46ch; margin-bottom:24px; }
.fdn\.footer-form{ display:flex; flex-wrap:wrap; gap:12px; max-width:460px; }
.fdn\.footer-form input{
  flex:1; min-width:200px;
  background:var(--bg);
  border:1px solid var(--line);
  padding:14px 16px;
  color:var(--text);
}
.fdn\.footer-nav{
  display:flex; flex-wrap:wrap;
  gap:10px 26px;
  margin-top:36px;
}
.fdn\.footer-nav a{ color:var(--muted); font-size:.9rem; }
.fdn\.footer-nav a:hover{ color:var(--accent); }

.fdn\.footer-legal{
  border-left:0;
  padding-top:4px;
}
.fdn\.footer-legal-name{ font-family:var(--font-heading); font-weight:600; margin-bottom:6px; }
.fdn\.footer-legal address{ font-style:normal; color:var(--muted); font-size:.88rem; line-height:1.7; }
.fdn\.footer-legal-meta{ margin-top:16px; color:var(--muted); font-size:.8rem; line-height:1.8; }
.fdn\.footer-legal-meta span{ display:block; }

.fdn\.footer-bottom{
  margin-top:56px;
  padding-top:24px;
  border-top:1px solid var(--line);
  display:flex;
  flex-wrap:wrap;
  gap:14px 24px;
  align-items:center;
  justify-content:space-between;
  font-size:.82rem;
  color:var(--muted);
}
.fdn\.footer-bottom-links{ display:flex; gap:20px; flex-wrap:wrap; }
.fdn\.footer-bottom-links a:hover{ color:var(--accent); }

@media (min-width:768px){
  .fdn\.footer-grid{ grid-template-columns:1.6fr 1fr; gap:64px; }
}

/* ==========================================================================
   Swiper (shared component styling; used where sliders appear)
   ========================================================================== */
.swipe-deck-vqz{ padding-bottom:44px; }
.swipe-deck-vqz .swiper-slide{ height:auto; }
.swipe-deck-vqz .swiper-pagination-bullet{
  background:var(--muted);
  opacity:.5;
  border-radius:0;
  width:8px; height:8px;
}
.swipe-deck-vqz .swiper-pagination-bullet-active{ background:var(--accent); opacity:1; }
.swipe-deck-vqz .swiper-button-prev,
.swipe-deck-vqz .swiper-button-next{ color:var(--accent); }
.swipe-deck-vqz .swiper-button-prev::after,
.swipe-deck-vqz .swiper-button-next::after{ font-size:1.2rem; }

/* ==========================================================================
   Modal (scroll-safe overlay)
   ========================================================================== */
.site-modal{
  position:fixed; inset:0;
  z-index:300;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:rgba(20,14,20,.6);
  opacity:0; visibility:hidden;
  pointer-events:none;
  transition:opacity .25s ease;
}
.site-modal\.is-open,
.site-modal.is-open{ opacity:1; visibility:visible; pointer-events:auto; }
.fdn\.modal-dialog{
  position:relative;
  width:100%; max-width:520px;
  background:var(--bg);
  border:1px solid var(--line);
  padding:40px 36px;
}
.fdn\.modal-close{
  position:absolute; top:14px; right:14px;
  font-size:1.3rem;
  padding:8px;
}
.fdn\.modal-dialog h3{ margin-bottom:14px; }
.fdn\.modal-dialog p{ color:var(--muted); }

/* ==========================================================================
   Prose (legal pages: privacy / cookie policy)
   ========================================================================== */
.fdn\.prose{ max-width:72ch; }
.fdn\.prose h2{ margin-top:44px; margin-bottom:14px; }
.fdn\.prose h2:first-child{ margin-top:0; }
.fdn\.prose p{ color:var(--muted); margin-bottom:16px; }
.fdn\.prose ul{ display:flex; flex-direction:column; gap:10px; margin:16px 0; }
.fdn\.prose li{ color:var(--muted); padding-left:20px; position:relative; }
.fdn\.prose li::before{ content:'—'; position:absolute; left:0; color:var(--accent); }

/* ==========================================================================
   Parallax media
   ========================================================================== */
.shift-media-yt3{ width:100%; height:100%; object-fit:cover; }

/* ==========================================================================
   AOS low-motion tuning
   ========================================================================== */
[data-aos]{ transition-duration:600ms !important; }

/* ==========================================================================
   Responsive fine-tuning
   ========================================================================== */
@media (max-width:359px){
  .fdn\.container{ padding-inline:16px; }
  .fdn\.hero-copy{ padding-right:0; }
}
@media (min-width:1200px){
  :root{ --section-pad:88px; }
}


/* --- cookie consent (per-site) --- */
.ck-r9v-overlay{position:fixed;inset:0;opacity:0;visibility:hidden;transition:.25s;z-index:9998;}
.ck-r9v-overlay.is-open{opacity:1;visibility:visible;}
.ck-r9v-panel{position:fixed;background:var(--site-surface,#fff);color:var(--site-text,#1a1a1a);
  box-shadow:0 20px 60px rgba(0,0,0,.28);padding:24px;opacity:0;visibility:hidden;transition:.25s;z-index:9999;}
.ck-r9v-panel.is-open{opacity:1;visibility:visible;}
.ck-r9v-panel h3{margin:0 0 8px;font-size:1.2rem;}
.ck-r9v-panel>p{margin:0 0 16px;color:var(--site-muted,#666);font-size:.95rem;}
.ck-r9v-cat{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-top:1px solid rgba(128,128,128,.2);}
.ck-r9v-cat h4{margin:0 0 2px;font-size:.98rem;}
.ck-r9v-cat p{margin:0;color:var(--site-muted,#777);font-size:.85rem;}
.ck-r9v-switch{position:relative;flex:0 0 auto;width:44px;height:24px;}
.ck-r9v-switch input{opacity:0;width:0;height:0;position:absolute;}
.ck-r9v-switch span{position:absolute;inset:0;background:#c9c9c9;border-radius:999px;transition:.2s;cursor:pointer;}
.ck-r9v-switch span::before{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s;}
.ck-r9v-switch input:checked+span{background:var(--site-accent,#2b7);}
.ck-r9v-switch input:checked+span::before{transform:translateX(20px);}
.ck-r9v-switch input:disabled+span{opacity:.6;cursor:not-allowed;}
.ck-r9v-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px;}
.ck-r9v-actions button{flex:1;min-width:140px;padding:11px 16px;border:none;border-radius:10px;font:inherit;font-weight:600;cursor:pointer;}
.ck-r9v-actions #ck-r9v-all{background:var(--site-accent,#2b7);color:#fff;}
.ck-r9v-actions #ck-r9v-save{background:transparent;color:var(--site-text,#222);border:1px solid rgba(128,128,128,.4);}
.ck-r9v-links{display:flex;gap:16px;margin-top:14px;font-size:.85rem;}
.ck-r9v-links a{color:var(--site-accent,#2b7);text-decoration:underline;}
.ck-r9v-trigger{position:fixed;left:18px;bottom:18px;width:44px;height:44px;border-radius:50%;border:none;cursor:pointer;
  background:var(--site-surface,#fff);color:var(--site-accent,#2b7);box-shadow:0 6px 18px rgba(0,0,0,.2);z-index:9997;font-size:1.1rem;}

.ck-r9v-overlay{background:transparent;pointer-events:none;}
.ck-r9v-panel{left:0;right:0;bottom:0;width:100%;border-radius:16px 16px 0 0;transform:translateY(100%);}
.ck-r9v-panel>*{max-width:900px;margin-left:auto;margin-right:auto;}
.ck-r9v-panel.is-open{transform:translateY(0);}
@media(max-width:520px){.ck-r9v-actions button{min-width:100%;}}
#float-bar-l57{left:auto !important;right:18px !important;}
@media(max-width:520px){#float-bar-l57{right:12px !important;}}
html[data-cookie-open] #float-bar-l57{bottom:min(46vh,260px) !important;}


/* --- safety net (deterministic) --- */
*,*::before,*::after{box-sizing:border-box;}
html,body{overflow-x:hidden;overflow-x:clip;max-width:100%;}
img,svg,video,iframe,canvas{max-width:100%;}
table{max-width:100%;}
/* simpleParallax оборачивает <img> в свой .simpleParallax — заставляем обёртку
   тянуться на всю высоту родителя, а фото внутри — cover. Проценты безопасны:
   при родителе без заданной высоты height:100% откатывается к auto (без коллапса). */
.simpleParallax{display:block;width:100%;height:100%;}
.simpleParallax img{width:100%;height:100%;object-fit:cover;}
/* Браузерный дефолт для <blockquote> и <figure> — margin: 1em 40px. Модель берёт
   эти семантические теги для отзывов и карточек с подписью, но сбросить поля
   забывает: внутри карточки в 267px текст сжимался до 131px (по 40px с каждой
   стороны) и переносился по одному слову, а между карточками зияли пустоты.
   Сбрасываем только горизонтальные поля — вертикальные обычно задуманы. */
blockquote, figure { margin-left: 0; margin-right: 0; }
/* Вложенные фигуры внутри сеток тоже не должны добавлять отступ сбоку. */
figure > blockquote, figure > figcaption { margin-left: 0; margin-right: 0; }
/* Если AOS не поднялся (CDN недоступен, блокировщик) — main.js вешает .no-aos.
   Без этого элементы с data-aos остались бы с opacity:0 из aos.css, то есть
   половина страницы была бы невидимой. */
html.no-aos [data-aos]{opacity:1 !important;transform:none !important;}
/* Пользователи с prefers-reduced-motion получают контент сразу, без анимаций. */
@media(prefers-reduced-motion:reduce){
  [data-aos]{opacity:1 !important;transform:none !important;transition:none !important;}
}
