/*
Theme Name: Budding Gems 1.0
Theme URI: https://buddinggems.co.uk
Author: OzoneWebs
Author URI: https://ozonewebs.com
Description: Custom WordPress theme for Budding Gems — specialist learning programmes, SEND consultancy and advocacy, and expert training. Burgundy/blue/white brand system (70% white, 20% burgundy, 10% blue), premium, warm and spacious.
Version: 1.0.9
Requires at least: 6.0
Requires PHP: 7.4
License: Proprietary
Text Domain: budding-gems
*/

/* ============ Brand tokens (per client brief) ============ */
:root{
  --burgundy:#9D1F07;        /* primary — headings, primary buttons, key CTAs */
  --burgundy-deep:#7d1805;
  --blue:#6BB3CE;            /* accent — links, icons, dividers, hover states */
  --blue-deep:#4d97b4;
  --blue-pale:#EFF7FA;       /* pale blue panels / callouts */
  --white:#ffffff;           /* main backgrounds — keep dominant */
  --ink:#2a2a2e;
  --muted:#5f6570;
  --line:#e9ecef;
  --radius:16px;
  --shadow:0 14px 36px rgba(42,42,46,.09);
  --max:1160px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
}
body{
  font-family:'Inter',system-ui,sans-serif;font-size:16.5px;line-height:1.8;
  color:var(--ink);background:var(--white);-webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--blue-deep);text-decoration:none;transition:color .2s}
a:hover{color:var(--burgundy)}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:4px}
h1,h2,h3,h4{font-family:'Fraunces',serif;font-weight:600;line-height:1.18;color:var(--burgundy)}
h1{font-size:clamp(36px,5vw,56px);letter-spacing:-.01em}
h2{font-size:clamp(28px,3.6vw,40px)}
h3{font-size:clamp(19px,2.2vw,24px)}
.container{max-width:var(--max);margin:0 auto;padding-left:24px;padding-right:24px}
.section{padding-top:92px;padding-bottom:92px}
.section-pale{background:var(--blue-pale)}
@media (max-width:768px){
  .section{padding-top:56px;padding-bottom:56px}
  .container{padding-left:18px;padding-right:18px}
}
.eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-size:12.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  color:var(--blue-deep);margin-bottom:16px;
}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--blue);border-radius:2px}
.section-head{max-width:700px;margin-bottom:48px}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center}
.section-head.center .eyebrow{justify-content:center}
.section-head p{color:var(--muted);margin-top:16px}

