/* THE SOUL ARCHITECTURE — site styles
   Palette (from the book's own cover plates):
   ink-violet #2E1A47 · midnight #1B0F2B · aged gold #A9842C
   parchment #F6F1E7 · soft lilac #CBB8E0                                  */

:root{
  --violet:#2E1A47; --midnight:#1B0F2B; --gold:#A9842C;
  --parchment:#F6F1E7; --lilac:#CBB8E0; --ink:#241633;
  --rule:1px solid rgba(169,132,44,.55);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--parchment);color:var(--ink);
  font-family:Georgia,'Times New Roman',serif;font-size:17px;line-height:1.65}
h1,h2,h3,.display{font-family:'Cormorant Garamond',Georgia,serif;
  font-weight:600;color:var(--violet);letter-spacing:.01em}
a{color:var(--gold)}
.eyebrow{font-size:12px;letter-spacing:.32em;text-transform:uppercase;
  color:var(--gold);margin:0 0 10px}
.wrap{max-width:880px;margin:0 auto;padding:0 22px}

/* ---------- frontispiece hero ---------- */
.hero{background:
  radial-gradient(1200px 600px at 50% -10%, #3A2359 0%, var(--midnight) 62%);
  color:var(--lilac);padding:56px 0 64px;position:relative;overflow:hidden}
.plate{border:1px solid rgba(169,132,44,.8);outline:1px solid rgba(169,132,44,.45);
  outline-offset:6px;padding:56px 28px;text-align:center;position:relative}
.hero h1{font-size:clamp(38px,7vw,64px);color:#EFE6D2;margin:.2em 0 .1em;
  font-weight:500}
.hero .sub{font-size:clamp(16px,2.6vw,20px);font-style:italic;color:var(--lilac);
  max-width:34em;margin:0 auto}
.glyph-ring{position:absolute;inset:0;display:grid;place-items:center;
  pointer-events:none;opacity:.16}
.glyph-ring>div{width:min(78vw,560px);aspect-ratio:1;border-radius:50%;
  border:1px dashed rgba(203,184,224,.6);position:relative;
  animation:spin 240s linear infinite}
.glyph-ring span{position:absolute;left:50%;top:50%;color:#EFE6D2;
  font-size:22px;transform:rotate(var(--a)) translateY(calc(min(39vw,280px)*-1))
  rotate(calc(var(--a)*-1))}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.glyph-ring>div{animation:none}}
.hero .cta-row{margin-top:34px;display:flex;gap:14px;justify-content:center;
  flex-wrap:wrap}

/* ---------- buttons ---------- */
.btn{display:inline-block;padding:13px 26px;border:1px solid var(--gold);
  font-family:Georgia,serif;font-size:15px;letter-spacing:.06em;
  text-decoration:none;cursor:pointer;background:transparent;color:inherit}
