/* =====================================================================
   Affinity for Trees — design system
   All selectors are prefixed `aft-` to avoid collision with any theme.
   ===================================================================== */

:root{
  --aft-cream:       #F5F0E6;
  --aft-cream-deep:  #EAE3D1;
  --aft-paper:       #FAFAF5;
  --aft-forest:      #1F2A1E;
  --aft-forest-2:    #26352A;
  --aft-moss:        #4A5D3F;
  --aft-sage:        #8FA08C;
  --aft-bark:        #6B5D4F;
  --aft-bark-light:  #A89A85;
  --aft-ink:         #1A1612;
  --aft-rule:        rgba(31,42,30,0.14);
  --aft-rule-strong: rgba(31,42,30,0.28);
  --aft-green:       #95C83D;     /* the lime green of the logo */
}

/* ---- Theme reset on plugin pages ---- */
body.aft-page{
  margin:0;
  padding:0;
  font-family:'Manrope',sans-serif;
  background:var(--aft-cream);
  color:var(--aft-ink);
  font-size:16px;
  line-height:1.6;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
body.aft-page *,
body.aft-page *::before,
body.aft-page *::after{ box-sizing:border-box }
body.aft-page a{ color:inherit; text-decoration:none }
body.aft-page img{ max-width:100%; display:block }
body.aft-page h1, body.aft-page h2, body.aft-page h3, body.aft-page h4{
  font-family:'Fraunces',serif;
  font-optical-sizing:auto;
  letter-spacing:-0.02em;
  line-height:1.05;
  color:var(--aft-forest);
  font-weight:400;
  margin:0;
}
body.aft-page p{ margin:0 0 1em }
body.aft-page p:last-child{ margin-bottom:0 }
body.aft-page ul{ list-style:none; padding:0; margin:0 }

/* hide any theme header/footer that the host theme might output */
body.aft-page > header:not(.aft-nav):not([class*="aft-"]),
body.aft-page > footer:not(.aft-footer):not([class*="aft-"]),
body.aft-page .site-header,
body.aft-page .site-footer,
body.aft-page .wp-block-template-part{
  display:none !important;
}

/* paper grain overlay */
body.aft-page::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:1;
  opacity:0.35;
  mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.12 0 0 0 0 0.10 0 0 0 0 0.07 0 0 0 0.55 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}

.aft-mono{ font-family:'JetBrains Mono',monospace; letter-spacing:0.12em; text-transform:uppercase; font-size:11px; font-weight:400 }
.aft-line{ display:inline-block; width:48px; height:1px; background:currentColor; opacity:0.7 }
.aft-dot{ width:4px; height:4px; background:var(--aft-moss); border-radius:50%; display:inline-block; margin:0 8px; vertical-align:middle }

.aft-wrap{ max-width:1480px; margin:0 auto; padding:0 32px; position:relative; z-index:2 }
@media (max-width:768px){ .aft-wrap{ padding:0 20px } }

/* ===== NAV ===== */
.aft-nav{
  position:fixed;
  top:0; left:0; right:0;
  z-index:50;
  padding:18px 0;
  transition:all .4s ease;
  background:rgba(245,240,230,0.7);
  backdrop-filter:saturate(140%) blur(18px);
  -webkit-backdrop-filter:saturate(140%) blur(18px);
  border-bottom:1px solid rgba(31,42,30,0.06);
}
.aft-nav.scrolled{
  background:rgba(245,240,230,0.92);
  border-bottom:1px solid var(--aft-rule);
  padding:12px 0;
}
.aft-nav-inner{ display:flex; align-items:center; justify-content:space-between; gap:24px }
.aft-nav-logo{ display:inline-flex; align-items:center; height:36px }
.aft-nav-logo img{ height:100%; width:auto; display:block; transition:opacity .25s }
.aft-nav-logo:hover img{ opacity:0.85 }
.aft-nav.scrolled .aft-nav-logo{ height:30px }

.aft-nav-links{ display:flex; align-items:center; gap:36px }
.aft-nav-links > li{ position:relative }
.aft-nav-links a{
  font-size:13px;
  font-weight:500;
  color:var(--aft-forest);
  padding:6px 0;
  position:relative;
  transition:color .25s;
}
.aft-nav-links a::after{
  content:"";
  position:absolute; bottom:0; left:0; right:100%;
  height:1px; background:var(--aft-forest);
  transition:right .35s cubic-bezier(.2,.7,.2,1);
}
.aft-nav-links a:hover::after{ right:0 }
.aft-nav-links .has-sub > a::before{
  content:"+"; margin-right:6px; color:var(--aft-moss); font-weight:300;
}

.aft-submenu{
  position:absolute;
  top:100%; left:-12px;
  background:var(--aft-paper);
  border:1px solid var(--aft-rule);
  border-radius:6px;
  padding:8px 0;
  min-width:200px;
  box-shadow:0 14px 40px rgba(31,42,30,0.10);
  opacity:0; visibility:hidden;
  transform:translateY(-4px);
  transition:all .25s cubic-bezier(.2,.7,.2,1);
}
.aft-nav-links .has-sub:hover > .aft-submenu{ opacity:1; visibility:visible; transform:translateY(4px) }
.aft-submenu li a{ display:block; padding:10px 18px; font-size:13px }
.aft-submenu li a::after{ display:none }
.aft-submenu li a:hover{ background:var(--aft-cream); color:var(--aft-moss) }

.aft-nav-right{ display:flex; align-items:center; gap:18px }
.aft-lang-switch{
  font-family:'JetBrains Mono',monospace;
  font-size:11px;
  letter-spacing:0.1em;
  color:var(--aft-bark);
  display:inline-flex; gap:6px; align-items:center;
  padding:6px 0;
}
.aft-lang-switch span.is-active{ color:var(--aft-forest); font-weight:500 }
.aft-lang-sep{ opacity:.5 }

.aft-nav-cta{
  display:inline-flex; align-items:center; gap:10px;
  background:var(--aft-forest); color:var(--aft-cream);
  padding:11px 22px;
  border-radius:999px;
  font-size:13px; font-weight:500;
  transition:all .3s;
}
.aft-nav-cta:hover{ background:var(--aft-moss); transform:translateY(-1px) }
.aft-nav-cta .arrow{ transition:transform .3s }
.aft-nav-cta:hover .arrow{ transform:translate(3px,-3px) }

@media (max-width:1000px){ .aft-nav-links{ display:none } }

