/* Shared responsive contract. Content growth and zoom always win over one-screen rhythm. */
:root { --type-body: 1rem; --type-note: .875rem; --type-title: clamp(1.875rem, 3.3vw, 3.25rem); --chapter-space: clamp(32px, 5svh, 64px); }
html { -webkit-text-size-adjust: 100%; scroll-padding-block: 24px; }
body { font-size: var(--type-body); }
body :is(h1,h2,h3) { text-wrap: balance; overflow-wrap: anywhere; }
body :is(p,li,dd,a,label) { overflow-wrap: anywhere; }
body :is(button,input,select,textarea) { font-size: max(1rem, 16px); touch-action: manipulation; }
body :is(button,a,summary):focus-visible { outline: 3px solid #bd8852; outline-offset: 4px; }
body :is(img,svg) { max-width: 100%; }
body :is(main,section,article,figure,fieldset) { min-width: 0; }
body section[id] { scroll-margin-block-start: 24px; }
body .public-site h2 { font-size: var(--type-title); line-height: 1.45; }
body .public-site .luxury-booking .editorial-index.light { color: #697254; }
body .public-site :is(.room-photo-note,.pet-diary-note,.moments-note,.fine-print,.inquiry-hint,.field-error,.room-photo-detail a,.room-photo-card figcaption p) { font-size: var(--type-note); line-height: 1.75; }
body .public-site :is(.hero-copy>p,.manifesto-body p,.experience-copy>p,.journal-entry>p,.room-photo-detail p) { font-size: var(--type-body); line-height: 1.8; }
body .garden-walk .stroll-path { --friend-size: 94px; height: 126px; }
body .garden-walk .stroll-lane { top: 28px; }
body .garden-walk .stroll-toggle { font-size: .875rem; }
body .garden-companion summary svg { width: 112px; }
body .garden-companion summary span, body .garden-companion p { font-size: .875rem; }
body .animal-character { color: #3b4939; filter: drop-shadow(0 3px 0 #fff8e7); }
body .animal-character .mascot-highlight { stroke: none; }
@media (min-width: 1024px) {
  body .public-site :is(.manifesto,.garden-journal,.pet-diary,.environment-preview,.rooms-editorial,.visit-guide,.luxury-booking), body .public-site #gatherings { min-height: 100svh; height: auto; box-sizing: border-box; padding-block: var(--chapter-space); align-content: center; }
  body .public-site .hero-luxury { min-height: 100svh; height: auto; }
  body .public-site .journal-photo img { height: clamp(180px,30svh,340px); }
  body .public-site .journal-spread { padding-block: 16px; }
  body .public-site .journal-heading h2 { margin-block: 12px; }
  body .public-site .journal-masthead, body .public-site .garden-colophon { padding-block: 8px; }
  body .public-site .pet-diary-grid img { height: clamp(180px,32svh,330px); }
  body .public-site .room-photo-card img { max-height: 30svh; }
  body .public-site .room-photo-card figcaption { padding: 18px; }
  body .public-site .room-photo-card h3 { font-size: clamp(28px,2.5vw,36px); }
  body .public-site .room-photo-note { margin-block: 0; }
  body .public-site :is(.garden-journal,.pet-diary,.rooms-editorial) { padding-block: 20px; }
  body .public-site .pet-diary-grid img { height: clamp(180px,28svh,300px); }
  body .public-site #gatherings figure img { max-height: 48svh !important; }
  body .intro, body .section { min-height: 100svh; padding-block: var(--chapter-space); align-content: center; }
  body .intro { min-height: calc(100svh - 110px); }
  body .invitation { min-height: 100svh; display: flex; flex-direction: column; align-items: center; justify-content: center; }
  body .intro img { max-height: 65svh; }
  body .story img { max-height: 60svh; }
  body .people { grid-template-columns: repeat(5,minmax(0,1fr)); gap: 12px; margin-block: 20px; }
  body .people article { padding: 16px; }
  body .people article h3 { font-size: 22px; }
  body .people article p { font-size: 15px; line-height: 1.75; }
  body .people .support-team { grid-column: auto; display: block; padding: 16px; }
  body .people .initial { width: 48px; height: 48px; }
  body .people h3 small { display: block; }
  body .people .support-team .eyebrow { margin-top: 12px; }
  body :is(#people,#press) { padding-block: 24px; }
  body :is(#people,#press) h2 { margin-block: 12px; }
  body :is(#people,#press) .section-lead { font-size: 17px; margin-block: 12px; }
  body .section .press-grid { margin-block: 24px; }
  body .press-card>img { max-height: 18svh; }
  body .press-grid .press-card>div { padding: 18px; }
  body .press-card h3 { font-size: 20px; margin-block: 8px; }
}
@media (max-width: 1023px) {
  body .public-site :is(.manifesto,.garden-journal,.pet-diary,.environment-preview,.rooms-editorial,.visit-guide,.luxury-booking), body .public-site #gatherings { min-height: 0; height: auto; padding-block: clamp(40px,7vw,64px); }
  body .public-site .hero-luxury { min-height: 100svh; height: auto; padding-top: 120px; }
  body .public-site .hero-copy { min-width: 0; }
  body .public-site .room-lines { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body .public-site .rooms-editorial { gap: 24px; }
  body .public-site .room-photo-card:last-child { grid-column: 1/-1; max-width: 600px; }
  body .public-site .environment-preview { grid-template-columns: 1fr; }
  body .operations-portal :is(.operations-toolbar,.operations-heading) { flex-wrap: wrap; }
}
@media (max-width: 600px) {
  body .public-site .room-lines { grid-template-columns: 1fr; }
  body .public-site .room-photo-card:last-child { max-width: none; }
  body .public-site .hero-luxury h1 { font-size: clamp(36px,10vw,56px); }
  body .public-site .journal-choices { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  body .public-site .journal-choices button { white-space: normal; padding: 12px 8px; min-height: 48px; }
  body .public-site .journal-choices button svg { flex-shrink: 0; }
  body .public-site .journal-choices button span { display: none; }
  body .public-site .journal-brand-mascot { width: 70px; }
  body .public-site .pet-diary-grid { grid-template-columns: 1fr; }
  body .garden-walk .stroll-path { --friend-size: 82px; height: 118px; }
  body header nav { gap: 8px 16px; }
  body header nav a { min-height: 44px; }
  body .operations-portal .inquiry-card dl>div { grid-template-columns: minmax(60px,80px) minmax(0,1fr); }
  body .operations-portal .inquiry-calendar { overflow-x: auto; }
  body .mobile-garden-dock { padding-bottom: max(10px,env(safe-area-inset-bottom)); }
  body .public-site { padding-bottom: calc(72px + env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  body .garden-walk :is(.stroll-traveller,.stroll-facing,.stroll-bob) { animation: none !important; }
  body .garden-walk .stroll-path { height: auto; min-height: 104px; }
  body .garden-walk .stroll-lane { position: static; width: 82px; }
}
