:root{
  --cream: #F0E9DD;
  --cream-2: #E6DCC9;
  --ink: #2A1F18;
  --ink-soft: #4A3A2E;
  --rose: #B97A72;
  --rose-deep: #9C5F58;
  --olive: #6E7048;
  --brass: #A9822F;
  --line: rgba(42,31,24,0.14);
  --max: 1120px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.001ms !important; transition-duration:0.001ms !important;}
}

body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:'Inter', sans-serif;
  font-size:17px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,h4{
  font-family:'Fraunces', serif;
  font-weight:450;
  margin:0;
  color:var(--ink);
}

a{color:inherit;}

.eyebrow{
  font-family:'IBM Plex Mono', monospace;
  font-size:12.5px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--rose-deep);
  display:flex;
  align-items:center;
  gap:10px;
}
.eyebrow::before{
  content:"";
  width:22px;
  height:1px;
  background:var(--rose-deep);
  display:inline-block;
}

.wrap{
  max-width:var(--max);
  margin:0 auto;
  padding:0 32px;
}

/* NAV */
header{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(240,233,221,0.88);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
nav.wrap{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-top:20px;
  padding-bottom:20px;
}
.logo{
  font-family:'Fraunces', serif;
  font-size:20px;
  font-weight:600;
  letter-spacing:0.01em;
}
.logo span{color:var(--rose-deep);}
.navlinks{
  display:flex;
  gap:34px;
  font-family:'IBM Plex Mono', monospace;
  font-size:13px;
  letter-spacing:0.04em;
}
.navlinks a{
  text-decoration:none;
  color:var(--ink-soft);
  transition:color 0.2s ease;
}
.navlinks a:hover, .navlinks a:focus-visible{color:var(--rose-deep);}
.nav-cta{
  font-family:'IBM Plex Mono', monospace;
  font-size:13px;
  padding:9px 18px;
  border:1px solid var(--ink);
  border-radius:2px;
  text-decoration:none;
  white-space:nowrap;
}
.nav-cta:hover, .nav-cta:focus-visible{background:var(--ink); color:var(--cream);}
.navlinks-mobile{display:none;}

@media (max-width:760px){
  .navlinks{display:none;}
}

/* HERO */
.hero{
  padding:96px 0 60px;
}
.hero-grid{
  display:grid;
  grid-template-columns:1.1fr 0.9fr;
  gap:56px;
  align-items:start;
}
.hero h1{
  font-size:clamp(34px, 4.4vw, 54px);
  line-height:1.12;
  margin:22px 0 26px;
  max-width:14ch;
}
.hero-sub{
  font-size:18px;
  color:var(--ink-soft);
  max-width:46ch;
  margin-bottom:30px;
}

.btn-primary{
  display:inline-flex;
  align-items:center;
  gap:10px;
  background:var(--ink);
  color:var(--cream);
  font-family:'IBM Plex Mono', monospace;
  font-size:13.5px;
  letter-spacing:0.03em;
  padding:14px 24px;
  border-radius:2px;
  text-decoration:none;
  border:1px solid var(--ink);
  transition:background 0.2s ease, color 0.2s ease;
}
.btn-primary:hover, .btn-primary:focus-visible{background:transparent; color:var(--ink);}
.btn-primary svg{width:14px; height:14px;}

/* SYMPTOMS */
.symptoms{
  background:var(--ink);
  color:var(--cream);
  padding:80px 0;
}
.symptoms .eyebrow{color:var(--rose);}
.symptoms .eyebrow::before{background:var(--rose);}
.symptoms h2{
  color:var(--cream);
  font-size:clamp(26px, 3vw, 36px);
  max-width:22ch;
  margin:20px 0 44px;
}
.symptom-list{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:1px;
  background:rgba(240,233,221,0.16);
  border:1px solid rgba(240,233,221,0.16);
}
.symptom-item{
  background:var(--ink);
  padding:26px 28px;
  display:flex;
  gap:16px;
}
.symptom-item .mark{
  font-family:'Fraunces', serif;
  font-style:italic;
  color:var(--rose);
  font-size:22px;
  line-height:1;
}
.symptom-item p{margin:0; color:rgba(240,233,221,0.86); font-size:15.5px;}
@media (max-width:700px){
  .symptom-list{grid-template-columns:1fr;}
}

/* DIAGRAM */
.diagram-section{
  padding:100px 0 90px;
  text-align:center;
}
.diagram-section h2{
  font-size:clamp(26px, 3vw, 36px);
  max-width:20ch;
  margin:20px auto 8px;
}
.diagram-section .sub{
  color:var(--ink-soft);
  max-width:52ch;
  margin:0 auto 48px;
}
.diagram-wrap{
  max-width:820px;
  margin:0 auto;
}
.diagram-caption{
  display:flex;
  justify-content:space-between;
  font-family:'IBM Plex Mono', monospace;
  font-size:12px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--ink-soft);
  margin-top:6px;
  padding:0 12px;
}