/* ===== HERO (home) ===== */
.aft-hero{
  position:relative;
  min-height:100vh;
  padding-top:120px;
  display:flex; flex-direction:column; justify-content:flex-end;
  overflow:hidden;
  background:var(--aft-forest);
}
.aft-hero-bg{ position:absolute; inset:0; z-index:0 }
.aft-hero-bg img{
  width:100%; height:100%; object-fit:cover;
  filter:brightness(0.55) saturate(0.75) contrast(1.05);
}
.aft-hero-bg::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,
    rgba(31,42,30,0.35) 0%,
    rgba(31,42,30,0.20) 25%,
    rgba(31,42,30,0.55) 70%,
    rgba(31,42,30,0.92) 100%);
}
.aft-hero-content{ position:relative; z-index:3; padding:0 0 80px; color:var(--aft-cream) }
.aft-hero-eyebrow{ display:flex; align-items:center; gap:14px; color:var(--aft-cream) !important; margin-bottom:32px }
.aft-hero-eyebrow .aft-line{ background:var(--aft-cream); opacity:0.7 }
.aft-hero-eyebrow .aft-mono{ color:var(--aft-cream) !important }
body.aft-page .aft-hero-title{
  font-family:'Fraunces',serif;
  font-size:clamp(56px, 11vw, 168px);
  line-height:0.92;
  font-weight:300;
  letter-spacing:-0.04em;
  color:var(--aft-cream) !important;
  font-variation-settings:"SOFT" 100;
  text-shadow:0 2px 24px rgba(0,0,0,0.25);
}
body.aft-page .aft-hero-title em{
  font-style:italic; font-weight:300;
  color:var(--aft-cream) !important;
  font-variation-settings:"SOFT" 100;
}
.aft-hero-meta{ display:flex; justify-content:space-between; align-items:flex-end; margin-top:48px; flex-wrap:wrap; gap:24px }
.aft-hero-meta-left{ max-width:380px }
.aft-hero-meta-left p{ color:rgba(245,240,230,0.92) !important; font-size:15px; line-height:1.55 }
.aft-hero-scroll{ display:flex; align-items:center; gap:10px; color:rgba(245,240,230,0.85); font-size:11px; letter-spacing:0.2em; text-transform:uppercase }
.aft-dot-pulse{ width:6px; height:6px; border-radius:50%; background:var(--aft-sage); animation:aft-pulse 2.4s infinite ease-in-out }
@keyframes aft-pulse{ 0%,100%{ opacity:0.4; transform:scale(1) } 50%{ opacity:1; transform:scale(1.4) } }

/* ===== DEFINITION ===== */
.aft-definition{ padding:140px 0 120px; background:var(--aft-cream); position:relative }
.aft-def-grid{ display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:start }
.aft-def-label{ display:flex; align-items:center; gap:14px; margin-bottom:32px; color:var(--aft-bark) }
.aft-def-label .aft-line{ width:32px; background:var(--aft-bark-light) }
.aft-def-term{
  font-family:'Fraunces',serif;
  font-weight:300; font-style:italic;
  font-size:clamp(48px,7vw,92px);
  line-height:1; color:var(--aft-forest);
  font-variation-settings:"SOFT" 100;
  margin-bottom:24px;
}
.aft-def-phonetic{ font-family:'JetBrains Mono',monospace; font-size:14px; color:var(--aft-bark); margin-bottom:32px; letter-spacing:0.05em }
.aft-def-meaning{
  font-family:'Fraunces',serif;
  font-size:clamp(22px,2.4vw,32px);
  line-height:1.3;
  color:var(--aft-forest);
  font-weight:300; margin-bottom:36px;
  font-variation-settings:"SOFT" 70;
}
.aft-def-synonyms{ display:flex; flex-wrap:wrap; gap:8px 6px }
.aft-synonym-pill{
  font-size:13px; font-weight:500;
  padding:6px 14px;
  border:1px solid var(--aft-rule-strong);
  border-radius:999px;
  color:var(--aft-forest);
}
.aft-def-right p{
  font-family:'Fraunces',serif;
  font-size:clamp(20px,1.9vw,26px);
  line-height:1.45; color:var(--aft-forest);
  font-weight:300;
  font-variation-settings:"SOFT" 60;
  margin-bottom:24px;
}
.aft-def-right p + p{ font-family:'Manrope',sans-serif; font-size:16px; line-height:1.7; color:var(--aft-bark) }
.aft-def-signature{ margin-top:40px; display:flex; align-items:center; gap:16px; padding-top:32px; border-top:1px solid var(--aft-rule) }
.aft-cert-badge{
  width:54px; height:54px; border-radius:50%;
  border:1px solid var(--aft-rule-strong);
  display:flex; align-items:center; justify-content:center;
  font-family:'Fraunces',serif; font-size:11px; text-align:center; line-height:1.1;
  color:var(--aft-moss); letter-spacing:0.05em;
}
.aft-cert-text{ font-size:13px; color:var(--aft-bark); line-height:1.5 }
.aft-cert-text strong{ color:var(--aft-forest); font-weight:600; display:block }

@media (max-width:900px){ .aft-def-grid{ grid-template-columns:1fr; gap:48px } .aft-definition{ padding:90px 0 70px } }

/* ===== SERVICES GRID (home) ===== */
.aft-services{ padding:120px 0 140px; background:var(--aft-cream-deep); position:relative }
.aft-services-head{ display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:80px; gap:48px; flex-wrap:wrap }
.aft-section-eyebrow{ display:flex; align-items:center; gap:14px; color:var(--aft-bark); margin-bottom:16px }
.aft-num{ font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--aft-moss); letter-spacing:0.12em; text-transform:uppercase }
.aft-section-title{
  font-family:'Fraunces',serif;
  font-size:clamp(48px,6vw,82px);
  font-weight:300; line-height:1;
  letter-spacing:-0.03em;
  color:var(--aft-forest);
}
.aft-section-title em{ font-style:italic; color:var(--aft-moss); font-variation-settings:"SOFT" 100 }
.aft-services-intro{ max-width:420px; font-size:15px; color:var(--aft-bark); line-height:1.7 }

.aft-services-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
  row-gap:32px;
}
.aft-service{
  position:relative;
  background:var(--aft-paper);
  border-radius:4px;
  overflow:hidden;
  cursor:pointer;
  transition:transform .5s cubic-bezier(.2,.7,.2,1);
  display:flex; flex-direction:column;
}
.aft-service:hover{ transform:translateY(-4px) }
.aft-service-img{ position:relative; overflow:hidden; aspect-ratio:4/5 }
.aft-service-img img{ width:100%; height:100%; object-fit:cover; transition:transform 1.2s cubic-bezier(.2,.7,.2,1); filter:saturate(0.9) }
.aft-service:hover .aft-service-img img{ transform:scale(1.06) }
.aft-service-num{
  position:absolute; top:16px; left:16px; z-index:2;
  font-family:'JetBrains Mono',monospace; font-size:11px;
  color:var(--aft-cream);
  background:rgba(31,42,30,0.5);
  backdrop-filter:blur(6px);
  padding:5px 10px; border-radius:999px;
  letter-spacing:0.1em;
}
.aft-service-body{ padding:24px 24px 26px; display:flex; align-items:flex-end; justify-content:space-between; gap:12px; flex:1 }
.aft-service-name{
  font-family:'Fraunces',serif;
  font-size:24px; font-weight:400;
  color:var(--aft-forest) !important;
  line-height:1.05;
  letter-spacing:-0.01em;
  margin:0;
}
.aft-service-arrow{
  width:36px; height:36px; border-radius:50%;
  border:1px solid var(--aft-rule-strong);
  display:flex; align-items:center; justify-content:center;
  color:var(--aft-forest);
  background:transparent;
  flex-shrink:0; transition:all .3s;
}
.aft-service:hover .aft-service-arrow{
  background:var(--aft-forest); color:var(--aft-cream);
  border-color:var(--aft-forest);
  transform:rotate(-45deg);
}
.aft-service-arrow svg{ width:14px; height:14px }

