/* Variables */
:root {
  --void:       #171716;
  --dark:       #1E1D1B;
  --card-bg:    #232220;
  --cherry:     #8A2909;
  --ember:      #ed4902;
  --fire:       #F16900;
  --gold:       #F16900;
  --orange-lt:  #FF8D36;
  --pale-gold:  #FF8D36;
  --cream:      #e7d4b2;
  --ash:        #e7d4b2;
  --text:       #FFDCD3;
  --muted:      rgba(255,220,211,0.72);
  --faint:      #362C27;
  --cool-bg:    #090D12;
  --cool-mid:   #111820;
  --sage:       #3D5C4A;
  --cool-blue:  #1E3A50;
  --cool-text:  #B8D0E0;
  --cool-muted: #6A8A9A;
  --lavender:   #4A3A60;
}

/* Reset */
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { background:var(--void); color:var(--text); font-family:'Inter',sans-serif; font-weight:300; overflow-x:hidden; }

/* Accessibility: visible keyboard focus */
:focus-visible { outline:2px solid var(--ember); outline-offset:3px; border-radius:2px; }

/* Nav */
nav { position:fixed; top:0; left:0; right:0; z-index:200; }
.site-nav{ background:transparent; border-bottom:1px solid transparent; transition:background .35s ease, border-color .35s ease, box-shadow .35s ease; }
.nav-inner{ width:100%; max-width:1320px; margin:0 auto; padding:20px clamp(20px,5vw,72px); display:flex; align-items:center; justify-content:space-between; gap:24px; transition:padding .35s ease; }
.site-nav.scrolled{ background:rgba(23,23,22,0.86); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); border-bottom-color:rgba(255,255,255,0.09); box-shadow:0 10px 30px -20px rgba(0,0,0,0.9); }
.site-nav.scrolled .nav-inner{ padding-block:14px; }
.nav-logo {
  font-family:'Playfair Display',serif;
  font-size:0.82rem; letter-spacing:0.26em;
  color:var(--text); text-transform:uppercase;
  text-decoration:none; white-space:nowrap;
}
.nav-right{ display:flex; align-items:center; gap:38px; }
.nav-menu { display:flex; gap:32px; list-style:none; margin:0; padding:0; }
.nav-menu a { text-decoration:none; color:rgba(250,245,240,0.66); font-size:0.72rem; letter-spacing:0.16em; text-transform:uppercase; transition:color .25s; white-space:nowrap; }
.nav-menu a:hover { color:var(--ash); }
.nav-cta{ text-decoration:none; color:#fff; font-size:0.7rem; font-weight:600; letter-spacing:0.16em; text-transform:uppercase; padding:12px 26px; border:1px solid transparent; border-radius:999px; background:linear-gradient(135deg,var(--ember),var(--fire)); box-shadow:0 8px 22px -10px rgba(241,105,0,0.6); transition:transform .25s ease, box-shadow .25s ease, filter .25s ease; white-space:nowrap; }
.nav-cta:hover{ transform:translateY(-2px); box-shadow:0 12px 28px -10px rgba(241,105,0,0.75); filter:brightness(1.07); }
.nav-toggle{ display:none; flex-direction:column; justify-content:center; gap:7px; width:44px; height:44px; background:none; border:none; cursor:pointer; padding:0; }
.nav-toggle span{ display:block; width:26px; height:1.25px; background:var(--text); margin-inline:auto; transition:transform .3s ease; }
.nav-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(4.1px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2){ transform:translateY(-4.1px) rotate(-45deg); }

/* Mobile menu panel */
.mobile-menu{ position:fixed; inset:0; z-index:190; background:rgba(23,23,22,0.98); display:flex; flex-direction:column; justify-content:center; padding:88px clamp(24px,8vw,64px) 48px; opacity:0; visibility:hidden; transition:opacity .35s ease, visibility .35s ease; }
.mobile-menu.open{ opacity:1; visibility:visible; }
.mobile-menu::before{ content:""; position:absolute; inset:0; background:radial-gradient(ellipse 80% 50% at 80% 12%, rgba(241,105,0,0.16), transparent 60%); pointer-events:none; }
.mobile-menu ul{ list-style:none; margin:0 0 40px; padding:0; position:relative; }
.mobile-menu li{ border-bottom:1px solid rgba(255,255,255,0.09); }
.mobile-menu ul a{ display:block; padding:20px 4px; font-family:'Playfair Display',serif; font-size:1.6rem; color:var(--text); text-decoration:none; transition:color .25s, padding-left .25s; }
.mobile-menu ul a:hover{ color:var(--ash); padding-left:12px; }
.mobile-menu .btn-primary{ position:relative; width:100%; text-align:center; border-radius:999px; box-shadow:0 8px 22px -10px rgba(241,105,0,0.6); }

/* Image placeholder */
.img-ph {
  background:linear-gradient(135deg, rgba(155,34,16,0.06) 0%, rgba(80,40,20,0.12) 50%, rgba(155,34,16,0.06) 100%);
  border:1px dashed rgba(155,80,40,0.22);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px;
  position:relative; overflow:hidden;
}
.img-ph::after { content:''; position:absolute; inset:0; background:linear-gradient(135deg, transparent 40%, rgba(200,135,42,0.04) 100%); }
.img-ph-icon { font-size:1.4rem; opacity:0.3; }
.img-ph-label { font-size:0.6rem; letter-spacing:0.3em; text-transform:uppercase; color:var(--ash); opacity:0.6; }
.img-ph-cool { background:linear-gradient(135deg, rgba(30,58,80,0.08) 0%, rgba(74,58,96,0.1) 100%); border:1px dashed rgba(100,150,180,0.2); }
.img-ph-cool .img-ph-label { color:var(--cool-muted); }
.photo-fill { width:100%; height:100%; object-fit:cover; display:block; }

/* Utility */
.flame-divider { height:1px; background:linear-gradient(to right,transparent,var(--ember) 30%,var(--gold) 50%,var(--ember) 70%,transparent); opacity:0.35; }
.section-tag { font-size:0.6rem; letter-spacing:0.4em; text-transform:uppercase; display:block; margin-bottom:14px; }
.section-title { font-family:'Playfair Display',serif; font-size:clamp(2rem,4vw,3rem); font-weight:300; line-height:1.15; }
.section-sub { font-size:0.85rem; line-height:1.9; margin-top:14px; color:var(--muted); }
.reveal { opacity:0; transform:translateY(28px); transition:opacity .8s ease, transform .8s ease; }
.reveal.visible { opacity:1; transform:translateY(0); }

/* Buttons */
.btn-primary {
  display:inline-block; padding:15px 38px;
  background:linear-gradient(135deg,var(--ember),var(--fire));
  color:var(--text); text-decoration:none;
  font-size:0.65rem; letter-spacing:0.25em; text-transform:uppercase;
  font-family:'Inter',sans-serif; font-weight:500;
  border:none; cursor:pointer; transition:opacity .3s;
}
.btn-primary:hover { opacity:0.85; }
.btn-ghost {
  display:inline-block; padding:15px 38px;
  background:transparent; color:var(--muted); text-decoration:none;
  font-size:0.65rem; letter-spacing:0.22em; text-transform:uppercase;
  border:1px solid rgba(120,80,60,0.35); cursor:pointer; transition:all .3s;
}
.btn-ghost:hover { border-color:var(--pale-gold); color:var(--pale-gold); }
.btn-cool {
  display:inline-block; padding:14px 32px;
  background:transparent; color:var(--cool-text); text-decoration:none;
  font-size:0.65rem; letter-spacing:0.22em; text-transform:uppercase;
  border:1px solid rgba(100,150,180,0.3); cursor:pointer; transition:all .3s;
}
.btn-cool:hover { border-color:var(--cool-text); background:rgba(100,150,180,0.07); }

/* Page hero */
.page-hero {
  padding:160px 80px 90px;
  background:var(--dark);
  position:relative; overflow:hidden;
  text-align:center;
}
.page-hero::before {
  content:''; position:absolute; inset:0;
  background:radial-gradient(ellipse 60% 70% at 50% 100%, rgba(155,34,16,0.15) 0%, transparent 65%);
}
.page-hero.cool { background:var(--cool-bg); }
.page-hero.cool::before { background:radial-gradient(ellipse 60% 70% at 50% 100%, rgba(30,58,80,0.3) 0%, transparent 65%); }
.page-hero-inner { position:relative; z-index:1; max-width:680px; margin:0 auto; }
.page-hero-tag { font-size:0.6rem; letter-spacing:0.4em; text-transform:uppercase; color:var(--ash); display:block; margin-bottom:16px; }
.page-hero.cool .page-hero-tag { color:var(--cool-muted); }
.page-hero-title {
  font-family:'Playfair Display',serif;
  font-size:clamp(2.5rem,5.5vw,4.5rem);
  font-weight:300; line-height:1.05;
  color:var(--text); margin-bottom:20px;
}
.page-hero-sub { font-size:0.88rem; line-height:1.9; color:var(--muted); max-width:520px; margin:0 auto 36px; }

/* Disclaimer band */
.disclaimer-band {
  padding:28px 60px;
  background:rgba(155,34,16,0.06);
  border-top:1px solid rgba(155,34,16,0.15);
  border-bottom:1px solid rgba(155,34,16,0.15);
}
.disclaimer-band-inner { max-width:860px; margin:0 auto; display:flex; gap:16px; align-items:flex-start; }
.disclaimer-icon { font-size:0.9rem; margin-top:2px; flex-shrink:0; color:var(--ember); }
.disclaimer-text { font-size:0.75rem; line-height:1.85; color:var(--muted); }
.disclaimer-text strong { color:var(--text); font-weight:500; }

/* Process strip */
.process-strip {
  padding:60px 80px;
  background:var(--dark);
  position:relative;
}
.process-strip-inner { max-width:1100px; margin:0 auto; display:grid; grid-template-columns:repeat(4,1fr); gap:3px; position:relative; z-index:1; }
.process-step {
  padding:36px 28px;
  background:rgba(255,255,255,0.02);
  border:1px solid rgba(155,80,40,0.1);
  position:relative;
}
.process-step::before {
  content:''; position:absolute; top:0; left:0; right:0; height:1px;
  background:linear-gradient(to right,transparent,rgba(200,135,42,0.25),transparent);
}
.process-num { font-family:'Playfair Display',serif; font-size:2.2rem; font-weight:300; color:var(--gold); line-height:1; margin-bottom:14px; }
.process-label { font-size:0.62rem; letter-spacing:0.3em; text-transform:uppercase; color:var(--ash); margin-bottom:8px; display:block; }
.process-desc { font-size:0.78rem; line-height:1.75; color:var(--muted); }

/* Session cards */
.sacred-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:3px; }
.sacred-card {
  background:rgba(255,255,255,0.02);
  border:1px solid rgba(155,80,40,0.12);
  padding:0;
  position:relative; overflow:hidden;
  transition:transform .4s ease;
}
.sacred-card:hover { transform:translateY(-3px); }
.sacred-card-img-wrap { width:100%; overflow:hidden; }
.sacred-card-img { width:100%; aspect-ratio:16/9; object-fit:cover; display:block; }
.sacred-card-body { padding:32px; }
.sacred-card-situation { font-family:'Playfair Display',serif; font-size:0.95rem; font-weight:300; font-style:italic; color:var(--muted); line-height:1.55; margin-bottom:20px; }
.sacred-card-tag { font-size:0.58rem; letter-spacing:0.32em; text-transform:uppercase; color:var(--ash); margin-bottom:12px; display:block; }
.sacred-card-title { font-family:'Playfair Display',serif; font-size:1.5rem; font-weight:300; color:var(--text); margin-bottom:14px; line-height:1.2; }
.sacred-card-desc { font-size:0.78rem; line-height:1.85; color:var(--muted); margin-bottom:24px; }
.sacred-price { display:flex; align-items:baseline; gap:6px; margin-bottom:24px; }
.price-num { font-family:'Playfair Display',serif; font-size:2rem; font-weight:300; color:var(--pale-gold); line-height:1; }
.price-sub { font-size:0.65rem; color:var(--ash); letter-spacing:0.1em; }
.sacred-link {
  font-size:0.62rem; letter-spacing:0.28em; text-transform:uppercase;
  color:var(--pale-gold); text-decoration:none;
  border-bottom:1px solid rgba(200,135,42,0.3); padding-bottom:3px;
  transition:all .3s;
}
.sacred-link:hover { border-color:var(--pale-gold); }

