/* Forest Teal is the primary canvas throughout the village. */
:root{--teal:#0F3D36;--ivory:#F1FAF6;--line:#46776B;--surface:#174B42;--deep:#092F29;--muted:#D1E4DC;--fresh:#C8EBDD;color-scheme:dark}
body{background:var(--teal);color:var(--ivory)}
header,.page-return{background:var(--teal);color:var(--ivory)}
.lang,.menu,.page-return button{color:var(--ivory);border-color:var(--line)}
.navlinks a:hover,.navlinks a.active{color:var(--fresh)}
.navlinks a.active{border-color:var(--fresh)}
.btn,.btn.light{background:var(--fresh);border-color:var(--fresh);color:var(--deep);border-radius:5px}
.btn:hover,.btn.light:hover{background:#E2F7EE;border-color:#E2F7EE}
.btn.outline{background:transparent;color:var(--ivory);border-color:#7AA99B}
.btn.outline:hover{background:#205A4E;border-color:var(--fresh)}
.explorer-nav,.text-link .explorer-nav,.row-link .explorer-nav,.home-more-links .btn.outline .explorer-nav{background-image:url('/assets/TOMO_Village_Explorer_Mono_White.svg')}
.btn .explorer-nav,.btn.light .explorer-nav{background-image:url('/assets/TOMO_Village_Explorer_Mono_Teal.svg')}
.btn.outline .explorer-nav{background-image:url('/assets/TOMO_Village_Explorer_Mono_White.svg')}
.editorial-heading .eyebrow,.section-head .eyebrow,.service-description .eyebrow,.card small,.row-link .num,.programme-directory button>span:first-child,.service-meta>span:first-child{color:#C8EBDD}
.visit-shortcut{background:#15493F;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.visit-shortcut a:hover{color:var(--fresh);border-color:var(--fresh)}
.programme-filters button,.programme-filters a,.filters button,.programme-directory button{color:var(--ivory)}
.programme-filters .selected,.filters button.selected{background:var(--fresh);color:var(--deep);border-color:var(--fresh)}
.programme-filters button:hover,.programme-filters a:hover,.filters button:hover{border-color:var(--fresh)}
.programme-directory button:hover{background:var(--surface)}
.calendar-note,.programme-tags,.service-count,.booking-status,.service-meta,.service-choice-note,.compact-note,.spec-pending,.product-specs dd,.description-aside figcaption{color:var(--muted)}
.editorial-home .unified-booking{background:var(--deep);max-width:none;padding-left:max(5%,calc((100vw - 1242px)/2));padding-right:max(5%,calc((100vw - 1242px)/2));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.unified-booking .service-card,.service-card{background:var(--surface);border-color:#3D6B60;border-radius:8px;box-shadow:0 8px 24px #001B171A}
.unified-booking .service-card:hover{border-color:#91C8B5;background:#1D554A}
.service-content p{color:#D1E4DC}.service-links a{color:var(--fresh)}
.service-links .text-link{white-space:normal}
.village-story,.village-spaces,.village-arrival{background:transparent}
.culture-invite,.callout{background:#185044;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
footer{background:#082C26;border-top:1px solid var(--line)}
.page-intro{background:var(--deep);border-bottom:1px solid var(--line)}
.row-link:hover{color:var(--fresh)}
.note,#summary,.confirmation-detail,.package-options li,.extra-card,.extra-card:nth-child(n+3){background:var(--surface);color:var(--ivory)}
.aside{background:var(--deep);border:1px solid var(--line)}
.duration-options span{border-color:var(--line);background:var(--surface)}
input,select,textarea,.quick-book select{background:var(--deep);border-color:#6B978A;color:var(--ivory);border-radius:4px}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}option{background:var(--deep);color:var(--ivory)}
input:focus,select:focus,textarea:focus{border-color:var(--fresh)}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--fresh);outline-offset:4px}
.skip:focus{background:var(--fresh);color:var(--deep)}
::selection{background:var(--fresh);color:var(--deep)}
.mobile-culture-nav{background:var(--deep);border-color:var(--line)}
.mobile-culture-nav a:last-child{background:var(--fresh);color:var(--deep)}
.space-grid img,.village-story>img,.programme-selected figure{border-radius:6px;overflow:hidden}
@media(max-width:850px){.navlinks.open{background:var(--teal)}.editorial-home .unified-booking{padding-left:6%;padding-right:6%}}

/* Orange anchors the hierarchy; lighter orange keeps small labels readable. */
:root{--orange:#D76435;--orange-text:#FFB88F}
main h1,main h2{color:var(--ivory)}
.service-content h3,.culture-card h3,.calendar-category{color:var(--orange-text)}
main .eyebrow,.editorial-heading .eyebrow,.section-head .eyebrow,.service-description .eyebrow,.extra-card .eyebrow,.card small,.row-link .num,.programme-directory button>span:first-child,.service-meta>span:first-child{color:var(--orange-text)}
.panorama-copy h2,.culture-title h2,.description-copy h3,.aside h3{color:var(--orange-text)}
.editorial-heading h2,.section-head h2,.booking-heading h2{border-left:4px solid var(--orange);padding-left:16px}
.hero p,.card p,.callout p,.page-intro p,.muted,footer p,footer a,.foot-bottom,.crumb{opacity:1;color:var(--muted)}
.service-content p,.culture-card p,.service-description p{color:var(--muted)}
.navlinks a:hover,.navlinks a.active{color:var(--orange-text)}
.navlinks a.active{border-color:var(--orange)}

/* Launch refinements: existing palette, quieter ordinary links. */
.service-links a{color:var(--ivory)}
.space-grid a:hover>span,.service-links a:hover{color:var(--orange-text);text-decoration:underline;text-underline-offset:5px}
.service-breath{grid-column:1/-1;padding:24px 0;border-block:1px solid var(--line);margin:8px 0}
.service-breath p{margin:0;font-size:clamp(20px,2.2vw,28px);color:var(--ivory);max-width:760px}
.week-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.week-card img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:6px}
.week-card time{display:block;margin-top:16px;color:var(--orange-text);font-size:14px}
.week-card h3{font-size:23px;line-height:1.4;margin:8px 0}
.week-card p,.week-empty{color:var(--muted);font-size:16px}
.week-card .text-link{text-decoration:underline;text-underline-offset:5px}
.week-empty{border-block:1px solid var(--line);padding:24px 0;margin:0}
.event-detail .week-card{max-width:850px;margin-bottom:28px}
.hero-motion{position:absolute;right:24px;bottom:20px;z-index:2;background:#092F29;color:#F1FAF6;border:1px solid #D1E4DC;border-radius:5px;padding:10px 15px;font:14px inherit;cursor:pointer}
@media(max-width:850px){.week-grid{grid-template-columns:1fr}.hero-motion{right:16px;bottom:12px}.service-breath{padding:20px 0}}

.panorama-hero:before{background:linear-gradient(90deg,rgba(5,27,24,.84) 0%,rgba(5,27,24,.80) 65%,rgba(5,27,24,.3) 100%)}
.programme-feature>div{background:#092F29E6}
footer a,.crumb,.foot-bottom,.card small,.service-meta,.description-aside figcaption,.programme-selected figcaption,.spec-pending{font-size:14px}
@media(max-width:850px){.panorama-hero:before{background:linear-gradient(0deg,rgba(5,27,24,.9) 0%,rgba(5,27,24,.82) 70%,rgba(5,27,24,.3) 100%)}}

.programme-feature .mojo-lead{margin-bottom:18px}.programme-feature .mojo-lead strong{font-weight:600}

/* Give the Mojo photograph room to breathe, with local contrast behind copy. */
.programme-feature{display:block;isolation:isolate;padding-top:clamp(100px,12vw,170px)}
.programme-feature>img{opacity:1;object-position:center top;z-index:-1}
.programme-feature>div{background:linear-gradient(180deg,rgba(9,47,41,.80),rgba(9,47,41,.92) 65%,rgba(9,47,41,.97));padding-top:30px}
.programme-feature h3{font-size:clamp(27px,2.6vw,36px);line-height:1.25}
.programme-feature p{max-width:60ch;line-height:1.75}
.programme-feature .mojo-lead{margin-bottom:22px}
@media(max-width:850px){.programme-feature{padding-top:120px}.programme-feature>div{padding:24px}.programme-feature h3{font-size:28px}}

/* Long-form introduction: keep the existing page grid and readable paragraph rhythm. */
.about-what-copy{min-width:0;max-width:70ch}
.about-what-copy p{line-height:1.85;margin:0 0 1.4em}
.about-what-copy h2{font-size:clamp(24px,2.5vw,34px);line-height:1.35;overflow-wrap:break-word;margin:0 0 1em}
.about-what-copy p+h2{margin-top:2em}
.about-what-copy .about-questions{line-height:2;margin:1.8em 0}

/* Make calendar time filters easier to scan. */
.filters button[data-period]{text-transform:uppercase;letter-spacing:.04em;font-weight:700;color:var(--orange-text);border-color:var(--orange-text)}
.filters button[data-period]:hover{background:rgba(255,184,143,.08);border-color:var(--orange-text)}
.filters button[data-period].selected{background:var(--fresh);color:var(--deep);border-color:var(--fresh)}

.service-video-visual{position:relative;overflow:hidden}
.service-video-visual video{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.programme-mobile{display:none}
@media(max-width:850px){
 .programme-desktop{display:none}
 .programme-mobile{display:block}
 .programme-mobile-intro .programme-directory{display:none}
 .programme-mobile-intro .programme-overview{display:block}
 .programme-mobile-hint{margin:28px 0 14px;font-size:14px;color:var(--ivory)}
 .programme-accordion{border:1px solid var(--line);border-radius:8px;margin-bottom:12px;overflow:hidden}
 .programme-accordion>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 16px;list-style:none;font-size:18px;font-weight:600;line-height:1.4;color:var(--orange-text);cursor:pointer;scroll-margin-top:16px}
 .programme-accordion>summary::-webkit-details-marker{display:none}
 .accordion-symbol:after{content:'+';font-size:26px;font-weight:400}
 .programme-accordion[open] .accordion-symbol:after{content:'−'}
 .programme-accordion[open]>summary{background:var(--fresh);color:var(--deep)}
 .programme-accordion-body{padding:16px}
 .programme-accordion .programme-selected{display:flex;flex-direction:column;align-items:stretch;gap:20px;min-height:0}
 .programme-accordion .programme-selected figure{height:auto;aspect-ratio:16/9;width:100%;flex:none}
 .programme-accordion .programme-selected img{display:block}
 .programme-accordion .programme-selected .eyebrow{display:none}
 .programme-accordion .programme-selected h3{font-size:24px;line-height:1.35}
 .programme-accordion .programme-selected p{font-size:16px;line-height:1.75}
 .programme-accordion .culture-actions{display:flex;flex-direction:column;align-items:stretch;gap:12px}
 .programme-accordion .btn{white-space:normal;text-align:center}
}
/* Content refresh: keep the established forest / ivory / orange palette. */
.visit-shortcut>strong{color:#FFB88F!important}
.programme-notes{padding-left:1.2em;line-height:1.7;margin:1.3rem 0}.programme-notes li+li{margin-top:.7rem}
.venue-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:2rem;align-items:start}.venue-card{border:1px solid #668B80;border-radius:12px;overflow:hidden;background:#174B42}.venue-card>div{padding:clamp(1.25rem,3vw,2.5rem)}.venue-card>img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}.venue-card h2{font-size:clamp(1.8rem,3vw,2.8rem)}.venue-card p,.content-block p,.partner-intro p,.contact-panel p{line-height:1.75;max-width:72ch}.price-highlight{font-size:1.6rem;font-weight:700;color:#FFB88F}.content-block{margin-bottom:3rem}.content-block+.content-block{padding-top:2rem;border-top:1px solid #668B80}.picnic-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.picnic-grid article{padding:1.5rem;border:1px solid #668B80;border-radius:8px}.village-map{margin:2rem 0}.village-map img{display:block;width:100%;height:auto;object-fit:contain}.village-map figcaption{margin-top:1rem;line-height:1.6}.regular-schedule{margin:2rem 0 3rem}.regular-schedule>h2{font-size:1.5rem;margin-bottom:1.5rem}.faq-list{max-width:850px;margin:0 auto 2rem}.faq-list details{padding:1.25rem 0;border-bottom:1px solid #668B80}.faq-list summary{font-size:1.1rem;font-weight:600;cursor:pointer}.faq-list p{line-height:1.75;margin:1rem 0}.visit-content>.culture-actions{margin-top:2rem}.social-links{display:flex;gap:1.5rem;flex-wrap:wrap;padding:1.5rem 0}.social-links a{text-decoration:underline;text-underline-offset:4px}.service-essential{border-left:3px solid #FFB88F;padding:1rem 1.25rem;background:#174B42}.contact-panel a{overflow-wrap:anywhere}.crumb{display:flex;flex-wrap:wrap;gap:.4rem}.crumb a{text-decoration:underline;text-underline-offset:3px}.description-grid .culture-actions{margin:1.5rem 0}.booking-section .aside .culture-actions{align-items:flex-start;flex-direction:column}.booking-section .aside .btn{white-space:normal}.partner-intro{padding-bottom:0}.filters{flex-wrap:wrap}
@media(max-width:850px){.venue-grid,.picnic-grid{grid-template-columns:1fr}.venue-card h2{font-size:2rem}.programme-selected>div{min-width:0}.culture-actions .btn{max-width:100%;white-space:normal}.visit-content{padding-top:1.5rem}.regular-schedule .week-grid{grid-template-columns:1fr}.faq-list summary{line-height:1.5}.social-links{gap:1.2rem}.village-map{margin-inline:-.5rem}}
.garden-timeline dl{margin:0}.garden-timeline dl>div{display:grid;grid-template-columns:8rem 1fr;gap:1rem;padding:.65rem 0}.garden-timeline dt{font-weight:700;color:#FFB88F;white-space:nowrap}.garden-timeline dd{margin:0;line-height:1.6}.garden-timeline>p{margin:.75rem 0 0;font-size:1rem}.booking-section{scroll-margin-top:180px}.booking-section select:focus-visible{outline:3px solid #FFB88F;outline-offset:4px}@media(max-width:480px){.garden-timeline dl>div{grid-template-columns:1fr;gap:.15rem}.booking-section{scroll-margin-top:160px}}
.service-timeline dl{margin:0}.service-timeline dl>div{display:grid;grid-template-columns:8rem minmax(0,1fr);gap:1rem;padding:.6rem 0}.service-timeline dt{color:#FFB88F;font-weight:700}.service-timeline dd{margin:0;line-height:1.6}.service-packages{margin:1.8rem 0}.service-packages ul{display:block;list-style:disc;padding-left:1.3rem;margin:1rem 0}.service-packages li{display:list-item;border:0;background:none;border-radius:0;padding:0 0 .75rem;cursor:text;line-height:1.65}.service-packages li::marker{color:#F1FAF6}.service-packages li p{margin:.2rem 0 0;font-size:1rem}.service-booking-note{line-height:1.7}@media(max-width:480px){.service-timeline dl>div{grid-template-columns:1fr;gap:.15rem}}
.service-packages li::marker{color:#F1FAF6}.service-packages li>strong{color:#FFB88F;font-weight:600}.service-packages li>p{color:#F1FAF6}
