/* Shared reading hierarchy. Load after each page's layout styles. */
:root { --muted: #596150; }
.hero .hero-image { position:absolute; inset:0; opacity:0; transition:opacity 1.2s ease; }
.hero .hero-image.is-active { opacity:1; }
.hero-shade { z-index:1; pointer-events:none; }
.hero-content, .hero-bottom { z-index:2; }
.hero-slideshow-controls { display:flex; flex-wrap:wrap; justify-content:flex-end; align-items:center; gap:8px 18px; font-size:11px; }
.hero-slideshow-controls[hidden] { display:none; }
#hero-location { letter-spacing:.04em; }
#hero-slideshow-toggle { min-height:44px; padding:6px 0; color:inherit; background:transparent; font-size:11px; text-decoration:underline; text-underline-offset:5px; }
@media(max-width:700px) {
  .hero-bottom { flex-wrap:wrap; }
  .hero-slideshow-controls { width:100%; justify-content:space-between; gap:10px; }
}
@media(prefers-reduced-motion:reduce) { .hero .hero-image { transition:none; } }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
summary { touch-action:manipulation; }
summary:focus-visible { outline:2px solid #687754; outline-offset:4px; }

/* Comfortable body copy while retaining the editorial headlines. */
.intro-copy>p, .philosophy-copy>p:not(.large-copy), .ritual-copy>p:not(.large-copy):not(.small-note),
.planning-heading>p:not(.eyebrow), .planning-questions details>div p, .definition-copy,
.city-detail #city-description { font-size:16px; line-height:1.8; }
.philosophy-copy>p:not(.large-copy), .intro-copy>p { max-width:60ch; }
.planning-questions summary { font-size:18px; line-height:1.5; padding-block:22px; }
.planning-questions details>div { padding-bottom:22px; }
.planning-questions details>div p+p { margin-top:14px; }
.text-link, .neighbourhood-discover { min-height:44px; }
.guide-page .eyebrow, .enquiry-page .eyebrow { font-size:11px; letter-spacing:.12em; }
.guide-page .guide-teaser,
.guide-page .guide-intro>div>p+p,
.guide-page .guide-story-copy>p:not(.eyebrow),
.guide-page .guide-places li>p,
.guide-page .journey-intro>p,
.guide-page .journey-intro-copy>p,
.guide-page .journey-return p:not(.eyebrow),
.guide-page .culture-enquiry p,
.guide-page .guide-reflection>p:last-child,
.guide-page .guide-programme-top>p:last-child,
.guide-page .programme-at-a-glance>p { font-size:16px; line-height:1.8; }
.guide-page .text-link, .guide-page .place-map { font-size:13px; line-height:1.6; }
.guide-page .guide-hero-copy>.eyebrow { font-size:11px; }
.guide-page .guide-teaser { max-width:38ch; }
.guide-page .guide-intro .large-copy { font-size:24px; line-height:1.5; }
.guide-page .guide-intro, .guide-page .guide-story { padding-block:60px; }
.guide-page .guide-story-copy h2 { font-size:clamp(36px,3.8vw,54px); }
.guide-page .guide-places { padding-block:48px; }
.guide-page .guide-places h2 { font-size:44px; }
.guide-page .guide-places li h3 { font-size:28px; }
.guide-page .place-map { min-height:44px; align-items:center; }

/* Key conditions are visible before the long guide. */
.guide-stay-strip { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; padding:30px 7.4%; text-transform:none; letter-spacing:0; }
.guide-stay-strip>div { min-width:0; }
.guide-stay-strip>div+div { border-left:1px solid var(--line); padding-left:28px; }
.guide-stay-strip span { display:block; font-size:12px; color:var(--muted); margin-bottom:6px; }
.guide-stay-strip strong { display:block; font-size:15px; line-height:1.5; font-weight:500; }

/* A short table of contents with a persistent enquiry action. */
.guide-local-nav { justify-content:space-between; gap:18px; padding:10px max(24px,5%); overflow:visible; white-space:normal; }
.guide-nav-links { display:flex; align-items:center; gap:clamp(14px,1.7vw,28px); }
.guide-nav-links a { display:flex; align-items:center; min-height:44px; font-size:12px; letter-spacing:0; line-height:1.4; white-space:nowrap; }
.guide-nav-links a[aria-current="location"] { box-shadow:inset 0 -2px #65734e; color:#26351d; }
.guide-local-nav .guide-enquire { flex-shrink:0; display:flex; align-items:center; gap:18px; min-height:44px; padding:10px 17px; background:#303c28; color:#fff; font-size:12px; letter-spacing:0; text-decoration:none; }
.guide-nav-menu { display:none; }

/* Daily life: scan the topics, then open the ones that matter. */
.daily-notebook { padding-block:55px; border-top:1px solid var(--line); }
.daily-notebook h2 { font-size:clamp(36px,4vw,50px); }
.daily-notebook .section-aside { font-size:14px; line-height:1.7; }
.notebook-layout { display:grid; grid-template-columns:1fr 1fr; gap:60px; margin-top:35px; }
.notebook-layout h3 { font-size:28px; margin-bottom:20px; }
.routine-note { border-top:1px solid var(--line); }
.routine-note:last-child { border-bottom:1px solid var(--line); }
.routine-note summary { display:flex; align-items:center; gap:16px; list-style:none; min-height:70px; padding:18px 0; font-size:15px; line-height:1.55; cursor:pointer; }
.routine-time { width:72px; flex-shrink:0; font-size:12px; color:var(--muted); }
.expand-mark { margin-left:auto; flex-shrink:0; font:400 24px/1 var(--sans); color:#667453; transition:transform .15s ease; }
details[open]>summary>.expand-mark { transform:rotate(45deg); }
.routine-note summary::-webkit-details-marker, .card-details summary::-webkit-details-marker,
.section-disclosure summary::-webkit-details-marker, .practical-details summary::-webkit-details-marker,
.guide-nav-menu summary::-webkit-details-marker { display:none; }
.detail-body { padding:0 0 24px; }
.guide-page .detail-body p { font-size:15px; line-height:1.85; color:var(--muted); max-width:68ch; }
.detail-body p+p { margin-top:16px; }
.detail-body h4 { font:500 14px/1.6 var(--sans); margin:24px 0 10px; color:var(--ink); }
.detail-body h4:first-child { margin-top:0; }
.neighbourhood-notebook { padding-block:45px 55px; gap:50px; }
.neighbourhood-notebook h2 { font-size:42px; }

/* Image-led cards, with one clear takeaway always visible. */
.guide-page .journey-intro h2 { font-size:clamp(36px,4vw,48px); }
.guide-page .journey-intro { gap:50px; align-items:center; }
.guide-page .nearby-journeys, .guide-page .country-journeys { padding-block:55px; }
.guide-page .journey-photo-wide { margin-bottom:36px; }
.guide-page .journey-grid, .guide-page .country-grid { gap:24px; align-items:start; margin-top:32px; }
.guide-page .journey-card, .guide-page .country-card { display:block; background:#faf9f4; border:1px solid #cdd2c2; padding:0; min-width:0; }
.journey-card>.journey-photo, .country-card>.journey-photo { margin:0; }
.journey-card>.journey-photo img, .country-card>.journey-photo img { aspect-ratio:3/2; }
.journey-card>.journey-photo figcaption, .country-card>.journey-photo figcaption { padding:10px 20px 0; font-size:11px; }
.guide-page .journey-meta { align-items:center; margin:18px 20px 14px; font-size:12px; }
.journey-meta>p { background:#e8ecdf; color:#465339; border-radius:3px; padding:5px 9px; font-size:12px; line-height:1.4; }
.guide-page .journey-card>.eyebrow, .guide-page .country-card>.eyebrow { margin:0 20px; font-size:10px; line-height:1.7; min-height:0; }
.guide-page .journey-card>h3, .guide-page .country-card>h3 { font-size:31px; line-height:1.15; margin:12px 20px 15px; }
.guide-page .card-summary { font-size:15px; line-height:1.8; color:var(--muted); margin:0 20px 20px; }
.card-details { margin:0 20px; border-top:1px solid var(--line); }
.card-details summary, .practical-details summary { display:flex; align-items:center; gap:16px; padding:17px 0; min-height:58px; list-style:none; font-size:13px; line-height:1.5; cursor:pointer; }
.card-details .detail-body { padding:8px 0 24px; }
.card-details .text-link { display:flex; justify-content:space-between; gap:15px; font-size:13px; margin-top:20px; }
.guide-page .card-details blockquote { padding:22px 0; margin:24px 0; }
.guide-page .card-details blockquote>p:last-child { font:italic 26px/1.3 var(--serif); color:var(--ink); margin-top:12px; }
.guide-page .journey-return { display:flex; align-items:center; justify-content:space-between; gap:45px; padding-top:28px; margin-top:35px; }
.journey-return>div { flex:1; max-width:760px; }
.journey-return>.text-link { flex-shrink:0; }
.guide-page .journey-return h3, .guide-page .culture-enquiry h3 { font-size:28px; line-height:1.2; }
.practical-details { margin-top:15px; }
.practical-details .detail-body p { font-size:14px; }
.guide-page .culture-enquiry { gap:40px; margin-top:30px; }
.guide-page .culture-enquiry .journey-terms { font-size:13px; line-height:1.75; margin-top:15px; }

/* Programme and learning method remain available in full. */
.section-disclosure { border:1px solid #c8d0ba; background:#e9ede1; margin-top:28px; padding:0 28px; }
.section-disclosure>summary { list-style:none; display:flex; align-items:center; gap:25px; padding:24px 0; cursor:pointer; }
.section-disclosure>summary strong { display:block; font:400 27px/1.2 var(--serif); }
.section-disclosure>summary>span>span:not(.eyebrow) { display:block; margin-top:9px; font-size:14px; line-height:1.6; color:var(--muted); }
.section-disclosure>summary .eyebrow { display:block; margin-bottom:12px; }
.learning-steps { padding-left:20px; margin:5px 0 28px; display:grid; grid-template-columns:repeat(3,1fr); gap:35px; }
.learning-steps h4 { margin:0 0 10px; }
.programme-expanded { background:#faf9f4; }
.programme-at-a-glance { margin-top:25px; max-width:65ch; }
.guide-page .programme-at-a-glance .programme-state { font-size:13px; color:var(--muted); margin-top:12px; }
.guide-page .programme-expanded p:not(.eyebrow) { font-size:15px; line-height:1.85; }
.guide-page .programme-expanded .programme-heading>h3 { font-size:32px; }
.guide-page .programme-expanded h4 { font-size:23px; line-height:1.2; font-family:var(--serif); font-weight:400; }
.guide-page .programme-expanded .programme-pillar h4 { margin-top:15px; }
.guide-page .programme-expanded details summary { font-size:17px; }
.guide-page .pricing-door p:last-child { font-size:15px; line-height:1.75; }
.guide-page .guide-credits { font-size:12px; }
.guide-page .guide-reflection { padding-block:45px; }
.guide-page .guide-reflection h2 { font-size:clamp(34px,4vw,48px); }

/* The enquiry stays a simple form, with services grouped by purpose. */
.enquiry-page .pricing-heading { padding-block:32px 45px; }
.enquiry-page .pricing-heading>p:not(.eyebrow), .enquiry-page .enquiry-promise p:not(.eyebrow),
.enquiry-page .form-intro, .enquiry-page .form-contact-note,
.enquiry-page .review-heading>p:last-child, .enquiry-page .enquiry-next li p { font-size:16px; line-height:1.8; }
.enquiry-page .enquiry-promise { padding-block:35px; gap:55px; }
.enquiry-page .enquiry-promise h2 { font-size:42px; margin:15px 0; }
.enquiry-page .enquiry-promise h3 { font-size:34px; margin:15px 0; }
.enquiry-page .enquiry-layout { gap:45px; padding-block:55px; }
.enquiry-page .field, .enquiry-page .field-label, .enquiry-page .check-line { font-size:14px; line-height:1.7; }
.enquiry-page .field input, .enquiry-page .field textarea { font-size:16px; min-height:50px; }
.enquiry-page .field output { font-size:14px; min-height:50px; }
.enquiry-page .field-hint { font-size:13px; line-height:1.8; }
.enquiry-page .enquiry-fieldset { margin-top:38px; padding-top:24px; }
.service-group { margin-top:28px; }
.service-group h3 { font-size:27px; line-height:1.2; }
.enquiry-page .service-grid { grid-template-columns:1fr 1fr; gap:12px; }
.enquiry-page .service-choice { padding:18px; }
.enquiry-page .service-choice strong { font-size:15px; line-height:1.5; }
.enquiry-page .service-choice>span>span { font-size:13px; line-height:1.7; }
.enquiry-page .check-line input, .enquiry-page .service-choice input { width:20px; height:20px; margin-top:3px; }
.enquiry-page .required-service { font-size:10px; }
.enquiry-page .primary-button, .enquiry-page .secondary-button { font-size:14px; min-height:48px; }
.enquiry-page .request-sidebar dl>div { grid-template-columns:72px 1fr; font-size:13px; }
.enquiry-page .request-sidebar ul { font-size:14px; line-height:1.8; }
.enquiry-page .summary-status, .enquiry-page .summary-region { font-size:12px; }
.enquiry-page .request-text { font-size:14px; line-height:1.85; }
.enquiry-page .request-feedback { font-size:14px; }

@media(max-width:1100px) {
  .guide-nav-links { display:none; }
  .guide-nav-menu { display:block; position:relative; flex:1; }
  .guide-nav-menu>summary { display:flex; justify-content:space-between; align-items:center; list-style:none; gap:20px; min-height:44px; font-size:14px; cursor:pointer; max-width:300px; }
  .guide-nav-menu>div { position:absolute; top:53px; left:-20px; min-width:280px; padding:12px 20px; border:1px solid var(--line); background:var(--paper); box-shadow:0 12px 24px #25301b1a; }
  .guide-nav-menu a { display:block; padding:12px 0; min-height:44px; font-size:15px; }
  .guide-page .country-grid, .guide-page .journey-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .enquiry-page .service-grid { grid-template-columns:1fr; }
  .enquiry-page .enquiry-layout { gap:30px; }
}
@media(max-width:700px) {
  .guide-stay-strip { grid-template-columns:1fr; gap:13px; padding:22px 25px; }
  .guide-stay-strip>div { display:flex; justify-content:space-between; gap:20px; align-items:baseline; }
  .guide-stay-strip>div+div { border-left:0; padding-left:0; }
  .guide-stay-strip span { margin:0; font-size:12px; }
  .guide-stay-strip strong { font-size:13px; text-align:right; }
  .guide-local-nav { padding:8px 20px; gap:16px; }
  .guide-local-nav .guide-enquire { font-size:12px; padding:10px 12px; gap:10px; }
  .guide-nav-menu>summary { font-size:13px; gap:8px; }
  .guide-nav-menu>div { left:-20px; min-width:min(310px,calc(100vw - 40px)); }
  .guide-page .guide-teaser { font-size:16px; }
  .guide-page .guide-intro .large-copy { font-size:21px; }
  .guide-page .guide-intro, .guide-page .guide-story { padding-block:40px; }
  .guide-page .guide-story-image { height:340px; }
  .guide-page .guide-places h2 { font-size:36px; }
  .daily-notebook, .neighbourhood-notebook { padding-block:40px; }
  .notebook-layout { grid-template-columns:1fr; gap:35px; margin-top:28px; }
  .routine-note summary { font-size:15px; gap:12px; }
  .routine-time { width:62px; font-size:11px; }
  .neighbourhood-notebook h2 { font-size:36px; }
  .planning-questions summary { font-size:17px; }
  .guide-page .nearby-journeys, .guide-page .country-journeys { padding-block:40px; }
  .guide-page .country-grid, .guide-page .journey-grid { grid-template-columns:1fr; gap:22px; }
  .guide-page .journey-card>h3, .guide-page .country-card>h3 { font-size:32px; }
  .guide-page .card-summary { font-size:16px; }
  .guide-page .journey-return, .guide-page .culture-enquiry { display:block; margin-top:28px; }
  .journey-return>.text-link, .culture-enquiry>.text-link { margin-top:20px; }
  .section-disclosure { padding-inline:20px; }
  .section-disclosure>summary strong { font-size:25px; }
  .learning-steps { grid-template-columns:1fr; gap:22px; }
  .guide-page .programme-expanded .programme-heading>h3 { font-size:28px; }
  .guide-page .guide-reflection h2 { font-size:35px; }
  .enquiry-page .enquiry-promise>div+div { padding-top:24px; margin-top:24px; }
  .enquiry-page .enquiry-layout { padding-block:40px; }
  .enquiry-page .field input, .enquiry-page .field textarea { font-size:16px; padding:12px; }
  .enquiry-page .form-grid { grid-template-columns:1fr; gap:20px; }
  .enquiry-page .request-sidebar dl { grid-template-columns:1fr; }
  .enquiry-page .request-sidebar ul { columns:1; }
  .enquiry-page .request-text { padding:20px 16px; font-size:13px; }
}
@media(prefers-reduced-motion:reduce) { .expand-mark { transition:none; } }