/* Free cards */
.free-grid { display:grid; grid-template-columns:1fr 1fr; gap:3px; max-width:1100px; margin:0 auto; position:relative; z-index:1; }
.free-card {
  background:rgba(255,255,255,0.09);
  border:1px solid rgba(255,255,255,0.14);
  position:relative; overflow:hidden;
  transition:transform .4s ease;
}
.free-card:hover { transform:translateY(-3px); }
.free-card::before {
  content:''; position:absolute; top:0; left:0; right:0; height:1px;
  background:linear-gradient(to right,transparent,rgba(255,255,255,0.3),transparent);
}
.free-card-content { padding:52px 48px; display:flex; flex-direction:column; justify-content:space-between; }
.free-badge { display:inline-block; padding:4px 12px; border:1px solid rgba(255,255,255,0.3); font-size:0.58rem; letter-spacing:0.3em; text-transform:uppercase; color:rgba(255,255,255,0.6); margin-bottom:20px; }
.free-card-title { font-family:'Playfair Display',serif; font-size:2rem; font-weight:400; line-height:1.15; color:var(--text); margin-bottom:16px; }
.free-card-desc { font-size:0.82rem; line-height:1.9; color:rgba(240,232,224,0.85); margin-bottom:28px; flex:1; }
.free-card-note {
  font-size:0.72rem;
  padding:12px 16px; border-left:2px solid rgba(255,255,255,0.2);
  color:rgba(220,210,200,0.7); background:rgba(255,255,255,0.04);
  margin-bottom:28px; line-height:1.6;
}