@media (max-width:1000px){
  .aft-services-grid{ grid-template-columns:repeat(2,1fr) }
}
@media (max-width:600px){
  .aft-services-grid{ grid-template-columns:1fr }
  .aft-services{ padding:80px 0 90px }
}

/* ===== PHILOSOPHY (dark band) ===== */
.aft-philosophy{ padding:140px 0 160px; background:var(--aft-forest); color:var(--aft-cream); position:relative; overflow:hidden }
.aft-philosophy::before{
  content:"";
  position:absolute; inset:0; pointer-events:none;
  background-image:
    radial-gradient(ellipse at 20% 20%, rgba(143,160,140,0.08) 0%, transparent 50%),
    radial-gradient(ellipse at 80% 80%, rgba(74,93,63,0.18) 0%, transparent 60%);
}
.aft-philosophy-inner{ display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; position:relative; z-index:2 }
.aft-phil-mark{
  font-family:'Fraunces',serif; font-style:italic;
  font-size:240px; line-height:0.7;
  color:var(--aft-moss); opacity:0.4;
  margin-bottom:-40px;
  font-variation-settings:"SOFT" 100;
}
.aft-phil-quote{
  font-family:'Fraunces',serif;
  font-size:clamp(28px,3.2vw,44px);
  line-height:1.25; font-weight:300; font-style:italic;
  color:var(--aft-cream);
  font-variation-settings:"SOFT" 80;
  margin-bottom:40px;
}
.aft-phil-author{ display:flex; align-items:center; gap:14px; font-size:14px; color:var(--aft-sage) }
.aft-phil-author .aft-line{ width:32px; background:var(--aft-sage) }
.aft-phil-author strong{ color:var(--aft-cream); font-weight:500 }
.aft-phil-list{ border-top:1px solid rgba(245,240,230,0.15) }
.aft-phil-list li{
  padding:28px 0;
  border-bottom:1px solid rgba(245,240,230,0.15);
  display:grid; grid-template-columns:60px 1fr; gap:24px; align-items:baseline;
}
.aft-phil-n{ font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--aft-sage); letter-spacing:0.1em }
.aft-phil-list h4{ color:var(--aft-cream); font-size:22px; font-weight:400; margin-bottom:8px }
.aft-phil-list p{ color:rgba(245,240,230,0.7); font-size:14px; line-height:1.6; margin:0 }
@media (max-width:1000px){ .aft-philosophy-inner{ grid-template-columns:1fr; gap:60px } .aft-philosophy{ padding:90px 0 100px } .aft-phil-mark{ font-size:160px; margin-bottom:-20px } }

/* ===== TESTIMONIAL ===== */
.aft-testimonial{ padding:140px 0; background:var(--aft-cream); position:relative }
.aft-test-inner{ max-width:980px; margin:0 auto; text-align:center }
.aft-test-eyebrow{ display:inline-flex; align-items:center; gap:14px; color:var(--aft-bark); margin-bottom:40px }
.aft-test-eyebrow .aft-line{ width:32px; background:var(--aft-bark-light) }
.aft-test-quote{
  font-family:'Fraunces',serif;
  font-size:clamp(28px,3.4vw,46px);
  line-height:1.3; font-weight:300; font-style:italic;
  color:var(--aft-forest);
  margin-bottom:40px;
  font-variation-settings:"SOFT" 90;
  letter-spacing:-0.01em;
}
.aft-test-attr{ font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--aft-bark); letter-spacing:0.1em }
.aft-test-attr strong{ color:var(--aft-forest); font-weight:500 }
@media (max-width:600px){ .aft-testimonial{ padding:90px 0 } }

/* ===== CTA ===== */
.aft-cta-band{ background:var(--aft-cream) }
.aft-cta-grid{ display:grid; grid-template-columns:5fr 7fr; min-height:560px; border-top:1px solid var(--aft-rule) }
.aft-cta-image{ position:relative; overflow:hidden; background:var(--aft-cream-deep) }
.aft-cta-image img{ width:100%; height:100%; object-fit:cover; filter:saturate(0.85) }
.aft-cta-content{
  padding:100px 80px;
  display:flex; flex-direction:column; justify-content:center;
  background:var(--aft-forest); color:var(--aft-cream);
  position:relative; overflow:hidden;
}
.aft-cta-content::before{ content:""; position:absolute; inset:0; background:radial-gradient(circle at 70% 20%, rgba(143,160,140,0.12) 0%, transparent 60%); pointer-events:none }
.aft-cta-eyebrow{ font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--aft-sage); letter-spacing:0.2em; margin-bottom:24px; text-transform:uppercase }
.aft-cta-title{
  font-family:'Fraunces',serif;
  font-size:clamp(40px,5vw,68px);
  line-height:1; font-weight:300;
  color:var(--aft-cream);
  letter-spacing:-0.03em;
  margin-bottom:32px;
}
.aft-cta-title em{ font-style:italic; color:var(--aft-sage); font-variation-settings:"SOFT" 100 }
.aft-cta-sub{ font-size:17px; line-height:1.6; color:rgba(245,240,230,0.75); max-width:480px; margin-bottom:48px }
.aft-cta-actions{ display:flex; gap:16px; flex-wrap:wrap; position:relative; z-index:2 }
.aft-btn-primary{
  display:inline-flex; align-items:center; gap:12px;
  background:var(--aft-cream); color:var(--aft-forest);
  padding:18px 30px; border-radius:999px;
  font-size:14px; font-weight:500; transition:all .3s;
}
.aft-btn-primary:hover{ background:var(--aft-sage); transform:translateY(-2px) }
.aft-btn-ghost{
  display:inline-flex; align-items:center; gap:12px;
  color:var(--aft-cream);
  padding:18px 30px; border-radius:999px;
  font-size:14px; font-weight:500;
  border:1px solid rgba(245,240,230,0.25);
  transition:all .3s;
}
.aft-btn-ghost:hover{ border-color:var(--aft-cream); background:rgba(245,240,230,0.05) }
@media (max-width:900px){ .aft-cta-grid{ grid-template-columns:1fr; min-height:auto } .aft-cta-image{ min-height:300px } .aft-cta-content{ padding:70px 32px } }

