*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --sand:#F2F6FA;--terra:#1E3A5F;--terra-l:#E8A03D;--terra-d:#142A45;
  --sage:#B0791E;--sage-l:#26466E;--cream:#FFFFFF;
  --char:#1B2733;--wgray:#5C6775;--bdr:rgba(30,58,95,0.10)
}
html{scroll-behavior:smooth;overflow-x:clip}
body{font-family:'DM Sans',sans-serif;background:var(--cream);color:var(--char);line-height:1.65;font-size:16px;overflow-x:clip;max-width:100%}

/* NAV */
nav{position:sticky;top:0;z-index:100;background:rgba(30,58,95,0.97);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid rgba(255,255,255,0.08);padding:0 5%;display:flex;align-items:center;justify-content:space-between;height:88px}
.logo-wrap{display:flex;align-items:center;gap:16px;text-decoration:none}
/* Logo is a wide wordmark (~4.4:1), so 52px tall renders ~229px wide — a
   normal header footprint. NOTE: three other values are tied to the nav
   height and must move with it: `section{scroll-margin-top}` (keeps anchor
   jumps from landing under the sticky bar), `.faq-sticky{top}`, and the
   nav/logo pairs in the two media queries at the bottom of this file. */
.logo-img{height:52px;width:auto;object-fit:contain}
.logo-text{font-family:'Poppins',sans-serif;font-size:1.5rem;font-weight:700;color:var(--terra);line-height:1.2}
.logo-sub{font-size:.78rem;color:var(--wgray);letter-spacing:.06em;text-transform:uppercase;display:block;font-weight:400}
.nav-links{display:flex;gap:1.75rem;list-style:none}
.nav-links a{font-size:.85rem;font-weight:500;color:rgba(255,255,255,0.82);text-decoration:none;transition:color .2s}
.nav-links a:hover{color:var(--terra-l)}
.nav-cta{background:var(--terra-l);color:#16273D;border:none;padding:.6rem 1.4rem;border-radius:10px;font-family:'DM Sans',sans-serif;font-size:.85rem;font-weight:500;cursor:pointer;transition:background .2s,transform .15s;text-decoration:none;display:inline-block}
.nav-cta:hover{background:#D4912B;transform:translateY(-1px)}
.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;padding:4px}
.hamburger span{width:22px;height:2px;background:white;border-radius:2px;display:block;transition:all .3s}
.mobile-menu{display:none;position:absolute;top:100%;left:0;right:0;z-index:99;flex-direction:column;background:#1E3A5F;border-top:1px solid rgba(255,255,255,0.08);padding:1rem 5%;gap:.25rem}
.mobile-menu a{font-size:.92rem;font-weight:500;color:rgba(255,255,255,0.85);text-decoration:none;padding:.6rem 0;border-bottom:1px solid rgba(255,255,255,0.1)}
.mobile-menu a:last-child{border-bottom:none}
.mobile-menu .m-cta{margin-top:.75rem;background:var(--terra-l);color:#16273D;padding:.8rem 1.5rem;border-radius:10px;text-align:center;font-weight:600;border:none}
/* Safety net: the stacked mobile menu must never appear on desktop, even if an inline display style is left over from resizing the window while it was open. The hamburger only exists at <=1024px, so above that the menu stays hidden. */
@media(min-width:1025px){.mobile-menu{display:none !important}}

/* FLOATING CTA */
.float-cta{position:fixed;bottom:1.5rem;right:1.5rem;z-index:999;display:inline-flex;align-items:center;gap:.55rem;background:var(--terra);color:white;padding:.85rem 1.5rem;border-radius:12px;font-family:'DM Sans',sans-serif;font-size:.9rem;font-weight:600;text-decoration:none;box-shadow:0 8px 24px rgba(30,58,95,0.42);transition:background .2s,transform .25s,box-shadow .2s,opacity .25s,visibility .25s}
.float-cta:hover{background:var(--terra-d);transform:translateY(-2px);box-shadow:0 12px 30px rgba(30,58,95,0.5)}
.float-cta svg{flex-shrink:0}
.float-cta.is-hidden{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(12px)}

/* HERO */
.hero{padding:4rem 5%;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:4rem;background:var(--sand);position:relative;overflow:hidden}
.hero::after{content:'';position:absolute;bottom:-100px;right:-100px;width:500px;height:500px;border-radius:50%;background:radial-gradient(circle,rgba(30,58,95,0.08) 0%,transparent 70%);pointer-events:none}
.hero-badge{display:inline-flex;align-items:center;gap:6px;background:#EAF1F8;border:1px solid var(--bdr);border-radius:50px;padding:.4rem 1rem;font-size:.76rem;font-weight:600;color:var(--terra);margin-bottom:1.5rem}
.hero-badge span{width:7px;height:7px;background:var(--terra-l);border-radius:50%;display:inline-block;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}
h1{font-family:'Poppins',sans-serif;font-size:clamp(2rem,3.8vw,3.3rem);font-weight:700;line-height:1.15;color:var(--char);margin-bottom:1.2rem}
h1 em{color:#D4912B;font-style:normal}
.hero-sub{font-size:1rem;color:var(--wgray);max-width:480px;margin-bottom:2rem;line-height:1.8}
.hero-actions{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:2.5rem}
.btn-p{background:var(--terra);color:white;border:none;padding:.82rem 1.9rem;border-radius:10px;font-family:'DM Sans',sans-serif;font-size:.92rem;font-weight:500;cursor:pointer;transition:background .2s,transform .15s;text-decoration:none;display:inline-block}
.btn-p:hover{background:var(--terra-d);transform:translateY(-2px)}
.btn-s{background:transparent;color:var(--char);border:1.5px solid var(--bdr);padding:.82rem 1.9rem;border-radius:10px;font-family:'DM Sans',sans-serif;font-size:.92rem;font-weight:500;cursor:pointer;transition:border-color .2s,color .2s,transform .15s;text-decoration:none;display:inline-block}
.btn-s:hover{border-color:var(--terra);color:var(--terra);transform:translateY(-2px)}
.hero-stats{display:flex;gap:2.5rem}
.stat-num{font-family:'Poppins',sans-serif;font-size:1.9rem;font-weight:700;color:var(--terra)}
.stat-lbl{font-size:.7rem;color:var(--wgray);font-weight:500;letter-spacing:.05em;text-transform:uppercase}
.hero-img-wrap{position:relative;display:flex;align-items:center;justify-content:center}
.hero-main-img{width:100%;max-width:580px;border-radius:24px;object-fit:cover;aspect-ratio:4/3;border:1px solid var(--bdr);box-shadow:0 24px 60px rgba(30,58,95,0.1)}
.hero-card-float{position:absolute;bottom:-10px;left:-10px;background:white;border-radius:16px;border:1px solid var(--bdr);padding:1rem 1.2rem;box-shadow:0 12px 40px rgba(30,58,95,0.1);max-width:220px}
.tutor-av{width:40px;height:40px;border-radius:50%;background:var(--terra);display:flex;align-items:center;justify-content:center;font-family:'Poppins',sans-serif;font-size:1rem;color:white;flex-shrink:0}
.esa-hero-badge{position:absolute;top:20px;right:-10px;background:white;border:1px solid rgba(232,160,61,0.45);border-radius:12px;padding:.6rem .9rem;box-shadow:0 8px 24px rgba(30,58,95,0.09);display:flex;align-items:center;gap:.5rem;font-size:.75rem;font-weight:600;color:#9A6510}
.esa-dot{width:8px;height:8px;border-radius:50%;background:#E8A03D}

/* TRUST BAR */
.trust-bar{background:var(--sand);border-top:1px solid var(--bdr);border-bottom:1px solid var(--bdr);padding:1.1rem 5%}
.trust-inner{max-width:1150px;margin:0 auto;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem 2.5rem}
.trust-item{display:flex;align-items:center;gap:.55rem;font-size:.85rem;font-weight:500;color:var(--char)}
.trust-item svg{flex-shrink:0}
.trust-sep{width:1px;height:18px;background:var(--bdr)}
@media(max-width:640px){.trust-sep{display:none}.trust-inner{gap:.7rem 1.5rem}.trust-item{font-size:.8rem}}

/* SECTIONS */
section{padding:5rem 5%;scroll-margin-top:100px}
.sec-lbl{font-size:.72rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--terra);margin-bottom:.7rem}
h2{font-family:'Poppins',sans-serif;font-size:clamp(1.6rem,2.8vw,2.3rem);font-weight:700;line-height:1.2;margin-bottom:1rem;color:var(--char)}
.sec-intro{font-size:.97rem;color:var(--wgray);max-width:560px;line-height:1.8}

/* SERVICES */
.svc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;margin:3rem auto 0;max-width:1200px}
.svc-card{border-radius:16px;border:1px solid var(--bdr);overflow:hidden;background:white;transition:box-shadow .25s,transform .25s}
.svc-card:hover{box-shadow:0 16px 50px rgba(30,58,95,0.1);transform:translateY(-4px)}
.svc-img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.svc-body{padding:1.4rem}
.svc-title{font-family:'Poppins',sans-serif;font-size:1.05rem;font-weight:600;margin-bottom:.45rem;color:var(--char)}
.svc-desc{font-size:.85rem;color:var(--wgray);line-height:1.75}

/* ABOUT */
.about{background:var(--sand)}
.about-inner{max-width:1150px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center}
.about-img{width:100%;max-width:500px;justify-self:end;border-radius:20px;object-fit:cover;aspect-ratio:1/1;border:1px solid var(--bdr);box-shadow:0 20px 60px rgba(30,58,95,0.1)}
.atag{display:inline-block;background:rgba(30,58,95,0.1);color:var(--terra);font-size:.72rem;font-weight:600;padding:.28rem .75rem;border-radius:50px;letter-spacing:.04em;text-transform:uppercase;margin-bottom:.9rem}
.cred-row{display:flex;align-items:flex-start;gap:.7rem;padding:.7rem;background:white;border-radius:10px;border:1px solid var(--bdr);margin-bottom:.55rem}
.cri{width:32px;height:32px;min-width:32px;border-radius:8px;background:var(--sage-l);display:flex;align-items:center;justify-content:center}

/* WHY */
.why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin:3rem auto 0;max-width:1200px}
.why-item{padding:1.6rem;border:1px solid var(--bdr);border-radius:16px;position:relative;overflow:hidden;background:white;transition:box-shadow .2s,transform .2s}
.why-item:hover{box-shadow:0 10px 36px rgba(30,58,95,0.08);transform:translateY(-2px)}
.why-item::before{content:'';position:absolute;top:0;left:0;width:4px;height:100%;background:var(--terra)}
.why-num{font-family:'Poppins',sans-serif;font-size:2.6rem;font-weight:700;color:var(--terra);line-height:1;margin-bottom:.7rem}
.why-title{font-family:'Poppins',sans-serif;font-size:.97rem;font-weight:600;margin-bottom:.45rem;color:var(--char)}
.why-desc{font-size:.83rem;color:var(--wgray);line-height:1.7}

/* HOW IT WORKS */
.how{background:var(--sand)}
.how-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:1.25rem;margin:3rem auto 0;max-width:1300px;position:relative}
.how-step{position:relative;padding:1.5rem 1.25rem;background:white;border:1px solid var(--bdr);border-radius:16px;text-align:center;transition:box-shadow .25s,transform .25s}
.how-step:hover{box-shadow:0 14px 40px rgba(30,58,95,0.08);transform:translateY(-3px)}
.how-circle{width:46px;height:46px;border-radius:50%;background:var(--terra);color:white;font-family:'Poppins',sans-serif;font-size:1.15rem;font-weight:700;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;box-shadow:0 6px 16px rgba(30,58,95,0.3)}
.how-title{font-family:'Poppins',sans-serif;font-size:.95rem;font-weight:600;margin-bottom:.5rem;color:var(--char)}
.how-desc{font-size:.8rem;color:var(--wgray);line-height:1.7}

/* ESA BAND */
.esa-band{background:linear-gradient(135deg,#1E3A5F 0%,#142A45 100%);padding:3rem 5%;display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap}
.esa-band h3{font-family:'Poppins',sans-serif;font-size:1.5rem;font-weight:700;color:white;margin-bottom:.5rem}
.esa-band p{font-size:.9rem;color:rgba(255,255,255,0.78);max-width:500px;line-height:1.7}
.esa-pill{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,0.15);border:1px solid rgba(255,255,255,0.25);border-radius:50px;padding:.35rem .9rem;font-size:.75rem;font-weight:600;color:white;margin-bottom:.75rem}
.btn-esa{background:#E8A03D;color:#16273D;border:none;padding:.8rem 1.8rem;border-radius:10px;font-family:'DM Sans',sans-serif;font-size:.9rem;font-weight:600;cursor:pointer;transition:transform .15s,box-shadow .15s;text-decoration:none;display:inline-block;white-space:nowrap}
.btn-esa:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,0.2)}

/* TESTIMONIALS */
.testi{background:#FFFFFF}
.testi .sec-lbl{color:var(--terra)}
.testi h2{color:var(--char)}
.testi .sec-intro{color:var(--wgray)}
.testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:3rem}
.testi-card{background:#fff;border:1px solid var(--bdr);border-radius:16px;padding:1.6rem;box-shadow:0 4px 16px rgba(30,58,95,0.04);transition:box-shadow .25s,transform .25s}
.testi-card:hover{box-shadow:0 14px 40px rgba(30,58,95,0.1);transform:translateY(-3px)}
.stars{display:flex;gap:3px;margin-bottom:.9rem}
.star{width:13px;height:13px;background:var(--terra-l);clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}
.testi-text{font-size:.87rem;color:var(--char);line-height:1.8;margin-bottom:1.1rem;font-style:italic}
.testi-author{font-size:.78rem;font-weight:600;color:var(--terra)}

/* FAQ */
.faq-wrap{display:grid;grid-template-columns:1fr 2fr;gap:5rem;align-items:start}
.faq-sticky{position:sticky;top:110px}
.faq-list{display:flex;flex-direction:column;gap:.9rem}
.faq-item{border:1px solid var(--bdr);border-radius:14px;overflow:hidden;background:white}
.faq-q{width:100%;background:none;border:none;padding:1.1rem 1.3rem;text-align:left;font-family:'DM Sans',sans-serif;font-size:.9rem;font-weight:500;color:var(--char);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem;transition:background .2s}
.faq-q:hover{background:var(--cream)}
.faq-icon{width:24px;height:24px;min-width:24px;border-radius:50%;border:1.5px solid var(--bdr);display:flex;align-items:center;justify-content:center;transition:transform .25s,background .2s,border-color .2s;flex-shrink:0}
.faq-icon.open{transform:rotate(45deg);background:var(--terra);border-color:var(--terra)}
.faq-icon.open line{stroke:white}
.faq-a{max-height:0;overflow:hidden;transition:max-height .35s ease,padding .3s}
.faq-a.open{max-height:400px;padding:0 1.3rem 1.1rem}
.faq-a p{font-size:.86rem;color:var(--wgray);line-height:1.8}
.esa-badge-sm{display:inline-flex;align-items:center;gap:5px;background:rgba(232,160,61,0.14);border:1px solid rgba(232,160,61,0.4);border-radius:50px;padding:.25rem .75rem;font-size:.72rem;font-weight:600;color:#9A6510;margin-bottom:.6rem}

/* CONTACT FORM */
.contact-sec{background:var(--cream)}
.contact-wrap{display:grid;grid-template-columns:1fr 1.2fr;gap:4rem;align-items:start;margin-top:2.5rem}
.contact-form{background:white;border:1px solid var(--bdr);border-radius:20px;padding:2rem;box-shadow:0 14px 40px rgba(30,58,95,0.06)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}
.form-field{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1rem}
.form-field label{font-size:.78rem;font-weight:500;color:var(--char);letter-spacing:.02em}
.form-field input,.form-field select,.form-field textarea{font-family:'DM Sans',sans-serif;font-size:.93rem;color:var(--char);background:var(--sand);border:1px solid var(--bdr);border-radius:10px;padding:.75rem .9rem;transition:border-color .2s,background .2s;width:100%}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:none;border-color:var(--terra);background:white}
.form-field textarea{resize:vertical;min-height:110px;font-family:'DM Sans',sans-serif}
.form-submit{width:100%;background:var(--terra);color:white;border:none;padding:.95rem;border-radius:10px;font-family:'DM Sans',sans-serif;font-size:.95rem;font-weight:600;cursor:pointer;transition:background .2s,transform .15s;margin-top:.5rem}
.form-submit:hover{background:var(--terra-d);transform:translateY(-2px)}
.form-note{font-size:.74rem;color:var(--wgray);margin-top:.85rem;text-align:center;line-height:1.6}
.form-success{display:none;padding:1rem;background:#EAF1F8;border:1px solid rgba(30,58,95,0.18);border-radius:10px;color:var(--terra);font-size:.85rem;margin-bottom:1rem}
.form-success.show{display:block}

/* CTA */
.cta-sec{background:#244269;padding:5rem 5%;text-align:center}
.cta-sec h2{color:white;margin-bottom:1rem}
.cta-sec p{color:rgba(255,255,255,0.88);font-size:.97rem;max-width:540px;margin:0 auto 2.25rem;line-height:1.8}
.btn-w{background:white;color:var(--terra);border:none;padding:.88rem 2.3rem;border-radius:10px;font-family:'DM Sans',sans-serif;font-size:.97rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s;text-decoration:none;display:inline-block}
.btn-w:hover{transform:translateY(-2px);box-shadow:0 12px 32px rgba(0,0,0,0.18)}
.ci{display:flex;justify-content:center;gap:2.5rem;margin-top:2.25rem;flex-wrap:wrap}
.ci-item{display:flex;align-items:center;gap:.55rem;color:rgba(255,255,255,0.85);font-size:.87rem;text-decoration:none}
.ci-item:hover{color:white}

/* ESA PAGE */
.page-hero{padding:5rem 5% 3rem;background:linear-gradient(135deg,#1E3A5F 0%,#142A45 100%);color:white;text-align:center}
.page-hero .sec-lbl{color:rgba(255,255,255,0.7)}
.page-hero h1{color:white;font-size:clamp(2rem,3.5vw,3rem);margin-bottom:1.2rem}
.page-hero .lead{font-size:1.05rem;color:rgba(255,255,255,0.85);max-width:680px;margin:0 auto 2rem;line-height:1.7}
.esa-page-section{padding:4rem 5%}
.esa-page-section.alt{background:var(--sand)}
.esa-page-section h2{margin-bottom:1.5rem}
.esa-page-section p{font-size:.97rem;color:var(--char);line-height:1.85;margin-bottom:1rem;max-width:780px}
.esa-page-section ul{list-style:none;padding:0;margin:1.5rem 0;max-width:780px}
.esa-page-section ul li{padding:.85rem 1rem .85rem 2.6rem;background:white;border:1px solid var(--bdr);border-radius:10px;margin-bottom:.6rem;font-size:.92rem;color:var(--char);line-height:1.7;position:relative}
.esa-page-section.alt ul li{background:white}
.esa-page-section ul li::before{content:'';position:absolute;left:.95rem;top:1.1rem;width:18px;height:18px;border-radius:50%;background:var(--sage-l);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path d='M2 6L5 9L10 3' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' fill='none'/></svg>");background-repeat:no-repeat;background-position:center}
.esa-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin-top:2.5rem;max-width:1100px}
.esa-step{background:white;border:1px solid var(--bdr);border-radius:16px;padding:1.5rem;position:relative}
.esa-step-num{font-family:'Poppins',sans-serif;font-size:2.8rem;font-weight:700;color:var(--terra);line-height:1;margin-bottom:.5rem}
.esa-step-title{font-family:'Poppins',sans-serif;font-size:1.05rem;font-weight:600;margin-bottom:.5rem;color:var(--char)}
.esa-step-desc{font-size:.86rem;color:var(--wgray);line-height:1.75}

/* FOOTER */
footer{background:#1E3A5F;padding:3rem 5% 2rem}
.footer-top{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:3rem;margin-bottom:2.5rem;padding-bottom:2.5rem;border-bottom:1px solid rgba(255,255,255,0.08)}
.footer-brand .logo-text{color:white}
.footer-brand .logo-sub{color:rgba(255,255,255,0.4)}
.footer-desc{font-size:.83rem;color:rgba(255,255,255,0.45);line-height:1.75;margin-top:.75rem;max-width:260px}
.footer-col h4{font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,0.35);margin-bottom:1rem}
.footer-col a{display:block;font-size:.83rem;color:rgba(255,255,255,0.55);text-decoration:none;margin-bottom:.55rem;transition:color .2s}
.footer-col a:hover{color:var(--terra-l)}
.footer-col p{font-size:.83rem;color:rgba(255,255,255,0.55);margin-bottom:.5rem;line-height:1.6}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;font-size:.75rem;color:rgba(255,255,255,0.3)}
.footer-bottom a{color:rgba(255,255,255,0.3);text-decoration:none}
.footer-bottom a:hover{color:var(--terra-l)}

/* INLINE LINKS IN BODY COPY
   Bare inline links inside prose had no colour rule anywhere in this file, so
   they fell back to the browser default (#0000EE). Inside the navy ESA band
   that is dark-blue-on-dark-navy — effectively invisible; on the white/sand
   sections it was legible but off-brand.

   Scoped deliberately: nav, mobile menu and the footer link columns already
   have their own `a` rules at the SAME specificity (0,1,1), so a blanket
   `a:not([class])` appended here would silently override them. Buttons and
   chrome links carry classes; `:not([class])` keeps this to prose only.
   Contrast verified against WCAG AA (4.5:1 for body text). */

/* --- On the dark navy bands: gold accent (6.6:1 on #142A45, 5.2:1 on #1E3A5F) ---
   .esa-band is the one that was visibly broken. .page-hero has no inline links
   today, but it uses the same dark gradient, so it's included as a guard rail —
   any link added there later would otherwise be invisible for the same reason. */
.esa-band p a:not([class]),
.page-hero .lead a:not([class]){
  color:var(--terra-l);
  text-decoration:underline;
  text-underline-offset:2px;
  text-decoration-thickness:1px;
  transition:color .2s,text-decoration-thickness .2s
}
.esa-band p a:not([class]):hover,
.page-hero .lead a:not([class]):hover{
  color:#F5B95C;
  text-decoration-thickness:2px
}

/* --- On light sections: brand navy (11.5:1 on white) --- */
.sec-intro a:not([class]),
.esa-page-section p a:not([class]),
.esa-page-section li a:not([class]){
  color:var(--terra);
  text-decoration:underline;
  text-underline-offset:2px;
  text-decoration-thickness:1px;
  font-weight:500;
  transition:color .2s,text-decoration-thickness .2s
}
.sec-intro a:not([class]):hover,
.esa-page-section p a:not([class]):hover,
.esa-page-section li a:not([class]):hover,
.esa-step-desc a:not([class]):hover{
  color:var(--terra-d);
  text-decoration-thickness:2px
}

/* --- Blog card titles: heading links, so no underline until hover --- */
.blog-card h3 a:not([class]){
  color:var(--terra);
  text-decoration:none;
  transition:color .2s
}
.blog-card h3 a:not([class]):hover{
  color:var(--sage);
  text-decoration:underline;
  text-underline-offset:3px
}

/* --- Keyboard focus: make the focus ring visible on both palettes --- */
.esa-band a:focus-visible,
.page-hero a:focus-visible,
footer a:focus-visible{outline:2px solid var(--terra-l);outline-offset:3px;border-radius:2px}
.esa-page-section a:focus-visible,
.sec-intro a:focus-visible,
.blog-card a:focus-visible{outline:2px solid var(--terra);outline-offset:3px;border-radius:2px}

/* RESPONSIVE */
@media(max-width:900px){
  .hero{grid-template-columns:1fr;min-height:auto;padding:4rem 5%}
  .hero-img-wrap{display:none}
  .about-inner{grid-template-columns:1fr;gap:2.5rem}
  .about-img{justify-self:center;max-width:420px}
  .why-grid{grid-template-columns:1fr 1fr}
  .testi-grid{grid-template-columns:1fr}
  .faq-wrap{grid-template-columns:1fr;gap:2rem}
  .faq-sticky{position:static}
  .footer-top{grid-template-columns:1fr 1fr;gap:2rem}
  .svc-grid{grid-template-columns:1fr}
  .how-steps{grid-template-columns:repeat(2,1fr)}
  .contact-wrap{grid-template-columns:1fr;gap:2.5rem}
  .esa-steps{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:900px){
  nav{height:78px}
  .logo-img{height:46px}
  .logo-text{font-size:1.15rem}
  .logo-sub{font-size:.66rem}
}
@media(max-width:1024px){
  .nav-links,.nav-cta{display:none}
  .hamburger{display:flex}
}
@media(max-width:640px){
  .float-cta{bottom:1rem;right:1rem;padding:.7rem 1.1rem;font-size:.82rem}
  .why-grid{grid-template-columns:1fr}
  .footer-top{grid-template-columns:1fr}
  .hero-stats{gap:1.5rem}
  .esa-band{flex-direction:column}
  .how-steps{grid-template-columns:1fr}
  .form-row{grid-template-columns:1fr}
  .esa-steps{grid-template-columns:1fr}
  nav{height:68px}
  .logo-img{height:40px}
}
