@import url('https://fonts.googleapis.com/css2?family=Big+Shoulders+Inline:wght@600;800&family=Big+Shoulders+Stencil:wght@700&family=Big+Shoulders:wght@500;700;900&family=Source+Serif+4:ital,opsz,wght@0,8..60,400;0,8..60,500;1,8..60,400&display=swap');

:root{
  --ink:        #f1ece2;   /* chalk white */
  --bg:         #070605;   /* bold black */
  --bg-2:       #1c130d;   /* deep brown panel */
  --line:       #2e2620;   /* hairline rule on dark */
  --clay:       #6b2430;   /* deep wine/oxblood — powerful, feminine, trustworthy */
  --rose:       #9c3d49;   /* brighter wine for hover states */
  --sage:       #7c8d6e;   /* lifestyle / calm counterpoint */
  --muted:      #b3a596;   /* warm neutral secondary text on dark */
  --paper:      #ece6d8;   /* light section bg */
  --paper-ink:  #1a1712;

  --display: "Big Shoulders", sans-serif;
  --body: "Source Serif 4", serif;

  --maxw: 1180px;
}

*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:var(--body);
  font-size:17px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 28px;}

h1,h2,h3,.eyebrow{font-family:var(--display); text-transform:uppercase; letter-spacing:0.01em;}
h1{font-weight:900; font-stretch:condensed; line-height:0.95;}
h2{font-weight:800; line-height:1.02;}
h3{font-weight:700;}

.eyebrow{
  font-size:13px; font-weight:700; letter-spacing:0.22em;
  color:var(--clay);
}