.btn.gold{background:var(--gold);color:#1B0F2B;font-weight:bold}
.btn.gold:hover{background:#c39a37}
.btn.ghost:hover{background:rgba(169,132,44,.12)}
button.btn{appearance:none}

/* ---------- sections ---------- */
section{padding:58px 0}
section h2{font-size:clamp(26px,4.6vw,36px);margin:0 0 6px}
.rule{height:0;border-top:var(--rule);margin:10px 0 26px;position:relative}
.rule::after{content:"\2726";position:absolute;left:50%;top:-13px;
  transform:translateX(-50%);background:var(--parchment);padding:0 12px;
  color:var(--gold);font-size:13px}
.cols{columns:2;column-gap:42px}
@media(max-width:700px){.cols{columns:1}}
.cols p{margin-top:0;break-inside:avoid}
.dropcap::first-letter{font-family:'Cormorant Garamond',serif;font-size:3.1em;
  float:left;line-height:.82;padding:2px 8px 0 0;color:var(--gold)}

/* what's inside list */
.contents{list-style:none;padding:0;margin:0;border-top:var(--rule)}
.contents li{padding:13px 2px;border-bottom:var(--rule);display:flex;
  gap:14px;align-items:baseline}
.contents .roman{font-family:'Cormorant Garamond',serif;color:var(--gold);
  min-width:2.4em;font-size:19px}

/* ---------- cards & forms ---------- */
.card{background:#FBF8F1;border:1px solid rgba(169,132,44,.5);
  box-shadow:0 1px 0 rgba(169,132,44,.35), 0 14px 34px rgba(46,26,71,.08);
  padding:30px 26px}
.card.dark{background:var(--midnight);color:var(--lilac);
  border-color:rgba(169,132,44,.7)}
.card.dark h2,.card.dark h3{color:#EFE6D2}
form .grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:640px){form .grid{grid-template-columns:1fr}}
label{display:block;font-size:12px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--gold);margin:0 0 6px}
input,select{width:100%;padding:12px;border:1px solid rgba(169,132,44,.55);
  background:#fff;font:inherit;color:var(--ink)}
.card.dark input{background:#241633;color:#EFE6D2;border-color:rgba(169,132,44,.6)}
.hint{font-size:13.5px;font-style:italic;opacity:.85;margin:6px 0 0}
.field{margin-bottom:6px}
.price{font-family:'Cormorant Garamond',serif;font-size:44px;color:var(--gold);
  margin:6px 0 2px}
.badge{display:inline-block;border:1px solid var(--gold);color:var(--gold);
  font-size:11px;letter-spacing:.25em;text-transform:uppercase;
  padding:5px 12px;margin-bottom:14px}
.banner{background:#3A2359;color:#EFE6D2;text-align:center;font-size:14px;
  padding:10px 16px}

/* ---------- the reading plate (free report) ---------- */
.reading{max-width:760px;margin:46px auto;background:#FBF8F1;
  border:1px solid rgba(169,132,44,.85);outline:1px solid rgba(169,132,44,.45);
  outline-offset:5px;padding:46px 34px}
.reading header{text-align:center;margin-bottom:8px}
.reading h1{font-size:clamp(30px,5.5vw,42px);margin:.1em 0}
.reading .meta{font-style:italic;color:#6b5a82}
.reading h3{margin:30px 0 6px;font-size:23px}
.reading h3 .k{color:var(--gold);font-size:13px;letter-spacing:.28em;
  text-transform:uppercase;display:block;font-family:Georgia,serif}
.reading p{margin:8px 0 0;text-align:justify}
.bless{font-style:italic;text-align:center;margin-top:34px;color:var(--violet)}

/* ---------- tables (admin) ---------- */
table{width:100%;border-collapse:collapse;font-size:14.5px;background:#FBF8F1}
th,td{border:1px solid rgba(169,132,44,.45);padding:9px 10px;text-align:left}
th{background:var(--violet);color:#EFE6D2;font-weight:normal;
  letter-spacing:.08em;font-size:12.5px;text-transform:uppercase}

/* ---------- footer ---------- */
footer{background:var(--midnight);color:var(--lilac);padding:44px 0 54px;
  margin-top:70px;font-size:14.5px}
footer .rule::after{background:var(--midnight)}
.disclaimer{border:1px solid rgba(169,132,44,.5);padding:18px 20px;
  font-style:italic;line-height:1.7}

/* ---------- v5 additions: hero display line, autocomplete, time picker,
              clarity statements, cliffhanger doors ---------- */
.display-q{font-family:'Cormorant Garamond',Georgia,serif;
  font-size:clamp(30px,6vw,54px);color:#EFE6D2;line-height:1.14;
  margin:.25em 0 .2em;font-weight:500}
.statements p{font-size:clamp(18px,2.8vw,22px);
  font-family:'Cormorant Garamond',Georgia,serif;color:var(--violet);
  text-align:center;margin:16px auto;max-width:30em;line-height:1.5}

.ac-wrap{position:relative}
.ac-list{position:absolute;left:0;right:0;top:100%;z-index:40;
  background:#FBF8F1;border:1px solid rgba(169,132,44,.7);
  max-height:230px;overflow:auto;display:none;
  box-shadow:0 10px 26px rgba(46,26,71,.18)}
.card.dark .ac-list{background:#241633}
.ac-list div{padding:10px 12px;cursor:pointer;font-size:15px;
  border-bottom:1px solid rgba(169,132,44,.25)}
.ac-list div:last-child{border-bottom:none}
.ac-list div:hover{background:rgba(169,132,44,.18)}

.tob-row{display:flex;gap:8px}
.tob-row select{flex:1;min-width:0}
.tob-row.tob-missing select{border-color:#b3453a;
  box-shadow:0 0 0 2px rgba(179,69,58,.25)}
.card.dark select{background:#241633;color:#EFE6D2;
  border-color:rgba(169,132,44,.6)}

.doors{list-style:none;padding:0;margin:12px 0 0}
.doors li{padding:12px 0 12px 26px;position:relative;text-align:justify;
  border-bottom:1px dashed rgba(169,132,44,.45)}
.doors li:last-child{border-bottom:none}
.doors li::before{content:"\2726";color:var(--gold);position:absolute;
  left:2px;top:12px}

/* ---------- site-wide top bar: always one tap from home ---------- */
.topbar{background:var(--midnight);border-bottom:1px solid rgba(169,132,44,.55)}
.topbar a{display:block;text-align:center;padding:13px 10px;color:#EFE6D2;
  text-decoration:none;font-size:12.5px;letter-spacing:.32em;
  text-transform:uppercase;font-family:Georgia,serif}
.topbar a:hover{color:var(--gold)}

/* ---------- inline form errors ---------- */
.flash{border:1px solid #b3453a;background:rgba(179,69,58,.08);
  color:#7a2f28;padding:11px 14px;margin:0 0 16px;font-size:14.5px;
  font-style:italic}
.card.dark .flash{color:#f3cdc6;background:rgba(179,69,58,.28)}