/* ===== FOOTER ===== */
.aft-footer{ background:var(--aft-cream); padding:100px 0 36px; position:relative }
.aft-footer-top{ display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:48px; padding-bottom:60px; border-bottom:1px solid var(--aft-rule) }
.aft-footer-logo{ height:44px; width:auto; display:block; margin-bottom:24px }
.aft-footer-brand p{ color:var(--aft-bark); font-size:14px; line-height:1.6; max-width:320px }
.aft-footer-col h5{
  font-family:'JetBrains Mono',monospace; font-size:11px; font-weight:500;
  color:var(--aft-bark); letter-spacing:0.15em; text-transform:uppercase;
  margin:0 0 20px;
}
.aft-footer-col ul{ display:flex; flex-direction:column; gap:10px }
.aft-footer-col a{ color:var(--aft-forest); font-size:14px; transition:color .25s }
.aft-footer-col a:hover{ color:var(--aft-moss) }
.aft-footer-bottom{ display:flex; justify-content:space-between; align-items:center; padding-top:32px; font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--aft-bark); letter-spacing:0.05em; flex-wrap:wrap; gap:16px }
@media (max-width:800px){ .aft-footer-top{ grid-template-columns:1fr 1fr; gap:36px } }
@media (max-width:500px){ .aft-footer-top{ grid-template-columns:1fr } }

/* ===== INNER-PAGE COMMON HERO ===== */
.aft-page-hero{ padding:200px 0 80px; background:var(--aft-cream); position:relative }
.aft-page-hero-eyebrow{ display:flex; align-items:center; gap:14px; color:var(--aft-bark); margin-bottom:32px }
.aft-page-hero-eyebrow .aft-line{ width:32px; background:var(--aft-bark-light) }
.aft-page-hero-title{
  font-family:'Fraunces',serif;
  font-size:clamp(48px,7vw,108px);
  line-height:0.95; font-weight:300;
  letter-spacing:-0.03em; color:var(--aft-forest);
  font-variation-settings:"SOFT" 70;
  max-width:14ch;
}
.aft-page-hero-title em{ font-style:italic; color:var(--aft-moss); font-variation-settings:"SOFT" 100 }

.aft-page-body{ padding:80px 0 140px; background:var(--aft-cream) }
.aft-page-body-grid{ display:grid; grid-template-columns:5fr 7fr; gap:80px; align-items:start }
.aft-page-body-image img{ width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; border-radius:4px }
.aft-page-body-text p{ font-size:17px; line-height:1.7; color:var(--aft-forest); margin-bottom:1.4em }
.aft-page-body-text p:first-of-type{ font-family:'Fraunces',serif; font-size:clamp(22px,2.2vw,28px); line-height:1.4; font-weight:300; color:var(--aft-forest); font-variation-settings:"SOFT" 60 }
.aft-pull-quote{
  margin:48px 0 0; padding:32px 0 0;
  border-top:1px solid var(--aft-rule);
}
.aft-pull-quote p{
  font-family:'Fraunces',serif;
  font-size:clamp(22px,2vw,28px);
  font-style:italic; font-weight:300;
  color:var(--aft-moss);
  line-height:1.4; margin-bottom:18px;
  font-variation-settings:"SOFT" 90;
}
.aft-pull-quote cite{ font-style:normal; font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--aft-bark); letter-spacing:0.08em; display:flex; gap:10px; flex-wrap:wrap; align-items:center }
.aft-pull-quote cite strong{ color:var(--aft-forest); font-weight:500 }
@media (max-width:900px){ .aft-page-body-grid{ grid-template-columns:1fr; gap:48px } .aft-page-hero{ padding:140px 0 60px } .aft-page-body{ padding:50px 0 90px } }

/* ===== SERVICE PAGE ===== */
.aft-service-hero{ padding:160px 0 80px; background:var(--aft-cream-deep); position:relative; overflow:hidden }
.aft-service-hero-grid{ display:grid; grid-template-columns:6fr 6fr; gap:60px; align-items:end }
.aft-service-hero-title{
  font-family:'Fraunces',serif;
  font-size:clamp(56px,8vw,128px);
  line-height:0.92; font-weight:300;
  letter-spacing:-0.04em; color:var(--aft-forest);
  margin-top:24px;
  font-variation-settings:"SOFT" 80;
}
.aft-service-hero-lead{
  font-family:'Fraunces',serif;
  font-size:clamp(20px,1.9vw,26px);
  font-style:italic; color:var(--aft-moss);
  font-weight:300;
  margin-top:32px;
  font-variation-settings:"SOFT" 100;
  max-width:30ch;
}
.aft-service-hero-img{ position:relative; aspect-ratio:4/5; border-radius:4px; overflow:hidden }
.aft-service-hero-img img{ width:100%; height:100%; object-fit:cover; filter:saturate(0.88) }
.aft-service-bignum{
  position:absolute;
  bottom:-20px; right:-20px;
  font-family:'Fraunces',serif;
  font-size:clamp(160px,18vw,280px);
  line-height:0.8; font-style:italic; font-weight:300;
  color:var(--aft-cream-deep);
  pointer-events:none;
  font-variation-settings:"SOFT" 100;
  z-index:2;
  mix-blend-mode:multiply;
}

.aft-service-body{ padding:80px 0; background:var(--aft-cream) }
.aft-service-body-grid{ display:grid; grid-template-columns:5fr 7fr; gap:80px; align-items:start }
.aft-service-body-text p{ font-size:17px; line-height:1.7; color:var(--aft-forest); margin-bottom:1.4em }
.aft-service-body-text p:first-of-type{
  font-family:'Fraunces',serif;
  font-size:clamp(22px,2.2vw,28px);
  line-height:1.4; font-weight:300;
  color:var(--aft-forest);
  font-variation-settings:"SOFT" 60;
}
.aft-service-bullets{ display:flex; flex-direction:column; gap:0; border-top:1px solid var(--aft-rule) }
.aft-service-bullets li{ display:grid; grid-template-columns:60px 1fr; gap:24px; align-items:baseline; padding:24px 0; border-bottom:1px solid var(--aft-rule) }
.aft-bullet-num{ font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--aft-moss); letter-spacing:0.12em }
.aft-service-bullets p{ font-family:'Fraunces',serif; font-size:clamp(18px,1.6vw,22px); line-height:1.4; color:var(--aft-forest); font-weight:300; margin:0; font-variation-settings:"SOFT" 50 }
@media (max-width:900px){ .aft-service-hero-grid, .aft-service-body-grid{ grid-template-columns:1fr; gap:48px } .aft-service-hero{ padding:130px 0 60px } }

.aft-service-testimonial{ padding:100px 0; background:var(--aft-cream-deep) }

