/* A story-led finish for the established JDG Ranch layout. */
:root { --gold:#d2b17d; --muted:#b4bdb3; --edge:rgba(227,218,195,.18); }
body { -webkit-font-smoothing:antialiased; }
h2 em,h3 em { color:var(--gold); font-weight:400; }
.nav { border-color:#e7d3ac40; }
.nav::after {
  content:''; position:absolute; bottom:-1px; left:0; width:100%; height:2px;
  background:var(--gold); transform:scaleX(var(--reading-progress,0)); transform-origin:left;
  pointer-events:none;
}
.nav.scrolled { background:#101713f5; box-shadow:0 10px 35px #0002; }
.brand-emblem { box-shadow:0 0 0 5px #d2b17d09; }
.nav-cta { background:#f5f2ea0a; }
.hero h1 { letter-spacing:-.045em; }
.hero h1 em { color:#ead4af; }
.hero-copy { max-width:430px; font-size:1.1875rem; line-height:1.6; color:#fff5e5; }
.hero-copy-detail { display:block; max-width:37ch; margin-top:12px; color:#deded4; font-size:.9375rem; line-height:1.75; }
.hero .primary-link { background:#eadfc9; border:1px solid #eadfc9; }
.hero .primary-link:hover { background:#fff8eb; border-color:#fff8eb; }
.hero-actions .text-link { border-bottom-color:#d2b17d70; }
.hero-foot { color:#d8d4c9; }
.scroll-note { padding-bottom:8px; border-bottom:1px solid #d2b17d70; }
.intro { padding-top:clamp(80px,8vw,128px); padding-bottom:64px; }
.intro h2 { line-height:1.07; }
.intro-copy { border-left:1px solid #d2b17d50; padding-left:36px; }
.intro-copy p:first-child { font-size:1.125rem; line-height:1.85; color:#ece9e1; }
.intro-copy p+p { color:#b4bdb3; }
.field { align-items:start; }
.field-feature { position:relative; height:590px; overflow:hidden; isolation:isolate; }
.field-feature .field-wide { width:100%; height:100%; object-fit:cover; object-position:60% center; }
.field-feature::after {
  content:''; position:absolute; inset:55% 0 0; z-index:0;
  background:linear-gradient(transparent,#061109d9); pointer-events:none;
}
.field-feature figcaption { position:absolute; z-index:1; left:32px; right:24px; bottom:28px; color:#fff8ec; }
.field-feature figcaption span { display:block; font-size:.75rem; letter-spacing:.15em; text-transform:uppercase; margin-bottom:9px; }
.field-feature figcaption strong { font:400 clamp(1.9rem,2.8vw,2.8rem)/1.1 'Cormorant Garamond',Georgia,serif; }
.field-card img { height:290px; }
.field-card .section-kicker { font-size:.8125rem; }
.field-card h3 { line-height:1.1; }
.values { background:#142119; border-block-color:#d2b17d30; }
.values-heading { margin-bottom:48px; }
.value { padding-top:25px; border-top-color:#d2b17d60; }
.value-num { display:flex; align-items:center; gap:18px; font-size:.75rem; }
.pursuit-number { font:400 4.5rem/.95 'Cormorant Garamond',Georgia,serif; color:#d2b17da6; letter-spacing:-.06em; }
.value h3 { max-width:330px; margin-block:26px 18px; }
.value p { max-width:37ch; color:#bdc4b9; line-height:1.85; }
.gallery { background:#ede9df; }
.gallery .section-kicker { color:#775c37; }
.gallery h2 em { color:#80643c; }
.gallery-grid { gap:22px; }
.gallery-grid figure:first-child,.gallery-grid figure:not(:first-child) { aspect-ratio:auto; }
.gallery-grid figure:first-child img { object-position:50% 66%; }
.gallery-grid figure { background:none; }
.gallery-open { display:block; position:relative; width:100%; height:auto; aspect-ratio:3/2; cursor:zoom-in; overflow:hidden; background:#162319; }
.gallery-open img { position:absolute; inset:0; width:100%; height:100%; }
.gallery-grid figure:first-child .gallery-open { aspect-ratio:16/10; }
.gallery-open:focus-visible { outline:3px solid #fff4d8; outline-offset:-7px; }
.gallery-grid figure::after { content:none; }
.gallery-grid figcaption { position:static; padding:20px 0 12px; color:#162319; text-transform:none; letter-spacing:0; pointer-events:none; }
.gallery-grid figcaption span { display:block; font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; margin-bottom:7px; color:#79613e; }
.gallery-grid figcaption strong { display:block; font:400 clamp(1.9rem,3vw,3rem)/1.1 'Cormorant Garamond',Georgia,serif; }
.gallery-expand {
  position:absolute; z-index:2; right:28px; bottom:26px; display:grid; place-items:center;
  width:46px; height:46px; border:1px solid #f3e4c880; border-radius:50%;
  color:#fff7e9; background:#10171355; font-size:1.75rem; font-weight:400; line-height:1;
  transition:background .2s,border-color .2s;
}
.gallery-open:hover .gallery-expand { background:#ece0c9; border-color:#ece0c9; color:#101713; }
.stay { background:#1a2920; }
.stay-main { box-shadow:0 18px 45px #050b0629; }
.stay-inset { border-left:3px solid #d2b17d99; padding-left:12px; }
.stay-copy>p { color:#c3cbbf; }
.stay-facts { align-items:stretch; border-color:#d2b17d50; }
.stay-fact { display:flex; flex-direction:column; justify-content:end; padding-block:24px; }
.stay-fact strong { display:block; }
.stay-fact .fact-prefix { color:#c6cdbe; font-family:'DM Sans',sans-serif; font-size:.8125rem; letter-spacing:.13em; text-transform:uppercase; }
.stay-fact .fact-number { color:#ead4af; display:block; font:400 5.5rem/.95 'Cormorant Garamond',Georgia,serif; letter-spacing:-.035em; margin:7px 0 8px; }
.stay-fact>span { font-size:.875rem; }
.stay-fact+ .stay-fact strong { margin-bottom:12px; font-size:2.8rem; }
.amenities { font-size:.875rem; gap:12px 22px; }
.amenity-showcase { border-top-color:#d2b17d50; }
.amenity-image figcaption { max-width:650px; padding-left:18px; border-left:1px solid var(--gold); line-height:1.7; }
.amenity-details article { border-top-color:#d2b17d55; }
.amenity-details h4 { color:#ecdfc6; font-size:1.125rem; }
.amenity-details p { color:#bac5b5; }
.amenity-photo-link span { border:1px solid #d2b17d66; backdrop-filter:blur(6px); }
.film { background:#0a110d; border-block-color:#d2b17d30; }
.film-head { margin-bottom:40px; }
.film-head .film-aside { flex:0 1 360px; padding-top:36px; }
.film-aside .film-note { max-width:none; padding:0; margin:0; font-size:1.0625rem; line-height:1.8; color:#d6ddcf; }
.film-playback-note { margin-top:18px; padding-left:16px; border-left:1px solid #d2b17d70; font-size:.875rem; line-height:1.8; color:#b4bdb3; }
.film h2 { line-height:1.05; }
.film-grid { gap:26px; }
.film-frame { border-bottom-color:#d2b17d4d; }
.film video { outline:1px solid #d2b17d30; outline-offset:-1px; }
.film-label { padding-top:23px; }
.film-label strong { font-size:1.125rem; }
.film-label span { color:#d2b17d; font-size:.8125rem; }
.film-download { color:#bdc5b9; text-decoration-color:#d2b17d66; text-underline-offset:6px; }
.film-actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px 20px; padding-bottom:12px; }
.film-actions .film-download { margin:0; }
.film-play { display:none; min-height:48px; padding:10px 20px; border:1px solid #d2b17d90; color:#f5f2ea; background:#1a2920; cursor:pointer; font-size:.9375rem; }
.film-play:hover { color:#101713; background:#eadfc9; }
.statement { padding-block:clamp(70px,8vw,120px); background:#ede9df; }
.statement .eyebrow { color:#79613e; }
.statement blockquote { max-width:970px; margin:36px auto 0; }
.statement blockquote em { color:#80643c; }
.contact { align-items:center; background:linear-gradient(115deg,#101713,#19271d); }
.contact h2 { line-height:1.08; }
.contact-details { padding:32px; background:#111c16; border:1px solid #d2b17d66; }
.contact-details a { display:flex; flex-direction:column; align-items:start; gap:7px; padding:15px 0 19px; font-size:1rem; }
.contact-label { color:#cbb187; font-size:.75rem; line-height:1.5; text-transform:uppercase; letter-spacing:.13em; }
.contact-details .contact-number { font:400 clamp(1.8rem,3.1vw,3rem)/1.1 'Cormorant Garamond',Georgia,serif; letter-spacing:-.015em; }
.contact-details address { font-size:.9375rem; line-height:1.8; }
footer { align-items:center; padding-block:32px; }
.footer-brand { font:400 2rem/1.2 'Cormorant Garamond',Georgia,serif; letter-spacing:.05em; }
.reveal-ready { opacity:0; transform:translateY(16px); transition:opacity .65s ease,transform .65s ease; }
.reveal-ready.is-revealed { opacity:1; transform:none; }

/* A quiet, keyboard-accessible gallery with no extra image downloads until opened. */
.ranch-lightbox {
  width:min(1320px,96vw); max-width:none; max-height:94svh; margin:auto;
  padding:20px 24px; border:1px solid #d2b17d66; background:#0d1610; color:#f5f2ea;
  box-shadow:0 30px 100px #0009; overflow:auto;
}
.ranch-lightbox::backdrop { background:#030905eb; backdrop-filter:blur(9px); }
.lightbox-top,.lightbox-bottom { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.lightbox-top { margin-bottom:16px; }
.lightbox-top>span { color:#d2b17d; font-size:.8125rem; text-transform:uppercase; letter-spacing:.13em; }
.ranch-lightbox button { min-height:44px; padding:8px 14px; border:1px solid #d2b17d66; color:#f5f2ea; background:none; cursor:pointer; font-size:.875rem; }
.ranch-lightbox button:hover { background:#d2b17d; color:#101713; }
.lightbox-close { display:flex; align-items:center; gap:12px; }
.lightbox-close span { font-size:1.5rem; line-height:1; }
.lightbox-media { display:grid; place-items:center; min-height:200px; background:#070d09; }
.lightbox-media img { width:100%; max-height:calc(94svh - 180px); height:auto; object-fit:contain; }
.lightbox-bottom { margin-top:18px; flex-wrap:wrap; }
.lightbox-bottom>div:first-child { display:flex; align-items:baseline; gap:18px; min-width:0; }
.lightbox-count { color:#cbb187; font-size:.8125rem; white-space:nowrap; }
#lightbox-caption { font:400 1.8rem/1.2 'Cormorant Garamond',Georgia,serif; }
.lightbox-controls { display:flex; gap:10px; flex-shrink:0; }

@media (min-width:1051px) {
  .amenity-details { grid-template-columns:repeat(4,minmax(0,1fr)); gap:32px; }
  .value h3 { min-height:2.2em; }
}
@media (min-width:641px) and (max-width:1000px) {
  .intro-copy { padding-left:24px; }
  .field-feature { height:540px; }
  .field-card img { height:250px; }
  .field-feature figcaption { left:22px; right:20px; }
  .field-feature figcaption strong { font-size:2rem; }
  .contact-details { padding:24px; }
}
@media (max-width:850px) {
  .hero-copy { max-width:380px; }
  .film-play { display:block; }
  .film-head .film-aside { flex:auto; max-width:560px; padding-top:0; }
  .value { display:grid; grid-template-columns:80px 1fr; gap:0 22px; }
  .value-num { grid-row:1/3; display:block; }
  .pursuit-number { display:block; font-size:3.7rem; margin-bottom:12px; }
  .value h3 { margin-top:0; max-width:none; }
  .value p { max-width:none; }
  .film-label { padding-top:17px; }
}
@media (max-width:640px) {
  .hero-copy { max-width:33ch; font-size:1.125rem; }
  .hero-copy-detail { margin-top:10px; font-size:.9375rem; }
  .hero h1 { letter-spacing:-.035em; }
  .hero h1 em { white-space:nowrap; }
  .hero-actions .primary-link { gap:0; }
  .intro { padding-top:64px; padding-bottom:38px; }
  .intro-copy { padding:0; border:0; }
  .intro-copy p:first-child { font-size:1.0625rem; line-height:1.8; }
  .field-feature { height:auto; aspect-ratio:4/3; }
  .field-feature .field-wide { height:100%; }
  .field-feature figcaption { left:20px; right:20px; bottom:20px; }
  .field-feature figcaption span { font-size:.6875rem; letter-spacing:.08em; }
  .field-feature figcaption strong { font-size:1.85rem; }
  .field-card img { height:auto; }
  .field-card h3 { font-size:clamp(2.25rem,10vw,3rem); }
  .values-heading { margin-bottom:8px; }
  .value { grid-template-columns:62px minmax(0,1fr); gap:0 18px; }
  .value-num { letter-spacing:.06em; line-height:1.5; }
  .pursuit-number { font-size:3.5rem; }
  .value h3 { font-size:clamp(1.8rem,8vw,2.5rem); line-height:1.1; }
  .value p { grid-column:1/-1; margin-top:14px; font-size:1rem; }
  .gallery-grid { gap:18px; }
  .gallery-grid figure:first-child { aspect-ratio:auto; }
  .gallery-grid figure:first-child .gallery-open { aspect-ratio:3/2; }
  .gallery-grid figcaption { padding:16px 0 12px; }
  .gallery-grid figcaption span { font-size:.6875rem; letter-spacing:.08em; margin-bottom:5px; }
  .gallery-grid figcaption strong { font-size:2rem; }
  .gallery-expand { width:44px; height:44px; right:14px; bottom:14px; }
  .stay-inset { border-left:2px solid #d2b17d99; padding-left:10px; }
  .stay-fact .fact-number { font-size:4.7rem; }
  .stay-fact+ .stay-fact strong { font-size:2.4rem; }
  .amenity-image figcaption { padding-left:14px; }
  .contact-details { padding:22px; }
  .contact-details a { font-size:1rem; padding-block:14px 20px; min-height:68px; }
  .contact-details .contact-number { font-size:2.5rem; }
  .contact-details address { font-size:1rem; }
  footer { gap:16px; }
  .footer-brand { font-size:1.7rem; }
  .ranch-lightbox { width:100vw; max-height:100svh; padding:16px; border-inline:0; }
  .lightbox-top { gap:16px; }
  .lightbox-top>span { font-size:.75rem; }
  .lightbox-media img { max-height:65svh; }
  .lightbox-bottom { gap:16px; align-items:end; }
  .lightbox-bottom>div:first-child { display:block; }
  #lightbox-caption { font-size:1.5rem; margin-top:5px; }
  .lightbox-controls { gap:6px; }
  .ranch-lightbox button { padding-inline:10px; }
}
@media (max-height:480px) and (max-width:850px) {
  .lightbox-media { min-height:0; }
  .lightbox-media img { max-height:42svh; }
  .ranch-lightbox { max-height:96svh; padding-block:12px; }
  .lightbox-top { margin-bottom:10px; }
  .lightbox-bottom { margin-top:10px; }
}
@media (prefers-reduced-motion:reduce) {
  .reveal-ready { opacity:1; transform:none; }
}
@media (hover:none) { .film-play { display:block; } }
