/* Sunny retro palette inspired by a cheerful neighborhood trattoria. */

:root {
  --sea: #d96a3c;
  --deep: #54372d;
  --terra: #e65f78;
  --cream: #fff0d2;
  --paper: #fff9ea;
  --grass: #7f8b3e;
  --sun: #f4c64e;
  --ink: #4b322b;
  --olive-paper: #e9dfad;
  --serif: "Yu Mincho", "Hiragino Mincho ProN", Georgia, serif;
  --sans: "Avenir Next", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: #e9a166; color: var(--ink); font-family: var(--sans); }
a { color: inherit; text-decoration: none; }
img { display: block; width: 100%; }
main { position: relative; overflow: clip; max-width: 1180px; margin: 0 auto; background: var(--cream); box-shadow: 0 0 60px rgba(84,55,45,.18); padding-bottom: 78px; }
.skip-link { position: absolute; left: -999px; }
.skip-link:focus { left: 12px; top: 12px; z-index: 100; background: white; padding: 12px; }

.site-header { height: 68px; padding: 8px 18px; display: grid; grid-template-columns: 1fr auto; align-items: center; background: var(--paper); border-bottom: 2px solid var(--deep); position: relative; z-index: 30; }
.header-brand { display: flex; align-items: center; gap: 10px; min-width: 0; }
.header-brand > span { padding-left: 9px; border-left: 1px solid rgba(84,55,45,.35); white-space: nowrap; font: 700 12px var(--serif); }
.brand-logo { display: block; flex: none; overflow: visible; background: transparent; }
.brand-logo img { width: 100%; height: 100%; object-fit: contain; }
.brand-logo-horizontal { width: 112px; height: 31px; }
.brand-logo-stacked { width: 132px; height: 82px; transform: rotate(-2deg); }
.brand-logo-cream { width: 155px; height: 34px; }
.footer-brand { display: flex; align-items: flex-end; gap: 15px; margin-bottom: 26px; }
.footer-brand > span { padding-bottom: 5px; color: var(--sun); font: 700 14px var(--serif); }
.mini-book { min-height: 44px; display: flex; align-items: center; gap: 9px; font-size: 12px; font-weight: 800; }
.section-nav { position: sticky; z-index: 45; top: 0; display: flex; gap: 4px; padding: 8px 10px; overflow-x: auto; scrollbar-width: none; background: rgba(255,249,234,.96); border-bottom: 1px solid rgba(84,55,45,.24); backdrop-filter: blur(10px); }
.section-nav::-webkit-scrollbar { display: none; }
.section-nav a { flex: none; padding: 8px 11px; border-radius: 99px; font-size: 10px; font-weight: 900; white-space: nowrap; transition: background .2s,color .2s; }
.section-nav a[aria-current="location"] { background: var(--deep); color: white; }
[id] { scroll-margin-top: 68px; }

.collage-hero { min-height: 770px; padding: 30px 20px 44px; background: var(--sea); color: white; position: relative; }
.location-tag, .eyebrow { margin: 0; font-size: 10px; letter-spacing: .19em; font-weight: 900; }
.collage-hero h1 { margin: 14px 0 22px; position: relative; z-index: 3; font: 700 clamp(45px, 13vw, 76px)/1.12 var(--serif); letter-spacing: -.05em; }
.collage-hero h1 span { display: inline-block; transform: translateX(38px); }
.hero-sun { position: absolute; width: 132px; height: 132px; border-radius: 50%; background: var(--sun); right: -28px; top: 30px; }
.paper-photo { padding: 6px; background: var(--paper); box-shadow: 8px 9px 0 rgba(84,55,45,.34); position: relative; }
.hero-photo { width: 95%; height: 245px; transform: rotate(-3deg); }
.hero-photo img, .hero-mini img { height: 100%; object-fit: cover; }
.paper-tape { position: absolute; width: 68px; height: 19px; background: rgba(244,198,78,.9); left: 45%; top: -11px; transform: rotate(-7deg); }
.hero-mini { position: absolute; width: 128px; height: 150px; right: 8px; top: 397px; transform: rotate(7deg); z-index: 5; }
.event-stamp { position: absolute; z-index: 8; top: 120px; right: 13px; width: 92px; height: 92px; border: 2px solid white; border-radius: 50%; background: var(--terra); display: grid; place-content: center; text-align: center; transform: rotate(8deg); font-size: 11px; font-weight: 900; letter-spacing: .08em; }
.hero-note { margin: 23px 0 0; font: italic 700 16px var(--serif); transform: rotate(-3deg); }
.hero-intro { max-width: 580px; margin: 25px 0 20px; font-size: 13px; line-height: 1.85; }
.hero-book { min-height: 54px; max-width: 420px; background: var(--sun); color: var(--deep); border: 2px solid var(--deep); box-shadow: 5px 5px 0 var(--terra); display: flex; align-items: center; justify-content: space-between; padding: 0 18px; font-size: 13px; font-weight: 900; }

.torn-top::before { content: ""; position: absolute; height: 28px; left: 0; right: 0; top: -20px; background: inherit; clip-path: polygon(0 50%,5% 72%,11% 29%,17% 70%,24% 34%,31% 66%,38% 25%,45% 67%,52% 32%,60% 72%,67% 30%,74% 64%,82% 26%,89% 69%,95% 34%,100% 58%,100% 100%,0 100%); }
#content { display: flex; flex-direction: column; }
.collage-hero { order: 1; }
.event-section { order: 2; }
.stay-section { order: 3; }
.upcoming-section { order: 4; }
.voices-section { order: 5; }
.around-section { order: 6; }
.comfort-section { order: 7; }
.access-section { order: 8; }
.faq-section { order: 9; }
.line-section { order: 10; }
.booking-section { order: 11; }
#content > footer { order: 12; }
.event-section, .around-section, .stay-section { position: relative; padding: 74px 20px; }
.event-section { background: var(--paper); }
.section-heading .eyebrow { color: var(--terra); }
.section-heading h2, .day-plan-section h2, .faq-section h2, .booking-section h2, .line-section h2 { margin: 10px 0 15px; font: 700 clamp(34px, 9vw, 54px)/1.28 var(--serif); letter-spacing: -.04em; }
.section-heading h2 em { color: var(--terra); font-style: normal; }
.section-heading > p:last-child { margin: 0; max-width: 590px; font-size: 13px; line-height: 1.85; }
.planning-label { display: inline-block; margin: 28px 0 18px; padding: 7px 11px; background: var(--sun); color: var(--deep); font-size: 10px; font-weight: 900; transform: rotate(-2deg); }
.context-booking-link { min-height: 52px; max-width: 520px; margin-top: 14px; padding: 0 15px; border: 2px solid var(--deep); display: flex; align-items: center; justify-content: space-between; background: var(--sun); color: var(--deep); box-shadow: 5px 5px 0 var(--terra); font-size: 11px; font-weight: 900; }
.context-booking-link.light { background: var(--paper); box-shadow-color: var(--deep); }
.event-list { display: grid; gap: 3px; }
.event-piece { display: grid; grid-template-columns: 105px 1fr; gap: 15px; border-top: 2px solid var(--deep); padding: 17px 0; align-items: center; }
.event-piece:last-child { border-bottom: 2px solid var(--deep); }
.event-image { height: 118px; border: 4px solid var(--paper); box-shadow: 4px 4px 0 var(--sun); overflow: hidden; transform: rotate(-2deg); background: var(--sea); }
.event-image img { height: 100%; object-fit: cover; }
.event-piece.terra .event-image { background: var(--terra); transform: rotate(2deg); }
.event-piece.sun .event-image { background: var(--sun); transform: rotate(1deg); box-shadow: 4px 4px 0 var(--terra); }
.event-piece.grass .event-image { background: var(--grass); }
.event-number, .postcard-index { font-size: 9px; font-weight: 900; letter-spacing: .13em; color: var(--terra); }
.event-text h3 { margin: 5px 0 7px; font: 700 19px/1.35 var(--serif); }
.event-text h3 span { display: block; }
.event-text p { margin: 0; font-size: 11px; line-height: 1.65; }
.instagram-link { min-height: 52px; margin-top: 25px; padding: 0 3px; border-bottom: 2px solid var(--deep); display: flex; align-items: center; justify-content: space-between; font-size: 12px; font-weight: 900; }
.upcoming-section { position: relative; padding: 75px 20px; background: #f7d678; }
.upcoming-section .section-heading .eyebrow { color: var(--terra); }
.friends-weekend-card { position: relative; display: block; margin-top: 32px; padding: 8px 8px 22px; background: var(--paper); border: 2px solid var(--deep); box-shadow: 7px 7px 0 var(--terra); transform: rotate(-1deg); }
.friends-weekend-photo { height: 230px; overflow: hidden; }
.friends-weekend-photo img { height: 100%; object-fit: cover; }
.friends-weekend-copy { padding: 19px 10px 0; }
.friends-weekend-copy > small { color: var(--terra); font-size: 8px; font-weight: 900; letter-spacing: .14em; }
.friends-weekend-copy h3 { margin: 5px 0 9px; font: 900 32px/.95 Arial, sans-serif; letter-spacing: -.06em; }
.friends-weekend-copy p { margin: 0; font-size: 10px; line-height: 1.7; }
.friends-weekend-copy > a { display: flex; justify-content: space-between; align-items: center; margin-top: 16px; padding-top: 13px; border-top: 1px solid rgba(84,55,45,.25); font-size: 11px; font-weight: 900; }
.friends-benefits { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 15px; }
.friends-benefits > span { padding: 10px 8px; background: #fce6e2; border: 1px solid var(--deep); font-size: 9px; line-height: 1.45; }
.friends-benefits > span:last-child { background: #e5edc5; }
.friends-benefits small { display: block; margin-bottom: 3px; font-weight: 900; }
.friends-benefits strong { color: var(--terra); font-size: 13px; }
.friends-sticker { position: absolute; right: -8px; top: 205px; width: 85px; height: 85px; border-radius: 50%; background: var(--terra); color: white; border: 3px solid var(--paper); display: grid; place-content: center; text-align: center; font-size: 9px; font-weight: 900; transform: rotate(9deg); }
.friends-schedule { margin-top: 38px; padding: 18px 14px; background: rgba(255,250,240,.72); border: 2px solid var(--deep); box-shadow: 5px 5px 0 rgba(84,55,45,.18); }
.friends-schedule-heading { display: flex; flex-direction: column; gap: 2px; margin-bottom: 13px; }
.friends-schedule-heading span { color: var(--terra); font-size: 8px; font-weight: 900; letter-spacing: .13em; }
.friends-schedule-heading strong { font: 700 19px var(--serif); }
.friends-schedule-grid { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid rgba(84,55,45,.3); border-left: 1px solid rgba(84,55,45,.3); }
.friends-schedule-grid > div { min-height: 50px; padding: 8px; border-right: 1px solid rgba(84,55,45,.3); border-bottom: 1px solid rgba(84,55,45,.3); display: flex; flex-direction: column; justify-content: center; }
.friends-schedule-grid time { color: var(--terra); font: 900 10px Arial, sans-serif; }
.friends-schedule-grid span { margin-top: 3px; font-size: 9px; font-weight: 800; line-height: 1.35; }
.friends-schedule > p { margin: 12px 0 0; font-size: 8px; line-height: 1.6; opacity: .75; }
.next-friend-hero { position: relative; margin-top: 40px; padding: 18px 16px 17px; background: var(--terra); color: white; border: 2px solid var(--deep); box-shadow: 7px 7px 0 var(--deep); overflow: hidden; transform: rotate(.4deg); }
.next-friend-date { position: relative; z-index: 2; width: 104px; min-height: 102px; padding: 12px 10px; background: var(--sun); color: var(--deep); border: 2px solid var(--deep); display: grid; grid-template-columns: 1fr auto; align-content: center; transform: rotate(-3deg); }
.next-friend-date small { grid-column: 1 / 3; font-size: 7px; font-weight: 900; letter-spacing: .1em; }
.next-friend-date time { font: 900 35px/.95 Arial, sans-serif; }
.next-friend-date > span { align-self: end; padding-bottom: 2px; font-size: 10px; font-weight: 900; }
.next-friend-art { position: absolute; z-index: 1; right: -16px; top: -8px; width: 210px; height: 210px; display: grid; place-items: center; }
.next-friend-art img { width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(4px 6px 0 rgba(84,55,45,.2)); }
.next-friend-copy { position: relative; z-index: 2; margin-top: 18px; }
.next-friend-copy > small { color: var(--sun); font-size: 8px; font-weight: 900; letter-spacing: .12em; }
.next-friend-copy h3 { margin: 5px 0 9px; font: 900 clamp(31px, 9vw, 48px)/.95 Arial, sans-serif; letter-spacing: -.055em; }
.next-friend-copy h3 span { display: block; max-width: 88%; overflow-wrap: anywhere; }
.next-friend-copy h3 em { display: block; color: var(--sun); font-style: normal; }
.next-friend-copy p { max-width: 390px; margin: 0; font-size: 10px; line-height: 1.65; }
.next-friend-copy a { min-height: 47px; margin-top: 15px; padding: 0 13px; background: var(--paper); color: var(--deep); border: 2px solid var(--deep); display: flex; align-items: center; justify-content: space-between; font-size: 11px; font-weight: 900; }
.next-friend-paw { position: absolute; right: -12px; top: 10px; color: rgba(255,255,255,.13); font-size: 108px; transform: rotate(18deg); }
.friends-parade { margin-top: 38px; }
.friends-parade-heading { display: grid; grid-template-columns: 1fr auto; align-items: end; margin-bottom: 13px; }
.friends-parade-heading > span { grid-column: 1 / 3; color: var(--terra); font-size: 8px; font-weight: 900; letter-spacing: .13em; }
.friends-parade-heading strong { margin-top: 2px; font: 700 19px var(--serif); }
.friends-parade-heading small { padding-bottom: 2px; font-size: 8px; font-weight: 900; }
.friends-parade-track { display: flex; gap: 12px; margin-inline: -20px; padding: 4px 20px 16px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.friends-parade-track::-webkit-scrollbar { display: none; }
.friend-breed-card { position: relative; flex: 0 0 72%; min-height: 224px; padding: 16px 14px; background: #f6a67b; color: var(--deep); border: 2px solid var(--deep); box-shadow: 5px 5px 0 rgba(84,55,45,.2); scroll-snap-align: start; overflow: hidden; }
.friend-breed-card.tone-1 { background: #b9d7c3; }
.friend-breed-card.tone-2 { background: #efb7c1; }
.friend-breed-card.tone-3 { background: #c7d98c; }
.friend-breed-card time { display: inline-block; padding: 6px 8px; background: var(--paper); border: 1px solid var(--deep); font: 900 14px Arial, sans-serif; }
.friend-breed-card time small { font-size: 7px; letter-spacing: .09em; }
.breed-paw { position: absolute; width: 72px; height: 72px; right: -5px; top: 8px; border-radius: 50%; background: rgba(255,250,240,.42); display: grid; place-items: center; color: var(--terra); font-size: 22px; }
.breed-card-art { position: absolute; right: -12px; top: 4px; width: 142px; height: 142px; object-fit: contain; filter: drop-shadow(3px 4px 0 rgba(84,55,45,.15)); }
.friend-breed-card h3 { position: relative; z-index: 2; margin: 32px 0 16px; font: 700 23px/1.25 var(--serif); overflow-wrap: anywhere; }
.friend-breed-card a { position: absolute; left: 14px; right: 14px; bottom: 14px; min-height: 42px; padding: 0 10px; background: var(--deep); color: white; display: flex; align-items: center; justify-content: space-between; font-size: 10px; font-weight: 900; }
.friends-parade > p { margin: 4px 0 0; font-size: 8px; line-height: 1.6; opacity: .75; }
.event-swipe-section { margin-top: 48px; }
.event-feature-hero { position: relative; height: 330px; border: 2px solid var(--deep); box-shadow: 7px 7px 0 var(--terra); overflow: hidden; background: var(--deep); }
.event-feature-hero > img { width: 100%; height: 100%; object-fit: cover; }
.event-feature-hero::after { content: ""; position: absolute; inset: 35% 0 0; background: linear-gradient(transparent,rgba(23,52,58,.92)); }
.event-feature-hero > div { position: absolute; z-index: 2; left: 17px; right: 17px; bottom: 17px; color: white; }
.event-feature-hero small { color: var(--sun); font-size: 9px; font-weight: 900; letter-spacing: .1em; }
.event-feature-hero h3 { margin: 6px 0 4px; font: 700 27px/1.2 var(--serif); }
.event-feature-hero p { margin: 0; font-size: 10px; font-weight: 900; }
.event-swipe-track { display: flex; gap: 12px; margin-inline: -20px; padding: 22px 20px 16px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.event-swipe-track::-webkit-scrollbar { display: none; }
.event-swipe-card { flex: 0 0 76%; background: var(--paper); border: 2px solid var(--deep); box-shadow: 5px 5px 0 rgba(84,55,45,.2); scroll-snap-align: start; overflow: hidden; }
.event-swipe-card > img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.event-swipe-card > div { padding: 13px 13px 15px; }
.event-swipe-card time { color: var(--terra); font: 900 11px Arial, sans-serif; }
.event-swipe-card h3 { margin: 5px 0 4px; font: 700 19px/1.3 var(--serif); }
.event-swipe-card p { margin: 0; font-size: 9px; font-weight: 900; }
.event-calendar { margin-top: 42px; border-top: 2px solid var(--deep); }
.calendar-row { display: grid; grid-template-columns: 82px 1fr; min-height: 108px; border-bottom: 2px solid var(--deep); }
.calendar-row time { padding: 12px 10px; border-right: 2px solid var(--deep); display: grid; grid-template-columns: 1fr auto; align-content: center; }
.calendar-row time span { font-size: 9px; font-weight: 900; letter-spacing: .12em; }
.calendar-row time strong { grid-row: 2; grid-column: 1 / 3; font: 900 35px/.95 Arial, sans-serif; }
.calendar-row time small { grid-row: 1; grid-column: 2; font-size: 8px; font-weight: 900; }
.calendar-row > div { position: relative; padding: 16px 12px; display: flex; flex-direction: column; justify-content: center; }
.season-label { position: absolute; right: 5px; top: 10px; min-width: 32px; padding: 5px 7px; border-radius: 99px; background: var(--sea); color: white; text-align: center; font-size: 9px; font-weight: 900; }
.calendar-row.autumn .season-label { background: #f37b23; }
.calendar-row.halloween .season-label { background: var(--deep); }
.calendar-row h3 { margin: 0 38px 5px 0; font: 700 16px/1.4 var(--serif); }
.calendar-row p { margin: 0; color: var(--terra); font-size: 9px; font-weight: 900; }
.event-actions { display: grid; gap: 10px; margin-top: 28px; }
.event-actions a { min-height: 52px; padding: 0 15px; border: 2px solid var(--deep); display: flex; align-items: center; justify-content: space-between; font-size: 11px; font-weight: 900; }
.event-actions a:first-child { background: var(--paper); }
.event-actions a:nth-child(2) { background: var(--sun); color: var(--deep); }
.event-actions a:last-child { background: var(--deep); color: white; }
.event-disclaimer { margin: 18px 0 0; font-size: 8px; line-height: 1.7; opacity: .72; }
.event-recap-card { margin-top: 30px; display: grid; grid-template-columns: 42% 1fr; min-height: 145px; overflow: hidden; background: var(--paper); border: 2px solid var(--deep); box-shadow: 6px 6px 0 var(--terra); }
.event-recap-card > img { width: 100%; height: 100%; object-fit: cover; }
.event-recap-card > span { padding: 17px 14px; display: flex; flex-direction: column; justify-content: center; }
.event-recap-card small { color: var(--terra); font-size: 8px; font-weight: 900; letter-spacing: .14em; }
.event-recap-card strong { margin: 7px 0 12px; font: 700 18px/1.35 var(--serif); }
.event-recap-card em { font-size: 9px; font-style: normal; font-weight: 900; }

.around-section { background: var(--olive-paper); }
.model-course-link { min-height: 54px; margin-top: 25px; padding: 15px 16px; background: var(--deep); color: white; display: flex; align-items: center; justify-content: space-between; gap: 14px; font-size: 10px; line-height: 1.5; font-weight: 900; box-shadow: 5px 5px 0 var(--terra); }
.model-course-link > span { flex: none; }
.activity-list { position: relative; margin-top: 42px; }
.activity-list::before { content: ""; position: absolute; z-index: 0; width: 4px; left: 32px; top: 22px; bottom: 48px; background: var(--terra); transform: rotate(1deg); }
.activity { display: grid; grid-template-columns: 68px 1fr; gap: 15px; position: relative; margin-bottom: 40px; }
.activity-pin { position: relative; z-index: 2; width: 64px; height: 64px; border-radius: 50%; border: 4px solid var(--olive-paper); background: var(--sea); color: white; display: grid; place-items: center; font: 700 23px var(--serif); }
.activity:nth-child(2) .activity-pin { background: var(--terra); }
.activity:nth-child(3) .activity-pin { background: var(--grass); }
.activity:nth-child(4) .activity-pin { background: var(--deep); }
.activity:nth-child(5) .activity-pin { background: var(--sea); }
.activity:nth-child(6) .activity-pin { background: var(--terra); }
.activity-when { margin: 0 0 3px !important; color: var(--terra); font-size: 9px !important; font-weight: 900; letter-spacing: .1em; }
.activity-content h3 { margin: 0 0 7px; font: 700 21px var(--serif); }
.activity-content > p { margin: 0; font-size: 12px; line-height: 1.7; }
.activity-photo { width: 100%; aspect-ratio: 4 / 3; margin-top: 13px; border: 4px solid var(--paper); overflow: hidden; transform: rotate(-1deg); box-shadow: 4px 4px 0 rgba(84,55,45,.14); }
.activity-photo img { width: 100%; height: 100%; object-fit: cover; }
.activity-meta { display: grid; grid-template-columns: 1fr 44px; align-items: center; margin-top: 8px; font-size: 9px; font-weight: 800; }
.activity-meta a { width: 44px; height: 44px; border-radius: 50%; background: var(--deep); color: white; display: grid; place-items: center; font-size: 16px; }
.model-course-itinerary { margin-top: 62px; padding-top: 38px; border-top: 3px solid var(--deep); }
.model-course-itinerary .eyebrow { color: var(--terra); }
.model-course-itinerary > h3 { margin: 10px 0 15px; font: 700 clamp(31px, 8vw, 48px)/1.3 var(--serif); letter-spacing: -.04em; }
.local-caution { margin: 25px 0 0; padding-top: 20px; border-top: 1px solid rgba(23,52,58,.3); font-size: 9px; line-height: 1.7; }

.stay-section { background: var(--terra); color: white; }
.section-heading.inverse .eyebrow { color: var(--sun); }
.stay-collage { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; margin-top: 32px; }
.stay-collage.single-story { grid-template-columns: 1fr; }
.stay-collage.single-story .postcard { transform: none; }
.food-story { margin-top: 68px; }
.postcard { padding: 8px 8px 18px; background: var(--paper); color: var(--ink); box-shadow: 6px 7px 0 var(--deep); transform: rotate(-1.5deg); }
.food-postcard { transform: rotate(2deg); margin-top: 25px; }
.postcard img { height: 190px; object-fit: cover; margin-bottom: 13px; }
.postcard h3 { margin: 5px 3px; font: 700 20px var(--serif); }
.postcard p { margin: 0 3px; font-size: 10px; line-height: 1.6; }
.postcard-index { margin-left: 3px; }
.feature-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 32px; }
.feature-tags span { padding: 8px 11px; border: 1px solid white; border-radius: 99px; font-size: 10px; font-weight: 800; }
.dinner-course { margin-top: 62px; }
.dinner-course-heading .eyebrow { color: var(--sun); }
.dinner-course-heading h3 { margin: 8px 0 12px; font: 700 clamp(29px, 7.8vw, 46px)/1.35 var(--serif); }
.dinner-course-heading > small { font-size: 9px; font-weight: 900; opacity: .8; }
.dinner-course-track { display: flex; gap: 15px; margin: 24px -20px 0; padding: 0 20px 17px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.dinner-course-track::-webkit-scrollbar { display: none; }
.dish-card { flex: 0 0 84%; overflow: hidden; background: var(--paper); color: var(--ink); border: 2px solid var(--deep); box-shadow: 6px 7px 0 var(--deep); scroll-snap-align: start; }
.dish-card > img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.dish-card > div { padding: 18px 16px 21px; }
.dish-card span { color: var(--terra); font-size: 8px; font-weight: 900; letter-spacing: .13em; }
.dish-card h4 { margin: 7px 0 8px; font: 700 20px/1.35 var(--serif); }
.dish-card p { margin: 0; font-size: 10px; line-height: 1.75; }
.dinner-course-note { margin: 12px 0 0; font-size: 8px; line-height: 1.7; opacity: .72; }
.room-guide { margin-top: 62px; }
.room-guide-heading h3 { margin: 8px 0 12px; font: 700 clamp(29px,7.8vw,46px)/1.35 var(--serif); }
.room-track { display: flex; gap: 15px; margin: 20px -20px 0; padding: 0 20px 18px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.room-track::-webkit-scrollbar { display: none; }
.room-card { flex: 0 0 84%; overflow: hidden; scroll-snap-align: start; background: var(--paper); color: var(--ink); border: 2px solid var(--deep); box-shadow: 6px 7px 0 var(--deep); }
.room-card > img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.room-card > div { padding: 17px 16px 20px; }
.room-card small { color: var(--terra); font-size: 9px; font-weight: 900; }
.room-card h4 { margin: 6px 0 8px; font: 700 20px var(--serif); }
.room-card p { margin: 0 0 14px; font-size: 10px; line-height: 1.7; }
.room-card a { display: flex; justify-content: space-between; padding-top: 11px; border-top: 1px solid rgba(84,55,45,.25); font-size: 10px; font-weight: 900; }
.stay-details { display: grid; gap: 18px; margin-top: 50px; }
.stay-details.single-detail { grid-template-columns: 1fr; }
.bath-detail { margin-bottom: 68px; }
.dog-course-detail { margin-top: 42px; }
.stay-details article { overflow: hidden; background: var(--paper); color: var(--ink); border: 2px solid var(--deep); box-shadow: 6px 7px 0 var(--deep); }
.stay-details img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.stay-details article > div { padding: 18px; }
.stay-details small { color: var(--terra); font-size: 8px; font-weight: 900; letter-spacing: .12em; }
.stay-details h3 { margin: 7px 0 8px; font: 700 21px/1.35 var(--serif); }
.stay-details p { margin: 0; font-size: 10px; line-height: 1.75; }
.lunch-detail img { object-position: center 45%; }
.lunch-detail .context-booking-link { margin-top: 18px; }
.swipe-controls { display: flex; align-items: center; gap: 8px; width: max-content; margin: 12px 0 4px auto; }
.swipe-controls button { width: 42px; height: 42px; border: 2px solid currentColor; border-radius: 50%; background: transparent; color: inherit; font-size: 18px; cursor: pointer; }
.swipe-controls span { font-size: 8px; font-weight: 900; letter-spacing: .12em; }

.voices-section { position: relative; padding: 75px 20px; overflow: hidden; background: var(--sea); color: white; }
.voices-section .eyebrow { color: var(--sun); }
.voices-track { display: flex; gap: 14px; margin: 32px -20px 0; padding: 0 20px 15px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.voices-track::-webkit-scrollbar { display: none; }
.voice-card { flex: 0 0 84%; min-height: 285px; margin: 0; padding: 25px 22px; display: flex; flex-direction: column; background: var(--paper); color: var(--ink); border: 2px solid var(--deep); box-shadow: 7px 7px 0 var(--sun); scroll-snap-align: start; transform: rotate(-1deg); }
.voice-card:nth-child(even) { transform: rotate(1deg); box-shadow-color: var(--terra); }
.voice-card > span { color: var(--terra); font-size: 8px; font-weight: 900; letter-spacing: .13em; }
.voice-card > p { margin: 20px 0; font: 700 18px/1.75 var(--serif); }
.voice-card > footer { order: initial; margin-top: auto; padding: 0; background: transparent; color: var(--ink); font-size: 9px; font-weight: 800; opacity: .62; }
.voices-note { margin: 17px 0 0; font-size: 8px; line-height: 1.7; opacity: .74; }

.comfort-section, .faq-section { padding: 75px 20px; }
.comfort-section .eyebrow, .faq-section .eyebrow { color: var(--terra); }
.day-plan { list-style: none; padding: 0; margin: 25px 0 0; }
.day-plan li { display: grid; grid-template-columns: 68px 1fr; gap: 15px; padding: 19px 0; border-bottom: 1px solid rgba(23,52,58,.25); }
.day-plan li > span { color: var(--terra); font: 700 20px var(--serif); }
.day-plan strong { font: 700 15px var(--serif); }
.day-plan p { margin: 5px 0 0; font-size: 11px; line-height: 1.65; }
.comfort-section { position: relative; background: var(--sun); }
.comfort-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 30px; }
.comfort-card { min-height: 185px; padding: 18px 14px; background: var(--paper); border: 2px solid var(--deep); box-shadow: 4px 5px 0 var(--terra); }
.comfort-card:nth-child(even) { transform: translateY(10px) rotate(1deg); }
.comfort-icon { width: 47px; height: 47px; padding: 5px; border-radius: 50%; background: var(--sea); color: white; display: grid; place-items: center; font: 900 10px Arial, sans-serif; letter-spacing: -.02em; }
.comfort-card:nth-child(3n+2) .comfort-icon { background: var(--terra); }
.comfort-card:nth-child(3n) .comfort-icon { background: var(--grass); }
.comfort-card h3 { margin: 13px 0 7px; font: 700 15px/1.35 var(--serif); }
.comfort-card p { margin: 0; font-size: 10px; line-height: 1.7; }
.comfort-note { margin: 32px 0 0; padding-top: 16px; border-top: 1px solid rgba(84,55,45,.35); font-size: 9px; line-height: 1.7; }
.access-section { position: relative; padding: 75px 20px; background: var(--olive-paper); }
.access-section .eyebrow { color: var(--terra); }
.access-grid { display: grid; gap: 12px; margin-top: 30px; }
.access-grid article { padding: 20px 18px; border: 2px solid var(--deep); background: var(--paper); box-shadow: 5px 5px 0 var(--terra); }
.access-grid span { color: var(--terra); font-size: 8px; font-weight: 900; letter-spacing: .13em; }
.access-grid h3 { margin: 7px 0 8px; font: 700 18px var(--serif); }
.access-grid p { margin: 0; font-size: 11px; line-height: 1.7; }
.access-map { width: 100%; aspect-ratio: 4 / 3; margin-top: 20px; overflow: hidden; border: 3px solid var(--deep); box-shadow: 6px 6px 0 var(--terra); background: var(--paper); }
.access-map iframe { width: 100%; height: 100%; border: 0; display: block; }
.access-map-button { min-height: 54px; margin-top: 18px; padding: 0 16px; display: flex; align-items: center; justify-content: space-between; background: var(--deep); color: white; font-size: 11px; font-weight: 900; }
.faq-section { background: var(--paper); }
.faq-list details { border-top: 1px solid rgba(23,52,58,.28); }
.faq-list details:last-child { border-bottom: 1px solid rgba(23,52,58,.28); }
.faq-list summary { list-style: none; min-height: 62px; padding: 14px 2px; display: flex; align-items: center; justify-content: space-between; gap: 15px; cursor: pointer; font-size: 13px; font-weight: 800; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary span { color: var(--terra); font-size: 18px; transition: transform .2s; }
.faq-list details[open] summary span { transform: rotate(45deg); }
.faq-list details p { margin: 0; padding: 0 4px 20px; font-size: 12px; line-height: 1.75; }
.line-section { position: relative; padding: 75px 20px; background: #06c755; color: #17342f; }
.line-section .eyebrow { color: white; }
.line-copy > p:last-of-type { margin: 0; max-width: 590px; font-size: 12px; line-height: 1.8; }
.line-benefits { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 20px; }
.line-benefits span { padding: 8px 10px; border: 1px solid #17342f; border-radius: 99px; background: rgba(255,255,255,.22); font-size: 9px; font-weight: 900; }
.line-qr-card { display: block; max-width: 310px; margin: 32px auto 0; padding: 16px 16px 20px; background: var(--paper); border: 2px solid var(--deep); box-shadow: 7px 7px 0 var(--deep); text-align: center; transform: rotate(1deg); }
.line-qr-card > span { display: inline-block; margin-bottom: 10px; padding: 5px 8px; background: var(--sun); font-size: 8px; font-weight: 900; letter-spacing: .14em; }
.line-qr-card img { aspect-ratio: 1; object-fit: contain; background: white; }
.line-qr-card strong { display: block; margin-top: 15px; font: 700 19px var(--serif); }
.line-qr-card small { display: block; margin-top: 7px; font-size: 9px; line-height: 1.6; color: var(--ink); opacity: .72; }
.line-qr-image { display: block; }
.line-direct-button { min-height: 48px; margin-top: 14px; padding: 0 13px; background: #06c755; color: white; border: 2px solid var(--deep); display: flex; align-items: center; justify-content: space-between; font-size: 11px; font-weight: 900; }

.booking-section { padding: 78px 20px 105px; background: var(--deep); color: white; text-align: center; }
.booking-section .eyebrow { color: var(--sun); }
.offer-circle { width: 154px; height: 154px; margin: 28px auto; border-radius: 50%; background: var(--sun); color: var(--deep); border: 3px dashed var(--deep); transform: rotate(-5deg); display: flex; flex-direction: column; align-items: center; justify-content: center; }
.offer-circle span, .offer-circle small { font-size: 10px; font-weight: 900; }
.offer-circle strong { font: 900 29px Arial, sans-serif; margin: 4px 0; }
.primary-book { min-height: 58px; max-width: 430px; margin: 0 auto; padding: 0 18px; background: var(--sun); color: var(--deep); border: 2px solid var(--deep); box-shadow: 6px 6px 0 var(--terra); display: flex; align-items: center; justify-content: space-between; font-size: 13px; font-weight: 900; }
.next-weekend-label { margin: -2px auto 25px; font-size: 9px; font-weight: 900; letter-spacing: .12em; }
.next-weekend-label strong { display: block; margin-top: 5px; color: var(--sun); font: 900 17px Arial, sans-serif; letter-spacing: 0; }
.booking-section > small { display: block; margin-top: 18px; opacity: .7; font-size: 9px; }
.booking-options { display: grid; gap: 9px; max-width: 430px; margin: 25px auto 0; text-align: left; }
.booking-options a { min-height: 48px; padding: 0 14px; border: 1px solid rgba(255,255,255,.55); display: flex; align-items: center; justify-content: space-between; font-size: 10px; font-weight: 900; }
footer { padding: 45px 20px 105px; background: #40291f; color: white; }
footer p { margin: 7px 0; font-size: 10px; opacity: .72; }
footer > small { display: block; margin-top: 24px; opacity: .45; }
.facility-summary { max-width: 820px; margin-top: 30px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.24); }
.facility-summary h2 { margin: 0 0 12px; color: var(--sun); font: 700 14px var(--serif); }
.facility-summary dl { margin: 0; }
.facility-summary dl > div { display: grid; grid-template-columns: 110px 1fr; gap: 12px; padding: 8px 0; border-top: 1px solid rgba(255,255,255,.12); font-size: 10px; line-height: 1.6; }
.facility-summary dt { opacity: .58; }
.facility-summary dd { margin: 0; opacity: .86; }
.facility-summary a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.footer-legal { display: flex; flex-wrap: wrap; gap: 15px; margin-top: 24px; font-size: 10px; opacity: .7; }
.footer-legal a { text-decoration: underline; text-underline-offset: 3px; }

.sticky-booking { position: fixed; z-index: 50; left: 50%; bottom: 0; transform: translateX(-50%); width: min(100%,1180px); min-height: 76px; padding: 9px 11px calc(9px + env(safe-area-inset-bottom)) 17px; background: rgba(255,250,240,.95); border-top: 2px solid var(--deep); backdrop-filter: blur(9px); display: flex; gap: 12px; align-items: center; }
.sticky-booking > div { display: flex; flex-direction: column; min-width: 86px; }
.sticky-booking small { font-size: 9px; }
.sticky-booking strong { color: var(--terra); font: 800 15px var(--serif); }
.sticky-booking a { flex: 1; min-height: 54px; padding: 0 15px; background: var(--sun); color: var(--deep); border: 2px solid var(--deep); display: flex; align-items: center; justify-content: space-between; font-size: 12px; font-weight: 900; }
.sticky-booking a > span { display: flex; flex-direction: column; gap: 2px; }
.sticky-booking a small { font-size: 8px; font-weight: 800; opacity: .7; }
.back-to-top { position: fixed; z-index: 49; right: max(14px,calc((100vw - 1180px)/2 + 14px)); bottom: calc(92px + env(safe-area-inset-bottom)); width: 42px; height: 42px; border: 2px solid var(--deep); border-radius: 50%; display: grid; place-items: center; background: var(--paper); color: var(--deep); box-shadow: 3px 3px 0 var(--terra); font-size: 18px; font-weight: 900; }

a:focus-visible, summary:focus-visible { outline: 4px solid var(--sun); outline-offset: 3px; }

@media (min-width: 760px) {
  main { margin-top: 24px; border-radius: 28px 28px 0 0; }
  .site-header { height: 78px; padding: 10px 48px; grid-template-columns: 1fr auto; gap: 38px; }
  .brand-logo-horizontal { width: 145px; height: 34px; }
  .header-brand > span { font-size: 13px; }
  .section-nav { justify-content: center; padding: 9px 24px; }
  .collage-hero { min-height: 810px; padding: 52px 70px; }
  .collage-hero h1 { max-width: 620px; }
  .hero-photo { width: 58%; height: 370px; }
  .hero-mini { width: 210px; height: 230px; right: 11%; top: 350px; }
  .hero-intro { position: absolute; right: 65px; bottom: 88px; width: 35%; }
  .hero-book { position: absolute; left: 70px; bottom: 70px; width: 360px; }
  .event-section, .upcoming-section, .around-section, .stay-section, .voices-section, .comfort-section, .access-section, .faq-section, .line-section, .booking-section { padding: 110px 8%; }
  .room-card { flex-basis: 46%; }
  .stay-details, .access-grid { grid-template-columns: 1fr 1fr; }
  .access-map { aspect-ratio: 16 / 7; }
  .booking-options { grid-template-columns: repeat(3,1fr); max-width: 760px; }
  footer { padding-right: 8%; padding-left: 8%; }
  .facility-summary dl > div { grid-template-columns: 180px 1fr; font-size: 12px; }
  .event-recap-card { max-width: 900px; min-height: 260px; margin: 45px auto 0; grid-template-columns: 1fr 1fr; }
  .event-recap-card > span { padding: 38px; }
  .event-recap-card strong { font-size: 28px; }
  .event-list { grid-template-columns: repeat(3,1fr); gap: 20px; }
  .event-piece { display: block; border: 0; padding: 0; }
  .event-piece:last-child { border: 0; }
  .event-image { height: 250px; margin-bottom: 22px; }
  .friends-weekend-card { display: grid; grid-template-columns: 1.15fr .85fr; max-width: 860px; margin: 45px auto 0; padding: 10px; }
  .friends-weekend-photo { height: 390px; }
  .friends-weekend-copy { padding: 40px 30px; align-self: center; }
  .friends-weekend-copy h3 { font-size: 48px; }
  .friends-sticker { top: auto; right: 37%; bottom: 22px; width: 105px; height: 105px; }
  .event-calendar { display: grid; grid-template-columns: 1fr 1fr; gap: 0 32px; max-width: 900px; margin: 60px auto 0; border-top: 0; }
  .calendar-row { border-top: 2px solid var(--deep); }
  .event-actions { grid-template-columns: 1fr 1fr; max-width: 900px; margin: 35px auto 0; }
  .activity-list { display: grid; grid-template-columns: 1fr 1fr; gap: 54px 70px; }
  .activity-list::before { display: none; }
  .activity { grid-template-columns: 72px 1fr; margin: 0; }
  .stay-collage { max-width: 820px; margin: 45px auto 0; gap: 36px; }
  .stay-collage.single-story, .stay-details.single-detail { max-width: 900px; margin-right: auto; margin-left: auto; }
  .food-story { margin-top: 90px !important; }
  .postcard img { height: 340px; }
  .dinner-course-track { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; margin: 35px 0 0; padding: 0 0 17px; overflow: visible; }
  .dish-card { min-width: 0; }
  .voices-track { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; max-width: 1060px; margin: 45px auto 0; padding: 0 0 15px; overflow: visible; }
  .voice-card { min-height: 330px; }
  .day-plan, .faq-list { max-width: 760px; }
  .comfort-grid { grid-template-columns: repeat(3,1fr); gap: 25px; }
  .comfort-card { min-height: 210px; padding: 24px 20px; }
  .comfort-card h3 { font-size: 18px; }
  .comfort-card p { font-size: 11px; }
  .line-section { display: grid; grid-template-columns: 1.2fr .8fr; gap: 70px; align-items: center; }
  .line-qr-card { margin: 0 auto; }
}

@media (prefers-reduced-motion: no-preference) {
  .event-stamp { animation: float-stamp 4s ease-in-out infinite; }
  .event-piece, .postcard, .activity-photo { transition: transform .3s ease; }
  .event-piece:hover, .postcard:hover { transform: translateY(-4px); }
  @keyframes float-stamp { 50% { transform: rotate(3deg) translateY(-7px); } }
}

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* Private staying-guest guide */
.guest-guide-page { background: var(--paper); padding-bottom: 78px; }
.guide-header { height: 66px; padding: 8px 18px; display: flex; align-items: center; justify-content: space-between; background: var(--paper); border-bottom: 2px solid var(--deep); }
.private-badge { padding: 7px 9px; background: var(--sun); border: 1px solid var(--deep); font-size: 8px; font-weight: 900; letter-spacing: .08em; transform: rotate(1deg); }
.guide-hero { min-height: 700px; padding: 34px 20px 45px; background: var(--sea); color: white; position: relative; overflow: hidden; }
.guide-hero .eyebrow { position: relative; z-index: 2; }
.guide-hero h1 { position: relative; z-index: 2; margin: 13px 0 15px; font: 700 clamp(39px, 11vw, 68px)/1.22 var(--serif); letter-spacing: -.05em; }
.guide-hero h1 span { color: var(--sun); }
.guide-lead { position: relative; z-index: 2; margin: 0; font-size: 12px; line-height: 1.8; }
.guide-sun { position: absolute; width: 175px; height: 175px; right: -52px; top: 50px; border-radius: 50%; background: var(--sun); }
.guide-hero-photo { height: 250px; margin: 34px 0 26px; transform: rotate(-2deg); }
.guide-hero-photo img { height: 100%; object-fit: cover; }
.welcome-stamp { position: absolute; right: 12px; top: 330px; width: 96px; height: 96px; border-radius: 50%; border: 2px solid white; background: var(--terra); display: grid; place-content: center; text-align: center; font-size: 11px; line-height: 1.15; font-weight: 900; letter-spacing: .08em; transform: rotate(7deg); }
.front-call { min-height: 68px; padding: 10px 14px; background: var(--sun); color: var(--deep); border: 2px solid var(--deep); box-shadow: 5px 5px 0 var(--terra); display: grid; grid-template-columns: 1fr auto; align-items: center; }
.front-call small { font-size: 8px; letter-spacing: .15em; font-weight: 900; }
.front-call strong { grid-row: 2; font: 900 20px Arial, sans-serif; }
.front-call span { grid-row: 1 / 3; grid-column: 2; font-size: 10px; font-weight: 900; }
.guide-jump { position: sticky; z-index: 20; top: 0; display: grid; grid-template-columns: repeat(4,1fr); background: rgba(255,249,234,.96); border-bottom: 2px solid var(--deep); backdrop-filter: blur(9px); }
.guide-jump a { min-height: 48px; padding: 8px 3px; display: grid; place-items: center; text-align: center; border-right: 1px solid rgba(84,55,45,.25); font-size: 9px; font-weight: 900; }
.guide-section { padding: 74px 20px; position: relative; scroll-margin-top: 54px; }
.guide-section-title .eyebrow { color: var(--terra); }
.guide-section-title h2 { margin: 9px 0 14px; font: 700 clamp(32px, 9vw, 52px)/1.3 var(--serif); letter-spacing: -.04em; }
.guide-section-title > p:last-child { margin: 0; max-width: 600px; font-size: 12px; line-height: 1.8; }
.guide-quick { background: var(--cream); }
.quick-grid { display: grid; gap: 14px; margin-top: 30px; }
.quick-card { padding: 20px; border: 2px solid var(--deep); box-shadow: 5px 5px 0 var(--deep); }
.quick-card.coral { background: var(--terra); color: white; }
.quick-card.yellow { background: var(--sun); }
.quick-card.olive { background: var(--grass); color: white; }
.quick-card > span { display: block; font-size: 8px; font-weight: 900; letter-spacing: .16em; }
.quick-card > strong { display: block; margin: 7px 0 4px; font: 900 30px Arial, sans-serif; }
.quick-card h3 { margin: 0 0 8px; font: 700 19px var(--serif); }
.quick-card p { margin: 0; font-size: 10px; line-height: 1.65; }
.note-ticket { margin-top: 20px; padding: 16px 18px; border: 2px dashed var(--terra); background: var(--paper); display: grid; grid-template-columns: auto 1fr; gap: 3px 12px; align-items: center; }
.note-ticket strong { font-size: 9px; letter-spacing: .1em; }
.note-ticket span { color: var(--terra); font: 900 19px Arial, sans-serif; }
.note-ticket p { grid-column: 1 / 3; margin: 5px 0 0; font-size: 10px; }
.wifi-card { position: relative; margin-top: 25px; padding: 22px 18px 18px; overflow: hidden; background: var(--deep); color: white; border: 2px solid var(--deep); box-shadow: 6px 6px 0 var(--terra); }
.wifi-heading { padding-right: 75px; }
.wifi-heading small { color: var(--sun); font-size: 8px; font-weight: 900; letter-spacing: .16em; }
.wifi-heading h3 { margin: 5px 0 6px; font: 700 22px var(--serif); }
.wifi-heading p { margin: 0; font-size: 10px; line-height: 1.65; opacity: .82; }
.wifi-icon { position: absolute; top: 18px; right: 18px; width: 62px; height: 50px; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 5px; }
.wifi-icon i { display: block; height: 9px; border: 4px solid var(--sun); border-width: 4px 4px 0; border-radius: 50% 50% 0 0; }
.wifi-icon i:nth-child(1) { width: 54px; }
.wifi-icon i:nth-child(2) { width: 34px; }
.wifi-icon i:nth-child(3) { width: 10px; height: 10px; border: 0; border-radius: 50%; background: var(--sun); }
.wifi-card dl { margin: 22px 0 0; display: grid; gap: 8px; }
.wifi-card dl div { padding: 12px; background: var(--paper); color: var(--deep); }
.wifi-card dt { margin-bottom: 4px; color: var(--terra); font-size: 7px; font-weight: 900; letter-spacing: .14em; }
.wifi-card dd { margin: 0; overflow-wrap: anywhere; font: 700 12px var(--sans); }
.guest-reservation-links { display: grid; gap: 12px; margin-top: 25px; }
.guest-reservation-links a { position: relative; min-height: 128px; padding: 20px 62px 20px 18px; border: 2px solid var(--deep); box-shadow: 5px 5px 0 var(--deep); display: flex; flex-direction: column; justify-content: center; }
.guest-reservation-links .event-link { background: var(--terra); color: white; }
.guest-reservation-links .lunch-link { background: var(--sun); color: var(--deep); }
.guest-reservation-links small { margin-bottom: 7px; font-size: 7px; font-weight: 900; letter-spacing: .16em; }
.guest-reservation-links strong { font: 700 18px var(--serif); }
.guest-reservation-links span { margin-top: 6px; font-size: 9px; line-height: 1.5; }
.guest-reservation-links b { position: absolute; right: 16px; top: 50%; width: 40px; height: 40px; margin-top: -20px; border-radius: 50%; background: var(--deep); color: white; display: grid; place-items: center; font-size: 15px; }
.guest-reservation-links .event-link b { background: var(--sun); color: var(--deep); }
.dog-section { background: var(--sun); }
.rule-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 11px; margin-top: 30px; }
.rule-card { min-height: 190px; padding: 15px 13px; background: var(--paper); border: 2px solid var(--deep); }
.rule-card:nth-child(even) { transform: translateY(8px); }
.rule-card > span { width: 36px; height: 36px; border-radius: 50%; background: var(--sea); color: white; display: grid; place-items: center; font: 900 11px Arial, sans-serif; }
.rule-card:nth-child(3n+2) > span { background: var(--terra); }
.rule-card:nth-child(3n) > span { background: var(--grass); }
.rule-card h3 { margin: 12px 0 7px; font: 700 14px/1.4 var(--serif); }
.rule-card p { margin: 0; font-size: 9px; line-height: 1.7; }
.dog-food-banner { margin-top: 40px; padding: 8px 8px 18px; background: var(--paper); border: 2px solid var(--deep); box-shadow: 6px 6px 0 var(--terra); transform: rotate(-1deg); }
.dog-food-banner img { height: 190px; object-fit: cover; }
.dog-food-banner div { padding: 15px 8px 0; }
.dog-food-banner small { color: var(--terra); font-size: 8px; font-weight: 900; letter-spacing: .13em; }
.dog-food-banner h3 { margin: 5px 0 8px; font: 700 21px var(--serif); }
.dog-food-banner p { margin: 0; font-size: 10px; line-height: 1.7; }
.hotel-section { background: var(--paper); }
.info-list { margin-top: 28px; border-bottom: 1px solid rgba(84,55,45,.3); }
.info-list details, .channel-details, .terms-details { border-top: 1px solid rgba(84,55,45,.3); }
.info-list summary, .channel-details summary, .terms-details summary, .map-details summary { min-height: 62px; padding: 14px 3px; list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 15px; }
.info-list summary::-webkit-details-marker, .channel-details summary::-webkit-details-marker, .terms-details summary::-webkit-details-marker, .map-details summary::-webkit-details-marker { display: none; }
.info-list summary strong { font: 700 15px var(--serif); }
.info-list summary span, .channel-details summary span, .terms-details summary span, .map-details summary span { color: var(--terra); font-size: 18px; }
.info-list details[open] summary span, .channel-details[open] summary span, .terms-details[open] summary span, .map-details[open] summary span { transform: rotate(45deg); }
.info-list details p { margin: 0; padding: 0 3px 19px; font-size: 11px; line-height: 1.75; }
.run-section { background: var(--terra); color: white; }
.guide-section-title.inverse .eyebrow { color: var(--sun); }
.run-photo { position: relative; height: 245px; margin-top: 30px; padding: 6px; background: var(--paper); box-shadow: 7px 7px 0 var(--deep); transform: rotate(2deg); }
.run-photo img { height: 100%; object-fit: cover; }
.run-photo span { position: absolute; left: -8px; bottom: 16px; padding: 7px 10px; background: var(--sun); color: var(--deep); font-size: 9px; font-weight: 900; letter-spacing: .12em; }
.run-rule-list { list-style: none; padding: 0; margin: 34px 0 0; }
.run-rule-list li { position: relative; padding: 14px 5px 14px 31px; border-bottom: 1px solid rgba(255,255,255,.35); font-size: 11px; line-height: 1.6; }
.run-rule-list li::before { content: "✓"; position: absolute; left: 3px; top: 14px; width: 19px; height: 19px; border-radius: 50%; background: var(--sun); color: var(--deep); display: grid; place-items: center; font-size: 10px; font-weight: 900; }
.run-caution { margin: 22px 0 0; padding: 14px; border: 1px solid white; font-size: 9px; line-height: 1.7; }
.local-guide-section { background: var(--olive-paper); }
.local-guide-grid { display: grid; gap: 32px; margin-top: 32px; }
.local-guide-card > a { display: block; background: var(--paper); border: 2px solid var(--deep); box-shadow: 6px 6px 0 rgba(84,55,45,.2); }
.local-guide-card:nth-child(even) > a { transform: rotate(1deg); }
.local-guide-photo { position: relative; height: 210px; overflow: hidden; }
.local-guide-photo img { height: 100%; object-fit: cover; }
.local-guide-photo > span { position: absolute; top: 10px; left: 10px; width: 44px; height: 44px; border-radius: 50%; background: var(--terra); color: white; display: grid; place-items: center; border: 3px solid var(--paper); font: 900 13px Arial, sans-serif; }
.local-guide-card:nth-child(2) .local-guide-photo > span { background: var(--sea); }
.local-guide-card:nth-child(3) .local-guide-photo > span { background: var(--grass); }
.local-guide-card:nth-child(4) .local-guide-photo > span { background: var(--deep); }
.local-guide-copy { padding: 18px 16px; }
.local-guide-copy > small { color: var(--terra); font-size: 7px; font-weight: 900; letter-spacing: .13em; }
.local-guide-copy h3 { margin: 5px 0 8px; font: 700 19px var(--serif); }
.local-guide-copy > p { margin: 0; font-size: 10px; line-height: 1.7; }
.local-guide-copy > div { display: grid; grid-template-columns: 1fr 38px; gap: 8px; align-items: center; margin-top: 14px; padding-top: 11px; border-top: 1px solid rgba(84,55,45,.24); }
.local-guide-copy > div span { font-size: 8px; font-weight: 800; }
.local-guide-copy b { width: 38px; height: 38px; border-radius: 50%; background: var(--deep); color: white; display: grid; place-items: center; }
.local-guide-note { margin: 28px 0 0; padding-top: 16px; border-top: 1px solid rgba(84,55,45,.3); font-size: 9px; line-height: 1.7; }
.safety-section { background: var(--cream); }
.emergency-cards { display: grid; gap: 12px; margin-top: 30px; }
.emergency-cards article { padding: 19px 17px; border: 2px solid var(--deep); background: var(--paper); }
.emergency-cards article:first-child { box-shadow: 5px 5px 0 var(--terra); }
.emergency-cards article:last-child { box-shadow: 5px 5px 0 var(--grass); }
.emergency-cards span { color: var(--terra); font-size: 8px; font-weight: 900; letter-spacing: .15em; }
.emergency-cards h3 { margin: 6px 0 8px; font: 700 18px var(--serif); }
.emergency-cards p { margin: 0; font-size: 10px; line-height: 1.75; }
.map-details { margin-top: 18px; border: 2px solid var(--deep); background: var(--paper); }
.map-details summary { padding: 14px; font-size: 12px; font-weight: 900; }
.map-details img { border-top: 1px solid rgba(84,55,45,.3); }
.emergency-call { margin-top: 22px; min-height: 67px; padding: 10px 16px; background: var(--deep); color: white; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.emergency-call span { font-size: 10px; font-weight: 900; }
.emergency-call strong { color: var(--sun); font: 900 18px Arial, sans-serif; }
.small-info-section { background: var(--paper); }
.channel-details, .terms-details { border-bottom: 1px solid rgba(84,55,45,.3); }
.channel-details summary, .terms-details summary { font-size: 13px; font-weight: 900; }
.channel-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; padding: 0 3px 20px; }
.channel-grid span { padding: 10px; background: var(--cream); font-size: 10px; }
.terms-details > p { margin: 0; padding: 0 3px 18px; font-size: 10px; line-height: 1.7; }
.terms-details img { margin-bottom: 12px; border: 1px solid rgba(84,55,45,.25); }
.guide-footer { padding: 55px 20px 120px; background: var(--deep); color: white; }
.guide-footer p { margin: 22px 0 6px; font-size: 11px; }
.guide-footer > a { color: var(--sun); font: 900 21px Arial, sans-serif; }
.guide-footer > small { display: block; margin-top: 28px; opacity: .55; font-size: 9px; }
.guide-sticky { position: fixed; z-index: 50; left: 50%; bottom: 0; transform: translateX(-50%); width: min(100%,1180px); min-height: 70px; padding-bottom: env(safe-area-inset-bottom); display: grid; grid-template-columns: repeat(4,1fr); background: rgba(255,249,234,.96); border-top: 2px solid var(--deep); backdrop-filter: blur(9px); }
.guide-sticky a { padding: 8px 2px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; border-right: 1px solid rgba(84,55,45,.22); font-size: 8px; font-weight: 900; }
.guide-sticky a span { color: var(--terra); font: 900 9px Arial, sans-serif; letter-spacing: .08em; }
.guide-sticky a.call { background: var(--sun); }

@media (min-width: 760px) {
  .guide-header { height: 78px; padding: 10px 48px; }
  .guide-hero { min-height: 760px; padding: 60px 8%; }
  .guide-hero h1 { max-width: 660px; }
  .guide-lead { font-size: 14px; }
  .guide-hero-photo { width: 58%; height: 360px; }
  .welcome-stamp { right: 10%; top: 330px; width: 125px; height: 125px; }
  .front-call { position: absolute; width: 320px; right: 8%; bottom: 75px; }
  .guide-jump { padding: 0 20%; }
  .guide-section { padding: 105px 8%; }
  .quick-grid { grid-template-columns: repeat(3,1fr); gap: 20px; }
  .quick-card { min-height: 255px; }
  .wifi-card { display: grid; grid-template-columns: .8fr 1.2fr; gap: 25px; align-items: end; }
  .wifi-card dl { grid-template-columns: 1fr 1fr; margin: 0; }
  .guest-reservation-links { grid-template-columns: 1fr 1fr; gap: 20px; }
  .rule-grid { grid-template-columns: repeat(3,1fr); gap: 20px; }
  .rule-card { min-height: 225px; padding: 22px 18px; }
  .dog-food-banner { display: grid; grid-template-columns: 1.2fr 1fr; max-width: 850px; margin: 55px auto 0; }
  .dog-food-banner img { height: 290px; }
  .dog-food-banner div { padding: 30px 24px; align-self: center; }
  .info-list, .small-info-section > details { max-width: 780px; }
  .run-photo { height: 400px; max-width: 800px; }
  .run-rule-list { display: grid; grid-template-columns: 1fr 1fr; gap: 0 35px; }
  .local-guide-grid { grid-template-columns: 1fr 1fr; gap: 35px; }
  .local-guide-photo { height: 265px; }
  .emergency-cards { grid-template-columns: 1fr 1fr; gap: 22px; }
  .map-details { max-width: 850px; }
}
