:root {
  --paper: #ffffff;
  --paper-2: #f4f5f6;
  --white: #ffffff;
  --ink: #111111;
  --muted: #5b6065;
  --line: #d3d2d2;
  --brand-blue: #0071ba;
  --brand-blue-dark: #00588e;
  --brand-blue-wash: #eaf4fb;
  --ink-deep: #111111;
  --serif: "DM Serif Display", Georgia, serif;
  --sans: "DM Sans", Arial, sans-serif;
  --page-width: 1260px;
  --gutter: clamp(1.2rem, 5vw, 4.6rem);
  font-family: var(--sans);
  color: var(--ink);
  background: var(--paper);
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  scroll-behavior: smooth;
}

* { box-sizing: border-box; }
body { margin: 0; min-width: 320px; background: var(--paper); color: var(--ink); font-family: var(--sans); font-size: 16px; line-height: 1.55; }
body.menu-is-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible { outline: 3px solid var(--brand-blue); outline-offset: 4px; }
img { display: block; max-width: 100%; }
.section-wrap { width: min(calc(100% - var(--gutter) * 2), var(--page-width)); margin-inline: auto; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 30; top: 0.75rem; left: 0.75rem; transform: translateY(-160%); background: var(--ink); color: white; padding: 0.8rem 1rem; border-radius: 4px; }
.skip-link:focus { transform: translateY(0); }

