/* ============================================================
   J RANCH — "Dawn Blind" design system
   Palette: forest woods + aged brass + parchment
   Type: Cinzel (engraved display) / Saira Condensed (labels) / Saira (body)
   ============================================================ */

:root{
  /* palette — black theme */
  --ink:      #050505;   /* true black */
  --forest:   #0e0e0e;   /* primary dark surface */
  --forest-2: #171717;   /* raised dark surface */
  --field:    #232323;   /* card hover / mid surface */
  --brass:    #c79a46;   /* aged brass — THE accent */
  --brass-hi: #e0bd72;   /* brass highlight */
  --brass-lo: #c79a46;   /* brass on black (kept bright for contrast) */
  --bone:     #efe9d8;   /* parchment — text on dark */
  --bone-2:   #0a0a0a;   /* page background */
  --surface:  #131313;   /* card / row surface */
  --stone:    #b8ae96;   /* muted taupe — captions, secondary */
  --stone-dk: #9d947e;   /* secondary text on black */
  --oxblood:  #6b2a22;   /* rare deep accent */
  --line-dk:  rgba(199,154,70,.28);   /* brass hairline on dark */
  --line-lt:  rgba(199,154,70,.16);   /* soft brass hairline on surfaces */

  /* type */
  --display: "Cinzel", Georgia, serif;
  --label:   "Saira Condensed", "Arial Narrow", sans-serif;
  --body:    "Saira", system-ui, -apple-system, sans-serif;

  /* metrics */
  --wrap: 1180px;
  --gap: clamp(1rem, 2.4vw, 2rem);
  --pad-y: clamp(4.5rem, 9vw, 8rem);
  --radius: 3px;
  --ease: cubic-bezier(.22,.61,.36,1);
}

/* ---------- reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0;
  background:var(--bone-2);
  color:var(--bone);
  font-family:var(--body);
  font-size:clamp(1rem,.55vw + .9rem,1.075rem);
  line-height:1.7;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3,h4{ margin:0; line-height:1.05; font-weight:600; }
p{ margin:0 0 1.1em; }
ul{ margin:0; padding:0; list-style:none; }

/* ---------- utility type ---------- */
.eyebrow{
  font-family:var(--label);
  text-transform:uppercase;
  letter-spacing:.32em;
  font-weight:600;
  font-size:.72rem;
  color:var(--brass-lo);
  display:inline-flex;
  align-items:center;
  gap:.7rem;
}
.eyebrow::before{
  content:"";
  width:26px; height:1px;
  background:var(--brass);
  display:inline-block;
}
.eyebrow.center::after{
  content:"";
  width:26px; height:1px;
  background:var(--brass);
  display:inline-block;
}
.display{
  font-family:var(--display);
  font-weight:700;
  letter-spacing:.02em;
  line-height:1.04;
}
.h1{ font-size:clamp(2.6rem,6.2vw,4.9rem); text-transform:uppercase; letter-spacing:.04em; }
.h2{ font-size:clamp(2rem,4.2vw,3.2rem); text-transform:uppercase; letter-spacing:.03em; }
.h3{ font-size:clamp(1.3rem,2.2vw,1.7rem); }
.lead{ font-size:clamp(1.1rem,1.4vw,1.28rem); color:var(--stone-dk); line-height:1.6; }
.muted{ color:var(--stone-dk); }

/* ---------- layout ---------- */
.wrap{ width:min(100% - 2.4rem, var(--wrap)); margin-inline:auto; }
.wrap-wide{ width:min(100% - 2rem, 1360px); margin-inline:auto; }
.section{ padding-block:var(--pad-y); }
.section.tight{ padding-block:clamp(3rem,6vw,5rem); }
.on-dark{ background:var(--forest); color:var(--bone); }
.on-ink{ background:var(--ink); color:var(--bone); }
.on-dark .lead,.on-ink .lead,.on-dark .muted,.on-ink .muted{ color:var(--stone); }
.on-dark .h1,.on-dark .h2,.on-dark .h3,.on-ink .h1,.on-ink .h2,.on-ink .h3{ color:var(--bone); }
.center{ text-align:center; }
.center .eyebrow{ justify-content:center; }
.stack > * + *{ margin-top:1.1rem; }
.measure{ max-width:60ch; }
.measure.center{ margin-inline:auto; }

