/* Continuous sizing, retaining the approved desktop composition and readable controls. */
.group-price-value { display:flex; flex-wrap:wrap; align-items:center; gap:16px 20px; margin-block:20px; min-width:0; }
.group-price-value .price { margin:0; }
.treatment-value-badges { display:flex; flex-wrap:wrap; gap:10px; min-width:0; }
body:not([data-page="/jw-v2/owner"]) .treatment-saving-badge { display:block; max-width:100%; padding:8px 12px; border:1px solid #d9d2c7; border-radius:5px; background:#f5f2ec; color:#302c27; font-size:.9375rem; font-weight:600; line-height:1.35; letter-spacing:0; overflow-wrap:anywhere; }
body:not([data-page="/jw-v2/owner"]) .treatment-saving-badge small { display:block; margin-top:5px; color:#201a11; font-size:.8125rem; font-weight:500; line-height:1.4; }
.wedding-options { min-width:0; margin-block:16px; padding:14px; border:1px solid #bca785; border-radius:14px; background:#f6f2eb; color:#25221e; }
.wedding-options label { display:block; margin-top:14px; }
.wedding-options label:first-child { margin-top:0; }
.wedding-options select { box-sizing:border-box; display:block; width:100%; max-width:100%; min-width:0; font-size:1rem; padding:12px 8px; }
.wedding-options p { margin-block:8px; color:inherit; overflow-wrap:anywhere; }
.wedding-options [data-wedding-result] { margin-block:16px; }
.wedding-options [data-wedding-result] p { display:flex; flex-wrap:wrap; justify-content:space-between; gap:4px 12px; }
.wedding-options .wedding-total { font-size:1.05rem; font-weight:700; border-top:1px solid #d5c9b6; padding-top:12px; }
.wedding-options .wedding-saving { font-size:.85rem; line-height:1.5; }
@media(max-width:380px) { .wedding-options { padding:12px; } }
/* Keep the navigation comfortably inside the black header at each existing breakpoint. */
body:not([data-page="/jw-v2/owner"]) .site-header { gap:clamp(10px,1.2vw,20px); padding-inline:clamp(14px,2vw,36px); align-items:center; }
body:not([data-page="/jw-v2/owner"]) .site-header nav { min-width:0; font-size:.875rem; line-height:1.35; letter-spacing:0; }
body:not([data-page="/jw-v2/owner"]) .site-header .header-book { min-height:44px; padding:11px 18px; font-size:.875rem; line-height:1.35; }
@media(min-width:1451px) {
 body:not([data-page="/jw-v2/owner"]) .site-header nav { gap:clamp(14px,1.25vw,24px); flex-wrap:nowrap; }
 body:not([data-page="/jw-v2/owner"]) .site-header nav > a,
 body:not([data-page="/jw-v2/owner"]) .site-header nav > .nav-contact-group > summary { white-space:nowrap; padding-block:8px; }
}
@media(max-width:1450px) {
 body:not([data-page="/jw-v2/owner"]) .site-header nav.open { padding:16px clamp(18px,3vw,32px) 20px; gap:4px; }
 body:not([data-page="/jw-v2/owner"]) .site-header nav.open > a,
 body:not([data-page="/jw-v2/owner"]) .site-header nav.open > .nav-contact-group > summary { min-height:44px; padding:10px 8px; line-height:1.4; }
 body:not([data-page="/jw-v2/owner"]) .site-header nav.open .nav-contact-menu a { white-space:normal; }
}
@media(max-width:380px) {
 body:not([data-page="/jw-v2/owner"]) .site-header { gap:8px; padding-inline:12px; }
 body:not([data-page="/jw-v2/owner"]) .site-header .header-book { padding-inline:12px; font-size:.8125rem; }
}
body:not([data-page="/jw-v2/owner"]) .site-header .brand { height:clamp(80px,11.4vw,100px); }
body:not([data-page="/jw-v2/owner"]) .site-header .brand img { width:clamp(110px,16vw,140px); height:clamp(110px,16vw,140px); }
body:not([data-page="/jw-v2/owner"]) .site-header nav.open { max-height:calc(100dvh - clamp(89px,12.5vw,109px) - env(safe-area-inset-bottom)); }
body[data-page="/"] .studio-hero h1 { font-size:clamp(2.65rem,1.1rem + 4.4vw,6rem); }
@media(min-width:701px) and (max-width:1000px) {
 body[data-page="/"] .studio-hero .hero-copy { width:56%; }
}
@media(max-width:700px) {
 body[data-page="/"] .studio-hero .hero-art { height:clamp(300px,70vw,420px); flex-basis:clamp(300px,70vw,420px); }
 body:not([data-page="/jw-v2/owner"]) .footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
 body:not([data-page="/jw-v2/owner"]) .footer-brand { grid-column:1/-1; }
 body:not([data-page="/jw-v2/owner"]) .footer-grid a { min-height:36px; }
}
/* Tablet cards keep their reading width instead of becoming single oversized rows. */
@media(max-width:960px) {
 body:not([data-page="/jw-v2/owner"]) .treatment-picker .price-grid { display:flex; overflow-x:auto; gap:16px; scroll-snap-type:x proximity; align-items:stretch; padding-block:12px 24px; }
 body:not([data-page="/jw-v2/owner"]) .treatment-picker .price-grid .price-card { flex:0 0 clamp(260px,42vw,360px); width:auto; max-width:none; padding:48px 22px 24px; scroll-snap-align:start; }
 body:not([data-page="/jw-v2/owner"]) .price-card .treatment-shade-hover { position:static; opacity:1; display:flex; margin-top:10px; font-size:.82rem; flex-wrap:wrap; }
}
@media(max-width:600px) {
 body:not([data-page="/jw-v2/owner"]) .treatment-picker .price-grid .price-card { flex-basis:88%; min-width:0; padding-inline:20px; }
}
/* Chat typography and form colours are independent of the page's display styles. */
body:not([data-page="/jw-v2/owner"]) .help-header h2 { font-size:1.4rem; line-height:1.2; letter-spacing:-.025em; }
body:not([data-page="/jw-v2/owner"]) #help-dialog .help-form input { background:#fff; color:#242424; border:1px solid #9b8c77; font-size:16px; }
body:not([data-page="/jw-v2/owner"]) #help-dialog .help-form input::placeholder { color:#696259; opacity:1; }
.help-header,.help-intro,.help-topics { flex-shrink:0; }
.help-messages { min-height:0; flex:1 1 240px; }
@media(max-width:700px) {
 body:not([data-page="/jw-v2/owner"]) dialog.help-dialog { inset:auto 12px max(12px,env(safe-area-inset-bottom)) 12px; height:min(680px,calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom))); max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); }
 body:has(.help-dialog[open]) :is(.mobile-book,.help-launcher,.design-note-launcher) { display:none; }
 .help-topics button { padding:8px 10px; }
 .help-intro { padding:12px 16px 6px; }
 .help-form { padding:10px 16px; }
 .help-footer { padding-bottom:6px; }
}
@media(max-height:600px) {
 .help-intro,.help-topics,.help-form small { display:none; }
 body:not([data-page="/jw-v2/owner"]) dialog.help-dialog { bottom:12px; max-height:calc(100dvh - 24px); }
 .help-header { padding:8px 16px; }
}

.group-price-card .aftercare-inclusion-detail{display:block;margin-top:5px;font-size:.875rem;line-height:1.5;font-weight:400}

/* Private design selection panel; activated only by the preview script. */
.gallery-selection{padding:32px 20px;background:#f4efe7;color:#201a11;border-radius:18px;margin:24px auto}
.gallery-selection select,.gallery-selection button{font:inherit;padding:10px 14px;min-height:44px}
.gallery-selection-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin:20px 0}
.gallery-selection-grid button{position:relative;padding:0;overflow:hidden;border:3px solid transparent;border-radius:12px;background:#fff;color:#201a11}
.gallery-selection-grid button[aria-pressed=true]{border-color:#79571d}
.gallery-selection-grid img{display:block;width:100%;aspect-ratio:1;object-fit:cover}
.gallery-selection-grid span{display:block;padding:8px;background:#f0d5a4;font-weight:700}
.gallery-selection textarea{display:block;width:100%;min-height:160px;margin-top:16px}
.gallery-selection textarea[hidden]{display:none}

.benefits-banner .home-benefits>div.banner-google-reviews{display:flex;align-items:center;justify-content:flex-start}
.home-benefits .google-review-badge{display:flex;align-items:center;gap:16px;width:100%;max-width:330px;min-height:112px;padding:18px 20px;border-radius:16px;background:#161616;color:#fff;text-decoration:none;box-shadow:0 3px 12px #0003;transition:transform .2s ease,box-shadow .2s ease}
.home-benefits .google-review-badge:hover{transform:translateY(-3px);box-shadow:0 5px 22px #e6bb6159}
.home-benefits .google-review-badge:focus-visible{outline:2px solid #f4c353;outline-offset:4px}
.benefits-banner .home-benefits .google-review-badge img{width:48px;height:48px;flex:0 0 48px}
.google-badge-copy{display:flex;flex-direction:column;gap:4px;min-width:0}
.benefits-banner .home-benefits .google-review-badge strong{color:#fff;font-size:1.05rem;font-weight:700;line-height:1.25}
.google-badge-stars{color:#fbbc04;font-size:1.25rem;line-height:1.25;letter-spacing:2px;white-space:nowrap}
.google-badge-count{color:#fff;font-size:.8rem;line-height:1.4}
@media(prefers-reduced-motion:reduce){.home-benefits .google-review-badge{transition:none}.home-benefits .google-review-badge:hover{transform:none}}

.wedding-options{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:0;border:0;background:transparent}
.wedding-options label{margin:0;font-size:.875rem;line-height:1.4}
.wedding-options select{margin-top:6px}
@media(max-width:380px){.wedding-options{padding:0;grid-template-columns:1fr}}
.wedding-booking-details{margin-top:16px;border-top:1px solid #d9d2c7;padding-top:8px}
.wedding-booking-details summary{padding:12px 0;min-height:44px;cursor:pointer;font-weight:600}
.wedding-booking-details p{overflow-wrap:anywhere}

/* Keep the shade guide invitation gently visible without flashing its text. */
#shade-guide .shade-guide-enter{animation:shade-entry-glow 2.4s ease-in-out infinite;box-shadow:0 0 12px 2px #c5a87545}
@keyframes shade-entry-glow{0%,100%{box-shadow:0 0 8px 1px #c5a87530}50%{box-shadow:0 0 20px 6px #d9b66bb3,0 0 42px 12px #c5a87566}}
#shade-guide .shade-guide-enter:focus-visible{outline:2px solid #57452b;outline-offset:5px}
@media(prefers-reduced-motion:reduce){#shade-guide .shade-guide-enter{animation:none;box-shadow:0 0 18px 4px #c5a87565}}
.home-benefits .google-review-badge{max-width:none;background:transparent;box-shadow:none;padding:8px 0;gap:12px}
.home-benefits .google-review-badge:hover{box-shadow:none}
.home-benefits .google-badge-copy{flex:0 1 auto}
.home-benefits .google-badge-count{display:flex;flex-direction:column;gap:4px;flex:0 0 auto;text-align:right}
.home-benefits .google-badge-count b{font-size:2.5rem;line-height:1;font-weight:700;color:#fff}
.home-benefits .google-badge-count>span{font-size:.7rem;line-height:1.3}
@media(max-width:560px){.benefits-banner .home-benefits .google-review-badge img{width:32px;height:32px;flex-basis:32px}.home-benefits .google-review-badge{gap:8px}.home-benefits .google-badge-count b{font-size:2rem}.benefits-banner .home-benefits .google-review-badge strong{font-size:.9rem}}
.results-instagram{display:inline-flex;align-items:center;gap:12px;max-width:100%;min-height:44px;padding:10px 0;text-underline-offset:5px;color:inherit;font-size:1rem}.results-instagram img{width:24px;height:24px;flex:none}.results-instagram span{overflow-wrap:anywhere}
.treatment-process article{position:relative;border-left:1px solid #c9bdab;padding-left:24px}.treatment-process article>span{font-variant-numeric:tabular-nums;letter-spacing:.1em}.treatment-process details{margin-top:14px;font-size:.9rem}.treatment-process summary{min-height:44px;cursor:pointer;padding:10px 0}
/* Six clearly numbered, illustrated stops in the customer journey. */
.treatment-process{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;align-items:start}
.treatment-process article{min-width:0;min-height:350px;padding:28px;border:1px solid #d9d0c1;border-radius:18px;background:#f7f3ec;color:#29251f;box-shadow:6px 6px 0 #e7e0d5;position:relative}
.treatment-process article:not(:last-child)::after{content:'→';position:absolute;right:-25px;top:46%;font-size:24px;color:#8a7658;z-index:2}
.treatment-process article:nth-child(3)::after{content:'↓';right:24px;top:auto;bottom:-30px}
.treatment-process h3{font-size:1.35rem;margin-top:12px;min-height:3.2em}.journey-icon{display:block;width:100px;height:100px;margin:20px auto;color:#9c8056}
@media(prefers-reduced-motion:no-preference){.journey-visible article{animation:journey-arrive .8s ease both;animation-delay:calc(var(--journey-step,0)*.12s)}.journey-visible .journey-icon{animation:journey-icon-lift 4s ease-in-out 2}.treatment-process article:nth-child(2){--journey-step:1}.treatment-process article:nth-child(3){--journey-step:2}.treatment-process article:nth-child(4){--journey-step:3}.treatment-process article:nth-child(5){--journey-step:4}.treatment-process article:nth-child(6){--journey-step:5}}
@keyframes journey-arrive{from{opacity:.2;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes journey-icon-lift{50%{transform:translateY(-5px)}}
footer .footer-grid{display:grid;grid-template-columns:minmax(240px,1.3fr) repeat(3,minmax(0,1fr));gap:clamp(24px,4vw,64px);align-items:start;padding-top:48px;padding-bottom:36px}
footer .footer-brand>a:first-child{width:min(100%,320px);height:auto;aspect-ratio:1/.79;transform:none;margin:0 auto;overflow:hidden}
footer .footer-brand img{width:100%;height:auto;max-width:320px;object-fit:contain}footer .footer-grid>div{min-width:0}footer .footer-grid h3{margin:12px 0 18px}footer .footer-grid a:not(.footer-brand a){overflow-wrap:anywhere;line-height:1.55}footer .footer-bottom{gap:20px;flex-wrap:wrap}
.shop-products .shop-product{border-radius:20px;overflow:hidden}.shop-products .shop-product-image{border-radius:16px;overflow:hidden}.shop-products .shop-product-image img{border-radius:inherit}
@media(max-width:950px){footer .footer-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}footer .footer-brand{grid-column:1/-1}.treatment-process{grid-template-columns:repeat(2,minmax(0,1fr))}.treatment-process article:nth-child(3)::after{content:'→';right:-25px;top:46%;bottom:auto}.treatment-process article:nth-child(even)::after{content:'↓';right:24px;top:auto;bottom:-30px}}
@media(max-width:600px){footer .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}footer .footer-grid>div:last-child{grid-column:1/-1}footer .footer-brand>a:first-child{width:260px}.treatment-process{grid-template-columns:1fr}.treatment-process article{min-height:0}.treatment-process article:not(:last-child)::after{content:'↓';right:24px;top:auto;bottom:-30px}.treatment-process h3{min-height:0}}
.shop-products{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.shop-products .shop-product{padding:14px;display:flex;flex-direction:column;gap:12px;min-width:0}.shop-products .shop-product-image{display:block;aspect-ratio:1;width:100%;margin:0}.shop-products .shop-product-image img{width:100%;height:100%;object-fit:contain}.shop-products .shop-product h2{margin:0;font-size:1.08rem;line-height:1.35}.shop-products .shop-product h2 a{text-decoration:none;color:inherit}.shop-product-buy{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;flex-wrap:wrap}.product-quantity{display:inline-flex;align-items:center;gap:8px;flex:none}.product-quantity button{width:44px;height:44px;min-width:44px;border-radius:50%;border:1px solid #bfb3a1;background:#f4efe6;color:#211e19;font-size:1.3rem;padding:0}.product-quantity [hidden]{display:none!important}.product-quantity span{min-width:1.2em;text-align:center;font-variant-numeric:tabular-nums}.product-detail{padding-top:40px;padding-bottom:60px}.product-back{display:inline-block;margin-bottom:24px;min-height:44px}.product-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;padding:24px;border-radius:20px}.product-detail-image{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain;border-radius:16px}.product-detail h1{font-size:clamp(2rem,4vw,3rem);line-height:1.15}.product-detail .shop-product-buy{margin:24px 0}.product-detail .product-photo-strip{flex-wrap:wrap}
@media(max-width:950px){.shop-products{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.product-detail-layout{grid-template-columns:1fr;gap:24px;padding:16px}.shop-products{gap:12px}.shop-products .shop-product{padding:10px}.shop-products .shop-product h2{font-size:.95rem}}
@media(max-width:380px){.shop-products{grid-template-columns:1fr}}

/* One shared centre line for every item in the moving benefits banner. */
.benefits-banner .home-benefits.wrap{align-items:center}
.benefits-banner .home-benefits>div{align-items:center;flex-direction:row}
.benefits-banner .home-benefits>div.banner-google-reviews{min-width:340px}
.benefits-banner .home-benefits .google-review-badge{width:auto;min-height:72px;padding:0;gap:12px;align-items:center}
.benefits-banner .home-benefits .google-review-badge img{width:72px;height:72px;flex-basis:72px}
.benefits-banner .home-benefits .google-badge-copy{flex:0 0 auto;align-items:flex-start;justify-content:center}
.benefits-banner .home-benefits .google-badge-count{width:90px;text-align:left;justify-content:center}
.benefits-banner .home-benefits .google-badge-count>span{white-space:normal}
.benefits-banner .home-benefits .google-review-badge:hover{transform:none}
@media(max-width:560px){.benefits-banner .home-benefits>div.banner-google-reviews{min-width:300px}.benefits-banner .home-benefits .google-review-badge{min-height:60px;gap:10px}.benefits-banner .home-benefits .google-review-badge img{width:60px;height:60px;flex-basis:60px}.benefits-banner .home-benefits .google-badge-count{width:80px}}

.wedding-options .wedding-option-label{display:block;font-size:.875rem;font-weight:600;line-height:1.4;margin-bottom:8px;color:inherit}

.wedding-home-visit{margin-top:20px;padding:20px 0 4px;border-top:1px solid #b7a99055}.wedding-home-visit h3{font-size:1.15rem;margin:0 0 10px}.wedding-home-visit a{display:inline-block;padding:8px 0;text-underline-offset:4px}

/* Booking surfaces keep their own readable text palette. */
body[data-page="/jw-v2/booking"] #booking-stage{color:#242424}
body[data-page="/jw-v2/booking"] #booking-stage :is(label,h2,h3,strong,.booking-shade-range,.wedding-option-label){color:#242424}
body[data-page="/jw-v2/booking"] #booking-stage :is(p,small,.small){color:#625e56}
body[data-page="/jw-v2/booking"] #booking-stage :is(.booking-value,.booking-gift,a){color:#76531e}
body[data-page="/jw-v2/booking"] .booking-summary{--ink:#f5f3ee;--muted:#d8d0c4;--accent-text:#e4bc7b;color:#f5f3ee}
body[data-page="/jw-v2/booking"] .booking-summary :is(h2,h3,strong,span){color:inherit}
body[data-page="/jw-v2/booking"] .booking-summary :is(p,small,.small){color:#d8d0c4}
body[data-page="/jw-v2/booking"] .booking-summary :is(.booking-value,.booking-gift){color:#e4bc7b}
body[data-page="/jw-v2/booking"] .booking-summary .deposit-total{background:#e4bc7b;color:#242424}

/* A shared footer: brand left, useful links centred, social/payment marks together. */
body:not([data-page="/jw-v2/owner"]) .site-footer { padding:64px 0 24px; }
.site-footer .footer-shell { width:100%; max-width:1480px; margin-inline:auto; padding-inline:clamp(24px,4vw,64px); }
.site-footer .footer-layout { display:grid; grid-template-columns:240px minmax(0,1fr) 180px; gap:clamp(32px,3vw,52px); align-items:start; padding-bottom:42px; }
.site-footer .footer-layout > * { min-width:0; }
.site-footer .footer-layout > .footer-brand { display:block; grid-column:auto; text-align:left; }
.site-footer .footer-brand > a.footer-logo { --footer-logo-size:300px; display:block; width:calc(var(--footer-logo-size)*.8); height:calc(var(--footer-logo-size)*.84); max-width:none; aspect-ratio:auto; margin:0; transform:none; overflow:hidden; }
.site-footer .footer-brand .footer-logo img { display:block; width:var(--footer-logo-size); height:var(--footer-logo-size); max-width:none; padding:0; border-radius:0; clip-path:none; object-fit:contain; transform:translate(-15%,-6%); }
.site-footer .footer-navigation { display:grid; grid-template-columns:1.1fr 1fr 1.1fr; gap:clamp(20px,2.4vw,36px); }
.site-footer .footer-link-group { min-width:0; }
body:not([data-page="/jw-v2/owner"]) .site-footer h3 { margin:0 0 15px; font-family:inherit; font-size:.75rem; font-weight:600; line-height:1.5; letter-spacing:.08em; text-transform:uppercase; color:#d7c1a0; }
.site-footer .footer-navigation a { display:block; width:fit-content; max-width:100%; min-height:32px; margin:0; padding:5px 0; color:#d9d3ca; font-size:.875rem; line-height:1.55; text-decoration:none; overflow-wrap:anywhere; }
.site-footer .footer-connect { display:flex; flex-direction:column; gap:28px; }
.site-footer .social-links { justify-content:flex-start; gap:12px; margin:0; }
.site-footer .social-links a { display:inline-flex; width:44px; height:44px; min-height:44px; flex:0 0 44px; padding:4px; margin:0; }
.site-footer .social-links img { width:30px; height:30px; }
.site-footer .footer-payments h3 { margin-bottom:8px; }
.site-footer .payment-options { display:block; padding:0; margin:0; }
.site-footer .payment-options > div { display:flex; flex-direction:column; align-items:flex-start; gap:7px; }
.site-footer .payment-options .afterpay-badge { width:156px; height:44px; min-height:44px; margin-left:-20px; padding:0; flex:none; }
.site-footer .payment-options .afterpay-badge img { width:156px; height:auto; max-width:none; }
.site-footer .payment-options .zip-badge { width:112px; padding:0; min-height:0; background:transparent; }
.site-footer .payment-options .zip-badge img { width:112px; height:auto; max-width:100%; }
.site-footer .footer-bottom { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px 30px; margin-top:0; padding-top:20px; border-top:1px solid #4b463f; color:#b7afa4; font-size:.75rem; line-height:1.5; }
.site-footer .footer-bottom > div { display:flex; flex-wrap:wrap; align-items:center; gap:8px 24px; margin:0; }
.site-footer .footer-bottom :is(a,button) { display:inline-flex; align-items:center; min-height:36px; font:inherit; color:inherit; text-decoration:none; }
@media(max-width:1180px) {
 .site-footer .footer-layout { grid-template-columns:220px minmax(0,1fr); gap:30px 36px; }
 .site-footer .footer-navigation { grid-column:2; grid-row:1; }
 .site-footer .footer-connect { grid-column:1/-1; flex-direction:row; justify-content:flex-end; gap:48px; }
 .site-footer .payment-options > div { flex-direction:row; align-items:center; gap:16px; }
 .site-footer .footer-brand > a.footer-logo { --footer-logo-size:275px; }
}
@media(max-width:800px) {
 body:not([data-page="/jw-v2/owner"]) .site-footer { padding-top:44px; }
 .site-footer .footer-layout { grid-template-columns:1fr 1fr; gap:30px; }
 .site-footer .footer-navigation { grid-column:1/-1; grid-row:2; }
 .site-footer .footer-connect { grid-column:2; grid-row:1; justify-self:end; flex-direction:column; gap:20px; }
 .site-footer .payment-options > div { flex-direction:column; align-items:flex-start; gap:7px; }
 .site-footer .footer-brand > a.footer-logo { --footer-logo-size:260px; }
 .site-footer .footer-navigation a { min-height:40px; padding-block:8px; }
 .site-footer .footer-bottom { align-items:flex-start; }
}
@media(max-width:600px) {
 body:not([data-page="/jw-v2/owner"]) .site-footer { padding-bottom:110px; }
 .site-footer .footer-layout { grid-template-columns:1fr; gap:26px; padding-bottom:30px; }
 .site-footer .footer-navigation { grid-column:1; grid-row:2; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 20px; }
 .site-footer .footer-navigation .footer-link-group:last-child { grid-column:1/-1; }
 .site-footer .footer-navigation .footer-link-group:last-child { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 20px; }
 .site-footer .footer-navigation .footer-link-group:last-child h3 { grid-column:1/-1; }
 .site-footer .footer-connect { grid-column:1; grid-row:3; justify-self:stretch; justify-content:flex-start; flex-direction:row; flex-wrap:wrap; gap:28px 40px; padding-top:24px; border-top:1px solid #4b463f; }
 .site-footer .footer-bottom > div { gap:6px 20px; }
}

/* How it works: a photographic introduction and a calmer, spacious six-step journey. */
body[data-page="/jw-v2/how-it-works"] .visit-hero { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); align-items:center; gap:clamp(32px,5vw,72px); padding-top:clamp(40px,5vw,72px); padding-bottom:52px; }
body[data-page="/jw-v2/how-it-works"] .visit-intro { min-width:0; }
body[data-page="/jw-v2/how-it-works"] .visit-intro .eyebrow { margin-bottom:24px; }
body[data-page="/jw-v2/how-it-works"] .visit-intro h1 { margin:0 0 26px; font-size:clamp(3rem,4.8vw,5rem); line-height:1.04; letter-spacing:-.05em; }
body[data-page="/jw-v2/how-it-works"] .visit-intro h1 em { color:#82643d; }
body[data-page="/jw-v2/how-it-works"] .visit-intro .lead { max-width:35ch; margin:0; color:#625c52; font-size:1rem; line-height:1.8; }
body[data-page="/jw-v2/how-it-works"] .visit-actions { display:flex; align-items:center; flex-wrap:wrap; gap:18px 24px; margin-top:30px; }
body[data-page="/jw-v2/how-it-works"] .visit-actions .btn { padding:15px 23px; min-height:48px; }
body[data-page="/jw-v2/how-it-works"] .visit-actions .text-link { min-height:44px; display:inline-flex; align-items:center; font-size:.875rem; }
body[data-page="/jw-v2/how-it-works"] .visit-photo { margin:0; position:relative; min-width:0; border-radius:22px; overflow:hidden; background:#e4dfd7; }
body[data-page="/jw-v2/how-it-works"] .visit-photo img { display:block; width:100%; height:auto; aspect-ratio:1.25; object-fit:cover; object-position:48% 50%; }
body[data-page="/jw-v2/how-it-works"] .visit-photo figcaption { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px 20px; padding:20px 24px; background:#252622; color:#f5eee2; }
body[data-page="/jw-v2/how-it-works"] .visit-photo figcaption span:first-child { font-family:var(--font-editorial); font-size:1.15rem; }
body[data-page="/jw-v2/how-it-works"] .visit-photo figcaption span:last-child { font-size:.62rem; letter-spacing:.12em; color:#d3c1a4; }
body[data-page="/jw-v2/how-it-works"] .visit-overview { display:flex; align-items:center; justify-content:space-between; gap:20px; padding-block:26px; border-block:1px solid #d7cdbc; }
body[data-page="/jw-v2/how-it-works"] .visit-overview span { display:flex; align-items:center; gap:14px; font-size:.875rem; color:#484237; }
body[data-page="/jw-v2/how-it-works"] .visit-overview b { font-size:.7rem; font-weight:400; color:#82643d; }
body[data-page="/jw-v2/how-it-works"] .visit-overview i { font-style:normal; font-size:1.3rem; color:#a48d6a; }
body[data-page="/jw-v2/how-it-works"] .visit-process { padding-top:66px; padding-bottom:70px; scroll-margin-top:130px; }
body[data-page="/jw-v2/how-it-works"] .process-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:32px; max-width:none; padding:0 0 34px; }
body[data-page="/jw-v2/how-it-works"] .process-heading h2 { margin:0; font-size:clamp(2.3rem,3.5vw,3.6rem); }
body[data-page="/jw-v2/how-it-works"] .process-heading > p { margin:0 0 5px; max-width:33ch; font-size:.95rem; line-height:1.75; color:#625c52; }
body[data-page="/jw-v2/how-it-works"] .treatment-process { grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; align-items:stretch; }
body[data-page="/jw-v2/how-it-works"] .treatment-process article { min-height:0; padding:30px 32px; background:#faf7f1; border:1px solid #ddd4c5; border-radius:16px; box-shadow:none; }
body[data-page="/jw-v2/how-it-works"] .treatment-process article::after { content:none; }
body[data-page="/jw-v2/how-it-works"] .treatment-process article > span { display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; border:1px solid #d4c5ad; border-radius:50%; font-size:.7rem; letter-spacing:.04em; color:#705b3c; margin-bottom:20px; }
body[data-page="/jw-v2/how-it-works"] .treatment-process h3 { margin:0 0 14px; min-height:0; padding-right:50px; font-size:1.35rem; line-height:1.35; letter-spacing:-.025em; color:#2a2924; }
body[data-page="/jw-v2/how-it-works"] .treatment-process .journey-icon { position:absolute; top:26px; right:28px; width:58px; height:58px; margin:0; color:#9c8056; }
body[data-page="/jw-v2/how-it-works"] .treatment-process p { margin:0; max-width:56ch; font-size:.9375rem; line-height:1.8; color:#625b50; }
body[data-page="/jw-v2/how-it-works"] .treatment-process details { margin-top:18px; border-top:1px solid #e2d8c9; }
body[data-page="/jw-v2/how-it-works"] .treatment-process summary { color:#715a39; padding:12px 0; font-size:.875rem; }
body[data-page="/jw-v2/how-it-works"] .treatment-process details p { padding-bottom:8px; }
body[data-page="/jw-v2/how-it-works"] .whitening-explained { padding-top:48px; padding-bottom:48px; gap:clamp(32px,5vw,64px); border-block:1px solid #d7cdbc; align-items:start; }
body[data-page="/jw-v2/how-it-works"] .whitening-science-photo { position:sticky; top:140px; border-radius:20px; overflow:hidden; }
body[data-page="/jw-v2/how-it-works"] .whitening-science-photo img { display:block; width:100%; height:auto; aspect-ratio:1.3; object-fit:cover; object-position:45% 50%; }
body[data-page="/jw-v2/how-it-works"] .whitening-explained h2 { font-size:clamp(2rem,3vw,3rem); }
body[data-page="/jw-v2/how-it-works"] .whitening-explained .lead { font-size:.95rem; line-height:1.7; }
body[data-page="/jw-v2/how-it-works"] .whitening-science-steps summary { font-size:.95rem; min-height:48px; }
body[data-page="/jw-v2/how-it-works"] .visit-practical { padding-top:56px; padding-bottom:12px; gap:24px; }
body[data-page="/jw-v2/how-it-works"] .visit-practical .panel { padding:30px; border-radius:16px; background:#eee7db; border:0; }
body[data-page="/jw-v2/how-it-works"] .visit-practical h2 { font-size:1.6rem; margin-bottom:18px; }
body[data-page="/jw-v2/how-it-works"] .visit-practical p { font-size:.9375rem; line-height:1.8; }
@media(max-width:900px) {
 body[data-page="/jw-v2/how-it-works"] .visit-hero { gap:30px; }
 body[data-page="/jw-v2/how-it-works"] .visit-intro h1 { font-size:3rem; }
 body[data-page="/jw-v2/how-it-works"] .visit-photo img { aspect-ratio:1; }
 body[data-page="/jw-v2/how-it-works"] .visit-photo figcaption { padding:16px 18px; }
 body[data-page="/jw-v2/how-it-works"] .treatment-process article { padding:26px; }
 body[data-page="/jw-v2/how-it-works"] .treatment-process .journey-icon { right:22px; }
}
@media(max-width:800px) {
 body[data-page="/jw-v2/how-it-works"] .whitening-science-photo { position:static; }
}
@media(max-width:700px) {
 body[data-page="/jw-v2/how-it-works"] .visit-hero { grid-template-columns:1fr; gap:32px; padding-top:36px; padding-bottom:32px; }
 body[data-page="/jw-v2/how-it-works"] .visit-intro h1 { font-size:clamp(2.8rem,10vw,3.6rem); }
 body[data-page="/jw-v2/how-it-works"] .visit-photo img { aspect-ratio:1.6; }
 body[data-page="/jw-v2/how-it-works"] .visit-overview { flex-direction:column; align-items:flex-start; gap:14px; padding-block:22px; }
 body[data-page="/jw-v2/how-it-works"] .visit-overview i { display:none; }
 body[data-page="/jw-v2/how-it-works"] .visit-process { padding-block:42px; }
 body[data-page="/jw-v2/how-it-works"] .process-heading { display:block; padding-bottom:26px; }
 body[data-page="/jw-v2/how-it-works"] .process-heading > p { margin-top:18px; max-width:38ch; }
 body[data-page="/jw-v2/how-it-works"] .treatment-process { grid-template-columns:1fr; gap:16px; }
 body[data-page="/jw-v2/how-it-works"] .treatment-process h3 { font-size:1.25rem; }
 body[data-page="/jw-v2/how-it-works"] .whitening-explained { grid-template-columns:1fr; padding-block:32px; gap:30px; }
 body[data-page="/jw-v2/how-it-works"] .whitening-science-photo { position:static; }
 body[data-page="/jw-v2/how-it-works"] .whitening-science-photo img { aspect-ratio:1.6; }
 body[data-page="/jw-v2/how-it-works"] .visit-practical { grid-template-columns:1fr; padding-top:32px; }
 body[data-page="/jw-v2/how-it-works"] .visit-practical .panel { padding:26px; }
}

/* Homepage-only owner presentation update. Shared treatment pages retain their layout. */
body[data-page="/"] .group-price-value{display:flex;flex-direction:column;align-items:flex-start;gap:14px}
body[data-page="/"] .treatment-value-badges{display:grid;gap:9px;width:100%;padding-top:12px;border-top:1px solid #cfc3ae}
body[data-page="/"] .treatment-saving-badge{padding:0;border:0;border-radius:0;background:transparent;color:#594322;font-size:.875rem;line-height:1.5;font-weight:600}
body[data-page="/"] .treatment-saving-badge small{margin-top:2px;color:#5b5348;font-weight:400}
body[data-page="/"] .treatment-picker .price-card>.wedding-party-note{min-height:0;padding:16px 0;margin:0;border-top:1px solid #d9d2c7;line-height:1.6;color:#514637}
body[data-page="/"] .home-treatment-enquiry{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:30px 0 18px;padding:clamp(22px,3vw,34px);border:1px solid #baa785;border-radius:16px;background:#eee7d9;color:#30291e}
body[data-page="/"] .home-treatment-enquiry h3{font-size:clamp(1.45rem,2.7vw,2rem);line-height:1.2;margin:0 0 10px;max-width:660px}
body[data-page="/"] .home-treatment-enquiry p{margin:0;line-height:1.6}
body[data-page="/"] .home-treatment-enquiry>.btn{flex-shrink:0}
body[data-page="/"] .home-gallery-social{display:flex;justify-content:center;margin-top:28px}
body[data-page="/"] .home-gallery-social .btn{white-space:normal;text-align:center;gap:10px;max-width:100%}
body[data-page="/"] .shade-guide-interactive{box-shadow:0 0 0 1px #c1a87855,0 0 34px 5px #c5a36928}
body[data-page="/"] .shade-guide-enter{margin-top:24px;animation:home-shade-invite 3.8s ease-in-out infinite!important}
body[data-page="/"] .shade-guide-enter:hover,body[data-page="/"] .shade-guide-enter:focus-visible{animation-play-state:paused!important}
@keyframes home-shade-invite{0%,100%{box-shadow:0 0 0 0 #a8844f22;transform:scale(1)}50%{box-shadow:0 0 0 7px #a8844f18;transform:scale(1.025)}}
@media(max-width:700px){body[data-page="/"] .home-treatment-enquiry{flex-direction:column;align-items:stretch;gap:20px}body[data-page="/"] .home-treatment-enquiry>.btn{align-self:flex-start}body[data-page="/"] .home-gallery-social .btn{font-size:.875rem}}
@media(prefers-reduced-motion:reduce){body[data-page="/"] .shade-guide-enter{animation:none!important;transform:none}}

/* Results page: one clear introduction, followed by results and the existing shade tool. */
body[data-page="/jw-v2/gallery"] .results-intro{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:end;gap:32px 64px;max-width:1320px;padding-top:clamp(36px,5vw,64px);padding-bottom:32px}
body[data-page="/jw-v2/gallery"] .results-intro h1{font-size:clamp(3.25rem,6.5vw,6.5rem);line-height:1.03;margin:0}
body[data-page="/jw-v2/gallery"] .results-intro-copy{max-width:440px;min-width:0;padding-bottom:4px}
body[data-page="/jw-v2/gallery"] .results-intro .lead{font-size:clamp(1.35rem,2vw,1.8rem);line-height:1.25;margin:0;padding:0}
body[data-page="/jw-v2/gallery"] .results-intro-hint{font-size:1rem;line-height:1.6;margin:14px 0 8px;color:#6e6258;max-width:36ch}
body[data-page="/jw-v2/gallery"] .results-instagram{font-size:.9rem;gap:10px}
body[data-page="/jw-v2/gallery"] .results-showcase{padding-bottom:clamp(32px,5vw,64px)}
body[data-page="/jw-v2/gallery"] .results-shade-section{padding:clamp(32px,5vw,64px) 24px;background:#fffdf8;border-top:1px solid #ded7ce}
body[data-page="/jw-v2/gallery"] .results-shade-section .shade-guide{max-width:1224px;margin:0 auto;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:hidden}
body[data-page="/jw-v2/gallery"] .results-shade-section .shade-guide-interactive{border-radius:24px;overflow:hidden}
@media(max-width:700px){
 body[data-page="/jw-v2/gallery"] .results-intro{grid-template-columns:1fr;gap:20px;padding:36px 20px 24px}
 body[data-page="/jw-v2/gallery"] .results-intro h1{font-size:clamp(3rem,11vw,4.5rem)}
 body[data-page="/jw-v2/gallery"] .results-intro-copy{padding:0;max-width:100%}
 body[data-page="/jw-v2/gallery"] .results-intro .lead{font-size:1.35rem;margin:0}
 body[data-page="/jw-v2/gallery"] .results-intro-hint{margin-top:10px}
 body[data-page="/jw-v2/gallery"] .results-shade-section{padding:32px 16px}
}
body[data-page="/jw-v2/gallery"] .results-shade-section .shade-guide-entrance{background:#eee7dbcc;border-radius:24px}
body[data-page="/jw-v2/gallery"] .results-shade-section .shade-guide:not(.awaiting-entry) .shade-guide-content{padding:clamp(20px,3vw,36px);border:1px solid #d9cdbb;border-radius:24px;background:#f3ede3}
@media(max-width:700px){body[data-page="/jw-v2/gallery"] .results-shade-section .shade-guide:not(.awaiting-entry) .shade-guide-content{padding:20px 14px}}
