/* ===========================================================================
   HAUNTED, shared stylesheet for subpages.
   The homepage keeps its own inline CSS. This file styles every other page
   (performer, venue, group bookings, press, Fringe, Halloween, blog, 404) so
   they share one design system without duplicating the homepage's stylesheet.
   Palette and typography deliberately match index.html.
   =========================================================================== */

@font-face{
  font-family:"Velvet Terror";
  src:url("/fonts/velvet-terror.ttf") format("truetype");
  font-weight:normal;font-style:normal;font-display:swap;
}

:root{
  --bg:#0d0a09;
  --bg-2:#15100d;
  --parchment:#e8dcc8;
  --parchment-dim:#b6a98f;
  --oxblood:#8b1a1a;
  --oxblood-deep:#5c1414;
  --gold:#c9a84c;
  --gold-soft:#a98f3f;
  --max:1140px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}

body.subpage{
  margin:0;
  background:var(--bg);
  color:var(--parchment);
  font-family:"EB Garamond",Georgia,serif;
  font-size:clamp(1.05rem,1.6vw,1.2rem);
  line-height:1.78;
  overflow-x:hidden;
}
body.subpage::before{
  content:"";position:fixed;inset:0;z-index:-2;
  background:
    radial-gradient(120% 90% at 50% -10%, rgba(92,20,20,.22), transparent 60%),
    radial-gradient(120% 120% at 50% 120%, rgba(40,24,14,.5), transparent 55%),
    linear-gradient(180deg,#0d0a09 0%,#120d0a 45%,#0d0a09 100%);
}
body.subpage::after{
  content:"";position:fixed;inset:0;z-index:1000;pointer-events:none;
  opacity:.05;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

a{color:var(--gold);}
a:hover{color:#e3c46a;}
img{display:block;max-width:100%;height:auto;}

h1,h2,h3,.display{font-family:"Playfair Display",Georgia,serif;font-weight:900;line-height:1.15;}
h1.display,.subhead h2{font-family:"Velvet Terror","Playfair Display",Georgia,serif;font-weight:normal;}

/* ---------- Screen-reader-only text ---------- */
.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

/* ---------- Skip link (accessibility) ---------- */
.skip{position:absolute;left:-9999px;top:0;background:var(--oxblood);color:#fff;padding:.7rem 1.1rem;z-index:2000;}
.skip:focus{left:.6rem;top:.6rem;}

/* ---------- Site header / nav ---------- */
.sitenav{
  border-bottom:1px solid rgba(201,168,76,.18);
  background:rgba(13,10,9,.86);
  position:sticky;top:0;z-index:1200;
  backdrop-filter:blur(8px);
}
.sitenav .inner{
  max-width:var(--max);margin:0 auto;padding:.85rem 1.4rem;
  display:flex;align-items:center;justify-content:space-between;gap:1.2rem;flex-wrap:wrap;
}
.sitenav .brand{
  font-family:"Velvet Terror","Playfair Display",serif;
  font-size:1.5rem;letter-spacing:.06em;color:#f3e9d6;text-decoration:none;
}
.sitenav nav ul{list-style:none;display:flex;gap:1.25rem;margin:0;padding:0;flex-wrap:wrap;}
.sitenav nav a{
  font-family:"Cinzel",serif;text-transform:uppercase;letter-spacing:.16em;
  font-size:.72rem;color:var(--parchment-dim);text-decoration:none;
}
.sitenav nav a:hover,.sitenav nav a[aria-current="page"]{color:var(--gold);}

/* ---------- Layout ---------- */
.wrap{max-width:var(--max);margin:0 auto;padding:3.2rem 1.4rem 4rem;}
.wrap.narrow{max-width:760px;}
main{display:block;}

.overline{
  font-family:"Cinzel",serif;text-transform:uppercase;letter-spacing:.28em;
  font-size:.74rem;color:var(--gold-soft);margin:0 0 .8rem;
}
h1.display{font-size:clamp(2.4rem,6.5vw,4.4rem);margin:0 0 1.2rem;color:#f3e9d6;
  text-shadow:0 0 18px rgba(139,26,26,.35);}
.lede{font-size:clamp(1.14rem,2vw,1.35rem);color:var(--parchment);font-style:italic;}
h2{font-size:clamp(1.6rem,3.4vw,2.3rem);margin:2.8rem 0 1rem;color:#f3e9d6;}
h3{font-size:clamp(1.18rem,2.2vw,1.45rem);margin:2rem 0 .6rem;color:var(--gold);}
p{margin:0 0 1.15rem;}

/* ---------- Breadcrumbs ---------- */
.crumbs{
  font-family:"Cinzel",serif;text-transform:uppercase;letter-spacing:.16em;
  font-size:.68rem;color:var(--parchment-dim);margin:0 0 1.6rem;
}
.crumbs a{text-decoration:none;}
.crumbs span{margin:0 .5rem;opacity:.5;}

/* ---------- Buttons ---------- */
.btn{
  display:inline-block;font-family:"Cinzel",serif;text-transform:uppercase;
  letter-spacing:.18em;font-size:.8rem;padding:.95rem 1.9rem;
  text-decoration:none;border:1px solid var(--gold-soft);color:var(--parchment);
  transition:background .25s ease,color .25s ease,transform .25s ease;
}
.btn:hover{transform:translateY(-2px);color:#fff;}
.btn-primary{background:var(--oxblood);border-color:var(--oxblood);color:#f6ecd9;}
.btn-primary:hover{background:var(--oxblood-deep);}
.btn-row{display:flex;gap:1rem;flex-wrap:wrap;margin:2rem 0;}

/* ---------- Divider ---------- */
.divider{display:flex;align-items:center;gap:1rem;margin:3rem 0;color:var(--gold-soft);}
.divider .line{flex:1;height:1px;background:linear-gradient(90deg,transparent,rgba(201,168,76,.5),transparent);}
.divider .star{font-size:1rem;}

/* ---------- Cards & lists ---------- */
.card{
  background:linear-gradient(180deg,rgba(21,16,13,.9),rgba(13,10,9,.9));
  border:1px solid rgba(201,168,76,.22);padding:1.6rem 1.7rem;margin:0 0 1.2rem;
}
.card h3{margin-top:0;}
.grid{display:grid;gap:1.2rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));}

.linklist{list-style:none;padding:0;margin:0;display:grid;gap:.7rem;}
.linklist a{text-decoration:none;border-bottom:1px solid rgba(201,168,76,.3);}

.facts{list-style:none;padding:0;margin:1.4rem 0;}
.facts li{padding:.65rem 0;border-bottom:1px solid rgba(201,168,76,.16);display:flex;gap:1rem;flex-wrap:wrap;}
.facts li strong{
  font-family:"Cinzel",serif;text-transform:uppercase;letter-spacing:.14em;
  font-size:.72rem;color:var(--gold-soft);min-width:11rem;padding-top:.25rem;
}

blockquote.pull{
  margin:1.6rem 0;padding:1.2rem 1.6rem;border-left:2px solid var(--oxblood);
  font-style:italic;color:#f3e9d6;background:rgba(92,20,20,.09);
}
blockquote.pull cite{
  display:block;margin-top:.7rem;font-style:normal;
  font-family:"Cinzel",serif;text-transform:uppercase;letter-spacing:.16em;
  font-size:.7rem;color:var(--gold-soft);
}

/* ---------- FAQ (details/summary) ---------- */
.faq-item{background:rgba(21,16,13,.7);border:1px solid rgba(201,168,76,.2);margin:0 0 .9rem;}
.faq-item summary{
  cursor:pointer;list-style:none;padding:1.05rem 1.4rem;
  display:flex;justify-content:space-between;align-items:center;gap:1rem;
  font-family:"Cinzel",serif;font-size:.92rem;letter-spacing:.04em;color:#f3e9d6;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:"\002B";color:var(--gold);font-size:1.5rem;line-height:1;flex:none;transition:transform .25s ease;}
.faq-item[open] summary::after{transform:rotate(45deg);}
.faq-item .faq-a{padding:0 1.4rem 1.25rem;}

/* ---------- Ticket / price table ---------- */
table.prices{width:100%;border-collapse:collapse;margin:1.4rem 0;}
table.prices th,table.prices td{padding:.8rem .6rem;border-bottom:1px solid rgba(201,168,76,.18);text-align:left;}
table.prices th{
  font-family:"Cinzel",serif;text-transform:uppercase;letter-spacing:.14em;
  font-size:.7rem;color:var(--gold-soft);font-weight:500;
}
table.prices td:last-child{text-align:right;color:var(--gold);white-space:nowrap;}

/* ---------- Callout ---------- */
.callout{
  border:1px solid rgba(201,168,76,.35);background:rgba(92,20,20,.12);
  padding:1.4rem 1.6rem;margin:2rem 0;
}
.callout p:last-child{margin-bottom:0;}

/* ---------- Figure ---------- */
figure{margin:2rem 0;}
figure img{border:1px solid rgba(201,168,76,.25);}
figcaption{
  font-family:"Cinzel",serif;text-transform:uppercase;letter-spacing:.14em;
  font-size:.68rem;color:var(--parchment-dim);margin-top:.7rem;text-align:center;
}

/* ---------- Blog listing ---------- */
.postlist{list-style:none;padding:0;margin:2rem 0 0;display:grid;gap:1.6rem;}
.postlist li{border-bottom:1px solid rgba(201,168,76,.16);padding-bottom:1.6rem;}
.postlist h2{font-size:clamp(1.3rem,2.6vw,1.7rem);margin:.2rem 0 .5rem;}
.postlist h2 a{text-decoration:none;color:#f3e9d6;}
.postlist h2 a:hover{color:var(--gold);}
.postmeta{
  font-family:"Cinzel",serif;text-transform:uppercase;letter-spacing:.16em;
  font-size:.66rem;color:var(--parchment-dim);margin:0;
}

/* ---------- Footer ---------- */
.subfooter{
  border-top:1px solid rgba(201,168,76,.18);
  text-align:center;padding:3rem 1.4rem 3.6rem;color:var(--parchment-dim);
  font-size:.95rem;
}
.subfooter .f-title{
  font-family:"Velvet Terror","Playfair Display",serif;
  font-size:2rem;color:#f3e9d6;margin:0 0 .6rem;letter-spacing:.05em;
}
.subfooter p{margin:.35rem 0;}

/* ---------- Motion, respecting user preference ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .btn:hover{transform:none;}
}
