/* ==========================================================================
   Ambitions First Care — site presentation layer
   Design system v1.0.0  (split-nav header / centred stacked footer)
   ========================================================================== */

:root{
  --ink:#08262B;
  --deep:#0B2E33;
  --deep-2:#123F47;
  --deep-3:#1A525B;
  --cream:#F7F2E8;
  --paper:#FFFCF6;
  --tint:#E9F1EE;
  --line:rgba(11,46,51,.14);
  --line-lt:rgba(247,242,232,.20);
  --accent:#E4913A;
  --accent-d:#C4731C;
  --accent-txt:#8A4F16;
  --sage:#5B9A8F;
  --text:#16292C;
  --muted:#5B6E70;
  --shadow:0 18px 40px -24px rgba(8,38,43,.45);
  --wrap:1180px;
  --h-font:"Montserrat",system-ui,-apple-system,"Segoe UI",sans-serif;
  --b-font:"Open Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
}

/* ---------------------------------------------------------- Astra reset */
body.afc-site #masthead,
body.afc-site .site-footer,
body.afc-site #colophon { display:none !important; }

body.afc-site .site-content,
body.afc-site .site-content .ast-container{ max-width:none; padding:0; margin:0; }
body.afc-site #primary{ width:100%; max-width:none; margin:0; padding:0; float:none; }
body.afc-site .entry-content{ padding:0; margin:0; }
body.afc-site .entry-header,
body.afc-site .ast-single-entry-banner{ display:none; }
body.afc-site .ast-separate-container{ background:none; padding:0; }
body.afc-site .ast-separate-container .ast-article-single{ padding:0; margin:0; border:0; background:none; box-shadow:none; }
body.afc-site #content .ast-container > .content-area{ width:100%; }
body.afc-site{margin:0;}

/* ------------------------------------------------------------- base type */
/* `html` prefix is deliberate: it keeps our typography ahead of the Astra and
   Elementor global kit rules, which also target body.<class>. */
html body.afc-site{
  font-family:var(--b-font);
  font-size:17px;
  line-height:1.72;
  color:var(--text);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
}
html body.afc-site h1,html body.afc-site h2,html body.afc-site h3,
html body.afc-site h4,html body.afc-site h5,html body.afc-site h6{
  font-family:var(--h-font);
  color:var(--ink);
  font-weight:700;
  line-height:1.18;
  letter-spacing:-.015em;
  margin:0 0 .55em;
}
html body.afc-site h1{font-size:clamp(2.1rem,4.4vw,3.35rem);font-weight:800;}
html body.afc-site h2{font-size:clamp(1.6rem,2.9vw,2.35rem);}
html body.afc-site h3{font-size:clamp(1.15rem,1.7vw,1.4rem);}
html body.afc-site h4{font-size:1.05rem;}
html body.afc-site p{margin:0 0 1.1em;}
html body.afc-site a{color:var(--accent-txt);text-decoration:none;}
html body.afc-site a:hover{text-decoration:underline;}
html body.afc-site ul,html body.afc-site ol{margin:0 0 1.2em;padding-left:1.25em;}
html body.afc-site li{margin:0 0 .45em;}
html body.afc-site strong{color:var(--ink);font-weight:700;}
html body.afc-site img{max-width:100%;height:auto;display:block;}
html body.afc-site hr{border:0;border-top:1px solid var(--line);margin:2.4em 0;}

/* The theme prints its own "Skip to content" link immediately before the
   content area, so the presentation layer does not add a second one. */

/* --------------------------------------------------------------- header */
.afc-header{position:relative;z-index:90;background:var(--deep);color:var(--cream);}
.afc-header__bar{border-bottom:1px solid rgba(247,242,232,.14);}
.afc-header__bar .afc-wrap{max-width:1330px;}
.afc-header__grid{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:20px;
  min-height:88px;
  position:relative;
}
.afc-header__brand{grid-column:2;text-align:center;}
.afc-header__side--left{grid-column:1;justify-self:start;}
.afc-header__side--right{grid-column:3;justify-self:end;}
.afc-header__cta{display:none;}

.afc-lockup{display:inline-flex;align-items:center;gap:13px;text-decoration:none !important;}
.afc-lockup__mark{width:48px;height:48px;flex:0 0 48px;}
.afc-lockup__text{display:flex;flex-direction:column;line-height:1.1;text-align:left;}
.afc-lockup__name{
  font-family:var(--h-font);font-weight:800;font-size:1.24rem;letter-spacing:-.02em;
  color:var(--cream);text-transform:none;white-space:nowrap;
}
.afc-lockup__name em{font-style:normal;color:var(--accent);}
.afc-lockup__sub{
  font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(247,242,232,.62);
  font-weight:600;margin-top:5px;white-space:nowrap;
}

