/* Version 37.2 — customer layout system. Loaded after the legacy stylesheet.
   <=800px retains the existing mobile composition; tablet starts at 801px,
   task panels split at 1100px and wide desktop gains a third information column. */
body:has(main#main) {
  --page-width: 1360px;
  --page-gutter: clamp(24px, 3.4vw, 56px);
  --layout-gap: clamp(28px, 3.5vw, 56px);
  --title-size: clamp(2.75rem, 4.2vw, 4.75rem);
  --heading-size: clamp(2rem, 2.7vw, 3rem);
  --subheading-size: clamp(1.65rem, 2.05vw, 2.25rem);
}
main#main .editorial-copy { max-width: 66ch; }
main#main .photo-slot { aspect-ratio: 4 / 3; min-height: 0; width: 100%; }
main#main .photo-slot small { font-size: .875rem; line-height: 1.5; }
main#main details summary { cursor: pointer; }
main#main .information-item details summary {
  display: list-item; list-style: disclosure-closed; padding: 5px 0;
  font-size: 1rem; font-weight: 600; line-height: 1.5;
}
main#main .information-item details[open] summary { list-style: disclosure-open; }
main#main details summary:focus-visible { outline: 3px solid #b35b39; outline-offset: 4px; }
@media (min-width: 801px) {
  body:has(main#main) .wrap,
  body:has(main#main) .wrap.content-inset {
    width: min(var(--page-width), calc(100% - var(--page-gutter) * 2));
    max-width: none;
  }
  main#main.home-main { width: 100%; max-width: none; }
  main#main .hero {
    width: min(var(--page-width), calc(100% - var(--page-gutter) * 2));
    margin-inline: auto; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
    gap: var(--layout-gap); min-height: 0; padding-block: 48px;
  }
  main#main .hero-copy { padding: 0; min-width: 0; }
  main#main .hero-image { aspect-ratio: 4 / 3; align-self: center; }
  main#main .hero-image img { object-fit: cover; object-position: center; }
  main#main h1, main#main .hero h1, main#main .inner-hero h1 {
    font-size: var(--title-size); line-height: 1.06; letter-spacing: -.035em;
  }
  main#main .section h2, main#main .integration-heading h2 {
    font-size: var(--heading-size); line-height: 1.12; margin-bottom: 20px;
  }
  main#main .information-item h2,
  main#main .concept.integrated h3, main#main .card h3 {
    font-size: var(--subheading-size); line-height: 1.18;
  }
  main#main .eyebrow { font-size: .8125rem; line-height: 1.5; margin-bottom: 16px; }
  main#main p, main#main li { line-height: 1.6; }
  main#main .small-print, main#main .note { font-size: .875rem; line-height: 1.5; }
  main#main .section { padding-block: 56px; }
  main#main .compact-section { padding-block: 36px; }
  main#main .inner-hero { padding-block: 44px; }
  main#main .inner-hero .grid, main#main .split {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--layout-gap); align-items: start;
  }
  main#main .inner-hero .grid { align-items: center; }
  main#main .inner-hero .image-frame { aspect-ratio: 4 / 3; }
  main#main .inner-hero .image-frame img {
    aspect-ratio: 4 / 3; height: 100%; width: 100%; max-height: 440px;
    min-height: 0; object-fit: cover; border-radius: 0;
  }
  main#main .split .image-frame { aspect-ratio: 4 / 3; }
  main#main .split .image-frame img { height: 100%; min-height: 0; object-fit: cover; }
  main#main .hero p, main#main .inner-hero p, main#main .split p,
  main#main .information-item p { max-width: 66ch; }
  main#main .hero .lead { font-size: 1.0625rem; margin-bottom: 22px; }
  main#main .hero-facts { gap: 8px 18px; margin-block: 20px; font-size: .9375rem; }
  main#main .strip { padding-block: 16px; }
  main#main .strip-inner { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
  main#main .strip-inner span + span::before { content: none; }
  main#main .cards { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
  main#main .card { min-height: 0; padding: 28px; }
  main#main .card h3 { margin-top: 14px; }
  main#main .facts { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; padding-block: 28px; }
  main#main .facts strong { font-size: 1.65rem; }
  main#main .information-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px var(--layout-gap); }
  main#main .information-item { padding-top: 20px; }
  main#main .information-item:last-child:nth-child(odd) { grid-column: auto; }
  main#main .information-item:last-child:nth-child(odd)>div { max-width: none; }
  main#main .utility-hero { padding-block: 28px; }
  main#main .utility-hero h1 { font-size: var(--heading-size); }
  main#main .utility-hero .wrap { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 12px var(--layout-gap); align-items: start; }
  main#main .utility-hero h1 { grid-column: 1; grid-row: 1 / span 2; margin: 0; }
  main#main .utility-hero .visit-essentials { grid-column: 2; }
  main#main .utility-hero .topic-links,
  main#main .utility-hero .contact-direct { grid-column: 1 / -1; margin-top: 10px; }
  main#main .utility-hero p { margin-top: 0; }
  main#main .contact-task { padding-top: 36px; }
  main#main .contact-task .split { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); }
  main#main .contact-form.compact-form { max-width: none; width: 100%; padding: 24px; }
  main#main .wrap.narrow { max-width: none; }
  main#main .wrap.narrow > p { max-width: 66ch; }
  main#main .compact-section .wrap.narrow { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 8px var(--layout-gap); align-items: start; }
  main#main .compact-section .wrap.narrow h2 { grid-column: 1; }
  main#main .compact-section .wrap.narrow > p { grid-column: 1; margin-block: 0 8px; }
  main#main .compact-section .wrap.narrow .cta-row { grid-column: 2; grid-row: 1 / span 3; margin: 0; }
  main#main .compact-section .wrap.narrow .test-notice { grid-column: 2; }
  main#main .quote-band { padding-block: 44px; }
  main#main .testimonial-rotator { min-height: 0; }
  main#main .quote-band blockquote { max-width: 30ch; }
  main#main .integration-heading { max-width: none; display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 0 var(--layout-gap); margin-bottom: 24px; }
  main#main .integration-heading .eyebrow { grid-column: 1 / -1; }
  main#main .integration-heading h2 { margin: 0; }
  main#main .integration-heading > p:last-child { max-width: 66ch; font-size: 1rem; }
  main#main .concept.integrated .journey { grid-template-columns: 1fr; gap: 24px; }
  main#main .concept.integrated [data-experience-demo] { padding: 28px; }
  main#main .concept.integrated .booking-essentials { max-width: none; margin: 0 28px; padding-block: 18px; }
  main#main .concept.integrated .date-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
  main#main .concept.integrated .paper { padding: 24px; }
  main#main .concept.integrated .form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 20px; }
  main#main .form-grid > :not(label), main#main .form-grid > label:has(textarea),
  main#main .form-grid > .recipient-fields { grid-column: 1 / -1; }
  main#main .form-grid > label { min-width: 0; }
  main#main .recipient-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
  main#main .concept.integrated .form-grid button { justify-self: start; }
  main#main .review-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  main#main .gallery-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  main#main .gallery-photo { min-height: 0; }
  main#main .gallery-photo > span { position: static; background: none; padding: 16px 0; color: var(--ink); }
  main#main .gallery-photo strong { font-size: 1.5rem; }
  body:has(main#main) .footer-inner { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: var(--layout-gap); }
  body:has(main#main) .footer-inner > nav { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); max-width: none; }
}
@media (min-width: 1100px) {
  main#main .concept.integrated .journey { grid-template-columns: minmax(0,1.15fr) minmax(0,1fr); gap: 32px; }
  main#main [data-experience-demo="sunday"] .journey:has(#demo-checkout) { grid-template-columns: minmax(0,1.45fr) minmax(280px,.8fr); }
  main#main #private-enquiry .concept.integrated .journey { grid-template-columns: minmax(0,.7fr) minmax(0,1.3fr); }
  main#main .review-grid, main#main .gallery-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  main#main #meet-steve .host-composition { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: var(--layout-gap); align-items: start; }
  main#main #meet-steve .photo-slot { position: sticky; top: 32px; }
}
@media (min-width: 1440px) {
  main#main .information-grid:has(> .information-item:nth-child(3):last-child) { grid-template-columns: repeat(3,minmax(0,1fr)); }
  main#main .hero { padding-block: 56px; }
}
@media (min-width: 1600px) { body:has(main#main) { --page-width: 1440px; } }
@media (max-width: 1099px) and (min-width: 801px) {
  main#main .hero { grid-template-columns: minmax(0,1.15fr) minmax(0,1fr); gap: 28px; }
  main#main .hero h1 { font-size: 3rem; }
  main#main .inner-hero h1 { font-size: 2.75rem; }
  main#main .inner-hero .image-frame img { max-height: 340px; }
  main#main .cards { gap: 16px; }
  main#main .card { padding: 20px; }
  main#main .card h3 { font-size: 1.65rem; }
  main#main .compact-section .wrap.narrow { display: block; }
  main#main .compact-section .wrap.narrow .cta-row { margin-top: 20px; }
}
main#main .gift-preview-slot { min-height: 0; aspect-ratio: 1; max-width: 420px; margin-top: 24px; }
@media (max-width: 800px) {
  /* Preview reservation stays secondary on phones; existing form order remains. */
  main#main .gift-preview-slot { max-width: 240px; padding: 20px; }
  main#main .gift-preview-slot strong { font-size: 1.65rem; }
  main#main .host-composition .photo-slot { margin-bottom: 28px; }
}
/* Reference header alignment: same desktop geometry as Private Visits.
   Explicit slots stop short copy drifting down through vertical centring. */
@media(min-width:1000px){
 main#main .reference-header,main#main .reference-header.utility-hero{padding-block:44px}
 main#main .reference-header>.wrap{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--layout-gap);align-items:start;min-height:calc(2.12 * var(--title-size) + 330px)}
 main#main .reference-header>.wrap>div:first-child{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto;align-content:start}
 main#main .reference-header .eyebrow{margin:0 0 16px;font-size:.8125rem;line-height:1.5}
 main#main .reference-header h1{grid-column:auto;grid-row:auto;min-height:2.12em;font-size:var(--title-size);line-height:1.06;margin:0 0 24px}
 main#main .reference-header .lead,main#main .reference-header .visit-essentials{grid-column:auto;margin:0;font-size:18px;line-height:1.6;max-width:550px}
 main#main .reference-header p{margin-top:0;margin-bottom:16px}
 main#main .reference-header .lead p:last-child{margin-bottom:0}
 main#main .reference-header .image-frame{aspect-ratio:4/3;align-self:start;margin-top:3px}
 main#main .reference-header .image-frame img{width:100%;height:100%;max-height:440px;aspect-ratio:4/3;object-fit:cover;border-radius:0}
 main#main .reference-header .cta-row,main#main .reference-header .contact-direct,main#main .reference-header .topic-links{grid-column:auto;grid-row:auto;margin-top:24px}
 main#main .gift-purchase-layout{grid-template-rows:auto 1fr;gap:24px 40px}
 main#main .gift-purchase-layout .journey>div{grid-column:1;grid-row:1}
 main#main .gift-purchase-layout .balance-panel{grid-column:1;grid-row:2;align-self:start;margin:0}
 main#main .gift-purchase-layout .gift-preview-slot{display:none}
 main#main .booking-expectations{display:block;max-width:850px;margin:0 28px 24px;padding:0 0 8px}
 main#main .booking-expectations>div{padding:14px 0;border-bottom:1px solid var(--line)}
 main#main .booking-expectations>div:last-child{border-bottom:0}
 main#main .booking-expectations p{margin:6px 0 0;max-width:70ch}
 main#main:has(.visit-essentials) .information-grid{display:grid;grid-template-columns:minmax(0,1fr);max-width:1000px;gap:28px}
 main#main:has(.visit-essentials) .information-item{grid-column:auto;max-width:none}
 main#main:has(.visit-essentials) .information-item>div{max-width:none}
 main#main:has(.visit-essentials) .information-item p,main#main:has(.visit-essentials) .information-item ul{max-width:72ch}
 main#main .contact-task .compact-form{padding:28px;gap:16px 20px}
 main#main .contact-task .compact-form input{min-height:46px}
 main#main .contact-task .compact-form textarea{height:142px}
}
.desktop-linebreak{display:none}
@media(min-width:1000px){
 .desktop-linebreak{display:inline}
 main#main .reference-header>.wrap{min-height:0;align-items:center}
 main#main .reference-header>.wrap>div:first-child{min-height:calc(2.12 * var(--title-size) + 337.1px)}
 main#main .reference-header .image-frame{align-self:center;margin-top:0}
 main#main .visit-shortcuts{border-bottom:1px solid var(--line);padding:18px 0}
 main#main .visit-shortcuts .topic-links{margin:0}
}
@media(min-width:1000px){
 main#main:has(#choose-date) .composition .information-grid{grid-template-columns:minmax(0,1fr);max-width:1000px;gap:30px}
 main#main:has(#choose-date) .composition .information-item{grid-column:auto}
 main#main:has(#choose-date) .composition .information-item>div{max-width:76ch}
}
/* Desktop continuity: concise facts and two useful in-page actions. */
.desktop-header-actions,.desktop-information-bar{display:none}
@media(min-width:1000px){
 main#main .desktop-header-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:24px;align-items:center}
 main#main .desktop-header-actions .button{min-height:48px;padding:15px 23px;font-size:14px;line-height:1.2;cursor:pointer}
 main#main .desktop-information-bar{display:block;height:60px;padding:0;background:var(--gold);color:#101010}
 main#main .desktop-information-bar .strip-inner{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;height:100%;align-items:center;text-align:center;font-size:14px;line-height:1.4;font-weight:700}
 main#main .desktop-information-bar span{margin:0}
 main#main .desktop-information-bar a{text-underline-offset:4px}
 main#main .desktop-header-actions a:focus-visible,main#main .desktop-information-bar a:focus-visible{outline:3px solid #a5563c;outline-offset:4px}
 main#main [id]{scroll-margin-top:110px}
}
/* Mobile alignment with the approved desktop content and page hierarchy.
   These rules intentionally stop before the desktop header breakpoint. */
@media(max-width:999px){
 body:has(main#main){--section-space:40px;--content-gap:24px}
 main#main{font-size:1rem;line-height:1.6}
 main#main .mobile-retained{display:none!important}
 main#main .desktop-addition{display:block}
 main#main .desktop-linebreak{display:none}
 main#main .wrap{width:calc(100% - 36px);max-width:720px}
 main#main .inner-hero,main#main .inner-hero.utility-hero{padding:30px 0}
 main#main .inner-hero>.wrap,main#main .inner-hero .grid{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;align-items:start}
 main#main .inner-hero>.wrap>div,main#main .hero-copy{min-width:0}
 main#main .hero{display:grid;grid-template-columns:minmax(0,1fr);width:100%;margin:0;padding:0;min-height:0;gap:0}
 main#main .hero-copy{display:block;padding:30px 18px 24px}
 main#main .hero-copy>div{max-width:720px;margin:auto}
 main#main .eyebrow{font-size:.8125rem;line-height:1.4;letter-spacing:.14em;margin:0 0 12px}
 main#main h1,main#main .inner-hero h1{font-size:clamp(2.1rem,8.8vw,2.6rem);line-height:1.1;letter-spacing:-.03em;margin:0 0 18px;text-wrap:balance}
 main#main .hero h1{font-size:clamp(2.35rem,10vw,3rem);line-height:1.08}
 main#main .inner-hero p,main#main .hero p,main#main .inner-hero .lead,main#main .hero .lead{font-size:1rem;line-height:1.6;max-width:65ch;margin:0 0 14px}
 main#main .inner-hero .lead p:last-child,main#main .hero .lead{margin-bottom:0}
 main#main .desktop-header-actions{display:flex;flex-direction:column;align-items:stretch;gap:10px;margin-top:22px}
 main#main .desktop-header-actions .button{width:100%;min-height:46px;padding:13px 16px;font-size:.875rem;line-height:1.35;cursor:pointer}
 main#main .desktop-header-actions a:focus-visible,main#main .desktop-information-bar a:focus-visible{outline:3px solid #a5563c;outline-offset:4px}
 main#main .inner-hero .image-frame,main#main .hero-image{aspect-ratio:4/3;width:100%;height:auto;min-height:0;align-self:start;border-radius:6px;overflow:hidden}
 main#main .inner-hero .image-frame img,body:has(#private-enquiry) main#main .inner-hero .image-frame img,main#main .hero-image img{width:100%;height:100%;min-height:0;max-height:none;aspect-ratio:4/3;object-fit:cover;object-position:center}
 main#main .hero-image{width:calc(100% - 36px);max-width:720px;margin:0 auto 30px}
 main#main .hero-image .caption{left:12px;bottom:12px;max-width:calc(100% - 24px);font-size:.8125rem;padding:6px 10px}
 main#main .desktop-information-bar{display:block;height:auto;padding:14px 0;background:var(--gold);color:#101010}
 main#main .desktop-information-bar .strip-inner{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;text-align:left;font-size:.875rem;line-height:1.5;font-weight:700}
 main#main .desktop-information-bar span{display:block;margin:0}
 main#main .desktop-information-bar span+span:before{content:none}
 main#main .desktop-information-bar a{text-underline-offset:4px;overflow-wrap:anywhere}
 main#main .section{padding-block:40px}
 main#main .compact-section{padding-block:30px}
 main#main .section h2,main#main .integration-heading h2{font-size:clamp(1.8rem,7vw,2.1rem);line-height:1.15;margin-bottom:16px}
 main#main .section h3,main#main .concept.integrated h3{font-size:1.45rem;line-height:1.2}
 main#main .information-grid,main#main .split{display:grid;grid-template-columns:minmax(0,1fr);gap:26px}
 main#main .information-item{grid-column:auto;min-width:0;padding-top:18px}
 main#main .information-item h2{font-size:1.8rem}
 main#main .information-item p{margin:0 0 14px}
 main#main .information-item li{margin-bottom:8px}
 main#main .information-item ul,main#main .information-item ol{margin:14px 0;padding-left:22px}
 main#main .information-item details summary,main#main #tour-questions summary{display:list-item;list-style:disclosure-closed;padding:12px 0;min-height:46px;font-size:1rem;line-height:1.5;cursor:pointer}
 main#main .information-item details[open] summary{list-style:disclosure-open}
 main#main .information-item details{padding:0;border-bottom:1px solid var(--line)}
 main#main .information-item details p{margin:8px 0 16px}
 main#main .booking-expectations{display:block;padding:0 18px;margin:0 0 20px}
 main#main .booking-expectations>div{padding:12px 0;border-bottom:1px solid var(--line)}
 main#main .booking-expectations strong{font-size:1rem}
 main#main .booking-expectations p{font-size:.9375rem;line-height:1.55;margin:6px 0 0}
 main#main .small-print,main#main .note,main#main .photo-slot small{font-size:.875rem;line-height:1.5}
 main#main .visit-shortcuts{padding:18px 0;border-bottom:1px solid var(--line)}
 main#main .visit-shortcuts .topic-links{margin:0;gap:8px 18px;font-size:.875rem}
 main#main .visit-shortcuts a{padding-block:6px;min-height:36px}
 main#main .editorial-pair{display:flex;flex-direction:column;gap:20px}
 main#main .editorial-pair>div:not(.image-frame){order:1}
 main#main .editorial-pair>.image-frame{order:2;width:100%;aspect-ratio:4/3;border-radius:6px;overflow:hidden}
 main#main .editorial-pair>.image-frame img{width:100%;height:100%;min-height:0;aspect-ratio:4/3;object-fit:cover}
 main#main .host-composition{display:flex;flex-direction:column;gap:20px}
 main#main .host-composition>.photo-slot{order:2;margin:0;aspect-ratio:4/3;padding:22px}
 main#main .host-composition>div:not(.photo-slot){order:1}
 main#main .gift-preview-slot{display:none!important}
 main#main .gift-purchase-layout{display:flex;flex-direction:column;gap:20px}
 main#main .gift-purchase-layout>.journey{display:contents}
 main#main .gift-purchase-layout .journey>div{order:1;width:100%;min-width:0}
 main#main .gift-purchase-layout .balance-panel{order:3;width:100%;margin:0;min-width:0}
 main#main .gift-purchase-layout #demo-gift{order:2;width:100%;min-width:0}
 main#main .contact-direct.mobile-retained{display:flex!important;gap:8px 18px;font-size:.875rem;margin:16px 0 0}
 main#main .contact-direct a:last-child{display:none}
 main#main .contact-map{margin-top:20px}
 main#main .contact-map iframe{width:100%;height:220px;border:1px solid var(--line);border-radius:6px}
 main#main .contact-task .split>div:first-child{order:2}
 main#main .contact-task .split>div:last-child{order:1}
 main#main .compact-form{width:100%;padding:18px;gap:14px}
 main#main .compact-form input,main#main .compact-form textarea{font-size:1rem;min-height:44px}
 main#main [id]{scroll-margin-top:96px}
}
@media(max-width:359px){
 body:has(main#main) .header-inner{gap:10px}
 body:has(main#main) .brand img{width:150px}
 body:has(main#main) .mobile-actions{gap:8px}
 body:has(main#main) .mobile-book{padding:10px 12px}
}
@media(max-width:999px){
 main#main .demo-banner{display:grid;gap:6px;padding:14px 18px;font-size:.875rem;line-height:1.5}
 main#main .concept.integrated .journey{display:grid;grid-template-columns:minmax(0,1fr);gap:20px}
 main#main .concept.integrated .gift-purchase-layout>.journey{display:contents}
 main#main .concept.integrated .paper{min-width:0}
 main#main .concept.integrated .form-grid input:not([type="radio"]):not([type="checkbox"]),main#main .concept.integrated .form-grid select,main#main .concept.integrated .form-grid textarea{font-size:1rem;min-height:44px}
}
@media(max-width:999px){
 main#main .concept.integrated .paper{padding:18px}
 main#main .concept.integrated input[type=radio],main#main .concept.integrated input[type=checkbox]{width:18px;height:18px;min-height:18px;padding:0;flex-shrink:0}
 main#main .concept.integrated .square-methods label,main#main .delivery-choice label{min-height:44px}
}
@media(max-width:999px){
 main#main .concept.integrated details summary{min-height:44px;padding-block:12px;cursor:pointer}
}
/* Shared transactional vocabulary: no changes to state, payment or data flow. */
main#main .concept.integrated .form-intro{grid-column:1/-1;font-size:.875rem;line-height:1.5;color:var(--muted);margin:0 0 4px}
main#main .submit-guidance{font-size:.875rem;line-height:1.5;margin:0;color:var(--muted)}
main#main .date-tile,main#main .choice{position:relative}
main#main .date-tile.selected,main#main .choice.selected{background:#e5ebe1;border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
main#main .date-tile.selected:after,main#main .choice.selected:after{content:'✓';position:absolute;right:7px;top:5px;font-size:14px;line-height:1;font-weight:700;color:var(--ink)}
main#main .booking-widget #demo-guests{font-weight:700;border:2px solid var(--ink);background:#fffdf5}
main#main .booking-widget .total{background:var(--ink);color:var(--cream);border:0;border-radius:4px;padding:16px;margin:18px 0 12px}
main#main .booking-widget .total strong{white-space:nowrap;font-size:2rem}
main#main .booking-next{font-size:.875rem;line-height:1.5;margin:16px 0 12px}
main#main .concept.integrated .form-grid label,main#main .compact-form label{font-weight:600;font-size:.875rem;line-height:1.5}
main#main .concept.integrated input:focus-visible,main#main .concept.integrated select:focus-visible,main#main .concept.integrated textarea:focus-visible,main#main .compact-form input:focus-visible,main#main .compact-form textarea:focus-visible{outline:3px solid #a5563c;outline-offset:3px}
main#main .concept.integrated .flash:empty,main#main [data-form-status]:empty{display:none}
main#main .concept.integrated .balance-panel{background:#f4f1e7;box-shadow:none}
.mobile-topic-title,.mobile-directions{display:none}
@media(min-width:1000px){
 main#main details.mobile-reading-detail{display:contents;padding:0;border:0}
 main#main details.mobile-reading-detail>summary{display:none}
 main#main details.mobile-reading-detail p{margin-top:0;margin-bottom:18px}
}
@media(max-width:999px){
 main#main .concept.integrated .form-grid,main#main .compact-form{gap:16px}
 main#main .concept.integrated .form-grid>label{margin:0}
 main#main .concept.integrated .form-grid input:not([type=radio]):not([type=checkbox]),main#main .concept.integrated .form-grid textarea,main#main .concept.integrated .form-grid select,main#main .compact-form input,main#main .compact-form textarea{border:1px solid #819087;border-radius:4px;min-height:46px;padding:11px 12px;font-size:1rem;line-height:1.5}
 main#main .concept.integrated .form-grid .button[type=submit],main#main .compact-form .button[type=submit]{width:100%;min-height:46px;padding:13px 16px}
 main#main .concept.integrated .form-grid .button.outline{min-height:44px}
 main#main .concept.integrated .form-grid .small-print,main#main .compact-form .test-notice{font-size:.875rem;background:transparent;border:0;padding:0;margin:0;color:var(--muted)}
 main#main .compact-form .test-notice strong{display:block;font-size:.8125rem;margin-bottom:4px}
 main#main .concept.integrated .demo-banner{background:#f1ede1;border-bottom:1px solid var(--line);text-align:left}
 main#main .booking-widget .total{align-items:center;gap:12px}
 main#main .booking-widget .total span{font-size:.9375rem;line-height:1.4}
 main#main .booking-widget .total strong{font-size:1.8rem}
 main#main .booking-widget h3{font-size:1.7rem;line-height:1.2;margin-bottom:12px}
 main#main .booking-widget .voucher-feedback,main#main .booking-widget .small-print{font-size:.875rem;line-height:1.5}
 main#main .booking-widget .full{min-height:48px}
 main#main .private-enquiry-guide p{margin-bottom:14px}
 main#main .steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:18px 0}
 main#main .steps li{font-size:.8125rem;line-height:1.4;padding:8px 10px;min-height:36px}
 main#main #demo-private{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px}
 main#main #demo-private>*{grid-column:1/-1;min-width:0}
 main#main #demo-private .field-date,main#main #demo-private .field-size{grid-column:auto}
 main#main #demo-private .field-date input{padding-inline:6px;min-width:0;width:100%}
 main#main .mobile-topic-title{display:block;margin:0 0 12px;font-size:1rem;font-weight:700}
 main#main .visit-shortcuts .topic-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 main#main .visit-shortcuts .topic-links a{display:flex;align-items:center;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:4px;text-decoration:none;background:#fffdf5;font-size:.875rem;line-height:1.4}
 main#main .visit-shortcuts .topic-links a:hover{border-color:var(--ink)}
 main#main .secondary-practical h2{font-size:1.5rem}
 main#main .tasting-highlight{border-top:3px solid var(--gold);padding-top:20px}
 main#main details.mobile-reading-detail{margin-top:16px}
 main#main .gift-steps{padding-left:22px}
 main#main .gift-steps li{margin-bottom:14px}
 main#main .gift-steps strong{display:block;margin-bottom:4px}
 main#main #gift-terms li{padding-bottom:10px;border-bottom:1px solid var(--line)}
 main#main #gift-terms li:last-child{border-bottom:0}
 main#main #gift-redemption h2{font-size:1.8rem}
 main#main #gift-redemption .button{background:transparent;border-color:var(--ink)}
 main#main .review-grid{gap:16px}
 main#main .review-card.featured-review{border-left:3px solid var(--ink);background:#fffdf5;padding:24px}
 main#main .review-card.featured-review strong{font-size:1.05rem}
 main#main .review-card.compact-review{background:transparent;padding:18px;border-width:0 0 1px;border-radius:0}
 main#main .review-card.compact-review p{font-size:1rem;line-height:1.55;margin-top:10px}
 main#main .feedback-section{border-top:3px solid var(--ink);padding-top:40px;margin-top:8px}
 main#main .mobile-directions{display:inline-flex;min-height:46px;margin:8px 0 0;font-size:.875rem}
 main#main #press-media{border-top:1px solid var(--line);padding-block:30px}
 main#main .action-row .button,main#main .cta-row .button{min-height:44px}
 main#main .customer-confirmation{padding:20px;border-radius:4px;border-left:4px solid var(--ink)}
}

@media(max-width:359px){main#main #demo-private .field-date,main#main #demo-private .field-size{grid-column:1/-1}}
@media(max-width:999px){main#main .contact-task>.wrap.split{display:flex;flex-direction:column;gap:28px}main#main .contact-task #contact-form{order:-1;width:100%}}
/* Genuine photography: keep existing frames and use a small set of subject rules. */
main#main img.tour-photo{object-fit:cover;object-position:50% 45%;max-width:100%}

main#main img.host-interaction{object-position:50% 28%!important}
main#main img.host-cheese{object-position:50% 38%!important}
main#main img.maker-photo{object-position:68% 42%!important}
main#main img.portrait-pair{object-position:50% 25%!important}
main#main img.cheese-detail{object-position:50% 62%!important}
main#main .tour-editorial-photo{margin:22px 0 24px;max-width:100%}
main#main .tour-editorial-photo img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:6px}
main#main .tour-editorial-photo .process-context{object-position:15% 50%}
main#main .tour-editorial-photo figcaption{font-size:.875rem;line-height:1.5;color:var(--muted);margin-top:9px}
main#main .tasting-photo .tasting-table{object-position:80% 65%}
main#main .gallery-photo img{aspect-ratio:4/3;object-fit:cover;border-radius:0}
main#main .gallery-photo img.process-context{object-fit:cover;object-position:15% 50%}
main#main .gallery-photo img.tasting-table{object-position:80% 62%}
main#main .gallery-photo img.candle-photo{object-position:50% 35%}
@media(max-width:699px){main#main .tasting-photo img{aspect-ratio:4/5;object-position:50% 70%}main#main .tour-editorial-photo figcaption{font-size:.8125rem}main#main img.host-interaction{object-position:50% 28%!important}}
main#main .tour-host-photo{padding:0!important;overflow:hidden;border-radius:6px}
main#main .tour-host-photo img{display:block;width:100%;height:100%;aspect-ratio:4/3;object-fit:cover}

/* Header frames are fixed by the approved layout; photographs cover those frames. */
main#main .inner-hero img.tour-photo,main#main .hero img.tour-photo,main#main .hero-image img.tour-photo{object-fit:cover!important;width:100%;height:100%}
main#main img.home-header-photo{object-position:72% 48%!important}
main#main img.sunday-header-photo{object-position:42% 52%!important}
main#main img.private-header-photo{object-position:50% 23%!important}
main#main img.gift-header-photo{object-position:50% 35%!important}
main#main img.arrival-header-photo{object-position:76% 50%!important}
main#main img.reviews-header-photo{object-position:53% 48%!important}
main#main img.contact-header-photo{object-position:52% 62%!important}
main#main img.private-social-photo,main#main img.reviews-social-photo{object-position:50% 52%}
main#main img.gift-social-photo{object-position:50% 48%}
@media(max-width:699px){main#main img.home-header-photo{object-position:76% 48%!important}main#main img.sunday-header-photo{object-position:80% 52%!important;transform:scale(1.25)}main#main img.private-header-photo{object-position:50% 22%!important}main#main img.arrival-header-photo{object-position:78% 50%!important}}

main#main .gallery-photo img[src="/assets/photography/maturing-group.webp"]{object-position:72% 48%}

/* Gift selection refinement: retain the existing card and form layout. */
.gift-experience-options,.gift-value-entry{margin-top:20px}
.gift-choice-explanation{margin-top:22px}
.gift-choice-explanation p{margin:0 0 10px}
.gift-value-entry>label{display:block;font-weight:600;margin-bottom:8px}
.gift-currency-field{display:flex;align-items:center;max-width:280px;border:1px solid var(--line,#d8d3c6);border-radius:6px;background:#fff;overflow:hidden}
.gift-currency-field>span{padding-left:16px;font-size:20px}
.gift-currency-field input{width:100%;min-width:0;border:0;background:transparent;padding:14px 12px;font:inherit}
.gift-currency-field:focus-within{outline:2px solid var(--green,#254832);outline-offset:3px}
