:root {
  --ember: #C8450A; --gold: #D4A53A; --ash: #1A1614;
  --smoke: #2C2420; --iron: #3D3530; --pale: #F0EBE3;
  --cream: #C9BEA8; --dark: #0F0D0B;
}
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { background:var(--ash); color:var(--pale); font-family:'Crimson Pro',serif; font-size:18px; overflow-x:hidden; }
body::before { content:''; position:fixed; inset:0; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E"); pointer-events:none; z-index:9999; opacity:0.4; }

/* ANNOUNCE */
.announce-bar { background:linear-gradient(to right,var(--ember),#A33508,var(--ember)); background-size:200% 100%; animation:shimmer 4s linear infinite; text-align:center; padding:0.6rem; }
@keyframes shimmer { 0%{background-position:200% 0} 100%{background-position:-200% 0} }
.announce-bar p { font-family:'Cinzel',serif; font-size:0.6rem; letter-spacing:0.3em; text-transform:uppercase; color:var(--pale); }

/* NAV */
nav { position:fixed; top:0; left:0; right:0; z-index:100; display:flex; justify-content:space-between; align-items:center; padding:1.2rem 4rem; background:linear-gradient(to bottom,rgba(26,22,20,0.97),transparent); backdrop-filter:blur(2px); transition:background 0.3s; }
nav.scrolled { background:rgba(15,13,11,0.97); }
.nav-logo { font-family:'Cinzel',serif; font-size:1.1rem; font-weight:900; letter-spacing:0.25em; color:var(--gold); text-decoration:none; }
.nav-links { display:flex; gap:2.5rem; list-style:none; }
.nav-links a { font-family:'Cinzel',serif; font-size:0.7rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--cream); text-decoration:none; transition:color 0.3s; }
.nav-links a:hover, .nav-links a.active { color:var(--gold); }
.nav-burger { display:none; flex-direction:column; gap:5px; cursor:pointer; padding:4px; }
.nav-burger span { display:block; width:24px; height:2px; background:var(--cream); transition:all 0.3s; }
.mobile-menu { display:none; position:fixed; inset:0; background:rgba(15,13,11,0.98); z-index:99; flex-direction:column; align-items:center; justify-content:center; gap:2.5rem; }
.mobile-menu.open { display:flex; }
.mobile-menu a { font-family:'Cinzel',serif; font-size:1.2rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--pale); text-decoration:none; }
.mobile-menu a:hover { color:var(--gold); }

/* BUTTONS */
.btn-primary { font-family:'Cinzel',serif; font-size:0.7rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--ash); background:linear-gradient(135deg,var(--gold),#B8881A); border:none; padding:0.9rem 2rem; cursor:pointer; text-decoration:none; display:inline-block; transition:all 0.3s; }
.btn-primary:hover { filter:brightness(1.1); transform:translateY(-2px); box-shadow:0 6px 24px rgba(212,165,58,0.25); }
.btn-secondary { font-family:'Cinzel',serif; font-size:0.7rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--gold); background:transparent; border:1px solid rgba(212,165,58,0.4); padding:0.9rem 2rem; cursor:pointer; text-decoration:none; display:inline-block; transition:all 0.3s; }
.btn-secondary:hover { border-color:var(--gold); background:rgba(212,165,58,0.08); transform:translateY(-2px); }

/* PAGE HERO (inner pages) */
.page-hero { height:40vh; min-height:300px; position:relative; display:flex; align-items:flex-end; padding:4rem; background:var(--dark); overflow:hidden; }
.page-hero-bg { position:absolute; inset:0; background-size:cover; background-position:center; filter:brightness(0.35) saturate(0.7); }
.page-hero-overlay { position:absolute; inset:0; background:linear-gradient(180deg,rgba(13,11,9,0.4) 0%,rgba(13,11,9,0.85) 100%); }
.page-hero-content { position:relative; z-index:2; }
.page-eyebrow { font-family:'Cinzel',serif; font-size:0.6rem; letter-spacing:0.4em; text-transform:uppercase; color:var(--ember); margin-bottom:0.75rem; display:block; }
.page-hero h1 { font-family:'Cinzel',serif; font-size:clamp(2rem,5vw,4rem); font-weight:600; color:var(--pale); line-height:1.05; }

/* SECTIONS */
section { padding:6rem 4rem; }
.section-label { font-family:'Cinzel',serif; font-size:0.6rem; letter-spacing:0.4em; text-transform:uppercase; color:var(--ember); margin-bottom:0.75rem; display:block; }
.section-title { font-family:'Cinzel',serif; font-size:clamp(1.8rem,3.5vw,3rem); font-weight:600; color:var(--pale); line-height:1.1; margin-bottom:1.5rem; }
.section-body { font-size:1.05rem; line-height:1.8; color:var(--cream); max-width:580px; }
.divider { height:1px; background:linear-gradient(to right,transparent,rgba(212,165,58,0.2),transparent); margin:2rem 0; }

/* FADE IN */
.fade-in { opacity:0; transform:translateY(20px); transition:opacity 0.7s ease,transform 0.7s ease; }
.fade-in.visible { opacity:1; transform:translateY(0); }

/* FOOTER */
footer { background:#0A0806; padding:5rem 4rem 2rem; border-top:1px solid rgba(212,165,58,0.1); }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:4rem; max-width:1200px; margin:0 auto 4rem; }
.footer-brand h3 { font-family:'Cinzel',serif; font-size:1.3rem; font-weight:900; color:var(--gold); margin-bottom:1rem; letter-spacing:0.15em; }
.footer-brand p { font-size:0.88rem; line-height:1.75; color:var(--cream); opacity:0.7; margin-bottom:1rem; }
.footer-col h4 { font-family:'Cinzel',serif; font-size:0.6rem; letter-spacing:0.3em; text-transform:uppercase; color:var(--ember); margin-bottom:1.5rem; }
.footer-col ul { list-style:none; display:flex; flex-direction:column; gap:0.75rem; }
.footer-col a { font-size:0.88rem; color:var(--cream); opacity:0.7; text-decoration:none; transition:all 0.2s; }
.footer-col a:hover { opacity:1; color:var(--gold); }
.footer-bottom { border-top:1px solid rgba(212,165,58,0.08); padding-top:2rem; display:flex; justify-content:space-between; align-items:center; max-width:1200px; margin:0 auto; }
.footer-bottom p { font-size:0.78rem; color:var(--cream); opacity:0.4; font-family:'Cinzel',serif; letter-spacing:0.1em; }
.footer-tagline { font-size:0.78rem; color:var(--cream); opacity:0.4; font-style:italic; }

/* MOBILE */
@media(max-width:900px) {
  nav { padding:1rem 1.5rem; }
  .nav-links { display:none; }
  .nav-burger { display:flex; }
  section { padding:4rem 1.5rem; }
  .footer-grid { grid-template-columns:1fr 1fr; gap:2rem; }
  .page-hero { padding:2rem 1.5rem; }
}
@media(max-width:600px) {
  .footer-grid { grid-template-columns:1fr; }
}


/* ── NAV DROPDOWN ── */
.nav-dropdown { position: relative; list-style: none; }
.nav-dropdown > a { cursor: pointer; display: block; }
.nav-sub {
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  background: #2C2420;
  border: 1px solid rgba(212,165,58,0.2);
  min-width: 230px;
  z-index: 9000;
  flex-direction: column;
  padding: 0.75rem 0 0.4rem;
  box-shadow: 0 12px 40px rgba(0,0,0,0.7);
  transition: opacity 0.15s ease, visibility 0.15s;
  display: flex;
}
.nav-dropdown.open .nav-sub {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}
.nav-sub li { list-style: none; margin: 0; padding: 0; }
.nav-sub li:first-child { border-bottom: 1px solid rgba(212,165,58,0.1); margin-bottom: 0.25rem; padding-bottom: 0.25rem; }
.nav-sub li a {
  display: block;
  padding: 0.7rem 1.25rem;
  font-family: 'Cinzel', serif;
  font-size: 0.58rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: #C9BEA8 !important;
  text-decoration: none;
  transition: color 0.15s, background 0.15s;
  white-space: nowrap;
}
.nav-sub li a:hover { color: #D4A53A !important; background: rgba(212,165,58,0.07); }

/* ── MEDIEVALSHARP — heading font override ── */
h1, h2, h3, h4,
.section-title,
.hero h1,
.nav-logo,
.hero-strapline,
.pillar h3,
.class-card h3,
.section-label,
.page-eyebrow,
.btn-primary,
.btn-secondary,
.hero-eyebrow,
[class*="section-title"],
[class*="-title"] {
  font-family: 'MedievalSharp', 'Cinzel', serif !important;
}
/* Keep Cinzel for tiny UI labels — MedievalSharp is a display font, not ideal below ~14px */
.section-label,
.page-eyebrow,
.hero-eyebrow,
.hero-trust span,
.class-category,
.pill,
.urgency-badge,
.gal-filter,
.gal-count,
.nav-links a,
.nav-sub li a,
.btn-primary,
.btn-secondary,
.booking-detail span:last-child,
.footer-col h4,
cite,
.tcard-stars {
  font-family: 'Cinzel', serif !important;
}
