/* ---------- Inner page heroes ---------- */
.page-hero{
  position:relative;
  min-height:clamp(280px, 42vw, 420px);
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  color:var(--parchment);
}
.page-hero img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
}
.page-hero::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(30,42,34,0.18) 0%, rgba(30,42,34,0.72) 100%);
}
.page-hero .wrap{
  position:relative;
  z-index:1;
  padding:56px 32px 48px;
}
.page-kicker{
  font-size:0.78rem;
  letter-spacing:0.14em;
  text-transform:uppercase;
  font-weight:600;
  color:var(--gold-soft);
  margin-bottom:12px;
}
.page-hero h1{
  font-size:clamp(2.1rem, 4.4vw, 3.4rem);
  line-height:1.08;
  max-width:16ch;
}
.page-hero p{
  margin-top:14px;
  max-width:46ch;
  font-size:1.05rem;
  color:rgba(246,241,231,0.88);
}

.page-intro{
  padding:72px 0 24px;
  text-align:center;
}
.page-intro h2{
  font-size:clamp(1.7rem, 3vw, 2.4rem);
  max-width:22ch;
  margin:0 auto;
}
.page-intro p{
  margin:18px auto 0;
  max-width:58ch;
  color:var(--ink-soft);
  font-size:1.05rem;
}

/* ---------- Story split ---------- */
.story{
  padding:40px 0 100px;
}
.story-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:48px;
  align-items:center;
}
@media (min-width:860px){
  .story-grid{grid-template-columns:0.92fr 1.08fr; gap:64px;}
}
.story-photo{
  border-radius:4px;
  overflow:hidden;
  aspect-ratio:1 / 1;
}
.story-photo img{
  width:100%; height:100%;
  object-fit:cover;
}
.story h1, .story h2{
  font-size:clamp(2rem, 3.4vw, 2.8rem);
}
.story .lede{
  margin-top:22px;
  color:var(--ink-soft);
  font-size:1.08rem;
  max-width:48ch;
}
.story p + p{margin-top:16px; color:var(--ink-soft);}

/* ---------- FAQ ---------- */
.faq{
  background:var(--parchment-deep);
  padding:96px 0;
}
.faq h2{
  text-align:center;
  font-size:clamp(1.9rem, 3vw, 2.6rem);
  margin-bottom:40px;
}
.faq-list{
  max-width:880px;
  margin:0 auto;
  display:grid;
  gap:16px;
}
.faq-item{
  background:var(--card);
  border:1px solid var(--paper-line);
  border-radius:4px;
  padding:22px 26px;
}
.faq-item summary{
  cursor:pointer;
  font-weight:600;
  list-style:none;
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:center;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{
  content:"+";
  font-family:'Fraunces', serif;
  font-size:1.4rem;
  color:var(--sage-deep);
  line-height:1;
}
.faq-item[open] summary::after{content:"–";}
.faq-item p{
  margin-top:14px;
  color:var(--ink-soft);
  max-width:62ch;
}

/* ---------- Process ---------- */
.process{
  padding:100px 0 40px;
}
.process-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:28px;
}
@media (min-width:800px){
  .process-grid{grid-template-columns:repeat(4,1fr);}
}
.process-card{
  padding-top:18px;
  border-top:1px solid var(--paper-line);
}
.process-card .num{
  font-family:'Fraunces', serif;
  color:var(--gold);
  font-size:0.95rem;
  margin-bottom:12px;
}
.process-card h3{
  font-size:1.15rem;
  margin-bottom:10px;
}
.process-card p{color:var(--ink-soft); font-size:0.95rem;}

/* ---------- Service catalog / packages ---------- */
.catalog{padding:40px 0 80px;}
.catalog-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:22px;
}
@media (min-width:760px){
  .catalog-grid{grid-template-columns:repeat(2,1fr);}
}
.catalog-card{
  background:var(--card);
  border:1px solid var(--paper-line);
  border-radius:4px;
  padding:28px;
}
.catalog-card h3{font-size:1.25rem; margin-bottom:10px;}
.catalog-card p{color:var(--ink-soft);}
.catalog-card ul{
  margin:16px 0 0;
  padding:0 0 0 18px;
  color:var(--ink-soft);
  font-size:0.95rem;
}
.catalog-card li + li{margin-top:6px;}

