/* ============================================================
   AllTheWayFit  — Premium site styles
   v2.0 — luxury fitness brand aesthetic
   ============================================================ */

:root{
  --atwf-navy:#0c2340;
  --atwf-navy-2:#162d4f;
  --atwf-navy-3:#08182d;
  --atwf-green:#4caf50;
  --atwf-green-2:#3d9442;
  --atwf-green-3:#a8e0ab;
  --atwf-gold:#caa75a;
  --atwf-gold-2:#a98a45;
  --atwf-gold-soft:#e8d09a;
  --atwf-dark:#1f2933;
  --atwf-text:#1f2933;
  --atwf-muted:#5b6b7a;
  --atwf-line:#e3e8ee;
  --atwf-soft:#f7fafc;
  --atwf-cream:#faf6ee;
  --atwf-shadow:0 30px 60px -20px rgba(12,35,64,.18), 0 6px 18px -4px rgba(12,35,64,.08);
  --atwf-shadow-strong:0 40px 80px -20px rgba(12,35,64,.30), 0 10px 30px -8px rgba(12,35,64,.16);
}

/* ============== Base ============== */
html{ scroll-behavior:smooth; }
body{
  font-family:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  color:var(--atwf-text);
  background:#fff;
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body.atwf-noscroll{ overflow:hidden; }
h1,h2,h3,h4,h5{
  font-family:'Inter',system-ui,sans-serif;
  color:var(--atwf-navy);
  letter-spacing:-0.015em;
  line-height:1.12;
  font-weight:700;
}
.atwf-display{
  font-family:'Bebas Neue',Impact,sans-serif;
  letter-spacing:.02em; line-height:1; font-weight:400;
}
.atwf-serif{
  font-family:'Playfair Display',Georgia,serif;
  font-style:italic; font-weight:500; letter-spacing:.005em;
}
a{ color:var(--atwf-navy); }

/* ============== Astra header polish ============== */
.ast-primary-header-bar.main-header-bar,
.site-header{
  background:rgba(255,255,255,0.94) !important;
  backdrop-filter: saturate(180%) blur(10px);
  -webkit-backdrop-filter: saturate(180%) blur(10px);
  border-bottom:1px solid rgba(227,232,238,.6);
}
/* Hide redundant text site title — the logo image already has the wordmark. */
.site-header .ast-site-identity .site-title,
.site-header .ast-site-identity .site-description,
.site-header .ast-site-identity .ast-site-title-wrap{ display:none !important; }
.site-header .ast-site-identity{ padding:6px 0; display:flex; align-items:center; }
/* Header expands to fit a properly sized logo */
.ast-primary-header-bar.main-header-bar,
.site-header,
.ast-primary-header-bar .ast-builder-grid-row{ min-height:104px; }
@media (max-width:920px){
  .ast-primary-header-bar.main-header-bar,
  .site-header,
  .ast-primary-header-bar .ast-builder-grid-row{ min-height:74px; }
}
/* Logo: explicit height (not max-height) so Astra's inline width:340px
   doesn't drive height down. width:auto keeps proportional aspect ratio. */
.site-logo-img,
.custom-logo-link{ display:inline-flex; align-items:center; line-height:0; }
.site-logo-img img,
.custom-logo,
.custom-logo-link img{
  height:96px !important;
  max-height:96px !important;
  width:auto !important;
  max-width:none !important;
  object-fit:contain; image-rendering:auto;
}
@media (max-width:920px){
  .site-logo-img img,
  .custom-logo,
  .custom-logo-link img{
    height:60px !important; max-height:60px !important;
  }
}
/* Top-level menu links — give them breathing room */
.main-header-menu > .menu-item > a,
.ast-builder-menu .ast-nav-menu > .menu-item > a{
  font-weight:600 !important; letter-spacing:.01em; color:var(--atwf-navy) !important;
  position:relative; padding:10px 14px !important;
}
.main-header-menu > .menu-item,
.ast-builder-menu .ast-nav-menu > .menu-item{ margin:0 2px; }
.main-header-menu > .menu-item > a::after,
.ast-builder-menu .ast-nav-menu > .menu-item > a::after{
  content:""; position:absolute; left:4px; right:4px; bottom:-4px; height:2px;
  background:linear-gradient(90deg,var(--atwf-green),var(--atwf-gold));
  transform:scaleX(0); transform-origin:left center;
  transition:transform .25s ease;
}
.main-header-menu > .menu-item > a:hover::after,
.main-header-menu > .menu-item.current-menu-item > a::after,
.main-header-menu > .menu-item.current-menu-ancestor > a::after,
.ast-builder-menu .ast-nav-menu > .menu-item > a:hover::after,
.ast-builder-menu .ast-nav-menu > .menu-item.current-menu-item > a::after,
.ast-builder-menu .ast-nav-menu > .menu-item.current-menu-ancestor > a::after{ transform:scaleX(1); }
/* Sub-menu dropdown */
.main-header-menu .sub-menu,
.ast-builder-menu .sub-menu{
  background:#fff !important;
  border:1px solid var(--atwf-line) !important;
  box-shadow:0 18px 40px rgba(12,35,64,.14) !important;
  border-radius:14px !important;
  padding:8px !important;
  min-width:230px !important;
  margin-top:8px !important;
  border-top-width:1px !important;
}
.main-header-menu .sub-menu .menu-item > a,
.ast-builder-menu .sub-menu .menu-item > a{
  padding:11px 14px !important;
  border-radius:10px !important;
  font-weight:600 !important;
  color:var(--atwf-navy) !important;
  border:0 !important;
}
.main-header-menu .sub-menu .menu-item > a:hover,
.ast-builder-menu .sub-menu .menu-item > a:hover,
.main-header-menu .sub-menu .menu-item.current-menu-item > a,
.ast-builder-menu .sub-menu .menu-item.current-menu-item > a{
  background:var(--atwf-soft) !important;
  color:var(--atwf-green) !important;
}
/* Show small chevron next to parent items that have a sub-menu */
.main-header-menu > .menu-item-has-children > a::before,
.ast-builder-menu .ast-nav-menu > .menu-item-has-children > a::before{
  display:none;
}

/* ============== Footer ============== */
.site-footer, .site-below-footer-wrap{
  background:var(--atwf-navy) !important; color:#dde6f1;
}
.site-footer a{ color:#fff; }
.atwf-footer-credit{ padding:18px 0; text-align:center; color:#a9b9cf; font-size:14px; }
.atwf-footer-credit a{ color:#fff; }
.ast-footer-copyright p{ margin:0; }

/* ============== Buttons ============== */
.atwf-btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:14px 28px; border-radius:999px; font-weight:600;
  text-decoration:none !important; font-size:15px; letter-spacing:.02em;
  border:2px solid transparent;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
  white-space:nowrap;
}
.atwf-btn-primary{ background:var(--atwf-green); color:#fff !important; box-shadow:0 8px 18px rgba(76,175,80,.28); }
.atwf-btn-primary:hover{ background:var(--atwf-green-2); transform:translateY(-2px); box-shadow:0 14px 30px rgba(76,175,80,.4); color:#fff !important; }
.atwf-btn-ghost{ border-color:#ffffff; color:#fff !important; background:transparent; }
.atwf-btn-ghost:hover{ background:#fff; color:var(--atwf-navy) !important; transform:translateY(-2px); }
.atwf-btn-dark{ background:var(--atwf-navy); color:#fff !important; }
.atwf-btn-dark:hover{ background:var(--atwf-navy-2); transform:translateY(-2px); box-shadow:0 12px 30px rgba(12,35,64,.35); }
.atwf-btn-outline{ border-color:var(--atwf-navy); color:var(--atwf-navy) !important; background:#fff; }
.atwf-btn-outline:hover{ background:var(--atwf-navy); color:#fff !important; }
.atwf-btn-gold{ background:linear-gradient(135deg,var(--atwf-gold),var(--atwf-gold-2)); color:#1a1300 !important; box-shadow:0 10px 24px rgba(202,167,90,.35); }
.atwf-btn-gold:hover{ transform:translateY(-2px); box-shadow:0 16px 32px rgba(202,167,90,.5); }
.atwf-btn .arrow{ margin-left:8px; transition:transform .2s ease; display:inline-block; }
.atwf-btn:hover .arrow{ transform:translateX(4px); }

/* ============== Section primitives ============== */
.atwf-section{ padding:110px 0; position:relative; }
.atwf-section.tight{ padding:72px 0; }
.atwf-section.alt{ background:var(--atwf-soft); }
.atwf-section.dark{ background:var(--atwf-navy); color:#dde6f1; }
.atwf-section.dark h1,.atwf-section.dark h2,.atwf-section.dark h3,.atwf-section.dark h4{ color:#fff; }
.atwf-section.dark .atwf-eyebrow{ color:var(--atwf-gold-soft); }
.atwf-section.gradient{
  background:radial-gradient(1200px 600px at 0% 0%, rgba(76,175,80,.07), transparent 60%),
             radial-gradient(900px 700px at 100% 100%, rgba(202,167,90,.08), transparent 55%),
             #fff;
}
.atwf-wrap{ max-width:1200px; margin:0 auto; padding:0 28px; }
.atwf-eyebrow{
  text-transform:uppercase; font-size:13px; letter-spacing:.22em; font-weight:700;
  color:var(--atwf-green); margin:0 0 14px;
  display:inline-flex; align-items:center; gap:10px;
}
.atwf-eyebrow::before{
  content:""; width:30px; height:2px; background:currentColor; display:inline-block;
}
.atwf-section h2{ font-size:46px; margin:0 0 18px; line-height:1.08; }
.atwf-lede{ font-size:19px; color:var(--atwf-muted); max-width:720px; margin:0 0 40px; }
.atwf-section.dark .atwf-lede{ color:#b9c6d6; }
.atwf-section h2 .atwf-serif{ color:var(--atwf-gold); display:inline-block; }
.atwf-section.dark h2 .atwf-serif{ color:var(--atwf-gold-soft); }

/* Reveal-on-scroll */
.atwf-reveal{ opacity:0; transform:translateY(28px); transition:opacity .8s ease, transform .8s ease; }
.atwf-reveal.is-in{ opacity:1; transform:translateY(0); }
.atwf-reveal.delay-1{ transition-delay:.08s; }
.atwf-reveal.delay-2{ transition-delay:.16s; }
.atwf-reveal.delay-3{ transition-delay:.24s; }
.atwf-reveal.delay-4{ transition-delay:.32s; }

/* ============== HERO ============== */
.atwf-hero{
  position:relative; min-height:760px; display:flex; align-items:center;
  background-size:cover; background-position:center; color:#fff; overflow:hidden;
  margin-top:-1px;
}
.atwf-hero::before{
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(1200px 600px at 80% 20%, rgba(76,175,80,.18), transparent 60%),
    linear-gradient(135deg, rgba(8,24,45,.85) 0%, rgba(12,35,64,.62) 55%, rgba(31,41,51,.55) 100%);
}
.atwf-hero::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:120px;
  background:linear-gradient(180deg, transparent 0%, #fff 100%); pointer-events:none;
}
.atwf-hero .atwf-wrap{ position:relative; z-index:1; padding-top:90px; padding-bottom:120px; }
.atwf-hero-eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  padding:8px 16px; border-radius:999px; backdrop-filter:blur(6px);
  background:rgba(255,255,255,.10); border:1px solid rgba(255,255,255,.18);
  color:#dbe5f3; font-size:13px; letter-spacing:.2em; text-transform:uppercase; font-weight:600;
  margin:0 0 28px;
}
.atwf-hero-eyebrow .dot{ width:8px; height:8px; border-radius:50%; background:var(--atwf-green); box-shadow:0 0 0 4px rgba(76,175,80,.25); }
.atwf-hero h1{
  color:#fff; font-family:'Bebas Neue',Impact,sans-serif;
  font-size:96px; line-height:.93; letter-spacing:.012em; margin:0 0 22px; max-width:920px;
}
.atwf-hero h1 .atwf-serif{
  font-family:'Playfair Display',Georgia,serif; font-weight:600; font-style:italic; font-size:.92em;
  color:var(--atwf-gold-soft); letter-spacing:.01em;
}
.atwf-hero .atwf-sub{
  font-size:21px; color:#dbe5f3; max-width:660px; margin:0 0 36px; font-weight:300;
}
.atwf-hero .atwf-cta-row{ display:flex; gap:14px; flex-wrap:wrap; }
.atwf-hero .atwf-meta{ margin-top:42px; display:flex; gap:30px 36px; flex-wrap:wrap; color:#bccae0; font-size:14px; }
.atwf-hero .atwf-meta strong{ color:var(--atwf-gold-soft); font-weight:600; }
.atwf-hero .atwf-meta .item{ display:flex; align-items:center; gap:10px; }
/* Mobile: 2x2 grid instead of one-per-row stack */
@media (max-width:680px){
  .atwf-hero .atwf-meta{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:14px 14px;
    margin-top:32px;
  }
  .atwf-hero .atwf-meta .item{ font-size:13px; gap:8px; }
}
.atwf-hero .atwf-meta .item::before{
  content:""; width:14px; height:14px; border-radius:50%;
  background:var(--atwf-green);
  box-shadow:0 0 0 3px rgba(76,175,80,.22);
}
.atwf-hero .scroll-cue{
  position:absolute; left:50%; bottom:48px; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:8px;
  color:#fff; font-size:11px; letter-spacing:.3em; opacity:.7; text-transform:uppercase;
}
.atwf-hero .scroll-cue .line{ width:1px; height:38px; background:#fff; animation:atwf-cue 1.8s ease-in-out infinite; transform-origin:top; }
@keyframes atwf-cue { 0%,100%{ transform:scaleY(0.4); opacity:.3; } 50%{ transform:scaleY(1); opacity:.9; } }

/* ============== Trust counters ============== */
.atwf-trust{
  background:#fff; border-top:1px solid var(--atwf-line); border-bottom:1px solid var(--atwf-line);
  padding:54px 0; position:relative; margin-top:-1px;
}
.atwf-trust-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; text-align:center; align-items:end; }
.atwf-counter-card{
  position:relative; padding:0 8px;
  display:flex; flex-direction:column; align-items:center; justify-content:flex-end;
  min-height:96px;
}
.atwf-counter-card + .atwf-counter-card::before{
  content:""; position:absolute; left:-12px; top:14%; bottom:14%; width:1px;
  background:linear-gradient(180deg, transparent, var(--atwf-line), transparent);
}
.atwf-counter-card .num{
  font-family:'Bebas Neue',Impact,sans-serif; font-size:62px; line-height:1;
  background:linear-gradient(135deg, var(--atwf-navy), var(--atwf-navy-2) 60%, var(--atwf-green));
  -webkit-background-clip:text; background-clip:text; color:transparent;
  display:block; margin:0 0 10px; letter-spacing:.01em;
  height:62px; /* lock vertical baseline so all 4 numbers align */
  display:flex; align-items:flex-end; justify-content:center;
}
.atwf-counter-card .num.compact{
  font-size:56px;
  height:62px; /* same lockup as numeric counters */
  line-height:1; letter-spacing:.02em; padding-bottom:2px;
}
.atwf-counter-card .lbl{
  font-size:12px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--atwf-muted); font-weight:600;
  min-height:30px; display:flex; align-items:center; justify-content:center; text-align:center;
}
@media (max-width:760px){
  .atwf-trust-grid{ grid-template-columns:repeat(2,1fr); gap:36px 18px; }
  .atwf-counter-card{ min-height:84px; }
  .atwf-counter-card .num{ font-size:52px; height:54px; }
  .atwf-counter-card .num.compact{ font-size:46px; height:54px; }
  .atwf-counter-card + .atwf-counter-card::before{ display:none; }
}

/* ============== Two-column ============== */
.atwf-two-col{ display:grid; grid-template-columns:1.1fr 1fr; gap:64px; align-items:center; }
.atwf-two-col.reverse{ grid-template-columns:1fr 1.1fr; }
.atwf-two-col .img-wrap{ position:relative; }
.atwf-two-col .img-wrap img{ width:100%; height:auto; display:block; border-radius:18px; box-shadow:var(--atwf-shadow-strong); }
.atwf-two-col .img-wrap::before{
  content:""; position:absolute; inset:18px -18px -18px 18px; border-radius:18px;
  background:linear-gradient(135deg, var(--atwf-green), var(--atwf-gold));
  opacity:.18; z-index:-1; filter:blur(2px);
}
.atwf-two-col img{ width:100%; height:auto; display:block; border-radius:18px; }
.atwf-two-col h2 strong{ font-weight:700; }
@media (max-width:900px){ .atwf-two-col, .atwf-two-col.reverse{ grid-template-columns:1fr; gap:36px; } .atwf-two-col .img-wrap::before{ inset:10px -10px -10px 10px; } }

/* ============== Cards ============== */
.atwf-cards{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; }
@media (max-width:900px){ .atwf-cards{ grid-template-columns:1fr; } }
/* 4-up variant for the recipe libraries */
.atwf-cards.cards-4{ grid-template-columns:repeat(4, minmax(0, 1fr)); gap:18px; }
@media (max-width:1100px){ .atwf-cards.cards-4{ grid-template-columns:repeat(3, minmax(0,1fr)); } }
@media (max-width:780px){  .atwf-cards.cards-4{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (max-width:480px){  .atwf-cards.cards-4{ grid-template-columns:1fr; } }
.atwf-card{
  background:#fff; border:1px solid var(--atwf-line); border-radius:18px; overflow:hidden;
  display:flex; flex-direction:column; position:relative;
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.atwf-card:hover{ transform:translateY(-6px); box-shadow:var(--atwf-shadow-strong); border-color:#d6dde6; }
.atwf-card .img{
  aspect-ratio: 4/3; background-size:cover; background-position:top center; background-color:#eef3f8;
  position:relative; overflow:hidden;
}
.atwf-card .img.cover-center{ background-position:center; }
.atwf-card .img::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, transparent 60%, rgba(12,35,64,.08));
}
.atwf-card .body{
  padding:24px 26px 26px;
  display:flex; flex-direction:column; flex:1;
  gap:0;
}
.atwf-card .body h3{ font-size:22px; margin:0 0 6px; line-height:1.22; }
.atwf-card .body > p{
  color:var(--atwf-muted); margin:0 0 14px;
  /* Don't grow to push bullets down — keeps cards consistent. */
  flex:0 0 auto;
}
.atwf-card .body > p:not(.price){
  /* The description paragraph specifically: cap its space so all cards align. */
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;
  min-height:4.5em;
}
.atwf-card .body .atwf-btn{ align-self:flex-start; margin-top:auto; }
.atwf-card .price{
  font-family:'Bebas Neue',Impact,sans-serif; font-size:40px;
  color:var(--atwf-navy); margin:0 0 4px; line-height:1; letter-spacing:.01em;
}
.atwf-card .price small{
  font-size:.32em; color:var(--atwf-muted);
  margin-left:8px; vertical-align:middle; letter-spacing:.05em; font-family:'Inter',sans-serif; font-weight:600;
}
.atwf-card .features{ list-style:none; padding:0; margin:14px 0 22px; }
.atwf-card .features li{
  position:relative; padding:6px 0 6px 28px; color:var(--atwf-text); font-size:15px;
  border-bottom:1px dashed rgba(227,232,238,.7);
}
.atwf-card .features li:last-child{ border-bottom:0; }
.atwf-card .features li::before{
  content:"✓"; position:absolute; left:0; top:7px;
  width:20px; height:20px; border-radius:50%;
  background:rgba(76,175,80,.12); color:var(--atwf-green);
  display:flex; align-items:center; justify-content:center;
  font-size:11px; font-weight:700;
}
.atwf-card-popular{
  border:2px solid var(--atwf-green); transform:translateY(-4px);
  box-shadow:0 30px 60px -25px rgba(76,175,80,.45);
}
.atwf-card-popular::before{
  content:"MOST POPULAR"; position:absolute; top:18px; right:-44px;
  background:linear-gradient(90deg,var(--atwf-green),var(--atwf-green-2));
  color:#fff; font-size:11px; letter-spacing:.18em; font-weight:700;
  padding:6px 50px; transform:rotate(35deg); z-index:2;
  box-shadow:0 4px 12px rgba(76,175,80,.4);
}
.atwf-card-luxury{
  background:linear-gradient(165deg, var(--atwf-navy), var(--atwf-navy-3));
  color:#dde6f1; border-color:rgba(202,167,90,.3);
}
.atwf-card-luxury h3, .atwf-card-luxury .price{ color:#fff; }
.atwf-card-luxury .price{ background:linear-gradient(135deg, var(--atwf-gold), var(--atwf-gold-soft)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.atwf-card-luxury p, .atwf-card-luxury .features li{ color:#bccae0; }
.atwf-card-luxury .features li::before{ background:rgba(202,167,90,.18); color:var(--atwf-gold-soft); }
.atwf-card-luxury .features li{ border-bottom-color:rgba(255,255,255,.08); }

/* ============== Gallery ============== */
.atwf-gallery{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
@media (max-width:900px){ .atwf-gallery{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .atwf-gallery{ grid-template-columns:1fr; } }
.atwf-gallery .tile{
  position:relative; aspect-ratio: 1/1; overflow:hidden; border-radius:14px;
  background:#eef3f8; background-size:cover; background-position:center; cursor:zoom-in;
  transition:transform .25s ease, box-shadow .25s ease;
}
.atwf-gallery .tile:hover{ transform:translateY(-3px); box-shadow:var(--atwf-shadow); }
.atwf-gallery .tile::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(12,35,64,0) 50%, rgba(12,35,64,.65) 100%);
  opacity:0; transition:opacity .25s ease;
}
.atwf-gallery .tile:hover::after{ opacity:1; }
.atwf-gallery .tile .cap{
  position:absolute; left:14px; right:14px; bottom:12px; color:#fff; font-weight:600; font-size:14px;
  z-index:1; opacity:0; transform:translateY(6px); transition:opacity .25s ease, transform .25s ease;
}
.atwf-gallery .tile:hover .cap{ opacity:1; transform:translateY(0); }
.atwf-gallery .tile .zoom-ic{
  position:absolute; top:14px; right:14px; width:34px; height:34px; border-radius:50%;
  background:rgba(255,255,255,.92); color:var(--atwf-navy);
  display:flex; align-items:center; justify-content:center; font-size:16px;
  opacity:0; transition:opacity .25s ease, transform .25s ease;
}
.atwf-gallery .tile:hover .zoom-ic{ opacity:1; transform:scale(1); }

/* ============== Transformations ============== */
.atwf-grid-tf{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
@media (max-width:1024px){ .atwf-grid-tf{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:700px){ .atwf-grid-tf{ grid-template-columns:repeat(2,1fr); } }
.atwf-grid-tf .tile{
  aspect-ratio:1/1; border-radius:14px; overflow:hidden; cursor:zoom-in;
  background-size:cover; background-position:center;
  transition:transform .25s ease, box-shadow .25s ease;
  position:relative;
}
.atwf-grid-tf .tile:hover{ transform:scale(1.025); box-shadow:var(--atwf-shadow); z-index:1; }
.atwf-grid-tf .tile::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, transparent 50%, rgba(12,35,64,.55));
  opacity:0; transition:opacity .25s ease;
}
.atwf-grid-tf .tile:hover::after{ opacity:1; }
.atwf-grid-tf .tile .cap{
  position:absolute; left:12px; right:12px; bottom:10px; color:#fff; font-weight:600;
  font-size:13px; z-index:1; opacity:0; transition:opacity .25s ease;
}
.atwf-grid-tf .tile:hover .cap{ opacity:1; }

/* ============== Lightbox ============== */
.atwf-lb{
  position:fixed; inset:0; background:rgba(8,16,30,.94); z-index:9999;
  display:none; align-items:center; justify-content:center; padding:30px;
}
.atwf-lb.open{ display:flex; }
.atwf-lb img{
  max-width:min(1100px,92vw); max-height:88vh; border-radius:8px;
  box-shadow:0 30px 90px rgba(0,0,0,.55);
}
.atwf-lb-close,
.atwf-lb-nav{
  position:absolute; cursor:pointer;
  background:rgba(255,255,255,.10); color:#fff; border:1px solid rgba(255,255,255,.16);
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  transition:background .2s ease, transform .15s ease;
  padding:0; line-height:1;
}
.atwf-lb-close:hover,
.atwf-lb-nav:hover{ background:rgba(255,255,255,.22); transform:scale(1.05); }
.atwf-lb-close{ top:18px; right:24px; width:48px; height:48px; }
.atwf-lb-nav{ top:50%; transform:translateY(-50%); width:54px; height:54px; }
.atwf-lb-nav:hover{ transform:translateY(-50%) scale(1.05); }
.atwf-lb-prev{ left:24px; }
.atwf-lb-next{ right:24px; }
.atwf-lb-close svg,
.atwf-lb-nav svg{ width:22px; height:22px; display:block; }
.atwf-lb-cap{ position:absolute; left:0; right:0; bottom:24px; text-align:center; color:#dde6f1; font-size:14px; }
@media (max-width:720px){ .atwf-lb-prev{ left:8px; } .atwf-lb-next{ right:8px; } }

/* ============== Sticky CTA bar (mobile) ============== */
/* Visible by default on mobile (no scroll-trigger required) so it's always
   one tap away. Hidden on desktop where the in-page CTAs are already prominent. */
.atwf-stickybar{
  position:fixed; left:12px; right:12px; bottom:12px; z-index:99999;
  display:flex; gap:10px; padding:8px;
  background:rgba(8,24,45,.96); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  border-radius:999px;
  box-shadow:0 18px 40px rgba(0,0,0,.45), 0 0 0 1px rgba(255,255,255,.08) inset;
  opacity:1; pointer-events:auto;
  transition:transform .35s ease, opacity .35s ease;
}
.atwf-stickybar a{
  flex:1; padding:14px 18px; border-radius:999px;
  text-align:center; font-weight:600; text-decoration:none !important;
  font-size:15px; letter-spacing:.01em;
}
.atwf-stickybar-call{
  color:#fff !important; background:rgba(255,255,255,.10);
  display:flex !important; align-items:center; justify-content:center; gap:8px;
}
.atwf-stickybar-call .ic{ font-size:18px; }
.atwf-stickybar-cta{
  background:var(--atwf-green); color:#fff !important;
  box-shadow:0 6px 18px rgba(76,175,80,.35);
}
.atwf-stickybar-cta:hover{ background:var(--atwf-green-2); color:#fff !important; }
/* Push the page bottom up a hair so the bar doesn't cover real content */
@media (max-width:920px){
  body{ padding-bottom:90px; }
  /* Hide Astra's default scroll-to-top button so it doesn't compete with our CTA bar */
  #ast-scroll-top{ display:none !important; }
}
/* Hide on desktop — main CTAs are prominent enough */
@media (min-width:921px){ .atwf-stickybar{ display:none !important; } }

/* ============== Programs detail ============== */
.atwf-prog{
  background:#fff; border:1px solid var(--atwf-line); border-radius:18px; padding:34px;
  display:grid; grid-template-columns:1fr 1.1fr; gap:36px; align-items:center; margin-bottom:26px;
  box-shadow:0 10px 30px -16px rgba(12,35,64,.10);
  transition:transform .25s ease, box-shadow .25s ease;
}
.atwf-prog:hover{ transform:translateY(-3px); box-shadow:var(--atwf-shadow); }
.atwf-prog .atwf-prog-media{
  display:block; aspect-ratio:4/3; border-radius:14px; overflow:hidden; background:#eef3f8;
  background-size:cover; background-position:top center; cursor:zoom-in;
  position:relative;
}
.atwf-prog .atwf-prog-media.cover-center{ background-position:center; }
.atwf-prog ul{ margin:14px 0 22px 0; padding:0; list-style:none; }
.atwf-prog ul li{
  position:relative; padding:8px 0 8px 30px; color:var(--atwf-text);
  border-bottom:1px dashed rgba(227,232,238,.7);
}
.atwf-prog ul li::before{
  content:"✓"; position:absolute; left:0; top:8px;
  width:22px; height:22px; border-radius:50%;
  background:rgba(76,175,80,.12); color:var(--atwf-green);
  display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:700;
}
.atwf-prog ul li:last-child{ border-bottom:0; }
@media (max-width:1100px){
  .atwf-prog{ grid-template-columns:1fr; padding:26px; gap:24px; }
  .atwf-prog .atwf-prog-media{ aspect-ratio:16/9; }
}

/* ============== About story ============== */
.atwf-quote{
  position:relative; padding:24px 28px 24px 60px; margin:30px 0;
  background:#fff; border:1px solid var(--atwf-line); border-radius:14px;
  box-shadow:var(--atwf-shadow);
  font-family:'Playfair Display',Georgia,serif; font-style:italic;
  color:var(--atwf-navy); font-size:19px; line-height:1.55;
}
.atwf-quote::before{
  content:'\201C'; position:absolute; left:18px; top:6px;
  font-family:'Playfair Display',Georgia,serif; font-size:78px;
  color:var(--atwf-gold); line-height:1; font-style:normal;
}
.atwf-bookrow{ display:grid; grid-template-columns:repeat(2,1fr); gap:24px; }
@media (max-width:700px){ .atwf-bookrow{ grid-template-columns:1fr; } }
.atwf-bookrow .book{
  background:#fff; border:1px solid var(--atwf-line); padding:26px; border-radius:14px;
  position:relative; transition:transform .2s ease, box-shadow .2s ease;
}
.atwf-bookrow .book:hover{ transform:translateY(-3px); box-shadow:var(--atwf-shadow); }
.atwf-bookrow .book h4{ margin:0 0 6px; font-size:21px; }
.atwf-bookrow .book .badge{
  display:inline-block; padding:4px 10px; border-radius:999px;
  background:rgba(202,167,90,.14); color:var(--atwf-gold-2);
  font-size:11px; letter-spacing:.18em; text-transform:uppercase; font-weight:700;
  margin-bottom:10px;
}

/* ============== Press strip ============== */
/* Forced 5-up at any non-tiny viewport; minmax(0,1fr) prevents content from
   forcing column wrap. On mobile we drop to a clean 2-up grid AND hide one
   tile (.atwf-press > [data-mobile-hide]) so we keep an even 4-tile layout. */
.atwf-press{
  display:grid; grid-template-columns:repeat(5, minmax(0, 1fr)); gap:12px;
}
@media (max-width:680px){
  .atwf-press{ grid-template-columns:repeat(2, minmax(0,1fr)); gap:10px; }
  .atwf-press [data-mobile-hide]{ display:none !important; }
}
.atwf-press .tile{
  aspect-ratio:1/1; border-radius:14px; overflow:hidden;
  background-size:cover; background-position:center; position:relative; cursor:zoom-in;
  transition:transform .25s ease;
}
.atwf-press .tile:hover{ transform:translateY(-3px); }
.atwf-press .tile .label{
  position:absolute; left:12px; bottom:12px; color:#fff; font-size:11px;
  letter-spacing:.18em; text-transform:uppercase; font-weight:700; z-index:1;
  text-shadow:0 2px 6px rgba(0,0,0,.45);
}
.atwf-press .tile::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, transparent 40%, rgba(12,35,64,.7));
}

/* ============== Testimonials ============== */
.atwf-testimonials{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
@media (max-width:900px){ .atwf-testimonials{ grid-template-columns:1fr; } }
.atwf-test{
  background:#fff; border:1px solid var(--atwf-line); border-radius:18px; padding:30px;
  position:relative; box-shadow:0 10px 30px -16px rgba(12,35,64,.10);
  transition:transform .25s ease, box-shadow .25s ease;
}
.atwf-test:hover{ transform:translateY(-4px); box-shadow:var(--atwf-shadow-strong); }
.atwf-test::before{
  content:'\201C'; position:absolute; right:22px; top:6px;
  font-family:'Playfair Display',Georgia,serif; font-size:80px; color:var(--atwf-gold-soft); line-height:1;
}
.atwf-test .stars{ color:var(--atwf-gold); letter-spacing:2px; margin:0 0 12px; font-size:16px; }
.atwf-test p{ color:var(--atwf-text); font-size:16.5px; line-height:1.6; margin:0 0 22px; }
.atwf-test .who{ display:flex; align-items:center; gap:14px; }
.atwf-test .who .avatar{
  width:46px; height:46px; border-radius:50%; background-size:cover; background-position:center;
  background:linear-gradient(135deg, var(--atwf-green), var(--atwf-gold)); flex:none;
  display:flex; align-items:center; justify-content:center; color:#fff; font-weight:800; font-size:16px;
}
.atwf-test .who .meta strong{ display:block; color:var(--atwf-navy); font-size:15px; }
.atwf-test .who .meta span{ color:var(--atwf-muted); font-size:13px; }

/* ============== Contact ============== */
.atwf-contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:32px; }
@media (max-width:900px){ .atwf-contact-grid{ grid-template-columns:1fr; } }
.atwf-info-card{
  background:#fff; border:1px solid var(--atwf-line); border-radius:18px; padding:32px;
  box-shadow:0 10px 30px -16px rgba(12,35,64,.10);
}
.atwf-info-card h3{ margin-top:0; font-size:24px; }
.atwf-info-card .row{ display:flex; gap:14px; align-items:flex-start; margin:14px 0; }
.atwf-info-card .row .ic{ width:38px; height:38px; flex:none; border-radius:10px; background:linear-gradient(135deg,var(--atwf-green),var(--atwf-green-2)); color:#fff; display:grid; place-items:center; font-weight:700; }
.atwf-form input, .atwf-form textarea{
  width:100%; padding:15px 16px; border:1px solid var(--atwf-line); border-radius:12px;
  font:inherit; color:var(--atwf-text); background:#fff; margin-bottom:12px;
  transition:border-color .2s ease, box-shadow .2s ease;
}
.atwf-form input:focus, .atwf-form textarea:focus{
  outline:none; border-color:var(--atwf-green); box-shadow:0 0 0 4px rgba(76,175,80,.12);
}
.atwf-form textarea{ min-height:140px; resize:vertical; }
.atwf-form button{ border:0; cursor:pointer; }
.atwf-map iframe{ width:100%; height:340px; border:0; border-radius:14px; }

/* ============== Newsletter ============== */
.atwf-newsletter{
  position:relative; overflow:hidden;
  background:linear-gradient(135deg,var(--atwf-navy) 0%,var(--atwf-navy-3) 100%); color:#fff; padding:80px 0;
}
.atwf-newsletter::before{
  content:""; position:absolute; inset:0;
  background:radial-gradient(700px 350px at 90% 10%, rgba(202,167,90,.16), transparent 60%),
             radial-gradient(600px 300px at 0% 100%, rgba(76,175,80,.14), transparent 60%);
}
.atwf-newsletter > .atwf-wrap{ position:relative; }
.atwf-newsletter h2{ color:#fff; margin:0 0 12px; font-size:42px; }
.atwf-newsletter p{ color:#bccae0; margin:0 0 22px; font-size:18px; }
/* Newsletter section layout: text LEFT, form RIGHT on desktop; stacked on mobile. */
.atwf-newsletter > .atwf-wrap{
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:60px;
  align-items:center;
}
.atwf-newsletter-form{
  display:flex; flex-direction:column; gap:10px;
  max-width:440px; width:100%;
  justify-self:end; /* push form to the right edge of its column */
}
.atwf-newsletter-form input{
  width:100%; padding:16px 22px; border-radius:999px; border:0; font-size:16px;
}
.atwf-newsletter-form button{ width:100%; justify-content:center; }
@media (max-width:860px){
  .atwf-newsletter > .atwf-wrap{ grid-template-columns:1fr; gap:28px; }
  .atwf-newsletter-form{ max-width:100%; justify-self:stretch; }
}

/* ============== Page header ============== */
.atwf-pageheader{
  position:relative; overflow:hidden;
  background:linear-gradient(135deg,var(--atwf-navy) 0%, var(--atwf-navy-3) 100%);
  color:#fff; padding:100px 0 80px; text-align:center;
}
.atwf-pageheader::before{
  content:""; position:absolute; inset:0;
  background:radial-gradient(700px 350px at 70% 30%, rgba(76,175,80,.18), transparent 60%),
             radial-gradient(500px 300px at 0% 100%, rgba(202,167,90,.12), transparent 60%);
}
.atwf-pageheader > .atwf-wrap{ position:relative; }
.atwf-pageheader h1{
  color:#fff; font-family:'Bebas Neue',Impact,sans-serif; font-size:74px; margin:0 0 12px; letter-spacing:.02em;
}
.atwf-pageheader h1 .atwf-serif{
  font-family:'Playfair Display',Georgia,serif; font-style:italic; font-weight:600; font-size:.92em;
  color:var(--atwf-gold-soft);
}
.atwf-pageheader p{ color:#b9c6d6; max-width:720px; margin:0 auto; font-size:19px; }

/* ============== Astra page-builder layout polish ============== */
.entry-content > .atwf-pageheader,
.entry-content > .atwf-section,
.entry-content > .atwf-trust,
.entry-content > .atwf-hero,
.entry-content > .atwf-newsletter{
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  width:100vw;
}
.entry-content .atwf-wrap{ box-sizing:border-box; }
.entry-content > * + *{ margin-top:0; }
.ast-page-builder-template .site-content > .ast-container{ max-width:none; padding:0; }
.ast-page-builder-template .entry-header{ display:none; }
.ast-page-builder-template .entry-content{ margin:0; }

/* ============== Carousel (used for Real Members, Inside Studio, Community, Transformations) ============== */
.atwf-carousel{ position:relative; }
.atwf-carousel-track{
  display:flex; gap:18px; overflow-x:auto; overflow-y:hidden;
  scroll-snap-type:x mandatory; scroll-behavior:smooth;
  -ms-overflow-style:none; scrollbar-width:none;
  padding:8px 4px 28px; margin:0 -4px;
}
.atwf-carousel-track::-webkit-scrollbar{ display:none; }
.atwf-carousel-slide{
  flex:0 0 calc((100% - 36px) / 3); /* 3 visible on desktop */
  scroll-snap-align:start;
  position:relative; aspect-ratio:1/1; border-radius:14px; overflow:hidden;
  background:#eef3f8; background-size:cover; background-position:center;
  cursor:zoom-in;
  transition:transform .25s ease, box-shadow .25s ease;
}
.atwf-carousel-slide:hover{ transform:translateY(-3px); box-shadow:var(--atwf-shadow); }
.atwf-carousel-slide.tall{ aspect-ratio:3/4; background-position:top center; }
.atwf-carousel-slide::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(12,35,64,0) 50%, rgba(12,35,64,.65) 100%);
  opacity:0; transition:opacity .25s ease;
}
.atwf-carousel-slide:hover::after{ opacity:1; }
.atwf-carousel-slide .cap{
  position:absolute; left:14px; right:14px; bottom:12px; color:#fff; font-weight:600; font-size:14px;
  z-index:1; opacity:0; transform:translateY(6px); transition:opacity .25s ease, transform .25s ease;
}
.atwf-carousel-slide:hover .cap{ opacity:1; transform:translateY(0); }
.atwf-carousel-slide .label{
  position:absolute; left:12px; bottom:12px; color:#fff; font-size:11px;
  letter-spacing:.18em; text-transform:uppercase; font-weight:700; z-index:1;
  text-shadow:0 2px 6px rgba(0,0,0,.45);
}
.atwf-carousel-btn{
  position:absolute; top:50%; transform:translateY(-50%);
  width:50px; height:50px; border-radius:50%;
  background:#fff; border:1px solid var(--atwf-line); color:var(--atwf-navy);
  cursor:pointer; padding:0;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 12px 30px rgba(12,35,64,.18);
  z-index:5; transition:transform .15s ease, box-shadow .15s ease, background .15s ease, color .15s ease;
}
.atwf-carousel-btn svg{ width:18px; height:18px; display:block; }
.atwf-carousel-btn:hover{ background:var(--atwf-navy); color:#fff; transform:translateY(-50%) scale(1.06); }
.atwf-carousel-prev{ left:-22px; }
.atwf-carousel-next{ right:-22px; }
.atwf-carousel-btn.is-disabled{ opacity:.3; cursor:not-allowed; pointer-events:none; }
.atwf-section.dark .atwf-carousel-btn{ background:#fff; color:var(--atwf-navy); }
.atwf-section.dark .atwf-carousel-btn:hover{ background:var(--atwf-green); color:#fff; }

@media (max-width:1100px){
  .atwf-carousel-slide{ flex-basis:calc((100% - 18px) / 2); }
  .atwf-carousel-prev{ left:6px; }
  .atwf-carousel-next{ right:6px; }
}
@media (max-width:600px){
  .atwf-carousel-slide{ flex-basis:82%; }
  .atwf-carousel-track{ gap:14px; }
  .atwf-carousel-btn{ display:none; }
  .atwf-carousel-track{ padding-bottom:14px; scroll-padding-left:8px; padding-left:8px; }
}

/* ============== Online program cards: make text legible regardless of section ============== */
.atwf-cards .atwf-card:not(.atwf-card-luxury) .body h3{ color:var(--atwf-navy) !important; }
.atwf-cards .atwf-card:not(.atwf-card-luxury) .body p{ color:var(--atwf-muted) !important; }
.atwf-cards .atwf-card:not(.atwf-card-luxury) .body .price{ color:var(--atwf-navy) !important; }
.atwf-cards .atwf-card:not(.atwf-card-luxury) .body .price small{ color:var(--atwf-muted) !important; }
.atwf-cards .atwf-card:not(.atwf-card-luxury) .body .features li{ color:var(--atwf-text) !important; }
.atwf-cards .atwf-card .body h3 a,
.atwf-cards .atwf-card .body p a{ text-decoration:none !important; }
/* Also hard-block underline that Astra adds to entry-content links inside cards */
.entry-content .atwf-card a:not(.atwf-btn):not(.atwf-lb-trigger){ text-decoration:none !important; }

/* ============== Astra mobile header / menu polish ============== */
/* Hamburger trigger: bigger, branded, navy gradient */
.ast-mobile-menu-buttons-fill .ast-mobile-menu-trigger-fill,
.ast-button-wrap .ast-mobile-menu-trigger-fill,
button.menu-toggle, .menu-toggle{
  background:linear-gradient(135deg, var(--atwf-navy), var(--atwf-navy-2)) !important;
  color:#fff !important;
  border:0 !important; border-radius:14px !important;
  width:54px !important; height:54px !important; padding:0 !important;
  box-shadow:0 8px 22px rgba(12,35,64,.22) !important;
  transition:transform .15s ease, box-shadow .15s ease !important;
}
button.menu-toggle:hover, .menu-toggle:hover,
.ast-mobile-menu-trigger-fill:hover{
  transform:translateY(-1px); box-shadow:0 12px 28px rgba(12,35,64,.32) !important;
}
.menu-toggle svg, .ast-mobile-menu-trigger-fill svg{ fill:currentColor !important; width:24px !important; height:24px !important; }
.menu-toggle .ast-icon, .ast-mobile-menu-trigger-fill .ast-icon{ color:currentColor; font-size:24px !important; }

/* Mobile slide-out drawer: cleaner background + spacing */
.ast-mobile-popup-drawer.active .ast-mobile-popup-inner{
  background:#fff !important;
  box-shadow:-20px 0 60px rgba(12,35,64,.18);
}
.ast-mobile-popup-drawer .ast-mobile-popup-content{
  padding:14px 18px 24px !important;
}
/* Close (X) inside the slide-out: bigger + branded */
.ast-mobile-popup-content .menu-toggle-close,
.ast-mobile-header-content .menu-toggle-close,
button#menu-toggle-close{
  color:var(--atwf-navy) !important;
  background:#fff !important;
  border:1px solid var(--atwf-line) !important;
  border-radius:14px !important;
  width:48px !important; height:48px !important;
  display:flex !important; align-items:center; justify-content:center;
}
.ast-mobile-popup-content .menu-toggle-close:hover{ background:var(--atwf-navy) !important; color:#fff !important; }

/* Mobile menu items: bigger, more breathing room, branded */
.ast-mobile-popup-drawer .main-header-menu > .menu-item > .menu-link,
#ast-hf-mobile-menu > .menu-item > .menu-link{
  color:var(--atwf-navy) !important;
  font-weight:700 !important;
  font-size:18px !important;
  padding:18px 14px !important;
  border-bottom:1px solid rgba(227,232,238,.7) !important;
  letter-spacing:-0.005em;
}
.ast-mobile-popup-drawer .main-header-menu > .menu-item.current-menu-item > .menu-link,
.ast-mobile-popup-drawer .main-header-menu > .menu-item.current-menu-ancestor > .menu-link,
#ast-hf-mobile-menu > .menu-item.current-menu-item > .menu-link{
  color:var(--atwf-green) !important;
  background:rgba(76,175,80,.08) !important;
  border-radius:10px !important;
}
/* Brand-color the parent toggle (the > / chevron arrow) */
.ast-mobile-popup-drawer .main-header-menu .ast-menu-toggle,
#ast-hf-mobile-menu .ast-menu-toggle{
  color:var(--atwf-navy) !important;
  background:transparent !important;
  border:1px solid var(--atwf-line) !important;
  border-radius:10px !important;
  width:42px !important; height:42px !important;
}
/* Sub-menu inside mobile drawer */
.ast-mobile-popup-drawer .main-header-menu .sub-menu{
  background:var(--atwf-soft) !important;
  border:0 !important; border-radius:12px !important;
  margin:6px 0 6px 8px !important; padding:6px !important;
  box-shadow:none !important;
}
.ast-mobile-popup-drawer .main-header-menu .sub-menu .menu-item > .menu-link{
  font-size:16px !important;
  font-weight:600 !important;
  padding:12px 14px !important;
  border:0 !important;
  color:var(--atwf-text) !important;
}
.ast-mobile-popup-drawer .main-header-menu .sub-menu .menu-item > .menu-link::before{
  content:"\2192"; margin-right:10px; color:var(--atwf-green); font-weight:700;
}
.ast-mobile-popup-drawer .main-header-menu .sub-menu .menu-item:hover > .menu-link,
.ast-mobile-popup-drawer .main-header-menu .sub-menu .menu-item.current-menu-item > .menu-link{
  color:var(--atwf-green) !important;
  background:#fff !important;
  border-radius:8px !important;
}

/* Center the icons inside the hamburger / close button.
   Astra wraps icons in nested spans, but it relies on aria-expanded to
   show ONE svg at a time (hamburger when collapsed, X when open). We must
   keep that hide-rule intact while centering whichever icon is visible. */
button.menu-toggle,
.ast-mobile-menu-trigger-minimal,
.ast-mobile-menu-trigger-fill{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}
button.menu-toggle .mobile-menu-toggle-icon,
.ast-mobile-menu-trigger-minimal .mobile-menu-toggle-icon,
.ast-mobile-menu-trigger-fill .mobile-menu-toggle-icon{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:24px !important; height:24px !important;
  line-height:0 !important;
}
button.menu-toggle .ahfb-svg-iconset,
.ast-mobile-menu-trigger-minimal .ahfb-svg-iconset,
.ast-mobile-menu-trigger-fill .ahfb-svg-iconset{
  align-items:center;
  justify-content:center;
  line-height:0 !important;
}
/* Show only the right svg based on menu state */
button.menu-toggle[aria-expanded="false"] .ast-close-svg,
button.menu-toggle[aria-expanded="true"] .ast-menu-svg,
.ast-mobile-menu-trigger-minimal[aria-expanded="false"] .ast-close-svg,
.ast-mobile-menu-trigger-minimal[aria-expanded="true"] .ast-menu-svg,
.ast-mobile-menu-trigger-fill[aria-expanded="false"] .ast-close-svg,
.ast-mobile-menu-trigger-fill[aria-expanded="true"] .ast-menu-svg{
  display:none !important;
}
button.menu-toggle .ast-mobile-svg,
.ast-mobile-menu-trigger-minimal .ast-mobile-svg,
.ast-mobile-menu-trigger-fill .ast-mobile-svg{
  display:block !important;
  margin:0 !important;
  width:22px !important; height:22px !important;
}
/* The .ast-menu-toggle button is mobile-only — keep it hidden on desktop. */
@media (min-width:921px){
  .main-header-menu .ast-menu-toggle,
  .ast-builder-menu .ast-menu-toggle{
    display:none !important;
  }
}
/* On mobile (inside the off-canvas drawer / mobile menu) center its chevron
   AND vertically center the toggle button within the Programs row. */
.ast-mobile-popup-drawer .main-header-menu .menu-item-has-children,
#ast-hf-mobile-menu .menu-item-has-children{
  position:relative;
}
.ast-mobile-popup-drawer .ast-menu-toggle,
#ast-hf-mobile-menu .ast-menu-toggle{
  position:absolute !important;
  top:11px !important;
  right:10px !important;
  width:42px !important; height:42px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  margin:0 !important;
}
.ast-mobile-popup-drawer .ast-menu-toggle svg,
#ast-hf-mobile-menu .ast-menu-toggle svg{
  width:14px !important; height:14px !important;
  display:block !important;
  margin:0 !important; position:static !important;
}
/* Hide the small inline ">" caret next to the word in the mobile drawer.
   The dedicated .ast-menu-toggle button on the right already shows the chevron. */
.ast-mobile-popup-drawer .menu-link .dropdown-menu-toggle,
#ast-hf-mobile-menu .menu-link .dropdown-menu-toggle{
  display:none !important;
}
/* Desktop dropdown caret next to "Programs": center inside its inline span */
.main-header-menu .dropdown-menu-toggle,
.ast-builder-menu .dropdown-menu-toggle{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
}

/* ============== Mobile polish ============== */
@media (max-width:760px){
  .atwf-hero{ min-height:600px; }
  .atwf-hero h1{ font-size:60px; }
  .atwf-hero .atwf-sub{ font-size:18px; }
  .atwf-section h2{ font-size:34px; }
  .atwf-section{ padding:72px 0; }
  .atwf-pageheader{ padding:80px 0 56px; }
  .atwf-pageheader h1{ font-size:48px; }
  .atwf-newsletter h2{ font-size:30px; }
  .atwf-wrap{ padding:0 22px; }
}
@media (max-width:540px){
  .atwf-hero h1{ font-size:48px; }
  .atwf-hero .atwf-cta-row{ flex-direction:column; align-items:stretch; }
  .atwf-hero .atwf-cta-row .atwf-btn{ justify-content:center; }
}