.topline { height: 36px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0 var(--gutter); color: #ffffff; background: var(--brand-blue); font-size: 0.68rem; letter-spacing: 0.11em; text-transform: uppercase; }
.topline a { opacity: 0.9; }
.topline a:hover { color: #69b7e2; }
.site-header { position: relative; z-index: 10; background: var(--paper); border-bottom: 1px solid rgba(32, 40, 34, 0.12); }
.nav-wrap { min-height: 88px; display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.brand { display: inline-flex; align-items: center; gap: 0.7rem; flex: none; }
.brand img { width: clamp(185px, 22vw, 270px); height: auto; }
.brand-footer img { width: min(100%, 260px); }
.brand-copy { display: grid; line-height: 1; }
.brand-name { font-size: 1.5rem; font-weight: 700; letter-spacing: -0.08em; }
.brand-name span { color: var(--brand-blue); }
.brand-descriptor { margin-top: 0.32rem; color: var(--muted); font-size: 0.52rem; font-weight: 600; letter-spacing: 0.17em; text-transform: uppercase; }
.primary-nav { display: flex; align-items: center; gap: clamp(1rem, 2.3vw, 2.1rem); }
.nav-link { position: relative; padding: 0.5rem 0; color: #3a3d40; font-size: 0.83rem; font-weight: 500; }
.nav-link::after { position: absolute; right: 0; bottom: 0.2rem; left: 0; height: 1px; content: ""; background: var(--brand-blue); transform: scaleX(0); transform-origin: left; transition: transform 180ms ease; }
.nav-link:hover::after, .nav-link.is-current::after { transform: scaleX(1); }
.menu-toggle { display: none; border: 0; background: transparent; color: var(--ink); cursor: pointer; }

.button { min-height: 50px; display: inline-flex; align-items: center; justify-content: center; gap: 1rem; padding: 0.84rem 1.25rem; border: 1px solid transparent; border-radius: 3px; font-size: 0.82rem; font-weight: 700; line-height: 1.2; transition: background 180ms ease, color 180ms ease, border-color 180ms ease, transform 180ms ease; }
.button:hover { transform: translateY(-2px); }
.button-primary { color: #ffffff; background: var(--brand-blue); }
.button-primary:hover { background: var(--brand-blue-dark); }
.button-outline { color: var(--ink); border-color: #858a90; background: transparent; }
.button-outline:hover { color: var(--white); border-color: var(--ink); background: var(--ink); }
.button-dark { color: var(--white); background: var(--ink-deep); }
.button-dark:hover { background: #00588e; }
.button-light { color: var(--ink-deep); background: #f3f4f5; }
.button-light:hover { background: white; }
.button-small { min-height: 41px; padding: 0.64rem 0.95rem; font-size: 0.76rem; }
.button-full { width: 100%; }
.button-row { display: flex; align-items: center; flex-wrap: wrap; gap: 1.2rem; }
.text-link { display: inline-flex; align-items: center; gap: 0.6rem; color: var(--ink); font-size: 0.84rem; font-weight: 700; text-decoration: none; }
.text-link span { color: var(--brand-blue); transition: transform 180ms ease; }
.text-link:hover span { transform: translate(3px, -2px); }
.text-link-light { color: var(--white); }
.eyebrow { margin: 0 0 1rem; color: var(--brand-blue); font-size: 0.68rem; font-weight: 700; letter-spacing: 0.17em; line-height: 1.35; text-transform: uppercase; }
.eyebrow-dot { width: 7px; height: 7px; display: inline-block; margin: 0 0.45rem 1px 0; border-radius: 50%; background: var(--brand-blue); }
h1, h2, h3, p { margin-top: 0; }
h1, h2 { font-family: var(--serif); font-weight: 400; letter-spacing: -0.035em; line-height: 0.99; }
h1 em, h2 em { color: var(--brand-blue); font-weight: 400; }
h1 { margin-bottom: 1.4rem; font-size: clamp(3.5rem, 7vw, 6.5rem); }
h2 { margin-bottom: 1.2rem; font-size: clamp(2.7rem, 5vw, 4.6rem); }
h3 { margin-bottom: 0.75rem; font-size: 1.2rem; line-height: 1.2; }
.hero-lede { max-width: 500px; margin: 0 0 1.65rem; color: #555b60; font-size: clamp(1rem, 1.25vw, 1.12rem); line-height: 1.7; }
.hero-note { margin: 1.4rem 0 0; color: var(--muted); font-size: 0.76rem; }

.hero { position: relative; display: grid; grid-template-columns: minmax(0, 0.94fr) minmax(360px, 1.06fr); align-items: center; min-height: 660px; padding-top: 4.5rem; padding-bottom: 5rem; }
.hero-copy { position: relative; z-index: 2; padding: 1.5rem 0 1.8rem; }
.hero-copy h1 { max-width: 680px; font-size: clamp(4rem, 7.5vw, 7.2rem); }
.hero-copy h1 em { padding-left: 0.1em; }
.hero-copy .hero-lede { max-width: 425px; }
.hero-visual { position: relative; min-height: 500px; padding: 0 1rem 2.4rem 2.4rem; }
.hero-image-frame { position: absolute; top: 0; right: 0; bottom: 4.4rem; left: 0; overflow: hidden; background: #d3d2d2; }
.hero-image-frame::after { position: absolute; inset: 0; content: ""; background: linear-gradient(180deg, transparent 68%, rgba(0, 0, 0, 0.28)); pointer-events: none; }
.hero-image-frame img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.hero-sticker { position: absolute; top: 2rem; left: -1.2rem; width: 150px; height: 142px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: 1rem; color: #ffffff; background: var(--brand-blue); transform: rotate(-5deg); box-shadow: 0 12px 25px rgba(0, 0, 0, 0.12); }
.hero-sticker .sticker-small { font-size: 0.63rem; letter-spacing: 0.1em; text-transform: uppercase; }
.hero-sticker strong { margin-top: 0.25rem; font-family: var(--serif); font-size: 1.18rem; font-weight: 400; line-height: 0.98; }
.sticker-spark { position: absolute; top: 0.45rem; right: 0.6rem; font-size: 1.2rem; }
.image-caption { position: absolute; right: 0; bottom: 1.6rem; display: flex; align-items: center; gap: 0.7rem; color: var(--muted); font-size: 0.67rem; letter-spacing: 0.06em; text-transform: uppercase; }
.hero-photo-tagline { position: absolute; left: 0; bottom: 1.6rem; color: var(--muted); font-size: 0.67rem; letter-spacing: 0.06em; text-transform: uppercase; }
.caption-line { width: 30px; height: 1px; background: var(--brand-blue); }

.intro-band { padding-top: 5.2rem; padding-bottom: 4rem; border-top: 1px solid var(--line); }
.intro-band-content { display: grid; grid-template-columns: 1.15fr 0.85fr; align-items: end; gap: 4rem; }
.intro-band-content h2 { margin-bottom: 0; }
.intro-band-content > div { max-width: 425px; padding-bottom: 0.25rem; }
.intro-band-content p { color: #555b60; line-height: 1.75; }
.intro-rule { display: flex; justify-content: space-between; gap: 1rem; margin-top: 3.5rem; padding-top: 1rem; border-top: 1px solid var(--line); color: var(--muted); font-size: 0.7rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; }
.benefit-section { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: 5rem; padding-top: 5.4rem; padding-bottom: 6rem; }
.benefit-section .section-heading { align-self: start; position: sticky; top: 2rem; }
.benefit-list { border-top: 1px solid var(--line); }
.benefit-item { display: grid; grid-template-columns: 48px 1fr 26px; align-items: start; gap: 1rem; padding: 1.65rem 0; border-bottom: 1px solid var(--line); }
.benefit-number { padding-top: 0.25rem; color: var(--brand-blue); font-size: 0.73rem; font-weight: 700; }
.benefit-item h3 { margin-bottom: 0.55rem; font-size: 1.28rem; }
.benefit-item p { max-width: 510px; margin-bottom: 0; color: var(--muted); font-size: 0.9rem; }
.benefit-mark { color: var(--brand-blue); font-size: 1.1rem; }
.photo-story { display: grid; grid-template-columns: 1.1fr 0.9fr; align-items: center; gap: clamp(2rem, 7vw, 7rem); padding-top: 1rem; padding-bottom: 6.5rem; }
.photo-story-image { position: relative; max-width: 630px; }
.photo-story-image img { width: 100%; aspect-ratio: 1.3; object-fit: cover; }
.photo-label { position: absolute; right: -1rem; bottom: -1rem; padding: 0.7rem 0.95rem; color: var(--white); background: var(--brand-blue); font-size: 0.68rem; letter-spacing: 0.08em; text-transform: uppercase; }
.photo-story-copy { max-width: 430px; }
.photo-story-copy h2 { margin-bottom: 1.3rem; }
.photo-story-copy > p:not(.eyebrow) { margin-bottom: 1.8rem; color: var(--muted); line-height: 1.75; }
.amenity-band { padding: 5rem 0; color: #ffffff; background: var(--ink-deep); }
.amenity-inner { display: grid; grid-template-columns: 0.86fr 1.14fr; align-items: center; gap: 4rem; }
.eyebrow-light { color: #b7d2e3; }
.amenity-band h2 { margin-bottom: 0; }
.amenity-band h2 em { color: #69b7e2; }
.amenity-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid rgba(255,255,255,.22); border-left: 1px solid rgba(255,255,255,.22); }
.amenity-cell { min-height: 140px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 0.35rem; padding: 1.15rem 1.4rem; border-right: 1px solid rgba(255,255,255,.22); border-bottom: 1px solid rgba(255,255,255,.22); }
.amenity-icon { margin-bottom: 0.35rem; color: #69b7e2; font-size: 0.66rem; letter-spacing: 0.15em; }
.amenity-cell strong { font-size: 1rem; }
.amenity-cell > span:last-child { color: #c5cbd1; font-size: 0.76rem; }
.pricing-teaser { padding-top: 6.2rem; padding-bottom: 6rem; }
.pricing-teaser .section-heading { margin-bottom: 1.5rem; }
.pricing-teaser-row { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding-bottom: 2.3rem; border-bottom: 1px solid var(--line); }
.pricing-teaser-row p { max-width: 470px; margin: 0; color: var(--muted); }
.mini-plan-row { display: grid; grid-template-columns: repeat(3, 1fr); }
.mini-plan-row > div { display: grid; grid-template-columns: 34px 1fr; column-gap: 0.8rem; padding: 1.4rem 1rem 0.8rem 0; border-right: 1px solid var(--line); }
.mini-plan-row > div:not(:first-child) { padding-left: 1.4rem; }
.mini-plan-row > div:last-child { border-right: 0; }
.mini-plan-row span { grid-row: span 2; padding-top: 0.1rem; color: var(--brand-blue); font-size: 0.7rem; font-weight: 700; }
.mini-plan-row strong { font-size: 0.9rem; }
.mini-plan-row small { color: var(--muted); font-size: 0.75rem; }
.stories-section { padding-top: 2.2rem; padding-bottom: 6.5rem; }
.section-heading-row { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 2.4rem; }
.section-heading-row h2 { margin-bottom: 0; }
.section-heading-row > .text-link { margin-bottom: 0.55rem; }
.story-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.1rem; }
.story-card { display: flex; flex-direction: column; align-items: flex-start; min-height: 260px; padding: 1.4rem 1.4rem 1.35rem; border: 1px solid var(--line); background: rgba(255,255,255,.18); }
.story-card-top { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; margin-bottom: 1.6rem; }
.story-card .eyebrow { margin: 0; color: var(--brand-blue); font-size: 0.59rem; }
.story-date { color: var(--muted); font-size: 0.63rem; }
.story-card h3 { max-width: 310px; margin-bottom: 0.7rem; font-family: var(--serif); font-size: 1.65rem; font-weight: 400; letter-spacing: -0.02em; }
.story-card h3 a:hover { color: var(--brand-blue); }
.story-card p { margin-bottom: 1.6rem; color: var(--muted); font-size: 0.84rem; line-height: 1.6; }
.story-card .text-link { margin-top: auto; font-size: 0.75rem; }
.visit-cta { padding-top: 1rem; padding-bottom: 6rem; }
.visit-card { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: 2rem; padding: clamp(1.6rem, 4vw, 3.8rem); background: var(--brand-blue-wash); }
.visit-card h2 { margin-bottom: 1.2rem; }
.visit-card > div:first-child > p:not(.eyebrow) { margin-bottom: 1.5rem; color: #555b60; font-size: 0.88rem; line-height: 1.7; }
.visit-image { position: relative; min-height: 350px; }
.visit-image img { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; }
.visit-image-tag { position: absolute; right: 0.9rem; bottom: 0.9rem; padding: 0.55rem 0.75rem; background: var(--paper); color: var(--ink); font-size: 0.66rem; letter-spacing: 0.1em; text-transform: uppercase; }
.charity-note { display: flex; align-items: center; justify-content: center; gap: 0.55rem; margin: 1.4rem 0 0; color: var(--muted); font-size: 0.78rem; }
.charity-sun { color: var(--brand-blue); font-size: 1rem; }

.page-hero { padding-top: 6rem; padding-bottom: 5rem; }
.page-hero-split { display: grid; grid-template-columns: 0.95fr 1.05fr; align-items: center; gap: clamp(2rem, 6vw, 5rem); }
.page-hero-split h1 { font-size: clamp(3.7rem, 6.7vw, 6.5rem); }
.page-hero-image { position: relative; min-height: 440px; }
.page-hero-image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.workspace-section { padding-top: 2rem; padding-bottom: 6rem; }
.workspace-section .section-heading { margin-bottom: 2.2rem; }
.workspace-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.workspace-card { min-height: 315px; display: flex; flex-direction: column; align-items: flex-start; padding: 1.55rem; background: var(--paper-2); }
.workspace-card-large { background: #f1f3f5; }
.workspace-card-tint { background: #eaf4fb; }
.workspace-card-dark { color: #ffffff; background: var(--ink-deep); }
.workspace-index { margin-bottom: 3rem; color: var(--brand-blue); font-size: 0.63rem; font-weight: 700; letter-spacing: 0.12em; }
.workspace-card-dark .workspace-index { color: #b7d2e3; }
.workspace-card h3 { margin-bottom: 0.7rem; font-family: var(--serif); font-size: 2rem; font-weight: 400; }
.workspace-card p { max-width: 330px; margin-bottom: 1.5rem; color: var(--muted); font-size: 0.88rem; }
.workspace-card-dark p { color: #d1d6da; }
.workspace-card .text-link { margin-top: auto; font-size: 0.76rem; }
.tour-feature { display: grid; grid-template-columns: 1fr 0.92fr; align-items: center; gap: clamp(2.5rem, 7vw, 6rem); padding-top: 1rem; padding-bottom: 6rem; }
.tour-photo img { width: 100%; aspect-ratio: 1.3; object-fit: cover; }
.tour-copy { max-width: 440px; }
.tour-copy > p:not(.eyebrow) { color: var(--muted); line-height: 1.7; }
.amenity-pills { display: flex; flex-wrap: wrap; gap: 0.55rem; padding: 0; margin: 1.4rem 0 1.8rem; list-style: none; }
.amenity-pills li { padding: 0.4rem 0.65rem; border: 1px solid var(--line); color: var(--muted); font-size: 0.7rem; }
.tour-link-band { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding-top: 2.5rem; padding-bottom: 2.5rem; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.tour-link-band h2 { margin-bottom: 0.55rem; font-size: clamp(2rem, 4vw, 3rem); }
.tour-link-band p:not(.eyebrow) { margin: 0; color: var(--muted); font-size: 0.84rem; }
.simple-cta { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding-top: 4.2rem; padding-bottom: 4.2rem; }
.simple-cta h2 { margin: 0; font-size: clamp(2.5rem, 4.5vw, 4rem); }

.pricing-hero { padding-top: 6.2rem; padding-bottom: 3rem; }
.pricing-hero h1 { max-width: 970px; }
.pricing-hero .hero-lede { max-width: 600px; }
.pricing-meta { display: flex; gap: 2rem; margin-top: 3.6rem; padding-top: 1rem; border-top: 1px solid var(--line); color: var(--muted); font-size: 0.7rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; }
.plans-section { padding-top: 1rem; padding-bottom: 5.5rem; }
.plans-section .section-heading-row { align-items: end; }
.section-side-copy { max-width: 385px; margin-bottom: 0.15rem; color: var(--muted); font-size: 0.87rem; line-height: 1.7; }
.plan-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.8rem; }
.plan-card { min-height: 395px; display: flex; flex-direction: column; padding: 1.15rem; border: 1px solid var(--line); background: rgba(255,255,255,.22); }
.plan-card-popular { border-color: var(--ink-deep); background: #eaf4fb; }
.plan-card-head { display: flex; align-items: start; justify-content: space-between; gap: 0.5rem; }
.plan-badge { min-height: 1rem; margin: 0 0 0.5rem; color: var(--muted); font-size: 0.61rem; }
.plan-badge-strong { color: var(--brand-blue); font-weight: 700; }
.plan-card h3 { margin: 0; font-size: 1rem; }
.popular-chip { flex: none; padding: 0.35rem 0.45rem; color: white; background: var(--brand-blue); font-size: 0.52rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
.plan-price { display: flex; flex-direction: column; gap: 0.12rem; margin: 1.2rem 0 1rem; padding-bottom: 1rem; border-bottom: 1px solid var(--line); }
.plan-price strong { font-family: var(--serif); font-size: 2.55rem; font-weight: 400; line-height: 1; }
.plan-price span { color: var(--muted); font-size: 0.68rem; }
.check-list { display: grid; gap: 0.6rem; padding: 0; margin: 0 0 1.4rem; list-style: none; }
.check-list li { position: relative; padding-left: 1.1rem; color: #555b60; font-size: 0.72rem; line-height: 1.4; }
.check-list li::before { position: absolute; left: 0; color: var(--brand-blue); content: "•"; font-size: 1rem; line-height: 0.9; }
.plan-card .button { margin-top: auto; }
.price-caveat { margin: 1.3rem 0 0; color: var(--muted); font-size: 0.7rem; line-height: 1.6; }
.private-space-section { padding: 5.5rem 0; color: var(--white); background: var(--ink-deep); }
.private-space-inner { display: grid; grid-template-columns: 0.8fr 1.2fr; align-items: center; gap: 4rem; }
.private-space-inner h2 em { color: #69b7e2; }
.private-space-inner > div:first-child > p:not(.eyebrow) { max-width: 390px; margin-bottom: 1.6rem; color: #c5cbd1; font-size: 0.9rem; line-height: 1.7; }
.private-plan-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.75rem; }
.private-plan { min-height: 265px; display: flex; flex-direction: column; padding: 1.25rem; border: 1px solid rgba(255,255,255,.27); }
.private-plan > span { color: #c5cbd1; font-size: 0.74rem; }
.private-plan strong { margin-top: 1.4rem; font-family: var(--serif); font-size: 2.5rem; font-weight: 400; }
.private-plan small { color: #c5cbd1; font-size: 0.7rem; }
.private-plan p { margin: 1.2rem 0 0; color: #d1d6da; font-size: 0.78rem; }
.rooms-section { padding-top: 5.5rem; padding-bottom: 5.5rem; }
.room-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.room-card { min-height: 240px; padding: 1.15rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.room-number { color: var(--brand-blue); font-size: 0.65rem; font-weight: 700; }
.room-card h3 { margin: 1.25rem 0 0.4rem; font-family: var(--serif); font-size: 1.55rem; font-weight: 400; }
.room-card p { min-height: 2.5rem; margin-bottom: 0.9rem; color: var(--muted); font-size: 0.75rem; }
.room-card > strong { display: block; margin-bottom: 0.9rem; font-family: var(--serif); font-size: 1.7rem; font-weight: 400; }
.room-card > strong small { color: var(--muted); font-family: var(--sans); font-size: 0.65rem; }
.room-card .text-link { font-size: 0.68rem; }
.rooms-section > .section-heading-row { margin-bottom: 2rem; }

.form-hero { align-items: start; }
.form-note { display: flex; align-items: start; gap: 0.75rem; max-width: 455px; margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.note-symbol { color: var(--brand-blue); font-size: 1.15rem; }
.form-note p { margin: 0; color: var(--muted); font-size: 0.8rem; }
.form-hero .hero-note a { color: var(--ink); font-weight: 700; }
.form-card { padding: clamp(1.3rem, 3vw, 2.2rem); border: 1px solid var(--line); background: var(--white); box-shadow: 0 18px 55px rgba(0, 0, 0, 0.04); }
.form-card-heading { margin-bottom: 1.7rem; }
.form-card-heading .eyebrow { margin-bottom: 0.6rem; }
.form-card-heading h2 { margin: 0; font-size: 2.5rem; }
.form-card form { display: grid; gap: 1rem; }
.form-card label { display: grid; gap: 0.4rem; color: #3a3d40; font-size: 0.7rem; font-weight: 700; }
.form-card label > span { color: var(--brand-blue); }
.form-card input, .form-card textarea { width: 100%; min-height: 46px; padding: 0.7rem 0.75rem; border: 1px solid #d3d2d2; border-radius: 2px; color: var(--ink); background: #ffffff; font-size: 0.86rem; font-weight: 400; }
.form-card textarea { min-height: 102px; resize: vertical; }
.form-card input::placeholder, .form-card textarea::placeholder { color: #767c82; }
.form-row { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.8rem; }
.form-disclaimer { margin: -0.3rem 0 0; color: var(--muted); font-size: 0.65rem; line-height: 1.5; }
.form-status { min-height: 1.2rem; margin: 0; color: var(--brand-blue); font-size: 0.72rem; }
.daypass-bottom { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding-top: 2rem; padding-bottom: 3.8rem; border-top: 1px solid var(--line); }
.daypass-bottom > div { display: flex; align-items: start; gap: 1.2rem; }
.big-number { color: var(--brand-blue); font-size: 0.75rem; font-weight: 700; }
.daypass-bottom h2 { margin-bottom: 0.5rem; font-family: var(--sans); font-size: 1.2rem; font-weight: 700; letter-spacing: 0; }
.daypass-bottom p { max-width: 500px; margin: 0; color: var(--muted); font-size: 0.82rem; }

.join-hero { padding-bottom: 4rem; }
.join-hero h1, .members-hero h1, .blog-hero h1 { max-width: 860px; }
.join-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; padding-bottom: 5rem; }
.join-steps article { min-height: 270px; padding: 1.2rem 1.3rem; border-top: 1px solid var(--line); }
.step-index { display: inline-block; margin-bottom: 3rem; color: var(--brand-blue); font-size: 0.7rem; font-weight: 700; }
.join-steps h2 { margin-bottom: 0.8rem; font-family: var(--serif); font-size: 2rem; }
.join-steps p { min-height: 4.2rem; margin-bottom: 1.2rem; color: var(--muted); font-size: 0.81rem; }
.join-steps .text-link { font-size: 0.75rem; }
.join-plan-strip { display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin-bottom: 5rem; padding: 2rem; background: var(--brand-blue-wash); }
.join-plan-strip h2 { margin-bottom: 0.7rem; font-size: 2.8rem; }
.join-plan-strip p:not(.eyebrow) { max-width: 450px; margin-bottom: 0; color: var(--muted); font-size: 0.85rem; }
.member-access { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; padding-top: 0; padding-bottom: 4rem; }
.member-access-card { position: relative; min-height: 305px; display: flex; flex-direction: column; align-items: flex-start; padding: 1.5rem; color: var(--white); background: var(--ink-deep); transition: transform 180ms ease, background 180ms ease; }
.member-access-card:hover { transform: translateY(-4px); background: #00588e; }
.member-access-login { color: var(--ink); background: #eaf4fb; }
.member-access-login:hover { background: #dceffc; }
.access-index { color: #c5cbd1; font-size: 0.64rem; font-weight: 700; letter-spacing: 0.12em; }
.member-access-login .access-index { color: var(--brand-blue); }
.access-arrow { position: absolute; top: 1.3rem; right: 1.5rem; color: #69b7e2; font-size: 1.3rem; }
.member-access h2 { margin: auto 0 0.8rem; font-size: 2.6rem; }
.member-access p { max-width: 390px; margin: 0 0 1.5rem; color: #d1d6da; font-size: 0.87rem; }
.member-access-login p { color: var(--muted); }
.access-link { font-size: 0.74rem; font-weight: 700; }
.member-access-directory .access-link { color: #ffffff; }
.member-access-login .access-link { color: var(--ink); }
.members-help { display: flex; align-items: center; justify-content: center; gap: 1rem; padding-bottom: 5rem; border-top: 1px solid var(--line); }
.members-help p { margin: 1.4rem 0; color: var(--muted); font-size: 0.82rem; }

.blog-hero { padding-bottom: 3rem; }
.blog-listing { padding-top: 0; }
.blog-listing .story-grid { row-gap: 1rem; }
.blog-listing .story-card { min-height: 300px; }
.blog-more { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding-top: 2rem; padding-bottom: 4.5rem; border-top: 1px solid var(--line); }
.blog-more h2 { margin: 0; font-size: 2.6rem; }
.article-page { padding-top: 3rem; padding-bottom: 4rem; }
.back-link { display: inline-flex; margin-bottom: 3rem; color: var(--muted); font-size: 0.75rem; font-weight: 700; }
.back-link:hover { color: var(--brand-blue); }
.article-header { max-width: 850px; margin: 0 auto 3rem; }
.article-header h1 { max-width: 850px; font-size: clamp(3.2rem, 7vw, 6rem); }
.article-header h1 em { color: var(--brand-blue); }
.article-header .eyebrow { margin-bottom: 1rem; }
.article-divider { padding: 0 0.35rem; color: var(--brand-blue); }
.article-deck { max-width: 650px; color: var(--muted); font-size: 1.15rem; line-height: 1.65; }
.article-body { max-width: 690px; margin: 0 auto; padding-top: 2rem; border-top: 1px solid var(--line); }
.article-body p { color: #555b60; font-size: 1rem; line-height: 1.9; }
.article-body .article-lede { color: var(--ink); font-family: var(--serif); font-size: 1.6rem; line-height: 1.4; }
.article-body .button { margin-top: 0.7rem; }
.article-next { padding-top: 2rem; padding-bottom: 5rem; border-top: 1px solid var(--line); }
.article-next > .eyebrow { margin-bottom: 1.5rem; }
.article-next .story-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.contact-page { padding-top: clamp(3.5rem, 7vw, 6rem); padding-bottom: 2rem; }
.contact-page-heading { margin-bottom: 2.5rem; padding-bottom: 2rem; border-bottom: 5px solid var(--brand-blue); }
.contact-page-heading h1 { margin-bottom: 1rem; font-size: clamp(3.8rem, 7.5vw, 6.6rem); }
.contact-page-heading .hero-lede { max-width: 760px; margin-bottom: 0; }
.contact-layout { display: grid; grid-template-columns: minmax(250px, 0.78fr) minmax(0, 1.42fr); align-items: stretch; gap: clamp(2.2rem, 5vw, 5rem); }
.contact-info-panel { position: relative; padding: clamp(1.6rem, 3vw, 2.8rem); color: var(--white); background: var(--ink-deep); }
.contact-info-panel::before { position: absolute; top: 0; left: 0; width: 5rem; height: 5px; content: ""; background: var(--brand-blue); }
.contact-info-panel .eyebrow { color: #a9d7f0; }
.contact-info-panel h2 { margin-bottom: 1rem; color: var(--white); font-size: clamp(2rem, 3.1vw, 3rem); }
.contact-info-panel h2 em { color: #62b8e8; }
.contact-info-intro { color: #d1d6da; font-size: 0.86rem; line-height: 1.7; }
.contact-info-group { margin-top: 2rem; }
.contact-info-group h3 { margin-bottom: 0.55rem; color: #a9d7f0; font-size: 0.68rem; letter-spacing: 0.14em; text-transform: uppercase; }
.contact-info-group address { font-style: normal; }
.contact-info-group a { color: var(--white); font-size: 0.9rem; font-weight: 600; text-decoration: underline; text-decoration-color: rgba(255, 255, 255, 0.55); text-underline-offset: 0.2em; overflow-wrap: anywhere; }
.contact-info-group a:hover { color: #a9d7f0; }
.contact-form-panel { min-width: 0; padding: 0.6rem 0; }
.contact-form-heading { margin-bottom: 1.7rem; }
.contact-form-heading .eyebrow { margin-bottom: 0.6rem; }
.contact-form-heading h2 { margin-bottom: 0.8rem; font-size: clamp(2.2rem, 3.8vw, 3.6rem); }
.contact-form-heading > p:last-child { max-width: 660px; margin-bottom: 0; color: var(--muted); }
.contact-form { display: grid; gap: 1.1rem; }
.contact-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.15rem 1rem; }
.contact-form label { display: grid; gap: 0.42rem; color: #303438; font-size: 0.8rem; font-weight: 700; }
.contact-form .field-label { display: flex; align-items: baseline; gap: 0.22rem; color: #303438; }
.contact-form .required-mark { color: var(--brand-blue); }
.contact-form .optional-label { color: var(--muted); font-size: 0.72rem; font-weight: 400; }
.contact-form input, .contact-form textarea { width: 100%; min-height: 54px; padding: 0.78rem 0.82rem; border: 1px solid #b9bec2; border-radius: 2px; color: var(--ink); background: var(--white); font-size: 0.95rem; font-weight: 400; }
.contact-form textarea { min-height: 180px; resize: vertical; }
.contact-form input:focus, .contact-form textarea:focus { border-color: var(--brand-blue); }
.contact-form-full { grid-column: 1 / -1; }
.contact-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.contact-submit { min-width: 200px; justify-self: start; }
.contact-submit:disabled { cursor: wait; opacity: 0.72; transform: none; }
.contact-form-status { min-height: 1.4rem; margin: 0; color: var(--brand-blue-dark); font-size: 0.83rem; font-weight: 600; }
.contact-response { min-height: 65vh; max-width: 850px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding-top: 4rem; padding-bottom: 4rem; }
.contact-response h1 { font-size: clamp(3.2rem, 7vw, 5.5rem); }
.contact-response > p:not(.eyebrow) { max-width: 650px; }
.contact-bottom { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding-top: 2.2rem; padding-bottom: 4.5rem; border-top: 1px solid var(--line); }
.contact-bottom h2 { margin-bottom: 0.7rem; font-size: 2.8rem; }
.contact-bottom > div > p:last-child { margin: 0; color: var(--muted); font-size: 0.85rem; }
.not-found { min-height: 570px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding-top: 4rem; padding-bottom: 4rem; }
.not-found h1 { font-size: clamp(3.7rem, 6.5vw, 6.3rem); }

.site-footer { color: var(--ink); background: var(--paper-2); }
.footer-main { display: grid; grid-template-columns: 0.72fr 1.28fr; gap: 4rem; padding-top: 4.2rem; padding-bottom: 3rem; }
.brand-footer .brand-name { color: white; }
.brand-footer .brand-descriptor { color: #b5bbc1; }
.footer-brand > p:not(.footer-charity) { margin: 1.6rem 0; color: #454a4f; font-family: var(--serif); font-size: 1.6rem; line-height: 1.25; }
.footer-charity { max-width: 260px; display: flex; gap: 0.55rem; color: #555b60; font-size: 0.7rem; }
.footer-charity span { color: var(--brand-blue); }
.footer-nav { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; }
.footer-nav > div { display: flex; flex-direction: column; align-items: flex-start; gap: 0.75rem; }
.footer-label { margin-bottom: 0.4rem; color: var(--brand-blue); font-size: 0.63rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; }
.footer-nav a { color: #313438; font-size: 0.75rem; line-height: 1.5; }
.footer-nav a:hover { color: var(--brand-blue-dark); }
.footer-bottom { min-height: 60px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-top: 1px solid rgba(17,17,17,.14); color: #5b6065; font-size: 0.63rem; }
.footer-legal { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 0.3rem; }
.footer-credit { color: inherit; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
.footer-credit:hover { color: var(--brand-blue-dark); }
.social-links { display: flex; align-items: center; gap: 0.45rem; }
.social-links a { width: 29px; height: 29px; display: grid; place-items: center; border: 1px solid transparent; border-radius: 50%; color: #ffffff; background: #111111; font-size: 0.58rem; font-weight: 700; transition: transform 180ms ease, filter 180ms ease; }
.social-links a:nth-child(1) { background: radial-gradient(circle at 30% 110%, #ffdc80 0 14%, #fcaf45 32%, #f77737 49%, #e1306c 68%, #c13584 84%, #833ab4 100%); }
.social-links a:nth-child(2) { background: #0866ff; }
.social-links a:nth-child(3) { background: #000000; text-transform: uppercase; }
.social-links a:nth-child(4) { background: #0a66c2; }
.social-links a:hover { filter: brightness(0.88); transform: translateY(-2px); }

@media (max-width: 1050px) {
  :root { --gutter: clamp(1.2rem, 4vw, 3rem); }
  .hero { min-height: 600px; grid-template-columns: 1fr 0.95fr; }
  .hero-visual { min-height: 435px; padding-left: 1.4rem; }
  .hero-copy h1 { font-size: clamp(3.7rem, 7.4vw, 6rem); }
  .primary-nav { gap: 1rem; }
  .nav-link { font-size: 0.76rem; }
  .button-small { padding-inline: 0.75rem; }
  .plan-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .plan-card { min-height: 340px; }
  .room-grid { grid-template-columns: repeat(2, 1fr); }
  .room-card { min-height: 220px; }
}

@media (max-width: 760px) {
  :root { --gutter: 1.15rem; }
  body { font-size: 15px; }
  .topline { height: 32px; font-size: 0.56rem; letter-spacing: 0.08em; }
  .topline > span { display: none; }
  .topline a { margin-left: auto; }
  .nav-wrap { min-height: 72px; }
  .brand img { width: clamp(165px, 42vw, 220px); height: auto; }
  .brand-name { font-size: 1.35rem; }
  .menu-toggle { width: 45px; height: 45px; display: grid; place-items: center; }
  .menu-toggle-lines { width: 22px; display: grid; gap: 6px; }
  .menu-toggle-lines i { width: 22px; height: 1.5px; display: block; background: var(--ink); transition: transform 180ms ease; }
  .menu-toggle[aria-expanded="true"] .menu-toggle-lines i:first-child { transform: translateY(3.75px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] .menu-toggle-lines i:last-child { transform: translateY(-3.75px) rotate(-45deg); }
  .primary-nav { position: absolute; top: 100%; right: 0; left: 0; display: none; align-items: stretch; flex-direction: column; gap: 0; padding: 1rem var(--gutter) 1.4rem; border-bottom: 1px solid var(--line); background: var(--paper); box-shadow: 0 15px 24px rgba(0,0,0,.08); }
  .primary-nav.is-open { display: flex; }
  .nav-link { padding: 0.85rem 0; border-bottom: 1px solid var(--line); font-size: 0.92rem; }
  .nav-link::after { display: none; }
  .nav-cta { margin-top: 1rem; }
  h1 { font-size: clamp(3.25rem, 14vw, 5.3rem); }
  h2 { font-size: clamp(2.65rem, 11vw, 4rem); }
  .hero { display: flex; flex-direction: column; align-items: stretch; min-height: auto; padding-top: 3.3rem; padding-bottom: 2.5rem; }
  .hero-copy { padding: 0 0 2rem; }
  .hero-copy h1 { font-size: clamp(3.8rem, 15vw, 6rem); }
  .hero-copy .hero-lede { max-width: 430px; }
  .hero-visual { min-height: clamp(330px, 92vw, 480px); padding: 0 0 2.2rem; }
  .hero-image-frame { right: 0; bottom: 3.1rem; }
  .hero-sticker { top: 1rem; left: -0.35rem; width: 132px; height: 122px; }
  .hero-sticker strong { font-size: 1rem; }
  .image-caption { right: 0; bottom: 0; font-size: 0.57rem; }
  .hero-photo-tagline { bottom: 1.3rem; font-size: 0.57rem; }
  .intro-band { padding-top: 3.5rem; padding-bottom: 3rem; }
  .intro-band-content { grid-template-columns: 1fr; gap: 1.3rem; }
  .intro-band-content h2 { font-size: clamp(2.8rem, 11vw, 4rem); }
  .intro-band-content > div { max-width: 510px; }
  .intro-rule { flex-wrap: wrap; justify-content: flex-start; gap: 0.7rem 1.2rem; margin-top: 2rem; font-size: 0.59rem; }
  .benefit-section { display: block; padding-top: 3.5rem; padding-bottom: 4.5rem; }
  .benefit-section .section-heading { position: static; margin-bottom: 2rem; }
  .benefit-section .section-heading h2 { font-size: 3.1rem; }
  .benefit-item { grid-template-columns: 32px 1fr 20px; gap: 0.6rem; padding: 1.25rem 0; }
  .benefit-item h3 { font-size: 1.12rem; }
  .benefit-item p { font-size: 0.82rem; }
  .photo-story { grid-template-columns: 1fr; gap: 2.5rem; padding-bottom: 4.5rem; }
  .photo-story-image { margin-right: 0.6rem; }
  .photo-story-copy { max-width: 500px; }
  .photo-story-copy h2 { font-size: 3.4rem; }
  .amenity-band { padding: 3.8rem 0; }
  .amenity-inner { grid-template-columns: 1fr; gap: 2rem; }
  .amenity-band h2 { font-size: 3rem; }
  .amenity-cell { min-height: 125px; padding: 0.9rem; }
  .amenity-cell strong { font-size: 0.85rem; }
  .amenity-cell > span:last-child { font-size: 0.65rem; }
  .pricing-teaser { padding-top: 4.4rem; padding-bottom: 4rem; }
  .pricing-teaser h2 { font-size: 3rem; }
  .pricing-teaser-row { align-items: flex-start; flex-direction: column; gap: 1.1rem; }
  .mini-plan-row { grid-template-columns: 1fr; }
  .mini-plan-row > div, .mini-plan-row > div:not(:first-child) { padding: 0.9rem 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .mini-plan-row > div:last-child { border-bottom: 0; }
  .stories-section { padding-top: 1rem; padding-bottom: 4.3rem; }
  .section-heading-row { align-items: flex-start; flex-direction: column; gap: 1.2rem; margin-bottom: 1.7rem; }
  .section-heading-row h2 { font-size: 3.05rem; }
  .story-grid { grid-template-columns: 1fr; }
  .story-card { min-height: 240px; }
  .story-card-top { margin-bottom: 1rem; }
  .visit-cta { padding-bottom: 4rem; }
  .visit-card { grid-template-columns: 1fr; gap: 1.8rem; padding: 1.25rem; }
  .visit-card h2 { font-size: 3rem; }
  .visit-card .button-row { align-items: flex-start; }
  .visit-image { min-height: 260px; }
  .charity-note { align-items: flex-start; justify-content: flex-start; font-size: 0.7rem; }
  .page-hero { padding-top: 3.4rem; padding-bottom: 3.5rem; }
  .page-hero-split { grid-template-columns: 1fr; gap: 1.8rem; }
  .page-hero-split h1 { font-size: clamp(3.4rem, 13vw, 5.4rem); }
  .page-hero-image { min-height: clamp(280px, 68vw, 430px); }
  .workspace-section { padding-top: 0.5rem; padding-bottom: 4.2rem; }
  .workspace-section .section-heading h2 { font-size: 3.1rem; }
  .workspace-cards { grid-template-columns: 1fr; }
  .workspace-card { min-height: 260px; }
  .workspace-index { margin-bottom: 2.1rem; }
  .workspace-card h3 { font-size: 1.8rem; }
  .tour-feature { grid-template-columns: 1fr; gap: 2rem; padding-bottom: 4.2rem; }
  .tour-copy h2 { font-size: 3.1rem; }
  .tour-link-band { align-items: flex-start; flex-direction: column; gap: 1.3rem; padding-top: 2rem; padding-bottom: 2rem; }
  .tour-link-band h2 { font-size: 2.35rem; }
  .simple-cta { align-items: flex-start; flex-direction: column; gap: 1.4rem; padding-top: 3.1rem; padding-bottom: 3.1rem; }
  .simple-cta h2 { font-size: 3rem; }
  .pricing-hero { padding-top: 3.7rem; padding-bottom: 2rem; }
  .pricing-hero h1 { font-size: clamp(3.2rem, 12.5vw, 5.3rem); }
  .pricing-meta { flex-direction: column; gap: 0.45rem; margin-top: 2.5rem; }
  .plans-section { padding-bottom: 3.9rem; }
  .plans-section .section-heading-row { align-items: flex-start; }
  .plans-section .section-heading-row h2 { font-size: 3rem; }
  .plan-grid { grid-template-columns: 1fr; gap: 0.7rem; }
  .plan-card { min-height: auto; padding: 1.15rem; }
  .plan-price { margin-top: 1rem; }
  .plan-card .button { margin-top: 0.5rem; }
  .private-space-section { padding: 3.8rem 0; }
  .private-space-inner { grid-template-columns: 1fr; gap: 2rem; }
  .private-space-inner h2 { font-size: 3rem; }
  .private-plan-grid { grid-template-columns: 1fr; }
  .private-plan { min-height: 220px; }
  .rooms-section { padding-top: 3.7rem; padding-bottom: 3.7rem; }
  .rooms-section .section-heading-row { align-items: flex-start; }
  .rooms-section .section-heading-row h2 { font-size: 3rem; }
  .room-grid { grid-template-columns: 1fr; }
  .room-card { min-height: 205px; padding: 1rem; }
  .room-card h3 { margin-top: 0.75rem; }
  .room-card p { min-height: 0; }
  .form-hero { gap: 2rem; }
  .form-card { padding: 1.15rem; }
  .form-card-heading h2 { font-size: 2.35rem; }
  .form-row { grid-template-columns: 1fr; }
  .daypass-bottom { align-items: flex-start; flex-direction: column; gap: 1.2rem; padding-top: 1.5rem; padding-bottom: 2.8rem; }
  .daypass-bottom > div { gap: 0.75rem; }
  .join-hero h1, .members-hero h1, .blog-hero h1 { font-size: clamp(3.4rem, 13vw, 5.2rem); }
  .join-steps { grid-template-columns: 1fr; gap: 0.5rem; padding-bottom: 3rem; }
  .join-steps article { min-height: 0; padding: 1.2rem 0; }
  .step-index { margin-bottom: 1.5rem; }
  .join-steps h2 { font-size: 1.8rem; }
  .join-steps p { min-height: 0; }
  .join-plan-strip { align-items: flex-start; flex-direction: column; margin-bottom: 3.5rem; padding: 1.4rem; }
  .join-plan-strip h2 { font-size: 2.5rem; }
  .member-access { grid-template-columns: 1fr; padding-bottom: 2.8rem; }
  .member-access-card { min-height: 245px; }
  .member-access h2 { font-size: 2.35rem; }
  .members-help { align-items: flex-start; flex-direction: column; gap: 0; padding-bottom: 3rem; }
  .members-help p { margin-bottom: 0.5rem; }
  .blog-hero { padding-bottom: 2.4rem; }
  .blog-listing .story-card { min-height: 260px; }
  .blog-more { align-items: flex-start; flex-direction: column; padding-bottom: 3.5rem; }
  .blog-more h2 { font-size: 2.4rem; }
  .article-page { padding-top: 2rem; padding-bottom: 2.8rem; }
  .back-link { margin-bottom: 2rem; }
  .article-header { margin-bottom: 2rem; }
  .article-header h1 { font-size: clamp(3rem, 12vw, 4.6rem); }
  .article-deck { font-size: 1rem; }
  .article-body { padding-top: 1.4rem; }
  .article-body .article-lede { font-size: 1.4rem; }
  .article-body p { font-size: 0.92rem; }
  .article-next { padding-bottom: 3rem; }
  .article-next .story-grid { grid-template-columns: 1fr; }
  .contact-hero { gap: 1.8rem; }
  .contact-details { margin-top: 1.4rem; }
  .contact-form-card .form-card-heading h2 { font-size: 2.15rem; }
  .contact-bottom { align-items: flex-start; flex-direction: column; padding-top: 1.7rem; padding-bottom: 3rem; }
  .contact-bottom h2 { font-size: 2.4rem; }
  .not-found { min-height: 460px; }
  .not-found h1 { font-size: clamp(3.4rem, 13vw, 5rem); }
  .footer-main { grid-template-columns: 1fr; gap: 2rem; padding-top: 3rem; padding-bottom: 2rem; }
  .footer-brand > p:not(.footer-charity) { margin: 1rem 0; }
  .footer-nav { grid-template-columns: repeat(2, 1fr); gap: 1.6rem 0.8rem; }
  .footer-bottom { align-items: flex-start; flex-direction: column; justify-content: center; gap: 0.75rem; padding-top: 1rem; padding-bottom: 1rem; }
}

@media (max-width: 390px) {
  :root { --gutter: 1rem; }
  .topline a { font-size: 0.51rem; }
  .hero-copy h1 { font-size: 3.45rem; }
  .page-hero-split h1 { font-size: 3.25rem; }
  .button-row { gap: 0.85rem; }
  .button { padding-inline: 0.9rem; font-size: 0.76rem; }
  .amenity-cell { padding: 0.65rem; }
  .amenity-cell strong { font-size: 0.78rem; }
  .amenity-cell > span:last-child { font-size: 0.59rem; }
  .footer-nav { grid-template-columns: 1fr 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; }
}


/* Facility guides, embedded video, and published room rates */
.tour-link-band {
  display: grid;
  grid-template-columns: minmax(220px, 0.72fr) minmax(0, 1.28fr);
  align-items: center;
  gap: clamp(1.5rem, 4vw, 3.5rem);
}
.tour-video-frame {
  overflow: hidden;
  background: var(--ink-deep);
  aspect-ratio: 16 / 9;
}
.tour-video-frame iframe {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 260px;
  border: 0;
}
.visit-guides {
  display: grid;
  gap: 1rem;
  padding-top: 2rem;
  padding-bottom: 5rem;
}
.visit-guide {
  display: grid;
  grid-template-columns: 0.55fr 1.45fr;
  align-items: center;
  gap: clamp(1.3rem, 4vw, 3.5rem);
  padding: clamp(1rem, 3vw, 2rem);
  border: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.18);
}
.visit-guide h2 {
  margin: 0 0 0.75rem;
  font-size: clamp(1.8rem, 3.6vw, 2.8rem);
}
.visit-guide p {
  max-width: 320px;
  color: var(--muted);
  line-height: 1.65;
}
.visit-guide img {
  display: block;
  width: 100%;
  max-height: 540px;
  object-fit: contain;
  object-position: center;
  background: var(--paper);
}
.visit-guide:last-child img {
  max-height: 580px;
}
.room-rates {
  display: grid;
  gap: 0.25rem;
  margin: 0.95rem 0 1rem;
}
.room-rates p {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
  min-height: 0;
  padding: 0.45rem 0;
  margin: 0;
  border-bottom: 1px solid var(--line);
  color: var(--muted);
  font-size: 0.75rem;
}
.room-rates strong {
  color: var(--ink);
  font-size: 0.85rem;
}
.daypass-form-embed {
  width: 100%;
  overflow: hidden;
  background: #ffffff;
}
.daypass-form-embed iframe {
  display: block;
  width: 100%;
  height: 1150px;
  border: 0;
  background: #ffffff;
}
.daypass-form-link {
  display: inline-block;
  margin-top: 1rem;
  font-size: 0.82rem;
}
.form-alt-contact {
  margin-top: 0.8rem;
  color: var(--muted);
  font-size: 0.78rem;
}
.form-alt-contact a {
  color: var(--ink);
  text-decoration: underline;
  text-underline-offset: 0.15em;
}
@media (max-width: 760px) {
  .tour-link-band {
    grid-template-columns: 1fr;
    align-items: start;
  }
  .visit-guide {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
  .visit-guide img {
    max-height: 430px;
  }
  .daypass-form-embed iframe {
    height: 1450px;
  }
}


@media (max-width: 760px) {
  .contact-page { padding-top: 3.3rem; }
  .contact-page-heading { margin-bottom: 1.5rem; padding-bottom: 1.5rem; border-bottom-width: 3px; }
  .contact-page-heading h1 { font-size: clamp(3.4rem, 13vw, 5.2rem); }
  .contact-layout { grid-template-columns: 1fr; gap: 1.5rem; }
  .contact-info-panel { padding: 1.4rem; }
  .contact-info-panel h2 { font-size: 2.25rem; }
  .contact-info-group { margin-top: 1.5rem; }
  .contact-form-panel { padding: 0.3rem 0; }
  .contact-form-grid { grid-template-columns: 1fr; gap: 0.9rem; }
  .contact-form-full { grid-column: auto; }
  .contact-form textarea { min-height: 150px; }
  .contact-submit { width: 100%; }
}


.social-links { gap: 0.7rem; }
.social-links a { width: 46px; height: 46px; font-size: 0; }
.social-links a svg { display: block; width: 23px; height: 23px; }
.social-links a.social-icon-email { background: #20a876; }
.social-links a.social-icon-facebook { background: #3b5998; }
.social-links a.social-icon-x { background: #000000; }
.social-links a.social-icon-linkedin { background: #138bb8; }
.social-links a.social-icon-instagram { background: radial-gradient(circle at 30% 110%, #ffdc80 0 14%, #fcaf45 32%, #f77737 49%, #e1306c 68%, #c13584 84%, #833ab4 100%); }
.social-links a:hover { filter: brightness(0.88); transform: translateY(-2px); }
.social-links a:focus-visible { outline: 3px solid var(--brand-blue); outline-offset: 3px; }

@media (max-width: 560px) {
  .social-links { gap: 0.55rem; }
  .social-links a { width: 42px; height: 42px; }
  .social-links a svg { width: 22px; height: 22px; }
}