/* Forms */
.form-outer { padding:80px 80px; background:var(--void); }
.form-inner { max-width:720px; margin:0 auto; }
.form-group { margin-bottom:28px; }
.form-label { display:block; font-size:0.62rem; letter-spacing:0.3em; text-transform:uppercase; color:var(--ash); margin-bottom:10px; }
.form-input, .form-textarea, .form-select {
  width:100%; padding:14px 18px;
  background:rgba(255,255,255,0.03);
  border:1px solid rgba(155,80,40,0.2);
  color:var(--text); font-family:'Inter',sans-serif; font-size:0.85rem;
  outline:none; transition:border-color .3s;
}
.form-input:focus, .form-textarea:focus, .form-select:focus { border-color:rgba(200,135,42,0.45); }
.form-input::placeholder, .form-textarea::placeholder { color:var(--muted); }
.form-textarea { resize:vertical; min-height:140px; line-height:1.7; }
.form-select { cursor:pointer; -webkit-appearance:none; appearance:none; }
.form-note { font-size:0.72rem; color:var(--muted); margin-top:8px; line-height:1.6; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.form-privacy { font-size:0.7rem; color:var(--muted); line-height:1.7; margin-top:20px; padding:16px 20px; border:1px solid rgba(155,80,40,0.1); background:rgba(155,34,16,0.03); }

/* Text content pages */
.text-page { padding:80px 80px 100px; max-width:860px; margin:0 auto; }
.text-page h2 { font-family:'Playfair Display',serif; font-size:1.6rem; font-weight:300; color:var(--text); margin:48px 0 16px; }
.text-page h3 { font-family:'Playfair Display',serif; font-size:1.2rem; font-weight:300; color:var(--pale-gold); margin:32px 0 12px; }
.text-page p { font-size:0.85rem; line-height:1.95; color:var(--muted); margin-bottom:18px; }
.text-page ul { margin:0 0 18px 20px; }
.text-page li { font-size:0.85rem; line-height:1.9; color:var(--muted); margin-bottom:6px; }
.text-page strong { color:var(--text); font-weight:500; }
.text-page a { color:var(--pale-gold); text-decoration:none; border-bottom:1px solid rgba(200,135,42,0.3); }
.text-page a:hover { border-color:var(--pale-gold); }

/* CTA band */
.cta-band {
  padding:80px 60px; background:var(--void); text-align:center;
  border-top:1px solid var(--faint); position:relative; overflow:hidden;
}
.cta-band::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse 50% 80% at 50% 50%, rgba(155,34,16,0.08) 0%, transparent 65%); }
.cta-band-inner { position:relative; z-index:1; max-width:600px; margin:0 auto; }
.cta-band-title { font-family:'Playfair Display',serif; font-size:clamp(1.8rem,3.5vw,2.8rem); font-weight:300; color:var(--text); margin-bottom:14px; }
.cta-band-sub { font-size:0.82rem; color:var(--muted); line-height:1.8; margin-bottom:36px; }
.email-row { display:flex; flex-direction:column; gap:8px; max-width:500px; margin:0 auto; }
.email-fields { display:flex; gap:0; }
.email-input {
  flex:1; padding:15px 20px;
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(155,80,40,0.25);
  color:var(--text); font-family:'Inter',sans-serif; font-size:0.8rem; outline:none;
}
.email-input + .email-input { border-left:1px solid rgba(155,80,40,0.12); }
.email-input::placeholder { color:var(--ash); }
.email-btn {
  width:100%; padding:15px 28px;
  background:linear-gradient(135deg,var(--ember),var(--fire));
  color:var(--text); border:none; cursor:pointer;
  font-family:'Inter',sans-serif; font-size:0.65rem;
  letter-spacing:0.2em; text-transform:uppercase; font-weight:500;
  transition:opacity .3s;
}
.email-btn:hover { opacity:0.85; }