/* ============ Buttons ============ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  min-height:52px;padding:14px 32px;border-radius:999px;cursor:pointer;
  font-family:'Inter',sans-serif;font-size:15.5px;font-weight:600;border:2px solid transparent;
  transition:background .2s,color .2s,border-color .2s,transform .15s,box-shadow .2s;
}
.btn:active{transform:scale(.98)}
.btn-primary{background:var(--burgundy);color:#fff}
.btn-primary:hover{background:var(--burgundy-deep);color:#fff;box-shadow:0 10px 24px rgba(157,31,7,.25)}
.btn-secondary{background:transparent;border-color:var(--blue);color:var(--blue-deep)}
.btn-secondary:hover{background:var(--blue);color:#fff}
.btn-white{background:#fff;color:var(--burgundy)}
.btn-white:hover{background:var(--blue-pale);color:var(--burgundy)}
.btn-outline-white{background:transparent;border-color:rgba(255,255,255,.65);color:#fff}
.btn-outline-white:hover{background:rgba(255,255,255,.15);border-color:#fff;color:#fff}

/* ============ Header ============ */
.site-header{
  position:sticky;top:0;z-index:300;background:rgba(255,255,255,.97);
  backdrop-filter:blur(8px);border-bottom:1px solid var(--line);transition:box-shadow .25s;
}
.site-header.scrolled{box-shadow:0 6px 22px rgba(42,42,46,.07)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:80px}
.site-logo{display:flex;align-items:center;gap:11px;color:var(--burgundy)}
.site-logo:hover{color:var(--burgundy)}
.site-logo svg{width:38px;height:38px;flex-shrink:0}
.site-logo .logo-img{height:52px;width:auto}
.logo-word{font-family:'Fraunces',serif;font-weight:600;font-size:23px;line-height:1;color:var(--burgundy)}
.logo-strap{display:block;font-family:'Inter',sans-serif;font-size:10.5px;font-weight:500;letter-spacing:.08em;color:var(--blue-deep);margin-top:3px}
.main-nav ul{display:flex;align-items:center;gap:4px;list-style:none}
.main-nav li{position:relative}
.main-nav a{
  display:flex;align-items:center;min-height:44px;padding:0 15px;border-radius:999px;
  color:var(--ink);font-size:15px;font-weight:500;transition:color .2s,background .2s;
}
.main-nav a:hover{color:var(--burgundy);background:var(--blue-pale)}
.main-nav .current-menu-item>a,.main-nav .current_page_item>a{color:var(--burgundy);font-weight:600}
/* Dropdowns (block layout — do not inherit flex) */
.main-nav .menu-item-has-children>a::after,.main-nav .page_item_has_children>a::after{content:"\25BE";font-size:10px;margin-left:7px;color:var(--muted)}
.main-nav .sub-menu,.main-nav .children{
  display:block;position:absolute;top:100%;left:0;min-width:225px;z-index:60;
  background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);
  padding:8px;list-style:none;
  opacity:0;visibility:hidden;transform:translateY(10px);
  transition:opacity .2s,transform .2s,visibility .2s;
}
.main-nav li:hover>.sub-menu,.main-nav li:focus-within>.sub-menu,
.main-nav li:hover>.children,.main-nav li:focus-within>.children{opacity:1;visibility:visible;transform:translateY(4px)}
.main-nav .sub-menu li,.main-nav .children li{display:block;width:100%}
.main-nav .sub-menu a,.main-nav .children a{display:flex;width:100%;padding:10px 14px;border-radius:9px;font-size:14.5px;min-height:42px;white-space:nowrap}
.header-cta{flex-shrink:0}
.nav-toggle{
  display:none;width:48px;height:48px;border:1px solid var(--line);border-radius:12px;
  background:#fff;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:5px;
}
.nav-toggle span{width:20px;height:2px;background:var(--burgundy);border-radius:2px;transition:transform .25s,opacity .25s}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media (max-width:920px){
  .nav-toggle{display:flex}
  .main-nav{position:absolute;top:100%;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);display:none;box-shadow:var(--shadow)}
  .main-nav.open{display:block}
  .main-nav ul{flex-direction:column;align-items:stretch;gap:0;padding:10px 0}
  .main-nav a{padding:13px 24px;border-radius:0}
  .main-nav .sub-menu,.main-nav .children{
    position:static;opacity:1;visibility:visible;transform:none;
    box-shadow:none;border:none;border-left:2px solid var(--blue-pale);border-radius:0;
    padding:0 0 0 16px;margin:0 0 4px 24px;
  }
  .main-nav .menu-item-has-children>a::after{content:""}
  .header-cta{display:none}
}

