/* Finding Presidio Hills — shared styles */
:root{
  --green-deep:#173d28; --green:#1e4d33; --green-mid:#3e7d54; --green-soft:#dfe8dc;
  --gold:#c19a3f; --gold-deep:#8a6b24; --clay:#9c5533;
  --parchment:#f6f1e3; --parchment-2:#efe8d4; --ink:#22271f; --muted:#68705f; --line:#ddd5bf;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0; background:var(--parchment); color:var(--ink);
  font-family:"Newsreader",Georgia,serif; font-size:18px; line-height:1.6;}
.label{font-family:"Archivo",sans-serif; font-weight:600; font-size:12px;
  letter-spacing:.18em; text-transform:uppercase;}
.wrap{max-width:1040px; margin:0 auto; padding-inline:20px;}

/* ---------- nav ---------- */
.nav{background:var(--green-deep); border-bottom:1px solid rgba(246,241,227,.14);}
.nav .wrap{display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding-block:14px; flex-wrap:wrap;}
.nav .wordmark{font-family:"Fraunces",Georgia,serif; font-style:italic; font-weight:550;
  font-size:19px; color:var(--gold); text-decoration:none; letter-spacing:.01em; white-space:nowrap;}
.nav ul{display:flex; gap:4px 22px; list-style:none; margin:0; padding:0; flex-wrap:wrap; align-items:center;}
.nav a.navlink{font-family:"Archivo",sans-serif; font-weight:600; font-size:13.5px;
  letter-spacing:.06em; text-transform:uppercase; color:#cfd8c8; text-decoration:none;}
.nav a.navlink:hover, .nav a.navlink.active{color:var(--parchment); border-bottom:2px solid var(--gold);}
.nav a.navbtn{font-family:"Archivo",sans-serif; font-weight:700; font-size:13px;
  background:var(--gold); color:var(--green-deep); text-decoration:none;
  padding:8px 14px; border-radius:6px;}
.nav a.navbtn:hover{background:#d3ac4f;}

/* ---------- hero (home) ---------- */
.hero{background:
  radial-gradient(120% 90% at 80% 10%, rgba(193,154,63,.14), transparent 55%),
  var(--green-deep);
  color:var(--parchment); position:relative; overflow:hidden;}
.hero .contours{position:absolute; inset:0; opacity:.16; pointer-events:none;}
.hero .wrap{position:relative; padding-block:84px 72px;}
.hero .label{color:var(--gold);}
h1{font-family:"Fraunces",Georgia,serif; font-weight:550; letter-spacing:-.015em;
  font-size:clamp(38px,6.2vw,68px); line-height:1.04; margin:18px 0 22px; max-width:14ch; text-wrap:balance;}
h1 em{font-style:italic; font-weight:450; color:var(--gold);}
.hero p.lede{font-size:clamp(18px,2.2vw,22px); max-width:52ch; margin:0 0 34px; color:#e9e4d2;}
.cta-row{display:flex; flex-wrap:wrap; gap:14px; align-items:center;}
.btn{font-family:"Archivo",sans-serif; font-weight:700; font-size:15px; letter-spacing:.02em;
  text-decoration:none; border-radius:6px; padding:13px 22px; display:inline-block;}
.btn.primary{background:var(--gold); color:var(--green-deep);}
.btn.primary:hover{background:#d3ac4f;}
.btn.ghost{color:var(--parchment); border:1.5px solid rgba(246,241,227,.4);}
.btn.ghost:hover{border-color:var(--gold); color:var(--gold);}

/* ---------- page hero (subpages) ---------- */
.page-hero{background:var(--green-deep); color:var(--parchment);}
.page-hero .wrap{padding-block:52px 44px;}
.page-hero .label{color:var(--gold);}
.page-hero h1{font-size:clamp(32px,5vw,52px); max-width:20ch;}
.page-hero p.lede{font-size:18px; max-width:56ch; color:#e9e4d2; margin:0;}

/* ---------- scorecard strip ---------- */
.scorecard{background:var(--green); color:var(--parchment); border-top:1px solid rgba(246,241,227,.15);}
.scorecard .wrap{display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:0; padding-block:0;}
.score{padding:22px 18px; border-left:1px dashed rgba(246,241,227,.25); text-align:center;}
.score:first-child{border-left:none;}
.score b{display:block; font-family:"Fraunces",Georgia,serif; font-weight:700;
  font-size:30px; color:var(--gold); font-variant-numeric:tabular-nums;}
.score span{font-family:"Archivo",sans-serif; font-size:11.5px; letter-spacing:.14em;
  text-transform:uppercase; color:#cfd8c8;}

/* ---------- sections ---------- */
section{padding-block:76px;}
.kicker{color:var(--clay); margin-bottom:10px;}
h2{font-family:"Fraunces",Georgia,serif; font-weight:550; font-size:clamp(28px,4vw,42px);
  line-height:1.1; margin:0 0 18px; letter-spacing:-.01em; text-wrap:balance;}
.prose{max-width:62ch;}
.prose p{margin:0 0 1em;}
.prose a{color:var(--clay);}

/* ---------- photo band + figures ---------- */
.photo-band{padding:0; background:var(--green-deep);}
.photo-band img{display:block; width:100%; height:min(62vh,560px); object-fit:cover;}
.photo-band figcaption{padding:10px 20px 14px; text-align:center;}
figure{margin:0;}
figcaption{font-family:"Archivo",sans-serif; font-size:12.5px; letter-spacing:.04em;
  color:var(--muted);}
.photo-band figcaption{color:#a9b5a2;}

/* ---------- gallery ---------- */
.gallery-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
  gap:14px; margin-top:34px;}
.gallery-grid a{display:block; border-radius:8px; overflow:hidden; background:var(--parchment-2);}
.gallery-grid img{display:block; width:100%; aspect-ratio:4/3; object-fit:cover;
  transition:transform .25s ease;}
.gallery-grid a:hover img{transform:scale(1.03);}
.gallery-grid figcaption{padding:8px 4px 2px;}
.collection{margin-top:60px;}
.collection h3{font-family:"Fraunces",Georgia,serif; font-weight:550; font-size:26px; margin:0 0 4px;}
.collection .col-sub{color:var(--muted); font-size:16px; margin:0 0 6px;}
.soon-row{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:16px; margin-top:20px;}
.soon-card{border:1.5px dashed var(--line); border-radius:10px; padding:22px 22px;
  background:var(--parchment-2);}
.soon-card h4{font-family:"Fraunces",Georgia,serif; font-weight:550; font-size:20px; margin:0 0 6px;}
.soon-card p{margin:0; font-size:15px; color:var(--muted);}
.soon-card .label{color:var(--gold-deep); display:block; margin-bottom:8px;}

/* ---------- podcast episodes ---------- */
.tranche{margin-top:44px;}
.tranche .label{color:var(--clay);}
.ep{display:grid; grid-template-columns:74px 1fr auto; gap:18px; align-items:baseline;
  padding:24px 0; border-top:1px solid var(--line);}
.ep:first-of-type{border-top:none;}
.ep-num{font-family:"Fraunces",Georgia,serif; font-style:italic; font-size:30px; color:var(--gold-deep);}
.ep h3{font-family:"Fraunces",Georgia,serif; font-weight:550; font-size:24px; margin:0 0 6px;}
.ep p{margin:0; max-width:58ch; color:#3a4034; font-size:16.5px;}
.ep-date{font-family:"Archivo",sans-serif; font-size:12.5px; letter-spacing:.08em;
  text-transform:uppercase; color:var(--muted); white-space:nowrap;}
@media (max-width:600px){ .ep{grid-template-columns:52px 1fr;} .ep-date{grid-column:2;} }

/* ---------- blog ---------- */
.post{border-top:1px solid var(--line); padding:44px 0;}
.post:first-of-type{border-top:none; padding-top:0;}
.post h3{font-family:"Fraunces",Georgia,serif; font-weight:550; font-size:28px; margin:0 0 6px;}
.post-meta{font-family:"Archivo",sans-serif; font-size:12.5px; letter-spacing:.08em;
  text-transform:uppercase; color:var(--muted); margin-bottom:14px;}
.pin{display:inline-block; font-family:"Archivo",sans-serif; font-weight:700; font-size:11px;
  letter-spacing:.1em; text-transform:uppercase; color:var(--green-deep);
  background:var(--gold); border-radius:99px; padding:3px 10px; margin-right:10px; vertical-align:2px;}

/* ---------- timeline (home) ---------- */
.timeline{border-left:2px solid var(--gold); margin:44px 0 0 6px; padding-left:0; list-style:none;}
.timeline li{position:relative; padding:0 0 34px 30px;}
.timeline li::before{content:""; position:absolute; left:-7px; top:8px; width:12px; height:12px;
  border-radius:50%; background:var(--parchment); border:3px solid var(--gold);}
.timeline .when{font-family:"Archivo",sans-serif; font-weight:700; font-size:13px;
  letter-spacing:.12em; text-transform:uppercase; color:var(--clay);}
.timeline h3{font-family:"Fraunces",Georgia,serif; font-weight:550; font-size:22px; margin:4px 0 6px;}
.timeline p{margin:0; max-width:58ch; color:#3a4034;}

/* ---------- why cards (home) ---------- */
.why{background:var(--parchment-2);}
.cards{display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:18px; margin-top:38px;}
.card{background:var(--parchment); border:1px solid var(--line); border-radius:10px; padding:26px 24px;}
.card .num{font-family:"Fraunces",Georgia,serif; font-size:15px; color:var(--gold-deep); font-style:italic;}
.card h3{font-family:"Fraunces",Georgia,serif; font-weight:550; font-size:23px; margin:8px 0 10px;}
.card p{margin:0; font-size:16.5px; color:#3a4034;}

/* ---------- vision (home) ---------- */
.vision .phase{display:grid; grid-template-columns:110px 1fr; gap:20px; padding:30px 0;
  border-top:1px solid var(--line); align-items:start;}
.vision .phase:first-of-type{border-top:none;}
.phase .tag{font-family:"Fraunces",Georgia,serif; font-style:italic; font-size:19px; color:var(--clay);}
.phase h3{font-family:"Fraunces",Georgia,serif; font-weight:550; font-size:24px; margin:0 0 8px;}
.phase p{margin:0; max-width:60ch; color:#3a4034;}

/* ---------- join ---------- */
.join{background:var(--green-deep); color:var(--parchment);}
.join .label{color:var(--gold);}
.join h2{color:var(--parchment);}
.join p{max-width:56ch; color:#e9e4d2;}
.join .podcast{margin-top:40px; border:1.5px dashed rgba(193,154,63,.55); border-radius:10px;
  padding:24px 26px; max-width:640px;}
.join .podcast .label{color:var(--gold);}
.join .podcast h3{font-family:"Fraunces",Georgia,serif; font-weight:550; font-size:26px; margin:8px 0 6px;}
.join .podcast p{margin:0; font-size:16.5px;}

/* ---------- join form ---------- */
.join-form{max-width:560px; margin-top:26px;}
.jf-fields{display:grid; gap:10px; margin-bottom:18px;}
.jf-fields input{background:rgba(246,241,227,.06); border:1.5px solid rgba(246,241,227,.35);
  border-radius:6px; color:var(--parchment); font-family:"Archivo",sans-serif; font-size:15px;
  padding:12px 14px; width:100%; box-sizing:border-box;}
.jf-fields input::placeholder{color:#a9b5a2;}
.jf-fields input:focus{outline:none; border-color:var(--gold);}
.jf-check{display:flex; gap:12px; align-items:flex-start; cursor:pointer; margin:0 0 14px;
  font-family:"Archivo",sans-serif; font-size:13.5px; line-height:1.5; color:#cfd8c8;}
.jf-check input{position:absolute; opacity:0; width:1px; height:1px;}
.jf-check .jf-box{flex:0 0 auto; width:20px; height:20px; margin-top:2px; border-radius:5px;
  border:2px solid rgba(246,241,227,.5); display:grid; place-items:center; transition:all .15s;}
.jf-check input:checked + .jf-box{background:var(--gold); border-color:var(--gold);}
.jf-check input:checked + .jf-box::after{content:""; width:11px; height:11px;
  background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23173d28' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e") no-repeat center/contain;}
.jf-check input:focus-visible + .jf-box{outline:2px solid var(--gold); outline-offset:2px;}
.jf-check .jf-text strong{color:var(--parchment); display:block; font-size:14.5px; margin-bottom:2px;}
.jf-submit{margin-top:6px; border:none; cursor:pointer;}
.jf-status{font-family:"Archivo",sans-serif; font-size:13.5px; color:var(--gold); margin:10px 0 0; min-height:1em;}
.jf-success{max-width:560px; margin-top:26px; border:1.5px solid var(--gold); border-radius:10px; padding:24px 26px;}
.jf-success h3{font-family:"Fraunces",Georgia,serif; font-weight:550; font-size:26px; margin:0 0 6px; color:var(--gold);}
.jf-success p{margin:0; font-size:16px;}

/* ---------- footer ---------- */
footer{background:var(--green-deep); color:#a9b5a2; border-top:1px solid rgba(246,241,227,.15);}
footer .wrap{padding-block:26px; font-size:13.5px; font-family:"Archivo",sans-serif;
  display:flex; flex-wrap:wrap; gap:8px 24px; justify-content:space-between;}
footer a{color:#cfd8c8;}

@media (max-width:560px){ .vision .phase{grid-template-columns:1fr; gap:6px;} }