/* ---------- buttons ---------- */
.btn{
  --bg:var(--brass); --fg:var(--ink);
  display:inline-flex; align-items:center; gap:.6rem;
  font-family:var(--label);
  text-transform:uppercase; letter-spacing:.16em; font-weight:600;
  font-size:.82rem;
  padding:.95rem 1.7rem;
  background:var(--bg); color:var(--fg);
  border:1px solid var(--bg);
  border-radius:var(--radius);
  cursor:pointer;
  transition:background .25s var(--ease), color .25s var(--ease), transform .2s var(--ease);
}
.btn:hover{ background:var(--brass-hi); border-color:var(--brass-hi); transform:translateY(-2px); }
.btn:active{ transform:translateY(0); }
.btn .arw{ transition:transform .25s var(--ease); }
.btn:hover .arw{ transform:translateX(4px); }
.btn.ghost{
  --bg:transparent; --fg:var(--bone);
  border-color:var(--line-dk);
}
.btn.ghost:hover{ background:rgba(199,154,70,.12); border-color:var(--brass); color:var(--bone); transform:translateY(-2px); }
.btn.ink{ --bg:var(--forest-2); --fg:var(--bone); border-color:var(--line-dk); }
.btn.ink:hover{ background:var(--field); border-color:var(--brass); color:var(--bone); }
.btn.lg{ padding:1.1rem 2.1rem; font-size:.9rem; }

.textlink{
  font-family:var(--label); text-transform:uppercase; letter-spacing:.14em;
  font-weight:600; font-size:.8rem; color:var(--brass-lo);
  display:inline-flex; align-items:center; gap:.5rem;
  border-bottom:1px solid transparent; padding-bottom:2px;
  transition:color .2s var(--ease), border-color .2s var(--ease);
}
.on-dark .textlink,.on-ink .textlink{ color:var(--brass); }
.textlink:hover{ color:var(--brass); border-color:var(--brass); }
.textlink .arw{ transition:transform .2s var(--ease); }
.textlink:hover .arw{ transform:translateX(4px); }

/* ---------- signature: topographic contour divider ---------- */
.contour{
  height:46px;
  background-repeat:repeat-x;
  background-position:center;
  background-size:1200px 46px;
  background-image:url("data:image/svg+xml;utf8,\
<svg xmlns='http://www.w3.org/2000/svg' width='1200' height='46' viewBox='0 0 1200 46'>\
<g fill='none' stroke='%23c79a46' stroke-opacity='.5' stroke-width='1'>\
<path d='M0 23 C 100 8 200 8 300 23 S 500 38 600 23 700 8 900 23 1100 38 1200 23'/>\
<path d='M0 15 C 120 2 260 2 380 15 S 560 30 680 15 820 2 980 15 1120 26 1200 15' stroke-opacity='.28'/>\
<path d='M0 33 C 120 44 260 44 380 33 S 560 18 680 33 820 46 980 33 1120 22 1200 33' stroke-opacity='.28'/>\
</g></svg>");
}
.contour.on-forest{ background-color:var(--forest); }

/* ============================================================
   HEADER / NAV
   ============================================================ */
.site-header{
  position:sticky; top:0; z-index:60;
  background:rgba(5,5,5,.86);
  backdrop-filter:blur(9px);
  border-bottom:1px solid var(--line-dk);
  /* keep header content clear of the notch / Dynamic Island on iOS */
  padding-top:env(safe-area-inset-top, 0px);
  padding-left:env(safe-area-inset-left, 0px);
  padding-right:env(safe-area-inset-right, 0px);
}
.nav{
  display:flex; align-items:center; justify-content:space-between;
  gap:1.5rem; min-height:74px;
}
.brand{ display:flex; align-items:center; gap:.7rem; color:var(--bone); }
.brand .mark{ width:34px; height:34px; flex:none; }
.brand-logo{ height:50px; width:auto; display:block; }
.footer-about .brand-logo{ height:74px; }
@media (max-width:520px){ .brand-logo{ height:46px; } }
.brand .wordmark{ font-family:var(--display); font-weight:700; letter-spacing:.14em; font-size:1.18rem; text-transform:uppercase; line-height:1; }
.brand .wordmark small{ display:block; font-family:var(--label); font-weight:500; letter-spacing:.3em; font-size:.5rem; color:var(--brass); margin-top:3px; }