/* Service pager */
.aft-service-pager{ padding:60px 0 100px; background:var(--aft-cream-deep); border-top:1px solid var(--aft-rule) }
.aft-service-pager-grid{ display:grid; grid-template-columns:1fr 1fr; gap:32px }
.aft-pager-link{
  display:flex; align-items:center; gap:18px;
  padding:24px 28px;
  background:var(--aft-paper);
  border-radius:6px;
  transition:all .3s;
}
.aft-pager-link:hover{ background:var(--aft-cream); transform:translateY(-2px) }
.aft-pager-link strong{ display:block; font-family:'Fraunces',serif; font-size:22px; font-weight:400; color:var(--aft-forest); margin-top:4px; letter-spacing:-0.01em }
.aft-pager-link .aft-mono{ color:var(--aft-bark) }
.aft-pager-arrow{ width:44px; height:44px; border-radius:50%; border:1px solid var(--aft-rule-strong); display:flex; align-items:center; justify-content:center; color:var(--aft-forest); flex-shrink:0; transition:all .3s }
.aft-pager-link:hover .aft-pager-arrow{ background:var(--aft-forest); color:var(--aft-cream); border-color:var(--aft-forest) }
.aft-pager-next{ flex-direction:row-reverse; text-align:right }
@media (max-width:700px){ .aft-service-pager-grid{ grid-template-columns:1fr } }

/* ===== FRIENDS / PARTNERS ===== */
.aft-friends-intro{ max-width:680px; margin-bottom:80px }
.aft-friends-intro p{ font-family:'Fraunces',serif; font-size:clamp(22px,2vw,28px); line-height:1.45; font-weight:300; color:var(--aft-forest); font-variation-settings:"SOFT" 60 }
.aft-partners-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px }
.aft-partner-card{
  padding:40px 32px;
  background:var(--aft-paper);
  border-radius:6px;
  border:1px solid var(--aft-rule);
  transition:all .35s;
}
.aft-partner-card:hover{ transform:translateY(-4px); border-color:var(--aft-rule-strong) }
.aft-partner-num{ font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--aft-moss); letter-spacing:0.12em; margin-bottom:32px }
.aft-partner-name{ font-family:'Fraunces',serif; font-size:28px; font-weight:400; line-height:1.1; color:var(--aft-forest); margin-bottom:14px; letter-spacing:-0.02em }
.aft-partner-meta{ font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--aft-bark); letter-spacing:0.08em; text-transform:uppercase; display:flex; align-items:center; flex-wrap:wrap }
@media (max-width:900px){ .aft-partners-grid{ grid-template-columns:1fr } }

/* ===== CONTACT ===== */
.aft-contact-hero{ padding:160px 0 140px; background:var(--aft-cream); min-height:90vh }
.aft-contact-grid{ display:grid; grid-template-columns:5fr 7fr; gap:80px; align-items:start }
.aft-contact-title{
  font-family:'Fraunces',serif;
  font-size:clamp(80px,12vw,200px);
  line-height:0.9; font-weight:300;
  color:var(--aft-forest);
  letter-spacing:-0.05em;
  font-variation-settings:"SOFT" 80;
  margin:24px 0 40px;
}
.aft-contact-title em{ font-style:italic; color:var(--aft-moss); font-variation-settings:"SOFT" 100 }
.aft-contact-body p{ font-family:'Fraunces',serif; font-size:clamp(20px,1.9vw,24px); line-height:1.5; font-weight:300; color:var(--aft-forest); font-variation-settings:"SOFT" 60 }
.aft-contact-details{ margin-top:48px; border-top:1px solid var(--aft-rule) }
.aft-contact-row{
  display:flex; justify-content:space-between; align-items:baseline;
  padding:24px 0;
  border-bottom:1px solid var(--aft-rule);
  font-size:16px; color:var(--aft-forest);
}
.aft-contact-row .aft-mono{ color:var(--aft-bark) }
.aft-contact-row a{ font-family:'Fraunces',serif; font-size:22px; font-weight:400; transition:color .25s }
.aft-contact-row a:hover{ color:var(--aft-moss) }
.aft-map{ aspect-ratio:1/1; border-radius:6px; overflow:hidden; border:1px solid var(--aft-rule) }
.aft-map iframe{ display:block; width:100%; height:100% }
@media (max-width:900px){ .aft-contact-grid{ grid-template-columns:1fr; gap:48px } .aft-contact-hero{ padding:130px 0 80px } }

/* ===== REVEAL ANIMATIONS ===== */
.aft-reveal{ opacity:0; transform:translateY(24px); transition:opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1) }
.aft-reveal.is-in{ opacity:1; transform:translateY(0) }
.aft-delay-1{ transition-delay:.1s }
.aft-delay-2{ transition-delay:.2s }
.aft-delay-3{ transition-delay:.3s }
.aft-delay-4{ transition-delay:.4s }
.aft-delay-5{ transition-delay:.5s }
.aft-delay-6{ transition-delay:.6s }

@media (prefers-reduced-motion: reduce){
  .aft-reveal{ opacity:1; transform:none; transition:none }
  .aft-dot-pulse{ animation:none }
}

/* =====================================================================
   MOBILE NAV (hamburger + overlay)
   ===================================================================== */
.aft-nav-toggle{
  display:none;
  align-items:center; justify-content:center;
  width:42px; height:42px;
  background:transparent;
  border:1px solid var(--aft-rule);
  border-radius:99px;
  cursor:pointer;
  padding:0;
  position:relative;
  z-index:60;
  transition:background .25s;
}
.aft-nav-toggle:hover{ background:rgba(31,42,30,0.04) }
.aft-burger{
  display:block;
  width:18px; height:12px;
  position:relative;
}
.aft-burger span{
  position:absolute; left:0; right:0;
  height:1.5px;
  background:var(--aft-forest);
  border-radius:1px;
  transition:transform .3s cubic-bezier(.2,.7,.2,1), opacity .3s;
}
.aft-burger span:nth-child(1){ top:0 }
.aft-burger span:nth-child(2){ top:50%; transform:translateY(-50%) }
.aft-burger span:nth-child(3){ bottom:0 }

.aft-nav-toggle.is-open .aft-burger span:nth-child(1){ top:50%; transform:translateY(-50%) rotate(45deg) }
.aft-nav-toggle.is-open .aft-burger span:nth-child(2){ opacity:0 }
.aft-nav-toggle.is-open .aft-burger span:nth-child(3){ bottom:50%; transform:translateY(50%) rotate(-45deg) }

.aft-mobile-menu{
  position:fixed;
  inset:0;
  background:var(--aft-cream);
  z-index:55;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .35s cubic-bezier(.2,.7,.2,1), visibility .35s;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}