/* ============ Hero (white-dominant, light & spacious) ============ */
.hero{position:relative;overflow:hidden;background:var(--white)}
.hero::after{ /* soft pale-blue wash top-right — 10% blue rhythm */
  content:"";position:absolute;right:-220px;top:-220px;width:640px;height:640px;border-radius:50%;
  background:radial-gradient(circle,var(--blue-pale) 0%,rgba(239,247,250,0) 68%);pointer-events:none;
}
.hero-inner{
  position:relative;z-index:1;display:grid;grid-template-columns:1.08fr .92fr;
  gap:clamp(36px,5vw,72px);align-items:center;
  padding-top:88px;padding-bottom:84px;
}
.hero h1{margin-bottom:20px}
.hero-sub{font-size:19px;color:var(--muted);max-width:560px;margin-bottom:32px}
.hero-ctas{display:flex;gap:14px;flex-wrap:wrap}
.hero-note{display:flex;align-items:center;gap:10px;margin-top:26px;color:var(--muted);font-size:14px}
.hero-note svg{width:18px;height:18px;stroke:var(--blue-deep);fill:none;stroke-width:2;flex-shrink:0}
.hero-media{position:relative}
.hero-blob{
  position:relative;border-radius:36% 64% 55% 45% / 48% 42% 58% 52%;
  background:linear-gradient(140deg,var(--blue-pale),#dceef5);
  aspect-ratio:1/.94;display:flex;align-items:center;justify-content:center;overflow:hidden;
}
.hero-blob img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-blob .blob-placeholder{display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--blue-deep);text-align:center;padding:20px}
.blob-placeholder svg{width:72px;height:72px}
.blob-placeholder span{font-size:13px;font-weight:500}
.hero-chip{
  position:absolute;display:flex;align-items:center;gap:10px;
  background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 16px;
  box-shadow:var(--shadow);font-weight:600;font-size:13.5px;color:var(--ink);
}
.hero-chip .dot{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.hero-chip .dot.bg-b{background:var(--burgundy);color:#fff}
.hero-chip .dot.bg-bl{background:var(--blue);color:#fff}
.hero-chip .dot svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:2}
.hero-chip small{display:block;font-weight:500;color:var(--muted);font-size:11.5px}
.hero-chip.tl{top:8%;left:-16px}
.hero-chip.br{bottom:6%;right:-10px}
@media (max-width:920px){
  .hero-inner{grid-template-columns:1fr;padding-top:52px;padding-bottom:52px;gap:44px}
  .hero-sub{font-size:17px}
  .hero-ctas{flex-direction:column;align-items:stretch}
  .hero-ctas .btn{width:100%}
  .hero-chip.tl{left:4px}
  .hero-chip.br{right:4px}
  .hero::after{width:380px;height:380px;right:-160px;top:-160px}
}

/* ============ Credibility bar ============ */
.cred-bar{background:var(--blue-pale);border-top:1px solid #dfeef5;border-bottom:1px solid #dfeef5}
.cred-inner{display:flex;align-items:center;justify-content:center;gap:18px;flex-wrap:wrap;padding-top:22px;padding-bottom:22px;text-align:center}
.cred-name{font-family:'Fraunces',serif;font-weight:600;font-size:16.5px;color:var(--burgundy)}
.cred-quals{font-size:14px;color:var(--muted)}
.cred-roles{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.cred-roles span{
  background:#fff;border:1px solid #d7e9f1;border-radius:999px;
  padding:5px 14px;font-size:12.5px;font-weight:600;color:var(--blue-deep);
}

/* ============ Programmes ============ */
.prog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
@media (max-width:960px){.prog-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:620px){.prog-grid{grid-template-columns:1fr}}
.prog-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:32px 28px;display:flex;flex-direction:column;
  transition:transform .25s,box-shadow .25s,border-color .25s;
}
.prog-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:#cfe6f0}
.prog-icon{
  width:54px;height:54px;border-radius:16px;background:var(--blue-pale);color:var(--blue-deep);
  display:flex;align-items:center;justify-content:center;margin-bottom:20px;
}
.prog-icon svg{width:25px;height:25px;stroke:currentColor;fill:none;stroke-width:1.8}
.prog-card h3{margin-bottom:6px}
.prog-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}
.prog-tags span{font-size:11.5px;font-weight:600;letter-spacing:.03em;color:var(--blue-deep);background:var(--blue-pale);border-radius:999px;padding:3px 10px}
.prog-card p{color:var(--muted);font-size:15px;flex:1}
.prog-card .card-link{display:inline-flex;align-items:center;gap:7px;margin-top:18px;font-weight:600;font-size:14.5px;color:var(--burgundy)}
.prog-card .card-link::after{content:"\2192";transition:transform .2s;color:var(--blue-deep)}
.prog-card:hover .card-link::after{transform:translateX(4px)}
.prog-grid--4{grid-template-columns:repeat(4,1fr)}
@media (max-width:1080px){.prog-grid--4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.prog-grid--4{grid-template-columns:1fr}}
.prog-card--soon{position:relative}
.badge-soon{position:absolute;top:20px;right:20px;font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--burgundy);background:#fdecea;border-radius:999px;padding:4px 11px}
.badge-dev{color:var(--blue-deep);background:var(--blue-pale)}

/* ============ Why us (approach) ============ */
.why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
@media (max-width:960px){.why-grid{grid-template-columns:repeat(2,1fr)}}
.why-item{text-align:left}
.why-item .w-icon{
  width:48px;height:48px;border-radius:14px;background:#fff;border:1px solid #d7e9f1;color:var(--burgundy);
  display:flex;align-items:center;justify-content:center;margin-bottom:16px;
}
.why-item .w-icon svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.8}
.why-item h4{font-size:17px;margin-bottom:8px}
.why-item p{color:var(--muted);font-size:14.5px}

/* ============ Testimonials ============ */
.tsl-wrap{position:relative;max-width:840px;margin:0 auto}
.tsl-track{overflow:hidden}
.tsl-slide{display:none;text-align:center;padding:8px 12px}
.tsl-slide.is-active{display:block;animation:tslIn .5s ease}
@keyframes tslIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.tsl-quote-mark{font-family:'Fraunces',serif;font-size:64px;line-height:.6;color:var(--blue);display:block;margin-bottom:18px}
.tsl-slide blockquote{font-family:'Fraunces',serif;font-size:clamp(18px,2.4vw,23px);font-weight:500;color:var(--ink);line-height:1.6;font-style:italic}
.tsl-slide .tsl-who{margin-top:22px;font-weight:600;color:var(--burgundy)}
.tsl-slide .tsl-where{color:var(--muted);font-size:14px}
.tsl-dots{display:flex;justify-content:center;gap:8px;margin-top:30px}
.tsl-dots button{width:28px;height:28px;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
.tsl-dots button::before{content:"";width:9px;height:9px;border-radius:50%;background:#cfe1ea;transition:background .25s,transform .25s}
.tsl-dots button.is-active::before{background:var(--burgundy);transform:scale(1.25)}
.tsl-arrows{position:absolute;inset:0;display:flex;justify-content:space-between;align-items:center;pointer-events:none}
.tsl-arrows button{
  pointer-events:auto;width:46px;height:46px;border-radius:50%;border:1px solid var(--line);
  background:#fff;color:var(--blue-deep);cursor:pointer;font-size:18px;
  display:flex;align-items:center;justify-content:center;transition:color .2s,border-color .2s;
}
.tsl-arrows button:hover{color:var(--burgundy);border-color:var(--blue)}
@media (max-width:720px){.tsl-arrows{display:none}}

/* ============ Consultation (per client's reference screenshot) ============ */
.consult{background:var(--burgundy);color:#fff;border-radius:24px;overflow:hidden;position:relative}
.consult::after{content:"";position:absolute;left:-70px;bottom:-110px;width:280px;height:280px;border-radius:50%;border:34px solid rgba(255,255,255,.07);pointer-events:none}
.consult-inner{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(28px,4vw,56px);padding:clamp(36px,5vw,58px)}
@media (max-width:860px){.consult-inner{grid-template-columns:1fr}}
.consult h2{color:#fff;margin-bottom:16px}
.consult p{color:#f4d9d3;font-size:16px;margin-bottom:20px;max-width:44ch}
.consult .consult-mail{color:#fff;text-decoration:underline;text-underline-offset:4px}
.consult .consult-mail:hover{color:var(--blue-pale)}
.consult-form label{display:block;font-size:13px;font-weight:600;letter-spacing:.04em;color:#f4d9d3;margin:16px 0 7px}
.consult-form input,.consult-form textarea{
  width:100%;min-height:52px;padding:14px 16px;border:none;border-radius:999px;
  font-family:'Inter',sans-serif;font-size:15px;background:#fff;color:var(--ink);
}
.consult-form textarea{min-height:120px;border-radius:20px;resize:vertical}
.consult-form input:focus,.consult-form textarea:focus{outline:3px solid var(--blue)}
.consult-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:560px){.consult-row{grid-template-columns:1fr}}
.consult-form .btn{margin-top:22px;width:100%}
.consult-form .btn-white:hover{background:var(--blue);color:#fff}
.consult-form .char-count{margin:6px 2px 0;font-size:12.5px;color:#f4d9d3;opacity:.8;text-align:right}
.consult-form .char-count.is-met{color:#c9f2d6;opacity:1}
.hp-field{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}
.form-notice{margin-top:14px;padding:13px 18px;border-radius:14px;font-size:14.5px}
.form-notice.ok{background:#eaf7ee;color:#1e6b34}
.form-notice.err{background:#fdecec;color:#a02222}
.consult .form-notice.ok{background:rgba(255,255,255,.92)}
.consult .form-notice.err{background:rgba(255,255,255,.92)}


/* ============ CTA band (Subjects page close) ============ */
.cta-band{
  border-radius:24px;color:#fff;padding:clamp(32px,4.5vw,52px);
  display:grid;grid-template-columns:1.4fr 1fr;gap:32px;align-items:center;
  position:relative;overflow:hidden;
}
.cta-band::after{content:"";position:absolute;right:-70px;top:-90px;width:240px;height:240px;border-radius:50%;border:32px solid rgba(255,255,255,.14)}
.cta-band h2{margin-bottom:4px}
.cta-band ul{list-style:none}
.cta-band ul li{padding:4px 0;text-wrap:balance}
@media (max-width:800px){.cta-band{grid-template-columns:1fr}}


/* ============ Two-column grid (Subjects: Reading/Writing, Reasoning pairs) ============ */
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
@media (max-width:800px){.grid-2{grid-template-columns:1fr}}

/* ============ Callout card (pacing statement, mission-style) ============ */
.mv-card{border-radius:var(--radius);padding:22px 30px;text-align:center}
.mv-card.navy{background:var(--burgundy)}

/* ============ CTA actions wrapper ============ */
.cta-actions{display:flex;flex-direction:column;gap:12px;position:relative;z-index:1}


/* ============ Reusable responsive split (text + circular photo) ============
   Replaces ad-hoc inline grid-template-columns, which permanently overrides
   any external media query and was causing mobile horizontal overflow. */
.split-2col{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,64px);align-items:center}
@media (max-width:900px){.split-2col{grid-template-columns:minmax(0,1fr);gap:36px}}
@media (max-width:900px){.consult-split .hero-media{order:-1}}

/* ============ Why-grid column-count modifier (About benefits: 3 desktop cols) ============ */
.why-grid--3{grid-template-columns:repeat(3,1fr)}
@media (max-width:960px){.why-grid--3{grid-template-columns:repeat(2,1fr)}}

/* ============ FAQ accordion (native details/summary — no JS required) ============ */
.faq-list{display:flex;flex-direction:column;gap:12px;max-width:820px;margin:0 auto}
.faq-item{background:#fff;border:1px solid var(--line);border-radius:16px;padding:4px 22px;transition:border-color .2s}
.faq-item[open]{border-color:#cfe6f0}
.faq-item summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 0;font-weight:600;font-size:16px;color:var(--ink)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary .faq-plus{flex-shrink:0;width:26px;height:26px;border-radius:50%;background:var(--blue-pale);color:var(--blue-deep);display:flex;align-items:center;justify-content:center}
.faq-item summary .faq-plus svg{width:14px;height:14px;stroke:currentColor;stroke-width:2.2;fill:none;transition:transform .25s}
.faq-item[open] summary .faq-plus svg{transform:rotate(45deg)}
.faq-item .faq-answer{color:var(--muted);padding:0 0 20px;font-size:15px;line-height:1.65}
@media (max-width:600px){.faq-item{padding:4px 16px}.faq-item summary{font-size:14.5px}}

/* ============ FAQ category quick-jump nav ============ */
.faq-jump{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.faq-jump a{font-size:13.5px;font-weight:600;color:var(--blue-deep);background:var(--blue-pale);border-radius:999px;padding:8px 16px;transition:background .2s,color .2s}
.faq-jump a:hover{background:var(--blue);color:#fff}

/* Global safety net: nothing should ever force the page wider than the viewport */
html,body{max-width:100%;overflow-x:hidden}

/* ============ Page hero (inner pages) ============ */
.page-hero{background:var(--blue-pale);padding-top:70px;padding-bottom:56px;position:relative;overflow:hidden}
.page-hero::after{content:"";position:absolute;right:-90px;top:-110px;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,#fff 0,rgba(255,255,255,0) 70%)}
.page-hero h1{color:var(--burgundy)}
.page-hero p{color:var(--muted);max-width:640px;margin-top:12px}
.breadcrumbs{font-size:13px;color:var(--blue-deep);margin-bottom:14px}
.breadcrumbs a{color:var(--burgundy)}

/* ============ Footer ============ */
.site-footer{background:#fff;border-top:1px solid var(--line)}
.footer-strap{
  text-align:center;padding-top:52px;padding-bottom:8px;
}
.footer-strap .strap{
  font-family:'Fraunces',serif;font-style:italic;font-weight:500;
  font-size:clamp(20px,3vw,27px);color:var(--burgundy);
}
.footer-strap .strap em{color:var(--blue-deep);font-style:italic}
.footer-top{display:grid;grid-template-columns:1.4fr 1fr 1.2fr;gap:44px;padding-top:44px;padding-bottom:44px}
@media (max-width:860px){.footer-top{grid-template-columns:1fr;gap:32px}}
.footer-top p{font-size:14.5px;color:var(--muted)}
.footer-top h4{font-size:16px;margin-bottom:16px;color:var(--burgundy)}
.footer-top ul{list-style:none}
.footer-top ul li{margin-bottom:9px}
.footer-top ul a{color:var(--muted);font-size:14.5px}
.footer-top ul a:hover{color:var(--burgundy)}
.footer-contact li{display:flex;gap:10px;align-items:flex-start}
.footer-contact svg{flex-shrink:0;width:17px;height:17px;stroke:var(--blue-deep);fill:none;stroke-width:1.8;margin-top:5px}
.footer-bottom{
  border-top:1px solid var(--line);padding-top:20px;padding-bottom:20px;
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:13.5px;color:var(--muted);
}
.footer-bottom a{color:var(--blue-deep)}


/* ============ Numbered steps (About: How It Works) ============ */
.obj-list{list-style:none;columns:2;column-gap:44px}
@media (max-width:800px){.obj-list{columns:1}}
.obj-list li{break-inside:avoid;display:flex;gap:14px;padding:14px 0;border-bottom:1px solid var(--line);color:var(--muted);font-size:15.5px}
.obj-list .num{flex-shrink:0;width:32px;height:32px;border-radius:10px;background:var(--blue-pale);color:var(--burgundy);display:flex;align-items:center;justify-content:center;font-family:'Fraunces',serif;font-weight:600;font-size:14px;margin-top:2px}


/* ============ Simple bullet list (Subjects page teaching points) ============ */
.bg-list{list-style:none;margin-top:2px}
.bg-list li{position:relative;padding:5px 0 5px 22px;color:var(--muted);font-size:14.5px}
.bg-list li::before{content:"";position:absolute;left:0;top:13px;width:8px;height:8px;border-radius:50%;background:var(--blue)}


/* ============ Compact mobile tiles (Maths, About benefits) ============
   Below 560px these switch from a long single-column list to a tighter,
   centered 2-up tile grid — shorter scroll, more considered on a phone. */
@media (max-width:560px){
  .why-grid,.why-grid--3{grid-template-columns:repeat(2,1fr);gap:14px 12px}
  .why-item{text-align:center;background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px 12px}
  .why-item .w-icon{margin:0 auto 10px;width:40px;height:40px;border-radius:11px}
  .why-item .w-icon svg{width:18px;height:18px}
  .why-item h4{font-size:14px;line-height:1.3;margin-bottom:4px}
  .why-item p{font-size:12.5px;line-height:1.5}
}

/* ============ Reveal animations ============ */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}
.stagger>*{opacity:0;transform:translateY(18px);transition:opacity .55s ease,transform .55s ease}
.stagger.in>*{opacity:1;transform:none}
.stagger>*:nth-child(2){transition-delay:.08s}
.stagger>*:nth-child(3){transition-delay:.16s}
.stagger>*:nth-child(4){transition-delay:.24s}
.stagger>*:nth-child(5){transition-delay:.32s}
.stagger>*:nth-child(6){transition-delay:.4s}
@keyframes fadeUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
.fade-up{animation:fadeUp .8s ease both}
.fade-up.d1{animation-delay:.1s}.fade-up.d2{animation-delay:.22s}.fade-up.d3{animation-delay:.34s}
@media (prefers-reduced-motion:reduce){.reveal,.stagger>*{opacity:1!important;transform:none!important}.fade-up{animation:none}}

/* ============ Default content / misc ============ */
.entry-content{max-width:800px}
.entry-content p{margin-bottom:18px;color:var(--muted)}
.entry-content h2,.entry-content h3{margin:34px 0 14px}
.entry-content ul,.entry-content ol{margin:0 0 18px 22px;color:var(--muted)}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--burgundy);color:#fff;padding:12px 18px;z-index:999;border-radius:0 0 12px 0;font-weight:600}
.skip-link:focus{left:0}
