/* A phone-first reading path. Desktop composition and original content are preserved. */
.mobile-dock,.mobile-shortcuts,.gallery-navigation,.film-selector { display:none; }
.mobile-disclosure>summary { display:none; }
.mobile-disclosure:not([open])>*:not(summary) { display:block; }
@media (min-width:641px) {
  .intro-copy>.mobile-disclosure>p { margin-top:24px; font-size:1rem; line-height:1.85; color:#b4bdb3; }
}

@media (max-width:850px) {
  :root { --mobile-header:68px; }
  html { scroll-padding-top:calc(var(--mobile-header) + 16px + env(safe-area-inset-top)); }
  .nav,.nav.scrolled { height:calc(var(--mobile-header) + env(safe-area-inset-top)); gap:12px; }
  .brand-emblem { width:44px; height:44px; padding:3px; }
  .brand-mark { width:36px; height:36px; }
  .brand-name { font-size:.875rem; letter-spacing:.14em; }
  .brand-place { font-size:.6875rem; letter-spacing:.14em; }
  .menu-btn { min-height:44px; min-width:62px; background:transparent; }
  .nav-links.is-open { padding:12px 20px 24px; max-height:calc(100svh - var(--mobile-header) - env(safe-area-inset-top)); }
  .nav-links a:not(.nav-cta) { min-height:56px; font-size:1.125rem; }
  .nav-links .nav-cta { min-height:52px; }
  .nav-links a:focus-visible { outline-offset:-3px; }
  body:has(.nav.menu-open) { overflow:hidden; }

  .mobile-dock:not([hidden]) {
    display:grid; grid-template-columns:1fr 1.5fr; gap:10px; position:fixed; z-index:9;
    bottom:0; left:0; right:0; border-top:1px solid #d2b17d50; background:#101713f5;
    padding:10px max(20px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));
    box-shadow:0 -8px 24px #0002; backdrop-filter:blur(16px);
  }
  .mobile-dock a { display:flex; justify-content:center; align-items:center; min-height:48px; padding:10px; font-size:.9375rem; line-height:1.4; text-align:center; }
  .mobile-dock .dock-call { border:1px solid #d2b17d70; color:#f5f2ea; }
  .mobile-dock .dock-plan { background:#eadfc9; color:#101713; }
  .mobile-dock a:focus-visible { outline-offset:2px; }
  .film-selector { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; margin:0 auto 20px; max-width:640px; }
  .film-selector button { min-height:52px; padding:10px 8px; border:1px solid #d2b17d50; color:#dbdece; background:none; font-size:.875rem; line-height:1.4; cursor:pointer; }
  .film-selector button[aria-selected="true"] { background:#eadfc9; color:#101713; border-color:#eadfc9; }
  .film-grid { display:block; }
  .film-grid .film-frame[hidden] { display:none; }
  .film-grid .film-frame:focus-visible { outline:2px solid var(--gold); outline-offset:6px; }
  .film-frame { margin-bottom:24px; }
  .film-label { min-height:0; padding:16px 0 8px; }
  .film-actions { gap:12px; justify-content:space-between; padding-bottom:8px; }
  .film-play { min-height:48px; flex:1; max-width:200px; }
  .film-actions .film-download { font-size:.8125rem; min-height:48px; display:flex; align-items:center; }
  .film-playback-note { margin-top:10px; padding:0; border:0; }
  .reveal-ready { opacity:1; transform:none; transition:none; }
  footer { padding-bottom:calc(88px + env(safe-area-inset-bottom)); }
  .ranch-lightbox { width:100%; max-height:100svh; padding:16px max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left)); }
  .ranch-lightbox button { min-width:48px; min-height:48px; }
}

@media (max-width:640px) {
  :root { --gutter:20px; --section-space:48px; --hero-image-height:clamp(220px,66vw,290px); }
  .hero { background:#101713; padding-bottom:22px; }
  .hero::before {
    top:calc(var(--mobile-header) + env(safe-area-inset-top)); height:var(--hero-image-height);
    background:linear-gradient(180deg,#10171300 62%,#101713 100%),url('assets/jdg-lead-sunrise.jpg') 94% 58%/cover no-repeat;
  }
  .hero-inner { padding:calc(var(--mobile-header) + var(--hero-image-height) - 15px + env(safe-area-inset-top)) var(--gutter) 0; }
  .hero .eyebrow { font-size:.6875rem; letter-spacing:.06em; line-height:1.5; }
  .hero .eyebrow::before { width:20px; }
  .hero h1 { font-size:clamp(2.85rem,13vw,3.6rem); line-height:.98; margin:16px 0 18px; }
  .hero-copy { max-width:36ch; font-size:1.0625rem; line-height:1.6; }
  .hero-copy-detail { font-size:.875rem; line-height:1.6; margin-top:10px; max-width:38ch; color:#bdc6b9; }
  .hero-actions { margin-top:22px; gap:10px; }
  .hero-actions .primary-link,.hero-actions .text-link { min-height:52px; font-size:.875rem; }
  .hero-foot { margin-top:22px; gap:8px 18px; font-size:.6875rem; letter-spacing:.1em; }
  .hero-foot span:last-child { display:none; }
  .mobile-shortcuts { display:flex; gap:0; padding:0 var(--gutter); background:#19251d; border-block:1px solid #d2b17d30; }
  .mobile-shortcuts a { flex:1; display:flex; justify-content:center; align-items:center; text-align:center; min-height:52px; padding:10px 4px; font-size:.875rem; }
  .mobile-shortcuts a+a { border-left:1px solid #d2b17d30; }
  .mobile-shortcuts a:focus-visible { outline-offset:-4px; }

  .intro { padding-block:44px 32px; gap:22px; }
  .intro h2,.values-heading h2,.gallery h2,.stay-copy h2,.film h2,.contact h2 { font-size:clamp(2.2rem,9.8vw,2.9rem); line-height:1.06; }
  .section-kicker,.eyebrow { font-size:.6875rem; letter-spacing:.12em; line-height:1.6; }
  .section-kicker { margin-bottom:14px; }
  .intro-copy p:first-child,.intro-copy p,.intro-copy p+p { font-size:1rem; line-height:1.7; }
  .intro-copy .text-link { margin-top:12px; min-height:48px; }
  .mobile-disclosure { border-block:1px solid #d2b17d40; margin-top:20px; }
  .mobile-disclosure>summary { display:flex; align-items:center; justify-content:space-between; gap:20px; list-style:none; min-height:56px; padding:12px 0; color:#e5d3b3; font-size:.9375rem; font-weight:500; cursor:pointer; }
  .mobile-disclosure>summary::-webkit-details-marker { display:none; }
  .mobile-disclosure>summary::after { content:'+'; font-size:1.5rem; line-height:1; font-weight:400; flex-shrink:0; }
  .mobile-disclosure[open]>summary::after { content:'−'; }
  .mobile-disclosure>summary:focus-visible { outline:2px solid var(--gold); outline-offset:4px; }
  .mobile-disclosure:not([open])>*:not(summary) { display:none; }
  .mobile-disclosure[open]>p { padding-bottom:18px; color:#bdc5b9; }
  .field { gap:24px; padding-bottom:44px; }
  .field-feature { aspect-ratio:3/2; }
  .field-feature figcaption { left:16px; bottom:16px; }
  .field-feature figcaption strong { font-size:1.65rem; }
  .field-feature figcaption span { display:none; }
  .field-card { display:grid; grid-template-columns:96px minmax(0,1fr); gap:0 18px; }
  .field-card img { grid-row:1/3; width:100%; height:136px; aspect-ratio:auto; margin:0; object-position:54% center; }
  .field-card .section-kicker { align-self:end; margin-bottom:10px; font-size:.6875rem; }
  .field-card h3 { font-size:2rem; line-height:1.05; margin:0; align-self:start; }
  h3 { overflow-wrap:anywhere; }
  .field-card p { grid-column:1/-1; margin-top:18px; font-size:1rem; line-height:1.7; }
  .values { gap:22px; }
  .values-heading { margin:0; }
  .value { grid-template-columns:52px minmax(0,1fr); gap:0 14px; padding-top:20px; }
  .pursuit-number { font-size:2.75rem; margin-bottom:7px; }
  .value-num { font-size:.625rem; letter-spacing:.04em; }
  .value h3 { font-size:1.9rem; margin:0; align-self:center; }
  .value p { margin-top:12px; line-height:1.7; }

  .gallery-head { gap:18px; margin-bottom:24px; }
  .gallery-head p { line-height:1.65; }
  .gallery-grid {
    display:flex; overflow-x:auto; gap:14px; scroll-snap-type:x mandatory; scroll-padding-inline:0;
    overscroll-behavior-x:contain; scrollbar-width:thin; scrollbar-color:#80643c50 transparent; padding-bottom:8px;
    -webkit-overflow-scrolling:touch;
  }
  .gallery-grid figure { flex:0 0 92%; scroll-snap-align:start; }
  .gallery-grid figure:first-child,.gallery-grid figure:not(:first-child) { aspect-ratio:auto; }
  .gallery-grid figure:first-child .gallery-open,.gallery-open { aspect-ratio:4/3; }
  .gallery-grid img { object-fit:cover; }
  .gallery-grid figcaption { padding:14px 0 8px; }
  .gallery-grid figcaption strong { font-size:1.8rem; }
  .gallery-grid figcaption span { font-size:.6875rem; }
  .gallery-grid figure:hover img { transform:none; }
  .gallery-navigation { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:12px; }
  .gallery-status { font-size:.8125rem; color:#565849; }
  .gallery-navigation>div { display:flex; gap:8px; }
  .gallery-navigation button { min-width:48px; min-height:48px; padding:8px 16px; background:none; color:#142119; border:1px solid #80643c60; font-size:1.125rem; cursor:pointer; }
  .gallery-navigation button:disabled { opacity:.35; cursor:default; }
  .gallery-navigation button:focus-visible { outline-color:#68491d; }

  .stay-grid { gap:26px; }
  .stay-copy { order:-1; }
  .stay-copy h2 { margin:16px 0 22px; }
  .stay-copy>p { font-size:1rem; line-height:1.7; }
  .stay-facts { margin-top:24px; }
  .stay-fact { padding:18px 0; }
  .stay-fact .fact-number { font-size:3.4rem; margin:4px 0; }
  .stay-fact+ .stay-fact strong { font-size:2rem; margin-bottom:10px; }
  .stay-fact>span { font-size:.8125rem; line-height:1.5; }
  .stay-fact .fact-prefix { font-size:.6875rem; }
  .amenities { margin-top:20px; gap:9px 16px; font-size:.8125rem; }
  .stay-photos { grid-template-columns:1.5fr 1fr; gap:10px; padding:0; align-items:stretch; }
  .stay-main,.stay-inset { width:100%; height:clamp(190px,57vw,250px); aspect-ratio:auto; object-fit:cover; padding:0; border:0; margin:0; box-shadow:none; }
  .stay-main { object-position:48% center; }
  .stay-inset { object-position:48% center; }
  .amenity-showcase { margin-top:36px; padding-top:32px; }
  .amenity-heading { gap:18px; margin-bottom:24px; }
  .amenity-heading h3 { font-size:2.2rem; margin-top:14px; }
  .amenity-heading p { font-size:1rem; line-height:1.7; }
  .amenity-image { margin-bottom:24px; }
  .amenity-image img { aspect-ratio:16/10; }
  .amenity-image figcaption { font-size:.8125rem; margin-top:12px; line-height:1.6; }
  .outdoor-amenities { gap:26px; margin:26px 0; }
  .outdoor-amenities article { display:grid; grid-template-columns:108px minmax(0,1fr); gap:0 18px; align-items:start; }
  .amenity-photo-link img { aspect-ratio:3/4; object-position:center; }
  .amenity-photo-link span { font-size:.6875rem; right:5px; bottom:5px; padding:4px 5px; }
  .outdoor-caption { padding:0; }
  .outdoor-caption .section-kicker { font-size:.625rem; letter-spacing:.08em; margin-bottom:10px; }
  .outdoor-caption h3 { font-size:1.75rem; margin-bottom:12px; }
  .outdoor-caption p { font-size:.9375rem; line-height:1.65; }
  .amenity-details { gap:16px; padding-bottom:20px; }
  .amenity-details article { padding-top:16px; }
  .amenity-details h4 { font-size:1rem; margin-bottom:6px; }
  .amenity-details p { font-size:.9375rem; line-height:1.65; }
  .amenity-showcase .text-link { margin-top:18px; min-height:48px; }
  .film-head { margin-bottom:24px; }
  .film h2 { margin-top:16px; }
  .film-head .film-aside { margin-top:20px; }
  .film-aside .film-note { font-size:1rem; line-height:1.7; }
  .film-playback-note { font-size:.8125rem; }
  .statement { padding-block:44px; }
  .statement blockquote { font-size:clamp(2rem,8.8vw,2.65rem); line-height:1.12; margin-top:22px; }
  .statement blockquote br { display:none; }
  .contact { gap:26px; }
  .contact-intro { margin-top:20px; font-size:1rem; line-height:1.7; }
  .contact-details { padding:20px; gap:4px; }
  .contact-details .contact-number { font-size:2rem; }
  .contact-details a { padding-block:12px 16px; }
  footer { font-size:.75rem; }
}

@media (max-width:360px) {
  .outdoor-amenities article { grid-template-columns:90px minmax(0,1fr); gap:14px; }
  .outdoor-caption h3 { font-size:1.55rem; }
  .field-card { grid-template-columns:82px minmax(0,1fr); gap:0 14px; }
  .field-card h3 { font-size:1.8rem; }
  .film-actions { display:grid; grid-template-columns:1fr; }
  .film-play { max-width:none; }
  .film-actions .film-download { justify-content:center; }
}

@media (max-height:480px) and (max-width:850px) {
  :root { --mobile-header:58px; }
  .mobile-dock:not([hidden]) { padding-block:6px; }
  .mobile-dock a { min-height:44px; padding-block:6px; }
}

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