:root {
  --purple-950: #16051f;
  --purple-900: #270a3d;
  --purple-800: #351247;
  --purple-700: #5b2385;
  --purple-500: #8044ad;
  --purple-200: #d8b7ec;
  --cream: #fffaf0;
  --paper: #f8f2e8;
  --ink: #24162b;
  --gold-700: #8b5708;
  --gold-500: #dca92f;
  --gold-300: #f5d778;
  --line: rgb(245 215 120 / 42%);
  --shadow: 0 24px 70px rgb(22 5 31 / 24%);
}

* { box-sizing: border-box; }
html { overflow-x: clip; scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
body { overflow-x: clip; }
img { max-width: 100%; }
a { color: inherit; }
h1, h2, h3, p { text-wrap: balance; }
h1, h2, h3 { margin-top: 0; line-height: .98; letter-spacing: -.035em; }
h1 { font-size: clamp(3.4rem, 7vw, 7.1rem); }
h2 { font-size: clamp(2.4rem, 5vw, 4.8rem); }
h3 { font-size: clamp(1.7rem, 3vw, 2.5rem); }
p { line-height: 1.7; }

.site-header {
  position: sticky;
  z-index: 1000;
  top: 0;
  display: flex;
  min-height: 78px;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  padding: .65rem clamp(1rem, 4vw, 4rem);
  border-bottom: 1px solid var(--line);
  background: rgb(30 6 45 / 91%);
  box-shadow: 0 10px 35px rgb(15 2 24 / 18%);
  backdrop-filter: blur(18px);
}

.brand { display: inline-flex; align-items: center; gap: .8rem; color: white; text-decoration: none; }
.brand img { width: 48px; height: 56px; object-fit: contain; filter: drop-shadow(0 0 7px rgb(245 215 120 / 28%)); }
.brand strong, .brand small { display: block; }
.brand strong { font-size: .94rem; letter-spacing: .08em; text-transform: uppercase; }
.brand small { color: rgb(255 255 255 / 55%); font-size: .68rem; letter-spacing: .1em; }

.audience-switch { display: flex; align-items: center; gap: .4rem; padding: .35rem; border: 1px solid var(--line); border-radius: 999px; background: rgb(255 255 255 / 5%); }
.audience-switch span { padding-inline: .65rem .25rem; color: rgb(255 255 255 / 52%); font-size: .7rem; text-transform: uppercase; letter-spacing: .1em; }
.audience-switch a { padding: .58rem .9rem; border: 1px solid transparent; border-radius: 999px; color: rgb(255 255 255 / 76%); font-size: .78rem; text-decoration: none; transition: .2s ease; }
.audience-switch a:hover, .audience-switch a.is-active { border-color: var(--gold-300); color: var(--purple-950); background: linear-gradient(135deg, #fff0a1, var(--gold-500)); box-shadow: 0 0 16px rgb(220 169 47 / 32%); }

.section {
  position: relative;
  padding-block: clamp(5rem, 10vw, 9rem);
}
main > .section:not(:first-child) {
  border-top: 1px solid transparent;
  border-image: linear-gradient(
    90deg,
    transparent 0%,
    #6f4308 8%,
    #c88b1c 20%,
    #fff0a8 31%,
    #9b6209 43%,
    #efd06b 52%,
    #7a4908 64%,
    #f6dc7d 79%,
    #8b5708 91%,
    transparent 100%
  ) 1;
}
.eyebrow { margin-bottom: 1.1rem; color: var(--gold-700); font-size: .76rem; font-weight: 850; letter-spacing: .22em; text-transform: uppercase; }
.section-heading { max-width: 850px; margin-bottom: 3rem; }
.section-heading > p:last-child { max-width: 680px; color: rgb(36 22 43 / 67%); }
.section-heading--center { margin-inline: auto; text-align: center; }
.button { display: inline-flex; min-height: 50px; align-items: center; justify-content: center; padding: .8rem 1.35rem; border: 1px solid var(--gold-500); border-radius: 999px; font-weight: 750; text-decoration: none; box-shadow: inset 0 0 0 1px rgb(255 255 255 / 28%); transition: transform .2s ease, box-shadow .2s ease; }
.button:hover { transform: translateY(-2px); box-shadow: 0 12px 30px rgb(22 5 31 / 25%), 0 0 18px rgb(220 169 47 / 24%); }
.button--gold { color: var(--purple-950); background: linear-gradient(135deg, #fff1a2, #dca92f 58%, #9b6408); }
.button--light { color: var(--purple-950); background: var(--cream); }
.button--outline { color: white; border-color: var(--gold-300); background: transparent; }
.text-link { display: inline-flex; gap: .5rem; align-items: center; color: inherit; font-weight: 760; text-decoration-color: var(--gold-500); text-underline-offset: .35em; }
.text-link span { color: var(--gold-500); }

.home-hero { position: relative; min-height: calc(100svh - 78px); overflow: hidden; isolation: isolate; color: white; background: radial-gradient(circle at 78% 24%, rgb(143 72 184 / 48%), transparent 36%), linear-gradient(135deg, var(--purple-950), var(--purple-700) 58%, var(--purple-500)); }
.pattern-preview__art { position: absolute; z-index: -1; inset: 0; pointer-events: none; }
.pattern-preview__art svg { display: block; width: 100%; height: 100%; }
.magic-pattern [fill="#ea638d"], .magic-pattern [fill="#000"], .magic-pattern path:not([fill]) { fill: var(--purple-950); opacity: .4; filter: drop-shadow(0 0 5px rgb(216 183 236 / 22%)); }
.magic-pattern [stroke="#000"] { stroke: var(--purple-950); opacity: .4; }
.magic-pattern [fill="#fff"], .magic-pattern [fill="gold"], .magic-pattern [fill="#d1b615"] { fill: var(--purple-200); opacity: .45; }
.magic-pattern [stroke="#fff"], .magic-pattern [stroke="gold"], .magic-pattern [stroke="#d1b615"] { stroke: var(--purple-200); opacity: .45; }
.home-hero__grid { display: grid; min-height: calc(100svh - 78px); grid-template-columns: minmax(0, 1.08fr) minmax(330px, .72fr); align-items: center; gap: clamp(2rem, 6vw, 7rem); padding-block: 5rem 7rem; }
.home-hero__copy { position: relative; z-index: 2; max-width: 780px; }
.home-hero .eyebrow { color: var(--gold-300); }
.home-hero__lead { max-width: 650px; color: rgb(255 255 255 / 78%); font-size: clamp(1.05rem, 2vw, 1.35rem); }
.home-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1.4rem; margin-top: 2rem; }
.hero-portrait { position: relative; margin: 0; padding: 9px; border: 1px solid var(--gold-300); border-radius: 50% 50% 1.5rem 1.5rem; background: linear-gradient(145deg, rgb(255 255 255 / 14%), rgb(255 255 255 / 3%)); box-shadow: var(--shadow), 0 0 32px rgb(220 169 47 / 20%); }
.hero-portrait::before { content: ""; position: absolute; inset: -12px; z-index: -1; border: 1px solid rgb(245 215 120 / 22%); border-radius: inherit; }
.hero-portrait img { display: block; width: 100%; aspect-ratio: .84; border-radius: inherit; object-fit: cover; object-position: center 20%; }
.hero-portrait figcaption { position: absolute; right: 1rem; bottom: 1rem; left: 1rem; padding: .7rem 1rem; border: 1px solid var(--line); border-radius: 999px; color: white; font-size: .72rem; text-align: center; background: rgb(22 5 31 / 70%); backdrop-filter: blur(8px); }
.scroll-cue { position: absolute; bottom: 1.3rem; left: 50%; display: flex; gap: .65rem; align-items: center; color: rgb(255 255 255 / 60%); font-size: .75rem; text-decoration: none; transform: translateX(-50%); }
.scroll-cue span { color: var(--gold-300); }

.choice-section { background: var(--paper); }
.choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1.5rem, 3vw, 2.6rem); }
.choice-card { display: grid; overflow: hidden; border: 1px solid var(--gold-500); border-radius: 1.5rem; color: var(--ink); text-decoration: none; background: white; box-shadow: var(--shadow), inset 0 0 0 4px rgb(245 215 120 / 6%); transition: transform .25s ease, box-shadow .25s ease; }
.choice-card:hover { color: var(--ink); transform: translateY(-7px); box-shadow: 0 30px 80px rgb(22 5 31 / 27%), 0 0 24px rgb(220 169 47 / 17%); }
.choice-card__image { position: relative; overflow: hidden; aspect-ratio: 16 / 9; }
.choice-card__image::after { content: ""; position: absolute; inset: auto 0 0; height: 42%; background: linear-gradient(transparent, rgb(22 5 31 / 55%)); }
.choice-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.choice-card:hover img { transform: scale(1.03); }
.choice-card__body { padding: clamp(1.5rem, 4vw, 2.7rem); }
.choice-card__kicker { margin-bottom: .6rem; color: var(--gold-700); font-size: .7rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.choice-card__body p:not(.choice-card__kicker) { color: rgb(36 22 43 / 65%); }
.choice-card__body span { display: inline-block; margin-top: .8rem; padding-bottom: .2rem; border-bottom: 1px solid var(--gold-500); font-weight: 800; }
.choice-help { margin: 2rem 0 0; text-align: center; color: rgb(36 22 43 / 58%); }
.choice-help a { text-decoration-color: var(--gold-500); text-underline-offset: .3em; }

.intro-section { color: white; background: var(--purple-950); }
.intro-section .eyebrow { color: var(--gold-300); }
.intro-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(2.5rem, 7vw, 7rem); }
.intro-copy { color: rgb(255 255 255 / 68%); }
.intro-copy__lead { margin-top: 0; color: white; font-size: clamp(1.25rem, 2.4vw, 1.8rem); line-height: 1.5; }
.trust-row { display: grid; gap: .7rem; margin-top: 2rem; }
.trust-row span { padding: 1rem 1.15rem; border: 1px solid var(--line); border-radius: .85rem; background: rgb(255 255 255 / 4%); }
.trust-row strong { color: var(--gold-300); }

.gallery-section { background: #efe6f4; }
.moment-grid { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 260px; gap: 1rem; }
.moment { position: relative; margin: 0; overflow: hidden; border: 1px solid var(--gold-500); border-radius: 1rem; background: var(--purple-900); }
.moment > a { display: block; width: 100%; height: 100%; }
.moment--wide { grid-column: span 2; grid-row: span 2; }
.moment img { width: 100%; height: 100%; object-fit: cover; }
.moment figcaption { position: absolute; right: .7rem; bottom: .7rem; left: .7rem; padding: .55rem .7rem; border: 1px solid rgb(245 215 120 / 52%); border-radius: .6rem; color: white; font-size: .7rem; background: rgb(22 5 31 / 68%); backdrop-filter: blur(7px); }

.testimonial-section { background: var(--paper); }
.testimonial-grid { display: grid; grid-template-columns: 1fr .85fr .85fr; gap: 1.5rem; align-items: stretch; }
.testimonial-grid blockquote { margin: 0; padding: 2rem; border: 1px solid var(--gold-500); border-radius: 1rem; background: white; box-shadow: 0 15px 45px rgb(22 5 31 / 9%); }
.testimonial-grid blockquote p { font-size: 1.05rem; }
.testimonial-grid blockquote footer { color: var(--gold-700); font-size: .78rem; font-weight: 800; }

.final-choice { color: white; text-align: center; background: radial-gradient(circle at 50% 0, rgb(128 68 173 / 75%), transparent 55%), var(--purple-950); }
.final-choice .eyebrow { color: var(--gold-300); }
.final-choice__inner { max-width: 850px; }
.final-choice__inner > p:not(.eyebrow) { color: rgb(255 255 255 / 64%); }
.final-choice__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem; margin-top: 2rem; }

.site-footer { padding-block: clamp(3rem, 7vw, 5rem); color: rgb(255 255 255 / 60%); background: #100316; }
.footer-grid { display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: clamp(2rem, 5vw, 4rem); }
.site-footer strong { color: var(--gold-300); }
.site-footer a { color: rgb(255 255 255 / 66%); text-decoration-color: rgb(220 169 47 / 45%); text-underline-offset: .25em; }
.site-footer nav { display: grid; gap: .65rem; margin-top: 1rem; }
.site-footer p { max-width: 310px; margin: .9rem 0; color: rgb(255 255 255 / 55%); font-size: .9rem; }
.site-footer .footer-phone { color: white; font-size: 1.2rem; font-weight: 820; text-decoration-color: var(--gold-500); }
.site-footer .footer-book { width: max-content; margin-top: 1.2rem; color: var(--purple-950); }

.header-actions { display: flex; align-items: center; gap: .8rem; }
.header-contact { padding: .65rem 1rem; border: 1px solid var(--gold-500); border-radius: 999px; color: white; font-size: .78rem; font-weight: 750; text-decoration: none; }
.header-contact:hover, .header-contact.is-active { color: var(--purple-950); background: var(--gold-300); }

.site-nav {
  position: sticky;
  z-index: 990;
  top: 78px;
  min-height: 54px;
  padding: .35rem clamp(.75rem, 3vw, 2.5rem);
  border-bottom: 1px solid rgb(245 215 120 / 30%);
  background: linear-gradient(90deg, #100316, #270a3d 48%, #16051f);
  box-shadow: 0 12px 30px rgb(8 1 13 / 20%);
}
.site-nav .container-fluid { gap: 1rem; }
.site-nav__call { display: flex; flex: 0 0 auto; align-items: center; gap: .55rem; color: rgb(255 255 255 / 58%); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.site-nav__call a { color: var(--gold-300); font-size: .9rem; font-weight: 850; letter-spacing: .03em; text-decoration: none; }
.site-nav .navbar-nav { gap: .1rem; }
.site-nav .nav-link { padding: .55rem .52rem; color: rgb(255 255 255 / 72%); font-size: .75rem; font-weight: 720; }
.site-nav .nav-link:hover, .site-nav .nav-link.active { color: var(--gold-300); }
.site-nav__actions { display: flex; align-items: center; gap: .65rem; }
.site-nav__book { display: inline-flex; min-height: 36px; align-items: center; justify-content: center; padding: .5rem 1rem; border: 1px solid #f5d778; border-radius: 999px; color: var(--purple-950); font-size: .78rem; font-weight: 850; text-decoration: none; background: linear-gradient(110deg, #fff1a8, #c88b1c 48%, #f3d572 72%, #8b5708); box-shadow: inset 0 0 0 1px rgb(255 255 255 / 30%), 0 0 14px rgb(220 169 47 / 16%); }
.site-nav__book:hover { color: var(--purple-950); box-shadow: inset 0 0 0 1px rgb(255 255 255 / 45%), 0 0 20px rgb(220 169 47 / 28%); }
.site-nav .navbar-toggler { display: none; align-items: center; gap: .5rem; padding: .35rem .55rem; border-color: rgb(245 215 120 / 45%); color: var(--gold-300); font-size: .74rem; }
.site-nav .navbar-toggler-icon { width: 1.1rem; height: 1.1rem; }
@media (max-width: 1399.98px) {
  .site-nav__call span { display: none; }
  .site-nav__call { min-width: 112px; }
}

.contact-hero { min-height: 68svh; display: flex; align-items: center; color: white; background: radial-gradient(circle at 15% 10%, rgb(132 76 178 / 65%), transparent 42%), linear-gradient(135deg, var(--purple-950), var(--purple-700)); }
.contact-hero h1 { max-width: 800px; font-size: clamp(3.4rem, 7vw, 7.2rem); }
.contact-lead { max-width: 690px; margin: 1.5rem 0 2rem; color: rgb(255 255 255 / 72%); font-size: 1.2rem; }
.contact-portrait { width: 100%; aspect-ratio: 1 / 1; padding: 7px; border: 1px solid var(--gold-300); border-radius: 50%; object-fit: cover; box-shadow: var(--shadow), 0 0 30px rgb(220 169 47 / 18%); }
.contact-options { background: var(--paper); }
.contact-card { padding: clamp(1.7rem, 4vw, 3rem); border: 1px solid var(--gold-500); border-radius: 1.25rem; background: white; box-shadow: 0 15px 45px rgb(22 5 31 / 9%); }
.contact-card p:not(.eyebrow) { color: rgb(36 22 43 / 65%); }
.booking-note { display: grid; grid-template-columns: 1fr auto; gap: 2rem; align-items: center; padding: clamp(1.7rem, 4vw, 3rem); border: 1px solid var(--gold-500); border-radius: 1.25rem; color: white; background: var(--purple-950); }
.booking-note .eyebrow { color: var(--gold-300); }
.booking-note p:last-child { max-width: 760px; margin-bottom: 0; color: rgb(255 255 255 / 68%); }
.booking-note > span { color: var(--gold-300); font-size: clamp(3rem, 8vw, 6rem); text-shadow: 0 0 24px rgb(245 215 120 / 45%); }
.contact-form-section { color: white; background: radial-gradient(circle at 15% 10%, rgb(128 68 173 / 35%), transparent 35%), #100316; }
.contact-form-section p:not(.eyebrow) { color: rgb(255 255 255 / 68%); }
.form-security-note { display: grid; grid-template-columns: auto 1fr; gap: 1rem; align-items: start; margin-top: 2rem; padding: 1rem; border: 1px solid rgb(245 215 120 / 34%); border-radius: .85rem; background: rgb(245 215 120 / 5%); }
.form-security-note > span { color: var(--gold-300); font-size: 1.4rem; }
.form-security-note p { margin: 0; }
.contact-form { padding: clamp(1.4rem, 4vw, 2.5rem); border: 1px solid var(--gold-500); border-radius: 1.2rem; background: linear-gradient(145deg, rgb(75 29 101 / 72%), rgb(25 6 35 / 96%)); box-shadow: 0 20px 65px rgb(0 0 0 / 28%); }
.contact-form fieldset { border: 0; padding: 0; }
.contact-form legend { margin-bottom: 1.5rem; font-size: clamp(1.7rem, 3vw, 2.5rem); font-weight: 800; letter-spacing: -.03em; }
.contact-form label:not(.form-consent) { display: grid; gap: .45rem; color: var(--gold-300); font-size: .76rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.contact-form input:not([type="radio"]):not([type="checkbox"]), .contact-form textarea { width: 100%; padding: .8rem .9rem; border: 1px solid rgb(245 215 120 / 38%); border-radius: .65rem; color: white; background: rgb(255 255 255 / 7%); font: inherit; }
.form-progress { display: grid; grid-template-columns: auto 1fr auto; gap: .8rem; align-items: center; margin-bottom: 2rem; }
.form-progress > span { display: inline-flex; width: 2rem; height: 2rem; align-items: center; justify-content: center; border: 1px solid rgb(245 215 120 / 35%); border-radius: 50%; color: rgb(255 255 255 / 55%); font-size: .75rem; font-weight: 850; }
.form-progress > span small { position: absolute; overflow: hidden; width: 1px; height: 1px; clip: rect(0 0 0 0); }
.form-progress > span.is-active { color: var(--purple-950); background: var(--gold-300); }
.form-progress > i { height: 1px; background: linear-gradient(90deg, #7a4908, #f6dc7d, #8b5708); }
.enquiry-choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.enquiry-choice-grid label { cursor: pointer; }
.enquiry-choice-grid input { position: absolute; opacity: 0; pointer-events: none; }
.enquiry-choice-grid label > span { min-height: 112px; padding: 1rem; border: 1px solid rgb(245 215 120 / 30%); border-radius: .8rem; color: white; background: rgb(255 255 255 / 4%); }
.enquiry-choice-grid label > span strong, .enquiry-choice-grid label > span small { display: block; }
.enquiry-choice-grid label > span small { margin-top: .45rem; color: rgb(255 255 255 / 55%); font-weight: 500; letter-spacing: normal; text-transform: none; }
.enquiry-choice-grid input:checked + span { border-color: var(--gold-300); box-shadow: 0 0 0 2px rgb(245 215 120 / 12%), 0 0 18px rgb(245 215 120 / 12%); }
.form-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .8rem; margin-top: 1.5rem; }
.form-consent { display: flex; gap: .7rem; align-items: start; margin-top: 1rem; color: rgb(255 255 255 / 68%); font-size: .85rem; }
.form-consent input { margin-top: .25rem; accent-color: var(--gold-500); }
.contact-form__status { min-height: 1.5rem; margin: 1rem 0 0; color: var(--gold-300) !important; } .contact-form .form-hint { margin: -.6rem 0 1.6rem; color: rgb(255 255 255 / 68%); font-size: .85rem; line-height: 1.5; }

.audience-hero { color: white; background: linear-gradient(135deg, var(--purple-950), var(--purple-700)); }
.audience-hero--commercial { background: linear-gradient(135deg, #100f15, var(--purple-800)); }
.audience-hero__grid { display: grid; min-height: 70svh; grid-template-columns: .85fr 1.15fr; align-items: center; gap: clamp(2rem, 6vw, 6rem); padding-block: clamp(4rem, 8vw, 7rem); }
.audience-hero .eyebrow { color: var(--gold-300); }
.audience-hero h1 { font-size: clamp(3.5rem, 6vw, 6.5rem); }
.audience-hero p:not(.eyebrow) { max-width: 620px; color: rgb(255 255 255 / 72%); font-size: 1.15rem; }
.audience-hero img { width: 100%; max-height: 620px; aspect-ratio: 1.25; padding: 7px; border: 1px solid var(--gold-300); border-radius: 1.4rem; object-fit: cover; box-shadow: var(--shadow), 0 0 24px rgb(220 169 47 / 18%); }
.service-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.organisation-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.service-grid article { padding: clamp(1.5rem, 3vw, 2.5rem); border: 1px solid var(--gold-500); border-radius: 1rem; background: white; box-shadow: 0 12px 35px rgb(22 5 31 / 8%); }
.service-grid article > span { display: inline-grid; width: 2.1rem; height: 2.1rem; margin-bottom: 2rem; border: 1px solid var(--gold-500); border-radius: 50%; place-items: center; color: var(--gold-700); font-size: .68rem; font-weight: 850; }
.service-grid article p { color: rgb(36 22 43 / 64%); }
.organisation-grid article h3::before { display: block; margin-bottom: 1rem; color: var(--gold-300); font-size: 1.3rem; line-height: 1; text-shadow: 0 0 12px rgb(245 215 120 / 28%); }
.organisation-grid article:nth-child(1) h3::before { content: "✦"; }
.organisation-grid article:nth-child(2) h3::before { content: "◇"; }
.organisation-grid article:nth-child(3) h3::before { content: "✧"; }
.organisation-grid article:nth-child(4) h3::before { content: "☆"; }
.private-package-grid article { overflow: hidden; padding: 0; }
.package-card__image { display: block; width: 100%; aspect-ratio: 16 / 9; border-bottom: 1px solid rgb(245 215 120 / 48%); object-fit: cover; }
.package-card__body { padding: clamp(1.5rem, 3vw, 2.5rem); }
.package-card__body > span:first-child { display: inline-grid; width: 2.1rem; height: 2.1rem; margin-bottom: 2rem; border: 1px solid var(--gold-500); border-radius: 50%; place-items: center; color: var(--gold-300); font-size: .68rem; font-weight: 850; }
.private-package-grid .package-label { margin-bottom: 1.6rem; }
.private-package-grid .package-fit { color: var(--gold-300); }
.audience-pricing-note { display: grid; grid-template-columns: minmax(210px, .45fr) 1fr; gap: 1rem 2rem; align-items: center; margin-top: 1.5rem; padding: 1.25rem 1.4rem; border: 1px solid rgb(245 215 120 / 40%); border-radius: 1rem; color: white; background: linear-gradient(100deg, rgb(245 215 120 / 9%), rgb(255 255 255 / 3%)); }
.audience-pricing-note strong { color: var(--gold-300); }
.audience-pricing-note p { margin: 0; color: rgb(255 255 255 / 68%); }
.split-feature { background: #ede3f2; }
.split-feature__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 6vw, 6rem); align-items: center; }
.split-feature img { width: 100%; aspect-ratio: 4 / 3; padding: 6px; border: 1px solid var(--gold-500); border-radius: 1.3rem; object-fit: cover; box-shadow: var(--shadow); }
.split-feature p:not(.eyebrow) { color: rgb(36 22 43 / 68%); }

@media (max-width: 991.98px) {
  .home-hero__grid, .audience-hero__grid { grid-template-columns: 1fr 330px; gap: 2rem; }
  .moment-grid { grid-template-columns: repeat(2, 1fr); }
  .testimonial-grid { grid-template-columns: 1fr 1fr; }
  .testimonial-grid > div { grid-column: 1 / -1; }
  .site-nav .navbar-toggler { display: flex; }
  .site-nav .navbar-collapse { padding: .8rem 0 .5rem; }
  .site-nav .navbar-nav { margin-inline: 0 !important; }
  .site-nav__actions { align-items: stretch; flex-direction: column; }
  .site-nav__actions .nav-link { padding-inline: .7rem; }
  .site-nav__book { width: max-content; }
  .footer-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 767.98px) {
  body { padding-bottom: 68px; }
  .site-header { position: relative; min-height: 70px; padding: .55rem 1rem; backdrop-filter: none; }
  .site-nav { top: 0; }
  .brand img { width: 38px; height: 48px; }
  .brand strong { font-size: .78rem; }
  .brand small { display: none; }
  .audience-switch { position: fixed; z-index: 1200; right: .6rem; bottom: .55rem; left: .6rem; justify-content: center; border-color: var(--gold-500); background: rgb(22 5 31 / 94%); box-shadow: 0 8px 30px rgb(0 0 0 / 32%); }
  .audience-switch span { display: none; }
  .audience-switch a { flex: 1; text-align: center; }
  .header-actions { margin-left: auto; }
  .header-contact { padding: .55rem .75rem; font-size: .7rem; }
  .home-hero__grid, .audience-hero__grid { grid-template-columns: 1fr; padding-block: 4rem 7rem; }
  .hero-portrait { max-width: 360px; margin-inline: auto; }
  .home-hero h1 { font-size: clamp(3.2rem, 17vw, 5rem); }
  .scroll-cue { display: none; }
  .choice-grid, .intro-grid, .split-feature__grid { grid-template-columns: 1fr; }
  .moment-grid { grid-template-columns: 1fr 1fr; grid-auto-rows: 220px; }
  .moment--wide { grid-column: 1 / -1; grid-row: auto; }
  .testimonial-grid, .service-grid, .organisation-grid { grid-template-columns: 1fr; }
  .testimonial-grid > div { grid-column: auto; }
  .footer-grid { grid-template-columns: 1fr; }
  .booking-note { grid-template-columns: 1fr; }
  .audience-pricing-note { grid-template-columns: 1fr; }
  .booking-note > span { display: none; }
  .enquiry-choice-grid { grid-template-columns: 1fr; }
  .pattern-preview__art svg { width: auto; min-width: 185%; transform: translateX(-23%); }
}

.site-directory, .packages-section, .team-section, .fan-mail { color: white; background: radial-gradient(circle at 80% 0, rgb(128 68 173 / 28%), transparent 35%), #16051f; }
.directory-card { display: block; padding: clamp(1.4rem, 3vw, 2.2rem); border: 1px solid var(--gold-500); border-radius: 1rem; color: white; text-decoration: none; background: linear-gradient(145deg, rgb(75 29 101 / 68%), rgb(26 6 36 / 92%)); transition: transform .2s ease, box-shadow .2s ease; }
.directory-card:hover { color: white; transform: translateY(-4px); box-shadow: 0 18px 50px rgb(0 0 0 / 32%), 0 0 20px rgb(220 169 47 / 14%); }
.directory-card > span { color: var(--gold-300); font-size: .7rem; font-weight: 850; letter-spacing: .14em; }
.directory-card h3 { margin: 1.2rem 0 .7rem; font-size: clamp(1.5rem, 2.5vw, 2.1rem); }
.directory-card p { margin-bottom: 0; color: rgb(255 255 255 / 66%); }
.content-hero { color: white; background: radial-gradient(circle at 75% 15%, rgb(128 68 173 / 50%), transparent 38%), linear-gradient(135deg, #120319, #3b1151); }
.content-hero h1 { max-width: 1050px; font-size: clamp(3.6rem, 8vw, 8rem); }
.content-page main > .section:not(.content-hero):not(.packages-section):not(.team-section):not(.fan-mail):not(.pricing-section) { color: white; background: linear-gradient(145deg, #13031b, #2b0b3d 68%, #1b0627); }
.service-grid--rich { grid-template-columns: repeat(3, 1fr); }
.package-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.package-grid--three { grid-template-columns: repeat(3, 1fr); }
.package-grid article, .team-card, .review-card, .terms-grid article { padding: clamp(1.5rem, 3vw, 2.5rem); border: 1px solid var(--gold-500); border-radius: 1rem; background: linear-gradient(145deg, rgb(75 29 101 / 72%), rgb(25 6 35 / 94%)); box-shadow: 0 18px 50px rgb(0 0 0 / 25%); }
.package-grid article p, .team-card p, .review-card p, .terms-grid article p { color: rgb(255 255 255 / 68%); }
.packages-section .section-heading > p { color: rgb(255 255 255 / 72%); }
.packages-section .section-heading > .package-availability-note { max-width: 680px; margin-top: .7rem; color: rgb(255 255 255 / 58%); font-size: .88rem; }
.package-availability-note strong { color: var(--gold-300); }
.package-notes, .terms-note { margin-top: 1.5rem; padding: 1rem 1.2rem; border-left: 2px solid var(--gold-500); color: rgb(255 255 255 / 68%); background: rgb(255 255 255 / 4%); }
.private-notice { margin-bottom: 2rem; padding: 1.1rem 1.25rem; border: 1px solid rgb(245 215 120 / 42%); border-radius: .9rem; color: rgb(255 255 255 / 76%); background: rgb(245 215 120 / 6%); }
.private-notice a { color: var(--gold-300); font-weight: 780; text-underline-offset: .25em; }
.package-label, .package-fit { color: var(--gold-300); font-size: .76rem; font-weight: 820; letter-spacing: .08em; text-transform: uppercase; }
.pricing-section { color: white; background: #100316; }
.pricing-table { --bs-table-bg: transparent; --bs-table-color: rgb(255 255 255 / 78%); --bs-table-border-color: rgb(245 215 120 / 28%); min-width: 680px; border: 1px solid var(--gold-500); }
.pricing-table thead th { color: var(--gold-300); background: rgb(245 215 120 / 7%); }
.pricing-table th, .pricing-table td { padding: .9rem 1rem; }
.pricing-section .section-heading > p:last-child { color: rgb(255 255 255 / 72%); }
.birthday-pricing-notes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-top: 1.5rem; }
.birthday-pricing-notes article { display: grid; grid-template-columns: auto 1fr; gap: .9rem; align-items: start; padding: 1.15rem; border: 1px solid rgb(245 215 120 / 34%); border-radius: .9rem; background: rgb(245 215 120 / 5%); }
.birthday-pricing-notes article > span { color: var(--gold-300); font-size: 1.25rem; }
.birthday-pricing-notes h3 { margin-bottom: .6rem; font-size: 1.25rem; }
.birthday-pricing-notes p { margin: 0; color: rgb(255 255 255 / 68%); font-size: .9rem; }
.pricing-caution { margin: 1rem 0 0; padding: 1rem 1.2rem; border-left: 2px solid var(--gold-500); color: rgb(255 255 255 / 72%); background: rgb(245 215 120 / 5%); }
.pricing-caution strong { color: var(--gold-300); }
.workshops-package-feature { color: white; background: radial-gradient(circle at 80% 10%, rgb(128 68 173 / 38%), transparent 38%), linear-gradient(135deg, #170420, #321047); }
.workshops-package-feature__image { width: 100%; aspect-ratio: 16 / 10; padding: 6px; border: 1px solid var(--gold-500); border-radius: 1.2rem; object-fit: cover; box-shadow: var(--shadow); }
.workshops-package-feature p:not(.eyebrow) { color: rgb(255 255 255 / 70%); }
.locations-section { color: white; background: radial-gradient(circle at 12% 12%, rgb(128 68 173 / 32%), transparent 35%), #16051f; }
.location-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.location-grid article { padding: clamp(1.4rem, 3vw, 2.2rem); border: 1px solid rgb(245 215 120 / 38%); border-radius: 1rem; background: linear-gradient(145deg, rgb(75 29 101 / 62%), rgb(25 6 35 / 90%)); }
.location-grid article > span { color: var(--gold-300); font-size: 1.25rem; text-shadow: 0 0 12px rgb(245 215 120 / 28%); }
.location-grid h3 { margin: 1rem 0 .7rem; font-size: clamp(1.6rem, 2.7vw, 2.3rem); }
.location-grid p { margin: 0; color: rgb(255 255 255 / 68%); }
.events-intro { color: white; background: radial-gradient(circle at 15% 10%, rgb(128 68 173 / 32%), transparent 38%), linear-gradient(145deg, #13031b, #2b0b3d 68%, #1b0627); }
.events-intro p:not(.eyebrow) { color: rgb(255 255 255 / 70%); }
.events-intro__image { width: 100%; aspect-ratio: 16 / 10; padding: 6px; border: 1px solid var(--gold-500); border-radius: 1.2rem; object-fit: cover; box-shadow: var(--shadow); }
.event-key { display: flex; flex-wrap: wrap; gap: .75rem 1.4rem; margin-top: 1.5rem; color: rgb(255 255 255 / 70%); font-size: .82rem; }
.event-key span { display: inline-flex; align-items: center; gap: .5rem; }
.event-key i { width: .55rem; height: .55rem; border-radius: 50%; background: var(--gold-300); box-shadow: 0 0 12px rgb(245 215 120 / 55%); }
.event-key span:last-child i { background: var(--purple-200); box-shadow: none; }
.events-list-section { color: white; background: #100316; }
.events-toolbar { display: flex; justify-content: space-between; gap: 2rem; align-items: end; margin-bottom: 2.2rem; }
.events-toolbar h2 { margin-bottom: 0; }
.events-filters { display: inline-flex; padding: .3rem; border: 1px solid rgb(245 215 120 / 35%); border-radius: 999px; background: rgb(255 255 255 / 4%); }
.events-filters button { padding: .65rem 1rem; border: 0; border-radius: 999px; color: rgb(255 255 255 / 68%); font-weight: 780; background: transparent; }
.events-filters button.is-active { color: var(--purple-950); background: linear-gradient(110deg, #fff1a8, #c88b1c 52%, #f3d572); }
.events-filters span { display: inline-grid; min-width: 1.4rem; height: 1.4rem; margin-left: .25rem; place-items: center; border: 1px solid currentColor; border-radius: 50%; font-size: .68rem; }
.events-grid { display: grid; grid-template-columns: 1fr; gap: 1.25rem; }
.event-card { overflow: hidden; border: 1px solid var(--gold-500); border-radius: 1.15rem; background: linear-gradient(145deg, rgb(75 29 101 / 78%), rgb(25 6 35 / 96%)); box-shadow: 0 20px 60px rgb(0 0 0 / 28%); }
.event-card--with-image { display: grid; grid-template-columns: minmax(300px, .82fr) minmax(0, 1.18fr); }
.event-card--no-image { max-width: 850px; }
.event-card__media { display: block; overflow: hidden; }
.event-card--with-image .event-card__media { min-height: 430px; }
.event-card__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.event-card__body { padding: clamp(1.5rem, 3vw, 2.4rem); }
.event-card__meta { display: flex; justify-content: space-between; gap: 1rem; color: var(--gold-300); font-size: .7rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.event-card__date { margin: 1.3rem 0 .5rem; color: var(--gold-300); font-size: .8rem; font-weight: 760; }
.event-card h3 { margin-bottom: 1rem; }
.event-card__place { color: white; }
.event-card__description { color: rgb(255 255 255 / 58%); }
.event-card .button { margin-top: .6rem; }
.event-empty { grid-column: 1 / -1; padding: clamp(2rem, 6vw, 5rem); border: 1px dashed rgb(245 215 120 / 42%); border-radius: 1rem; text-align: center; background: rgb(255 255 255 / 3%); }
.event-empty > span { color: var(--gold-300); font-size: 2.4rem; }
.event-empty a { color: var(--gold-300); }
.story-section .row > div { padding-block: 1rem; border-bottom: 1px solid rgb(245 215 120 / 18%); }
.story-section p:not(.eyebrow) { color: rgb(255 255 255 / 70%); font-size: 1.1rem; }
.team-card img { width: 100%; aspect-ratio: 1; margin-bottom: 1.4rem; border: 1px solid rgb(245 215 120 / 45%); border-radius: .75rem; object-fit: cover; }
.review-card { margin: 0; }
.review-card footer { color: var(--gold-300); font-size: .8rem; font-weight: 800; }
.fan-mail-notes { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1.5rem; }
.fan-mail-notes span { padding: .65rem .9rem; border: 1px solid var(--gold-500); border-radius: 999px; color: var(--gold-300); }
.gallery-page-grid { display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: 330px; gap: 1rem; }
.gallery-page-grid .moment--landscape { grid-column: span 2; }
.gallery-auto-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.gallery-auto-card { display: grid; gap: .75rem; color: white; text-decoration: none; }
.gallery-auto-card:hover { color: white; }
.gallery-auto-card__media { position: relative; display: grid; overflow: hidden; aspect-ratio: 4 / 3; place-items: center; isolation: isolate; border: 1px solid rgb(245 215 120 / 58%); border-radius: 1rem; background: #16051f; box-shadow: 0 18px 44px rgb(0 0 0 / 28%); transition: transform .2s ease, box-shadow .2s ease; }
.gallery-auto-card__media::before { content: ""; position: absolute; z-index: -1; inset: -12%; background-image: var(--gallery-image); background-position: center; background-size: cover; filter: blur(18px) brightness(.5) saturate(.85); transform: scale(1.1); }
.gallery-auto-card--standard .gallery-auto-card__media::before { display: none; }
.gallery-auto-card img { display: block; width: 100%; height: 100%; object-fit: contain; }
.gallery-auto-card--standard img { object-fit: cover; }
.gallery-auto-card__action { position: absolute; right: .7rem; bottom: .7rem; padding: .42rem .62rem; border: 1px solid rgb(245 215 120 / 48%); border-radius: 999px; color: white; font-size: .68rem; font-weight: 760; background: rgb(22 5 31 / 78%); opacity: 0; transform: translateY(5px); transition: opacity .2s ease, transform .2s ease; backdrop-filter: blur(8px); }
.gallery-auto-card__title { padding-inline: .25rem; color: rgb(255 255 255 / 78%); font-weight: 760; }
.gallery-auto-card:hover .gallery-auto-card__media { transform: translateY(-3px); box-shadow: 0 24px 54px rgb(0 0 0 / 34%), 0 0 22px rgb(220 169 47 / 13%); }
.gallery-auto-card:hover .gallery-auto-card__action, .gallery-auto-card:focus-visible .gallery-auto-card__action { opacity: 1; transform: none; }
.venue-gallery-section { color: white; background: radial-gradient(circle at 80% 12%, rgb(128 68 173 / 30%), transparent 34%), #100316; }
.venue-gallery-section .section-heading > p:last-child { color: rgb(255 255 255 / 70%); }
.venue-gallery-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 360px; gap: 1rem; }
.magic-car-feature { color: white; background: radial-gradient(circle at 18% 18%, rgb(128 68 173 / 36%), transparent 38%), linear-gradient(140deg, #16051f, #37104c); }
.magic-car-feature__grid { display: grid; grid-template-columns: minmax(280px, .72fr) minmax(0, 1fr); gap: clamp(2rem, 6vw, 6rem); align-items: center; }
.magic-car-feature figure { position: relative; max-width: 560px; margin: 0; padding: 7px; border: 1px solid var(--gold-300); border-radius: 1.4rem; background: rgb(255 255 255 / 4%); box-shadow: var(--shadow), 0 0 24px rgb(220 169 47 / 16%); }
.magic-car-feature figure > a { display: block; }
.magic-car-feature img { display: block; width: 100%; aspect-ratio: 3 / 4; border-radius: 1rem; object-fit: cover; }
.magic-car-feature figcaption { position: absolute; right: 1rem; bottom: 1rem; left: 1rem; padding: .65rem .8rem; border: 1px solid rgb(245 215 120 / 48%); border-radius: .7rem; color: white; font-size: .72rem; background: rgb(22 5 31 / 78%); backdrop-filter: blur(8px); }
.magic-car-feature p:not(.eyebrow) { color: rgb(255 255 255 / 70%); }
.gallery-view-hero { color: white; background: radial-gradient(circle at 75% 15%, rgb(128 68 173 / 50%), transparent 38%), linear-gradient(135deg, #120319, #3b1151); }
.gallery-view-hero h1 { max-width: 1000px; font-size: clamp(3rem, 7vw, 6.8rem); }
.gallery-view-hero p:last-child { color: rgb(255 255 255 / 70%); }
.gallery-view-section { color: white; background: #100316; }
.gallery-full-image { position: relative; display: grid; overflow: hidden; min-height: 260px; max-width: 1280px; margin: 0 auto; padding: clamp(.5rem, 1vw, .8rem); place-items: center; isolation: isolate; border: 1px solid var(--gold-500); border-radius: 1.2rem; background: #16051f; box-shadow: var(--shadow); }
.gallery-full-image::before { content: ""; position: absolute; z-index: -1; inset: -8%; background-image: var(--gallery-image); background-position: center; background-size: cover; filter: blur(26px) brightness(.42) saturate(.85); transform: scale(1.12); }
.gallery-full-image img { position: relative; z-index: 1; display: block; width: 100%; max-height: 82vh; border-radius: .75rem; object-fit: contain; }
.gallery-full-image figcaption { position: absolute; z-index: 2; right: 1.2rem; bottom: 1.2rem; left: 1.2rem; padding: .65rem .8rem; border: 1px solid rgb(245 215 120 / 44%); border-radius: .7rem; color: white; font-size: .76rem; background: rgb(22 5 31 / 78%); backdrop-filter: blur(8px); }
.gallery-view-navigation { display: flex; justify-content: center; flex-wrap: wrap; gap: .8rem; margin-top: 1.5rem; }
.gallery-view-navigation a { padding: .7rem 1rem; border: 1px solid rgb(245 215 120 / 48%); border-radius: 999px; color: var(--gold-300); text-decoration: none; background: rgb(255 255 255 / 4%); }
.gallery-view-navigation a:hover { color: #16051f; background: var(--gold-300); }
.terms-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.terms-grid article > span { color: var(--gold-300); font-size: .7rem; font-weight: 850; letter-spacing: .14em; }
.terms-grid h2 { margin: 1.2rem 0 .9rem; font-size: clamp(1.8rem, 3vw, 2.7rem); }

@media (max-width: 991.98px) {
  .service-grid--rich, .gallery-page-grid, .gallery-auto-grid, .package-grid--three, .venue-gallery-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767.98px) {
  .package-grid, .package-grid--three, .terms-grid, .service-grid--rich, .gallery-page-grid, .gallery-auto-grid, .venue-gallery-grid { grid-template-columns: 1fr; }
  .gallery-page-grid { grid-auto-rows: 300px; }
  .gallery-page-grid .moment--landscape { grid-column: auto; }
  .venue-gallery-grid { grid-auto-rows: 290px; }
  .magic-car-feature__grid { grid-template-columns: 1fr; }
  .magic-car-feature figure { max-width: 440px; margin-inline: auto; }
  .location-grid { grid-template-columns: 1fr; }
  .birthday-pricing-notes { grid-template-columns: 1fr; }
  .events-toolbar { align-items: stretch; flex-direction: column; }
  .events-filters { width: 100%; }
  .events-filters button { flex: 1; }
  .events-grid { grid-template-columns: 1fr; }
  .event-card--with-image { display: block; }
  .event-card--with-image .event-card__media { min-height: 0; }
  .event-card__media img { height: auto; aspect-ratio: 4 / 3; }
  .gallery-auto-card__action { opacity: 1; transform: none; }
}

@media (max-width: 480px) {
  .moment-grid { grid-template-columns: 1fr; }
  .moment--wide { grid-column: auto; }
  .home-hero__actions, .final-choice__actions { align-items: stretch; flex-direction: column; }
}

/* Richer purple-and-gold section system */
.choice-section, .gallery-section, .testimonial-section, .contact-options, .split-feature,
.audience-page main > .section:not(.final-choice), .workshop-paths {
  position: relative;
  overflow: hidden;
  color: white;
  background: radial-gradient(circle at 18% 12%, rgb(128 68 173 / 24%), transparent 34%), linear-gradient(145deg, #13031b, #2b0b3d 68%, #1b0627);
}
.choice-section .section-heading > p:last-child, .choice-help, .choice-help a,
.gallery-section .section-heading > p:last-child, .testimonial-section,
.audience-page main > .section p:not(.eyebrow), .split-feature p:not(.eyebrow) { color: rgb(255 255 255 / 70%); }
.choice-card, .service-grid article, .testimonial-grid blockquote, .contact-card {
  color: white;
  background: linear-gradient(145deg, rgb(74 30 99 / 94%), rgb(29 7 40 / 97%));
  box-shadow: 0 22px 65px rgb(0 0 0 / 34%), inset 0 0 38px rgb(245 215 120 / 3%);
}
.choice-card:hover { color: white; }
.choice-card__body p:not(.choice-card__kicker), .service-grid article p, .testimonial-grid blockquote p, .contact-card p:not(.eyebrow) { color: rgb(255 255 255 / 68%); }
.crest-divider { position: relative; z-index: 4; display: grid; grid-template-columns: minmax(30px, 1fr) auto minmax(30px, 1fr); align-items: center; gap: clamp(1rem, 4vw, 3rem); padding: .4rem clamp(1rem, 6vw, 6rem); background: #16051f; }
.crest-divider span { height: 40px; background: url('../images/jm-flourish-horizontal-rule.svg') center / 100% 100% no-repeat; }
.crest-divider span:first-child { transform: scaleX(-1); }
.crest-divider img { width: clamp(120px, 15vw, 190px); max-height: 105px; filter: drop-shadow(0 0 16px rgb(245 215 120 / 24%)); }
.ornamented-section { position: relative; overflow: hidden; }
.ornamented-section::after {
  content: "";
  position: absolute;
  z-index: 0;
  right: clamp(.8rem, 2vw, 1.5rem);
  bottom: clamp(.8rem, 2vw, 1.5rem);
  width: clamp(76px, 9vw, 128px);
  aspect-ratio: 1;
  pointer-events: none;
  opacity: .72;
  background: linear-gradient(135deg, #fff1a5 4%, #e2c17f 38%, #d49a21 68%, #79500b 100%);
  -webkit-mask: url('../images/jm-flourish-corner-br.svg') right bottom / contain no-repeat;
  mask: url('../images/jm-flourish-corner-br.svg') right bottom / contain no-repeat;
  filter: drop-shadow(0 0 7px rgb(245 215 120 / 16%));
}
.ornamented-section > .container { position: relative; z-index: 1; }
.workshop-feature, .workshops-hero, .current-workshops { position: relative; overflow: hidden; color: white; background: radial-gradient(circle at 78% 20%, rgb(128 68 173 / 46%), transparent 40%), #16051f; }
.section-lead { max-width: 760px; color: rgb(255 255 255 / 72%); font-size: clamp(1.1rem, 2vw, 1.35rem); }
.workshop-route-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.workshop-route-grid article, .workshop-path-card, .schedule-grid article { padding: clamp(1.4rem, 3vw, 2.4rem); border: 1px solid var(--gold-500); border-radius: 1rem; background: linear-gradient(145deg, rgb(86 35 116 / 68%), rgb(28 7 40 / 90%)); box-shadow: 0 18px 50px rgb(0 0 0 / 25%); }
.workshop-route-grid article > span, .schedule-grid article > span { color: var(--gold-300); font-size: .72rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.workshop-route-grid h3, .schedule-grid h3 { margin: 1.2rem 0 .7rem; font-size: clamp(1.35rem, 2.4vw, 2rem); }
.workshop-route-grid p, .schedule-grid p, .workshop-path-card p, .workshop-path-card li { color: rgb(255 255 255 / 68%); }
.path-feature, .mall-feature { background: radial-gradient(circle at 20% 20%, rgb(128 68 173 / 42%), transparent 38%), linear-gradient(135deg, #170420, #37104c); }
.feature-square { width: 100%; aspect-ratio: 1; padding: 7px; border: 1px solid var(--gold-300); border-radius: 1.2rem; object-fit: cover; box-shadow: var(--shadow), 0 0 22px rgb(220 169 47 / 16%); }
.mall-image-showcase { position: relative; margin: 0; overflow: hidden; border: 1px solid var(--gold-300); border-radius: 1.2rem; background: var(--purple-950); box-shadow: var(--shadow), 0 0 22px rgb(220 169 47 / 16%); }
.mall-image-showcase img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.mall-image-showcase figcaption { position: absolute; right: .7rem; bottom: .7rem; left: .7rem; padding: .65rem .75rem; border: 1px solid rgb(245 215 120 / 48%); border-radius: .7rem; color: white; font-size: .72rem; line-height: 1.4; background: rgb(22 5 31 / 76%); backdrop-filter: blur(8px); }
.feature-points { display: flex; flex-wrap: wrap; gap: .65rem; margin: 1.6rem 0 2rem; }
.feature-points span { padding: .55rem .85rem; border: 1px solid var(--gold-500); border-radius: 999px; color: var(--gold-300); font-size: .78rem; }
.workshops-hero h1 { font-size: clamp(3.5rem, 8vw, 7.5rem); }
.workshop-path-card h2 { font-size: clamp(2.4rem, 4vw, 4.2rem); }
.workshop-path-card ul { display: grid; gap: .75rem; margin: 1.6rem 0 2rem; padding-left: 1.1rem; }
.schedule-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.current-workshops__details { display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin-top: 2rem; padding: 1.5rem; border-top: 1px solid var(--line); }
.current-workshops__details p { max-width: 720px; margin: 0; color: rgb(255 255 255 / 70%); }

@media (max-width: 991.98px) {
  .schedule-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767.98px) {
  .workshop-route-grid, .schedule-grid { grid-template-columns: 1fr; }
  .crest-divider { gap: .65rem; padding-inline: .7rem; }
  .crest-divider img { width: 105px; }
  .crest-divider span { height: 26px; }
  .current-workshops__details { align-items: stretch; flex-direction: column; }
  .ornamented-section::after { right: .7rem; bottom: .7rem; width: 72px; opacity: .58; }
}

.audience-hero, .workshops-hero, .content-hero { position: relative; isolation: isolate; }
.audience-hero::before, .workshops-hero::before, .content-hero::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  pointer-events: none;
  opacity: .105;
  background: linear-gradient(120deg, #fff2ae, #e1b84f 43%, #9b6510 78%, #f5d778);
  -webkit-mask: url('../images/magic-parts-pattern.svg') center / cover no-repeat;
  mask: url('../images/magic-parts-pattern.svg') center / cover no-repeat;
}
.audience-hero > .container, .workshops-hero > .container, .content-hero > .container { position: relative; z-index: 1; }

.pricing-load-status { margin: 0 0 1rem; color: var(--gold-300); }
.pricing-add-ons { margin-top: clamp(2.5rem, 6vw, 5rem); }
.pricing-add-on-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.pricing-add-on-card { padding: clamp(1.35rem, 3vw, 2.25rem); border: 1px solid var(--gold-500); border-radius: 1.15rem; background: linear-gradient(145deg, rgb(80 29 103 / 76%), rgb(28 6 38 / 92%)); }
.pricing-add-on-card h3 { margin-bottom: .65rem; font-size: clamp(1.7rem, 3vw, 2.5rem); }
.pricing-add-on-card p:last-child { margin-bottom: 0; color: rgb(255 255 255 / 70%); }
.pricing-add-on-card__price { color: var(--gold-300); font-size: 1.08rem; font-weight: 850; }
.workshop-price-panel { margin: 1.5rem 0; }
.workshop-price-panel .pricing-add-on-card { padding: 1.15rem; }
.workshop-price-panel .pricing-add-on-card .eyebrow { display: none; }
.workshop-price-panel .pricing-add-on-card h3 { font-size: 1.25rem; }
.workshop-tailored-note { margin: 1.5rem 0; padding: 1rem; border-left: 2px solid var(--gold-300); }
@media (max-width: 767.98px) { .pricing-add-on-grid { grid-template-columns: 1fr; } }

.package-card__image {
  display: block;
  width: 100%;
  height: auto;
}
.package-card__price {
  margin: 0;
  padding: 0.8rem 1.2rem 0.85rem;
  border-bottom: 1px solid rgb(245 215 120 / 28%);
  color: var(--gold-300);
  background:
    linear-gradient(
      90deg,
      rgb(245 215 120 / 7%),
      rgb(245 215 120 / 16%),
      rgb(245 215 120 / 7%)
    );
  font-size: clamp(1.25rem, 2.2vw, 1.65rem);
  font-weight: 850;
  text-align: center;
}
