/* Shared brand header and disconnected booking experience. */
body > header { background:var(--white,#fff); border-bottom:1px solid rgba(8,59,76,.1); }
body > .topbar {
  padding:.4rem 1rem; color:rgba(255,255,255,.88); background:var(--atlantic);
  font-size:.8125rem; line-height:1.5; letter-spacing:.015em;
}
body > header > nav {
  display:flex; flex-direction:row; align-items:center; justify-content:space-between;
  width:100%; max-width:none; margin:0;
  min-height:0; padding:1rem clamp(1.5rem,4vw,4.5rem); gap:clamp(1.25rem,4vw,3rem); border:0;
  border-radius:0; box-shadow:none; color:var(--atlantic); background:transparent;
}
nav .brand { display:block; flex:0 1 23rem; min-width:0; max-width:100%; border-radius:.25rem; }
nav .brand-logo {
  display:block; width:100%; max-width:100%; height:auto; aspect-ratio:810 / 205;
  /* Exact approved logo: crop the existing board in CSS without redrawing it. */
  background:url("assets/sds-brand-board.png") 6.9606% 7.337% / 206.4198% auto no-repeat;
  /* Lift the board's paper tone so its rectangular edge blends into the header. */
  filter:brightness(1.14) contrast(1.15); mix-blend-mode:multiply;
}
nav .nav-links { flex:0 0 auto; flex-wrap:wrap; align-items:center; gap:clamp(1.25rem,3vw,2.25rem); }
nav .nav-links a {
  display:flex; align-items:center; min-height:44px; padding:.5rem .15rem;
  color:var(--atlantic); font-size:.9375rem; font-weight:700; line-height:1.5;
  text-decoration:none; text-underline-offset:6px; text-decoration-thickness:1px;
}
nav .nav-links a:hover,nav .nav-links a[aria-current="page"] { color:var(--teal); text-decoration:underline; }
.trip-search { max-width:1040px; margin:1rem auto .5rem; padding:1rem; border:1px solid var(--line); border-radius:1rem; background:var(--shell); }
.trip-form { display:grid; grid-template-columns:1fr 1fr .8fr auto; align-items:end; gap:.75rem; }
.trip-field { display:grid; gap:.35rem; min-width:0; }
.trip-field label { color:var(--atlantic); font-size:.875rem; font-weight:700; }
.trip-field input,.trip-field select {
  display:block; width:100%; min-width:0; max-width:100%; min-height:48px;
  padding:.65rem .7rem; border:1px solid rgba(8,59,76,.25); border-radius:.5rem;
  color:var(--ink); background:#fff; font:inherit; font-size:1rem;
}
.trip-submit { min-height:48px; padding:.65rem 1.25rem; color:#fff; background:var(--teal); border:0; border-radius:.5rem; font:inherit; font-weight:800; cursor:pointer; }
.trip-submit:hover { background:var(--atlantic); }
.trip-notice { margin:.65rem 0 0; color:var(--muted); font-size:.875rem; line-height:1.5; }
.trip-summary { margin:0 0 1rem; padding:.85rem 1rem; background:var(--foam); border-radius:.65rem; font-size:.9375rem; }
.trip-summary[hidden],.trip-feedback[hidden] { display:none; }
.trip-feedback { margin:1rem 0 0; padding:.8rem; color:var(--atlantic); background:var(--foam); border-radius:.65rem; font-size:.9375rem; }
.booking-card { scroll-margin-top:1rem; }
.booking-card .trip-form { grid-template-columns:1fr 1fr; margin-top:1rem; }
.booking-card .trip-field:last-of-type,.booking-card .trip-submit { grid-column:1 / -1; }
.booking-card .trip-notice { font-size:.875rem; }
.booking-card .trip-field input { padding:.6rem .4rem; }
.booking-card .trip-feedback { grid-column:1 / -1; }
.booking-powered { margin:.9rem 0 0; font-size:.875rem; color:var(--muted); }
.booking-card h2 { font-size:2rem; }
.stay-facts { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin:1.5rem 0; }
.stay-facts div { min-width:0; }
.stay-facts dt { color:var(--muted); font-size:.875rem; }
.stay-facts dd { margin:.25rem 0 0; font-size:1rem; font-weight:700; }
body > header > .hero { padding:36px 0; }
body > header > .hero h1 { font-size:clamp(2.5rem,4.4vw,4rem); }
.photo-strip img { height:auto; aspect-ratio:4 / 3; object-fit:contain; background:var(--foam); }
.photo-strip { align-items:start; }
.stay-carousel { max-width:1040px; }
/* Restore the original overlapping arc; native rail remains the no-JS fallback. */
.property-rail { display:flex; gap:1rem; overflow-x:auto; padding:16px 8px 28px; scroll-snap-type:x mandatory; }
.property-rail .quick-card { flex:0 0 304px; scroll-snap-align:center; }
.property-rail .quick-card h3 { font-size:1.6rem; }
.property-rail .quick-card .eyebrow { font-size:.875rem; }
.property-rail .quick-card p { font-size:1rem; }
.property-rail.arc-ready { position:relative; display:block; overflow:hidden; height:450px; padding:0; touch-action:pan-y pinch-zoom; scroll-snap-type:none; cursor:grab; isolation:isolate; }
.arc-ready .quick-card { position:absolute; top:18px; left:50%; width:var(--card-width,304px); transform-origin:center center; will-change:transform; touch-action:pan-y pinch-zoom; user-select:none; -webkit-user-select:none; -webkit-touch-callout:none; -webkit-user-drag:none; }
.arc-ready .quick-card img { touch-action:pan-y pinch-zoom; pointer-events:none; }
.arc-ready .quick-card[data-active="true"] { box-shadow:0 12px 32px rgba(5,38,46,.15); border-color:rgba(30,122,138,.35); }
.property-rail.is-dragging,.is-dragging .quick-card { cursor:grabbing; user-select:none; }
.carousel-arrow:disabled { opacity:.35; cursor:default; }
.stay-carousel .carousel-controls { margin-top:0; }
.collection-note { font-size:.875rem; }
@media (max-width:900px) {
  .content > aside { order:-1; }
  .content { gap:2rem; }
  .booking-card .trip-form { grid-template-columns:1fr 1fr .8fr auto; }
  .booking-card .trip-field:last-of-type,.booking-card .trip-submit { grid-column:auto; }
}
@media (max-width:700px) {
  body > header > nav { gap:1.25rem; padding:.8rem 1.25rem; }
  nav .brand { flex:0 1 18rem; }
  nav .nav-links { gap:1.25rem; }
  nav .nav-links a { font-size:.875rem; }
  .trip-form,.booking-card .trip-form { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .booking-card .trip-field:last-of-type,.booking-card .trip-submit { grid-column:auto; }
  .trip-search { padding:.85rem; }
  .property-rail:not(.arc-ready) .quick-card { flex-basis:84%; }
  .property-rail:not(.arc-ready) { padding-inline:14px; scroll-padding-inline:14px; }
  .photo-strip img:first-child { height:auto; }
  .hero h1 { font-size:clamp(2.5rem,9vw,3.5rem); }
}
@media (max-width:620px) {
  body > header > nav { flex-direction:column; gap:.65rem; padding:1rem 0 0; }
  nav .brand { flex:none; width:min(21rem,calc(100% - 2.5rem)); }
  nav .nav-links { width:100%; justify-content:space-evenly; gap:1rem; padding:.25rem 1rem; background:var(--foam); border-top:1px solid var(--line); }
  nav .nav-links a { justify-content:center; flex:1; font-size:.9375rem; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
.experience-intro { padding-block:2.5rem; }
.experience-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.25rem; margin-top:2rem; }
.experience-card { padding:1.5rem; background:white; border:1px solid var(--line); border-radius:1rem; }
.experience-card h2,.experience-intro h2 { font-size:2.2rem; }
.experience-card li { margin-bottom:.65rem; }
.experience-card ul { padding-left:1.2rem; }
.experience-intro .button { max-width:26rem; }
#hospitable-widget { min-height:320px; margin-top:1rem; }
.photo-strip a { min-width:0; }
.photo-strip a img { border-radius:.6rem; }
@media(max-width:900px){.experience-grid{grid-template-columns:1fr}.photo-strip a:first-child{grid-column:1/-1}}