.nav-links{ display:flex; align-items:center; gap:.2rem; }
.nav-links a,.nav-links .navbtn{
  font-family:var(--label); text-transform:uppercase; letter-spacing:.13em;
  font-weight:500; font-size:.82rem; color:var(--stone);
  padding:.6rem .78rem; border-radius:var(--radius);
  background:none; border:0; cursor:pointer;
  display:inline-flex; align-items:center; gap:.35rem;
  transition:color .2s var(--ease);
}
.nav-links a:hover,.nav-links .navbtn:hover,.nav-links a[aria-current="page"]{ color:var(--brass-hi); }
.nav-links a[aria-current="page"]{ position:relative; }
.nav-links a[aria-current="page"]::after{
  content:""; position:absolute; left:.78rem; right:.78rem; bottom:.32rem; height:1px; background:var(--brass);
}
.nav-cta{ margin-left:.4rem; }

/* dropdown */
.has-drop{ position:relative; }
.drop{
  position:absolute; top:calc(100% + 6px); left:0;
  min-width:230px; padding:.5rem;
  background:var(--forest-2); border:1px solid var(--line-dk);
  border-radius:var(--radius);
  box-shadow:0 20px 40px -18px rgba(0,0,0,.7);
  opacity:0; visibility:hidden; transform:translateY(6px);
  transition:opacity .2s var(--ease), transform .2s var(--ease), visibility .2s;
}
.has-drop:hover .drop,.has-drop:focus-within .drop,.drop.open{ opacity:1; visibility:visible; transform:translateY(0); }
.drop a{ display:flex; flex-direction:column; gap:1px; padding:.6rem .7rem; color:var(--bone); letter-spacing:.1em; }
.drop a span{ font-family:var(--body); text-transform:none; letter-spacing:0; font-size:.72rem; color:var(--stone); }
.drop a:hover{ background:var(--field); color:var(--brass-hi); }
.navbtn .chev{ width:9px; height:9px; transition:transform .2s var(--ease); }
.has-drop:hover .chev,.has-drop:focus-within .chev{ transform:rotate(180deg); }

.nav-toggle{ display:none; }

/* mobile nav */
@media (max-width:940px){
  .nav-cta{ display:none; }
  .nav-toggle{
    display:inline-flex; flex-direction:column; gap:5px;
    background:none; border:0; cursor:pointer; padding:.5rem;
  }
  .nav-toggle span{ width:26px; height:2px; background:var(--bone); transition:transform .3s var(--ease), opacity .2s; }
  .nav-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  .nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
  .nav-toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
  .nav-links{
    position:fixed;
    top:calc(74px + env(safe-area-inset-top, 0px)); left:0; right:0; bottom:auto;
    flex-direction:column; align-items:stretch; gap:0;
    background:var(--ink); border-bottom:1px solid var(--line-dk);
    padding:1rem 1.2rem 1.6rem;
    max-height:calc(100dvh - 74px - env(safe-area-inset-top, 0px)); overflow:auto;
    transform:translateY(-130%); transition:transform .4s var(--ease);
  }
  .nav-links.open{ transform:translateY(0); }
  .nav-links a,.nav-links .navbtn{ padding:.85rem .4rem; font-size:.95rem; width:100%; }
  .nav-links a[aria-current="page"]::after{ display:none; }
  .has-drop{ position:static; }
  .drop{
    position:static; opacity:1; visibility:visible; transform:none;
    box-shadow:none; border:0; border-left:1px solid var(--line-dk);
    margin:0 0 .4rem .6rem; padding:0 0 0 .6rem;
    display:none; min-width:0; background:none;
  }
  .drop.open{ display:block; }
  .drop a{ padding:.55rem .4rem; }
}

