@import url('fonts.css');
:root{--ink:#243c3a;--teal:#216b65;--plum:#70566b;--line:#dde5df;--cream:#f7f8f4}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;color:var(--ink);background:#fff;font-family:Manrope,Arial,sans-serif;line-height:1.65}a{color:inherit}button,select{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}[hidden]{display:none!important}.wrap{width:min(1240px,calc(100% - 64px));margin:auto}.preview{text-align:center;background:#e9f0eb;font-size:11px;letter-spacing:.08em;padding:9px}.preview span{letter-spacing:0;margin-left:14px}.header{display:flex;align-items:center;justify-content:space-between;padding:28px 0}.brand{text-decoration:none;font-size:22px;font-weight:700;color:var(--plum);line-height:1}.brand>span{display:block;color:var(--teal);font-size:30px;letter-spacing:-1.6px}.brand b{color:var(--teal)}.brand small{display:block;font-size:9px;letter-spacing:1.4px;margin-top:13px}nav,.actions{display:flex;align-items:center;gap:28px}nav>a{text-decoration:none;font-size:13px;font-weight:650}.button{border:1px solid var(--teal);background:var(--teal);color:white;display:inline-flex;justify-content:center;align-items:center;gap:26px;border-radius:50px;padding:16px 24px;font-weight:650;text-decoration:none;transition:transform .2s,box-shadow .2s,background .2s}.button:hover{transform:translateY(-2px);box-shadow:0 6px 18px #216b6520;background:#16554f}.small-button{padding:12px 20px}.secondary{background:white;color:var(--teal)}.secondary:hover{background:#eef4ef}.text-link{font-size:13px;font-weight:700;text-underline-offset:5px}.hero{display:grid;grid-template-columns:1.1fr 1fr;gap:50px;align-items:center;padding:54px 0 65px}.eyebrow{text-transform:uppercase;font-size:10px;letter-spacing:1.8px;font-weight:750;display:block}.dot{display:inline-block;width:7px;height:7px;background:#77a38c;border-radius:50%;margin-right:8px}h1,h2,h3,p{margin:0}h1{font-size:clamp(44px,5.3vw,72px);line-height:1.12;letter-spacing:-3px;margin:23px 0}h1 em{font-style:normal;color:var(--plum)}h2{font-size:clamp(30px,3.3vw,44px);line-height:1.18;letter-spacing:-1.6px;margin:15px 0 22px}h3{font-size:21px;line-height:1.3;letter-spacing:-.6px}p{font-size:15px;color:#586561}p+p{margin-top:15px}.hero-copy>p{max-width:470px;font-size:17px}.hero .actions{align-items:flex-start;flex-direction:column;gap:18px;margin:30px 0}.hero-note{font-size:11px;color:#677770}.hero-art{position:relative;background:#eff2eb;border-radius:160px 160px 24px 24px;overflow:hidden;min-height:470px}.hero-art img{width:100%;height:auto;display:block}.art-label{position:absolute;bottom:25px;left:24px;font-size:11px;background:white;border-radius:30px;padding:11px 15px}.season-mark{position:absolute;top:35px;right:24px;font-size:9px;line-height:1.7;letter-spacing:1px}.season-mark strong{font-size:16px;letter-spacing:-.4px}.service-strip{background:var(--cream);border-block:1px solid var(--line)}.service-strip .wrap{display:grid;grid-template-columns:repeat(4,1fr);padding:22px 0;gap:20px}.service-strip span{font-weight:700;font-size:16px}.service-strip small{display:block;font-size:11px;font-weight:400;color:#63736b}.section{padding-top:90px;padding-bottom:90px}.section-head{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:32px}.section-head>p{max-width:370px;padding-bottom:23px}.vaccine-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.vaccine-card{border-radius:22px;padding:25px 22px;display:flex;flex-direction:column;align-items:flex-start;gap:15px;transition:transform .25s}.vaccine-card:hover{transform:translateY(-5px)}.peach{background:#fbede2}.lilac{background:#efebf4}.sage{background:#eaf0e5}.blue{background:#e8f0f4}.vaccine-card .tag{font-size:8px;letter-spacing:1px;font-weight:750}.vaccine-card p{font-size:12px;flex:1}.vaccine-card .price{font-size:25px;font-weight:650}.vaccine-card button{border:0;padding:0;background:transparent;font-weight:700;font-size:12px;text-decoration:underline;text-underline-offset:5px}.vaccine-icon{font-size:34px;height:62px}.caption{font-size:11px;line-height:1.65;margin-top:20px;color:#65716a}.planner-section{background:var(--cream);padding:80px 0}.planner-layout{display:grid;grid-template-columns:1.4fr 1fr;gap:30px;align-items:start}.planner-main{min-width:0}.switch{display:flex;border:1px solid var(--line);padding:5px;border-radius:50px;background:white;margin-bottom:30px}.switch button{flex:1;border:0;border-radius:40px;background:transparent;font-size:12px;padding:13px 10px;color:var(--ink)}.switch button[aria-pressed=true]{background:var(--ink);color:white}.step-label{font-size:15px;font-weight:650;margin:25px 0}.step-label>span{font-size:11px;padding:8px;background:#e3eade;border-radius:50%;margin-right:10px}.plan-choices{display:grid;grid-template-columns:1fr 1fr;gap:12px}.choice{padding:18px;background:white;border:1px solid var(--line);border-radius:15px;display:flex;align-items:center;gap:12px;cursor:pointer;transition:border-color .2s,transform .2s}.choice:has(input:checked){border-color:var(--teal);box-shadow:0 0 0 1px var(--teal);background:#f1f7f2}.choice:hover{transform:translateY(-2px)}.choice input{accent-color:var(--teal);width:18px;height:18px}.choice strong,.choice small{display:block}.choice strong{font-size:14px}.choice small{font-size:12px;color:#63736b}.clinical-note{display:flex;gap:12px;border-left:3px solid #93ac94;padding:15px;background:#eaf0e6;margin-top:24px;border-radius:0 10px 10px 0}.clinical-note p{font-size:12px}.plan-summary{background:#fff;border:1px solid var(--line);border-radius:24px;padding:30px;box-shadow:0 8px 40px #243c3a06}.summary-heading{display:flex;justify-content:space-between;gap:12px;margin-bottom:24px}.summary-heading .eyebrow{font-size:8px}#plan-count{font-size:10px}.plan-summary h3{font-size:25px;margin-bottom:22px}.empty-plan{font-size:13px;padding:18px 0}.selected-item{display:flex;justify-content:space-between;font-size:13px;padding:10px 0}.totals{border-top:1px solid var(--line);margin-top:22px;padding-top:15px}.totals>div{display:flex;justify-content:space-between;font-size:12px;margin:10px 0}.totals .total{font-size:16px;margin-top:20px}.total strong{font-size:30px;line-height:1}.bundle-note{font-size:11px;border-radius:10px;background:#f1f5ee;padding:12px;margin:22px 0}.plan-summary .button{width:100%}.plan-summary>.text-link{display:block;margin-top:20px;font-size:12px}.nhs-panel-head{display:flex;gap:15px;align-items:center;margin-bottom:18px}.nhs-label{background:#005eb8;color:white;font-style:italic;font-weight:900;font-size:20px;line-height:1;padding:6px 8px;align-self:start}select{width:100%;padding:14px;border:1px solid #a5b4ab;border-radius:10px;background:#fff;color:var(--ink);margin:9px 0 20px}label[for=age-band]{font-size:12px;font-weight:650;display:block;margin-top:25px}#nhs-results article{background:white;border-radius:12px;padding:17px;margin-top:12px}#nhs-results h3{font-size:16px}#nhs-results p{font-size:12px;margin:8px 0}#nhs-results a{font-size:12px}.nhs-explainer,.season-section,.faq,.visit{display:grid;grid-template-columns:1fr 1fr;gap:80px}.nhs-explainer>.button,.nhs-explainer .button{margin-top:25px}.route-list article{display:flex;gap:20px;padding:25px 0;border-bottom:1px solid var(--line)}.route-list p{font-size:13px;margin:12px 0}.route-list a{display:block;font-size:12px;margin:8px 0}.season-section{border-radius:25px;background:#ede8ef;padding:45px 65px;align-items:center}.season-number{font-size:140px;letter-spacing:-10px;color:var(--plum);font-weight:600;line-height:1}.season-number span{display:block;font-size:16px;letter-spacing:0;line-height:1.5;margin:22px 0}.season-section p{font-size:13px}.season-section .text-link{display:block;margin-top:24px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:45px}.steps article>span{font-size:12px;background:#edf1e8;border-radius:50%;display:inline-flex;width:40px;height:40px;align-items:center;justify-content:center;margin-bottom:22px}.steps p{font-size:13px;margin-top:16px}.faq{border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line);padding:20px 0}summary{cursor:pointer;font-size:14px;font-weight:650}details p{margin-top:15px;font-size:13px}.visit{background:#eff2eb;border-radius:24px;padding:55px;align-items:center;margin-bottom:40px}.visit-brand{font-size:55px;line-height:1;letter-spacing:-3px;font-weight:700;color:var(--teal)}.visit-brand span{display:block;color:var(--plum);font-size:42px;letter-spacing:-2px}.visit-brand small{display:block;font-size:9px;letter-spacing:2px;margin-top:25px}.visit .actions{margin-top:25px;gap:15px;flex-wrap:wrap}.visit .button{font-size:12px}.sources{font-size:12px}footer{padding:40px 0 110px;display:flex;justify-content:space-between;gap:30px;align-items:center}footer p{font-size:10px}footer>div:last-child{display:flex;flex-direction:column;gap:8px;font-size:11px}.floating-plan{position:fixed;bottom:22px;right:24px;display:flex;align-items:center;gap:18px;background:var(--ink);color:white;border:1px solid #ffffff30;border-radius:50px;padding:14px 22px;text-decoration:none;box-shadow:0 5px 24px #243c3a30;z-index:5;font-size:13px}.floating-plan small{display:block;font-size:9px;color:#d2dfd3}.floating-plan:hover{background:var(--teal)}dialog{border:0;border-radius:24px;padding:40px;width:min(580px,calc(100% - 30px));max-height:85vh;color:var(--ink);box-shadow:0 20px 100px #0003}dialog::backdrop{background:#172c2866;backdrop-filter:blur(4px)}dialog h2{font-size:32px}dialog p{margin-top:15px}dialog .actions{margin-top:25px;flex-wrap:wrap;gap:12px}dialog .button{font-size:12px}.close{float:right;border:0;background:#eff2eb;border-radius:50%;width:34px;height:34px;font-size:23px;color:var(--ink)}:focus-visible{outline:3px solid #b590b1;outline-offset:4px}.skip{position:absolute;left:15px;top:-80px;background:#fff;padding:10px;z-index:20}.skip:focus{top:10px}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}@media(max-width:900px){.wrap{width:calc(100% - 36px)}nav>a:not(.button){display:none}.hero{gap:25px}.hero-art{min-height:0}h1{font-size:49px}.vaccine-grid{grid-template-columns:1fr 1fr}.planner-layout{grid-template-columns:1fr 1fr;gap:18px}.plan-choices{grid-template-columns:1fr}.nhs-explainer,.season-section,.faq,.visit{gap:35px}.season-section{padding:35px}.season-number{font-size:100px}.visit-brand{font-size:42px}.visit-brand span{font-size:33px}.section{padding-block:65px}}@media(max-width:600px){.preview{font-size:9px}.preview span{display:block;margin:3px 0 0}.header{padding:20px 0}.brand>span{font-size:26px}.brand{font-size:19px}.brand small{font-size:7px}.small-button{font-size:11px;padding:12px 15px}.hero{grid-template-columns:1fr;padding:30px 0 40px;gap:35px}h1{font-size:51px;letter-spacing:-2.5px}.hero-copy>p{font-size:15px}.hero-art{max-height:370px;border-radius:100px 100px 20px 20px}.hero-art img{margin-top:-50px}.hero .actions{margin:25px 0}.service-strip .wrap{grid-template-columns:1fr 1fr;gap:18px}.service-strip span{font-size:14px}.section-head{display:block;margin-bottom:25px}.section-head>p{padding:0}.section{padding-block:50px}h2{font-size:32px}.vaccine-grid{gap:10px}.vaccine-card{padding:20px 16px;border-radius:16px}.vaccine-card h3{font-size:18px}.vaccine-card p{font-size:11px}.vaccine-card .tag{font-size:7px}.planner-section{padding:50px 0}.planner-layout{grid-template-columns:1fr}.plan-choices{grid-template-columns:1fr 1fr}.choice{padding:15px 10px;gap:7px}.choice strong{font-size:12px}.plan-summary{padding:25px}.nhs-explainer,.season-section,.faq,.visit{grid-template-columns:1fr;gap:30px}.season-section{padding:30px}.season-number{font-size:95px}.steps{grid-template-columns:1fr;gap:30px}.steps article{position:relative;padding-left:58px}.steps article>span{position:absolute;left:0;top:0}.steps p{margin-top:10px}.visit{padding:30px}.visit-brand{font-size:40px}.visit-brand span{font-size:31px}.visit-brand small{margin-top:17px}footer{align-items:start;flex-wrap:wrap;padding-bottom:120px}.floating-plan{bottom:15px;right:15px;padding:12px 19px}dialog{padding:25px}}

/* Village family branding and explicit booking routes */
:root{--teal:#26758a;--plum:#75436e;--ink:#273d3c}.brand{white-space:nowrap;font-size:22px;letter-spacing:-1px}.brand>span{display:inline;font-size:inherit;letter-spacing:inherit}.brand b{color:var(--plum);font-weight:500}.brand small{font-size:8px;letter-spacing:.09em}.hero-art{border-radius:28px;min-height:460px;align-self:stretch;background:#eef4f3}.hero-art img{height:100%;min-height:460px;object-fit:cover;object-position:43% center}.art-label{right:20px;left:20px;text-align:center;font-size:11px}.pathway-section{padding:25px 0 65px}.pathway-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.pathway-card{border:1px solid #d8e1e7;border-radius:22px;padding:32px}.nhs-pathway{background:#f0f6fc;border-top:4px solid #005eb8}.private-pathway{background:#f7f2f6;border-top:4px solid #75436e}.route-tag{display:block;font-size:10px;letter-spacing:.08em;font-weight:800;margin-bottom:18px}.nhs-pathway .route-tag,.nhs-summary .route-tag{color:#005eb8}.pathway-card h3{font-size:27px;margin-bottom:16px}.pathway-card>p{max-width:490px}.pathway-card .button{margin:22px 0 0;font-size:13px}.pathway-links{display:flex;flex-wrap:wrap;align-items:center;gap:18px}.pathway-links>a:not(.button){font-size:13px;font-weight:700;text-underline-offset:4px}.nhs-button{background:#005eb8!important;border-color:#005eb8!important;color:white!important}.nhs-button:hover{background:#004b93!important}.private-pathway>.button{background:#75436e;border-color:#75436e}.nhs-summary{border-top:4px solid #005eb8}.nhs-summary .button{margin-top:25px}h1{letter-spacing:-2px}h2{letter-spacing:-1px}.vaccine-icon{display:none}@media(max-width:600px){.brand,.brand>span{font-size:19px}.brand small{font-size:7px}.pathway-grid{grid-template-columns:1fr}.pathway-card{padding:24px}.pathway-card h3{font-size:24px}.pathway-section{padding:5px 0 40px}.hero-art{min-height:330px;max-height:370px;border-radius:22px}.hero-art img{min-height:330px;margin:0;height:370px;object-position:40% center}.pathway-links{gap:16px}.pathway-links .button{width:100%;margin-bottom:2px}}