/* ---------- nav ---------- */
.nav{
  position:sticky; top:0; z-index:50;
  background:rgba(12,11,10,0.86);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.nav .wrap{
  display:flex; align-items:center; justify-content:space-between;
  padding-top:16px; padding-bottom:16px;
}
.nav .brand{
  font-family:var(--display); font-weight:800; text-transform:uppercase;
  font-size:18px; letter-spacing:0.04em;
}
.nav .brand span{color:var(--clay);}
.navlinks{display:flex; align-items:center; gap:26px;}
.navlinks a{
  font-family:var(--display); font-weight:600; font-size:13px;
  text-transform:uppercase; letter-spacing:0.08em; color:var(--muted);
  transition:color .15s ease;
}
.navlinks a:hover, .navlinks a.active{color:var(--ink);}
.btn{
  display:inline-block; font-family:var(--display); font-weight:700;
  text-transform:uppercase; letter-spacing:0.06em; font-size:13px;
  padding:12px 22px; border-radius:2px; transition:transform .15s ease, background .15s ease;
}
.btn:hover{transform:translateY(-1px);}
.btn-clay{background:var(--clay); color:var(--ink);}
.btn-clay:hover{background:var(--rose);}
.btn-outline{border:1px solid var(--muted); color:var(--ink);}
.btn-outline:hover{border-color:var(--ink);}
.nav .btn{padding:10px 18px; font-size:12px;}

/* ---------- hero ---------- */
.hero{
  position:relative; overflow:hidden;
  min-height:92vh; display:flex; align-items:flex-end;
  background:
    radial-gradient(ellipse at 70% 20%, rgba(107,36,48,0.22), transparent 60%),
    radial-gradient(ellipse at 30% 60%, rgba(156,61,73,0.08), transparent 55%),
    linear-gradient(180deg, #040403 0%, #070605 55%, #070605 100%);
  border-bottom:1px solid var(--line);
}
.hero-photo-img{
  position:absolute; inset:0; z-index:1; width:100%; height:100%;
  object-fit:cover; object-position:85% center; opacity:0.85;
}
.hero-photo-overlay{
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(90deg, #070605 0%, rgba(7,6,5,0.45) 38%, rgba(7,6,5,0.05) 100%);
}
#dust-canvas{position:absolute; inset:0; z-index:2; pointer-events:none;}
.hero-rig{
  position:absolute; inset:0; z-index:1; opacity:0.55;
}
.hero-content{
  position:relative; z-index:3; width:100%;
  padding:0 28px 64px; max-width:var(--maxw); margin:0 auto;
}
.hero h1{
  font-size:clamp(48px, 8vw, 108px);
  max-width:920px;
  margin:18px 0 22px;
}
.hero h1 em{color:var(--clay); font-style:normal;}
.hero p.lede{
  font-family:var(--body); font-size:19px; color:var(--muted);
  max-width:560px; margin-bottom:36px;
}
.hero-ctas{display:flex; flex-wrap:wrap; gap:16px; margin-bottom:48px;}
.hero-ctas .btn{padding:16px 28px; font-size:14px;}

.program-cards{
  display:grid; grid-template-columns:1.3fr 1fr; gap:1px;
  background:var(--line); border:1px solid var(--line);
}
.pcard{background:rgba(15,13,11,0.78); backdrop-filter:blur(6px); padding:28px 30px;}
.pcard.primary{background:rgba(22,16,9,0.82); backdrop-filter:blur(6px); border-top:2px solid var(--clay);}
.pcard .eyebrow{margin-bottom:8px; display:block;}
.pcard h3{font-size:24px; margin-bottom:8px;}
.pcard .price{font-family:var(--display); font-weight:900; font-size:28px;}
.pcard .price span{font-family:var(--body); font-weight:400; font-size:14px; color:var(--muted);}
.pcard p{color:var(--muted); font-size:15px; margin:10px 0 18px; max-width:420px;}

/* ---------- sections ---------- */
section{padding:96px 0;}
.section-dark{background:var(--bg);}
.section-paper{background:var(--paper); color:var(--paper-ink);}
.section-panel{background:var(--bg-2);}
.center{text-align:center; margin:0 auto;}
.kicker-block{max-width:680px; margin-bottom:56px;}
.kicker-block h2{font-size:clamp(30px,4vw,46px); margin-top:10px;}
.section-paper .eyebrow{color:#5c1f29;}

.grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:36px;}
.grid-2{display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start;}
.feat{border-top:1px solid var(--line); padding-top:20px;}
.section-paper .feat{border-top:1px solid #d8cfba;}
.feat .num{font-family:var(--display); font-weight:900; color:var(--clay); font-size:14px; letter-spacing:0.1em;}
.feat h3{font-size:21px; margin:10px 0 8px;}
.feat p{color:var(--muted); font-size:15px;}
.section-paper .feat p{color:#5a5346;}

.divider{height:1px; background:var(--line); border:none; margin:0;}

.cta-band{
  background:linear-gradient(120deg, #1b1209, #0c0b0a);
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  padding:80px 0; text-align:center;
}
.cta-band h2{font-size:clamp(32px,5vw,56px); margin-bottom:18px;}
.cta-band p{color:var(--muted); max-width:520px; margin:0 auto 30px;}

footer{
  background:#070605; padding:56px 0 36px; border-top:1px solid var(--line);
}
.footgrid{display:flex; justify-content:space-between; flex-wrap:wrap; gap:24px; margin-bottom:32px;}
.footgrid .brand{font-family:var(--display); font-weight:800; text-transform:uppercase; font-size:18px;}
.footlinks{display:flex; gap:22px; flex-wrap:wrap;}
.footlinks a{font-size:13px; color:var(--muted); text-transform:uppercase; letter-spacing:0.06em; font-family:var(--display);}
.footnote{font-size:13px; color:#6b6357;}

/* page hero (non-home) */
.page-hero{
  padding:64px 0 56px; border-bottom:1px solid var(--line);
  background:linear-gradient(180deg, #050505, #0c0b0a);
}
.page-hero h1{font-size:clamp(38px,6vw,70px);}
.page-hero p{color:var(--muted); max-width:560px; margin-top:16px; font-size:18px;}

.pricebox{
  border:1px solid var(--line); background:var(--bg-2); padding:36px;
}
.pricebox .amount{font-family:var(--display); font-weight:900; font-size:46px;}
.pricebox .amount span{font-size:16px; font-weight:400; font-family:var(--body); color:var(--muted);}
.checklist{list-style:none; margin:24px 0; padding:0;}
.checklist li{
  padding:10px 0 10px 26px; border-top:1px solid var(--line); position:relative; font-size:15px; color:var(--muted);
}
.checklist li:before{content:"—"; position:absolute; left:0; color:var(--clay);}

.faq{border-top:1px solid var(--line);}
.faq-item{border-bottom:1px solid var(--line); padding:22px 0;}
.faq-item h3{font-size:18px; margin-bottom:8px;}
.faq-item p{color:var(--muted); font-size:15px;}

.quote-block{
  border-left:3px solid var(--clay); padding-left:24px; margin:28px 0;
  font-family:var(--body); font-style:italic; font-size:19px; color:var(--ink);
}

.photo-slot{
  position:relative; aspect-ratio:4/5; background:var(--bg-2);
  border:1px dashed var(--line); overflow:hidden;
}
.photo-slot img{width:100%; height:100%; object-fit:cover; display:none;}
.photo-placeholder{
  display:flex; position:absolute; inset:0; align-items:center; justify-content:center;
  text-align:center; color:var(--muted); font-size:13px; line-height:1.6; padding:16px;
}
.photo-placeholder code{
  display:inline-block; margin-top:6px; padding:3px 8px; background:var(--bg);
  border:1px solid var(--line); color:var(--ink); font-size:12px;
}

.testimonial-card{
  background:var(--bg-2); border:1px solid var(--line); padding:24px; border-radius:2px;
}
.testimonial-card p.quote{font-family:var(--body); font-size:16px; color:var(--ink); font-style:italic; margin-bottom:14px;}
.testimonial-card p.name{font-family:var(--display); font-size:13px; letter-spacing:0.04em; color:var(--clay); text-transform:uppercase;}

.feature-img{
  width:100%; aspect-ratio:5/4; object-fit:cover; border:1px solid var(--line); margin-bottom:18px;
}

.about-figure{
  width:280px; margin:0 0 20px 32px; float:right;
}
.about-figure img{width:100%; aspect-ratio:4/5; object-fit:cover; border:1px solid var(--line);}
.about-figure.left{float:left; margin:0 32px 20px 0;}
@media (max-width:700px){
  .about-figure, .about-figure.left{float:none; width:100%; max-width:320px; margin:0 auto 24px;}
}

@media (max-width: 880px){
  .navlinks{display:none;}
  .program-cards{grid-template-columns:1fr;}
  .grid-3{grid-template-columns:1fr; gap:30px;}
  .grid-2{grid-template-columns:1fr; gap:32px;}
  .footgrid{flex-direction:column;}
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
}

[contenteditable="true"]{
  outline:1px dashed var(--clay) !important;
  outline-offset:4px;
  cursor:text;
}