/* ============================================================
   HERO
   ============================================================ */
.hero{ position:relative; color:var(--bone); overflow:hidden; background:var(--ink); }
.hero .scene{ position:absolute; inset:0; width:100%; height:100%; }
.hero .scene svg{ width:100%; height:100%; object-fit:cover; }
/* real photography slots */
.scene img{ width:100%; height:100%; object-fit:cover; display:block; }
.split-media img,.card .thumb img,.gallery figure img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
}
.hero-veil{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(5,5,5,.35) 0%, rgba(5,5,5,.28) 40%, rgba(5,5,5,.82) 100%),
             linear-gradient(90deg, rgba(5,5,5,.7) 0%, rgba(5,5,5,.1) 55%, rgba(5,5,5,0) 100%);
}
.hero-inner{ position:relative; z-index:2; padding-block:clamp(6rem,15vh,11rem); }
.hero.home .hero-inner{ padding-block:clamp(8rem,22vh,14rem); }
.hero-inner .h1{ color:var(--bone); max-width:16ch; text-shadow:0 2px 30px rgba(0,0,0,.4); }
.hero-inner .lead{ color:var(--bone); opacity:.92; max-width:52ch; }
.hero-cta{ display:flex; flex-wrap:wrap; gap:.9rem; margin-top:2rem; }

/* survey-tag chip (signature) */
.tag{
  display:inline-flex; align-items:center; gap:.6rem;
  font-family:var(--label); text-transform:uppercase; letter-spacing:.22em;
  font-size:.66rem; font-weight:600; color:var(--brass);
  border:1px solid var(--line-dk); border-radius:2px;
  padding:.42rem .8rem; background:rgba(5,5,5,.4);
}
.tag .dot{ width:5px; height:5px; background:var(--brass); border-radius:50%; box-shadow:0 0 0 3px rgba(199,154,70,.18); }

/* page hero (interior, shorter) */
.pagehero{ position:relative; color:var(--bone); background:var(--ink); overflow:hidden; }
.pagehero .scene{ position:absolute; inset:0; opacity:.9; }
.pagehero .hero-veil{ background:linear-gradient(180deg, rgba(5,5,5,.55), rgba(5,5,5,.86)); }
.pagehero-inner{ position:relative; z-index:2; padding-block:clamp(4.5rem,11vh,7.5rem); }
.pagehero-inner .h1{ font-size:clamp(2.3rem,5vw,3.9rem); }
.crumbs{ font-family:var(--label); text-transform:uppercase; letter-spacing:.2em; font-size:.7rem; color:var(--stone); margin-bottom:1.1rem; }
.crumbs a:hover{ color:var(--brass); }
.crumbs .sep{ color:var(--brass-lo); margin:0 .5rem; }

/* ============================================================
   COMPONENTS
   ============================================================ */

/* stat band */
.stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:var(--gap); }
.stat{ text-align:center; padding:.5rem; border-left:1px solid var(--line-dk); }
.stat:first-child{ border-left:0; }
.stat .num{ font-family:var(--display); font-weight:700; font-size:clamp(2.2rem,4vw,3.1rem); color:var(--brass-hi); line-height:1; }
.stat .lbl{ font-family:var(--label); text-transform:uppercase; letter-spacing:.2em; font-size:.72rem; color:var(--stone); margin-top:.6rem; }
@media (max-width:640px){ .stats{ grid-template-columns:repeat(2,1fr); gap:1.6rem; } .stat{ border-left:0; } }

