/* Commercial service pages: independent layout, no article sidebar or byline. */
.service-landing { --service-accent: var(--signal); }
.service-landing h1,.service-landing h2,.service-landing h3,.service-landing p { margin-top:0; }
.service-landing p { line-height:1.65; }
.service-grade { white-space:nowrap; }
.service-hero { padding:120px 0 0; background:var(--ink); color:#fff; }
.service-crumb { display:flex; gap:12px; flex-wrap:wrap; color:#c4c0d0; font-size:13px; margin-bottom:44px; }
.service-crumb a:hover { color:#fff; text-decoration:underline; }
.service-hero-grid { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(0,1fr); gap:60px; align-items:center; padding-bottom:56px; }
.service-eyebrow { margin:0 0 16px; color:#655077; font-size:12px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }
.service-hero .service-eyebrow,.service-contact .service-eyebrow { color:var(--signal); }
.service-hero h1 { max-width:820px; margin-bottom:24px; font-size:clamp(36px,4.7vw,65px); line-height:1.08; letter-spacing:-.045em; text-wrap:balance; }
.service-lead { max-width:700px; font-size:18px; color:#dedbe6; }
.service-actions { display:flex; flex-wrap:wrap; align-items:center; gap:20px; margin-top:28px; }
.service-actions .public-button.light { color:var(--ink); background:var(--signal); border-color:var(--signal); }
.service-text-link { font-size:14px; font-weight:600; line-height:1.5; text-decoration:underline; text-underline-offset:5px; }
.service-caption { margin:16px 0 0; color:#c4c0d0; font-size:12px; }
.service-route { padding:28px; border:1px solid #655d79; border-radius:24px; background:linear-gradient(150deg,#382b58,#201c2a); transform:rotate(1deg); }
.service-route-top { display:flex; justify-content:space-between; align-items:center; color:#ddd4ee; font-size:11px; letter-spacing:.15em; }
.service-route-top span:last-child { color:var(--signal); font-size:44px; line-height:1; font-weight:600; }
.service-route-promise { margin:24px 0!important; font-size:25px; letter-spacing:-.025em; line-height:1.25!important; font-weight:600; }
.service-route ol { list-style:none; padding:0; margin:0 0 26px; }
.service-route li { display:flex; align-items:center; gap:12px; padding:12px 0; border-top:1px solid #5a506b; font-size:14px; }
.service-route li span { font-size:11px; color:var(--signal); }
.service-route-price { padding:20px; border-radius:14px; color:var(--ink); background:var(--signal); }
.service-route-price strong { display:block; font-size:30px; letter-spacing:-.04em; }
.service-route-price span { display:block; margin:6px 0 12px; font-size:12px; line-height:1.6; }
.service-route-price a { font-size:13px; font-weight:600; text-decoration:underline; text-underline-offset:4px; }
.service-facts { display:flex; flex-wrap:wrap; list-style:none; gap:16px 32px; padding:22px 0; margin:0; border-top:1px solid #46414e; color:#e0dce9; font-size:13px; }
.service-facts li::before { content:'✓'; color:var(--signal); margin-right:9px; }
.service-jump { display:flex; gap:32px; overflow:auto; padding-block:22px; border-bottom:1px solid var(--line); font-size:13px; font-weight:600; }
.service-jump a { white-space:nowrap; }
.service-jump a:hover { color:var(--violet-deep); }
.service-section { padding-block:80px; }
.service-section-head { max-width:760px; margin-bottom:36px; }
.service-section-head h2,.service-teacher h2,.service-contact h2 { font-size:clamp(28px,3.2vw,44px); line-height:1.17; letter-spacing:-.035em; margin-bottom:20px; text-wrap:balance; }
.service-section-head>p:last-child:not(.service-eyebrow) { color:var(--ink-soft); max-width:640px; }
.service-fit-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.service-fit-card { padding:28px; background:#fff; border:1px solid var(--line); border-radius:18px; }
.service-number { display:block; color:var(--violet-deep); font-size:13px; font-weight:600; margin-bottom:24px; }
.service-landing h3 { font-size:21px; line-height:1.35; letter-spacing:-.025em; margin-bottom:14px; }
.service-fit-card p,.service-topic p,.service-process p { color:var(--ink-soft); font-size:15px; margin-bottom:0; }
.service-programme-band { background:#e9e4f4; }
.service-programme-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.service-topic { padding:30px; background:#fff; border-radius:16px; }
.service-topic-tag { display:inline-block; margin-bottom:20px; padding:7px 12px; border:1px solid #d7caeb; border-radius:6px; color:#503280; font-size:12px; font-weight:600; }
.service-topic a { display:inline-block; margin-top:20px; color:var(--violet-deep); font-weight:600; font-size:14px; text-decoration:underline; text-underline-offset:4px; }
.service-landing-individual .service-programme-grid,.service-landing-group .service-programme-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.service-inline-offer { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:30px; margin-top:24px; border:1px solid #afa2c5; border-radius:16px; }
.service-inline-offer strong { font-size:22px; }.service-inline-offer p { margin:8px 0 0; color:var(--ink-soft); max-width:560px; }
.service-section-note { margin:24px 0 0; color:var(--ink-soft); font-size:14px; }
.service-section-note a { color:var(--violet-deep); text-decoration:underline; text-underline-offset:4px; }
.service-process { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:32px; }
.service-process li { border-top:2px solid #b6a1ed; padding-top:22px; }
.service-teacher-band { background:#e9e7e1; }
.service-teacher { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:80px; align-items:center; padding-block:64px; }
.service-teacher figure { margin:0; max-width:360px; width:100%; }
.service-teacher img { width:100%; height:380px; object-fit:cover; object-position:center 24%; border-radius:20px; display:block; }
.service-teacher figcaption { margin-top:14px; color:var(--ink-soft); font-size:12px; }
.service-teacher-lead { font-size:22px; letter-spacing:-.02em; }.service-teacher a { display:inline-block; margin:12px 22px 0 0; font-size:14px; color:var(--violet-deep); text-decoration:underline; text-underline-offset:4px; }
.service-pricing { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.service-price-card { padding:32px; border:1px solid var(--line); background:white; border-radius:20px; }
.service-price-featured { border-color:#a390d2; background:#ede6ff; }
.service-price-value { font-size:clamp(26px,3vw,38px); font-weight:700; letter-spacing:-.04em; margin-bottom:18px; }
.service-price-value span { display:block; font-size:13px; font-weight:400; letter-spacing:0; color:var(--ink-soft); }
.service-price-card>p:not(.service-price-value) { color:var(--ink-soft); font-size:15px; }
.service-included { grid-column:1/-1; padding:26px 32px; border:1px solid var(--line); border-radius:16px; }
.service-included ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); list-style:none; padding:0; gap:14px 24px; }
.service-included li::before { content:'✓'; color:var(--violet-deep); margin-right:10px; }.service-included>p { color:var(--ink-soft); margin:22px 0 0; font-size:14px; }
.service-landing-individual .service-included,.service-landing-group .service-included { grid-column:auto; padding:32px; }.service-landing-individual .service-included ul,.service-landing-group .service-included ul { grid-template-columns:1fr; }
.service-faq-band { background:#ebe9e3; }.service-faq-layout { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:70px; }
.service-faq details { border-bottom:1px solid #c3bfb5; }.service-faq details:first-child { border-top:1px solid #c3bfb5; }
.service-faq summary { display:flex; align-items:center; gap:18px; justify-content:space-between; cursor:pointer; list-style:none; padding:22px 0; }.service-faq summary::-webkit-details-marker { display:none; }
.service-faq summary h3 { font-size:17px; line-height:1.45; margin:0; }.service-faq summary>span { color:var(--violet-deep); font-size:25px; flex-shrink:0; }.service-faq details[open] summary>span { transform:rotate(45deg); }.service-faq details>p { color:var(--ink-soft); font-size:15px; margin:0 0 24px; }
.service-contact { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(0,1fr); gap:60px; padding:50px; background:var(--ink); color:#fff; border-radius:24px; }.service-contact>div>p:not(.service-eyebrow) { max-width:700px; color:#d6d0e1; }.service-contact ol { list-style:none; padding:0; margin:0; align-self:center; }.service-contact li { display:flex; align-items:center; gap:20px; padding:22px 0; border-top:1px solid #58515f; }.service-contact li strong { font-size:30px; color:var(--signal); font-weight:400; }.service-contact li span { font-size:14px; line-height:1.5; }
.service-reading { padding-bottom:80px; }.service-reading h2 { font-size:25px; letter-spacing:-.02em; }.service-reading ul { list-style:none; padding:0; margin:24px 0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }.service-reading li { border-top:1px solid var(--line); padding-top:20px; }.service-reading li a { display:flex; gap:18px; justify-content:space-between; font-size:14px; line-height:1.6; }.service-reading>a { font-size:13px; color:var(--violet-deep); text-decoration:underline; text-underline-offset:4px; }
.service-landing :is(a,summary):focus-visible { outline:3px solid #8a66ee; outline-offset:5px; border-radius:3px; }
/* A longer directions menu must stay reachable on short desktop screens. */
.public-more-menu { max-height:calc(100dvh - 120px); overflow-y:auto; }
@media(max-width:1000px) { .service-hero-grid { gap:30px; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); }.service-route { padding:22px; }.service-process { grid-template-columns:repeat(2,minmax(0,1fr)); }.service-teacher,.service-faq-layout { gap:40px; }.service-contact { gap:30px; padding:36px; }.service-fit-grid { gap:16px; }.service-fit-card { padding:22px; } }
@media(max-width:760px) { .service-hero-grid,.service-teacher,.service-faq-layout,.service-contact { grid-template-columns:1fr; }.service-hero-grid { gap:36px; }.service-route { max-width:560px; transform:none; }.service-hero h1 { font-size:clamp(34px,7.7vw,52px); }.service-crumb { margin-bottom:32px; }.service-hero-grid { padding-bottom:32px; }.service-lead { font-size:16px; }.service-section { padding-block:52px; }.service-fit-grid,.service-landing-individual .service-programme-grid,.service-landing-group .service-programme-grid { grid-template-columns:1fr; }.service-pricing { grid-template-columns:1fr; }.service-teacher { padding-block:48px; }.service-teacher figure { max-width:300px; }.service-teacher img { height:320px; }.service-included ul { grid-template-columns:1fr; }.service-faq-layout { gap:8px; }.service-contact { padding:30px; gap:26px; }.service-contact ol { display:none; }.service-inline-offer { align-items:flex-start; flex-direction:column; }.service-reading ul { grid-template-columns:1fr; gap:20px; }.service-reading { padding-bottom:50px; }.service-jump { gap:24px; }.service-facts { gap:12px; flex-direction:column; } }
@media(max-width:480px) { .service-programme-grid,.service-process { grid-template-columns:1fr; }.service-actions { align-items:flex-start; flex-direction:column; gap:22px; }.service-actions>.public-button { width:100%; justify-content:center; }.service-route { padding:20px; }.service-route-promise { font-size:23px; }.service-topic,.service-price-card,.service-included,.service-landing-individual .service-included,.service-landing-group .service-included { padding:24px; }.service-contact { padding:26px 22px; }.service-section-head h2,.service-teacher h2,.service-contact h2 { font-size:29px; }.service-hero h1 { overflow-wrap:break-word; } }
@media(prefers-reduced-motion:reduce) { .service-landing * { scroll-behavior:auto; transition:none!important; } }