/* Footer */
footer { padding:44px 80px 26px; background:#131212; border-top:1px solid var(--faint); }
.footer-top { display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:48px; margin-bottom:32px; }
.footer-logo { font-family:'Playfair Display',serif; font-size:1.1rem; letter-spacing:0.2em; color:var(--pale-gold); text-transform:uppercase; margin-bottom:10px; }
.footer-tagline { font-size:0.72rem; color:var(--ash); font-family:'Playfair Display',serif; margin-bottom:14px; }
.footer-desc { font-size:0.74rem; line-height:1.75; color:var(--muted); }
.footer-col-title { font-size:0.58rem; letter-spacing:0.3em; text-transform:uppercase; color:var(--ash); margin-bottom:14px; }
.footer-col ul { list-style:none; display:flex; flex-direction:column; gap:8px; }
.footer-col a { text-decoration:none; font-size:0.76rem; color:var(--muted); transition:color .3s; }
.footer-col a:hover { color:var(--pale-gold); }
.footer-bottom { display:flex; flex-direction:column; justify-content:center; align-items:center; gap:12px; text-align:center; padding-top:22px; border-top:1px solid rgba(80,40,20,0.25); }
.footer-copy { font-size:0.7rem; color:var(--ash); letter-spacing:0.1em; }
.footer-sub-links { display:flex; gap:22px; flex-wrap:wrap; justify-content:center; }
.footer-sub-links a { font-size:0.7rem; color:var(--ash); text-decoration:none; letter-spacing:0.08em; transition:color .3s; }
.footer-sub-links a:hover { color:var(--pale-gold); }

/* Animations */
@keyframes fadeUp { from { opacity:0; transform:translateY(22px); } to { opacity:1; transform:translateY(0); } }

/* Nav responsive */
@media (max-width:960px){
  .nav-menu{ display:none; }
  .nav-cta{ display:none; }
  .nav-toggle{ display:flex; }
  .nav-logo{ font-size:0.72rem; letter-spacing:0.18em; }
}

/* 1024px */
@media (max-width: 1024px) {
  .page-hero { padding:140px 60px 80px; }
  .statement-band { padding:60px 40px; }
  .quote-break { padding:60px 40px; }
  .cta-band { padding:60px 40px; }
  .process-strip { padding:60px 40px; }
  .process-strip-inner { grid-template-columns:repeat(2,1fr); }
  .sacred-cards { grid-template-columns:repeat(2,1fr); }
  .who-section { padding:80px 60px; gap:60px; }
  .experience-section { padding:80px 60px; }
  .experience-header { margin-bottom:50px; }
  .free-section { padding:80px 60px; }
  .sacred-section { padding:80px 60px; }
  .sacred-top { gap:60px; }
  .hero-content { padding:0 40px; }
  .form-outer { padding:60px 40px; }
  .text-page { padding:60px 40px 80px; }
  footer { padding:60px 40px 40px; }
  .footer-top { gap:40px; }
}

/* 768px */
@media (max-width: 768px) {
  /* Hero */
  .hero-content { padding:0 24px; }

  /* Page hero */
  .page-hero { padding:110px 24px 60px; }
  .page-hero-sub { font-size:0.82rem; }

  /* Bands */
  .statement-band { padding:48px 24px; }
  .quote-break { padding:60px 24px; }
  .cta-band { padding:60px 24px; }
  .disclaimer-band { padding:24px; }
  .disclaimer-band-inner { flex-direction:column; gap:10px; }
  .form-outer { padding:48px 24px; }
  .text-page { padding:60px 24px 80px; }

  /* Process strip */
  .process-strip { padding:0; }
  .process-strip-inner { grid-template-columns:1fr; gap:1px; }

  /* Who section */
  .who-section { grid-template-columns:1fr; padding:60px 24px; gap:40px; max-width:100%; }
  .who-image { position:static; aspect-ratio:4/3; }

  /* Experience grid */
  .experience-section { padding:60px 24px; }
  .experience-grid { grid-template-columns:1fr; }
  .exp-cell-large { grid-column:span 1; grid-row:span 1; min-height:260px; }
  .exp-cell-sm { min-height:180px; aspect-ratio:unset; }

  /* Free section */
  .free-section { padding:60px 24px; }
  .free-grid { grid-template-columns:1fr; }
  .free-card-content { padding:36px 24px; }

  /* Sacred section */
  .sacred-section { padding:60px 24px; }
  .sacred-top { grid-template-columns:1fr; gap:40px; }
  .sacred-image { aspect-ratio:4/3; }
  .sacred-cards { grid-template-columns:1fr; }
  .sacred-card-body { padding:24px; }

  /* Forms */
  .form-row { grid-template-columns:1fr; }
  .email-fields { flex-direction:column; }

  /* Footer: brand + tagline + copyright + legal only, centered */
  footer { padding:36px 20px 24px; }
  .footer-top { grid-template-columns:1fr; margin-bottom:18px; }
  .footer-brand { grid-column:1; text-align:center; }
  .footer-col { display:none; }
  .footer-desc { display:none; }
  .footer-tagline { margin-bottom:0; }
  .footer-bottom { flex-direction:column; gap:10px; text-align:center; }
  .footer-sub-links { justify-content:center; flex-wrap:wrap; gap:16px; }
}

/* 480px */
@media (max-width: 480px) {
  .nav-inner{ padding-block:14px; }
  .page-hero { padding:100px 20px 50px; }
  .hero-content { padding:0 20px; }
  .statement-band { padding:36px 20px; }
  .statement-band blockquote { font-size:1.3rem; }
  .quote-break { padding:48px 20px; }
  .cta-band { padding:48px 20px; }
  .cta-band-title { font-size:1.6rem; }
  .sacred-cards { grid-template-columns:1fr; }
  .sacred-card-body { padding:20px; }
  .sacred-section { padding:48px 20px; }
  .who-section { padding:48px 20px; }
  .btn-primary, .btn-ghost { padding:11px 22px; font-size:0.62rem; }
  footer { padding:32px 16px 20px; }
  .footer-top { grid-template-columns:1fr; gap:16px; }
  .footer-brand { grid-column:1; }
}
