:root {
  --cream: #fbf6ef;
  --paper: #fffdf9;
  --ink: #332e33;
  --muted: #746b72;
  --plum: #6f526b;
  --plum-dark: #493747;
  --lilac: #d8c4d8;
  --rose: #d19b84;
  --olive: #798369;
  --line: rgba(61, 45, 58, .17);
  --serif: "Forum", Georgia, serif;
  --sans: "DM Sans", Arial, sans-serif;
  --page: min(1180px, calc(100vw - 48px));
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--cream); color: var(--ink); font-family: var(--sans); font-size: 16px; line-height: 1.65; overflow-x: hidden; }
body::selection { background: var(--lilac); color: var(--ink); }
a { color: inherit; }
img { display: block; max-width: 100%; }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid #b06d4e; outline-offset: 4px; }

.skip-link { position: fixed; z-index: 999; left: 1rem; top: 1rem; padding: .7rem 1rem; background: #fff; transform: translateY(-150%); }
.skip-link:focus { transform: none; }

.site-header { position: relative; z-index: 30; width: 100%; min-height: 94px; padding: 16px max(24px, calc((100vw - 1280px) / 2)); display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 28px; background: rgba(251, 246, 239, .93); border-bottom: 1px solid var(--line); backdrop-filter: blur(15px); }
.site-header nav, .site-footer nav { display: flex; align-items: center; gap: 28px; }
.site-header nav a, .site-footer nav a { font-size: .85rem; font-weight: 600; text-decoration: none; }
.site-header nav a:hover, .site-footer nav a:hover { color: var(--plum); }
.site-header > .button { justify-self: end; }
.brand { display: inline-flex; align-items: center; gap: 10px; width: max-content; text-decoration: none; }
.brand img { width: 66px; height: 56px; object-fit: contain; }
.brand span { display: flex; flex-direction: column; font: 1.45rem/1 var(--serif); }
.brand small { margin-top: 5px; font: 600 .61rem/1 var(--sans); letter-spacing: .12em; text-transform: uppercase; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 13px; min-height: 52px; padding: 14px 22px; border-radius: 999px; background: var(--plum-dark); color: #fff; font-size: .88rem; font-weight: 700; text-decoration: none; transition: transform .25s, background .25s, box-shadow .25s; }
.button:hover { transform: translateY(-2px); background: var(--plum); box-shadow: 0 13px 25px rgba(70, 47, 67, .16); }
.button-small { min-height: 44px; padding: 11px 19px; }
.button-light { background: #fff; color: var(--plum-dark); }
.text-link { display: inline-block; font-weight: 700; text-decoration-thickness: 1px; text-underline-offset: 5px; }
.eyebrow { margin: 0 0 16px; color: var(--plum); font-size: .73rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.section { padding: 120px max(24px, calc((100vw - 1180px) / 2)); }
h1, h2, h3, p { overflow-wrap: break-word; }
h1, h2, h3 { margin: 0; font-family: var(--serif); font-weight: 400; line-height: .98; }
h2 { font-size: clamp(3.2rem, 6vw, 5.4rem); letter-spacing: -.025em; }
h3 { font-size: 2.5rem; }

.hero { position: relative; min-height: 780px; padding: 76px max(24px, calc((100vw - 1180px) / 2)) 72px; display: grid; grid-template-columns: .95fr 1.05fr; align-items: center; gap: 70px; isolation: isolate; overflow: hidden; background: linear-gradient(135deg, #f5e8e6 0%, var(--cream) 56%, #eee4ef 100%); }
.hero-copy { position: relative; z-index: 4; }
.hero h1 { max-width: 700px; font-size: clamp(4.7rem, 8vw, 8rem); letter-spacing: -.045em; }
.hero-intro { max-width: 590px; margin: 30px 0 32px; color: #5b5259; font-size: 1.1rem; line-height: 1.75; }
.hero-actions { display: flex; align-items: center; gap: 26px; flex-wrap: wrap; }
.hero-photo { position: relative; z-index: 3; width: 100%; aspect-ratio: .78; max-height: 610px; border: 10px solid rgba(255, 253, 249, .8); border-radius: 52% 52% 18px 18px; background: linear-gradient(rgba(40, 28, 37, .08), rgba(40, 28, 37, .13)), url('assets/external/0648e256e71b86f2.jpg') center/cover; box-shadow: 0 36px 80px rgba(71, 46, 66, .2); }
.hero-photo::after { content: "A place where children can be children"; position: absolute; right: -30px; bottom: 35px; width: 150px; padding: 22px; background: var(--paper); color: var(--ink); font: 1.25rem/1.12 var(--serif); transform: rotate(2deg); box-shadow: 0 16px 35px rgba(60, 42, 55, .16); }
.curtain { position: absolute; z-index: 0; top: -12%; width: 28vw; height: 86%; border-radius: 0 0 50% 50%; opacity: .66; animation: curtainBreath 6s ease-in-out infinite; }
.curtain-left { left: -16vw; background: var(--lilac); transform-origin: left top; }
.curtain-right { right: -17vw; background: #e0b8a6; transform-origin: right top; animation-delay: -2.2s; }
.hero-doodle { position: absolute; z-index: 2; color: var(--plum); font: 3.5rem var(--serif); animation: float 4.8s ease-in-out infinite; }
.hero-doodle-one { right: 4.5%; top: 10%; }
.hero-doodle-two { left: 47%; bottom: 6%; width: 66px; height: 66px; display: grid; place-items: center; border-radius: 50%; background: var(--rose); color: var(--plum-dark); font-size: 1.25rem; animation-delay: -1.4s; }
.paw-hint { position: absolute; z-index: 7; right: 30px; bottom: 24px; display: flex; align-items: center; gap: 9px; padding: 8px 13px; border: 1px solid var(--line); border-radius: 999px; background: rgba(255, 253, 249, .82); font-size: .67rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; backdrop-filter: blur(10px); }
.paw-hint span { font-size: 1.2rem; animation: pawHint 1.8s ease-in-out infinite; }

.trust-strip { min-height: 86px; display: flex; align-items: center; justify-content: center; gap: clamp(20px, 5vw, 72px); padding: 20px 24px; background: var(--plum-dark); color: #fff; }
.trust-strip span { position: relative; font-family: var(--serif); font-size: clamp(1.05rem, 1.7vw, 1.35rem); white-space: nowrap; }
.trust-strip span + span::before { content: "·"; position: absolute; left: clamp(-38px, -2.5vw, -18px); color: #d5b5ce; }

.section-heading { display: grid; grid-template-columns: .55fr 1.45fr; gap: 50px; margin-bottom: 70px; }
.section-heading h2 { max-width: 900px; }
.who { background: var(--paper); }
.who-grid { display: grid; grid-template-columns: .82fr 1.18fr; gap: clamp(45px, 7vw, 95px); align-items: start; }
.who-photo { position: sticky; top: 28px; min-height: 660px; border-radius: 240px 240px 20px 20px; background: url('assets/external/941d45c58eaaac1d.jpg') center/cover; box-shadow: 0 28px 70px rgba(66, 44, 60, .14); }
.who-copy { max-width: 680px; padding-top: 8px; color: var(--muted); }
.who-copy p { margin: 0 0 25px; }
.who-copy .lead { color: var(--ink); font: 2rem/1.3 var(--serif); }
details { margin-top: 30px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
summary { padding: 21px 4px; color: var(--ink); font-weight: 700; cursor: pointer; }
.details-copy { padding: 6px 4px 8px; }

.values { background: #e9dee9; }
.values-intro { max-width: 880px; margin-bottom: 65px; }
.value-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.value-card { min-height: 365px; padding: 34px; display: flex; flex-direction: column; border: 1px solid rgba(75, 51, 72, .12); background: rgba(255, 253, 249, .68); }
.value-card:nth-child(2) { background: #f4e8e1; }
.value-card:nth-child(3) { background: #e6e7dd; }
.value-number { margin-bottom: auto; color: var(--plum); font-size: .7rem; font-weight: 700; letter-spacing: .15em; }
.value-card h3 { margin-bottom: 20px; }
.value-card p { margin: 0; color: var(--muted); }

.settings { background: var(--cream); }
.settings-head { display: grid; grid-template-columns: 1.3fr .7fr; gap: 80px; align-items: end; margin-bottom: 64px; }
.settings-head > p { max-width: 430px; margin: 0 0 8px; color: var(--muted); }
.settings-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 25px; }
.setting-card { overflow: hidden; background: var(--paper); border: 1px solid var(--line); }
.setting-image { height: 390px; transition: transform .8s cubic-bezier(.2,.8,.2,1); }
.setting-card:hover .setting-image { transform: scale(1.025); }
.setting-clapham .setting-image { background: url('assets/external/be776621099d537f.png') center/cover; }
.setting-balham .setting-image { background: url('assets/external/78f443f208b53a3c.jpg') center/cover; }
.setting-copy { padding: 38px 38px 42px; }
.setting-copy h3 { margin-bottom: 18px; font-size: clamp(2.5rem, 4vw, 3.8rem); }
.setting-copy > p:not(.eyebrow) { min-height: 84px; margin: 0 0 25px; color: var(--muted); }

.living-window { display: grid; grid-template-columns: .72fr 1.28fr; gap: clamp(50px, 8vw, 110px); align-items: center; background: #322832; color: #fff; }
.living-window .eyebrow { color: #dcb9d6; }
.window-intro > p:not(.eyebrow) { max-width: 430px; color: #d5ccd4; }
.window-controls { margin-top: 32px; display: flex; align-items: center; gap: 13px; }
.window-controls button { width: 48px; height: 48px; border: 1px solid rgba(255,255,255,.3); border-radius: 50%; background: transparent; color: #fff; font-size: 1.2rem; cursor: pointer; }
.window-controls button:hover { background: #fff; color: var(--plum-dark); }
.window-controls span { min-width: 62px; text-align: center; font-size: .72rem; letter-spacing: .12em; }
.poster-window { position: relative; min-height: 610px; overflow: hidden; border: 14px solid #f6eee6; outline: 1px solid rgba(255,255,255,.25); outline-offset: 8px; background: #ead8e6; box-shadow: 0 30px 80px rgba(0,0,0,.3); }
.poster { position: absolute; inset: 0; padding: 50px; display: flex; flex-direction: column; justify-content: space-between; opacity: 0; transform: translateX(28px) scale(.985); pointer-events: none; transition: opacity .7s, transform .7s; }
.poster.is-active { opacity: 1; transform: none; pointer-events: auto; }
.poster-one { background: linear-gradient(155deg, #d9c5d8, #f7e9e1); color: #362d35; }
.poster-two { background: linear-gradient(150deg, #768269, #c8ccb7); color: #fff; }
.poster-three { background: linear-gradient(150deg, #d39479, #f2d1c2); color: #3f2d2c; }
.poster::before { content: "•ᴥ•"; position: absolute; right: 38px; top: 38px; width: 72px; height: 72px; display: grid; place-items: center; border: 1px solid currentColor; border-radius: 50%; font: 1.2rem var(--serif); opacity: .6; }
.poster-label { font-size: .7rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.poster p { max-width: 350px; margin: 0 0 14px; font-size: .9rem; letter-spacing: .03em; }
.poster h3 { max-width: 520px; font-size: clamp(4rem, 6vw, 6.4rem); }
.poster a { width: max-content; font-weight: 700; text-underline-offset: 5px; }
.window-reflection { position: absolute; z-index: 5; inset: 0; pointer-events: none; background: linear-gradient(115deg, rgba(255,255,255,.13), transparent 32% 72%, rgba(255,255,255,.08)); }

.day { position: relative; overflow: hidden; background: #f3e4dd; }
.day::before { content: "PLAY"; position: absolute; right: -3vw; top: 45px; color: rgba(255,255,255,.34); font: clamp(9rem, 19vw, 20rem)/.8 var(--serif); pointer-events: none; }
.day-head { position: relative; z-index: 2; display: grid; grid-template-columns: 1.25fr .75fr; gap: 90px; align-items: end; margin-bottom: 65px; }
.day-head > p { max-width: 440px; margin: 0 0 8px; color: #675d63; }
.day-scenes { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.scene { position: relative; min-height: 500px; overflow: hidden; border-radius: 24px; box-shadow: 0 20px 45px rgba(63,43,57,.09); transition: flex .45s, transform .35s, box-shadow .35s; }
.scene:hover { transform: translateY(-7px) rotate(-.3deg); box-shadow: 0 28px 55px rgba(63,43,57,.15); }
.scene button { position: relative; z-index: 2; width: 100%; height: 500px; padding: 28px; display: flex; flex-direction: column; align-items: flex-start; border: 0; color: var(--ink); text-align: left; cursor: pointer; background: transparent; }
.scene-morning { background: #d8c2d9; }
.scene-create { background: #e0a58d; }
.scene-explore { background: #aeb89c; }
.scene-home { background: #dfcc9f; }
.scene::after { content: ""; position: absolute; width: 260px; height: 260px; right: -115px; bottom: -100px; border-radius: 50%; background: rgba(255,255,255,.25); transition: transform .55s; }
.scene.is-open::after { transform: scale(1.7); }
.scene-number { font-size: .7rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.scene-icon { margin: auto 0; font-size: 4.6rem; filter: saturate(.8); transition: transform .5s cubic-bezier(.2,.8,.2,1); }
.scene:hover .scene-icon, .scene.is-open .scene-icon { transform: translateY(-6px) rotate(7deg) scale(1.08); }
.scene-title { font: 2.7rem/.92 var(--serif); }
.scene-action { margin-top: 20px; font-size: .7rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.scene-action b { font-size: 1rem; }
.scene-story { position: absolute; z-index: 4; inset: auto 0 0; padding: 28px; background: rgba(51,46,51,.94); color: #fff; transform: translateY(102%); transition: transform .45s cubic-bezier(.2,.8,.2,1); }
.scene-story p { margin: 0; font-size: .9rem; line-height: 1.65; }
.scene.is-open .scene-story { transform: none; }
.scene.is-open .scene-action b { display: inline-block; transform: rotate(45deg); }

.parents { position: relative; overflow: hidden; background: #fffdf9; }
.parents::before { content: "“"; position: absolute; right: 3vw; top: -70px; color: #efe5ef; font: 30rem/.8 var(--serif); }
.reviews-head { position: relative; z-index: 2; display: grid; grid-template-columns: 1fr auto; gap: 70px; align-items: end; margin-bottom: 62px; }
.reviews-head h2 { max-width: 850px; }
.review-score { min-width: 185px; display: grid; grid-template-columns: auto 1fr; column-gap: 13px; align-items: center; }
.review-score strong { grid-row: 1 / 3; font: 4.6rem/1 var(--serif); }
.review-score span { color: #b07958; letter-spacing: .08em; }
.review-score small { color: var(--muted); font-size: .72rem; }
.review-stage { position: relative; z-index: 2; min-height: 470px; padding: 65px clamp(28px, 7vw, 90px) 42px; overflow: hidden; border: 1px solid var(--line); background: #eee3ef; }
.review-quote { position: absolute; left: 30px; top: -5px; color: rgba(111,82,107,.13); font: 13rem/.8 var(--serif); }
.review-slides { position: relative; min-height: 285px; }
.review-card { position: absolute; inset: 0; margin: 0; display: grid; grid-template-columns: 1fr auto; gap: 45px; align-items: end; opacity: 0; transform: translateX(45px); pointer-events: none; transition: opacity .55s, transform .55s; }
.review-card.is-active { opacity: 1; transform: none; pointer-events: auto; }
.review-card p { max-width: 880px; margin: 0; font: clamp(2.2rem, 4vw, 4.2rem)/1.08 var(--serif); }
.review-card footer { min-width: 140px; padding-bottom: 9px; color: var(--plum); text-align: left; }
.review-card footer strong, .review-card footer span { display: block; }
.review-card footer strong { font-size: .85rem; text-transform: uppercase; letter-spacing: .1em; }
.review-card footer span { margin-top: 5px; color: var(--muted); font-size: .72rem; }
.review-nav { display: flex; align-items: center; gap: 20px; }
.review-nav > button { width: 48px; height: 48px; border: 1px solid rgba(61,45,58,.27); border-radius: 50%; background: transparent; color: var(--ink); font-size: 1.2rem; cursor: pointer; }
.review-nav > button:hover { background: var(--plum-dark); color: #fff; }
.review-dots { display: flex; gap: 9px; }
.review-dots button { width: 9px; height: 9px; padding: 0; border: 0; border-radius: 99px; background: rgba(61,45,58,.25); cursor: pointer; transition: width .25s, background .25s; }
.review-dots button.is-active { width: 31px; background: var(--plum); }
.reviews-source { position: absolute; right: clamp(28px, 7vw, 90px); bottom: 53px; font-size: .78rem; font-weight: 700; text-underline-offset: 5px; }

.local-map { background: var(--cream); }
.map-head { display: grid; grid-template-columns: 1.25fr .75fr; gap: 80px; align-items: end; margin-bottom: 58px; }
.map-head > p { max-width: 430px; margin: 0 0 8px; color: var(--muted); }
.map-frame { position: relative; min-height: 660px; overflow: hidden; border: 12px solid #fffaf5; border-radius: 35px; background: #eedbc3; box-shadow: 0 28px 75px rgba(70,50,63,.14); }
.map-board { position:absolute; inset:0; overflow:hidden; }
.map-board > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.map-badge { position: absolute; z-index: 4; left: 26px; top: 24px; padding: 11px 15px; border: 2px solid #594a4d; border-radius: 9px; background: rgba(255,249,239,.94); box-shadow: 5px 6px 0 rgba(89,74,77,.18); font-size: .67rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.map-pin { position: absolute; z-index: 6; left: var(--x); top: var(--y); padding: 0; border: 0; background: transparent; color: #55484b; cursor: pointer; transform: translate(-50%,-50%); }
.map-pin.station { cursor:default; pointer-events:none; }
.map-pin > span { width: 58px; height: 58px; display: grid; place-items: center; margin: auto; border: 3px solid #594a4d; border-radius: 50%; background: #fff8ed; box-shadow: 5px 6px 0 rgba(89,74,77,.2); font-size: 1.35rem; transition: transform .25s; }
.map-pin.home > span { background: #d8bed0; }
.map-pin b { display: block; margin-top: 9px; padding: 6px 10px; border: 2px solid #594a4d; border-radius: 8px; background: #fff9ef; font-size: .65rem; white-space: nowrap; }
.map-pin small { position: absolute; left: 50%; bottom: calc(100% + 13px); width: 225px; padding: 15px; border: 2px solid #594a4d; border-radius: 14px; background: #fffdf7; box-shadow: 6px 7px 0 #594a4d; font-size: .73rem; font-weight: 600; transform: translate(-50%,10px); opacity: 0; visibility: hidden; transition: .25s; }
.map-pin:hover > span, .map-pin.is-open > span { transform: translateY(-6px) rotate(6deg); }
.map-pin:hover small, .map-pin:focus-visible small, .map-pin.is-open small { opacity: 1; visibility: visible; transform: translate(-50%,0); }
.pin-clapham { --x: 37%; --y: 20%; }
.pin-cavendish { --x: 55%; --y: 35%; }
.pin-thornton { --x: 78%; --y: 57%; }
.pin-balham { --x: 22%; --y: 78%; }

.contact { padding: 70px max(24px, calc((100vw - 1280px) / 2)); background: #efe3dd; }
.contact-inner { display: grid; grid-template-columns: 1.45fr .55fr; min-height: 680px; overflow: hidden; border-radius: 52px; background: var(--paper); box-shadow: 0 30px 70px rgba(66,44,60,.1); }
.contact-copy { padding: clamp(50px, 7vw, 105px); display: flex; flex-direction: column; justify-content: center; }
.contact h2 { margin-bottom: 34px; font-size: clamp(4.8rem, 8vw, 8rem); }
.contact-copy > p:not(.eyebrow) { max-width: 720px; margin: 0 0 38px; color: var(--muted); font-size: 1.15rem; }
.contact-actions { display: grid; grid-template-columns: repeat(3, max-content); gap: 13px; }
.contact-button { min-height: 64px; padding: 18px 28px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--line); border-radius: 999px; font-size: .9rem; font-weight: 700; text-decoration: none; transition: transform .25s, background .25s, color .25s; }
.contact-button:hover { transform: translateY(-3px); background: #eee3ef; }
.contact-button.primary { background: var(--plum-dark); color: #fff; }
.contact-button.primary:hover { background: var(--plum); }
.contact-photo { min-height: 680px; background: linear-gradient(rgba(255,255,255,.1),rgba(255,255,255,.1)), url('assets/external/4c7239a7e1255081.jpg') center/cover; }

.site-footer { min-height: 190px; padding: 42px max(24px, calc((100vw - 1180px) / 2)); display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 30px; background: var(--cream); border-top: 1px solid var(--line); }
.site-footer > p { justify-self: center; font-family: var(--serif); font-size: 1.25rem; }
.site-footer nav { justify-self: end; }

.paw-mark { position: fixed; z-index: 100; left: 0; top: 0; width: 34px; height: 34px; display: grid; place-items: center; color: #8f6788; font-size: 24px; pointer-events: none; transform: translate(-50%, -50%) rotate(var(--paw-angle, 0deg)) scale(var(--paw-scale, 1)); filter: sepia(.16) drop-shadow(0 4px 5px rgba(65,42,60,.18)); animation: pawFade 1.6s cubic-bezier(.2,.7,.2,1) forwards; }
.paw-mark.is-burst { color: #b87e68; animation-duration: 1.85s; }
.reveal { opacity: 0; transform: translateY(24px); transition: opacity .8s ease, transform .8s ease; }
.reveal.is-visible { opacity: 1; transform: none; }

@keyframes curtainBreath { 50% { transform: scaleX(1.06); } }
@keyframes float { 50% { transform: translateY(-16px) rotate(5deg); } }
@keyframes pawHint { 50% { transform: translateX(5px) rotate(8deg); } }
@keyframes pawFade { 0% { opacity: 0; transform: translate(-50%,-50%) rotate(var(--paw-angle)) scale(.35); } 18% { opacity: .9; transform: translate(-50%,-50%) rotate(var(--paw-angle)) scale(var(--paw-scale)); } 100% { opacity: 0; transform: translate(calc(-50% + var(--paw-drift)), -85%) rotate(calc(var(--paw-angle) + 12deg)) scale(.72); } }

@media (max-width: 1050px) {
  .site-header { grid-template-columns: 1fr auto; }
  .site-header nav { display: none; }
  .hero { grid-template-columns: 1fr 1fr; gap: 35px; }
  .hero h1 { font-size: clamp(4.2rem, 8vw, 6.4rem); }
  .living-window { grid-template-columns: .85fr 1.15fr; gap: 50px; }
  .day-scenes { grid-template-columns: 1fr 1fr; }
  .contact-actions { grid-template-columns: 1fr; }
  .contact-button { width: 100%; }
  .site-footer { grid-template-columns: 1fr 1fr; }
  .site-footer > p { display: none; }
}

@media (max-width: 760px) {
  :root { --page: calc(100vw - 36px); }
  .site-header { min-height: 78px; padding: 11px 18px; }
  .brand img { width: 53px; height: 48px; }
  .brand span { font-size: 1.15rem; }
  .site-header > .button { min-height: 40px; padding: 9px 14px; font-size: .74rem; }
  .section { padding: 82px 20px; }
  .hero { min-height: auto; padding: 64px 20px 76px; grid-template-columns: 1fr; gap: 48px; }
  .hero h1 { font-size: clamp(4.15rem, 20vw, 6.2rem); }
  .hero-intro { font-size: 1rem; }
  .hero-photo { width: 88%; justify-self: center; max-height: none; }
  .hero-photo::after { right: -22px; bottom: 20px; width: 130px; padding: 17px; font-size: 1.05rem; }
  .hero-doodle-two { display: none; }
  .paw-hint { right: 16px; bottom: 13px; font-size: .58rem; }
  .trust-strip { justify-content: flex-start; overflow-x: auto; gap: 38px; }
  .trust-strip span { font-size: 1rem; }
  .section-heading, .settings-head, .day-head, .map-head, .reviews-head { grid-template-columns: 1fr; gap: 18px; margin-bottom: 42px; }
  h2 { font-size: clamp(3rem, 15vw, 4.5rem); }
  .who-grid, .settings-grid, .living-window, .parents { grid-template-columns: 1fr; }
  .who-photo { position: relative; top: 0; min-height: 520px; }
  .who-copy .lead { font-size: 1.65rem; }
  .value-grid { grid-template-columns: 1fr; }
  .value-card { min-height: 285px; }
  .settings-head > p { margin-top: 8px; }
  .setting-image { height: 300px; }
  .setting-copy { padding: 29px 26px 34px; }
  .setting-copy > p:not(.eyebrow) { min-height: auto; }
  .living-window { gap: 46px; }
  .poster-window { min-height: 540px; border-width: 9px; }
  .poster { padding: 34px 28px; }
  .poster h3 { font-size: clamp(3.5rem, 16vw, 5rem); }
  .day-scenes { grid-template-columns: 1fr; }
  .scene, .scene button { min-height: 390px; height: 390px; }
  .scene-icon { font-size: 3.8rem; }
  .review-score { margin-top: 20px; }
  .review-stage { min-height: 590px; padding: 55px 25px 35px; }
  .review-slides { min-height: 405px; }
  .review-card { grid-template-columns: 1fr; align-content: start; gap: 28px; }
  .review-card p { font-size: clamp(2rem, 9vw, 3rem); }
  .reviews-source { position: static; display: inline-block; margin-top: 24px; }
  .map-frame { min-height: 520px; border-width: 7px; }
  .map-board > img { width: auto; min-width: 900px; object-position: 55% center; }
  .map-badge { left: 14px; top: 14px; }
  .map-pin b { display: none; }
  .map-pin > span { width: 48px; height: 48px; }
  .contact { padding: 40px 18px; }
  .contact-inner { grid-template-columns: 1fr; min-height: 0; border-radius: 30px; }
  .contact-copy { padding: 55px 26px; }
  .contact h2 { font-size: clamp(4rem, 19vw, 6.4rem); }
  .contact-photo { min-height: 410px; }
  .site-footer { grid-template-columns: 1fr; }
  .site-footer nav { justify-self: start; flex-wrap: wrap; gap: 18px 26px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .paw-mark, .paw-hint { display: none; }
  .reveal { opacity: 1; transform: none; }
}

/* V7 review direction — the airy, clean feeling of the original site */
.review-stage {
  min-height: 430px;
  padding: 60px 100px 72px;
  overflow: hidden;
  border: 1px solid rgba(111,82,107,.11);
  border-radius: 2px;
  background: #fff;
  box-shadow: 0 24px 60px rgba(73,55,71,.055);
  transform: none;
  clip-path: none;
}
.review-stage::before, .review-stage::after { display: none; }
.review-quote { left: 50%; top: 21px; color: #eadfea; font-size: 6.5rem; transform: translateX(-50%); }
.review-slides { min-height: 265px; }
.review-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 27px;
  text-align: center;
}
.review-card p { max-width: 920px; font: 1.25rem/1.65 var(--sans); }
.review-card footer { align-self: center; padding: 0; color: var(--ink); text-align: center; }
.review-card footer strong { font: 1.05rem/1.2 var(--serif); letter-spacing: .05em; }
.review-card footer span { font-size: .68rem; }
.review-nav { position: absolute; inset: 50% 28px auto; justify-content: space-between; transform: translateY(-50%); pointer-events: none; }
.review-nav > button { pointer-events: auto; border: 0; font-size: 1.8rem; }
.review-nav > button:hover { background: transparent; color: var(--plum); transform: scale(1.18); }
.review-dots { position: absolute; left: 50%; top: 168px; transform: translateX(-50%); pointer-events: auto; }
.review-dots button { width: 7px; height: 7px; background: rgba(51,46,51,.72); }
.review-dots button.is-active { width: 7px; border: 1px solid var(--plum); background: transparent; animation: none; }
.reviews-source { right: 42px; bottom: 27px; }

@media (max-width: 760px) {
  .review-stage { min-height: 500px; padding: 64px 42px 78px; }
  .review-slides { min-height: 340px; }
  .review-card p { font-size: 1rem; line-height: 1.6; }
  .review-nav { inset-inline: 6px; }
  .review-dots { top: 175px; }
  .reviews-source { right: 18px; bottom: 22px; }
}

/* v3 refinement — a calmer, more compact rhythm */
:root { --page: min(1120px, calc(100vw - 48px)); }
.site-header { min-height: 82px; padding-top: 11px; padding-bottom: 11px; }
.brand img { width: 58px; height: 49px; }
.brand span { font-size: 1.28rem; }
.button { min-height: 48px; padding: 12px 20px; }
.button-small { min-height: 41px; }
.section { padding-top: 88px; padding-bottom: 88px; }
h2 { font-size: clamp(2.8rem, 5vw, 4.45rem); }
h3 { font-size: 2.15rem; }
.hero { min-height: 680px; padding-top: 58px; padding-bottom: 58px; gap: 58px; }
.hero h1 { font-size: clamp(4.25rem, 7vw, 6.75rem); }
.hero-intro { margin-top: 24px; margin-bottom: 27px; font-size: 1.02rem; }
.hero-photo { max-height: 535px; }
.trust-strip { min-height: 72px; }
.section-heading { margin-bottom: 52px; }
.who-grid { gap: clamp(40px, 6vw, 76px); }
.who-photo { min-height: 560px; }
.who-copy .lead { font-size: 1.75rem; }
.values-intro { margin-bottom: 48px; }
.value-card { min-height: 305px; padding: 29px; }
.settings-head { margin-bottom: 48px; }
.setting-image { height: 330px; }
.setting-copy { padding: 31px 32px 35px; }
.living-window { gap: clamp(42px, 6vw, 76px); }
.poster-window { min-height: 520px; }
.poster { padding: 42px; }
.poster h3 { font-size: clamp(3.5rem, 5vw, 5.1rem); }

.day::before { display: none; }
.day-head { grid-template-columns: 1.15fr .85fr; gap: 60px; margin-bottom: 48px; }
.day-head h2 { max-width: 700px; }
.day-scenes { gap: 10px; }
.scene, .scene button { min-height: 375px; height: 375px; border-radius: 18px; }
.scene button { padding: 24px; }
.scene-icon { width: max-content; margin: auto 0; padding: 7px 12px; border: 1px solid rgba(51,46,51,.3); border-radius: 999px; font: 1.05rem/1 var(--serif); text-transform: lowercase; filter: none; }
.scene:hover .scene-icon, .scene.is-open .scene-icon { transform: translateY(-3px) rotate(-2deg); }
.scene-title { font-size: 2.25rem; line-height: .96; }
.scene-action { margin-top: 16px; font-size: .6rem; letter-spacing: .045em; }
.scene-story { padding: 22px 24px; }
.scene-story p { font-size: .82rem; line-height: 1.55; }

.reviews-head { gap: 50px; margin-bottom: 44px; align-items: center; }
.reviews-head h2 { max-width: 720px; }
.review-score { min-width: 220px; grid-template-columns: 82px 1fr; }
.review-score strong { font-size: 3.85rem; }
.review-score span { font-size: .92rem; white-space: nowrap; }
.review-stage { min-height: 420px; padding: 52px 68px 35px; }
.review-slides { min-height: 270px; }
.review-card { grid-template-columns: 1fr; align-content: start; gap: 22px; }
.review-card p { max-width: 1040px; font-size: clamp(2rem, 3.3vw, 3.25rem); line-height: 1.08; }
.review-card footer { min-width: 0; padding: 0; }
.review-nav { position: absolute; left: 68px; bottom: 34px; }
.reviews-source { right: 68px; bottom: 45px; }

.map-head { margin-bottom: 44px; }
.map-frame { min-height: 570px; }
.contact { padding-top: 52px; padding-bottom: 52px; }
.contact-inner { min-height: 570px; }
.contact-copy { padding: clamp(44px, 6vw, 78px); }
.contact h2 { font-size: clamp(4rem, 6.6vw, 6.2rem); }
.contact-photo { min-height: 570px; }
.site-footer { min-height: 160px; padding-top: 32px; padding-bottom: 32px; }

@media (max-width: 1050px) {
  .review-stage { min-height: 455px; }
  .review-slides { min-height: 300px; }
}

@media (max-width: 760px) {
  .section { padding-top: 68px; padding-bottom: 68px; }
  .hero { padding-top: 50px; padding-bottom: 64px; }
  .hero h1 { font-size: clamp(3.75rem, 18vw, 5.5rem); }
  .who-photo { min-height: 460px; }
  .scene, .scene button { min-height: 345px; height: 345px; }
  .review-stage { min-height: 555px; padding: 43px 23px 30px; }
  .review-slides { min-height: 380px; }
  .review-card p { font-size: clamp(1.8rem, 8vw, 2.6rem); }
  .review-nav { position: absolute; left: 23px; bottom: 30px; }
  .reviews-source { position: absolute; right: 23px; bottom: 42px; max-width: 125px; text-align: right; line-height: 1.35; }
  .map-frame { min-height: 480px; }
  .contact-inner, .contact-photo { min-height: 0; }
  .contact-photo { height: 380px; }
}

/* v4 — tighter rhythm, tactile reviews and a more useful Teddy Trail */
:root { --page: min(1080px, calc(100vw - 44px)); }
.site-header { min-height: 74px; padding-top: 8px; padding-bottom: 8px; }
.brand img { width: 52px; height: 44px; }
.brand span { font-size: 1.18rem; }
.site-header nav { gap: 22px; }
.site-header nav a { font-size: .79rem; }
.button { min-height: 44px; padding: 10px 18px; }
.button-small { min-height: 38px; }
.section { padding-top: 68px; padding-bottom: 68px; }
h2 { font-size: clamp(2.55rem, 4.35vw, 3.85rem); }
h3 { font-size: 1.95rem; }
.eyebrow { margin-bottom: 11px; }

.hero { min-height: 600px; padding-top: 46px; padding-bottom: 46px; gap: 48px; }
.hero h1 { font-size: clamp(3.9rem, 6.2vw, 5.75rem); }
.hero-intro { margin-top: 20px; margin-bottom: 22px; font-size: 1rem; line-height: 1.62; }
.hero-photo { max-height: 470px; border-width: 8px; }
.trust-strip { min-height: 62px; padding-top: 14px; padding-bottom: 14px; }
.trust-strip .ofsted-trust { display: flex; align-items: center; }
.trust-strip .ofsted-trust img { width: 72px; height: 58px; object-fit: contain; }
.trust-strip .ofsted-trust + span::before { top: 50%; transform: translateY(-50%); }
.section-heading { gap: 38px; margin-bottom: 38px; }
.who-grid { gap: clamp(34px, 5vw, 62px); }
.who-photo { min-height: 485px; }
.who-copy p { margin-bottom: 19px; }
.who-copy .lead { font-size: 1.58rem; }
details { margin-top: 22px; }

.values-intro { margin-bottom: 24px; }
.value-card { min-height: 255px; padding: 25px; transition: transform .35s ease, box-shadow .35s ease; }
.value-card:hover { transform: translateY(-5px); box-shadow: 0 20px 38px rgba(73,55,71,.1); }
.value-card h3 { margin-bottom: 13px; }
.settings-head { gap: 55px; margin-bottom: 35px; }
.setting-image { height: 285px; }
.setting-copy { padding: 27px 28px 30px; }
.setting-copy > p:not(.eyebrow) { min-height: 70px; margin-bottom: 20px; }

.living-window { gap: clamp(36px, 5vw, 62px); }
.poster-window { min-height: 445px; border-width: 11px; }
.poster { padding: 35px; }
.poster h3 { font-size: clamp(3.15rem, 4.4vw, 4.45rem); }
.window-controls { margin-top: 24px; }
.window-controls button { width: 43px; height: 43px; }

.day-head { gap: 45px; margin-bottom: 33px; }
.day-scenes { gap: 9px; }
.scene, .scene button { min-height: 320px; height: 320px; }
.scene button { padding: 21px; }
.scene-icon { width: 48px; height: 48px; margin: auto 0; padding: 11px; display: grid; place-items: center; border: 1px solid rgba(51,46,51,.33); border-radius: 50%; background: rgba(255,253,249,.28); color: var(--ink); }
.scene-icon svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.scene:hover .scene-icon, .scene.is-open .scene-icon { transform: translateY(-4px) rotate(5deg) scale(1.05); background: rgba(255,253,249,.48); }
.scene-title { font-size: 2rem; }
.scene-action { margin-top: 13px; }
.scene-story { padding: 19px 21px; }

.parents { background: #51414f; color: #fffaf4; }
.parents::before { color: rgba(255,255,255,.055); }
.parents .eyebrow { color: #dec6da; }
.reviews-head { gap: 42px; margin-bottom: 30px; }
.reviews-head h2 { max-width: 650px; }
.review-score { min-width: 205px; }
.review-score strong { font-size: 3.35rem; }
.review-score small { color: #e1d7de; }
.review-stage { min-height: 355px; padding: 45px 58px 31px; overflow: visible; border: 1px solid #b79b74; border-radius: 2px 8px 3px 6px; color: var(--ink); background:
  linear-gradient(100deg, transparent 0 48%, rgba(113,82,54,.035) 50%, transparent 52%),
  repeating-linear-gradient(0deg, rgba(101,77,49,.026) 0, rgba(101,77,49,.026) 1px, transparent 1px, transparent 5px),
  #efe2c6;
  box-shadow: 0 22px 45px rgba(24,15,23,.24), inset 0 0 55px rgba(120,88,51,.08);
  transform: rotate(-.18deg);
  clip-path: polygon(.25% .6%, 99.65% 0, 100% 99.25%, .45% 100%);
}
.review-stage::before, .review-stage::after { content: ""; position: absolute; z-index: 5; width: 82px; height: 22px; background: rgba(223,201,157,.62); box-shadow: 0 1px 1px rgba(72,52,35,.12); pointer-events: none; }
.review-stage::before { left: 7%; top: -8px; transform: rotate(-3deg); }
.review-stage::after { right: 7%; top: -7px; transform: rotate(4deg); }
.review-quote { top: -2px; color: rgba(92,64,54,.1); font-size: 10rem; }
.review-slides { min-height: 225px; }
.review-card { gap: 16px; }
.review-card p { max-width: 980px; font-size: clamp(1.8rem, 2.85vw, 2.8rem); line-height: 1.06; }
.review-card.is-active { animation: paperWords .55s ease both; }
.review-nav { left: 58px; bottom: 28px; }
.review-nav > button { width: 42px; height: 42px; }
.reviews-source { right: 58px; bottom: 37px; }
@keyframes paperWords { from { opacity: 0; transform: translateX(22px) rotate(.2deg); } to { opacity: 1; transform: none; } }

.local-map { padding-top: 58px; padding-bottom: 62px; }
.map-head { gap: 55px; margin-bottom: 26px; }
.map-frame { min-height: 475px; border-width: 9px; border-radius: 28px; }
.map-badge { left: 20px; top: 19px; padding: 9px 12px; }
.map-pin > span { width: 50px; height: 50px; font-size: 1.12rem; }
.map-pin b { margin-top: 7px; padding: 5px 8px; }
.map-pin small { width: 130px; padding: 8px; bottom: calc(100% + 9px); box-shadow: 4px 5px 0 #594a4d; }
.map-actions { position: absolute; z-index: 12; right: 18px; bottom: 18px; width: min(360px, calc(100% - 36px)); padding: 25px; border: 1px solid rgba(71,55,69,.18); border-radius: 18px; background: rgba(255,253,247,.96); color: var(--ink); box-shadow: 0 24px 50px rgba(54,39,51,.22); backdrop-filter: blur(12px); opacity: 0; visibility: hidden; transform: translateY(16px) scale(.98); transition: opacity .3s ease, transform .3s ease, visibility .3s; }
.map-actions.is-visible { opacity: 1; visibility: visible; transform: none; }
.map-actions .eyebrow { display: block; margin: 0 28px 8px 0; }
.map-actions h3 { font-size: 1.65rem; }
.map-actions > p { margin: 6px 0 17px; color: var(--muted); font-size: .85rem; }
.map-actions-close { position: absolute; right: 14px; top: 12px; width: 32px; height: 32px; border: 1px solid var(--line); border-radius: 50%; background: transparent; color: var(--ink); font-size: 1.15rem; cursor: pointer; }
.map-action-links { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; }
.map-actions.is-station .map-action-links { grid-template-columns:1fr; }
.map-actions.is-station .map-action-links a { max-width:190px; margin:0 auto; width:100%; }
.map-action-links a { min-height: 42px; padding: 9px 8px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 999px; background: #fffaf1; font-size: .68rem; font-weight: 700; text-align: center; text-decoration: none; transition: transform .2s, background .2s; }
.map-action-links a:hover { transform: translateY(-2px); background: #e7d5e5; }
.map-directions-link { grid-template-rows:auto auto; align-content:center; gap:3px; }
.google-maps-mark { width:26px; height:26px; display:block; object-fit:contain; }

.social { padding-top: 52px; padding-bottom: 52px; display: grid; grid-template-columns: .72fr 1.28fr; gap: 54px; align-items: center; background: #d9c4d8; }
.social-copy h2 { font-size: clamp(2.55rem, 4vw, 3.65rem); }
.social-copy > p:last-child { max-width: 440px; margin: 16px 0 0; color: #675966; }
.social-links { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.social-card { min-height: 145px; padding: 24px; display: grid; grid-template-columns: 45px 1fr auto; gap: 16px; align-items: center; border: 1px solid rgba(57,43,55,.16); border-radius: 20px; color: var(--ink); text-decoration: none; transition: transform .35s ease, box-shadow .35s ease; }
.social-card:hover { transform: translateY(-6px) rotate(-.35deg); box-shadow: 0 20px 38px rgba(70,48,65,.14); }
.social-card svg { width: 42px; height: 42px; padding: 9px; border: 1px solid currentColor; border-radius: 13px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.social-card span { min-width: 0; display: grid; }
.social-card small { margin-bottom: 5px; font-size: .67rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.social-card strong { overflow-wrap: anywhere; font: 1.25rem/1.08 var(--serif); }
.social-card > b { font-size: 1.25rem; }
.social-instagram { background: linear-gradient(145deg, #f5dfcf, #e4c8dd); }
.social-facebook { background: #f7f0e7; }

.contact { padding-top: 42px; padding-bottom: 42px; }
.contact-inner { min-height: 500px; border-radius: 42px; }
.contact-copy { padding: clamp(38px, 5vw, 62px); }
.contact h2 { margin-bottom: 24px; font-size: clamp(3.55rem, 5.6vw, 5.2rem); }
.contact-copy > p:not(.eyebrow) { margin-bottom: 28px; font-size: 1.02rem; }
.contact-button { min-height: 54px; padding: 14px 22px; }
.contact-photo { min-height: 500px; background: linear-gradient(rgba(255,255,255,.05),rgba(255,255,255,.05)), url('assets/talias-playroom.jpg') center/cover; }
.site-footer { min-height: 140px; padding-top: 26px; padding-bottom: 26px; }

@media (max-width: 1050px) {
  .section { padding-top: 62px; padding-bottom: 62px; }
  .review-stage { min-height: 375px; }
  .social { grid-template-columns: 1fr; gap: 28px; }
}

@media (max-width: 760px) {
  .section { padding-top: 54px; padding-bottom: 54px; }
  .hero { padding-top: 42px; padding-bottom: 54px; }
  .hero h1 { font-size: clamp(3.55rem, 17vw, 5rem); }
  .section-heading, .settings-head, .day-head, .map-head, .reviews-head { margin-bottom: 28px; }
  .values-intro { margin-bottom: 20px; }
  .value-card { min-height: 230px; }
  .who-photo { min-height: 410px; }
  .setting-image { height: 265px; }
  .poster-window { min-height: 450px; }
  .scene, .scene button { min-height: 310px; height: 310px; }
  .review-stage { min-height: 480px; padding: 38px 22px 27px; }
  .review-slides { min-height: 330px; }
  .review-card p { font-size: clamp(1.7rem, 7.4vw, 2.35rem); }
  .review-nav { left: 22px; bottom: 25px; }
  .reviews-source { right: 22px; bottom: 35px; }
  .local-map { padding-top: 48px; }
  .map-frame { min-height: 430px; }
  .map-actions { right: 10px; bottom: 10px; width: calc(100% - 20px); padding: 20px; }
  .map-action-links { grid-template-columns: 1fr; }
  .map-action-links a { min-height: 38px; }
  .social { padding-top: 44px; padding-bottom: 44px; }
  .social-links { grid-template-columns: 1fr; }
  .social-card { min-height: 112px; padding: 19px; }
  .contact-inner { border-radius: 28px; }
  .contact-photo { min-height: 0; height: 330px; }
}

/* v5 — more personality, richer movement and clearer actions */
.site-header { min-height: 96px; padding-top: 7px; padding-bottom: 7px; grid-template-columns: 1fr auto 1fr; }
.brand-header { margin: -5px 0; }
.brand-header img { width: 158px; height: 88px; object-fit: contain; }
.site-header nav { gap: 3px; padding: 6px; border: 1px solid rgba(91,66,86,.13); border-radius: 999px; background: rgba(226,207,224,.38); box-shadow: inset 0 1px 0 rgba(255,255,255,.8); }
.site-header nav a { position: relative; padding: 9px 13px; border-radius: 999px; transition: color .25s, background .25s, transform .25s; }
.site-header nav a::after { content: ""; position: absolute; left: 50%; bottom: 3px; width: 4px; height: 4px; border-radius: 50%; background: var(--plum); opacity: 0; transform: translate(-50%,5px); transition: opacity .25s, transform .25s; }
.site-header nav a:hover { background: rgba(255,253,249,.92); color: var(--plum-dark); transform: translateY(-1px); }
.site-header nav a:hover::after { opacity: 1; transform: translate(-50%,0); }
.site-header > .button { box-shadow: 0 10px 24px rgba(73,55,71,.14); }

.trust-strip { min-height: 76px; gap: clamp(18px, 4vw, 58px); overflow: visible; }
.trust-strip .ofsted-trust { min-width: 118px; height: 88px; padding: 6px 15px; justify-content: center; border: 1px solid rgba(67,52,80,.12); border-radius: 17px; background: #fffaf2; box-shadow: 0 12px 26px rgba(24,15,23,.22); transform: rotate(-1.6deg); }
.trust-strip .ofsted-trust img { width: 90px; height: 76px; }
.trust-strip .ofsted-trust + span::before { display: none; }

.scene-icon { position: relative; width: 76px; height: 76px; padding: 0; border: 0; border-radius: 24px; background: rgba(255,255,255,.44); box-shadow: 0 13px 26px rgba(63,43,57,.13), inset 0 1px 0 rgba(255,255,255,.8); transform: rotate(-4deg); animation: iconFloat 3.2s ease-in-out infinite; }
.scene-icon > span { position: relative; z-index: 2; font-size: 3.15rem; line-height: 1; filter: drop-shadow(0 7px 8px rgba(60,42,54,.18)); }
.scene-icon i { position: absolute; right: -7px; top: -7px; width: 20px; height: 20px; border: 4px solid rgba(255,255,255,.82); border-radius: 50%; background: #ee7e76; box-shadow: 0 5px 10px rgba(76,50,67,.12); animation: orbitDot 3.2s ease-in-out infinite; }
.scene-create .scene-icon { background: linear-gradient(145deg,#ffe5a7,#f6b1a2); animation-delay: -.7s; }
.scene-create .scene-icon i { background: #7774d9; animation-delay: -.7s; }
.scene-explore .scene-icon { background: linear-gradient(145deg,#dff3aa,#9dd5a3); animation-delay: -1.4s; }
.scene-explore .scene-icon i { background: #f0b95f; animation-delay: -1.4s; }
.scene-home .scene-icon { background: linear-gradient(145deg,#fff0bd,#e6b27b); animation-delay: -2.1s; }
.scene-home .scene-icon i { background: #bd79b4; animation-delay: -2.1s; }
.scene:hover .scene-icon, .scene.is-open .scene-icon { background: rgba(255,255,255,.72); animation: iconHello .65s ease both; }
@keyframes iconFloat { 0%,100% { transform: translateY(0) rotate(-4deg); } 50% { transform: translateY(-9px) rotate(3deg); } }
@keyframes orbitDot { 0%,100% { transform: translate(0,0) scale(.85); } 50% { transform: translate(-8px,8px) scale(1.08); } }
@keyframes iconHello { 0%,100% { transform: translateY(-3px) rotate(-4deg) scale(1.04); } 35% { transform: translateY(-8px) rotate(9deg) scale(1.1); } 70% { transform: translateY(-5px) rotate(-9deg) scale(1.07); } }

.social-card { grid-template-columns: 62px 1fr auto; min-height: 152px; }
.social-logo { width: 58px; height: 58px; display: grid; place-items: center; border-radius: 18px; box-shadow: 0 12px 24px rgba(52,37,49,.16); transition: transform .35s cubic-bezier(.2,.8,.2,1); }
.social-card .social-logo svg { width: 34px; height: 34px; padding: 0; border: 0; border-radius: 0; fill: none; stroke: #fff; stroke-width: 1.9; }
.instagram-logo { background: radial-gradient(circle at 30% 100%, #ffd36d 0 18%, #fa7b3f 38%, #d83791 62%, #7353c7 100%); }
.facebook-logo { background: #1877f2; }
.social-card .facebook-logo svg { fill: #fff; stroke: #fff; }
.social-card:hover .social-logo { transform: rotate(-8deg) scale(1.1); }
.social-card strong { font-size: 1.02rem; line-height: 1.25; font-family: var(--sans); overflow-wrap: normal; word-break: normal; }
.social-card > b { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; background: rgba(255,255,255,.55); transition: transform .3s, background .3s; }
.social-card:hover > b { transform: translate(3px,-3px); background: #fff; }

.contact-actions { width: 100%; grid-template-columns: repeat(3, 1fr); align-items: stretch; }
.contact-button { min-width: 0; min-height: 88px; padding: 14px 17px; display: grid; grid-template-columns: 40px 1fr auto; gap: 11px; border: 0; border-radius: 19px; text-align: left; box-shadow: 0 13px 27px rgba(62,44,58,.1); }
.contact-button > span:not(.contact-icon) { display: grid; font-size: .88rem; line-height: 1.15; }
.contact-button small { margin-top: 5px; font-size: .64rem; font-weight: 500; opacity: .74; }
.contact-button > b { font-size: 1rem; }
.contact-icon { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 13px; background: rgba(255,255,255,.19); font-size: 1.25rem; }
.contact-button.primary { background: var(--plum-dark); color: #fff; }
.contact-button.call { background: #edc77f; color: #3f332f; }
.contact-button.question { background: #dac5df; color: #433642; }
.contact-button:hover { transform: translateY(-6px) rotate(-.5deg); box-shadow: 0 20px 34px rgba(62,44,58,.16); }
.contact-button.primary:hover { background: var(--plum); }
.contact-button.call:hover { background: #f4d394; }
.contact-button.question:hover { background: #e4d3e8; }

.review-card { transform: translateX(-55px) rotate(-.2deg); transition: opacity .36s ease, transform .36s ease; }
.review-card.is-active { animation: reviewFlyIn .48s cubic-bezier(.2,.75,.25,1) both; }
.review-dots button.is-active { animation: reviewPulse 4.2s linear both; }
@keyframes reviewFlyIn { from { opacity: 0; transform: translateX(85px) rotate(.5deg); } to { opacity: 1; transform: none; } }
@keyframes reviewPulse { from { width: 9px; } to { width: 31px; } }

@media (max-width: 1180px) {
  .brand-header img { width: 134px; height: 76px; }
  .site-header nav a { padding-left: 10px; padding-right: 10px; }
  .contact-button { grid-template-columns: 36px 1fr; }
  .contact-button > b { display: none; }
}

@media (max-width: 760px) {
  .site-header { min-height: 84px; }
  .brand-header img { width: 112px; height: 66px; }
  .trust-strip { padding-top: 11px; padding-bottom: 11px; }
  .trust-strip .ofsted-trust { min-width: 100px; height: 74px; padding: 5px 10px; }
  .trust-strip .ofsted-trust img { width: 75px; height: 63px; }
  .scene-icon { width: 68px; height: 68px; }
  .scene-icon > span { font-size: 2.8rem; }
  .social-card { grid-template-columns: 54px 1fr auto; min-height: 118px; }
  .social-logo { width: 50px; height: 50px; }
  .social-card .social-logo svg { width: 29px; height: 29px; }
  .social-card strong { font-size: .88rem; }
  .contact-actions { grid-template-columns: 1fr; }
  .contact-button { min-height: 76px; grid-template-columns: 40px 1fr auto; }
  .contact-button > b { display: block; }
}

/* v6 — bolder brand marks, refined footer and direct live contact */
.site-header { min-height: 124px; padding-top: 4px; padding-bottom: 4px; }
.brand-header img { width: 210px; height: 116px; }
.hero-bear-mark { position: absolute; z-index: 6; left: 46%; bottom: 3.5%; width: 112px; height: 112px; object-fit: cover; object-position: center; border: 6px solid rgba(255,253,249,.88); border-radius: 50%; background: var(--paper); box-shadow: 0 18px 38px rgba(67,44,61,.2); animation: bearFloat 4s ease-in-out infinite; }
@keyframes bearFloat { 0%,100% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-15px) rotate(4deg); } }

.hero-call { display: inline-flex; align-items: center; gap: 12px; min-height: 52px; padding: 8px 18px 8px 9px; border: 1px solid rgba(73,55,71,.16); border-radius: 999px; background: rgba(255,253,249,.72); color: var(--ink); text-decoration: none; box-shadow: 0 9px 22px rgba(73,55,71,.08); transition: transform .25s, box-shadow .25s, background .25s; }
.hero-call:hover { transform: translateY(-3px); background: #fff; box-shadow: 0 14px 28px rgba(73,55,71,.14); }
.hero-call-icon { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; background: #edc77f; color: #3e3239; font-size: 1.12rem; transform: rotate(-8deg); transition: transform .3s; }
.hero-call:hover .hero-call-icon { transform: rotate(8deg) scale(1.08); }
.hero-call > span:last-child { display: grid; line-height: 1; }
.hero-call small { margin-bottom: 4px; color: var(--plum); font: 700 .62rem/1 var(--sans); letter-spacing: .1em; text-transform: uppercase; }
.hero-call strong { font: 1.23rem/1 var(--serif); letter-spacing: .015em; }

.review-dots button.is-active { animation-duration: 3s; }

.site-footer { min-height: 240px; padding-top: 34px; padding-bottom: 34px; grid-template-columns: 290px minmax(220px,1fr) auto; gap: 44px; overflow: hidden; border-top: 0; background: linear-gradient(115deg,#eadfea 0 39%,#f7eee7 39% 100%); }
.brand-footer { margin: -28px 0; }
.brand-footer img { width: 248px; height: 184px; object-fit: contain; transition: transform .45s cubic-bezier(.2,.8,.2,1); }
.brand-footer:hover img { transform: rotate(-3deg) scale(1.04); }
.site-footer > p { justify-self: start; max-width: 300px; margin: 0; color: #5e4d5b; font-size: 1.55rem; line-height: 1.15; }
.site-footer nav { padding: 12px 17px; gap: 10px 20px; justify-content: flex-end; flex-wrap: wrap; border: 1px solid rgba(73,55,71,.13); border-radius: 22px; background: rgba(255,253,249,.62); }
.site-footer nav a { padding: 5px 7px; white-space: nowrap; }

.live-chat { position: fixed; z-index: 220; right: 24px; bottom: 22px; display: grid; justify-items: end; gap: 12px; font-family: var(--sans); }
.chat-launcher { min-height: 56px; padding: 8px 18px 8px 9px; display: flex; align-items: center; gap: 10px; border: 0; border-radius: 999px; background: var(--plum-dark); color: #fff; box-shadow: 0 18px 38px rgba(49,31,46,.28); font: 700 .8rem/1 var(--sans); cursor: pointer; transition: transform .3s, background .3s; }
.chat-launcher:hover { transform: translateY(-4px); background: var(--plum); }
.chat-bubble-icon { position: relative; width: 39px; height: 39px; display: grid; place-items: center; border-radius: 50%; background: #edc77f; color: var(--plum-dark); font-size: 1rem; }
.chat-bubble-icon::after { content: ""; position: absolute; inset: -5px; border: 1px solid rgba(237,199,127,.75); border-radius: 50%; animation: chatPulse 1.9s ease-out infinite; }
@keyframes chatPulse { from { opacity: .8; transform: scale(.82); } to { opacity: 0; transform: scale(1.45); } }
.chat-panel { position: relative; width: min(360px,calc(100vw - 32px)); padding: 25px; border: 1px solid rgba(73,55,71,.16); border-radius: 25px 25px 8px 25px; background: rgba(255,253,249,.97); color: var(--ink); box-shadow: 0 28px 65px rgba(49,31,46,.28); backdrop-filter: blur(16px); opacity: 0; visibility: hidden; transform: translateY(18px) scale(.96); transform-origin: right bottom; transition: opacity .3s, visibility .3s, transform .3s cubic-bezier(.2,.8,.2,1); }
.live-chat.is-open .chat-panel { opacity: 1; visibility: visible; transform: none; }
.chat-close { position: absolute; right: 14px; top: 13px; width: 32px; height: 32px; border: 1px solid var(--line); border-radius: 50%; background: #fff; color: var(--ink); font-size: 1.1rem; cursor: pointer; }
.chat-greeting { display: flex; align-items: center; gap: 10px; margin: -8px 38px 13px -7px; }
.chat-greeting img { width: 58px; height: 48px; object-fit: cover; object-position: center; border-radius: 50%; }
.chat-greeting span { color: var(--plum); font-size: .7rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.chat-greeting i { width: 8px; height: 8px; display: inline-block; margin-right: 5px; border-radius: 50%; background: #66a76e; box-shadow: 0 0 0 4px rgba(102,167,110,.14); }
.chat-panel h2 { max-width: 275px; font-size: 2.25rem; line-height: .97; }
.chat-panel > p { margin: 13px 0 19px; color: var(--muted); font-size: .86rem; line-height: 1.55; }
.chat-panel > a { text-decoration: none; }
.chat-messenger { min-height: 50px; padding: 11px 14px; display: grid; grid-template-columns: auto 1fr auto; gap: 9px; align-items: center; border-radius: 14px; background: #1877f2; color: #fff; font-size: .79rem; font-weight: 700; }
.chat-messenger > span { width: 26px; height: 26px; display: grid; place-items: center; border-radius: 50%; background: #fff; color: #1877f2; font-size: .55rem; }
.chat-email { display: block; margin: 10px 0 15px; padding: 11px 14px; border: 1px solid var(--line); border-radius: 14px; color: var(--ink); font-size: .76rem; font-weight: 700; text-align: center; }
.chat-panel > small { display: block; color: var(--muted); font-size: .65rem; text-align: center; }

@media (max-width: 1180px) {
  .site-header { min-height: 108px; }
  .brand-header img { width: 176px; height: 98px; }
  .hero-bear-mark { left: 45%; width: 96px; height: 96px; }
  .site-footer { grid-template-columns: 240px 1fr; }
  .site-footer > p { display: block; }
  .site-footer nav { grid-column: 2; justify-self: start; justify-content: flex-start; }
  .brand-footer { grid-row: 1 / 3; }
  .brand-footer img { width: 220px; height: 170px; }
}

@media (max-width: 760px) {
  .site-header { min-height: 94px; }
  .brand-header img { width: 145px; height: 82px; }
  .hero-bear-mark { left: auto; right: 16px; bottom: 13px; width: 82px; height: 82px; }
  .hero-call { min-height: 49px; }
  .site-footer { min-height: 0; padding: 28px 20px 34px; grid-template-columns: 1fr; gap: 18px; background: linear-gradient(155deg,#eadfea,#f7eee7); }
  .brand-footer { grid-row: auto; margin: -20px 0; }
  .brand-footer img { width: 220px; height: 155px; }
  .site-footer > p { display: block; font-size: 1.35rem; }
  .site-footer nav { grid-column: auto; justify-self: stretch; justify-content: flex-start; }
  .live-chat { right: 14px; bottom: 14px; }
  .chat-label { display: none; }
  .chat-launcher { width: 56px; padding: 8px; }
}

/* v7 — lively bears, a softer conversation cue and an editorial finish */
.hero-bear-mark {
  animation: bearHello 3.25s cubic-bezier(.45,0,.25,1) infinite;
  transform-origin: 50% 82%;
  will-change: transform;
}
@keyframes bearHello {
  0%, 100% { transform: translateY(0) rotate(-7deg) scale(1); }
  18% { transform: translateY(-12px) rotate(5deg) scale(1.08); }
  35% { transform: translateY(-4px) rotate(-3deg) scale(1.03); }
  56% { transform: translateY(-19px) rotate(8deg) scale(1.11); }
  72% { transform: translateY(-8px) rotate(-6deg) scale(1.05); }
}

.hero-photo { overflow: visible; }
.hero-ofsted-stamp {
  position: absolute;
  z-index: 8;
  right: -24px;
  top: 42px;
  width: 122px;
  min-height: 112px;
  padding: 11px 12px 9px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(73,55,71,.16);
  border-radius: 19px 19px 8px 19px;
  background: rgba(255,253,249,.94);
  box-shadow: 0 18px 38px rgba(49,31,46,.18);
  transform: rotate(4deg);
  animation: ofstedPin 5.2s ease-in-out infinite;
}
.hero-ofsted-stamp::before { content: ""; position: absolute; left: 45%; top: -7px; width: 34px; height: 14px; background: rgba(222,199,151,.68); transform: rotate(-5deg); }
.hero-ofsted-stamp img { width: 76px; height: 64px; object-fit: contain; }
.hero-ofsted-stamp small { color: var(--plum-dark); font: 700 .54rem/1.15 var(--sans); letter-spacing: .08em; text-align: center; text-transform: uppercase; }
@keyframes ofstedPin { 0%,100% { transform: translateY(0) rotate(4deg); } 50% { transform: translateY(-7px) rotate(1deg); } }

.setting-card { position: relative; isolation: isolate; transition: transform .45s cubic-bezier(.2,.8,.2,1), box-shadow .45s; }
.setting-card::before, .setting-card::after { content: ""; position: absolute; z-index: 4; border-radius: 50%; pointer-events: none; opacity: 0; }
.setting-card::before { width: 165px; height: 165px; left: 50%; top: 118px; border: 2px solid rgba(111,82,107,.38); transform: translate(-50%,-50%) scale(.35); }
.setting-card::after { width: 215px; height: 215px; left: 50%; top: 118px; border: 1px solid rgba(111,82,107,.22); transform: translate(-50%,-50%) scale(.3); }
.setting-card.is-visible::before { animation: bearOrbit 4.8s ease-out infinite; }
.setting-card.is-visible::after { animation: bearOrbit 4.8s 1s ease-out infinite; }
.setting-card.is-visible .setting-image { animation: bearInYourFace 6s cubic-bezier(.4,0,.2,1) infinite; transform-origin: 50% 46%; will-change: transform; }
.setting-balham.is-visible .setting-image { animation-delay: -3s; }
.setting-card:hover { transform: translateY(-12px) rotate(-.45deg); box-shadow: 0 32px 56px rgba(58,40,54,.18); }
.setting-card:hover .setting-image { animation-play-state: paused; transform: scale(1.13) rotate(1deg); }
.setting-bear-label { position: absolute; z-index: 7; right: 19px; top: 19px; padding: 8px 13px; border-radius: 999px; background: rgba(255,253,249,.9); color: var(--plum-dark); box-shadow: 0 9px 18px rgba(58,40,54,.14); font-size: .64rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; animation: labelBob 3s ease-in-out infinite; }
.setting-balham .setting-bear-label { animation-delay: -1.5s; }
@keyframes bearInYourFace { 0%,100% { transform: scale(1.01) rotate(0); } 42% { transform: scale(1.13) rotate(-1.2deg); } 58% { transform: scale(1.09) rotate(1deg); } }
@keyframes bearOrbit { 0% { opacity: .52; transform: translate(-50%,-50%) scale(.55); } 72%,100% { opacity: 0; transform: translate(-50%,-50%) scale(1.7); } }
@keyframes labelBob { 0%,100% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-8px) rotate(-2deg); } }

.living-window { position: relative; background: linear-gradient(135deg,#302630,#3a2d38 58%,#2f2530); }
.noticeboard-status { display: inline-flex; align-items: center; gap: 8px; }
.noticeboard-status > span { width: 8px; height: 8px; border-radius: 50%; background: #edc77f; box-shadow: 0 0 0 5px rgba(237,199,127,.12); animation: noticeLive 1.8s ease-out infinite; }
.poster-window { overflow: visible; transform: rotate(.35deg); animation: boardFloat 5.8s ease-in-out infinite; }
.poster-window::before, .poster-window::after { content: ""; position: absolute; z-index: -2; inset: 13px -16px -15px 18px; border: 1px solid rgba(255,255,255,.22); background: #b98e82; transform: rotate(-1.3deg); }
.poster-window::after { z-index: -3; inset: 25px 15px -24px -22px; background: #c7afc8; transform: rotate(1.2deg); }
.poster-tab { position: absolute; z-index: 8; right: 27px; top: -22px; padding: 9px 14px; border-radius: 9px 9px 3px 3px; background: #edc77f; color: #493747; box-shadow: 0 8px 18px rgba(0,0,0,.17); font-size: .62rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; transform: rotate(2deg); }
@keyframes noticeLive { from { box-shadow: 0 0 0 0 rgba(237,199,127,.48); } to { box-shadow: 0 0 0 9px rgba(237,199,127,0); } }
@keyframes boardFloat { 0%,100% { transform: translateY(0) rotate(.35deg); } 50% { transform: translateY(-9px) rotate(-.35deg); } }

.parents { background: #fffdf9; color: var(--ink); }
.parents::before { color: rgba(216,196,216,.42); }
.parents .eyebrow { color: var(--plum); }
.review-score small { color: var(--muted); }
.review-stage {
  min-height: 395px;
  border: 0;
  border-radius: 0;
  background:
    linear-gradient(90deg,rgba(238,220,182,.55),transparent 13%,transparent 87%,rgba(211,185,141,.45)),
    repeating-linear-gradient(0deg,rgba(105,77,49,.025) 0,rgba(105,77,49,.025) 1px,transparent 1px,transparent 5px),
    #f7edda;
  box-shadow: 0 22px 44px rgba(73,55,71,.13), inset 0 0 75px rgba(145,105,61,.08);
  transform: rotate(-.08deg);
  clip-path: polygon(.15% .4%,99.8% 0,100% 99.4%,.35% 100%);
}
.review-stage::before, .review-stage::after { width: 98px; height: 24px; background: rgba(216,192,145,.48); }
.review-card { align-items: center; }
.review-card p { max-width: 900px; font-size: clamp(1.72rem,2.55vw,2.55rem); line-height: 1.14; }
.review-card footer { align-self: end; }

.site-footer {
  position: relative;
  min-height: 225px;
  padding-top: 34px;
  padding-bottom: 50px;
  overflow: hidden;
  border-top: 1px solid rgba(73,55,71,.1);
  background: #fffdf9;
}
.site-footer::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 5px; background: linear-gradient(90deg,#d8c4d8,#d19b84,#edc77f,#aeb89c); }
.site-footer nav { position: relative; z-index: 2; border: 0; border-radius: 0; background: transparent; }
.site-footer > p { position: relative; z-index: 2; color: var(--ink); }
.brand-footer { position: relative; z-index: 2; }
.footer-ofsted-watermark { position: absolute; z-index: 0; right: 2%; bottom: -48px; width: 230px; height: 205px; object-fit: contain; opacity: .055; filter: grayscale(1); transform: rotate(-8deg); pointer-events: none; }
.footer-note { position: absolute; z-index: 2; left: 50%; bottom: 19px; color: #827780; font-size: .64rem; letter-spacing: .1em; text-transform: uppercase; transform: translateX(-50%); white-space: nowrap; }

.chat-launcher {
  min-height: 62px;
  padding: 10px 24px 10px 11px;
  gap: 13px;
  border: 1px solid rgba(255,255,255,.36);
  border-radius: 16px 16px 5px 16px;
  background: linear-gradient(135deg,#c9a2d0,#a97eb2);
  box-shadow: 0 17px 36px rgba(74,48,71,.28);
  font: 400 1.3rem/1 var(--serif);
  overflow: visible;
}
.chat-launcher:hover { background: linear-gradient(135deg,#d2afd8,#b488bd); transform: translateY(-5px) rotate(-1deg); }
.chat-bubble-icon { width: 40px; height: 40px; background: rgba(255,255,255,.95); color: #a477ad; }
.chat-bubble-icon svg { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.chat-bubble-icon::after { border-color: rgba(255,255,255,.72); animation: chatBubbleEcho 2.2s ease-out infinite; }
.chat-launcher::before { content: ""; position: absolute; left: 16px; bottom: -7px; width: 16px; height: 16px; border-radius: 2px; background: #a97eb2; transform: rotate(45deg); z-index: -1; }
@keyframes chatBubbleEcho { 0% { opacity: .85; transform: scale(.82); } 65%,100% { opacity: 0; transform: scale(1.5); } }

.back-to-top { position: fixed; z-index: 210; right: 26px; bottom: 101px; width: 54px; min-height: 70px; display: grid; place-items: center; align-content: center; border: 1px solid rgba(73,55,71,.16); border-radius: 999px; background: rgba(255,253,249,.92); color: var(--plum-dark); box-shadow: 0 13px 28px rgba(49,31,46,.16); text-decoration: none; opacity: 0; visibility: hidden; transform: translateY(12px); transition: opacity .3s, visibility .3s, transform .3s, background .3s; backdrop-filter: blur(10px); }
.back-to-top.is-visible { opacity: 1; visibility: visible; transform: none; }
.back-to-top:hover { background: #edc77f; transform: translateY(-5px); }
.back-to-top span { font: 1.75rem/.75 var(--serif); animation: arrowUp 1.7s ease-in-out infinite; }
.back-to-top small { font-size: .53rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
@keyframes arrowUp { 0%,100% { transform: translateY(2px); } 50% { transform: translateY(-4px); } }

@media (max-width: 760px) {
  .hero-ofsted-stamp { right: -7px; top: 24px; width: 96px; min-height: 92px; }
  .hero-ofsted-stamp img { width: 62px; height: 52px; }
  .setting-card::before, .setting-card::after { top: 104px; }
  .poster-window { margin: 10px 5px 18px; }
  .review-stage { min-height: 525px; }
  .review-card p { font-size: clamp(1.62rem,7vw,2.2rem); }
  .site-footer { padding-bottom: 65px; }
  .footer-note { width: calc(100% - 40px); text-align: center; white-space: normal; }
  .footer-ofsted-watermark { right: -45px; bottom: -25px; width: 190px; }
  .back-to-top { right: 15px; bottom: 87px; width: 48px; min-height: 62px; }
  .chat-launcher { width: 58px; min-height: 58px; padding: 9px; border-radius: 16px 16px 5px 16px; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-bear-mark, .hero-ofsted-stamp, .setting-card.is-visible .setting-image, .setting-card.is-visible::before, .setting-card.is-visible::after, .setting-bear-label, .poster-window, .noticeboard-status > span, .back-to-top span { animation: none !important; }
}

/* V7 base refinement — selected details from V6 and V8 only */
.hero-bear-mark { animation: bearFloat 4s ease-in-out infinite; }
.hero-actions { align-items: stretch; gap: 12px; }
.hero-contact { min-width: 245px; min-height: 70px; padding: 9px 15px 9px 9px; display: grid; grid-template-columns: 46px 1fr auto; gap: 12px; align-items: center; border: 1px solid rgba(73,55,71,.13); border-radius: 999px; background: var(--plum-dark); color: #fff; box-shadow: 0 13px 28px rgba(73,55,71,.13); text-decoration: none; transition: transform .28s,box-shadow .28s,background .28s; }
.hero-contact:hover { transform: translateY(-4px); background: var(--plum); box-shadow: 0 19px 34px rgba(73,55,71,.2); }
.hero-contact-icon { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 50%; background: #d7bed8; color: var(--plum-dark); }
.hero-contact-call .hero-contact-icon { background: #edc77f; }
.hero-contact-icon svg { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.hero-contact > span:nth-child(2) { display: grid; line-height: 1.08; }
.hero-contact small { font-size: .73rem; font-weight: 700; letter-spacing: .045em; }
.hero-contact strong { margin-top: 5px; font: .84rem/1.1 var(--serif); opacity: .82; }
.hero-contact > b { font-size: 1.05rem; }

.teddy-guide { position: fixed; z-index: 180; left: 12px; top: 158px; bottom: 28px; width: 92px; pointer-events: none; opacity: 0; transition: opacity .35s; }
.teddy-guide.is-visible { opacity: 1; }
.teddy-guide-track { position: absolute; left: 37px; top: 20px; bottom: 20px; width: 2px; border-radius: 99px; background: repeating-linear-gradient(to bottom,rgba(111,82,107,.18) 0 4px,transparent 4px 10px); }
.teddy-guide-track i { position: absolute; left: 0; top: 0; width: 2px; height: var(--teddy-progress,0%); border-radius: inherit; background: linear-gradient(var(--plum),#d19b84); transition: height .12s linear; }
.teddy-guide-bear { position: absolute; z-index: 2; left: 0; top: 0; width: 78px; padding: 0; border: 0; background: transparent; cursor: pointer; pointer-events: auto; transform: translateY(var(--teddy-y,0px)) rotate(var(--teddy-lean,0deg)); transition: transform .16s ease-out; }
.teddy-guide-ring { position: relative; width: 76px; height: 76px; display: grid; place-items: center; overflow: hidden; border: 5px solid rgba(255,253,249,.9); border-radius: 50%; background: #fff; box-shadow: 0 13px 28px rgba(73,55,71,.2); transition: transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s; }
.teddy-guide-ring::after { content: ""; position: absolute; inset: -7px; border: 1px solid rgba(177,126,159,.38); border-radius: 50%; opacity: 0; }
.teddy-guide-bear.section-changed .teddy-guide-ring { transform: scale(1.13) rotate(-5deg); box-shadow: 0 18px 38px rgba(73,55,71,.28); }
.teddy-guide-bear.section-changed .teddy-guide-ring::after { animation: guideRipple .7s ease-out; }
.teddy-guide-ring img { width: 100%; height: 100%; object-fit: cover; }
.teddy-guide-bear small { position: absolute; left: 69px; top: 22px; width: max-content; max-width: 145px; padding: 7px 10px; border: 1px solid rgba(73,55,71,.12); border-radius: 5px 12px 12px 12px; background: rgba(255,253,249,.94); color: var(--plum-dark); box-shadow: 0 8px 20px rgba(73,55,71,.12); font-size: .58rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; opacity: 0; transform: translateX(-7px); transition: opacity .25s,transform .25s; white-space: nowrap; }
.teddy-guide-bear:hover small,.teddy-guide-bear.section-changed small { opacity: 1; transform: none; }
@keyframes guideRipple { from { opacity:.65; transform:scale(.75); } to { opacity:0; transform:scale(1.5); } }

@media (max-width:760px) {
  .hero-actions { width:100%; flex-direction:column; }
  .hero-contact { width:100%; min-width:0; }
  .teddy-guide { display:none; }
}

/* V10 — requested placement, noticeboard photography and timing refinements */
.hero-ofsted-stamp {
  left: auto;
  right: clamp(20px, 3vw, 48px);
  top: 24px;
}

.footer-ofsted-watermark {
  left: 50%;
  right: auto;
  top: 50%;
  bottom: auto;
  width: 280px;
  height: 220px;
  opacity: .04;
  transform: translate(-50%, -50%) rotate(-4deg);
}

.notice-photo-slide {
  padding: 0;
  overflow: hidden;
  background: #f7eee7;
}
.notice-photo-slide > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 7s cubic-bezier(.2,.7,.2,1);
}
.notice-photo-slide.is-active > img { transform: scale(1.055); }
.notice-photo-slide::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg,transparent 36%,rgba(34,24,32,.08) 54%,rgba(34,24,32,.86) 100%);
}
.notice-photo-caption {
  position: absolute;
  z-index: 2;
  left: 28px;
  right: 28px;
  bottom: 26px;
  padding: 22px 24px 20px;
  border: 1px solid rgba(255,255,255,.26);
  border-radius: 18px 18px 6px 18px;
  background: rgba(49,36,47,.74);
  color: #fff;
  box-shadow: 0 18px 45px rgba(0,0,0,.22);
  backdrop-filter: blur(10px);
}
.notice-photo-caption .poster-label { color: #f0cc83; }
.notice-photo-caption h3 {
  max-width: none;
  margin: 7px 0 6px;
  color: #fff;
  font-size: clamp(2.25rem,4.3vw,4rem);
  line-height: .96;
}
.notice-photo-caption p { margin: 0; color: rgba(255,255,255,.86); font-size: .82rem; line-height: 1.5; }

@media (max-width:760px) {
  .hero-ofsted-stamp { right: 12px; top: 12px; }
  .footer-ofsted-watermark { left: 50%; right: auto; top: 52%; bottom: auto; width: 210px; transform: translate(-50%,-50%) rotate(-4deg); }
  .notice-photo-caption { left: 14px; right: 14px; bottom: 14px; padding: 18px; }
  .notice-photo-caption h3 { font-size: clamp(2rem,11vw,3.2rem); }
}

@media (prefers-reduced-motion:reduce) {
  .hero-bear-mark,.teddy-guide-bear { animation:none !important; transition:none !important; }
}

/* V9 — only the requested Ofsted and rating refinements */
.hero-ofsted-stamp { right: 18px; left: auto; top: 20px; }
.footer-ofsted-watermark { left: 2%; right: auto; transform: rotate(8deg); }

.review-score { position: relative; min-width: 245px; padding: 17px 20px 15px 95px; display: grid; grid-template-columns: 1fr; gap: 1px; border: 1px solid rgba(111,82,107,.13); border-radius: 20px; background: linear-gradient(145deg,#fff,#f8f0ea); box-shadow: 0 14px 30px rgba(73,55,71,.08); }
.review-score::before { content: ""; position: absolute; left: 14px; top: 50%; width: 68px; height: 68px; border-radius: 50%; background: conic-gradient(#c6966d 0 99.6%,#ebdfd4 99.6%); transform: translateY(-50%); }
.review-score::after { content: "5.0"; position: absolute; left: 19px; top: 50%; width: 58px; height: 58px; display: grid; place-items: center; border-radius: 50%; background: #fffdf9; color: var(--ink); font: 1.62rem/1 var(--serif); transform: translateY(-50%); }
.review-score strong { position: absolute; overflow: hidden; width: 1px; height: 1px; clip: rect(0 0 0 0); }
.review-score .rating-kicker { color: var(--plum); font-size: .58rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; }
.review-score .rating-stars { color: #b07958; font-size: 1rem; letter-spacing: .12em; white-space: nowrap; }
.review-score small { color: var(--muted); font-size: .64rem; white-space: nowrap; }
.review-score b { width: max-content; margin-top: 6px; padding: 3px 7px; border-radius: 999px; background: #efe3ef; color: var(--plum-dark); font-size: .55rem; letter-spacing: .08em; text-transform: uppercase; }

@media (max-width:760px) {
  .hero-ofsted-stamp { right: 10px; left: auto; top: 18px; }
  .footer-ofsted-watermark { left: -45px; right: auto; bottom: -25px; width: 190px; }
  .review-score { width: min(280px,100%); }
}

/* V10 final placement overrides */
.hero-ofsted-stamp { left: auto; right: clamp(20px,3vw,48px); top: 24px; }
.footer-ofsted-watermark { left: 50%; right: auto; top: 50%; bottom: auto; width: 280px; height: 220px; opacity: .04; transform: translate(-50%,-50%) rotate(-4deg); }

@media (max-width:760px) {
  .hero-ofsted-stamp { left: auto; right: 12px; top: 12px; }
  .footer-ofsted-watermark { left: 50%; right: auto; top: 52%; bottom: auto; width: 210px; transform: translate(-50%,-50%) rotate(-4deg); }
}

/* V10 — soft first-scroll reveal and surprise day scenes */
.reveal {
  opacity: 0;
  filter: blur(7px);
  clip-path: inset(0 0 14% 0 round 20px);
  transform: translateY(38px) scale(.985);
  transition: opacity .95s cubic-bezier(.22,.75,.22,1), transform 1.05s cubic-bezier(.22,.75,.22,1), filter .9s ease, clip-path 1.05s cubic-bezier(.22,.75,.22,1);
  transition-delay: var(--reveal-delay,0ms);
}
.reveal.is-visible { opacity: 1; filter: blur(0); clip-path: inset(0 round 0); transform: none; }

.day-scenes { display: flex; align-items: stretch; gap: 12px; }
.day-scenes .scene {
  flex: .78 1 0;
  min-width: 0;
  isolation: isolate;
  transition: flex .68s cubic-bezier(.2,.78,.2,1), transform .38s ease, box-shadow .38s ease, border-radius .5s ease;
}
.day-scenes .scene.is-open { flex: 2.15 1 0; border-radius: 36px 36px 18px 18px; }
.day-scenes .scene button { transition: color .45s ease, background .55s ease, padding .55s ease; }
.day-scenes .scene:not(.is-open) button {
  justify-content: center;
  align-items: center;
  gap: 22px;
  background: linear-gradient(155deg,rgba(90,59,84,.94),rgba(116,76,104,.88));
  color: #fff;
  text-align: center;
}
.day-scenes .scene:not(.is-open) .scene-icon,
.day-scenes .scene:not(.is-open) .scene-action { position: absolute; opacity: 0; transform: translateY(16px) scale(.8); }
.day-scenes .scene:not(.is-open) .scene-title { font-size: clamp(1.35rem,2vw,2rem); line-height: 1.02; }
.day-scenes .scene:not(.is-open) .scene-number { color: rgba(255,255,255,.72); }
.day-scenes .scene.is-open .scene-icon,
.day-scenes .scene.is-open .scene-action { animation: sceneDetailIn .62s .18s both cubic-bezier(.2,.8,.2,1); }
.day-scenes .scene.is-open .scene-story { animation: sceneStoryIn .64s .12s both cubic-bezier(.2,.8,.2,1); }
.day-scenes .scene::before {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  background: linear-gradient(125deg,rgba(255,255,255,.38),transparent 44%);
  opacity: 0;
  transform: translateX(-42%);
  pointer-events: none;
}
.day-scenes .scene.is-open::before { animation: sceneShimmer .9s .08s ease-out both; }
@keyframes sceneDetailIn { from { opacity:0; transform:translateY(18px) scale(.88); } to { opacity:1; transform:none; } }
@keyframes sceneStoryIn { from { opacity:0; transform:translateY(100%); } to { opacity:1; transform:none; } }
@keyframes sceneShimmer { 0% { opacity:0; transform:translateX(-42%); } 45% { opacity:.65; } 100% { opacity:0; transform:translateX(55%); } }

@media (max-width:760px) {
  .day-scenes { display:grid; grid-template-columns:1fr; }
  .day-scenes .scene,.day-scenes .scene.is-open { flex:none; border-radius:18px; }
  .day-scenes .scene:not(.is-open) button { min-height:132px; height:132px; flex-direction:row; justify-content:space-between; padding:24px; }
  .day-scenes .scene:not(.is-open) .scene-title { text-align:right; }
}

@media (prefers-reduced-motion:reduce) {
  .reveal { opacity:1; filter:none; clip-path:none; transform:none; transition:none; }
  .day-scenes .scene,.day-scenes .scene * { animation:none !important; transition:none !important; }
}

/* V12 trial — V10 preserved as the base; only requested areas are changed */
.day-scenes {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  align-items: start;
  gap: 14px;
}
.day-scenes .scene,
.day-scenes .scene.is-open {
  min-width: 0;
  min-height: 430px;
  overflow: hidden;
  border: 1px solid rgba(73,55,71,.1);
  border-radius: 34px 34px 12px 34px;
  box-shadow: 0 18px 40px rgba(63,43,57,.1);
  transform: none;
  transition: transform .38s cubic-bezier(.2,.8,.2,1), box-shadow .38s ease;
}
.day-scenes .scene:hover,
.day-scenes .scene.is-open { transform: translateY(-7px); box-shadow: 0 28px 55px rgba(63,43,57,.16); }
.day-scenes .scene button,
.day-scenes .scene:not(.is-open) button {
  width: 100%;
  min-height: 430px;
  height: auto;
  padding: 27px 26px 25px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 0;
  background: transparent;
  color: var(--ink);
  text-align: left;
}
.day-scenes .scene:not(.is-open) .scene-icon,
.day-scenes .scene:not(.is-open) .scene-action {
  position: relative;
  opacity: 1;
  transform: none;
}
.day-scenes .scene .scene-icon { margin: 52px 0 38px; }
.day-scenes .scene .scene-number,
.day-scenes .scene:not(.is-open) .scene-number {
  min-height: 34px;
  color: rgba(51,46,51,.78);
  font-size: .66rem;
  letter-spacing: .08em;
}
.day-scenes .scene .scene-title,
.day-scenes .scene:not(.is-open) .scene-title {
  min-height: 82px;
  color: var(--ink);
  font-size: clamp(2rem,2.3vw,2.55rem);
  line-height: .93;
  text-align: left;
}
.scene-teaser {
  min-height: 64px;
  margin-top: 17px;
  color: rgba(51,46,51,.72);
  font-size: .83rem;
  line-height: 1.48;
}
.day-scenes .scene-action { margin-top: auto; padding-top: 19px; }
.day-scenes .scene-story {
  position: relative;
  inset: auto;
  z-index: 3;
  max-height: 0;
  padding: 0 26px;
  overflow: hidden;
  background: rgba(255,253,249,.5);
  color: var(--ink);
  opacity: 0;
  transform: none;
  transition: max-height .56s cubic-bezier(.2,.8,.2,1), padding .45s ease, opacity .35s ease;
}
.day-scenes .scene-story p { color: var(--ink); font-size: .86rem; line-height: 1.6; }
.day-scenes .scene.is-open .scene-story {
  max-height: 190px;
  padding: 23px 26px 26px;
  border-top: 1px solid rgba(73,55,71,.11);
  opacity: 1;
  animation: none;
}
.day-scenes .scene.is-open .scene-action b { transform: rotate(45deg); }
.day-scenes .scene::before { display: none; }

.site-footer {
  position: relative;
  min-height: 230px;
  padding: 34px max(24px,calc((100vw - 1180px)/2)) 48px;
  display: grid;
  grid-template-columns: 290px minmax(220px,1fr) auto;
  align-items: center;
  gap: 44px;
  overflow: hidden;
  border-top: 0;
  background: linear-gradient(115deg,#eadfea 0 39%,#f7eee7 39% 100%);
}
.site-footer::before { display: none; }
.brand-footer { margin: -28px 0; }
.brand-footer img { width: 248px; height: 184px; object-fit: contain; opacity: 1; filter: none; mix-blend-mode: multiply; }
.site-footer > p { justify-self: start; max-width: 300px; color: #5e4d5b; font-size: 1.55rem; line-height: 1.15; }
.site-footer nav {
  padding: 12px 17px;
  gap: 10px 20px;
  justify-content: flex-end;
  flex-wrap: wrap;
  border: 1px solid rgba(73,55,71,.13);
  border-radius: 22px;
  background: rgba(255,253,249,.62);
}
.footer-note { bottom: 18px; }

@media (max-width:1050px) {
  .day-scenes { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .site-footer { grid-template-columns:240px 1fr; }
  .site-footer nav { grid-column:2; justify-self:start; justify-content:flex-start; }
  .brand-footer { grid-row:1/3; }
}
@media (max-width:760px) {
  .day-scenes { grid-template-columns:1fr; }
  .day-scenes .scene,.day-scenes .scene.is-open { min-height:0; transform:none; }
  .day-scenes .scene button,.day-scenes .scene:not(.is-open) button { min-height:390px; height:auto; padding:24px; }
  .site-footer { min-height:0; padding:28px 20px 62px; grid-template-columns:1fr; gap:18px; background:linear-gradient(155deg,#eadfea,#f7eee7); }
  .brand-footer { grid-row:auto; margin:-20px 0; }
  .brand-footer img { width:220px; height:155px; }
  .site-footer nav { grid-column:auto; justify-self:stretch; justify-content:flex-start; }
}

/* V13 — theatrical day reveal and precise interaction fixes */
.site-header .hero-ofsted-stamp::before { display: none; }

.day-scenes .scene.reveal {
  opacity: 1;
  filter: none;
  clip-path: none;
  transform: translateY(24px);
}
.day-scenes .scene.reveal.is-visible { transform: none; }
.day-scenes .scene.reveal::before {
  content: "A little moment";
  position: absolute;
  z-index: 12;
  inset: -1px;
  display: grid;
  place-items: center;
  border-radius: inherit;
  background:
    radial-gradient(circle at 18% 18%,rgba(255,255,255,.13) 0 7%,transparent 7.5%),
    radial-gradient(circle at 84% 76%,rgba(255,255,255,.08) 0 18%,transparent 18.5%),
    linear-gradient(145deg,#4b3949,#72566d);
  color: rgba(255,255,255,.9);
  font: 600 .72rem/1 var(--sans);
  letter-spacing: .17em;
  text-transform: uppercase;
  pointer-events: none;
  transform: translateY(0) scale(1.01);
  transform-origin: 50% 0;
  transition: transform 1.05s cubic-bezier(.72,0,.18,1), border-radius .85s ease, opacity .25s .82s;
  transition-delay: calc(var(--reveal-delay,0ms) + 80ms);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.1);
}
.day-scenes .scene:nth-child(1)::before { content: "The day begins softly"; }
.day-scenes .scene:nth-child(2)::before { content: "An idea starts to grow"; }
.day-scenes .scene:nth-child(3)::before { content: "A little world awaits"; }
.day-scenes .scene:nth-child(4)::before { content: "Back to cosy and calm"; }
.day-scenes .scene.reveal.is-visible::before {
  border-radius: 34px 34px 65% 65%;
  opacity: 0;
  transform: translateY(-108%) scaleY(.94);
}
.day-scenes .scene.reveal.is-visible:hover,
.day-scenes .scene.reveal.is-visible.is-open { transform: translateY(-7px); }

.social-facebook {
  position: relative;
  overflow: hidden;
  transition: transform .35s ease, box-shadow .35s ease, background .35s ease;
}
.social-facebook::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg,rgba(24,119,242,.1),transparent 48%,rgba(255,255,255,.5));
  opacity: 0;
  pointer-events: none;
  transition: opacity .35s ease;
}
.social-facebook:hover,
.social-facebook:focus-visible {
  background: #eef5ff;
  transform: translateY(-6px) rotate(-.35deg);
  box-shadow: 0 20px 38px rgba(24,119,242,.18);
}
.social-facebook:hover::after,
.social-facebook:focus-visible::after { opacity: 1; }
.social-facebook:hover .social-logo,
.social-facebook:focus-visible .social-logo { transform: rotate(-8deg) scale(1.1); }
.social-facebook > * { position: relative; z-index: 1; }

.notice-photo-caption {
  left: 20px;
  right: auto;
  bottom: 18px;
  width: min(440px,calc(100% - 40px));
  padding: 14px 17px 13px;
  border-radius: 13px 13px 4px 13px;
  background: rgba(49,36,47,.68);
}
.notice-photo-caption .poster-label { font-size: .5rem; letter-spacing: .12em; }
.notice-photo-caption h3 {
  margin: 4px 0 3px;
  font-size: clamp(1.65rem,2.5vw,2.35rem);
  line-height: .98;
}
.notice-photo-caption p {
  max-width: 360px;
  font-size: .7rem;
  line-height: 1.42;
}

@media (prefers-reduced-motion:reduce) {
  .day-scenes .scene.reveal::before { display:none; }
  .day-scenes .scene.reveal { opacity:1; transform:none; }
}

@media (max-width:760px) {
  .notice-photo-caption { left:10px; bottom:10px; width:calc(100% - 20px); padding:12px 14px; }
  .notice-photo-caption h3 { font-size:1.65rem; }
  .notice-photo-caption p { font-size:.66rem; }
}

/* V14 — clearer whole-card interactions and a reliable first-scroll gate reveal */
.hero-contact-call {
  min-width: 300px;
  grid-template-columns: 52px 1fr;
  padding: 9px 20px 9px 9px;
  border-color: rgba(73,55,71,.17);
  background: rgba(255,253,249,.96);
  color: var(--ink);
  box-shadow: 0 16px 34px rgba(73,55,71,.16), inset 0 1px 0 rgba(255,255,255,.9);
}
.hero-contact-call .hero-contact-icon {
  width: 52px;
  height: 52px;
  background: #edc77f;
  color: var(--plum-dark);
}
.hero-contact-call small {
  color: var(--plum);
  font-size: .68rem;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.hero-contact-call strong {
  margin-top: 6px;
  color: var(--ink);
  font: 1.24rem/1 var(--sans);
  opacity: 1;
}
.hero-contact-call > b { display: none; }
.hero-contact-call:hover,
.hero-contact-call:focus-visible {
  border-color: rgba(111,82,107,.28);
  background: #fffaf4;
  box-shadow: 0 21px 40px rgba(73,55,71,.2);
}

.social-card {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-color: rgba(57,43,55,.14);
  transition: transform .4s cubic-bezier(.2,.8,.2,1), box-shadow .4s ease, border-color .4s ease, background .4s ease;
}
.social-card::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0;
  opacity: 0;
  transform: scaleX(.06);
  transform-origin: 0 50%;
  transition: opacity .2s ease, transform .52s cubic-bezier(.2,.78,.2,1);
  pointer-events: none;
}
.social-instagram::before {
  background: linear-gradient(112deg,rgba(225,95,145,.32),rgba(153,91,190,.24) 56%,rgba(255,205,142,.34));
}
.social-facebook::before {
  background: linear-gradient(112deg,rgba(24,119,242,.28),rgba(100,164,247,.18) 58%,rgba(255,255,255,.45));
}
.social-card:hover,
.social-card:focus-visible {
  transform: translateY(-7px) scale(1.018);
}
.social-instagram:hover,
.social-instagram:focus-visible {
  border-color: rgba(190,76,143,.3);
  background: #efd2df;
  box-shadow: 0 24px 44px rgba(175,74,139,.22);
}
.social-facebook:hover,
.social-facebook:focus-visible {
  border-color: rgba(24,119,242,.28);
  background: #dcecff;
  box-shadow: 0 24px 44px rgba(24,119,242,.24);
}
.social-card:hover::before,
.social-card:focus-visible::before { opacity: 1; transform: scaleX(1); }
.social-card:hover .social-logo,
.social-card:focus-visible .social-logo { transform: rotate(-3deg) scale(1.045); }
.social-card > * { position: relative; z-index: 2; }

.noticeboard-status { gap: 6px; font-size: .52rem; letter-spacing: .12em; }
.noticeboard-status > span { width: 6px; height: 6px; }
.notice-photo-caption {
  left: 16px;
  bottom: 14px;
  width: min(308px,calc(100% - 32px));
  padding: 10px 12px 9px;
  border-radius: 11px 11px 4px 11px;
  background: rgba(49,36,47,.62);
  backdrop-filter: blur(11px);
}
.notice-photo-caption .poster-label { font-size: .4rem; letter-spacing: .11em; }
.notice-photo-caption h3 { margin: 3px 0 2px; font-size: clamp(1.18rem,1.8vw,1.65rem); line-height: 1; }
.notice-photo-caption p { max-width: 265px; font-size: .58rem; line-height: 1.36; }

.day-scenes .scene.reveal::before { display: none; }
.scene-gate {
  position: absolute;
  z-index: 18;
  inset: -1px;
  overflow: hidden;
  border-radius: inherit;
  pointer-events: none;
  perspective: 900px;
}
.gate-panel {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 50.5%;
  background:
    radial-gradient(circle at 50% 20%,rgba(255,255,255,.13) 0 7%,transparent 7.5%),
    linear-gradient(145deg,#4b3949,#765a70);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.08);
  transition: transform 1.12s cubic-bezier(.72,0,.18,1);
  transition-delay: var(--gate-delay,0ms);
  will-change: transform;
}
.gate-left { left: 0; transform-origin: 0 50%; }
.gate-right { right: 0; transform-origin: 100% 50%; }
.scene-gate em {
  position: absolute;
  z-index: 2;
  left: 50%;
  top: 50%;
  width: max-content;
  max-width: 82%;
  color: rgba(255,255,255,.92);
  font: 600 .7rem/1.35 var(--sans);
  font-style: normal;
  letter-spacing: .14em;
  text-align: center;
  text-transform: uppercase;
  transform: translate(-50%,-50%);
  transition: opacity .3s ease, transform .42s ease;
  transition-delay: var(--gate-delay,0ms);
}
.scene.is-gate-open .gate-left { transform: translateX(-102%) rotateY(-11deg); }
.scene.is-gate-open .gate-right { transform: translateX(102%) rotateY(11deg); }
.scene.is-gate-open .scene-gate em { opacity: 0; transform: translate(-50%,-65%) scale(.94); }

@media (max-width:760px) {
  .hero-contact-call { min-width: 0; }
  .notice-photo-caption { left: 9px; bottom: 9px; width: min(285px,calc(100% - 18px)); padding: 9px 11px; }
  .notice-photo-caption h3 { font-size: 1.25rem; }
  .notice-photo-caption p { font-size: .57rem; }
}

@media (prefers-reduced-motion:reduce) {
  .scene-gate { display: none; }
  .social-card::before { display: none; }
}

/* V15 — exact V6 contact pairing, clickable gates and full social-card hit areas */
.hero-actions { gap: 18px; align-items: center; }
.hero-visit-v15 {
  min-height: 52px;
  padding: 12px 22px;
  white-space: nowrap;
}
.hero-call {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  min-height: 52px;
  padding: 8px 18px 8px 9px;
  border: 1px solid rgba(73,55,71,.16);
  border-radius: 999px;
  background: rgba(255,253,249,.72);
  color: var(--ink);
  text-decoration: none;
  box-shadow: 0 9px 22px rgba(73,55,71,.08);
  transition: transform .25s,box-shadow .25s,background .25s;
}
.hero-call:hover,
.hero-call:focus-visible { transform: translateY(-3px); background: #fff; box-shadow: 0 14px 28px rgba(73,55,71,.14); }
.hero-call-icon {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #edc77f;
  color: #3e3239;
  font-size: 1.12rem;
  transform: rotate(-8deg);
  transition: transform .3s;
}
.hero-call:hover .hero-call-icon,
.hero-call:focus-visible .hero-call-icon { transform: rotate(8deg) scale(1.08); }
.hero-call > span:last-child { display: grid; line-height: 1; }
.hero-call small { margin-bottom: 4px; color: var(--plum); font: 700 .62rem/1 var(--sans); letter-spacing: .1em; text-transform: uppercase; }
.hero-call strong { font: 1.23rem/1 var(--serif); letter-spacing: .015em; }

.social-links { position: relative; z-index: 8; }
.social-card { z-index: 2; cursor: pointer; pointer-events: auto; }
.social-card > * { pointer-events: none; }
.social-card::before,
.social-card::after { pointer-events: none; }
.social-card:hover,
.social-card:focus-visible { z-index: 4; }

.day-scenes .scene .scene-gate {
  position: absolute;
  z-index: 18;
  inset: -1px;
  display: block;
  width: auto;
  min-height: 0;
  height: auto;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  pointer-events: auto;
  appearance: none;
}
.day-scenes .scene.is-gate-open .scene-gate { pointer-events: none; }
.gate-panel { transition-delay: 0ms; }
.scene-gate em { transition-delay: 0ms; }

.parents::before,
.review-quote { display: none; }
.review-card p::before { content: "“"; margin-right: .06em; color: var(--plum); }
.review-card p::after { content: "”"; margin-left: .04em; color: var(--plum); }

@media (max-width:760px) {
  .hero-actions { gap: 12px; }
  .hero-visit-v15,
  .hero-call { width: 100%; justify-content: center; }
}

@media (prefers-reduced-motion:reduce) {
  .day-scenes .scene .scene-gate { display: block; }
  .gate-panel,
  .scene-gate em { transition: none; }
}

/* V16 — paired contact cards, reliable fourth gate and warmer editorial reviews */
.hero-actions { align-items: stretch; }
.hero-actions .hero-call {
  min-width: 245px;
  min-height: 68px;
  padding: 8px 18px 8px 9px;
  background: rgba(255,253,249,.88);
}
.hero-actions .hero-meet { min-width: 280px; }
.hero-meet .hero-call-icon { background: #d9c4da; }
.hero-call-icon svg {
  width: 21px;
  height: 21px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.hero-meet strong { font-size: .94rem; line-height: 1.1; }

.day-scenes .scene-home,
.day-scenes .scene-home .scene-gate { pointer-events: auto !important; }
.day-scenes .scene-home { position: relative; z-index: 4; }
.day-scenes .scene-home .scene-gate { z-index: 30; }

.review-card p {
  max-width: 1080px;
  color: #40363e;
  font-family: "Nunito", var(--sans);
  font-size: clamp(1.65rem,2.55vw,2.65rem);
  font-weight: 500;
  line-height: 1.28;
  letter-spacing: -.018em;
}
.review-card p::before,
.review-card p::after {
  color: #a66f91;
  font-family: Georgia, serif;
  font-size: 1.12em;
  font-weight: 700;
}
.review-card footer strong { font-family: var(--serif); font-size: 1rem; font-weight: 400; letter-spacing: .08em; }
.review-card footer span { font-family: "Nunito", var(--sans); font-size: .74rem; }

.reviews-source {
  min-height: 42px;
  padding: 9px 15px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid rgba(111,82,107,.2);
  border-radius: 999px;
  background: rgba(255,253,249,.78);
  color: var(--plum-dark);
  box-shadow: 0 10px 24px rgba(73,55,71,.1);
  font-family: "Nunito", var(--sans);
  font-size: .76rem;
  font-weight: 700;
  text-decoration: none;
  transition: transform .25s ease, background .25s ease, box-shadow .25s ease;
}
.reviews-source::before { display:none; }
.reviews-source-label { white-space:nowrap; }
.reviews-source-icon {
  width:34px;
  height:34px;
  flex:0 0 34px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#e8d8e7;
  color:#66485f;
  font-size:1rem;
  line-height:1;
}
.reviews-source:hover,
.reviews-source:focus-visible {
  transform: translateY(-3px);
  background: #fffaf3;
  box-shadow: 0 15px 30px rgba(73,55,71,.15);
}

.living-window .noticeboard-status {
  gap: 8px;
  margin-bottom: 17px;
  font-size: .7rem;
  letter-spacing: .14em;
}
.living-window .noticeboard-status > span { width: 8px; height: 8px; }
.window-intro h2 { font-size: clamp(3.2rem,5.3vw,4.85rem); line-height: .98; }
.window-intro > p:not(.eyebrow) {
  max-width: 450px;
  margin-top: 24px;
  font-size: 1rem;
  line-height: 1.72;
}

@media (max-width:760px) {
  .hero-actions .hero-call,
  .hero-actions .hero-meet { min-width: 0; }
  .review-card p { font-size: clamp(1.45rem,7vw,2.15rem); line-height: 1.3; }
  .reviews-source { min-height: 38px; padding: 8px 12px; font-size: .7rem; }
  .living-window .noticeboard-status { font-size: .64rem; }
  .window-intro h2 { font-size: clamp(2.8rem,13vw,4rem); }
  .window-intro > p:not(.eyebrow) { font-size: .95rem; }
}

/* V17 — the proven V6 one-button interaction, dressed as a fairytale doorway */
.day-scenes .scene,
.day-scenes .scene-home { z-index: auto; }
.day-scenes .scene > [data-scene] { isolation: isolate; }
.day-scenes .scene .scene-gate {
  position: absolute;
  z-index: 20;
  inset: -1px;
  display: block;
  width: auto;
  min-height: 0;
  height: auto;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: inherit;
  background:
    radial-gradient(circle at 50% 7%,rgba(255,239,185,.22),transparent 25%),
    linear-gradient(145deg,#382a38,#684d64 58%,#443243);
  color: inherit;
  pointer-events: none !important;
  perspective: 1100px;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.1), inset 0 0 55px rgba(17,8,17,.22);
}
.day-scenes .scene .gate-panel {
  top: 15px;
  bottom: 7px;
  width: calc(50% - 5px);
  background:
    radial-gradient(circle at 72% 24%,rgba(255,236,170,.2) 0 2px,transparent 3px),
    radial-gradient(circle at 30% 38%,rgba(255,255,255,.12) 0 1.5px,transparent 2.5px),
    radial-gradient(circle at 62% 70%,rgba(255,230,155,.16) 0 2px,transparent 3px),
    linear-gradient(155deg,#4b3549,#765970 55%,#4c374a);
  border: 1px solid rgba(242,210,143,.27);
  box-shadow: inset 0 0 28px rgba(255,224,166,.06), 0 0 22px rgba(21,10,20,.2);
  transition: transform .88s cubic-bezier(.66,.02,.2,1);
}
.day-scenes .scene .gate-left {
  left: 7px;
  border-radius: 82% 7px 6px 7px / 18% 7px 6px 7px;
  transform-origin: 0 50%;
}
.day-scenes .scene .gate-right {
  right: 7px;
  border-radius: 7px 82% 7px 6px / 7px 18% 7px 6px;
  transform-origin: 100% 50%;
}
.day-scenes .scene .gate-panel::before {
  content: "";
  position: absolute;
  inset: 11% 13% 9%;
  border: 1px solid rgba(246,215,153,.22);
  border-radius: 70% 70% 12px 12px / 17% 17% 12px 12px;
  box-shadow: inset 0 0 0 7px rgba(255,255,255,.018);
}
.day-scenes .scene .gate-panel::after {
  content: "";
  position: absolute;
  top: 51%;
  width: 9px;
  height: 9px;
  border: 1px solid rgba(255,247,211,.8);
  border-radius: 50%;
  background: #d8ae69;
  box-shadow: 0 0 0 4px rgba(216,174,105,.11), 0 0 17px rgba(246,210,139,.4);
}
.day-scenes .scene .gate-left::after { right: 8px; }
.day-scenes .scene .gate-right::after { left: 8px; }
.day-scenes .scene .scene-gate em {
  z-index: 25;
  padding: 10px 13px;
  border: 1px solid rgba(245,218,161,.27);
  border-radius: 999px;
  background: rgba(54,37,52,.78);
  box-shadow: 0 8px 22px rgba(20,10,18,.22), inset 0 1px rgba(255,255,255,.08);
  color: #fff4dc;
  letter-spacing: .13em;
  transition: opacity .22s ease, transform .32s ease;
}
.day-scenes .scene.is-open .gate-left { transform: translateX(-104%) rotateY(-18deg); }
.day-scenes .scene.is-open .gate-right { transform: translateX(104%) rotateY(18deg); }
.day-scenes .scene.is-open .scene-gate {
  background: transparent;
  box-shadow: none;
  transition: background 0s .7s, box-shadow 0s .7s;
}
.day-scenes .scene.is-open .scene-gate em { opacity: 0; transform: translate(-50%,-60%) scale(.9); }

.reviews-head h2 {
  font-family: "Cormorant Garamond", var(--serif);
  font-weight: 400;
  letter-spacing: -.035em;
}

.chat-launcher::before { display: none !important; }

@media (prefers-reduced-motion:reduce) {
  .day-scenes .scene .gate-panel,
  .day-scenes .scene .scene-gate em { transition: none; }
}

/* V18 — restore the clean V6 social cards and harden small navigation controls */
.social-links {
  position: static;
  z-index: auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.social-card,
.social-card:focus-visible {
  position: relative;
  z-index: auto;
  min-height: 152px;
  padding: 24px;
  display: grid;
  grid-template-columns: 62px 1fr auto;
  gap: 16px;
  align-items: center;
  overflow: visible;
  isolation: auto;
  border: 1px solid rgba(57,43,55,.16);
  border-radius: 20px;
  color: var(--ink);
  text-decoration: none;
  transform: none;
  box-shadow: none;
  cursor: pointer;
  pointer-events: auto;
  transition: transform .35s ease, box-shadow .35s ease;
}
.social-card::before,
.social-card::after { content: none; display: none; }
.social-card > * { position: static; z-index: auto; pointer-events: auto; }
.social-card span { min-width: 0; display: grid; }
.social-logo {
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  border-radius: 18px;
  box-shadow: 0 12px 24px rgba(52,37,49,.16);
  transition: transform .35s cubic-bezier(.2,.8,.2,1);
}
.social-card .social-logo svg {
  width: 34px;
  height: 34px;
  padding: 0;
  border: 0;
  border-radius: 0;
  fill: none;
  stroke: #fff;
  stroke-width: 1.9;
}
.instagram-logo { background: radial-gradient(circle at 30% 100%,#ffd36d 0 18%,#fa7b3f 38%,#d83791 62%,#7353c7 100%); }
.facebook-logo { background: #1877f2; }
.social-card .facebook-logo svg { fill: #fff; stroke: #fff; }
.social-card small { margin-bottom: 5px; font-size: .67rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.social-card strong { overflow-wrap: normal; word-break: normal; font: 1.02rem/1.25 var(--sans); }
.social-card > b {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(255,255,255,.55);
  font-size: 1.25rem;
  transition: transform .3s, background .3s;
}
.social-instagram,
.social-instagram:hover,
.social-instagram:focus-visible { background: linear-gradient(145deg,#f5dfcf,#e4c8dd); border-color: rgba(57,43,55,.16); }
.social-facebook,
.social-facebook:hover,
.social-facebook:focus-visible { background: #f7f0e7; border-color: rgba(57,43,55,.16); }
.social-card:hover,
.social-card:focus-visible { transform: translateY(-6px) rotate(-.35deg); box-shadow: 0 20px 38px rgba(70,48,65,.14); }
.social-card:hover .social-logo,
.social-card:focus-visible .social-logo { transform: rotate(-8deg) scale(1.1); }
.social-card:hover > b,
.social-card:focus-visible > b { transform: translate(3px,-3px); background: #fff; }

.reviews-head h2 {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 300;
  letter-spacing: -.045em;
}
.review-card p {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(1.85rem,2.7vw,2.8rem);
  font-weight: 300;
  line-height: 1.2;
  letter-spacing: -.018em;
}
.review-nav { z-index: 20; }
.review-nav > button { position: relative; z-index: 21; }

/* Let the native #top anchor do the scrolling — fewer moving parts, more reliable. */
.back-to-top { pointer-events: auto; }

/* A brief sprinkle of light as each fairytale doorway opens. */
.day-scenes .scene .scene-gate::after {
  content: "✦";
  position: absolute;
  z-index: 24;
  left: 50%;
  top: 48%;
  color: #ffe7a9;
  font: 1.05rem/1 Georgia, serif;
  opacity: 0;
  pointer-events: none;
  text-shadow:
    -36px -54px 0 rgba(255,240,184,.9),
    39px -35px 0 rgba(255,255,255,.82),
    -48px 31px 0 rgba(240,203,135,.8),
    44px 49px 0 rgba(255,238,174,.88),
    3px -75px 0 rgba(255,255,255,.74);
  transform: translate(-50%,-50%) scale(.2) rotate(-12deg);
}
.day-scenes .scene.is-open .scene-gate::after { animation: doorwaySparkle .72s .1s ease-out both; }
@keyframes doorwaySparkle {
  0% { opacity: 0; transform: translate(-50%,-50%) scale(.2) rotate(-12deg); }
  34% { opacity: 1; }
  100% { opacity: 0; transform: translate(-50%,-50%) scale(1.65) rotate(18deg); }
}

@media (max-width:760px) {
  .social-links { grid-template-columns: 1fr; }
  .social-card { grid-template-columns: 54px 1fr auto; min-height: 118px; padding: 19px; }
  .social-logo { width: 50px; height: 50px; }
  .social-card .social-logo svg { width: 29px; height: 29px; }
  .social-card strong { font-size: .88rem; }
  .review-card p { font-size: clamp(1.65rem,7.2vw,2.3rem); line-height: 1.22; }
}

@media (prefers-reduced-motion:reduce) {
  .day-scenes .scene.is-open .scene-gate::after { animation: none; }
}

/* V35 — centered mobile navigation, teddy and compact trust details */
.mobile-dock { display:none; }

@media (max-width:760px) {
  html,body { width:100%; max-width:100%; overflow-x:clip; }
  main,.site-header,.site-footer,.activities-footer,.menu-footer { max-width:100%; }
  body { padding-bottom:84px; }

  .mobile-dock {
    position:fixed;
    z-index:205;
    left:50%;
    bottom:max(10px,env(safe-area-inset-bottom));
    width:min(560px,calc(100vw - 18px));
    min-height:62px;
    padding:7px;
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    align-items:center;
    gap:2px;
    border:1px solid rgba(73,55,71,.14);
    border-radius:22px;
    background:rgba(255,250,246,.9);
    box-shadow:0 14px 40px rgba(55,37,52,.2),inset 0 1px rgba(255,255,255,.9);
    backdrop-filter:blur(18px) saturate(1.12);
    transform:translateX(-50%);
  }
  .mobile-dock a {
    min-width:0;
    padding:12px 3px 11px;
    border-radius:15px;
    color:#55434f;
    font:700 clamp(.61rem,2.75vw,.72rem)/1 "DM Sans",Arial,sans-serif;
    text-align:center;
    text-decoration:none;
    white-space:nowrap;
  }
  .mobile-dock a[aria-current="page"] { background:#eadbea; color:#65475f; box-shadow:inset 0 0 0 1px rgba(101,71,95,.08); }

  .site-footer nav { display:none!important; }
  .site-footer { padding-bottom:34px!important; }
  .activities-footer,.menu-footer { padding-bottom:32px!important; }

  .teddy-guide {
    display:block!important;
    left:50%!important;
    top:auto!important;
    right:auto!important;
    bottom:82px!important;
    width:64px!important;
    height:64px!important;
    opacity:1!important;
    transform:translateX(-50%);
  }
  .teddy-guide-track { display:none!important; }
  .teddy-guide-bear { left:0!important; top:0!important; width:64px!important; transform:none!important; }
  .teddy-guide-ring { width:64px!important; height:64px!important; border-width:4px!important; }
  .teddy-guide-bear small { display:none!important; }
  .back-to-top { right:12px!important; bottom:88px!important; }
  .live-chat { right:12px!important; bottom:88px!important; }

  .trust-strip {
    width:100%;
    min-height:0;
    padding:13px 12px!important;
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr));
    justify-content:stretch!important;
    gap:0!important;
    overflow:hidden!important;
  }
  .trust-strip span {
    min-width:0;
    padding:8px 7px;
    font-size:clamp(.82rem,3.7vw,1rem)!important;
    line-height:1.15;
    text-align:center;
    white-space:normal!important;
  }
  .trust-strip span + span::before { display:none!important; }
}

/* V36 — a clean four-link mobile dock with the teddy sitting in its centre */
@media (max-width:760px) {
  body { padding-bottom:92px; }
  .mobile-dock {
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) 62px minmax(0,1fr) minmax(0,1fr);
    min-height:64px;
    padding:7px 8px;
    overflow:visible;
  }
  .mobile-dock a:nth-child(1) { grid-column:1; }
  .mobile-dock a:nth-child(2) { grid-column:2; }
  .mobile-dock a:nth-child(3) { grid-column:4; }
  .mobile-dock a:nth-child(4) { grid-column:5; }
  .mobile-dock a { padding-left:2px; padding-right:2px; }

  .teddy-guide {
    z-index:207;
    bottom:54px!important;
    width:58px!important;
    height:58px!important;
  }
  .teddy-guide-bear { width:58px!important; }
  .teddy-guide-ring { width:58px!important; height:58px!important; border-width:4px!important; box-shadow:0 10px 24px rgba(73,55,71,.22); }

  .site-footer {
    padding:24px 20px 116px!important;
    justify-items:center;
    gap:8px!important;
    text-align:center;
  }
  .site-footer .brand-footer { justify-self:center; }
  .site-footer > p { justify-self:center!important; text-align:center; }
  .footer-note { display:none!important; }
  .activities-footer,.menu-footer { padding-bottom:112px!important; }
  .back-to-top { display:none!important; }
  .live-chat { right:12px!important; bottom:88px!important; }
}

@media (max-width:390px) {
  .mobile-dock { width:calc(100vw - 12px); grid-template-columns:minmax(0,1fr) minmax(0,1fr) 56px minmax(0,1fr) minmax(0,1fr); }
  .mobile-dock a { font-size:.59rem; }
  .teddy-guide { width:54px!important; height:54px!important; }
  .teddy-guide-bear,.teddy-guide-ring { width:54px!important; }
  .teddy-guide-ring { height:54px!important; }
}

/* V40 — one centred navigation system and two clearly equal settings */
@media (min-width:1051px) {
  .site-header { position:relative; grid-template-columns:minmax(175px,1fr) auto minmax(175px,1fr)!important; }
  .site-header nav {
    position:relative;
    z-index:8;
    left:auto;
    top:auto;
    width:auto;
    max-width:none;
    justify-self:center!important;
    transform:none;
    white-space:nowrap;
  }
  .site-header > :last-child { justify-self:end; }
}

.setting-location {
  width:max-content;
  max-width:100%;
  margin-bottom:18px!important;
  padding:6px 9px 6px 6px;
  display:flex;
  align-items:center;
  gap:8px;
  border:1px solid rgba(91,66,86,.14);
  border-radius:999px;
  background:rgba(255,253,249,.9);
  box-shadow:0 8px 20px rgba(73,55,71,.08);
  letter-spacing:.08em;
}
.setting-location-pin {
  width:27px;
  height:27px;
  flex:0 0 27px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#e8d3e6;
  color:#5b4256;
  font-size:.9rem;
  line-height:1;
}
.setting-location strong { color:#4a3747; font-weight:700; }
.setting-location-area {
  padding:5px 8px;
  border-radius:999px;
  background:#ead8e8;
  color:#644b60;
  white-space:nowrap;
}
.setting-balham .setting-location-pin { background:#ead7c9; color:#704f40; }
.setting-balham .setting-location-area { background:#f0dfd3; color:#6b4e42; }

.map-directions-link { display:flex!important; flex-direction:column; align-items:center; justify-content:center; gap:5px; }
.map-directions-link > span:last-child { display:block; line-height:1.15; }

@media (max-width:760px) {
  .setting-location { gap:6px; padding-right:7px; font-size:.62rem; }
  .setting-location-pin { width:24px; height:24px; flex-basis:24px; }
  .setting-location-area { padding:4px 7px; }
  .google-maps-mark { width:26px; height:26px; }
}

.settings-head { align-items:center; }
.settings-grid { position:relative; gap:20px; }
.settings-grid::before {
  content:"Same care · two neighbourhoods";
  position:absolute;
  z-index:8;
  left:50%;
  top:-18px;
  padding:8px 14px;
  border:1px solid rgba(91,66,86,.13);
  border-radius:999px;
  background:#fffaf4;
  color:#74576e;
  box-shadow:0 8px 20px rgba(73,55,71,.09);
  font-size:.62rem;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  transform:translateX(-50%);
  white-space:nowrap;
}
.setting-card { overflow:hidden; border:1px solid rgba(80,57,75,.16); box-shadow:0 22px 48px rgba(65,45,60,.11); }
.setting-clapham { border-top:5px solid #a978a2; }
.setting-balham { border-top:5px solid #a87a5e; }
.setting-equal-note {
  margin-top:24px;
  padding-top:17px;
  display:grid;
  grid-template-columns:38px 1fr;
  gap:2px 12px;
  align-items:center;
  border-top:1px solid rgba(82,60,76,.13);
}
.setting-equal-note > span {
  grid-row:1 / span 2;
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#ead8e7;
  color:#67495f;
  font-size:.67rem;
  font-weight:700;
}
.setting-balham .setting-equal-note > span { background:#ead8cb; color:#76513e; }
.setting-equal-note strong { color:#51404c; font-size:.75rem; line-height:1.15; }
.setting-equal-note small { color:#85767e; font-size:.62rem; line-height:1.2; }

@media (max-width:760px) {
  .settings-grid::before { top:-14px; font-size:.56rem; }
  .setting-copy > p:not(.eyebrow) { min-height:0!important; }

  .local-map { padding:44px 14px 48px!important; }
  .map-head { padding:0 6px; }
  .map-frame {
    width:100%;
    min-height:0!important;
    aspect-ratio:.92 / 1;
    overflow:hidden;
    border:7px solid #fffaf5!important;
    border-radius:24px!important;
    background:#eedbc3;
    transform:none!important;
    box-shadow:0 28px 55px rgba(70,50,63,.16)!important;
  }
  .map-board {
    inset:0;
    border:0;
    border-radius:0;
    background:#eedbc3;
    transform:none;
    box-shadow:none;
  }
  .map-board > img {
    width:100%!important;
    min-width:0!important;
    height:100%!important;
    object-fit:fill!important;
    object-position:center!important;
  }
  .map-badge { left:10px!important; top:10px!important; padding:7px 9px!important; font-size:.53rem!important; }
  .map-pin > span { width:43px!important; height:43px!important; border-width:2px; font-size:1rem!important; }
  .map-pin b {
    display:block!important;
    margin-top:5px!important;
    padding:4px 6px!important;
    border-width:1.5px;
    border-radius:6px;
    font-size:.52rem!important;
    line-height:1.05;
  }
  .pin-clapham { --x:34%; --y:20%; }
  .pin-cavendish { --x:57%; --y:37%; }
  .pin-thornton { --x:77%; --y:61%; }
  .pin-balham { --x:23%; --y:80%; }
  .map-actions {
    right:auto!important;
    bottom:auto!important;
    max-width:calc(100vw - 40px);
    max-height:none;
    padding:15px 14px 13px!important;
    overflow:visible;
    border-radius:17px!important;
  }
  .map-actions .eyebrow { margin-bottom:4px; font-size:.52rem; }
  .map-actions h3 { padding-right:27px; font-size:1.18rem; }
  .map-actions > p { margin:3px 0 10px; font-size:.68rem; }
  .map-actions-close { right:9px; top:9px; width:27px; height:27px; }
  .map-action-links { grid-template-columns:repeat(3,minmax(0,1fr))!important; gap:5px!important; }
  .map-action-links a { min-height:36px; padding:6px 4px; font-size:.57rem; line-height:1.15; }
  .map-actions.is-below::after {
    top:-9px;
    bottom:auto;
    border:0;
    border-left:1px solid rgba(71,55,69,.18);
    border-top:1px solid rgba(71,55,69,.18);
  }

  .reviews-source {
    right:16px!important;
    bottom:76px!important;
    left:auto!important;
    width:max-content;
    max-width:calc(100% - 32px)!important;
    min-height:43px;
    padding:5px 6px 5px 13px;
    gap:9px;
    line-height:1!important;
    text-align:left;
    white-space:nowrap;
  }
  .reviews-source-icon { width:31px; height:31px; flex-basis:31px; }
}

@media (max-width:390px) {
  .map-frame { aspect-ratio:.86 / 1; }
  .map-pin > span { width:40px!important; height:40px!important; }
  .map-pin b { font-size:.48rem!important; }
}