/* ABOUT */
.about{
  padding:20px 0 100px;
}
.about-grid{
  display:grid;
  grid-template-columns:0.85fr 1.15fr;
  gap:64px;
  align-items:start;
}
.about blockquote{
  font-family:'Fraunces', serif;
  font-style:italic;
  font-weight:450;
  font-size:24px;
  line-height:1.4;
  margin:0 0 24px;
  color:var(--ink);
  border-left:2px solid var(--rose);
  padding-left:24px;
}
.about p{color:var(--ink-soft); font-size:16px;}
.about-creds{
  font-family:'IBM Plex Mono', monospace;
  font-size:12.5px;
  color:var(--ink-soft);
  display:flex;
  flex-wrap:wrap;
  gap:10px 22px;
  margin-top:28px;
  padding-top:22px;
  border-top:1px solid var(--line);
}

/* SERVICES */
.services{
  background:var(--cream-2);
  padding:100px 0;
}
.services-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:24px;
  margin-bottom:52px;
  flex-wrap:wrap;
}
.services-head h2, .services-head h3{
  font-size:clamp(26px, 3vw, 36px);
  max-width:16ch;
  margin-top:16px;
}
.services-head p{
  color:var(--ink-soft);
  max-width:34ch;
  margin:0;
}
.tier-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.tier{
  background:var(--cream-2);
  padding:38px 32px 42px;
  display:flex;
  flex-direction:column;
}
.tier-icon{
  width:40px;
  height:40px;
  margin-bottom:22px;
}
.tier-num{
  font-family:'IBM Plex Mono', monospace;
  font-size:12px;
  color:var(--rose-deep);
  letter-spacing:0.08em;
  margin-bottom:10px;
}
.tier h3, .tier h4{
  font-size:21px;
  margin-bottom:6px;
}
.tier .tier-tag{
  font-family:'IBM Plex Mono', monospace;
  font-size:12px;
  color:var(--olive);
  margin-bottom:16px;
}
.tier p{
  color:var(--ink-soft);
  font-size:15px;
  flex-grow:1;
}
.tier-note{
  margin-top:36px;
  font-size:14px;
  color:var(--ink-soft);
  font-style:italic;
}

/* CONTACT */
.contact{
  padding:110px 0 100px;
}
.contact-grid{
  display:grid;
  grid-template-columns:0.9fr 1.1fr;
  gap:60px;
}
.contact h2{
  font-size:clamp(28px, 3.4vw, 40px);
  margin:18px 0 20px;
  max-width:12ch;
}
.contact-sub{color:var(--ink-soft); max-width:36ch;}
.contact-direct{
  margin-top:36px;
  font-family:'IBM Plex Mono', monospace;
  font-size:14px;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.contact-direct a{text-decoration:none; border-bottom:1px solid var(--line);}

form{display:flex; flex-direction:column; gap:18px;}
.field label{
  display:block;
  font-family:'IBM Plex Mono', monospace;
  font-size:12px;
  letter-spacing:0.04em;
  text-transform:uppercase;
  color:var(--ink-soft);
  margin-bottom:8px;
}
.field input, .field textarea{
  width:100%;
  background:transparent;
  border:none;
  border-bottom:1px solid var(--ink);
  padding:10px 2px;
  font-family:'Inter', sans-serif;
  font-size:16px;
  color:var(--ink);
  outline:none;
}
.field textarea{resize:vertical; min-height:70px;}
.field input:focus-visible, .field textarea:focus-visible{
  outline:2px solid var(--rose-deep);
  outline-offset:2px;
}
.hp-field{position:absolute; left:-9999px; top:-9999px;}
.submit-row{margin-top:8px;}
.form-note{
  font-family:'IBM Plex Mono', monospace;
  font-size:12px;
  color:var(--ink-soft);
  margin-top:6px;
}
.form-success{
  display:none;
  font-family:'Fraunces', serif;
  font-size:19px;
  font-style:italic;
  padding:20px 0;
}

/* FOOTER */
footer{
  background:var(--ink);
  color:rgba(240,233,221,0.7);
  padding:40px 0;
}
.footer-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:14px;
  font-family:'IBM Plex Mono', monospace;
  font-size:12.5px;
}
footer a{text-decoration:none; color:rgba(240,233,221,0.9); border-bottom:1px solid rgba(240,233,221,0.3);}

@media (max-width:860px){
  .hero-grid, .about-grid, .contact-grid{grid-template-columns:1fr;}
  .hero-photo-slot{max-width:340px;}
}

/* NAV — active link */
.navlinks a[aria-current="page"]{color:var(--rose-deep);}
.logo a{text-decoration:none;}