.afc-nav{margin:0;padding:0;list-style:none;display:flex;gap:20px;}
.afc-nav li{margin:0;flex:0 0 auto;}
.afc-nav a{
  display:inline-block;padding:6px 0;color:var(--cream);font-weight:600;font-size:.79rem;
  letter-spacing:.035em;text-transform:uppercase;text-decoration:none !important;white-space:nowrap;
  border-bottom:2px solid transparent;transition:border-color .18s,color .18s;
}
.afc-nav a:hover,.afc-nav .current-menu-item > a{border-bottom-color:var(--accent);color:#fff;}
.afc-footer .afc-nav{justify-content:center;flex-wrap:wrap;gap:8px 22px;}
.afc-footer .afc-nav a{color:rgba(247,242,232,.85);font-size:.82rem;text-transform:none;letter-spacing:.01em;}

.afc-burger{display:none;background:none;border:0;cursor:pointer;padding:10px;grid-column:1;}
.afc-burger span{display:block;width:24px;height:2px;background:var(--cream);margin:5px 0;}
.afc-mobile{display:none;background:var(--deep-2);padding:18px 0 26px;}
.afc-mobile .afc-nav{flex-direction:column;gap:2px;margin-bottom:16px;}
.afc-mobile .afc-nav a{font-size:1rem;border-bottom:1px solid rgba(247,242,232,.12);width:100%;padding:12px 0;}
.afc-mobile__contact{font-size:.92rem;color:rgba(247,242,232,.8);margin:14px 0 0;}
.afc-mobile__contact a{color:var(--cream);}
body.afc-nav-open .afc-mobile{display:block;}

/* ------------------------------------------------------------- sections */
.afc-sec{padding:86px 0;position:relative;}
.afc-sec--sm{padding:56px 0;}
.afc-sec--lg{padding:104px 0;}
.afc-sec--paper{background:var(--paper);}
.afc-sec--cream{background:var(--cream);}
.afc-sec--tint{background:var(--tint);}
.afc-sec--dark{background:var(--deep);color:rgba(247,242,232,.86);}
.afc-sec--dark h1,.afc-sec--dark h2,.afc-sec--dark h3,.afc-sec--dark h4{color:#fff;}
.afc-sec--dark a{color:var(--accent);}
.afc-sec--dark strong{color:#fff;}
.afc-sec--deep2{background:var(--deep-2);color:rgba(247,242,232,.86);}
.afc-sec--deep2 h1,.afc-sec--deep2 h2,.afc-sec--deep2 h3{color:#fff;}
.afc-sec--deep2 a{color:var(--accent);}
.afc-sec + .afc-sec{border-top:1px solid var(--line);}
.afc-sec--dark + .afc-sec,.afc-sec + .afc-sec--dark,.afc-sec--deep2 + .afc-sec,.afc-sec + .afc-sec--deep2{border-top:0;}

.afc-wrap{max-width:var(--wrap);margin:0 auto;padding:0 26px;}
.afc-wrap--narrow{max-width:820px;}
.afc-wrap--wide{max-width:1360px;}

.afc-eyebrow{
  display:inline-block;font-family:var(--h-font);font-size:.72rem;font-weight:700;
  letter-spacing:.2em;text-transform:uppercase;color:var(--accent-txt);margin:0 0 14px;
}
.afc-sec--dark .afc-eyebrow,.afc-sec--deep2 .afc-eyebrow{color:var(--accent);}
.afc-lead{font-size:1.14rem;line-height:1.68;color:var(--muted);max-width:70ch;}
.afc-sec--dark .afc-lead,.afc-sec--deep2 .afc-lead{color:rgba(247,242,232,.78);}
.afc-head{max-width:800px;margin:0 0 46px;}
.afc-head--center{margin-left:auto;margin-right:auto;text-align:center;}

/* --------------------------------------------------------------- buttons */
.afc-btn{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--h-font);font-weight:700;font-size:.82rem;letter-spacing:.11em;text-transform:uppercase;
  background:var(--accent);color:var(--ink) !important;border:2px solid var(--accent);
  border-radius:0;padding:15px 28px;text-decoration:none !important;
  transition:background .18s,color .18s,border-color .18s;cursor:pointer;
}
.afc-btn:hover{background:var(--accent-d);border-color:var(--accent-d);color:#fff !important;}
.afc-btn--ghost{background:transparent;border-color:rgba(247,242,232,.5);color:var(--cream) !important;}
.afc-btn--ghost:hover{background:var(--cream);border-color:var(--cream);color:var(--ink) !important;}
.afc-btn--ink{background:var(--deep);border-color:var(--deep);color:var(--cream) !important;}
.afc-btn--ink:hover{background:var(--ink);border-color:var(--ink);color:#fff !important;}
.afc-btn--sm{padding:11px 18px;font-size:.72rem;}
.afc-btn--block{display:flex;justify-content:center;width:100%;}
.afc-btns{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:28px;}

/* ---------------------------------------------------------------- hero */
.afc-hero{background:var(--deep);color:rgba(247,242,232,.86);position:relative;overflow:hidden;}
.afc-hero::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(760px 420px at 12% 8%,rgba(228,145,58,.20),transparent 62%),
    radial-gradient(680px 520px at 88% 92%,rgba(91,154,143,.24),transparent 60%);
  pointer-events:none;
}
.afc-hero__grid{
  position:relative;display:grid;grid-template-columns:1.02fr .98fr;gap:52px;align-items:center;
  padding:82px 0 74px;
}
.afc-hero h1{color:#fff;margin-bottom:.5em;}
.afc-hero h1 em{font-style:normal;color:var(--accent);}
.afc-hero .afc-lead{color:rgba(247,242,232,.82);}
.afc-hero__art{position:relative;}
.afc-hero__art img{width:100%;border-radius:0;box-shadow:var(--shadow);}
.afc-hero__tagline{
  margin:0 0 20px;font-family:var(--h-font);font-size:.74rem;font-weight:700;
  letter-spacing:.2em;text-transform:uppercase;color:var(--accent);
}
.afc-hero__strip{
  position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:0;
  border-top:1px solid rgba(247,242,232,.18);
}
.afc-hero__strip div{padding:22px 24px 24px 0;}
.afc-hero__strip strong{display:block;font-family:var(--h-font);font-size:1.2rem;color:#fff;margin-bottom:4px;}
.afc-hero__strip span{font-size:.86rem;color:rgba(247,242,232,.66);}

/* ----------------------------------------------------------- page banner */
.afc-banner{background:var(--deep-2);color:rgba(247,242,232,.85);position:relative;overflow:hidden;}
.afc-banner::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(620px 320px at 82% 10%,rgba(228,145,58,.20),transparent 64%);
  pointer-events:none;
}
.afc-banner__inner{position:relative;padding:64px 0 58px;display:grid;grid-template-columns:1.15fr .85fr;gap:44px;align-items:center;}
.afc-banner h1{color:#fff;font-size:clamp(1.9rem,3.3vw,2.75rem);margin-bottom:.35em;}
.afc-banner p{color:rgba(247,242,232,.78);max-width:56ch;margin:0;}
.afc-banner__art img{width:100%;box-shadow:var(--shadow);}
.afc-crumbs{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:rgba(247,242,232,.5);margin:0 0 14px;}
.afc-crumbs a{color:var(--accent);}

/* -------------------------------------------------------------- figures */
.afc-figure{position:relative;overflow:hidden;margin:0;}
.afc-figure img{width:100%;transition:transform .5s ease;}
.afc-figure::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(190deg,rgba(8,38,43,0) 26%,rgba(8,38,43,.58) 62%,rgba(8,38,43,.88) 100%);
  pointer-events:none;
}
.afc-figure--flat::after{background:linear-gradient(190deg,rgba(8,38,43,0) 22%,rgba(8,38,43,.60) 58%,rgba(8,38,43,.90) 100%);}
.afc-figure__cap{
  position:absolute;left:0;right:0;bottom:0;z-index:2;padding:20px 22px;margin:0;
  font-family:var(--h-font);font-size:.92rem;font-weight:700;color:#fff;letter-spacing:.01em;
}
.afc-figure:hover img{transform:scale(1.035);}

/* ---------------------------------------------------------------- cards */
.afc-grid{display:grid;gap:26px;}
.afc-grid--2{grid-template-columns:repeat(2,1fr);}
.afc-grid--3{grid-template-columns:repeat(3,1fr);}
.afc-grid--4{grid-template-columns:repeat(4,1fr);}
.afc-cards{align-items:stretch;}

.afc-card{
  background:var(--paper);border:1px solid var(--line);border-radius:0;
  padding:0 0 28px;display:flex;flex-direction:column;position:relative;
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}
.afc-sec--cream .afc-card{background:var(--paper);}
.afc-sec--dark .afc-card,.afc-sec--deep2 .afc-card{background:var(--deep-2);border-color:var(--line-lt);}
.afc-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:rgba(228,145,58,.5);}
.afc-card::before{
  content:"";position:absolute;left:0;top:0;width:56px;height:4px;background:var(--accent);
  transform:scaleX(0);transform-origin:left;transition:transform .25s ease;
}
.afc-card:hover::before{transform:scaleX(1);}
.afc-card__media{overflow:hidden;background:var(--tint);}
.afc-card__media img{width:100%;aspect-ratio:16/10;object-fit:cover;}
.afc-card__body{padding:24px 26px 0;}
.afc-card h3{margin:0 0 .5em;font-size:1.14rem;}
.afc-card p{font-size:.95rem;color:var(--muted);margin:0 0 1em;}
.afc-sec--dark .afc-card p,.afc-sec--deep2 .afc-card p{color:rgba(247,242,232,.74);}
.afc-card ul{font-size:.93rem;color:var(--muted);padding-left:1.1em;margin:0 0 1.1em;}
.afc-sec--dark .afc-card ul,.afc-sec--deep2 .afc-card ul{color:rgba(247,242,232,.72);}
.afc-card__link{
  margin-top:auto;padding:0 26px;font-family:var(--h-font);font-size:.78rem;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:var(--accent-txt) !important;
}
html body.afc-site .afc-sec--dark .afc-card__link,
html body.afc-site .afc-sec--deep2 .afc-card__link{color:#F0A94E !important;}
.afc-card--plain{padding-bottom:0;}
.afc-card--plain .afc-card__body{padding-bottom:26px;}

.afc-ico{
  width:52px;height:52px;display:flex;align-items:center;justify-content:center;
  border:1px solid rgba(228,145,58,.45);color:var(--accent-d);margin:0 0 18px;
}
.afc-sec--dark .afc-ico,.afc-sec--deep2 .afc-ico{color:var(--accent);}
.afc-ico svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.6;
  stroke-linecap:round;stroke-linejoin:round;}

/* --------------------------------------------------------- image + text */
.afc-split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.afc-split--flip .afc-split__text{order:2;}
.afc-split--flip .afc-split__media{order:1;}
.afc-split + .afc-split{margin-top:72px;}
.afc-split__media{position:relative;}
.afc-split__media img{width:100%;box-shadow:var(--shadow);}
.afc-split__note{
  position:absolute;left:-1px;bottom:-1px;background:var(--accent);color:var(--ink);
  padding:14px 20px;font-family:var(--h-font);font-weight:700;font-size:.8rem;
  letter-spacing:.06em;text-transform:uppercase;max-width:74%;
}

/* -------------------------------------------------------------- ticklist */
.afc-ticks{list-style:none;padding:0;margin:0 0 1.4em;}
.afc-ticks li{position:relative;padding-left:30px;margin:0 0 11px;font-size:.98rem;}
.afc-ticks li::before{
  content:"";position:absolute;left:0;top:.44em;width:15px;height:9px;
  border-left:2px solid var(--accent);border-bottom:2px solid var(--accent);
  transform:rotate(-45deg);
}
.afc-sec--dark .afc-ticks li::before,.afc-sec--deep2 .afc-ticks li::before{border-color:var(--accent);}

/* --------------------------------------------------------------- steps */
.afc-steps{counter-reset:st;display:grid;gap:26px;grid-template-columns:repeat(4,1fr);}
.afc-step{position:relative;padding-top:22px;border-top:2px solid var(--line);}
.afc-sec--dark .afc-step,.afc-sec--deep2 .afc-step{border-top-color:var(--line-lt);}
.afc-step::before{
  counter-increment:st;content:counter(st,decimal-leading-zero);
  font-family:var(--h-font);font-size:1.5rem;font-weight:800;color:var(--accent);
  display:block;margin-bottom:10px;letter-spacing:-.02em;
}
.afc-step h3{font-size:1.05rem;margin-bottom:.4em;}
.afc-step p{font-size:.92rem;color:var(--muted);margin:0;}
.afc-sec--dark .afc-step p,.afc-sec--deep2 .afc-step p{color:rgba(247,242,232,.72);}
.afc-step img{width:100%;margin-bottom:16px;}

/* -------------------------------------------------------------- gallery */
.afc-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
.afc-gallery .afc-figure img{aspect-ratio:4/3;object-fit:cover;width:100%;}
.afc-gallery .afc-figure__cap{font-size:.86rem;padding:16px 18px;}

/* -------------------------------------------------------------- stats */
.afc-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-left:1px solid var(--line);}
.afc-sec--dark .afc-stats,.afc-sec--deep2 .afc-stats{border-left-color:var(--line-lt);}
.afc-stat{padding:8px 26px;border-right:1px solid var(--line);}
.afc-sec--dark .afc-stat,.afc-sec--deep2 .afc-stat{border-right-color:var(--line-lt);}
.afc-stat strong{display:block;font-family:var(--h-font);font-size:2.05rem;font-weight:800;color:var(--accent);line-height:1.1;}
.afc-stat span{font-size:.9rem;color:var(--muted);}
.afc-sec--dark .afc-stat span,.afc-sec--deep2 .afc-stat span{color:rgba(247,242,232,.72);}

/* --------------------------------------------------------------- quote */
.afc-quote{
  border-left:3px solid var(--accent);padding:6px 0 6px 26px;margin:0;
  font-family:var(--h-font);font-size:1.18rem;font-weight:600;color:var(--ink);line-height:1.5;
}
.afc-sec--dark .afc-quote,.afc-sec--deep2 .afc-quote{color:#fff;}
.afc-quote cite{display:block;margin-top:12px;font-family:var(--b-font);font-size:.85rem;
  font-weight:600;font-style:normal;color:var(--muted);letter-spacing:.04em;text-transform:uppercase;}
.afc-sec--dark .afc-quote cite,.afc-sec--deep2 .afc-quote cite{color:rgba(247,242,232,.6);}

/* ------------------------------------------------------------------ faq */
.afc-faq{border-top:1px solid var(--line);}
.afc-faq details{border-bottom:1px solid var(--line);}
.afc-faq summary{
  cursor:pointer;list-style:none;padding:24px 44px 24px 0;position:relative;
  font-family:var(--h-font);font-weight:700;font-size:1.06rem;color:var(--ink);
}
.afc-sec--dark .afc-faq summary,.afc-sec--deep2 .afc-faq summary{color:#fff;}
.afc-faq summary::-webkit-details-marker{display:none;}
.afc-faq summary::after{
  content:"";position:absolute;right:8px;top:32px;width:11px;height:11px;
  border-right:2px solid var(--accent);border-bottom:2px solid var(--accent);
  transform:rotate(45deg);transition:transform .22s ease;
}
.afc-faq details[open] summary::after{transform:rotate(-135deg);}
.afc-faq .afc-faq__a{padding:0 60px 26px 0;color:var(--muted);font-size:.97rem;}
.afc-sec--dark .afc-faq .afc-faq__a,.afc-sec--deep2 .afc-faq .afc-faq__a{color:rgba(247,242,232,.76);}

/* --------------------------------------------------------------- table */
.afc-tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.afc-table{width:100%;border-collapse:collapse;font-size:.94rem;}
.afc-table caption{text-align:left;font-family:var(--h-font);font-weight:700;padding-bottom:10px;color:var(--ink);}
.afc-table th,.afc-table td{border:1px solid var(--line);padding:13px 16px;text-align:left;vertical-align:top;
  overflow-wrap:break-word;}
.afc-table th{background:var(--cream);font-family:var(--h-font);font-size:.8rem;letter-spacing:.06em;
  text-transform:uppercase;color:var(--ink);}
.afc-sec--dark .afc-table th,.afc-sec--deep2 .afc-table th{background:rgba(247,242,232,.08);color:#fff;}
.afc-sec--dark .afc-table th,.afc-sec--dark .afc-table td,
.afc-sec--deep2 .afc-table th,.afc-sec--deep2 .afc-table td{border-color:var(--line-lt);}
@media (max-width:700px){
  .afc-table{font-size:.88rem;}
  .afc-table th,.afc-table td{padding:10px 11px;}
  .afc-table th{font-size:.72rem;letter-spacing:.04em;}
}

/* ---------------------------------------------------------------- legal */
.afc-legal{font-size:1rem;}
.afc-legal h2{font-size:1.5rem;margin-top:2.2em;}
.afc-legal h2:first-child{margin-top:0;}
.afc-legal h3{font-size:1.1rem;margin-top:1.8em;}
.afc-legal p,.afc-legal li{color:#33474A;}
.afc-legal .afc-meta{font-size:.86rem;color:var(--muted);border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:32px;}

/* --------------------------------------------------------------- panel */
.afc-panel{background:var(--cream);border:1px solid var(--line);padding:34px 36px;}
.afc-sec--dark .afc-panel,.afc-sec--deep2 .afc-panel{background:rgba(8,38,43,.35);border-color:var(--line-lt);}
.afc-panel h3{margin-top:0;}

/* --------------------------------------------------------------- footer */
.afc-footer{background:var(--ink);color:rgba(247,242,232,.78);padding:72px 0 30px;}
.afc-footer__inner{display:flex;flex-direction:column;align-items:center;text-align:center;}
.afc-footer__mark{width:54px;height:54px;margin-bottom:16px;}
.afc-footer__name{font-family:var(--h-font);font-weight:800;font-size:1.3rem;color:#fff;margin:0 0 10px;letter-spacing:-.01em;}
.afc-footer__line{max-width:60ch;font-size:.95rem;color:rgba(247,242,232,.66);margin:0 0 30px;}
.afc-footer__nav{margin-bottom:26px;}
.afc-footer__contact{font-size:.95rem;margin-bottom:30px;}
.afc-footer__contact p{margin:0 0 .3em;}
.afc-footer__contact a{color:var(--cream);}
.afc-badges{
  list-style:none;padding:0;margin:0 0 34px;display:flex;flex-wrap:wrap;justify-content:center;gap:14px;
}
.afc-badges li{margin:0;}
.afc-badges a{
  display:flex;align-items:center;gap:10px;padding:12px 18px;text-decoration:none !important;
  border:1px solid rgba(247,242,232,.22);color:rgba(247,242,232,.86);
  font-family:var(--h-font);font-size:.76rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;
  transition:border-color .2s,background .2s,color .2s;
}
.afc-badges a:hover{border-color:var(--accent);background:rgba(228,145,58,.12);color:#fff;}
.afc-badges svg{width:19px;height:19px;fill:none;stroke:var(--accent);stroke-width:1.6;
  stroke-linecap:round;stroke-linejoin:round;}
.afc-footer__legal{
  width:100%;border-top:1px solid rgba(247,242,232,.14);padding-top:22px;
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:.85rem;
}
.afc-footer__legal p{margin:0;color:rgba(247,242,232,.55);}
.afc-footer__legalnav{display:flex;gap:20px;flex-wrap:wrap;}
.afc-footer__legalnav a{color:rgba(247,242,232,.72);}

/* ----------------------------------------------------------- responsive */
@media (max-width:1470px){
  .afc-lockup__sub{display:none;}
}
@media (max-width:1200px){
  .afc-header__side,.afc-header__cta{display:none;}
  .afc-header__grid{grid-template-columns:auto 1fr auto;min-height:76px;}
  .afc-header__brand{grid-column:2;}
  .afc-burger{display:block;justify-self:start;}
  .afc-gallery{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:980px){
  .afc-sec{padding:64px 0;}
  .afc-hero__grid{grid-template-columns:1fr;gap:36px;padding:58px 0 52px;}
  .afc-hero__art{order:-1;}
  .afc-banner__inner{grid-template-columns:1fr;gap:30px;padding:52px 0 46px;}
  .afc-split{grid-template-columns:1fr;gap:30px;}
  .afc-split + .afc-split{margin-top:52px;}
  .afc-split--flip .afc-split__text,.afc-split--flip .afc-split__media{order:0;}
  .afc-grid--3,.afc-grid--4{grid-template-columns:repeat(2,1fr);}
  .afc-steps{grid-template-columns:repeat(2,1fr);}
  .afc-stats{grid-template-columns:repeat(2,1fr);row-gap:26px;}
  .afc-stat{border-right:0;}
}
@media (max-width:640px){
  body.afc-site{font-size:16px;}
  .afc-wrap{padding:0 18px;}
  .afc-grid--2,.afc-grid--3,.afc-grid--4{grid-template-columns:1fr;}
  .afc-steps,.afc-gallery{grid-template-columns:1fr;}
  .afc-gallery .afc-figure:nth-child(1){grid-column:span 1;}
  .afc-stats{grid-template-columns:1fr;border-left:0;}
  .afc-stat{padding:0 0 16px;border-bottom:1px solid var(--line);}
  .afc-hero__strip{grid-template-columns:1fr;}
  .afc-hero__strip div{padding:16px 0;}
  .afc-lockup__name{font-size:1.05rem;}
  .afc-lockup__sub{display:none;}
  .afc-btn{padding:13px 20px;font-size:.76rem;}
  .afc-faq summary{padding-right:34px;font-size:1rem;}
}

/* ======================================================================
   TEXT COLOUR CONTEXT LOCK
   The base typography block above is deliberately high-specificity so
   that the Astra and Elementor global kits cannot reclaim the brand
   fonts. These rules sit at the end of the file with higher specificity
   still, so headings, links and emphasis always resolve to the light
   palette inside dark sections, banners and the footer.
   ====================================================================== */
html body.afc-site .afc-hero h1,
html body.afc-site .afc-hero h2,
html body.afc-site .afc-hero h3,
html body.afc-site .afc-hero h4,
html body.afc-site .afc-banner h1,
html body.afc-site .afc-banner h2,
html body.afc-site .afc-banner h3,
html body.afc-site .afc-banner h4,
html body.afc-site .afc-sec--dark h1,
html body.afc-site .afc-sec--dark h2,
html body.afc-site .afc-sec--dark h3,
html body.afc-site .afc-sec--dark h4,
html body.afc-site .afc-sec--deep2 h1,
html body.afc-site .afc-sec--deep2 h2,
html body.afc-site .afc-sec--deep2 h3,
html body.afc-site .afc-sec--deep2 h4{ color:#fff; }

html body.afc-site .afc-hero strong,
html body.afc-site .afc-banner strong,
html body.afc-site .afc-sec--dark strong,
html body.afc-site .afc-sec--deep2 strong,
html body.afc-site .afc-footer strong,
html body.afc-site .afc-hero__strip strong,
html body.afc-site .afc-stat strong{ color:#fff; }
html body.afc-site .afc-stat strong{ color:var(--accent); }

html body.afc-site .afc-hero a,
html body.afc-site .afc-banner a,
html body.afc-site .afc-sec--dark a,
html body.afc-site .afc-sec--deep2 a,
html body.afc-site .afc-footer a,
html body.afc-site .afc-badges a,
html body.afc-site .afc-footer__contact a,
html body.afc-site .afc-footer__legalnav a,
html body.afc-site .afc-mobile__contact a{ color:var(--accent); }
html body.afc-site .afc-footer a,
html body.afc-site .afc-badges a,
html body.afc-site .afc-footer__contact a,
html body.afc-site .afc-footer__legalnav a{ color:rgba(247,242,232,.82); }
html body.afc-site .afc-badges a{ color:rgba(247,242,232,.86); }

html body.afc-site .afc-banner p,
html body.afc-site .afc-hero p,
html body.afc-site .afc-sec--dark p,
html body.afc-site .afc-sec--deep2 p,
html body.afc-site .afc-sec--dark li,
html body.afc-site .afc-sec--deep2 li,
html body.afc-site .afc-sec--dark .afc-step p,
html body.afc-site .afc-sec--deep2 .afc-step p{ color:rgba(247,242,232,.80); }
html body.afc-site .afc-hero .afc-lead,
html body.afc-site .afc-sec--dark .afc-lead,
html body.afc-site .afc-sec--deep2 .afc-lead{ color:rgba(247,242,232,.80); }
html body.afc-site .afc-hero__strip span{ color:rgba(247,242,232,.66); }
html body.afc-site .afc-hero__tagline{ color:var(--accent); }

html body.afc-site .afc-sec--dark .afc-card p,
html body.afc-site .afc-sec--deep2 .afc-card p,
html body.afc-site .afc-sec--dark .afc-card ul,
html body.afc-site .afc-sec--deep2 .afc-card ul,
html body.afc-site .afc-sec--dark .afc-card li,
html body.afc-site .afc-sec--deep2 .afc-card li,
html body.afc-site .afc-sec--dark .afc-faq .afc-faq__a,
html body.afc-site .afc-sec--deep2 .afc-faq .afc-faq__a{ color:rgba(247,242,232,.76); }

/* ======================================================================
   CK · C-29 · form E-2 「two-column preference card」, no overlay
   Signature: E-2 centred card with two-column preference tiles ·
   palette calibrated to the brand (deep teal + amber) from the navy
   direction on the card · persona advisory · buttons dual side-by-side.
   Reopened from a footer control rather than a floating tab, so the site
   keeps no second persistent overlay surface.
   ====================================================================== */
.afc-ck{
  position:fixed;left:50%;top:50%;z-index:9990;
  width:min(768px, calc(100vw - 40px));max-height:min(86vh, 740px);overflow-y:auto;
  background:var(--paper);color:var(--ink);
  border:1px solid var(--line);border-top:4px solid var(--accent);
  box-shadow:0 44px 90px -44px rgba(8,38,43,.6), 0 8px 26px -14px rgba(8,38,43,.35);
  padding:0;opacity:0;visibility:hidden;pointer-events:none;
  transform:translate(-50%,-50%) scale(.982);
  transition:opacity .26s ease, transform .34s cubic-bezier(.22,1,.36,1), visibility .26s;
}
.afc-ck.is-open{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,-50%) scale(1);}
.afc-ck__inner{padding:30px 34px 26px;}

.afc-ck__head{display:flex;align-items:flex-start;gap:15px;}
.afc-ck__head svg{width:34px;height:34px;flex:0 0 34px;fill:none;stroke:var(--accent);
  stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}
.afc-ck__eyebrow{font-family:var(--h-font);font-size:.68rem;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--accent-txt);margin:0 0 5px;}
.afc-ck h2{font-size:1.42rem;line-height:1.18;margin:0 0 7px;color:var(--ink);letter-spacing:-.01em;}
.afc-ck__lead{font-size:.9rem;line-height:1.6;color:var(--muted);margin:0;max-width:62ch;}

.afc-ck__cols{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:22px 0 0;}
.afc-ck__tile{border:1px solid var(--line);background:var(--cream);padding:17px 18px 16px;
  display:flex;flex-direction:column;gap:9px;}
.afc-ck__tile--wide{grid-column:1 / -1;}
.afc-ck__tilehead{display:flex;align-items:center;gap:12px;}
.afc-ck__tile h3{font-size:.96rem;margin:0;color:var(--ink);letter-spacing:0;}
.afc-ck__tilehead .afc-ck__sw{margin-left:auto;}
.afc-ck__tile em{font-style:normal;font-size:.82rem;line-height:1.55;color:var(--muted);}
.afc-ck__tile .afc-ck__tag{font-family:var(--h-font);font-size:.62rem;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--muted);}

.afc-ck__sw{flex:0 0 auto;width:48px;height:27px;border:1px solid rgba(8,38,43,.26);background:#fff;
  border-radius:0;position:relative;cursor:pointer;padding:0;transition:background .2s,border-color .2s;}
.afc-ck__sw::after{content:"";position:absolute;top:3px;left:3px;width:19px;height:19px;
  background:rgba(8,38,43,.28);transition:left .2s,background .2s;}
.afc-ck__sw[aria-pressed="true"]{border-color:var(--accent);background:rgba(228,145,58,.18);}
.afc-ck__sw[aria-pressed="true"]::after{left:24px;background:var(--accent);}
.afc-ck__sw[aria-disabled="true"]{opacity:.55;cursor:default;}

.afc-ck__btns{display:flex;gap:12px;margin-top:22px;}
.afc-ck__btns .afc-btn{flex:0 1 auto;min-width:186px;justify-content:center;padding:14px 18px;font-size:.72rem;
  letter-spacing:.07em;}
.afc-ck__foot{margin:16px 0 0;font-size:.78rem;line-height:1.6;color:var(--muted);}
.afc-ck__foot a{color:#8a5620;text-decoration:underline;text-underline-offset:2px;}

/* Footer control that brings the card back once a choice is stored. */
.afc-ck__open{background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;
  text-decoration:underline;text-underline-offset:2px;}
.afc-ck__open:hover{color:var(--accent);}

html body.afc-site .afc-ck h2,html body.afc-site .afc-ck h3{color:var(--ink);}
html body.afc-site .afc-ck a{color:#8a5620;}

@media (max-width:760px){
  .afc-ck{width:calc(100vw - 24px);max-height:88vh;}
  .afc-ck__inner{padding:22px 20px 20px;}
  .afc-ck h2{font-size:1.2rem;}
  .afc-ck__cols{grid-template-columns:1fr;gap:11px;margin-top:17px;}
  .afc-ck__tile--wide{grid-column:auto;}
  .afc-ck__btns{flex-direction:column;margin-top:18px;}
  .afc-ck__btns .afc-btn{min-width:0;width:100%;}
}

/* The card is a light surface, so its secondary button takes the ink outline
   treatment rather than the light-on-dark ghost used over dark sections. */
html body.afc-site .afc-ck .afc-btn--ghost{background:transparent;
  border-color:rgba(8,38,43,.34);color:var(--ink) !important;}
html body.afc-site .afc-ck .afc-btn--ghost:hover{background:var(--ink);
  border-color:var(--ink);color:#fff !important;}

/* ======================================================================
   FEES & FUNDING · rate cards + service-card rate lines (2026-09-12)
   All selectors carry the `html body.afc-site` prefix so they stay ahead
   of the base typography block and the Astra / Elementor kits.
   Small amber text on light surfaces uses --accent-txt (#8A4F16) rather
   than --accent-d, which measures 3.5:1 on paper and fails WCAG AA.
   ====================================================================== */
html body.afc-site .afc-rates{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(222px,1fr));
  gap:22px;margin-top:34px;align-items:stretch;
}
html body.afc-site .afc-rate{
  position:relative;display:flex;flex-direction:column;
  background:var(--paper);border:1px solid var(--line);padding:28px 26px 24px;
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}
html body.afc-site .afc-rate::before{
  content:"";position:absolute;left:0;top:0;width:100%;height:4px;background:var(--accent);
  transform:scaleX(0);transform-origin:left;transition:transform .25s ease;
}
html body.afc-site .afc-rate:hover{transform:translateY(-4px);box-shadow:var(--shadow);
  border-color:rgba(228,145,58,.5);}
html body.afc-site .afc-rate:hover::before,
html body.afc-site .afc-rate--feature::before{transform:scaleX(1);}
html body.afc-site .afc-rate__body{display:flex;flex-direction:column;height:100%;}
html body.afc-site .afc-rate__name{
  font-family:var(--h-font);font-size:.74rem;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--muted);margin:0 0 12px;
}
html body.afc-site .afc-rate__amount{
  font-family:var(--h-font);font-weight:800;font-size:2.1rem;line-height:1;
  letter-spacing:-.025em;color:var(--ink);margin:0 0 12px;
}
html body.afc-site .afc-rate__cur{font-size:1.2rem;font-weight:700;vertical-align:.42em;margin-right:1px;}
html body.afc-site .afc-rate__unit{
  display:block;font-size:.78rem;font-weight:600;letter-spacing:.04em;color:var(--muted);margin-top:8px;
}
html body.afc-site .afc-rate__word{font-size:1.3rem;letter-spacing:-.01em;line-height:1.2;display:block;}
html body.afc-site .afc-rate__note{font-size:.9rem;line-height:1.62;color:var(--muted);margin:0 0 4px;}
html body.afc-site .afc-rate ul{list-style:none;padding:0;margin:16px 0 0;font-size:.87rem;}
html body.afc-site .afc-rate ul li{position:relative;padding-left:20px;margin:0 0 9px;color:var(--muted);}
html body.afc-site .afc-rate ul li::before{
  content:"";position:absolute;left:0;top:.48em;width:8px;height:8px;background:var(--accent);
}
html body.afc-site .afc-rate__link{
  margin-top:auto;padding-top:20px;font-family:var(--h-font);font-size:.74rem;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:var(--accent-txt) !important;
}
/* Dark surfaces: the same cards, inverted. */
html body.afc-site .afc-sec--dark .afc-rate,
html body.afc-site .afc-sec--deep2 .afc-rate{background:var(--deep-2);border-color:var(--line-lt);}
html body.afc-site .afc-sec--dark .afc-rate__amount,
html body.afc-site .afc-sec--deep2 .afc-rate__amount{color:#fff;}
html body.afc-site .afc-sec--dark .afc-rate__name,
html body.afc-site .afc-sec--deep2 .afc-rate__name{color:rgba(247,242,232,.70);}
html body.afc-site .afc-sec--dark .afc-rate__note,
html body.afc-site .afc-sec--deep2 .afc-rate__note,
html body.afc-site .afc-sec--dark .afc-rate ul li,
html body.afc-site .afc-sec--deep2 .afc-rate ul li,
html body.afc-site .afc-sec--dark .afc-rate__unit,
html body.afc-site .afc-sec--deep2 .afc-rate__unit{color:rgba(247,242,232,.78);}
html body.afc-site .afc-sec--dark .afc-rate__link,
html body.afc-site .afc-sec--deep2 .afc-rate__link{color:#F0A94E !important;}

/* Rate line on service cards */
html body.afc-site .afc-card__price{
  margin:auto 0 0;padding:16px 0 0;border-top:1px solid var(--line);
  font-family:var(--h-font);font-size:.75rem;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:var(--accent-txt);
}
html body.afc-site .afc-sec--dark .afc-card__price,
html body.afc-site .afc-sec--deep2 .afc-card__price{
  border-top-color:var(--line-lt);color:#F0A94E;
}
html body.afc-site .afc-fineprint{font-size:.85rem;line-height:1.7;color:var(--muted);
  margin:30px 0 0;max-width:94ch;}

/* 三列成行（5 档 = 3+2），避免 auto-fit 在 1180 容器里排成 4+1 的孤行 */
@media (min-width:980px){
  html body.afc-site .afc-rates{grid-template-columns:repeat(3,1fr);}
}
@media (max-width:979px){
  html body.afc-site .afc-rates{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px;}
}
@media (max-width:620px){
  html body.afc-site .afc-rates{grid-template-columns:1fr;}
  html body.afc-site .afc-rate{padding:24px 22px 20px;}
  html body.afc-site .afc-rate__amount{font-size:1.85rem;}
}

/* ======================================================================
   ASTRA PALETTE LOCK + CONTROL COLOUR LOCK (2026-09-12)
   模板导入把 Astra 的全局色板留在了绿色系（--ast-global-color-0 #66b40b /
   1 #5b9f0c / 2 #2c3a04 …）。Astra 用它们给**裸 <button>**上底、:focus 变
   绿——实测页脚「Cookie settings」聚焦后变 #5b9f0c 绿底白字，SureForms
   提交键常态就是 #66b40b 绿。这里把 9 个变量在本站重映射到品牌色板
   （自定义属性在 body.afc-site 上声明，对整棵子树生效，胜过 :root），
   并给我们自己的控件写明 base/hover/focus 三态，避免再被主题裸选择器改写。
   ====================================================================== */
html body.afc-site{
  --ast-global-color-0:#08262B;   /* 主色·按钮底 */
  --ast-global-color-1:#123F47;   /* 按钮悬停 */
  --ast-global-color-2:#08262B;   /* 标题 */
  --ast-global-color-3:#16292C;   /* 正文 */
  --ast-global-color-4:#F7F2E8;   /* 浅底 */
  --ast-global-color-5:#FFFCF6;   /* 最浅底 */
  --ast-global-color-6:rgba(11,46,51,.16);
  --ast-global-color-7:#08262B;
  --ast-global-color-8:rgba(11,46,51,.16);
}

/* 页眉/移动面板的链接在深底上必须是浅色（base a 规则会把它压成琥珀） */
html body.afc-site .afc-header a,
html body.afc-site .afc-mobile a,
html body.afc-site .afc-lockup{color:var(--cream);}
html body.afc-site .afc-header .afc-nav a:hover,
html body.afc-site .afc-header .afc-nav .current-menu-item > a,
html body.afc-site .afc-mobile a:hover{color:#fff;}

/* 自有控件三态 */
html body.afc-site .afc-burger{background:none !important;border:0 !important;box-shadow:none !important;}
html body.afc-site .afc-burger:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
html body.afc-site .afc-ck__open{background:none !important;border:0 !important;box-shadow:none !important;
  color:rgba(247,242,232,.82) !important;}
html body.afc-site .afc-ck__open:hover,
html body.afc-site .afc-ck__open:focus{background:none !important;
  color:#F0A94E !important;text-decoration:underline;}
html body.afc-site .afc-ck__sw{background:#fff !important;border:1px solid rgba(8,38,43,.26) !important;}
html body.afc-site .afc-ck__sw[aria-pressed="true"]{background:rgba(228,145,58,.18) !important;
  border-color:var(--accent) !important;}
html body.afc-site .afc-ck__sw:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}

/* SureForms：提交键与必填标记去插件绿、上品牌色 */
html body.afc-site .srfm-form-container .srfm-button,
html body.afc-site .srfm-submit-button{
  background:var(--ink) !important;color:#fff !important;border:1px solid var(--ink) !important;
  border-radius:0 !important;font-family:var(--h-font) !important;font-weight:700;
  letter-spacing:.09em;text-transform:uppercase;padding:15px 30px;
}
html body.afc-site .srfm-form-container .srfm-button:hover,
html body.afc-site .srfm-submit-button:hover,
html body.afc-site .srfm-form-container .srfm-button:focus,
html body.afc-site .srfm-submit-button:focus{
  background:var(--accent) !important;border-color:var(--accent) !important;color:var(--ink) !important;
}
html body.afc-site .srfm-required{color:#B91C1C !important;}
html body.afc-site .srfm-input-field:focus,
html body.afc-site .srfm-textarea-field:focus{outline:2px solid var(--accent);outline-offset:1px;}