/* feature grid */
.grid{ display:grid; gap:var(--gap); }
.grid.cols-2{ grid-template-columns:repeat(2,1fr); }
.grid.cols-3{ grid-template-columns:repeat(3,1fr); }
.grid.cols-4{ grid-template-columns:repeat(4,1fr); }
@media (max-width:900px){ .grid.cols-3,.grid.cols-4{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:620px){ .grid.cols-2,.grid.cols-3,.grid.cols-4{ grid-template-columns:1fr; } }

/* hunt / feature card */
.card{
  position:relative; display:flex; flex-direction:column;
  background:var(--surface); border:1px solid var(--line-lt);
  border-radius:var(--radius); overflow:hidden;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
}
.card:hover{ transform:translateY(-5px); box-shadow:0 26px 46px -26px rgba(0,0,0,.85); border-color:var(--brass); }
.card .thumb{ aspect-ratio:4/3; position:relative; background:var(--forest); overflow:hidden; }
.card .thumb svg{ width:100%; height:100%; display:block; }
.card .thumb .badge{
  position:absolute; top:.9rem; left:.9rem; z-index:2;
  font-family:var(--label); text-transform:uppercase; letter-spacing:.16em; font-size:.62rem; font-weight:600;
  color:var(--ink); background:var(--brass); padding:.3rem .6rem; border-radius:2px;
}
.card .body{ padding:1.5rem 1.5rem 1.7rem; display:flex; flex-direction:column; gap:.7rem; flex:1; }
.card .body h3{ font-family:var(--display); font-weight:700; font-size:1.3rem; letter-spacing:.02em; }
.card .body p{ margin:0; color:var(--stone-dk); font-size:.98rem; }
.card .body .textlink{ margin-top:auto; }
.card .meta{ font-family:var(--label); text-transform:uppercase; letter-spacing:.15em; font-size:.7rem; color:var(--brass-lo); }

/* split (image + text) */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,4.5rem); align-items:center; }
.split.reverse .split-media{ order:2; }
@media (max-width:860px){ .split{ grid-template-columns:1fr; } .split.reverse .split-media{ order:0; } }
.split-media{ position:relative; border-radius:var(--radius); overflow:hidden; aspect-ratio:5/4; background:var(--forest); border:1px solid var(--line-dk); }
.split-media svg{ width:100%; height:100%; }
.split-media .cap{
  position:absolute; bottom:0; left:0; right:0; z-index:2;
  padding:1rem 1.1rem; color:var(--bone);
  background:linear-gradient(0deg, rgba(5,5,5,.85), transparent);
  font-family:var(--label); text-transform:uppercase; letter-spacing:.18em; font-size:.7rem;
}

/* list with brass ticks */
.ticks{ display:grid; gap:.7rem; }
.ticks li{ position:relative; padding-left:1.7rem; color:inherit; }
.ticks li::before{
  content:""; position:absolute; left:0; top:.55em;
  width:9px; height:9px; border:1px solid var(--brass); transform:rotate(45deg);
  background:linear-gradient(135deg, var(--brass) 50%, transparent 50%);
}
.on-dark .ticks li,.on-ink .ticks li{ color:var(--bone); }

/* species / pricing row cards */
.rows{ display:grid; gap:1px; background:var(--line-lt); border:1px solid var(--line-lt); border-radius:var(--radius); overflow:hidden; }
.row-item{
  display:grid; grid-template-columns:1fr auto; gap:1rem; align-items:center;
  padding:1.15rem 1.4rem; background:var(--surface);
  transition:background .2s var(--ease);
}
.row-item:hover{ background:var(--forest-2); }
.row-item .rt{ display:flex; flex-direction:column; gap:.15rem; }
.row-item .rt strong{ font-family:var(--display); font-weight:700; font-size:1.12rem; letter-spacing:.02em; }
.row-item .rt small{ color:var(--stone-dk); font-size:.86rem; }
.row-item .price{ font-family:var(--label); font-weight:600; letter-spacing:.06em; color:var(--brass-lo); font-size:1.05rem; text-align:right; white-space:nowrap; }
.row-item .price span{ display:block; font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; color:var(--stone-dk); }