/* PACKAGE LIST (homepage) */
.package-list{
  display:flex;
  flex-direction:column;
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.package-card{
  background:var(--cream-2);
  padding:38px 36px;
  display:grid;
  grid-template-columns:1.3fr 0.7fr;
  gap:40px;
  align-items:center;
  text-decoration:none;
  transition:background 0.2s ease;
}
.package-card:hover, .package-card:focus-visible{background:var(--cream);}
.package-card h3{font-size:24px; margin-bottom:6px;}
.package-card p{color:var(--ink-soft); font-size:15.5px; margin:14px 0 0; max-width:56ch;}
.package-facts{
  display:flex;
  flex-direction:column;
  gap:10px;
  font-family:'IBM Plex Mono', monospace;
  font-size:13px;
  color:var(--ink-soft);
  border-left:1px solid var(--line);
  padding-left:28px;
}
.package-facts strong{color:var(--ink); font-weight:500;}
.package-more{
  margin-top:8px;
  color:var(--rose-deep);
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.package-more svg{width:14px; height:14px;}
@media (max-width:760px){
  .package-card{grid-template-columns:1fr; gap:24px; padding:30px 24px;}
  .package-facts{border-left:none; padding-left:0; border-top:1px solid var(--line); padding-top:20px;}
}

/* PACKAGE PAGE */
.page-hero{padding:88px 0 56px;}
.page-hero h1{
  font-size:clamp(34px, 4.4vw, 54px);
  line-height:1.12;
  margin:22px 0 18px;
  max-width:22ch;
}
.page-hero .hero-sub{max-width:60ch; margin-bottom:0;}

/* Jump list of packages at the top of /packages */
.pkg-index{
  list-style:none;
  margin:36px 0 0;
  padding:0;
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}
.pkg-index a{
  display:inline-flex;
  gap:12px;
  font-family:'IBM Plex Mono', monospace;
  font-size:13px;
  text-decoration:none;
  padding:10px 16px;
  border:1px solid var(--line);
  border-radius:2px;
  transition:border-color 0.2s ease;
}
.pkg-index a span{color:var(--rose-deep);}
.pkg-index a:hover, .pkg-index a:focus-visible{border-color:var(--ink);}

/* One package = one <article class="package"> */
.package, .package [id]{scroll-margin-top:70px;}
.pkg-intro{
  padding:80px 0 56px;
  border-top:1px solid var(--line);
}
.pkg-intro h2{
  font-size:clamp(30px, 3.8vw, 46px);
  line-height:1.12;
  margin:22px 0 18px;
}
.pkg-intro .lede{
  font-family:'Fraunces', serif;
  font-style:italic;
  font-size:clamp(20px, 2.2vw, 24px);
  line-height:1.4;
  max-width:32ch;
  margin:0 0 24px;
}
.pkg-intro .hero-sub{max-width:60ch;}

.pkg-detail{
  padding:80px 0;
  border-top:1px solid var(--line);
}
.pkg-detail-grid{
  display:grid;
  grid-template-columns:1.25fr 0.75fr;
  gap:64px;
  align-items:start;
}
.pkg-detail h3{
  font-size:clamp(24px, 2.6vw, 30px);
  margin:16px 0 28px;
}
.item-list{
  list-style:none;
  margin:0;
  padding:0;
  border-top:1px solid var(--line);
}
.item-list li{
  padding:16px 0;
  border-bottom:1px solid var(--line);
  color:var(--ink-soft);
  font-size:15.5px;
}
.item-list li strong{
  display:block;
  font-family:'Fraunces', serif;
  font-weight:450;
  font-size:18px;
  color:var(--ink);
  margin-bottom:2px;
}
.deliverables{
  background:var(--ink);
  color:var(--cream);
  padding:34px 32px;
}
.deliverables .eyebrow{color:var(--rose);}
.deliverables .eyebrow::before{background:var(--rose);}
.deliverables h3{color:var(--cream);}
.deliverables ol{
  margin:0;
  padding:0;
  list-style:none;
  counter-reset:deliv;
}
.deliverables li{
  counter-increment:deliv;
  display:flex;
  gap:16px;
  padding:14px 0;
  border-top:1px solid rgba(240,233,221,0.16);
  font-size:15.5px;
  color:rgba(240,233,221,0.86);
}
.deliverables li::before{
  content:counter(deliv, decimal-leading-zero);
  font-family:'IBM Plex Mono', monospace;
  font-size:12px;
  color:var(--rose);
  padding-top:4px;
}
@media (max-width:860px){
  .pkg-detail-grid{grid-template-columns:1fr; gap:48px;}
}

.tier-specs{
  margin:18px 0 0;
  display:flex;
  flex-direction:column;
  flex-grow:1;
}
.tier-specs div{
  padding:14px 0;
  border-top:1px solid var(--line);
}
.tier-specs dt{
  font-family:'IBM Plex Mono', monospace;
  font-size:11.5px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--olive);
  margin-bottom:4px;
}
.tier-specs dd{
  margin:0;
  color:var(--ink-soft);
  font-size:15px;
}
.tier-specs .price{
  font-family:'Fraunces', serif;
  font-size:24px;
  color:var(--ink);
}

.closing{
  padding:90px 0 100px;
  text-align:center;
}
.closing h3{
  font-size:clamp(26px, 3vw, 36px);
  max-width:22ch;
  margin:20px auto 18px;
}
.closing p{
  color:var(--ink-soft);
  max-width:52ch;
  margin:0 auto 32px;
}
