/* Core Tennis BKK — bespoke public landing.
   v2 (2026-08-04): LIGHT default + light/dark toggle + Core Tennis's OWN identity —
   NAVY + LIME-GREEN (from the logo), NOT the LTAT-Tour navy+gold. Theme flips via [data-theme].
   Brand colours are constant; only SURFACES/INK flip between light and dark. */

/* ---- Brand (constant) ---- */
:root{
  --navy:#0a2a4f; --navy-2:#0c2f57; --navy-deep:#06203f;
  --lime:#7cc00d;          /* Core Tennis green — vivid, ball-like */
  --lime-deep:#5a8f0a;     /* readable green on white (text/hover)  */
  --lime-soft:#eef7dd;     /* pale lime fill                        */
}
/* ---- LIGHT theme (default) ---- */
:root, [data-theme="light"]{
  --bg:#ffffff; --bg-alt:#f3f8ef; --surface:#ffffff; --surface-2:#f7faf3;
  --ink:#12253c; --ink-soft:#51617a; --border:#e4ebf2;
  --header-bg:rgba(255,255,255,.92); --header-border:#e8edf3; --header-ink:var(--navy);
  --hero-shade1:rgba(8,26,50,.92); --hero-shade2:rgba(8,26,50,.55); --hero-shade3:rgba(8,26,50,.10);
}
/* ---- DARK theme ---- */
[data-theme="dark"]{
  --bg:#061b35; --bg-alt:#07203c; --surface:#0d3158; --surface-2:#0a2748;
  --ink:#ffffff; --ink-soft:#cbd6e4; --border:rgba(255,255,255,.14);
  --header-bg:rgba(6,27,53,.9); --header-border:rgba(255,255,255,.08); --header-ink:#ffffff;
  --hero-shade1:rgba(4,19,38,.98); --hero-shade2:rgba(4,19,38,.82); --hero-shade3:rgba(4,19,38,.16);
}