.aft-mobile-menu.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.aft-mobile-inner{
  padding:120px 28px 60px;
  max-width:520px;
  margin:0 auto;
  min-height:100%;
  display:flex;
  flex-direction:column;
}
.aft-mobile-links{
  list-style:none;
  padding:0;
  margin:0 0 40px;
  border-top:1px solid var(--aft-rule);
}
.aft-mobile-links > li{
  border-bottom:1px solid var(--aft-rule);
}
.aft-mobile-links > li > a,
.aft-mobile-links > li > button{
  display:flex;
  width:100%;
  background:transparent;
  border:none;
  padding:22px 0;
  font-family:'Fraunces',serif;
  font-size:32px;
  font-weight:400;
  color:var(--aft-forest) !important;
  letter-spacing:-0.02em;
  text-align:left;
  align-items:center;
  justify-content:space-between;
  cursor:pointer;
  transition:color .25s, padding-left .25s;
}
.aft-mobile-links > li > a:hover,
.aft-mobile-links > li > button:hover{
  color:var(--aft-moss) !important;
  padding-left:8px;
}
.aft-mobile-links .aft-mobile-toggle-icon{
  font-family:'JetBrains Mono',monospace;
  font-size:14px;
  color:var(--aft-moss);
  transition:transform .25s;
}
.aft-mobile-links .is-open .aft-mobile-toggle-icon{ transform:rotate(45deg) }

.aft-mobile-sub{
  list-style:none;
  padding:0 0 18px 0;
  margin:0;
  max-height:0;
  overflow:hidden;
  transition:max-height .35s cubic-bezier(.2,.7,.2,1);
}
.aft-mobile-links .is-open .aft-mobile-sub{ max-height:600px }
.aft-mobile-sub li a{
  display:block;
  padding:10px 0;
  font-family:'Manrope',sans-serif;
  font-size:16px;
  color:var(--aft-bark) !important;
  font-weight:400;
}
.aft-mobile-sub li a:hover{ color:var(--aft-forest) !important }

.aft-mobile-foot{
  margin-top:auto;
  padding-top:32px;
  border-top:1px solid var(--aft-rule);
  display:flex;
  flex-direction:column;
  gap:16px;
}
.aft-mobile-foot .aft-mobile-lang{
  display:flex;
  gap:24px;
  align-items:center;
  font-family:'JetBrains Mono',monospace;
  font-size:11px;
  letter-spacing:0.15em;
  color:var(--aft-bark);
}
.aft-mobile-foot .aft-mobile-lang a{
  color:var(--aft-bark) !important;
  padding:6px 0;
}
.aft-mobile-foot .aft-mobile-lang a.is-active{ color:var(--aft-forest) !important; font-weight:500 }
.aft-mobile-foot .aft-mobile-cta{
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  background:var(--aft-forest);
  color:var(--aft-cream) !important;
  padding:18px 26px;
  border-radius:999px;
  font-size:15px; font-weight:500;
  width:100%;
}

@media (max-width:1000px){
  .aft-nav-links{ display:none }
  .aft-nav-toggle{ display:inline-flex }
  /* Lock body scroll when menu is open */
  body.aft-menu-open{ overflow:hidden }
}
@media (min-width:1001px){
  .aft-mobile-menu{ display:none }
}

/* =====================================================================
   THEME-DEFENSE BLOCK
   These !important rules ensure that no host-theme CSS can break
   critical color/contrast pairs. Keep this at the END of the file.
   ===================================================================== */

/* Heading colors honour each section's intent, not the theme's defaults */
body.aft-page .aft-section-title,
body.aft-page .aft-section-title em{
  color:var(--aft-forest) !important;
}
body.aft-page .aft-section-title em{ color:var(--aft-moss) !important }

body.aft-page .aft-page-hero-title{ color:var(--aft-forest) !important }
body.aft-page .aft-page-hero-title em{ color:var(--aft-moss) !important }

body.aft-page .aft-service-hero-title{ color:var(--aft-forest) !important }
body.aft-page .aft-service-hero-lead{ color:var(--aft-moss) !important }

body.aft-page .aft-contact-title{ color:var(--aft-forest) !important }
body.aft-page .aft-contact-title em{ color:var(--aft-moss) !important }

body.aft-page .aft-def-term,
body.aft-page .aft-def-meaning{ color:var(--aft-forest) !important }

/* Philosophy band (dark bg) → cream text */
body.aft-page .aft-philosophy .aft-phil-quote,
body.aft-page .aft-philosophy h4{ color:var(--aft-cream) !important }
body.aft-page .aft-philosophy .aft-phil-list p{ color:rgba(245,240,230,0.75) !important }
body.aft-page .aft-philosophy .aft-phil-author strong{ color:var(--aft-cream) !important }

/* Testimonial */
body.aft-page .aft-test-quote{ color:var(--aft-forest) !important }
body.aft-page .aft-test-attr strong{ color:var(--aft-forest) !important }

/* CTA dark green band */
body.aft-page .aft-cta-content,
body.aft-page .aft-cta-title{ color:var(--aft-cream) !important }
body.aft-page .aft-cta-title em{ color:var(--aft-sage) !important }
body.aft-page .aft-cta-sub{ color:rgba(245,240,230,0.78) !important }

/* Buttons */
body.aft-page a.aft-nav-cta,
body.aft-page a.aft-nav-cta:visited{
  background:var(--aft-forest) !important;
  color:var(--aft-cream) !important;
}
body.aft-page a.aft-nav-cta:hover{ background:var(--aft-moss) !important; color:var(--aft-cream) !important }

body.aft-page a.aft-btn-primary,
body.aft-page a.aft-btn-primary:visited{
  background:var(--aft-cream) !important;
  color:var(--aft-forest) !important;
}
body.aft-page a.aft-btn-primary:hover{ background:var(--aft-sage) !important; color:var(--aft-forest) !important }

body.aft-page a.aft-btn-ghost,
body.aft-page a.aft-btn-ghost:visited{
  background:transparent !important;
  color:var(--aft-cream) !important;
  border-color:rgba(245,240,230,0.30) !important;
}
body.aft-page a.aft-btn-ghost:hover{
  background:rgba(245,240,230,0.06) !important;
  border-color:var(--aft-cream) !important;
  color:var(--aft-cream) !important;
}

body.aft-page a.aft-mobile-cta{ background:var(--aft-forest) !important; color:var(--aft-cream) !important }

/* Footer links */
body.aft-page .aft-footer a{ color:var(--aft-forest) !important }
body.aft-page .aft-footer a:hover{ color:var(--aft-moss) !important }

/* Nav links */
body.aft-page .aft-nav-links a{ color:var(--aft-forest) !important }
body.aft-page .aft-submenu li a{ color:var(--aft-forest) !important }
body.aft-page .aft-submenu li a:hover{ color:var(--aft-moss) !important }