/* pricing / package cards */
.pkg{
  display:flex; flex-direction:column; gap:1rem;
  padding:2rem 1.8rem 2.1rem; background:var(--surface); border:1px solid var(--line-lt);
  border-radius:var(--radius); position:relative;
}
.pkg.feature{ background:var(--forest-2); color:var(--bone); border-color:var(--brass); }
.pkg.feature .pkg-price,.pkg.feature h3{ color:var(--bone); }
.pkg.feature .ticks li{ color:var(--bone); }
.pkg .flag{
  position:absolute; top:-1px; right:1.4rem;
  font-family:var(--label); text-transform:uppercase; letter-spacing:.16em; font-size:.62rem; font-weight:600;
  color:var(--ink); background:var(--brass); padding:.3rem .7rem; border-radius:0 0 2px 2px;
}
.pkg h3{ font-family:var(--display); font-weight:700; font-size:1.4rem; letter-spacing:.02em; }
.pkg .pkg-price{ font-family:var(--display); font-weight:700; font-size:2.4rem; color:var(--brass-hi); line-height:1; }
.pkg .pkg-price small{ display:block; font-family:var(--label); font-weight:500; text-transform:uppercase; letter-spacing:.16em; font-size:.66rem; color:var(--stone-dk); margin-top:.4rem; }
.pkg .ticks{ margin:.4rem 0 .5rem; }
.pkg .btn{ margin-top:auto; justify-content:center; }

/* gallery */
.gallery{ display:grid; grid-template-columns:repeat(4,1fr); gap:.5rem; }
.gallery figure{ margin:0; position:relative; overflow:hidden; border-radius:2px; background:var(--forest); aspect-ratio:1; }
.gallery figure.tall{ grid-row:span 2; aspect-ratio:auto; }
.gallery figure.wide{ grid-column:span 2; aspect-ratio:2/1; }
.gallery svg{ width:100%; height:100%; }
.gallery figcaption{
  position:absolute; left:0; right:0; bottom:0; padding:.7rem .8rem;
  color:var(--bone); font-family:var(--label); text-transform:uppercase; letter-spacing:.16em; font-size:.66rem;
  background:linear-gradient(0deg, rgba(5,5,5,.8), transparent);
  opacity:0; transform:translateY(6px); transition:opacity .25s var(--ease), transform .25s var(--ease);
}
.gallery figure:hover figcaption{ opacity:1; transform:translateY(0); }
@media (max-width:760px){ .gallery{ grid-template-columns:repeat(2,1fr); } .gallery figure.wide{ grid-column:span 2; } }

/* testimonial */
.quote{ max-width:52ch; margin-inline:auto; text-align:center; }
.quote blockquote{
  margin:0; font-family:var(--display); font-weight:400; font-style:italic;
  font-size:clamp(1.35rem,2.6vw,2rem); line-height:1.35; color:var(--bone);
}
.quote .who{ font-family:var(--label); text-transform:uppercase; letter-spacing:.22em; font-size:.74rem; color:var(--brass); margin-top:1.4rem; }

/* CTA band */
.cta-band{ position:relative; overflow:hidden; }
.cta-band .scene{ position:absolute; inset:0; opacity:.5; }
.cta-band .inner{ position:relative; z-index:2; text-align:center; }

