/* Visual QA: predictable grids, uncropped artwork and readable contrast. */
:root { --color-primary:#18794e; --color-primary-dark:#105c3c; --color-text-light:#58645e; --hp-green:#18794e; --hp-green-dark:#105c3c; --hp-text-soft:#58645e; }
.pla-guide-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)); }
.pla-guide-grid:has(> :only-child) { max-width:680px; margin-inline:auto; }
.steps-row,.hp-journey-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; align-items:stretch; }
.steps-row:has(> .step-card:nth-child(7)),.hp-journey-steps { grid-template-columns:repeat(4,minmax(0,1fr)); }
.step-card,.hp-journey-step { min-width:0; max-width:none; width:auto; margin:0; }
.step-connector,.hp-journey-arrow { display:none; }
.hp-journey-step { background:#fffaf0; border-color:#e3e8dc; backdrop-filter:none; }
.hp-journey-step:hover { background:#fff; }
.hp-journey-step--result { background:#f7eead; }
.hp-journey-step h3 { color:#173d32; }
.hp-journey-step p,.hp-js-num { color:#40594c; }
.hp-journey-bg { background:linear-gradient(135deg,#105c3c,#18794e); }
.hp-journey-step h3 { min-height:2.6em; display:grid; align-items:center; }
.hp-pc-age { align-self:flex-start; color:#173d32; }
.hp-program-card ul { margin-top:auto; }
.hp-text-link,.hp-section-eyebrow { color:#186342; }
.hp-journey .hp-text-link,.hp-journey .hp-text-link:hover { color:#fff; text-decoration:underline; text-underline-offset:4px; }
.hp-testi-info span,.hp-blog-tag { color:#52675e; }
.btn-primary,.contact-form input[type=submit],.holiday-signup-form input[type=submit] { background:#176b45; color:#fff; }
.btn-whatsapp { background:#126b42; color:#fff; }
.btn-primary:hover,.btn-whatsapp:hover { background:#105333; color:#fff; }
.final-cta-section .btn-primary { background:#f7eead; color:#173d32; border:2px solid #f7eead; }
/* Keep light CTA buttons readable even alongside a cached legacy !important rule. */
.final-cta-section .btn-whatsapp { background:#fff; color:#173d32 !important; }
.final-cta-section .btn-whatsapp:is(:hover,:focus-visible) { background:#f0f6ee; color:#173d32 !important; }
.final-cta-section .btn-whatsapp:focus-visible { outline:3px solid #f7eead; outline-offset:4px; }
:is(.page-hero,.proof-bar,.why-pla-section,.final-cta-section,.assessment-cta-banner,.hp-booking-section,.holiday-hero,.holiday-mid-cta) {
 background:linear-gradient(135deg,#105c3c,#18794e);
}
.why-pla-card { background:#105c3c; }
.why-pla-card p { color:#fff; }
.pain-image-badge .badge-num,.pain-image-badge .badge-txt { color:#173d32; }
.pain-image-badge .badge-num { display:block; }
.blog-card-image,.hp-blog-img { background:#f5f3ec; }
.blog-card-image img,.hp-blog-img img { object-fit:contain; }
.blog-card:hover .blog-card-image img,.hp-blog-card:hover .hp-blog-img img { transform:none; }
.blog-featured-img { object-fit:contain; height:auto; max-height:none; }
.holiday-testimonials-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.holiday-testimonials-grid .htc-featured { grid-column:1/-1; }
.contact-quick-card,.cqc-text,.lc-val { min-width:0; }
.contact-quick-bar { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
.contact-quick-bar--two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.cqc-text a,.lc-val a { overflow-wrap:anywhere; }
input::placeholder,textarea::placeholder { color:#657169; opacity:1; }
input,select,textarea { font-size:16px; }
.holiday-video-wrap { height:auto; padding:0; border:1px solid #dbe6de; background:#f0f6ee; }
.pla-video-preview { display:grid; place-items:center; position:relative; width:100%; aspect-ratio:16/9; border:0; cursor:pointer; background:#173d32; overflow:hidden; }
.pla-video-preview img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; opacity:.6; }
.pla-video-preview span { position:relative; background:#fff; color:#173d32; padding:12px 20px; border-radius:30px; font-weight:700; font-size:1rem; }
.holiday-video-wrap iframe { display:block; position:static; width:100%; aspect-ratio:16/9; height:auto; border:0; }
.pla-media-link { display:block; padding:12px 16px; background:#f0f6ee; color:#105c3c; font-weight:600; text-align:center; text-decoration:underline; }
.lc-map { display:flex; flex-direction:column; background:#edf3ed; min-height:320px; }
.lc-map iframe { flex:1; min-height:280px; width:100%; }
@media(max-width:1000px) {
 .contact-quick-bar { grid-template-columns:minmax(0,1fr); }
 .steps-row:has(> .step-card:nth-child(7)),.hp-journey-steps { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:860px) {
 .home .hp-worries-image,.home .hp-approach-image { display:block; width:100%; }
 .hp-worries-image img,.hp-approach-image img { width:100%; height:auto; aspect-ratio:4/3; object-fit:contain; }
}
@media(max-width:760px) {
 .steps-row,.steps-row:has(> .step-card:nth-child(7)),.hp-journey-steps { grid-template-columns:minmax(0,1fr); gap:20px; }
 .hp-journey-step h3 { min-height:0; }
 .hp-journey-bg { padding:52px 0; }
 .step-card,.hp-journey-step { padding:24px; }
 .proof-items { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 12px; }
 .proof-divider { display:none; }
 .proof-item { padding:0; min-width:0; }
 .holiday-testimonials-grid { grid-template-columns:minmax(0,1fr); }
 .contact-quick-bar { padding:16px; }
 .cqc-icon { flex-shrink:0; }
 .whatsapp-float { right:12px; bottom:calc(16px + env(safe-area-inset-bottom)); width:44px; height:44px; }
 .whatsapp-float svg { width:44px; height:44px; }
 body:has(.mobile-sticky-cta:not(.hide)) .whatsapp-float { bottom:calc(84px + env(safe-area-inset-bottom)); }
 .hero-split-image { min-height:0; aspect-ratio:4/3; background-position:center 35%; }
 .btn,.btn-whatsapp { max-width:100%; white-space:normal; text-align:center; justify-content:center; }
}
/* Maths lesson example uses the same visual language as the online panels. */
.pla-maths-page .pla-maths-example { margin-top:24px; padding:20px 24px; border-left:4px solid #336c4b; border-radius:0 16px 16px 0; background:#f0faf5; }
.pla-maths-page .pla-maths-example h3 { margin:0 0 10px; color:#244c37; font-size:1.3rem; }
.pla-maths-page .pla-maths-example p { margin:0; }
/* Online programmes: genuine portal information and a compact trial invitation. */
.pla-online-page .pla-online-intro { max-width:760px; margin:0 auto 30px; text-align:center; color:var(--color-text-medium); }
.pla-online-page .pla-online-feedback-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin-top:30px; }
.pla-online-page .pla-online-feedback-grid article { padding:26px; border:1px solid #dce7dc; border-radius:20px; background:#fff; }
.pla-online-page .pla-online-feedback-grid h3 { margin:0 0 12px; color:#244c37; font-size:1.3rem; }
.pla-online-page .pla-online-feedback-grid p { margin:0; color:var(--color-text-medium); }
.pla-online-page .pla-online-badges { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; list-style:none; padding:0; margin:22px 0 26px; }
.pla-online-page .pla-online-badges li { padding:8px 14px; background:#fff; border:1px solid #dce7dc; border-radius:30px; color:#244c37; font-size:1rem; font-weight:600; }
.pla-online-page .pla-online-trial { max-width:900px; margin:32px auto 0; padding:32px 24px; border:1px solid #dce7dc; border-radius:20px; background:#f0faf5; text-align:center; }
.pla-online-page .pla-online-trial h3 { margin:0 0 12px; color:#244c37; font-size:clamp(1.4rem,2.4vw,1.8rem); }
.pla-online-page .pla-online-trial p { max-width:620px; margin:0 auto; color:var(--color-text-medium); }
.pla-online-page .pla-online-trial .btn { min-height:48px; max-width:100%; white-space:normal; }
.pla-online-page .pla-online-trial a:focus-visible { outline:3px solid #336c4b; outline-offset:4px; }
@media (max-width:760px) {
    .pla-online-page .pla-online-feedback-grid { grid-template-columns:minmax(0,1fr); }
    .pla-online-page .pla-online-feedback-grid article { padding:22px; }
}
/* Reading programme: concrete lesson examples and parent information. */
.pla-reading-page .pla-reading-intro { max-width:760px; margin:0 auto 32px; text-align:center; color:var(--color-text-medium); }
.pla-reading-page .pla-reading-start-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.pla-reading-page .pla-reading-start-grid article { border-top:2px solid #c8dfcd; padding:24px 8px 0; }
.pla-reading-page .pla-reading-label { color:#336c4b; font-weight:800; }
.pla-reading-page .pla-reading-start-grid h3 { margin:12px 0; font-size:1.3rem; color:#244c37; }
.pla-reading-page .pla-reading-start-grid p { color:var(--color-text-medium); }
.pla-reading-page .pla-level-detail { margin:18px 0 0; font-size:1rem; line-height:1.65; }
.pla-reading-page .pla-level-detail dt { font-weight:700; color:#244c37; margin-top:18px; }
.pla-reading-page .pla-level-detail dd { margin:6px 0 0; color:var(--color-text-medium); }
.pla-reading-page #inside-a-lesson h3 { font-size:1.3rem; color:#244c37; }
.pla-reading-page .pla-blending-example { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:20px 0; }
.pla-reading-page .pla-blending-example > span:not(.pla-blending-arrow),.pla-reading-page .pla-blending-example strong { display:grid; place-items:center; padding:10px 16px; min-width:48px; background:#f7eead; color:#244c37; border-radius:12px; font-size:1.6rem; font-weight:700; }
.pla-reading-page .pla-blending-example strong { background:#336c4b; color:#fff; }
.pla-reading-page .pla-reading-feedback-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-top:30px; }
.pla-reading-page .pla-reading-feedback-grid article { padding:28px; background:#f0faf5; border:1px solid #dce7dc; border-radius:20px; }
.pla-reading-page .pla-reading-feedback-grid h3 { font-size:1.3rem; color:#244c37; margin-bottom:12px; }
.pla-reading-page .pla-reading-feedback-grid p { color:var(--color-text-medium); }
.pla-reading-page .pla-reading-feedback-grid a { color:#244c37; font-weight:700; text-decoration:underline; text-underline-offset:4px; }
.pla-reading-page .pla-reading-online-note { background:#fff8e6!important; }
.pla-reading-page .pla-reading-trial-invitation { max-width:900px; margin:36px auto 0; padding:32px 24px; background:#f0faf5; border:1px solid #dce7dc; border-radius:20px; text-align:center; }
.pla-reading-page .pla-reading-trial-invitation h3 { color:#244c37; font-size:clamp(1.4rem,2.4vw,1.8rem); margin:0 0 12px; }
.pla-reading-page .pla-reading-trial-invitation p { max-width:620px; margin:0 auto; color:var(--color-text-medium); }
.pla-reading-page .pla-reading-trial-badges { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; list-style:none; padding:0; margin:22px 0 26px; }
.pla-reading-page .pla-reading-trial-badges li { padding:8px 14px; background:#fff; border:1px solid #dce7dc; border-radius:30px; font-size:1rem; color:#244c37; font-weight:600; }
.pla-reading-page .pla-reading-trial-invitation .btn { min-height:48px; max-width:100%; white-space:normal; }
.pla-reading-page .pla-reading-trial-invitation a:focus-visible,.pla-reading-page .pla-reading-feedback-grid a:focus-visible { outline:3px solid #336c4b; outline-offset:4px; }
@media (max-width:760px) {
    .pla-reading-page .pla-reading-start-grid,.pla-reading-page .pla-reading-feedback-grid { grid-template-columns:minmax(0,1fr); }
    .pla-reading-page .pla-reading-feedback-grid article { padding:22px; }
}
/* Equal subject choices; programme details remain on their own pages. */
.home .hp-hero-ctas .hp-btn-hero-primary { min-width:190px; text-align:center; }
.hp-programme-links { display:flex; flex-direction:column; gap:10px; }
.hp-programme-links a:focus-visible { outline:3px solid #336c4b; outline-offset:4px; }
/* Easy-to-scan formats and ages beneath homepage enquiry buttons. */
.hp-programme-details { display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; width:100%; }
.hp-programme-detail { display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px; padding:9px 13px; border:1px solid rgba(36,76,55,.16); border-radius:14px; background:rgba(255,255,255,.65); color:#244c37; font-size:1rem; line-height:1.5; }
.hp-programme-detail strong { font-weight:700; }
.hp-programme-detail > span { border-left:1px solid rgba(36,76,55,.2); padding-left:10px; white-space:nowrap; }
/* Online learning visual in the Find Us card. */
.lc-online-badge.lc-online-badge--image { width:40%; max-width:420px; min-width:280px; padding:0; gap:0; justify-content:flex-start; flex-direction:column; overflow:hidden; }
.lc-online-learning-image { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:cover; }
.lc-online-learning-caption { padding:24px; text-align:center; }
.lc-online-learning-caption strong { display:block; margin-bottom:10px; }
.lc-online-learning-caption p { font-size:1rem; }
@media (max-width:900px) {
    .lc-online-badge.lc-online-badge--image { width:100%; max-width:none; min-width:0; }
    .lc-online-learning-image { max-height:400px; aspect-ratio:4/3; object-position:center; }
}
/* Colourful, scattered learning symbols: letters left, maths right. */
.home .hp-hero-mascot { padding-top:140px; }
.home .hp-hero-mascot .hp-hero-float-badge { top:160px; }
.hp-learning-symbols { position:absolute; top:0; left:4%; right:4%; height:115px; pointer-events:none; }
.hp-symbol-cluster { position:absolute; top:0; width:43%; height:100%; }
.hp-symbol-cluster--letters { left:0; }
.hp-symbol-cluster--maths { right:0; }
.hp-learning-symbol { position:absolute; display:block; font-family:var(--font-heading); font-size:48px; font-weight:800; line-height:1; text-shadow:0 3px 5px rgba(23,61,50,.15); }
.hp-symbol-cluster--letters .hp-learning-symbol:nth-child(1) { left:0; top:30px; color:#ffb09a; transform:rotate(-14deg); }
.hp-symbol-cluster--letters .hp-learning-symbol:nth-child(2) { left:40%; top:0; color:#fff2b8; transform:rotate(10deg); }
.hp-symbol-cluster--letters .hp-learning-symbol:nth-child(3) { right:0; top:55px; color:#d8c8ff; transform:rotate(-8deg); }
.hp-symbol-cluster--maths .hp-learning-symbol:nth-child(1) { left:12%; top:4px; color:#d8c8ff; transform:rotate(-12deg); }
.hp-symbol-cluster--maths .hp-learning-symbol:nth-child(2) { right:0; top:20px; color:#ffb09a; transform:rotate(13deg); }
.hp-symbol-cluster--maths .hp-learning-symbol:nth-child(3) { left:44%; top:65px; color:#fff2b8; transform:rotate(-6deg); }
.hp-symbol-cluster--maths .hp-learning-symbol:nth-child(4) { left:0; top:75px; color:#fff9e8; font-size:32px; transform:rotate(8deg); }
.hp-symbol-cluster--maths .hp-learning-symbol:nth-child(5) { right:2%; top:85px; color:#fff9e8; font-size:30px; transform:rotate(-10deg); }
@media (max-width:760px) {
    .home .hp-hero-mascot { padding-top:0; }
    .home .hp-hero-mascot .hp-learning-symbols { position:relative; inset:auto; width:90%; height:115px; grid-column:1/-1; grid-row:1; justify-self:center; margin-bottom:10px; }
    .hp-learning-symbol { font-size:38px; }
}
/* Preserve the complete illustrated learning activity at every screen width. */
.program-card-image.program-card-image--illustration {
    aspect-ratio: 4 / 3;
    background: #fff8e6;
}
.program-card-image--illustration img {
    object-fit: contain;
}
.program-card:hover .program-card-image--illustration img {
    transform: none;
}