/* Service cards */
body.aft-page a.aft-service{ background:var(--aft-paper) !important }
body.aft-page .aft-service-name{ color:var(--aft-forest) !important }
body.aft-page .aft-service-arrow{ color:var(--aft-forest) !important }
body.aft-page .aft-service:hover .aft-service-arrow{ color:var(--aft-cream) !important; background:var(--aft-forest) !important }

/* Service pager */
body.aft-page a.aft-pager-link{ background:var(--aft-paper) !important; color:var(--aft-forest) !important }
body.aft-page a.aft-pager-link strong{ color:var(--aft-forest) !important }

/* Partner cards */
body.aft-page .aft-partner-name{ color:var(--aft-forest) !important }

/* Contact rows */
body.aft-page .aft-contact-row a{ color:var(--aft-forest) !important }
body.aft-page .aft-contact-row a:hover{ color:var(--aft-moss) !important }

/* =====================================================================
   v1.2 ADDITIONS — mobile UX overhaul
   ===================================================================== */

/* Hide desktop-only elements on mobile */
@media (max-width:1000px){
  body.aft-page .aft-desktop-only{ display:none !important; }
}

/* Mobile padding general improvements */
@media (max-width:768px){
  .aft-wrap{ padding:0 24px }
}
@media (max-width:480px){
  .aft-wrap{ padding:0 20px }
}

/* ---- Hero mobile fixes ---- */
@media (max-width:1000px){
  .aft-hero{
    min-height:88vh;
    padding-top:100px;
    justify-content:center;
  }
  .aft-hero-content{ padding:40px 0 70px }
  .aft-hero-eyebrow{ margin-bottom:24px }
  .aft-hero-meta{ margin-top:32px; gap:24px }
}
@media (max-width:600px){
  .aft-hero{
    min-height:80vh;
    padding-top:90px;
  }
  .aft-hero-content{ padding:32px 0 60px }
  .aft-hero-title{ font-size:clamp(44px, 11vw, 80px) !important; line-height:0.95 !important }
  .aft-hero-meta{ flex-direction:column; align-items:flex-start }
  .aft-hero-meta-left p{ font-size:14px; line-height:1.5 }
  .aft-hero-scroll{ font-size:10px }
}

/* ---- Services section: better spacing on mobile ---- */
@media (max-width:1000px){
  .aft-services{ padding:90px 0 100px }
  .aft-services-head{ margin-bottom:48px; gap:24px }
}
@media (max-width:600px){
  .aft-services{ padding:70px 0 80px }
  .aft-section-title{ font-size:clamp(40px, 10vw, 56px) !important }
  .aft-services-head{ margin-bottom:36px }
}

/* Service cards: larger num pill, more padding around content */
.aft-service-num{
  top:20px !important;
  left:20px !important;
  padding:6px 12px !important;
  font-size:11px !important;
}
.aft-service-body{ padding:28px 24px 28px !important }
.aft-service-name{ font-size:22px !important }
@media (max-width:600px){
  .aft-service-body{ padding:24px 20px 24px !important }
  .aft-service-name{ font-size:21px !important }
}

/* ---- Definition section mobile ---- */
@media (max-width:768px){
  .aft-definition{ padding:80px 0 70px }
  .aft-def-term{ font-size:clamp(42px,12vw,68px) !important }
}

/* ---- Service hero (inner page) mobile ---- */
@media (max-width:768px){
  .aft-service-hero{ padding:120px 0 60px }
  .aft-service-hero-title{ font-size:clamp(44px, 12vw, 72px) !important; line-height:0.95 !important }
  .aft-service-bignum{ font-size:clamp(120px, 22vw, 180px) !important }
  .aft-service-body{ padding:60px 0 }
  .aft-service-bullets li{ grid-template-columns:48px 1fr; gap:16px; padding:20px 0 }
  .aft-service-bullets p{ font-size:18px !important }
}

/* ---- Page hero (about/friends) mobile ---- */
@media (max-width:768px){
  .aft-page-hero{ padding:130px 0 50px }
  .aft-page-hero-title{ font-size:clamp(44px, 11vw, 72px) !important; line-height:0.98 !important; max-width:none }
  .aft-page-body{ padding:50px 0 80px }
  .aft-page-body-text p:first-of-type{ font-size:clamp(20px, 5vw, 24px) !important }
}

/* ---- Philosophy mobile ---- */
@media (max-width:768px){
  .aft-philosophy{ padding:70px 0 80px }
  .aft-phil-quote{ font-size:clamp(24px, 6vw, 32px) !important; margin-bottom:32px }
  .aft-phil-list li{ padding:22px 0; grid-template-columns:50px 1fr; gap:18px }
}

/* ---- Testimonial mobile ---- */
@media (max-width:768px){
  .aft-testimonial{ padding:70px 0 }
  .aft-test-quote{ font-size:clamp(22px,5.5vw,30px) !important; margin-bottom:28px }
  .aft-service-testimonial{ padding:60px 0 }
}

/* ---- CTA band mobile ---- */
@media (max-width:768px){
  .aft-cta-grid{ grid-template-columns:1fr; min-height:auto }
  .aft-cta-image{ min-height:260px }
  .aft-cta-content{ padding:60px 24px 70px }
  .aft-cta-title{ font-size:clamp(36px, 8vw, 52px) !important; line-height:1.0 !important }
  .aft-cta-sub{ font-size:15px; margin-bottom:32px }
  .aft-cta-actions{ flex-direction:column; align-items:stretch }
  .aft-cta-actions a{ justify-content:center }
}

/* ---- Contact mobile ---- */
@media (max-width:768px){
  .aft-contact-hero{ padding:130px 0 80px; min-height:auto }
  .aft-contact-title{ font-size:clamp(72px, 22vw, 140px) !important }
  .aft-contact-grid{ gap:36px }
  .aft-map{ aspect-ratio:4/3 }
}

/* ---- Footer mobile ---- */
@media (max-width:768px){
  .aft-footer{ padding:70px 0 100px }
  .aft-footer-top{ gap:28px; padding-bottom:40px }
  .aft-footer-bottom{ font-size:10px; flex-direction:column; align-items:flex-start; gap:8px; padding-top:24px }
}
/* Extra bottom padding for sticky CTA on mobile */
@media (max-width:1000px){
  .aft-footer{ padding-bottom:120px }
}

/* =====================================================================
   MOBILE MENU REDESIGN
   ===================================================================== */
.aft-mobile-menu{
  background:var(--aft-cream);
}
.aft-mobile-inner{
  padding:24px 28px 60px !important;
  max-width:540px;
  margin:0 auto;
  min-height:100%;
  display:flex;
  flex-direction:column;
  position:relative;
}

/* CLOSE BUTTON — big and obvious */
.aft-mobile-close{
  position:absolute;
  top:18px;
  right:24px;
  width:44px; height:44px;
  border-radius:50%;
  background:var(--aft-forest);
  color:var(--aft-cream) !important;
  border:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
  z-index:5;
  transition:transform .25s, background .25s;
}
.aft-mobile-close:hover{
  background:var(--aft-moss);
  transform:rotate(90deg);
}
.aft-mobile-close svg{ color:var(--aft-cream) }