*{box-sizing:border-box}html{scroll-behavior:smooth}
body.ct{margin:0;font-family:'Poppins',Arial,Helvetica,sans-serif;color:var(--ink);background:var(--bg);line-height:1.5;transition:background .25s,color .25s}
.ct a{color:inherit;text-decoration:none}.ct img{max-width:100%;display:block}
.ct .container{width:min(1180px,92%);margin:auto}
.ct header{position:fixed;top:0;left:0;right:0;z-index:50;background:var(--header-bg);backdrop-filter:blur(12px);border-bottom:1px solid var(--header-border)}
.ct .nav{height:82px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.ct .brand{display:flex;align-items:center;gap:13px;font-weight:900;letter-spacing:.5px;color:var(--header-ink)}
.ct .logo{width:54px;height:54px;border-radius:50%;background:#fff;color:var(--navy);display:grid;place-items:center;font-size:11px;text-align:center;line-height:1.05;box-shadow:0 8px 24px rgba(10,42,79,.18);overflow:hidden}
.ct .logo img{width:100%;height:100%;object-fit:contain}
.ct .links{display:flex;gap:24px;font-size:14px;color:var(--header-ink)}.ct .links a:hover{color:var(--lime-deep)}
.ct .signin,.ct .cta{background:var(--lime);color:#08210a;font-weight:800;padding:13px 20px;border-radius:999px;display:inline-flex;align-items:center;gap:8px;cursor:pointer;border:0}
.ct .signin:hover,.ct .cta:hover{background:var(--lime-deep);color:#fff}
.ct .menu{display:none;font-size:30px;background:none;border:0;color:var(--header-ink);cursor:pointer}
/* light/dark toggle (house S4.2 — light default; moon=go dark, sun=go light) */
.ct .theme-toggle{width:40px;height:40px;border-radius:50%;border:1px solid var(--border);background:var(--surface-2);color:var(--header-ink);display:grid;place-items:center;cursor:pointer;flex:none}
.ct .theme-toggle:hover{border-color:var(--lime)}
.ct .theme-toggle svg{width:18px;height:18px}
.ct .theme-toggle .t-sun{display:none}[data-theme="dark"] .ct .theme-toggle .t-sun{display:block}[data-theme="dark"] .ct .theme-toggle .t-moon{display:none}

.ct .hero{min-height:640px;padding-top:100px;position:relative;overflow:hidden;background:linear-gradient(90deg,var(--hero-shade1) 0%,var(--hero-shade2) 48%,var(--hero-shade3) 100%),url('/uploads/coretennis/design/img-1.jpg') center 36%/cover no-repeat}
.ct .hero:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 70% 20%,rgba(124,192,13,.16),transparent 34%)}
.ct .hero-content{position:relative;z-index:2;max-width:680px;padding:44px 0 56px;color:#fff}
.ct .eyebrow{text-transform:uppercase;color:var(--lime);font-weight:900;letter-spacing:3px;font-size:14px}
.ct h1{font-size:clamp(36px,5vw,62px);line-height:1.03;margin:14px 0 18px;letter-spacing:-1.5px;color:#fff}.ct h1 span{color:var(--lime)}
.ct .hero p{font-size:19px;color:#e8eef6;max-width:520px}
.ct .hero-actions{display:flex;gap:15px;flex-wrap:wrap;margin-top:26px}
.ct .ghost{padding:13px 20px;border:1px solid rgba(255,255,255,.55);border-radius:999px;font-weight:800;color:#fff}.ct .ghost:hover{background:#fff;color:var(--navy)}
.ct .features{position:relative;z-index:5;margin-top:-72px}
.ct .feature-grid{display:grid;grid-template-columns:repeat(4,1fr);background:var(--surface);color:var(--ink);border-radius:22px;box-shadow:0 18px 55px rgba(10,42,79,.16);overflow:hidden;border:1px solid var(--border)}
.ct .feature{padding:28px 24px;border-right:1px solid var(--border)}.ct .feature:last-child{border-right:0}
.ct .icon{width:46px;height:46px;border-radius:50%;background:var(--navy);display:grid;place-items:center;color:#fff;font-size:22px;margin-bottom:14px}
.ct .feature h3{margin:0 0 8px;color:var(--lime-deep);font-size:17px}.ct .feature p{margin:0;color:var(--ink-soft);font-size:14px}
.ct section{padding:96px 0}.ct .section-title{text-align:center;margin-bottom:42px}.ct .section-title h2{font-size:40px;margin:0;color:var(--ink)}.ct .section-title p{color:var(--ink-soft);margin:10px 0 0}
.ct .programs{background:var(--bg-alt)}
.ct .cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.ct .card{background:var(--surface);border:1px solid var(--border);border-radius:18px;overflow:hidden;transition:.25s}.ct .card:hover{transform:translateY(-6px);border-color:var(--lime);box-shadow:0 16px 40px rgba(10,42,79,.12)}
.ct .card img{height:220px;width:100%;object-fit:cover}.ct .card-body{padding:22px}.ct .card h3{color:var(--lime-deep);margin:0 0 8px}.ct .card p{color:var(--ink-soft);font-size:14px;min-height:65px}.ct .age{font-weight:800;color:var(--ink)}
.ct .about{background:var(--bg);color:var(--ink)}.ct .about-grid{display:grid;grid-template-columns:.85fr 1.05fr .8fr;gap:34px;align-items:center}.ct .about h2{font-size:38px;margin:8px 0 18px}
.ct .check{display:flex;gap:12px;margin:14px 0;align-items:center}
.ct .tick{flex:none;width:22px;height:22px;border-radius:50%;background:var(--lime);color:#08210a;display:grid;place-items:center;font-size:12px;font-weight:900}
.ct .about-image{border-radius:22px;overflow:hidden;box-shadow:0 18px 50px rgba(10,42,79,.16)}.ct .about-image img{height:340px;width:100%;object-fit:cover}
.ct .outline{display:inline-flex;align-items:center;gap:8px;margin-top:20px;padding:12px 22px;border:1.5px solid var(--navy);border-radius:999px;color:var(--navy);font-weight:800}
[data-theme="dark"] .ct .outline{border-color:#fff;color:#fff}
.ct .outline:hover{background:var(--navy);color:#fff}
/* testimonial quote card */
.ct .quote-card{margin:0;background:var(--navy);color:#fff;border-radius:22px;padding:34px 30px;box-shadow:0 18px 50px rgba(10,42,79,.22);position:relative}
.ct .quote-card .q{color:var(--lime);font-size:64px;line-height:.6;font-weight:900;display:block;margin-bottom:6px}
.ct .quote-card blockquote{margin:0 0 16px;font-size:18px;line-height:1.6}
.ct .quote-card figcaption{color:#cbd6e4;font-weight:700}
/* coaches — grid of cards (DB-driven; editable in Admin → Coaches) */
.ct .coaches{background:var(--bg-alt)}
.ct .coach-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:18px}
.ct .coach-card{background:var(--surface);border:1px solid var(--border);border-radius:18px;overflow:hidden;text-align:center;transition:.25s}
.ct .coach-card:hover{transform:translateY(-6px);border-color:var(--lime);box-shadow:0 16px 40px rgba(10,42,79,.12)}
.ct .coach-photo{aspect-ratio:1;background:var(--surface-2);display:grid;place-items:center;color:var(--ink-soft);font-size:34px;font-weight:800}
.ct .coach-photo img{width:100%;height:100%;object-fit:cover}
.ct .coach-card__b{padding:16px}
.ct .coach-card__b h3{color:var(--ink);margin:0;font-size:16px}
.ct .coach-card__b .role{color:var(--lime-deep);font-weight:800;font-size:12px;text-transform:uppercase;letter-spacing:1px;margin-top:4px}
@media(max-width:1000px){.ct .coach-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){.ct .coach-grid{grid-template-columns:repeat(2,1fr)}}
/* footer icon row */
.ct .foot-row{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 34px;padding-bottom:6px}
.ct .fi{display:inline-flex;align-items:center;gap:9px;color:#c9d5e2;font-size:14px}
.ct .fi:hover{color:#fff}
.ct .fi-ic{display:inline-grid;place-items:center;width:26px;height:26px}
.ct .fi-ic svg{width:18px;height:18px;fill:currentColor}
.ct .fi-line{color:#06C755}
.ct .gallery{background:var(--bg-alt)}.ct .gallery-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:18px}.ct .gallery-grid img{width:100%;height:420px;object-fit:cover;border-radius:18px}
/* Reviews — What Parents Say */
.ct .reviews{background:var(--bg);color:var(--ink)}
.ct .reviews-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.ct .rev{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:26px;box-shadow:0 14px 40px rgba(10,42,79,.08);display:flex;flex-direction:column}
.ct .rev .stars{color:var(--lime);letter-spacing:2px;font-size:18px;margin-bottom:10px}
.ct .rev blockquote{margin:0 0 16px;color:var(--ink-soft);line-height:1.7;font-size:15px;flex:1}
.ct .rev .who{font-weight:900;color:var(--ink)}.ct .rev .loc{color:var(--ink-soft);font-size:13px}
/* contact — navy band with lime CTA (works in both themes) */
.ct .contact{background:var(--navy);color:#fff;padding:70px 0}.ct .contact-wrap{display:flex;justify-content:space-between;align-items:center;gap:30px}.ct .contact h2{font-size:38px;margin:0 0 8px}.ct .contact p{color:#cbd6e4}.ct .contact .cta{background:var(--lime);color:#08210a}.ct .contact .cta:hover{background:#fff;color:var(--navy)}
.ct footer{background:var(--navy-deep);padding:34px 0;color:#c9d5e2}.ct .footer-grid{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:28px}.ct footer h4{color:#fff;margin-top:0}.ct footer p,.ct footer a{font-size:14px}.ct footer a:hover{color:var(--lime)}.ct .copyright{border-top:1px solid rgba(255,255,255,.1);margin-top:28px;padding-top:18px;font-size:13px;text-align:center}
/* sticky social stack — IG + WhatsApp together, matched circular shape, bottom-right */
.ct .social-stack{position:fixed;right:20px;bottom:20px;z-index:60;display:flex;flex-direction:column;gap:12px}
.ct .ss-btn{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;color:#fff;box-shadow:0 10px 30px rgba(10,42,79,.28);transition:transform .18s}
.ct .ss-btn:hover{transform:scale(1.08)}
.ct .ss-btn svg{width:30px;height:30px;fill:currentColor}
.ct .ss-btn--ig{background:radial-gradient(circle at 30% 107%,#fdf497 0%,#fd5949 45%,#d6249f 60%,#285AEB 90%)}
.ct .ss-btn--wa{background:#25D366}
@media(max-width:600px){.ct .social-stack{right:14px;bottom:14px}.ct .ss-btn{width:50px;height:50px}.ct .ss-btn svg{width:26px;height:26px}}
@media(max-width:900px){.ct .links{display:none}.ct .menu{display:block}.ct .hero{min-height:710px;background-position:62% center}.ct .hero-content{padding-top:70px}.ct .feature-grid{grid-template-columns:1fr 1fr}.ct .feature:nth-child(2){border-right:0}.ct .cards{grid-template-columns:1fr 1fr}.ct .about-grid,.ct .gallery-grid,.ct .reviews-grid{grid-template-columns:1fr}.ct .footer-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.ct .nav{height:72px}.ct .brand span{font-size:14px}.ct .signin{display:none}.ct .hero{padding-top:88px;min-height:680px;background-position:67% center}.ct .hero:before{content:"";position:absolute;inset:0;background:rgba(3,18,36,.34)}.ct h1{font-size:52px;letter-spacing:-2px}.ct .hero p{font-size:18px}.ct .features{margin-top:-36px}.ct .feature-grid,.ct .cards,.ct .footer-grid{grid-template-columns:1fr}.ct .feature{border-right:0;border-bottom:1px solid var(--border)}.ct .about h2,.ct .section-title h2{font-size:32px}.ct .gallery-grid img{height:300px}.ct .contact-wrap{flex-direction:column;align-items:flex-start}}
/* mobile slide menu */
.ct .m-drawer{position:fixed;inset:0 0 0 auto;width:min(80vw,300px);background:var(--navy-2);z-index:70;transform:translateX(100%);transition:transform .28s;padding:80px 24px 24px;display:flex;flex-direction:column;gap:6px}
.ct .m-drawer.open{transform:none}.ct .m-drawer a{padding:14px 4px;border-bottom:1px solid rgba(255,255,255,.08);font-weight:700;letter-spacing:1px;color:#fff}.ct .m-drawer a:hover{color:var(--lime)}
.ct .m-scrim{position:fixed;inset:0;background:rgba(3,12,26,.5);z-index:65;opacity:0;pointer-events:none;transition:.25s}.ct .m-scrim.on{opacity:1;pointer-events:auto}
@media(max-width:700px){.ct .coach-feature{grid-template-columns:1fr;text-align:center}.ct .coach-badge{margin:auto}.ct .about-image img{height:240px}}
.ct .reg-link{color:var(--header-ink);font-weight:800;font-size:14px;letter-spacing:.5px;padding:8px 4px;border-bottom:2px solid transparent}
.ct .reg-link:hover{color:var(--lime-deep);border-color:var(--lime)}
@media(max-width:600px){.ct .reg-link{display:none}}
/* training camps */
.ct .camps{background:var(--bg-alt);color:var(--ink)}
.ct .camp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.ct .camp-card{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--lime);border-radius:16px;padding:26px;box-shadow:0 10px 30px rgba(10,42,79,.06);display:flex;flex-direction:column}
.ct .camp-dates{color:var(--lime-deep);font-weight:800;font-size:13px;text-transform:uppercase;letter-spacing:1px;margin-bottom:8px}
.ct .camp-card h3{margin:0 0 8px;font-size:20px;color:var(--ink)}
.ct .camp-card p{color:var(--ink-soft);font-size:14px;line-height:1.6;margin:0 0 14px;flex:1}
.ct .camp-meta{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:13px;color:var(--ink);font-weight:600;margin-bottom:16px}
.ct .camp-cta{color:var(--navy);font-weight:800}[data-theme="dark"] .ct .camp-cta{color:#fff}.ct .camp-cta:hover{color:var(--lime-deep)}
@media(max-width:900px){.ct .camp-grid{grid-template-columns:1fr}}
/* Coaches profiles page (#5) */
.ct .page-hero{padding:130px 0 46px;background:var(--bg-alt);text-align:center;border-bottom:1px solid var(--border)}
.ct .page-hero .eyebrow{justify-content:center}
.ct .page-hero h1{font-size:clamp(34px,5vw,54px);margin:8px 0 8px;letter-spacing:-1px}
.ct .page-hero p{color:var(--ink-soft);margin:0;font-size:17px}
.ct .cp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;padding:64px 0}
.ct .cp{background:var(--surface);border:1px solid var(--border);border-radius:20px;overflow:hidden;display:flex;flex-direction:column;transition:.25s}
.ct .cp:hover{transform:translateY(-6px);border-color:var(--lime);box-shadow:0 18px 44px rgba(10,42,79,.12)}
.ct .cp-photo{aspect-ratio:4/3;background:var(--surface-2);display:grid;place-items:center;color:var(--ink-soft);font-size:44px;font-weight:800}
.ct .cp-photo img{width:100%;height:100%;object-fit:cover}
.ct .cp-body{padding:24px;display:flex;flex-direction:column;gap:6px}
.ct .cp-name{font-size:20px;font-weight:800;color:var(--ink);margin:0}
.ct .cp-role{color:#fff;background:var(--navy);align-self:flex-start;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:1px;padding:4px 10px;border-radius:999px}
.ct .cp-creds{color:var(--lime-deep);font-weight:700;font-size:14px}
.ct .cp-bio{color:var(--ink-soft);font-size:14.5px;line-height:1.7;margin:4px 0 0}
.ct .back-home{display:inline-flex;align-items:center;gap:8px;color:var(--lime-deep);font-weight:800;font-size:14px}
@media(max-width:900px){.ct .cp-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.ct .cp-grid{grid-template-columns:1fr}}