.packages{padding:20px 0 90px;}
.package-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:22px;
}
@media (min-width:900px){
  .package-grid{grid-template-columns:repeat(4,1fr);}
}
@media (min-width:700px) and (max-width:899px){
  .package-grid{grid-template-columns:repeat(2,1fr);}
}
.package{
  background:var(--card);
  border:1px solid var(--paper-line);
  border-radius:4px;
  padding:28px 24px;
  display:flex;
  flex-direction:column;
  min-height:100%;
}
.package.featured{
  background:var(--ink);
  color:var(--parchment);
  border-color:var(--ink);
}
.package .rate{
  font-family:'Fraunces', serif;
  font-size:0.92rem;
  color:var(--gold);
  margin-bottom:10px;
}
.package.featured .rate{color:var(--gold-soft);}
.package h3{font-size:1.2rem; margin-bottom:10px;}
.package p{color:var(--ink-soft); font-size:0.94rem; flex:1;}
.package.featured p{color:rgba(246,241,231,0.82);}
.package .btn{margin-top:22px; align-self:flex-start;}
.package.featured .btn{
  background:var(--parchment);
  color:var(--ink);
  border-color:var(--parchment);
}
.package.featured .btn:hover{
  background:var(--gold-soft);
  border-color:var(--gold-soft);
}

/* ---------- Forms ---------- */
.form-section{padding:40px 0 110px;}
.form-panel{
  max-width:720px;
  margin:0 auto;
  background:var(--card);
  border:1px solid var(--paper-line);
  border-radius:4px;
  padding:36px 32px;
}
@media (min-width:700px){
  .form-panel{padding:48px 48px;}
}
.form-panel h2{font-size:1.7rem; margin-bottom:8px;}
.form-panel .form-lead{
  color:var(--ink-soft);
  margin-bottom:28px;
}
.form-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:18px;
}
@media (min-width:640px){
  .form-grid.two{grid-template-columns:1fr 1fr;}
}
.field{display:flex; flex-direction:column; gap:8px;}
.field-span{grid-column:1 / -1;}
.field label{
  font-size:0.88rem;
  font-weight:600;
  color:var(--ink);
}
.field input,
.field select,
.field textarea{
  font-family:'Inter', sans-serif;
  font-size:1rem;
  padding:12px 14px;
  border:1px solid var(--paper-line);
  border-radius:3px;
  background:#fff;
  color:var(--ink);
}
.field textarea{min-height:140px; resize:vertical;}
.field input:focus,
.field select:focus,
.field textarea:focus{
  outline:2px solid var(--sage-deep);
  outline-offset:1px;
}
.check-legend{
  font-size:0.88rem;
  font-weight:600;
  margin-bottom:10px;
}
.check-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
}
@media (min-width:640px){
  .check-grid{grid-template-columns:1fr 1fr;}
}
.check-grid label{
  display:flex;
  align-items:center;
  gap:10px;
  font-weight:500;
  font-size:0.95rem;
  color:var(--ink-soft);
}
.form-actions{margin-top:28px; display:flex; flex-wrap:wrap; gap:16px; align-items:center;}
.form-note{font-size:0.88rem; color:var(--ink-soft); max-width:36ch;}

.form-success{
  max-width:720px;
  margin:0 auto;
  background:var(--sage);
  color:var(--parchment);
  border-radius:4px;
  padding:48px 40px;
  text-align:center;
}
.form-success h2{margin-bottom:12px;}
.form-success p{color:rgba(246,241,231,0.9); max-width:42ch; margin:0 auto;}
.form-success:focus{outline:none;}

/* ---------- Newsletter band (home + page) ---------- */
.know{
  background:var(--ink);
  color:var(--parchment);
  padding:88px 0;
  text-align:center;
}
.know h2{
  font-size:clamp(1.9rem, 3.4vw, 2.8rem);
  margin-bottom:12px;
}
.know p{
  color:rgba(246,241,231,0.78);
  max-width:42ch;
  margin:0 auto 28px;
}
.know-form{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:10px;
  max-width:520px;
  margin:0 auto;
}
.know-form input{
  flex:1 1 240px;
  padding:13px 16px;
  border:1px solid rgba(246,241,231,0.28);
  border-radius:3px;
  background:transparent;
  color:var(--parchment);
  font-family:'Inter', sans-serif;
  font-size:1rem;
}
.know-form input::placeholder{color:rgba(246,241,231,0.55);}
.know-form .btn{
  background:var(--parchment);
  color:var(--ink);
  border-color:var(--parchment);
}
.know-form .btn:hover{background:var(--gold-soft); border-color:var(--gold-soft);}
.know .form-success{
  background:transparent;
  color:var(--gold-soft);
  padding:0;
  text-align:center;
  margin-top:28px;
}

.bare-fieldset{border:0; padding:0; margin:0; min-width:0;}

.newsletter-hero-copy{
  padding:88px 0 20px;
  max-width:640px;
}
.newsletter-hero-copy h1{
  font-size:clamp(2.2rem, 4vw, 3.2rem);
}
.newsletter-hero-copy p{
  margin-top:18px;
  color:var(--ink-soft);
  font-size:1.08rem;
}
.perk-list{
  list-style:none;
  margin:28px 0 0;
  padding:0;
}
.perk-list li{
  padding:12px 0;
  border-top:1px solid var(--paper-line);
  color:var(--ink-soft);
}
.perk-list li strong{color:var(--ink); font-weight:600;}