/* MOBILE LOGO */
.aft-mobile-logo-wrap{
  margin:48px 0 32px;
}
.aft-mobile-logo-wrap img{
  height:32px;
  width:auto;
}

/* LANGUAGE FLAGS ROW */
.aft-mobile-lang-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin:0 0 32px;
}
.aft-mobile-lang-btn{
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px 16px;
  background:var(--aft-paper);
  border:1px solid var(--aft-rule);
  border-radius:8px;
  font-size:14px;
  font-weight:500;
  color:var(--aft-forest) !important;
  transition:all .25s;
}
.aft-mobile-lang-btn:hover{
  border-color:var(--aft-rule-strong);
  background:var(--aft-cream-deep);
}
.aft-mobile-lang-btn.is-active{
  background:var(--aft-forest);
  color:var(--aft-cream) !important;
  border-color:var(--aft-forest);
}
.aft-mobile-lang-btn.is-active .aft-flag-label{ color:var(--aft-cream) }
.aft-flag{
  display:inline-flex;
  width:32px; height:22px;
  border-radius:3px;
  overflow:hidden;
  flex-shrink:0;
  box-shadow:0 0 0 1px rgba(0,0,0,0.08);
}
.aft-flag svg{ display:block; width:100%; height:100%; object-fit:cover }
.aft-flag-label{
  font-family:'Manrope',sans-serif;
}

/* MAIN MOBILE LINKS */
.aft-mobile-links{
  list-style:none;
  padding:0;
  margin:0;
  border-top:1px solid var(--aft-rule);
}
.aft-mobile-links > li{ border-bottom:1px solid var(--aft-rule) }
.aft-mobile-links > li > a,
.aft-mobile-links > li > button{
  display:flex;
  width:100%;
  background:transparent;
  border:none;
  padding:22px 0;
  font-family:'Fraunces',serif;
  font-size:30px;
  font-weight:400;
  color:var(--aft-forest) !important;
  letter-spacing:-0.02em;
  text-align:left;
  align-items:center;
  justify-content:space-between;
  cursor:pointer;
  transition:color .25s, padding-left .25s;
}
.aft-mobile-links > li > a:hover,
.aft-mobile-links > li > button:hover{
  color:var(--aft-moss) !important;
  padding-left:6px;
}
.aft-mobile-toggle-icon{
  font-family:'JetBrains Mono',monospace;
  font-size:18px;
  color:var(--aft-moss);
  transition:transform .3s;
}
.aft-mobile-links .is-open .aft-mobile-toggle-icon{ transform:rotate(45deg) }
.aft-mobile-sub{
  list-style:none;
  padding:0 0 14px;
  margin:-8px 0 0;
  max-height:0;
  overflow:hidden;
  transition:max-height .35s cubic-bezier(.2,.7,.2,1);
}
.aft-mobile-links .is-open .aft-mobile-sub{ max-height:600px }
.aft-mobile-sub li a{
  display:block;
  padding:10px 0;
  font-family:'Manrope',sans-serif;
  font-size:16px;
  color:var(--aft-bark) !important;
  font-weight:400;
  text-transform:none;
}
.aft-mobile-sub li a:hover{ color:var(--aft-forest) !important; padding-left:4px }

/* =====================================================================
   STICKY BOTTOM CTA (mobile only)
   ===================================================================== */
.aft-sticky-cta{
  position:fixed;
  bottom:16px;
  left:16px;
  right:16px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:18px 24px;
  background:var(--aft-forest);
  color:var(--aft-cream) !important;
  border-radius:999px;
  font-size:15px;
  font-weight:500;
  font-family:'Manrope',sans-serif;
  letter-spacing:0.01em;
  z-index:45;
  opacity:0;
  pointer-events:none;
  transform:translateY(24px);
  transition:opacity .35s cubic-bezier(.2,.7,.2,1), transform .35s cubic-bezier(.2,.7,.2,1);
  box-shadow:0 10px 30px rgba(31,42,30,0.25), 0 2px 6px rgba(31,42,30,0.15);
}
.aft-sticky-cta.is-visible{
  opacity:1;
  pointer-events:auto;
  transform:translateY(0);
}
.aft-sticky-cta-arrow{
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
@media (min-width:1001px){
  .aft-sticky-cta{ display:none !important }
}
@media (max-width:1000px){
  body.aft-menu-open .aft-sticky-cta{
    opacity:0 !important;
    pointer-events:none !important;
  }
}

/* =====================================================================
   PROCESS & VALUES SECTIONS (new in v1.2)
   ===================================================================== */
.aft-process,
.aft-values{
  padding:120px 0;
  background:var(--aft-cream);
  border-top:1px solid var(--aft-rule);
}
.aft-process{ background:var(--aft-cream-deep) }
.aft-process-head,
.aft-values-head{
  max-width:640px;
  margin-bottom:64px;
}
.aft-section-eyebrow{
  display:flex;
  align-items:center;
  gap:14px;
  color:var(--aft-bark);
  margin-bottom:18px;
}
.aft-section-eyebrow .aft-line{
  width:32px;
  background:var(--aft-bark-light);
}

.aft-process-steps,
.aft-values-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:32px;
}
.aft-values-grid{ grid-template-columns:repeat(2,1fr) }

.aft-process-step,
.aft-value-card{
  padding:36px 32px;
  background:var(--aft-paper);
  border-radius:6px;
  border:1px solid var(--aft-rule);
  transition:transform .35s, border-color .35s;
}
.aft-process-step:hover,
.aft-value-card:hover{
  transform:translateY(-3px);
  border-color:var(--aft-rule-strong);
}

.aft-process-num,
.aft-value-num{
  font-family:'JetBrains Mono',monospace;
  font-size:11px;
  color:var(--aft-moss);
  letter-spacing:0.12em;
  margin-bottom:28px;
}
.aft-process-step-title,
.aft-value-title{
  font-family:'Fraunces',serif;
  font-size:26px;
  font-weight:400;
  line-height:1.1;
  color:var(--aft-forest) !important;
  margin:0 0 14px;
  letter-spacing:-0.02em;
}
.aft-process-step-body,
.aft-value-body{
  font-size:15px;
  line-height:1.65;
  color:var(--aft-bark);
  margin:0;
}

@media (max-width:1000px){
  .aft-process-steps{ grid-template-columns:1fr; gap:20px }
  .aft-values-grid{ grid-template-columns:1fr; gap:20px }
  .aft-process, .aft-values{ padding:80px 0 }
  .aft-process-head, .aft-values-head{ margin-bottom:40px }
  .aft-process-step, .aft-value-card{ padding:28px 24px }
  .aft-process-step-title, .aft-value-title{ font-size:24px }
}