/* forms */
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1.1rem; }
@media (max-width:640px){ .form-grid{ grid-template-columns:1fr; } }
.field{ display:flex; flex-direction:column; gap:.4rem; }
.field.full{ grid-column:1 / -1; }
.field label{ font-family:var(--label); text-transform:uppercase; letter-spacing:.14em; font-size:.72rem; color:var(--stone); }
.on-light .field label{ color:var(--stone-dk); }
.field input,.field select,.field textarea{
  font-family:var(--body); font-size:1rem; color:var(--bone);
  background:rgba(255,255,255,.04); border:1px solid var(--line-dk);
  border-radius:var(--radius); padding:.85rem 1rem; width:100%;
  transition:border-color .2s var(--ease), background .2s var(--ease);
}
.field textarea{ min-height:130px; resize:vertical; }
.field input::placeholder,.field textarea::placeholder{ color:rgba(184,174,150,.6); }
.field input:focus,.field select:focus,.field textarea:focus{ outline:none; border-color:var(--brass); background:rgba(199,154,70,.06); }
.field select option{ color:#141710; }

/* faq */
.faq{ border-top:1px solid var(--line-lt); }
.faq details{ border-bottom:1px solid var(--line-lt); }
.faq summary{
  cursor:pointer; list-style:none; padding:1.3rem .2rem;
  display:flex; justify-content:space-between; align-items:center; gap:1rem;
  font-family:var(--display); font-weight:700; font-size:1.1rem; letter-spacing:.01em;
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary .pm{ flex:none; width:20px; height:20px; position:relative; }
.faq summary .pm::before,.faq summary .pm::after{ content:""; position:absolute; background:var(--brass); }
.faq summary .pm::before{ top:9px; left:0; width:20px; height:2px; }
.faq summary .pm::after{ top:0; left:9px; width:2px; height:20px; transition:transform .25s var(--ease); }
.faq details[open] summary .pm::after{ transform:rotate(90deg); }
.faq details p{ padding:0 .2rem 1.4rem; color:var(--stone-dk); margin:0; max-width:70ch; }

/* info cards (contact) */
.info-card{ padding:1.6rem; border:1px solid var(--line-dk); border-radius:var(--radius); background:var(--forest-2); }
.info-card h4{ font-family:var(--label); text-transform:uppercase; letter-spacing:.18em; font-size:.78rem; color:var(--brass); margin-bottom:.6rem; }
.info-card p{ margin:0; color:var(--bone); }
.info-card a:hover{ color:var(--brass-hi); }

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{ background:var(--ink); color:var(--stone); padding-block:clamp(3.5rem,7vw,5rem) 2rem; }
.footer-top{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:2.5rem; }
@media (max-width:860px){ .footer-top{ grid-template-columns:1fr 1fr; gap:2rem; } }
@media (max-width:520px){ .footer-top{ grid-template-columns:1fr; } }
.footer-top .brand{ margin-bottom:1rem; }
.footer-col h5{ font-family:var(--label); text-transform:uppercase; letter-spacing:.2em; font-size:.74rem; color:var(--brass); margin-bottom:1.1rem; }
.footer-col a{ display:block; padding:.32rem 0; color:var(--stone); font-size:.94rem; transition:color .2s var(--ease); }
.footer-col a:hover{ color:var(--bone); }
.footer-about p{ color:var(--stone); font-size:.94rem; max-width:34ch; }
.footer-bottom{
  margin-top:3rem; padding-top:1.6rem; border-top:1px solid var(--line-dk);
  display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap;
  font-family:var(--label); text-transform:uppercase; letter-spacing:.14em; font-size:.72rem; color:var(--stone-dk);
}
.footer-bottom a:hover{ color:var(--brass); }

/* ---------- reveal animation ---------- */
[data-reveal]{ opacity:0; transform:translateY(22px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
[data-reveal].in{ opacity:1; transform:none; }

/* ---------- a11y ---------- */
:focus-visible{ outline:2px solid var(--brass-hi); outline-offset:3px; border-radius:2px; }
.skip{ position:absolute; left:-999px; top:0; z-index:200; background:var(--brass); color:var(--ink); padding:.7rem 1.1rem; font-family:var(--label); letter-spacing:.1em; }
.skip:focus{ left:1rem; top:1rem; }

@media (prefers-reduced-motion:reduce){
  *{ animation:none !important; scroll-behavior:auto !important; }
  [data-reveal]{ opacity:1; transform:none; transition:none; }
  .btn,.card,.textlink .arw{ transition:none; }
}

/* ============================================================
   INQUIRY DATE-RANGE CALENDAR
   ============================================================ */
.datepick{
  background:rgba(255,255,255,.03);
  border:1px solid var(--line-dk);
  border-radius:var(--radius);
  padding:.9rem .9rem 1rem;
}
.dp-head{
  display:flex; align-items:center; justify-content:space-between;
  gap:.6rem; margin-bottom:.7rem;
}
.dp-title{
  font-family:var(--label); text-transform:uppercase; letter-spacing:.14em;
  font-size:.82rem; color:var(--bone); font-weight:600;
}
.dp-nav{
  width:34px; height:34px; flex:none; cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center;
  font-size:1.25rem; line-height:1; color:var(--stone);
  background:rgba(255,255,255,.04); border:1px solid var(--line-dk);
  border-radius:var(--radius);
  transition:color .2s var(--ease), border-color .2s var(--ease), background .2s var(--ease);
}
.dp-nav:hover{ color:var(--ink); background:var(--brass); border-color:var(--brass); }

/* grid columns are set from JS (1 or 2 months) using minmax(0,1fr) so
   tracks can shrink to fit the container and never spill past the border */
.dp-months{ display:grid; grid-template-columns:minmax(0,1fr); gap:1.2rem; }
.dp-month{ min-width:0; }

.dp-mname{
  font-family:var(--display); font-size:.95rem; letter-spacing:.03em;
  color:var(--brass-hi); text-align:center; margin-bottom:.5rem;
}
.dp-grid{ display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:2px; }
.dp-dow{
  font-family:var(--label); text-transform:uppercase; letter-spacing:.08em;
  font-size:.62rem; color:var(--stone-dk); text-align:center;
  padding-bottom:.35rem;
}
.dp-day{
  aspect-ratio:1 / 1; width:100%; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--body); font-size:.86rem; color:var(--bone);
  background:transparent; border:1px solid transparent; border-radius:var(--radius);
  transition:background .15s var(--ease), color .15s var(--ease), border-color .15s var(--ease);
}
.dp-day:hover{ border-color:var(--brass); color:var(--brass-hi); }
.dp-day.is-disabled{ color:rgba(157,148,126,.35); cursor:default; }
.dp-day.is-today{ border-color:var(--line-dk); }
.dp-day.in-range{ background:rgba(199,154,70,.16); border-radius:0; color:var(--bone); }
.dp-day.is-end-preview{ background:rgba(199,154,70,.16); }
.dp-day.is-sel{
  background:var(--brass); color:var(--ink); font-weight:600;
  border-color:var(--brass);
}
.dp-day.is-sel:hover{ background:var(--brass-hi); border-color:var(--brass-hi); color:var(--ink); }
.dp-day.is-start{ border-top-right-radius:0; border-bottom-right-radius:0; }
.dp-day.is-end{ border-top-left-radius:0; border-bottom-left-radius:0; }

.dp-foot{
  display:flex; align-items:center; justify-content:space-between;
  gap:.8rem; margin-top:1rem; padding-top:.85rem;
  border-top:1px solid var(--line-dk);
}
.dp-readout{ font-size:.9rem; color:var(--stone); }
.dp-readout.has-val{ color:var(--bone); font-weight:500; }
.dp-clear{
  flex:none; cursor:pointer;
  font-family:var(--label); text-transform:uppercase; letter-spacing:.12em;
  font-size:.68rem; font-weight:600; color:var(--brass-lo);
  background:none; border:0; padding:.3rem .1rem;
  border-bottom:1px solid transparent;
  transition:color .2s var(--ease), border-color .2s var(--ease);
}
.dp-clear:hover{ color:var(--brass); border-color:var(--brass); }

.dp-flex{
  display:flex; align-items:center; gap:.55rem; margin-top:.85rem;
  font-family:var(--body); font-size:.86rem; color:var(--stone);
  text-transform:none; letter-spacing:normal; cursor:pointer;
}
.dp-flex input{ width:16px; height:16px; accent-color:var(--brass); cursor:pointer; }

/* ---- inquiry form: status note + honeypot ---- */
#form-note{
  background:rgba(199,154,70,.15); border:1px solid var(--brass);
  color:var(--bone); padding:.9rem 1rem; border-radius:var(--radius);
  margin-bottom:1.2rem; font-size:.95rem;
}
#form-note.is-error{
  background:rgba(107,42,34,.28); border-color:var(--oxblood);
}
.hp-field{
  position:absolute !important; left:-9999px !important;
  width:1px; height:1px; opacity:0; pointer-events:none;
}

/* gallery of real landscape photos — clean 3-up grid, no crop */
.gallery-photos{ grid-template-columns:repeat(3,1fr); }
.gallery-photos figure{ aspect-ratio:3 / 2; }
@media (max-width:760px){ .gallery-photos{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:460px){ .gallery-photos{ grid-template-columns:1fr; } }
