/* Contact page layout */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px}
.contact-info .row{display:flex;gap:14px;padding:16px 0;border-bottom:1px solid var(--line)}
.contact-info .row .ic{width:42px;height:42px;border-radius:10px;background:var(--paper-2);color:var(--accent-dark);display:grid;place-items:center;flex:none}
.contact-info .row b{display:block;color:var(--navy);font-family:var(--serif)}
.contact-info .row span{color:var(--muted);font-size:.93rem}
.form label{display:block;font-weight:600;font-size:.88rem;margin:14px 0 5px;color:var(--navy)}
.form input,.form textarea,.form select{width:100%;padding:12px 15px;border:1px solid var(--line);border-radius:10px;font-family:var(--sans);font-size:.95rem;background:var(--white)}
.form textarea{min-height:120px;resize:vertical}
@media(max-width:780px){.contact-grid{grid-template-columns:1fr;gap:32px}}
@media(max-width:640px){
  #contact{padding:0}
  #contact .wrap{padding:0;max-width:100%}
  #contact .contact-grid{gap:0}
  #contact .form{padding:40px 24px;background:var(--paper)}
  #contact .contact-info{padding:40px 24px;background:var(--paper-2)}
}
/* Step card numbers — match Ashbury style */
.step::before{content:"0" counter(step);display:block;font-family:var(--sans);font-size:.78rem;font-weight:700;letter-spacing:.1em;color:var(--accent-dark);margin-bottom:8px;width:auto;height:auto;border-radius:0;background:transparent;border:none}
/* FAQ accordion links */
.ac-body a{color:var(--accent-dark);text-decoration:underline;text-underline-offset:3px}
.ac-body a:hover{color:var(--accent)}
.ac-body ul{margin:.6em 0 .8em 1.2em;padding:0;line-height:1.7}
.ac-body ul li{margin-bottom:.2em}
/* Mobile: fee table card layout */
@media(max-width:640px){
  .fees-schedule{border:none;background:transparent}
  .fees-schedule thead{display:none}
  .fees-schedule tbody{display:flex;flex-direction:column;gap:10px}
  .fees-schedule tr{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;background:var(--white)}
  .fees-schedule tbody tr:nth-child(even){background:var(--white)}
  .fees-schedule td{display:flex;flex-direction:column;justify-content:flex-end;padding:12px 14px;border-bottom:none;text-align:left !important}
  .fees-schedule td:first-child{grid-column:1/-1;background:var(--navy);color:#fff;padding:12px 16px;font-family:var(--serif);font-size:1rem;font-weight:400}
  .fees-schedule td:first-child span{display:block;font-size:.78rem;color:rgba(255,255,255,0.55);font-weight:400;font-style:normal;margin-top:2px}
  .fees-schedule td:nth-child(2){border-right:1px solid var(--line)}
  .fees-schedule td:nth-child(2)::before{content:"Monthly";display:block;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-dark);margin-bottom:4px}
  .fees-schedule td:nth-child(3)::before{content:"Annual";display:block;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-dark);margin-bottom:4px}
  .fees-schedule td:nth-child(2),.fees-schedule td:nth-child(3){font-family:var(--sans);font-size:.95rem;color:var(--navy)}
  .fees-once-off{border:none;background:transparent}
  .fees-once-off thead{display:none}
  .fees-once-off tbody{display:flex;flex-direction:column;gap:10px}
  .fees-once-off tr{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;background:var(--white)}
  .fees-once-off tbody tr:nth-child(even){background:var(--white)}
  .fees-once-off td{display:flex;flex-direction:column;justify-content:flex-end;padding:12px 14px;border-bottom:none;text-align:left !important}
  .fees-once-off td:first-child{grid-column:1/-1;background:var(--navy);color:#fff;padding:12px 16px;font-family:var(--serif);font-size:1rem;font-weight:400}
  .fees-once-off td:nth-child(2){border-right:1px solid var(--line);justify-content:center;align-items:flex-start;font-family:var(--sans);font-size:.95rem;color:var(--navy)}
  .fees-once-off td:nth-child(2)::before{content:"Amount";display:block;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-dark);margin-bottom:4px}
  .fees-once-off td:nth-child(3)::before{content:"Note";display:block;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-dark);margin-bottom:4px}
  .fees-once-off td:nth-child(3){font-size:.78rem !important;color:var(--muted) !important;font-style:italic}
  .fee-discounts{display:flex !important;flex-direction:column;gap:0 !important}
  .fee-discount-item{display:flex;flex-wrap:wrap;align-items:center;padding:16px 18px !important;border-bottom:1px solid var(--line)}
  .fee-discount-item:last-child{border-bottom:none}
  .fee-discount-item>div:nth-child(1){flex:1;font-size:.88rem !important}
  .fee-discount-item>div:nth-child(2){font-size:1.1rem !important;margin-bottom:0 !important}
  .fee-discount-item>div:nth-child(3){width:100%;font-size:.85rem !important;margin-top:2px}
}
.footer{background:#0f1a2e;color:rgba(255,255,255,.72);padding:64px 0 30px;font-size:.92rem}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:36px}
.footer h4{font-family:var(--sans);font-size:.8rem;text-transform:uppercase;letter-spacing:.12em;color:#fff;margin-bottom:16px;font-weight:700}
.footer a{display:block;padding:5px 0;color:rgba(255,255,255,.72)}
.footer a:hover{color:var(--accent)}
.footer .brand{color:#fff;margin-bottom:14px}
.footer .brand .mark{background:var(--accent);color:var(--navy)}
.footer .blurb{max-width:24em;line-height:1.6}
.footer .socials{display:flex;gap:10px;margin-top:18px}
.footer .socials a{width:38px;height:38px;border-radius:10px;border:1px solid rgba(255,255,255,.18);display:grid;place-items:center;padding:0}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:46px;padding-top:22px;display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;font-size:.84rem;color:rgba(255,255,255,.5)}
.footer-bottom a{display:inline;color:rgba(255,255,255,.5)}
@media(max-width:780px){.footer-grid{grid-template-columns:1fr 1fr;gap:28px}}
@media(max-width:480px){.footer-grid{grid-template-columns:1fr}}
@media(max-width:640px){.infobar-label,.infobar-divider{display:none}}
/* Mobile gallery scroll */
@media(max-width:640px){
  .gallery{display:flex;flex-direction:row;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;gap:10px;padding-bottom:12px;scrollbar-width:none}
  .gallery::-webkit-scrollbar{display:none}
  .gallery .cell{flex:0 0 78%;scroll-snap-align:start;aspect-ratio:4/3;border-radius:var(--r-md)}
}
.gallery-dots{display:none;justify-content:center;gap:12px;margin-top:18px}
.gallery-dots .dot{width:7px;height:7px;border-radius:50%;background:rgba(30,61,40,.35);border:none;padding:0;transition:background .2s,transform .2s;cursor:pointer;flex:none}
.gallery-dots .dot.active{background:#9b2329;transform:scale(1.3)}
@media(max-width:640px){.gallery-dots{display:flex}}
/* split-home-l — image left, text right (desktop); reorders on mobile same as split-home */
.split-home-l{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto 1fr;column-gap:56px;align-items:start}
.split-home-l .text-top{grid-column:2;grid-row:1}
.split-home-l .col-photo{grid-column:1;grid-row:1/3;align-self:center}
.split-home-l .text-bottom{grid-column:2;grid-row:2;padding-top:1em}
.split-home-l .photo{aspect-ratio:5/4;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow)}
.split-home-l h2{font-size:var(--fs-h2);font-weight:400;margin:.3em 0 .2em}
.split-home-l p{margin-bottom:1.1em}
.split-home-l .photo img{width:100%;height:100%;object-fit:cover;display:block}
@media(max-width:640px){
  .split-home-l{grid-template-columns:1fr;grid-template-rows:auto;gap:1.4rem}
  .split-home-l .text-top{grid-column:1;grid-row:1}
  .split-home-l .col-photo{grid-column:1;grid-row:2;align-self:auto}
  .split-home-l .text-bottom{grid-column:1;grid-row:3;padding-top:0}
}
/* Mobile: facilities list font size */
@media(max-width:640px){#facilities ul li span:first-child{font-size:1rem !important}}
/* Mobile: school hours font sizes */
@media(max-width:640px){
  #school-hours .card-grid>div>div:last-child>div>span{font-size:1rem !important}
  #school-hours .card-grid>div>div:last-child>p{font-size:.75rem !important}
}
/* Mobile: aftercare CTA position */
.aftercare-cta-mobile{display:none}
@media(max-width:640px){.aftercare-cta-desktop{display:none !important}.aftercare-cta-mobile{display:inline-block;margin-top:1.4em}}
/* Mobile: subject font sizes (preparatory page) */
@media(max-width:640px){
  .subject-grid>div>p:first-child{font-size:.95rem !important}
  .subject-grid>div>p:last-child{font-size:.9rem !important;line-height:1.6 !important}
}
/* Mobile: hide visit stats column on contact page (info already in copy) */
@media(max-width:640px){.visit-stats{display:none !important}}
/* Mobile: ThriveEd stats — horizontal, equal columns, smaller text */
@media(max-width:640px){
  .thriveed-stats{display:flex !important;flex-direction:row !important;gap:0 !important;grid-template-columns:none !important;border:.5px solid var(--line) !important;border-radius:var(--r-md) !important;overflow:hidden !important;margin-top:1.4rem !important;padding:0 !important}
  .thriveed-stat{flex:1 !important;display:flex !important;flex-direction:column !important;align-items:center !important;justify-content:center !important;padding:14px 8px !important;text-align:center !important;border-left:none !important;border-bottom:none !important;border-right:.5px solid var(--line) !important;border-radius:0 !important;position:static !important}
  .thriveed-stat:last-child{border-right:none !important}
  .thriveed-stat+.thriveed-stat::before{display:none !important}
  .thriveed-num{font-size:1.15rem !important;line-height:1.1 !important;min-width:0 !important;margin-right:0 !important}
  .thriveed-lbl{font-size:.65rem !important;font-weight:600 !important;margin-top:4px !important;line-height:1.3 !important;text-align:center !important}
}
/* Mobile header: Apply button next to burger */
.header-apply{display:none}
@media(max-width:980px){
  .header-apply{display:inline-flex;align-items:center;background:var(--accent);color:#fff;border-radius:10px;padding:10px 16px;font-family:var(--sans);font-weight:600;font-size:.9rem;text-decoration:none;white-space:nowrap}
  .header-apply:hover{background:var(--accent-dark)}
}
