* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; background:#1a0f04; }
body { font-family:'Inter', sans-serif; background:#1a0f04; color:#F3D9AE; min-height:100vh; min-height:100svh; }
a { color:inherit; }

/* ==================== HEADER (shared) ==================== */
.site-header {
  position:fixed; top:0; left:0; right:0; z-index:20;
  display:flex; align-items:center; justify-content:space-between;
  padding:20px 36px; background:rgba(26,15,4,0.45); backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.site-brand {
  font-family:'Fraunces', serif; font-weight:700; font-style:italic;
  font-size:1.25rem; color:#FFF6E9; text-decoration:none;
}
.site-nav { display:flex; align-items:center; gap:34px; }
.site-nav a {
  font-size:0.86rem; font-weight:500; color:#F3D9AE; opacity:0.8;
  text-decoration:none; transition:opacity 0.2s ease;
}
.site-nav a:hover { opacity:1; }
.login-link {
  border:1px solid rgba(255,217,138,0.45); padding:9px 22px; border-radius:30px;
  font-size:0.84rem; font-weight:600; color:#FFD98A !important; opacity:1 !important;
}
.login-link:hover { background:rgba(255,217,138,0.1); }
@media (max-width:800px) {
  .site-nav a:not(.login-link) { display:none; }
  .site-header { padding:18px 22px; }
}

/* ==================== HERO ==================== */
.mx-stage {
  position:relative; height:100vh; height:100svh; width:100%;
  display:flex; align-items:center; justify-content:center; text-align:center;
  overflow:hidden; background:#1a0f04;
}
.mx-canvas { position:absolute; inset:0; z-index:1; }
.mx-vignette {
  position:absolute; inset:0; z-index:2; pointer-events:none;
  background: radial-gradient(ellipse 55% 45% at center, rgba(26,15,4,0.8) 0%, rgba(26,15,4,0) 70%);
}
.mx-content { position:relative; z-index:5; padding:0 24px; }
.mx-question {
  font-weight:600; font-size: clamp(0.95rem, 1.6vw, 1.15rem);
  color:#FFD98A; letter-spacing:0.18em; text-transform:uppercase; margin-bottom:0px;
}
.mx-link { display:inline-block; text-decoration:none; cursor:pointer; }
.mx-wordmark {
  font-family:'Fraunces', serif; font-weight:700; font-style:italic;
  font-size: clamp(2.8rem, 7.5vw, 5.4rem); color:#FFF6E9; line-height:1;
  text-shadow: 0 0 30px rgba(255, 217, 138, 0.4);
  transition: transform 0.25s cubic-bezier(.34,1.56,.64,1), text-shadow 0.25s ease;
}
.mx-link:hover .mx-wordmark { transform: scale(1.03); text-shadow: 0 0 44px rgba(255, 217, 138, 0.65); }
.mx-link:active .mx-wordmark { transform: scale(0.98); }
.mx-cta {
  margin-top:16px; font-weight:600; font-size:0.82rem;
  letter-spacing:0.18em; text-transform:uppercase; color:#FFD98A; opacity:0.85;
}
.mx-link:hover .mx-cta { opacity:1; }
.mx-scroll {
  position:absolute; bottom:34px; left:50%; transform:translateX(-50%); z-index:5;
  font-size:0.72rem; letter-spacing:0.2em; text-transform:uppercase; color:#F3D9AE;
  opacity:0.55; animation: bob 2.2s ease-in-out infinite;
}
@keyframes bob { 0%,100%{ transform:translate(-50%,0); } 50%{ transform:translate(-50%,6px); } }

/* ==================== SHARED SECTION STYLES ==================== */
section { padding: 100px 24px; position:relative; }
.wrap { max-width:1080px; margin:0 auto; }
.eyebrow {
  font-weight:600; font-size:0.78rem; letter-spacing:0.22em; text-transform:uppercase;
  color:#FFD98A; opacity:0.8; margin-bottom:14px; text-align:center;
}
h2.headline {
  font-family:'Fraunces', serif; font-weight:700; font-style:italic;
  font-size: clamp(1.9rem, 4vw, 2.9rem); color:#FFF6E9; text-align:center; line-height:1.15;
  max-width:720px; margin:0 auto 18px;
}
p.sub {
  text-align:center; max-width:600px; margin:0 auto; color:#E8CBA0; opacity:0.85;
  font-size:1.02rem; line-height:1.6;
}

/* ==================== VALUE PROPS ==================== */
.value-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:28px; margin-top:56px; }
.value-card {
  background:rgba(255,217,138,0.05); border:1px solid rgba(255,217,138,0.15);
  border-radius:16px; padding:32px 26px; text-align:center;
}
.value-card .num {
  font-family:'Fraunces', serif; font-style:italic; font-weight:700;
  font-size:1.6rem; color:#FFD98A; margin-bottom:14px;
}
.value-card h3 { font-size:1.15rem; color:#FFF6E9; margin-bottom:10px; font-weight:600; }
.value-card p { font-size:0.92rem; color:#E8CBA0; opacity:0.8; line-height:1.55; }

/* ==================== STATS ==================== */
.stats-section { background:rgba(255,217,138,0.04); }
.stats-grid { display:grid; grid-template-columns:repeat(4, 1fr); gap:28px; margin-top:56px; text-align:center; }
.stat-num {
  font-family:'Fraunces', serif; font-style:italic; font-weight:700;
  font-size: clamp(2.2rem, 4vw, 3rem); color:#FFD98A;
}
.stat-label { font-size:0.88rem; color:#E8CBA0; opacity:0.8; margin-top:8px; line-height:1.5; }

/* ==================== PROCESS ==================== */
.steps-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:28px; margin-top:56px; }
.step-card { text-align:center; padding:0 12px; }
.step-badge {
  width:56px; height:56px; border-radius:50%; margin:0 auto 18px;
  display:flex; align-items:center; justify-content:center;
  background:#FFD98A; color:#1a0f04; font-weight:700; font-size:1.3rem;
  font-family:'Fraunces', serif;
}
.step-card h3 { font-size:1.1rem; color:#FFF6E9; margin-bottom:10px; font-weight:600; }
.step-card p { font-size:0.92rem; color:#E8CBA0; opacity:0.8; line-height:1.55; }

/* ==================== PRICING ==================== */
.pricing-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:26px; margin-top:56px; }
.price-card {
  background:rgba(255,217,138,0.05); border:1px solid rgba(255,217,138,0.15);
  border-radius:18px; padding:34px 28px; display:flex; flex-direction:column;
  transition:transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
  text-decoration:none; color:inherit; cursor:pointer;
}
.price-card.featured { border-color:#FFD98A; background:rgba(255,217,138,0.09); }
@media (hover:hover) {
  .price-card:hover {
    transform:translateY(-6px);
    border-color:rgba(255,217,138,0.55);
    box-shadow:0 12px 32px rgba(255,217,138,0.12), 0 0 0 1px rgba(255,217,138,0.08);
    background:rgba(255,217,138,0.08);
  }
  .price-card.featured:hover {
    border-color:#FFD98A;
    box-shadow:0 14px 36px rgba(255,217,138,0.2), 0 0 0 1px rgba(255,217,138,0.15);
    background:rgba(255,217,138,0.12);
  }
}
.price-plan { font-size:0.82rem; letter-spacing:0.14em; text-transform:uppercase; color:#FFD98A; margin-bottom:10px; font-weight:600; }
.price-amount { font-family:'Fraunces', serif; font-style:italic; font-weight:700; font-size:2.2rem; color:#FFF6E9; margin-bottom:6px; }
.price-trial { font-size:0.8rem; color:#E8CBA0; opacity:0.7; margin-bottom:22px; }
.price-list { list-style:none; margin-bottom:26px; flex-grow:1; }
.price-list li {
  font-size:0.88rem; color:#E8CBA0; padding:7px 0; opacity:0.9;
  border-bottom:1px solid rgba(255,217,138,0.1);
}
.price-btn {
  display:block; text-align:center; padding:13px; border-radius:30px;
  background:#FFD98A; color:#1a0f04; font-weight:700; font-size:0.92rem;
  text-decoration:none; transition:transform 0.2s ease;
}
.price-btn:hover { transform:translateY(-2px); }

/* ==================== FAQ ==================== */
.faq-list { max-width:760px; margin:56px auto 0; }
.faq-item { border-bottom:1px solid rgba(255,217,138,0.15); padding:20px 0; }
.faq-item summary {
  cursor:pointer; list-style:none; display:flex; align-items:center; justify-content:space-between;
  gap:20px; font-size:1.02rem; color:#FFF6E9; font-weight:600; line-height:1.4;
  -webkit-tap-highlight-color:transparent;
}
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary::after {
  content:'+'; flex-shrink:0; font-size:1.3rem; font-weight:400; color:#FFD98A;
  transition:transform 0.25s ease; line-height:1;
}
.faq-item[open] summary::after { transform:rotate(45deg); }
.faq-item summary:hover { color:#FFD98A; }
.faq-item p { font-size:0.92rem; color:#E8CBA0; opacity:0.8; line-height:1.6; margin-top:14px; }

/* ==================== FINAL CTA ==================== */
.final-cta { text-align:center; background:rgba(255,217,138,0.04); padding-top:70px; }
.final-btn {
  display:inline-block; margin-top:28px; padding:16px 42px; border-radius:40px;
  background:#FFD98A; color:#1a0f04; font-weight:700; text-decoration:none;
  box-shadow: 0 10px 24px rgba(0,0,0,0.4); transition: transform 0.2s ease;
}
.final-btn:hover { transform:translateY(-2px); }

/* ==================== FOOTER ==================== */
footer { padding:50px 24px; text-align:center; border-top:1px solid rgba(255,217,138,0.12); }
.footer-wordmark {
  font-family:'Fraunces', serif; font-style:italic; font-weight:700;
  font-size:1.4rem; color:#FFF6E9; margin-bottom:14px;
}
.footer-links a { font-size:0.85rem; color:#E8CBA0; opacity:0.8; text-decoration:none; margin:0 12px; }
.footer-links a:hover { opacity:1; }
.footer-copy { font-size:0.78rem; color:#E8CBA0; opacity:0.5; margin-top:18px; }

@media (max-width:900px) {
  .value-grid, .steps-grid, .pricing-grid { grid-template-columns:1fr; }
  .stats-grid { grid-template-columns:repeat(2, 1fr); }
  section { padding:70px 20px; }
}

/* ==================== BOOKING PAGE (embed) ==================== */
.book-embed-wrap {
  padding:100px 24px 40px;
  display:flex; align-items:flex-start; justify-content:center;
}
.book-embed-iframe {
  width:100%; max-width:1200px; border:0; display:block; min-height:700px;
  border-radius:20px; overflow:hidden;
}
@media (max-width:1260px) {
  .book-embed-wrap { padding:100px 16px 40px; }
}

/* ==================== LEGAL PAGES (privacy/terms) ==================== */
.legal-wrap {
  padding:130px 24px 90px;
  display:flex; justify-content:center;
}
.legal-panel {
  width:100%; max-width:780px; background:transparent; color:#E8CBA0;
  padding:0 10px;
}
@media (max-width:700px) {
  .legal-wrap { padding:110px 14px 60px; }
  .legal-panel { padding:0; }
}

/* Override Termly's forced light-mode colors so the policy reads light-on-dark like the rest of the site */
.legal-panel [data-custom-class='title'], .legal-panel [data-custom-class='title'] * {
  font-family:'Fraunces', serif !important; font-style:italic !important; font-weight:700 !important;
  color:#FFF6E9 !important; font-size:2rem !important;
}
.legal-panel [data-custom-class='subtitle'], .legal-panel [data-custom-class='subtitle'] * {
  font-family:'Inter', sans-serif !important; color:#FFD98A !important; font-size:0.85rem !important;
}
.legal-panel [data-custom-class='heading_1'], .legal-panel [data-custom-class='heading_1'] * {
  font-family:'Fraunces', serif !important; font-style:italic !important; font-weight:700 !important;
  color:#FFD98A !important; font-size:1.3rem !important;
}
.legal-panel [data-custom-class='heading_2'], .legal-panel [data-custom-class='heading_2'] * {
  font-family:'Inter', sans-serif !important; font-weight:700 !important;
  color:#FFF6E9 !important; font-size:1.05rem !important;
}
.legal-panel [data-custom-class='body_text'], .legal-panel [data-custom-class='body_text'] * {
  font-family:'Inter', sans-serif !important; color:#E8CBA0 !important; font-size:0.95rem !important;
}
.legal-panel [data-custom-class='link'], .legal-panel [data-custom-class='link'] * {
  font-family:'Inter', sans-serif !important; color:#FFD98A !important; font-size:0.95rem !important;
}
.legal-panel span[style*="color: rgb(0, 0, 0)"],
.legal-panel span[style*="color:#000"],
.legal-panel span[style*="color: rgb(127, 127, 127)"],
.legal-panel span[style*="color: rgb(89, 89, 89)"] {
  color:#E8CBA0 !important;
}
.legal-panel a { color:#FFD98A !important; }
.legal-panel table, .legal-panel td, .legal-panel th {
  border-color: rgba(255,217,138,0.25) !important; color:#E8CBA0;
}
.legal-panel [id="control"] { color:#FFD98A !important; }
.legal-panel h1, .legal-panel h2, .legal-panel h3 { line-height:1.3; margin-top:0.4em; }
.legal-panel ul { padding-left:1.3em; margin:0.6em 0; }
.legal-panel li { margin-bottom:0.4em; }

/* ==================== BOOKING PAGE (legacy, unused) ==================== */
.book-stage {
  min-height:100vh; padding:140px 36px 80px;
  display:grid; grid-template-columns: 1fr 1.15fr; gap:60px; align-items:start;
  max-width:1180px; margin:0 auto;
}
.book-left { padding-top:20px; }
.plan-badge {
  display:inline-flex; align-items:center; gap:8px; padding:7px 16px;
  border:1px solid rgba(255,217,138,0.4); border-radius:30px;
  font-size:0.8rem; font-weight:600; letter-spacing:0.03em; color:#FFD98A;
  margin-bottom:22px;
}
.book-eyebrow {
  font-weight:600; font-size:0.78rem; letter-spacing:0.22em; text-transform:uppercase;
  color:#FFD98A; opacity:0.8; margin-bottom:16px;
}
.book-headline {
  font-family:'Fraunces', serif; font-weight:700; font-style:italic;
  font-size: clamp(2.1rem, 4vw, 3.1rem); color:#FFF6E9; line-height:1.15; margin-bottom:20px;
}
.book-sub {
  font-size:1.02rem; color:#E8CBA0; opacity:0.85; line-height:1.65; max-width:440px; margin-bottom:36px;
}
.book-points { list-style:none; display:flex; flex-direction:column; gap:20px; }
.book-points li { display:flex; align-items:flex-start; gap:14px; font-size:0.95rem; color:#E8CBA0; opacity:0.92; line-height:1.5; }
.point-icon {
  flex-shrink:0; width:26px; height:26px; border-radius:50%; background:rgba(255,217,138,0.12);
  display:flex; align-items:center; justify-content:center; color:#FFD98A; font-size:0.85rem; font-weight:700;
  margin-top:2px;
}
.book-panel {
  background:rgba(255,217,138,0.05); border:1px solid rgba(255,217,138,0.15);
  border-radius:20px; padding:36px; min-height:560px;
  display:flex; flex-direction:column;
}
.book-panel-head { margin-bottom:24px; }
.book-panel-head h3 { font-size:1.15rem; color:#FFF6E9; font-weight:600; margin-bottom:6px; }
.book-panel-head p { font-size:0.88rem; color:#E8CBA0; opacity:0.75; }
.cal-embed {
  flex-grow:1; border-radius:14px; border:1px dashed rgba(255,217,138,0.3);
  background:rgba(0,0,0,0.15);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; padding:40px 24px; gap:10px;
}
.cal-embed .cal-icon {
  width:52px; height:52px; border-radius:50%; background:rgba(255,217,138,0.12);
  display:flex; align-items:center; justify-content:center; font-size:1.4rem; margin-bottom:8px;
}
.cal-embed h4 { font-size:1rem; color:#FFF6E9; font-weight:600; }
.cal-embed p { font-size:0.85rem; color:#E8CBA0; opacity:0.7; max-width:320px; }
.cal-embed code {
  display:block; margin-top:10px; font-size:0.75rem; color:#FFD98A; opacity:0.8;
  background:rgba(0,0,0,0.25); padding:6px 12px; border-radius:8px;
}
.trust-row {
  display:flex; align-items:center; gap:10px; margin-top:24px;
  font-size:0.8rem; color:#E8CBA0; opacity:0.65;
}
@media (max-width:900px) {
  .book-stage { grid-template-columns:1fr; padding:120px 22px 60px; gap:40px; }
  .book-left { padding-top:0; }
}
