: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%);
  /* Shared type scale: prominent without allowing headings to take over the viewport. */
  --type-page-title: clamp(2.75rem, 5.2vw, 5.25rem);
  --type-section-title: clamp(2rem, 3.6vw, 3.65rem);
  --type-card-title: clamp(1.45rem, 2.1vw, 2.1rem);
  --space-label-to-title: clamp(.7rem, 1.2vw, .95rem);
  --space-title-to-copy: clamp(.9rem, 1.5vw, 1.25rem);
}

* { 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: 0; line-height: 1.04; letter-spacing: -.035em; }
h1 { font-size: var(--type-page-title); }
h2 { font-size: var(--type-section-title); }
h3 { font-size: var(--type-card-title); line-height: 1.1; }
h1 + p, h2 + p, h3 + p { margin-top: var(--space-title-to-copy); }
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: 0 0 var(--space-label-to-title); color: var(--gold-700); font-size: .76rem; font-weight: 850; line-height: 1.4; letter-spacing: .22em; text-transform: uppercase; }
.section-heading { max-width: 850px; margin-bottom: 3rem; }
.section-heading > h2 + p, .section-heading > h1 + p { margin-top: var(--space-title-to-copy); }
.section-heading > p:last-child { max-width: 680px; margin-bottom: 0; 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(420px, .82fr); align-items: center; gap: clamp(2rem, 4vw, 4.5rem); 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; width: min(100%, 640px); justify-self: end; margin: 0; padding: 9px; border: 1px solid var(--gold-300); border-radius: 1.35rem; 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%; height: auto; aspect-ratio: 3 / 2; border-radius: calc(1.35rem - 7px); object-fit: cover; object-position: center; }
.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-grid--birthday-first { grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr); align-items: stretch; }
.choice-card--primary { border-width: 2px; box-shadow: 0 28px 80px rgb(22 5 31 / 30%), 0 0 28px rgb(220 169 47 / 18%); }
.choice-card--primary .choice-card__image { aspect-ratio: 16 / 8; }
.choice-card--secondary .choice-card__image { aspect-ratio: 16 / 10; }
.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 { padding-block: clamp(3.2rem, 5vw, 5.4rem); background: var(--paper); }
.testimonial-grid { display: grid; grid-template-columns: 1fr; gap: clamp(1.25rem, 2.5vw, 2rem); align-items: start; }
.testimonial-intro { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1.5rem 2.5rem; align-items: end; }
.testimonial-heading-copy { min-width: 0; }
.testimonial-intro .eyebrow { margin-bottom: .7rem; }
.testimonial-intro h2 { max-width: 23ch; min-height: 0; margin: 0; font-size: clamp(2rem, 3.25vw, 3.55rem); line-height: 1.04; }
.testimonial-cards { position: relative; display: flex; gap: clamp(1.15rem, 2.2vw, 1.8rem); margin: 0; padding: .2rem; overflow-x: auto; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-inline: contain; }
.testimonial-cards::-webkit-scrollbar { display: none; }
.testimonial-grid blockquote { display: grid; flex: 0 0 calc((100% - clamp(1.15rem, 2.2vw, 1.8rem)) / 2); grid-template-columns: clamp(105px, 11vw, 150px) minmax(0, 1fr); gap: clamp(1rem, 2vw, 1.5rem); align-items: center; min-width: 0; min-height: 0; margin: 0; padding: clamp(1.25rem, 2vw, 1.75rem); scroll-snap-align: start; border: 1px solid var(--gold-500); border-radius: 1rem; background: white; box-shadow: 0 15px 45px rgb(22 5 31 / 9%); }
.testimonial-stars { display: grid; grid-template-columns: repeat(5, 1fr); gap: .1rem; width: 100%; }
.testimonial-stars img { display: block; width: 100%; height: auto; filter: drop-shadow(0 7px 12px rgb(0 0 0 / 24%)); transform-origin: 50% 72%; }
.testimonial-stars.stars-are-bouncing img { animation: testimonial-star-bounce .72s cubic-bezier(.22, .78, .32, 1) both; }
.testimonial-stars.stars-are-bouncing img:nth-child(2) { animation-delay: .08s; }
.testimonial-stars.stars-are-bouncing img:nth-child(3) { animation-delay: .16s; }
.testimonial-stars.stars-are-bouncing img:nth-child(4) { animation-delay: .24s; }
.testimonial-stars.stars-are-bouncing img:nth-child(5) { animation-delay: .32s; }
@keyframes testimonial-star-bounce {
  0%, 100% { transform: translateY(0) scale(1); }
  38% { transform: translateY(-.38rem) scale(1.035); }
  68% { transform: translateY(.08rem) scale(.99); }
}
.testimonial-card__copy { display: flex; min-height: 140px; flex-direction: column; justify-content: space-between; gap: 1rem; }
.testimonial-grid blockquote p { margin: 0; font-size: 1.02rem; }
.testimonial-grid blockquote footer { color: var(--gold-700); font-size: .78rem; font-weight: 800; }
.testimonial-intro h2 { transition: opacity .2s ease; }
.testimonial-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 1rem 1.4rem; padding-bottom: .25rem; }
.testimonial-controls { display: flex; gap: .7rem; margin: 0; padding: 0; }
.testimonial-control.button { width: 3.15rem; min-height: 3.15rem; padding: 0; border-color: #f5d778; color: var(--purple-950); font-size: 1.05rem; background: linear-gradient(135deg, #fff5b8 0%, #f5d778 30%, #dca92f 62%, #8b5708 100%); box-shadow: inset 0 1px 0 rgb(255 255 255 / 70%), 0 7px 18px rgb(0 0 0 / 28%), 0 0 16px rgb(220 169 47 / 18%); }
.testimonial-control.button:hover,
.testimonial-control.button:focus-visible { color: var(--purple-950); transform: translateY(-2px); }
.testimonial-controls button:focus-visible { outline: 3px solid rgb(232 62 131 / 45%); outline-offset: 3px; }
.testimonial-more-link { margin: 0; }
@media (prefers-reduced-motion: reduce) {
  .testimonial-intro h2 { transition: none; }
  .testimonial-stars.stars-are-bouncing img { animation: none; }
}

.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; }
.organisation-route-note { margin: 1.5rem auto 0; font-size: .9rem; }
.organisation-route-note a { color: var(--gold-300); font-weight: 800; }

.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: var(--type-page-title); }
.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; }
.contact-form-section--simple { min-height: calc(100svh - 180px); padding-block: clamp(3rem, 7vw, 6rem); }
.contact-form-simple { width: min(860px, calc(100% - 2rem)); }
.contact-form-simple .section-heading { max-width: 720px; margin-bottom: 2rem; }
.contact-form-simple .section-heading h1 { color: white; font-size: var(--type-page-title); }
.contact-form-simple .contact-form { width: 100%; }
.contact-turnstile { min-height: 65px; margin-top: 1.25rem; }
.contact-form button:disabled { cursor: wait; opacity: .65; }

.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: var(--type-page-title); }
.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%); }
.audience-page--small .audience-hero h1 { font-size: clamp(2.75rem, 4.5vw, 4.8rem); line-height: 1.04; }
.audience-page--small .audience-hero__grid { padding-top: clamp(2.5rem, 5vw, 4.25rem); }
.audience-page--small .audience-hero img { width: 70%; justify-self: center; }
.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 { display: flex; overflow: hidden; flex-direction: column; padding: 0; }
.package-card__image { display: block; width: 100%; height: auto; border-bottom: 1px solid rgb(245 215 120 / 48%); }
.package-card__body { display: flex; flex: 1; flex-direction: column; padding: clamp(1.5rem, 3vw, 2.5rem); }
.package-card__heading { display: flex; align-items: center; gap: .85rem; margin-bottom: 1.25rem; }
.package-card__heading > span { display: inline-grid; flex: 0 0 auto; width: 2.1rem; height: 2.1rem; 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-card__heading .package-label { margin: 0; font-size: .92rem; letter-spacing: .1em; }
.package-timing-note { margin: 1.25rem 0 0; padding: 1rem 1.2rem; border-left: 2px solid var(--gold-300); color: rgb(255 255 255 / 68%); background: rgb(255 255 255 / 3%); }
.private-package-grid .package-fit { color: var(--gold-300); }
.package-card__book { align-self: flex-start; margin-top: auto; }
.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; }
  .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 { width: min(100%, 520px); justify-self: center; margin-inline: auto; }
  .audience-page--small .audience-hero img { width: min(100%, 440px); }
  .home-hero h1 { font-size: clamp(2.65rem, 12vw, 4.3rem); }
  .scroll-cue { display: none; }
  .choice-grid, .choice-grid--birthday-first, .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-cards { gap: 1.25rem; }
  .testimonial-intro { grid-template-columns: 1fr; align-items: start; }
  .testimonial-grid blockquote { flex-basis: 100%; grid-template-columns: 1fr; align-items: start; min-height: 0; }
  .testimonial-stars { width: min(250px, 70%); }
  .testimonial-card__copy { min-height: 0; }
  .testimonial-actions { justify-content: flex-start; }
  .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: var(--type-page-title); }
.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: 1rem; align-items: center; 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-note__badge { display: block; width: clamp(70px, 7vw, 92px); height: auto; aspect-ratio: 1; border: 2px solid var(--gold-500); border-radius: 50%; background: var(--purple-950); box-shadow: 0 0 0 3px rgb(245 215 120 / 12%), 0 .65rem 1.4rem rgb(0 0 0 / 32%), 0 0 1.1rem rgb(245 190 57 / 18%); }
.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%); }
.birthday-options-intro__grid { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(320px, .88fr); align-items: center; gap: clamp(2rem, 5vw, 5rem); }
.birthday-options-intro__image { position: relative; margin: 0; padding: 6px; border: 2px solid var(--gold-500); border-radius: 1.2rem; background: linear-gradient(145deg, #fff0a0, #b97a0a 48%, #ffe989); box-shadow: 0 22px 48px rgb(0 0 0 / 34%), 0 0 20px rgb(244 214 109 / 24%); }
.birthday-options-intro__image img { display: block; width: 100%; height: auto; border-radius: .85rem; }
.birthday-option-grid .birthday-option-card { position: relative; display: flex; overflow: hidden; flex-direction: column; padding: 7px; border: 3px solid #dca92f; border-radius: 1.35rem; background: linear-gradient(145deg, #fff0a0, #a66308 28%, #f5d56d 49%, #874700 72%, #ffe989); box-shadow: 0 24px 52px rgb(0 0 0 / 36%), 0 0 22px rgb(244 214 109 / 24%), inset 0 0 0 1px rgb(255 249 201 / 68%); }
.birthday-option-grid .birthday-option-card::after { content: ""; position: absolute; inset: 12px; z-index: 2; pointer-events: none; border: 1px solid rgb(255 244 178 / 46%); border-radius: .82rem; }
.birthday-option-card__art { position: relative; z-index: 1; overflow: hidden; margin: 0; border: 1px solid rgb(255 231 137 / 62%); border-bottom: 0; border-radius: .85rem .85rem 0 0; background: radial-gradient(circle at 50% 42%, #48145f, #17031f 74%); }
.birthday-option-card__art img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; }
.birthday-option-card__body { position: relative; z-index: 1; display: flex; flex: 1; flex-direction: column; padding: clamp(1.35rem, 3vw, 2.15rem); border: 1px solid rgb(255 231 137 / 62%); border-top: 1px solid rgb(220 169 47 / 45%); border-radius: 0 0 .85rem .85rem; background: linear-gradient(155deg, #451257, #1b0525 76%); }
.birthday-option-card__body > span { display: inline-grid; width: 2.1rem; height: 2.1rem; margin-bottom: 1.4rem; border: 1px solid var(--gold-300); border-radius: 50%; place-items: center; color: var(--gold-300); font-size: .68rem; font-weight: 850; }
.birthday-option-card__body p { color: rgb(255 255 255 / 72%); }
.birthday-option-card__body .text-link { margin-top: auto; padding-top: 1rem; }
.birthday-options-cta { color: white; background: radial-gradient(circle at 80% 15%, rgb(128 68 173 / 34%), transparent 40%), #120319; }
.birthday-options-cta__panel { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 2rem; padding: clamp(1.5rem, 4vw, 3rem); border: 1px solid var(--gold-500); border-radius: 1.2rem; background: linear-gradient(145deg, rgb(80 29 103 / 72%), rgb(28 6 38 / 92%)); box-shadow: 0 20px 50px rgb(0 0 0 / 28%); }
.birthday-options-cta__panel p:not(.eyebrow) { max-width: 780px; color: rgb(255 255 255 / 72%); }
.birthday-organisation-handoff { color: white; background: linear-gradient(145deg, #170420, #2b0b3d 68%, #1b0627); }
.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; }
.planning-timeline { display:grid; gap:1rem; margin-top:2rem; }
.planning-timeline article { display:grid; grid-template-columns:4.5rem 1fr; gap:1.25rem; padding:1.35rem; border:1px solid rgb(245 215 120 / 38%); border-radius:1rem; background:linear-gradient(135deg,rgb(94 40 120 / 64%),rgb(25 6 35 / 92%)); }
.planning-timeline article>span { display:grid; width:3.7rem; height:3.7rem; place-items:center; border:2px solid var(--gold-500); border-radius:50%; color:var(--purple-950); background:linear-gradient(135deg,#fff3a8,#d49a19 58%,#fff0a0); font-size:1.35rem; font-weight:900; }
.planning-section--paper { color:var(--purple-950); background:var(--paper); }
.planning-tip-card,.planning-checklist { padding:clamp(1.3rem,3vw,2rem); border:1px solid var(--gold-500); border-radius:1rem; background:linear-gradient(145deg,#fffdf2,#f5e8c5); }
.planning-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.planning-card-grid article { padding:1.35rem; border:1px solid var(--gold-500); border-radius:1rem; background:linear-gradient(145deg,rgb(75 29 101 / 74%),rgb(25 6 35 / 94%)); }
.planning-card-grid article p { margin:0; color:rgb(255 255 255 / 70%); }
.planning-recipe { margin-top:1rem; padding:1.1rem 1.25rem; border-left:3px solid var(--gold-500); background:rgb(245 215 120 / 12%); }
.planning-cta { display:flex; justify-content:space-between; align-items:center; gap:2rem; margin-top:2.5rem; padding:clamp(1.4rem,3vw,2.2rem); border:2px solid var(--gold-500); border-radius:1.1rem; background:linear-gradient(120deg,#21082e,#541b6b 55%,#21082e); }
.planning-resources { padding-block:2rem; color:rgb(255 255 255 / 72%); background:#100316; }.planning-resources h2{font-size:1.35rem}.planning-resources a{color:var(--gold-300)}
.testimonial-google-review { width:max-content; margin-top:.2rem; font-size:.82rem; }
.reviews-google-cta { display:flex; align-items:center; justify-content:space-between; gap:2rem; margin-top:clamp(2rem,5vw,4rem); padding:clamp(1.4rem,3vw,2.2rem); border:2px solid var(--gold-500); border-radius:1.1rem; color:white; background:linear-gradient(120deg,#21082e,#541b6b 55%,#21082e); box-shadow:var(--shadow),0 0 24px rgb(220 169 47 / 14%); }
.reviews-google-cta p:last-child { margin-bottom:0; color:rgb(255 255 255 / 72%); }
.reviews-google-cta .button { flex:0 0 auto; }
@media(max-width:991.98px){.planning-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.planning-cta{align-items:flex-start;flex-direction:column}}@media(max-width:575.98px){.planning-card-grid{grid-template-columns:1fr}.planning-timeline article{grid-template-columns:1fr}}
@media(max-width:767.98px){.reviews-google-cta{align-items:flex-start;flex-direction:column}.reviews-google-cta .button{width:100%;text-align:center}}
.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(2.75rem, 5vw, 5rem); }
.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); }
.premium-upgrade-label { display: inline-flex; align-items: center; gap: .55rem; margin-bottom: clamp(1.1rem, 2vw, 1.5rem); padding: .62rem 1rem; border: 1px solid #fff0a8; border-radius: 999px; color: var(--purple-950) !important; font-size: clamp(.82rem, 1.15vw, .95rem); line-height: 1.2; letter-spacing: .13em; background: linear-gradient(135deg, #fff5b8 0%, #f5d778 30%, #dca92f 64%, #9b6109 100%); box-shadow: inset 0 1px 0 rgb(255 255 255 / 78%), 0 .65rem 1.5rem rgb(0 0 0 / 28%), 0 0 1.1rem rgb(245 215 120 / 24%); }
.premium-upgrade-label::before { content: "★"; flex: 0 0 auto; font-size: 1rem; line-height: 1; }
.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(2.65rem, 4.8vw, 4.8rem); }
.workshop-path-card h2 { font-size: clamp(2rem, 3.2vw, 3.35rem); }
.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%); }
.current-workshops--priority { padding-block: clamp(2rem, 4vw, 3.5rem); }
.current-workshops--priority .section-heading { margin-bottom: 1.5rem; }
.current-workshops--priority .eyebrow { margin-bottom: .65rem; }
.current-workshops--priority .current-workshops__details { margin-top: 1rem; }
.current-workshops--campaign { padding-block: 1rem; color: white; background: linear-gradient(90deg, #3a1749, #241030); }
.current-workshops__campaign-inner { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr); align-items: center; gap: 1.5rem; }
.current-workshops--campaign .eyebrow { margin-bottom: .65rem; color: var(--gold-300); }
.current-workshops--campaign p:last-child { margin: 0; color: rgb(255 255 255 / 70%); }
.current-workshops--campaign .button { justify-self: center; text-align: center; }
.workshop-path-card--birthday { display: grid; grid-template-columns: 1fr; align-items: start; gap: clamp(2rem, 4vw, 3rem); border-width: 2px; box-shadow: 0 24px 70px rgb(0 0 0 / 34%), 0 0 28px rgb(220 169 47 / 14%); }
.workshop-birthday-copy { width: 100%; max-width: 1080px; margin-inline: auto; }
.workshop-feature-image { position: relative; order: -1; width: min(100%, 680px); margin: 0 auto; padding: 6px; border: 1px solid #f4d66d; border-radius: 1.35rem; background: linear-gradient(145deg, #fff0a0, #b97a0a 48%, #ffe989); box-shadow: 0 22px 48px rgb(0 0 0 / 38%), 0 0 18px rgb(244 214 109 / 34%), 0 0 42px rgb(220 169 47 / 18%); }
.workshop-feature-image::after { content: ""; position: absolute; inset: 7px; pointer-events: none; border: 1px solid rgb(255 245 180 / 48%); border-radius: .92rem; }
.workshop-feature-image img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; border-radius: .95rem; object-fit: contain; object-position: center; }
.workshop-feature-image.licensed-image-frame::before { right: auto; left: clamp(.65rem, 2vw, 1rem); }
.workshop-path-card--elsewhere { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(380px, .65fr); align-items: center; gap: clamp(1.5rem, 4vw, 4rem); margin-top: clamp(1.5rem, 4vw, 3rem); scroll-margin-top: 2rem; }
.workshop-path-card__copy { max-width: 760px; }
.workshop-path-card--elsewhere p:last-child { margin-bottom: 0; }
.workshop-external-action { display: grid; justify-items: center; gap: .55rem; justify-self: center; text-align: center; }
.workshop-external-action .button { white-space: nowrap; }
.workshop-external-action small { color: rgb(255 255 255 / 68%); font-size: .75rem; }
.workshop-path-card--elsewhere h2 { font-size: clamp(1.8rem, 2.8vw, 2.8rem); }
.workshop-hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem 1.4rem; }
.workshop-jump-link { color: var(--gold-300); font-weight: 750; text-underline-offset: .25em; }
.workshop-jump-link:hover { color: white; }

@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 { display: grid; grid-template-columns: minmax(130px, 180px) minmax(0, 1fr); gap: clamp(1.25rem, 3vw, 2rem); align-items: center; padding: clamp(1.1rem, 2.5vw, 1.6rem); border: 2px solid var(--gold-500); border-radius: 1.15rem; background: linear-gradient(145deg, rgb(80 29 103 / 76%), rgb(28 6 38 / 92%)); box-shadow: inset 0 0 0 1px rgb(255 243 184 / 14%), 0 1rem 2.4rem rgb(0 0 0 / 20%); }
.pricing-add-on-card__art { margin: 0; padding: 4px; border: 2px solid var(--gold-500); border-radius: 50%; background: linear-gradient(135deg, #fff0a8 0%, #d99a18 36%, #fff1a8 57%, #a96800 100%); box-shadow: 0 .75rem 1.6rem rgb(0 0 0 / 34%), 0 0 1.35rem rgb(245 190 57 / 20%); }
.pricing-add-on-card__art img { display: block; width: 100%; height: auto; border-radius: 50%; }
.pricing-add-on-card__body { min-width: 0; }
.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__condition { width: fit-content; margin: .2rem 0 1rem; padding: .58rem .78rem; border: 1px solid var(--gold-300); border-radius: .65rem; color: #fff4c4; font-size: .82rem; font-weight: 850; line-height: 1.4; background: linear-gradient(120deg, rgb(245 215 120 / 15%), rgb(220 169 47 / 5%)); box-shadow: inset 0 0 0 1px rgb(255 255 255 / 6%), 0 0 1rem rgb(220 169 47 / 10%); }
.pricing-add-on-card__price { margin-bottom: .35rem; color: var(--gold-300); font-size: clamp(1.15rem, 1.8vw, 1.4rem); font-weight: 900; line-height: 1.35; }
.pricing-add-on-card__minimum { margin: 0 0 1rem; color: white; font-size: 1rem; font-weight: 850; line-height: 1.45; }
.workshop-price-panel { margin: 1.5rem 0; }
.workshop-price-panel .pricing-add-on-card { grid-template-columns: 1fr; padding: 1.15rem; }
.workshop-price-panel .pricing-add-on-card__art { 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); }
.workshop-schedule-grid article { display: flex; align-items: flex-start; flex-direction: column; }
.workshop-schedule-grid article p { flex: 1; }
.workshop-schedule-grid .button { margin-top: 1rem; }
.workshop-schedule-table-wrap { overflow-x: auto; border: 1px solid var(--gold-500); border-radius: 1rem; box-shadow: 0 18px 50px rgb(0 0 0 / 25%); }
.workshop-schedule-table { width: 100%; min-width: 760px; border-collapse: collapse; color: white; background: linear-gradient(145deg, rgb(86 35 116 / 68%), rgb(28 7 40 / 90%)); }
.workshop-schedule-table th, .workshop-schedule-table td { padding: 1rem 1.15rem; border-bottom: 1px solid rgb(220 169 47 / 24%); text-align: left; vertical-align: middle; }
.workshop-schedule-table thead th { color: var(--gold-300); font-size: .72rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; background: rgb(22 5 31 / 54%); }
.workshop-schedule-table tbody tr:last-child > * { border-bottom: 0; }
.workshop-schedule-table tbody tr:hover { background: rgb(255 255 255 / 4%); }
.workshop-schedule-table tbody th { font-size: 1rem; }
.workshop-session-link { display: inline-flex; align-items: flex-start; flex-direction: column; color: white; font-weight: 850; line-height: 1.25; text-decoration: none; }
.workshop-session-link span { margin-top: .18rem; color: var(--gold-300); font-size: .7rem; font-weight: 750; }
.workshop-session-link:hover { color: var(--gold-300); }
.workshop-session-link:focus-visible { border-radius: .25rem; outline: 2px solid var(--gold-300); outline-offset: 4px; }
.workshop-card-section { margin-top: clamp(3.5rem, 7vw, 6.5rem); }
.workshop-card-section--first { margin-top: 0; }
.workshop-schedule-desktop--bottom { margin-top: clamp(3.5rem, 7vw, 6.5rem); }
.workshop-option-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.workshop-option-card { position: relative; display: flex; overflow: hidden; flex-direction: column; border: 3px solid #dca92f; border-radius: 1.15rem; background: linear-gradient(145deg, rgb(86 35 116 / 82%), rgb(28 7 40 / 96%)); box-shadow: 0 22px 52px rgb(0 0 0 / 38%), 0 0 18px rgb(244 214 109 / 26%), inset 0 0 0 1px rgb(255 239 156 / 58%); }
.workshop-option-card::before { content: ""; position: absolute; z-index: 2; inset: 4px; pointer-events: none; border: 1px solid rgb(255 239 156 / 48%); border-radius: .78rem; box-shadow: inset 0 0 14px rgb(255 221 103 / 13%); }
.workshop-option-card__image { display: block; overflow: hidden; }
.workshop-option-card__image img { display: block; width: 100%; height: auto; aspect-ratio: 1; border-bottom: 2px solid #dca92f; background: #16051f; object-fit: contain; transition: transform .25s ease; }
.workshop-option-card__image:hover img { transform: scale(1.025); }
.workshop-option-card__body { display: flex; flex: 1; flex-direction: column; padding: 1.25rem; }
.workshop-option-card__date { margin-bottom: .45rem; color: var(--gold-300) !important; font-size: .7rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.workshop-option-card h3 { margin-bottom: .75rem; font-size: clamp(1.35rem, 2vw, 1.8rem); }
.workshop-option-card h3 a { color: white; text-decoration: none; }
.workshop-option-card h3 a:hover { color: var(--gold-300); }
.workshop-option-card__body > p:not(.workshop-option-card__date) { flex: 1; color: rgb(255 255 255 / 68%); }
.workshop-option-card__sessions { display: grid; grid-template-columns: 1fr 1fr; gap: .65rem; margin-top: 1.1rem; }
.workshop-option-card__sessions a { display: flex; align-items: flex-start; flex-direction: column; padding: .8rem; border: 1px solid var(--gold-500); border-radius: .7rem; color: white; background: rgb(22 5 31 / 48%); text-decoration: none; }
.workshop-option-card__sessions a:hover { color: var(--gold-300); background: rgb(22 5 31 / 76%); }
.workshop-option-card__sessions span { margin-top: .15rem; color: var(--gold-300); font-size: .68rem; }
.workshop-certificate-feature { display: grid; grid-template-columns: minmax(260px, .65fr) minmax(0, 1.35fr); align-items: center; gap: clamp(2rem, 5vw, 5rem); margin-top: clamp(3.5rem, 7vw, 6.5rem); padding: clamp(1.5rem, 4vw, 3rem); border: 2px solid #dca92f; border-radius: 1.2rem; background: radial-gradient(circle at 82% 20%, rgb(128 68 173 / 34%), transparent 42%), rgb(22 5 31 / 72%); box-shadow: 0 22px 54px rgb(0 0 0 / 32%), 0 0 22px rgb(220 169 47 / 18%), inset 0 0 0 1px rgb(255 239 156 / 35%); }
.workshop-certificate-feature__copy p:not(.eyebrow) { color: rgb(255 255 255 / 70%); }
.workshop-certificate-note { font-size: .82rem; }
.workshop-certificate-feature figure { margin: 0; }
.workshop-certificate-feature img { display: block; width: 100%; padding: 5px; border: 1px solid #f4d66d; border-radius: .8rem; background: linear-gradient(145deg, #fff0a0, #b97a0a 48%, #ffe989); box-shadow: 0 18px 42px rgb(0 0 0 / 34%), 0 0 18px rgb(244 214 109 / 22%); }
.workshop-certificate-feature figcaption { margin-top: .55rem; color: rgb(255 255 255 / 52%); font-size: .7rem; text-align: center; }
.workshop-schedule-hero-image { height: auto; aspect-ratio: auto; padding: 6px; border-color: #f4d66d; border-radius: 1.35rem; background: linear-gradient(145deg, #fff0a0, #b97a0a 48%, #ffe989); box-shadow: 0 22px 48px rgb(0 0 0 / 38%), 0 0 18px rgb(244 214 109 / 34%), 0 0 42px rgb(220 169 47 / 18%); object-fit: contain; object-position: center; }
.workshop-detail-hero__grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(300px, .8fr); align-items: center; gap: clamp(2rem, 5vw, 5rem); }
.workshop-detail-hero h1 { max-width: 1050px; }
.workshop-detail-hero .button { margin-top: 1.25rem; }
.workshop-detail-art { position: relative; width: min(100%, 418px); margin: 0 auto; padding: 7px; border: 3px solid #dca92f; border-radius: 1.35rem; background: linear-gradient(145deg, #fff0a0, #b97a0a 48%, #ffe989); box-shadow: 0 24px 56px rgb(0 0 0 / 42%), 0 0 22px rgb(244 214 109 / 34%), inset 0 0 0 1px rgb(255 249 201 / 60%); }
.workshop-detail-art::after { content: ""; position: absolute; inset: 8px; pointer-events: none; border: 1px solid rgb(255 245 180 / 52%); border-radius: .92rem; }
.workshop-detail-art img { display: block; width: 100%; height: auto; aspect-ratio: 1; border-radius: .95rem; object-fit: contain; }
.workshop-date { margin: 1.25rem 0; color: var(--gold-300); font-size: .82rem; font-weight: 850; letter-spacing: .11em; text-transform: uppercase; }
.workshop-booking-jump-wrap { padding: .8rem 0; border-top: 1px solid rgb(245 215 120 / 32%); border-bottom: 1px solid rgb(245 215 120 / 44%); color: white; background: linear-gradient(105deg, #17051f, #3f1552 50%, #17051f); }
.workshop-booking-jump { display: flex; align-items: center; justify-content: space-between; gap: 1.25rem; padding: .9rem 1.1rem; border: 1px solid rgb(245 215 120 / 58%); border-radius: 1rem; color: white; background: linear-gradient(120deg, rgb(128 68 173 / 24%), rgb(28 6 38 / 74%)); box-shadow: inset 0 0 0 1px rgb(255 244 181 / 8%), 0 12px 28px rgb(0 0 0 / 22%); text-decoration: none; transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.workshop-booking-jump:hover { border-color: var(--gold-300); color: white; box-shadow: inset 0 0 0 1px rgb(255 244 181 / 16%), 0 14px 32px rgb(0 0 0 / 28%), 0 0 18px rgb(220 169 47 / 16%); transform: translateY(-1px); }
.workshop-booking-jump:focus-visible { outline: 3px solid rgb(245 215 120 / 45%); outline-offset: 3px; }
.workshop-booking-jump strong, .workshop-booking-jump small { display: block; }
.workshop-booking-jump strong { color: var(--gold-300); font-size: 1.05rem; }
.workshop-booking-jump small { margin-top: .15rem; color: rgb(255 255 255 / 72%); }
.workshop-booking-jump__action { flex: 0 0 auto; padding: .7rem 1rem; border: 1px solid #fff0a0; border-radius: 999px; color: var(--purple-950); background: linear-gradient(135deg, #fff0a0, #dca92f 52%, #ffe989); box-shadow: inset 0 1px 0 rgb(255 255 255 / 60%), 0 8px 18px rgb(0 0 0 / 24%); font-weight: 850; }
.workshop-booking-section { color: white; background: radial-gradient(circle at 16% 12%, rgb(128 68 173 / 34%), transparent 35%), #100316; }
.workshop-booking-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(1.2rem, 3vw, 2.5rem); align-items: start; }
.workshop-booking-card, .workshop-details-card { padding: clamp(1.35rem, 3vw, 2.5rem); border: 1px solid var(--gold-500); border-radius: 1.15rem; background: linear-gradient(145deg, rgb(80 29 103 / 76%), rgb(28 6 38 / 94%)); box-shadow: 0 20px 60px rgb(0 0 0 / 28%); }
.workshop-booking-card { scroll-margin-top: 1.5rem; }
.workshop-booking-card:focus { outline: none; }
.workshop-booking-card:focus-visible { outline: 3px solid rgb(245 215 120 / 48%); outline-offset: 4px; }
.workshop-details-card__layout { display: grid; grid-template-columns: minmax(260px, .72fr) minmax(0, 1.28fr); align-items: start; gap: clamp(1.5rem, 4vw, 3.5rem); }
.workshop-details-card__content { min-width: 0; }
.workshop-details-card__image { display: block; width: 100%; height: auto; margin: 0; padding: 4px; border: 1px solid var(--gold-500); border-radius: .85rem; object-fit: contain; box-shadow: 0 14px 32px rgb(0 0 0 / 28%), 0 0 14px rgb(220 169 47 / 17%); }
.workshop-details-intro { color: rgb(255 255 255 / 70%); }
.workshop-booking-card h2, .workshop-details-card h2 { margin-bottom: 1.35rem; }
.workshop-time-toggle { display: flex; flex-wrap: wrap; gap: .75rem; margin-bottom: 1.4rem; }
.workshop-time-button { padding: .8rem 1.2rem; border: 1px solid var(--gold-300); border-radius: 999px; color: var(--gold-300); font-weight: 800; background: transparent; transition: color .2s ease, background .2s ease, transform .2s ease; }
.workshop-time-button:hover, .workshop-time-button:focus-visible, .workshop-time-button.is-active { color: var(--purple-950); background: var(--gold-300); }
.workshop-time-button:focus-visible { outline: 3px solid rgb(232 62 131 / 45%); outline-offset: 3px; }
.workshop-time-panel[hidden] { display: none; }
.eventbrite-widget { min-height: 500px; padding: .9rem; border-radius: .85rem; color: rgb(255 255 255 / 70%); background: #3a1749; }
.workshop-details-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 2rem; row-gap: .7rem; margin: 0 0 1.6rem; padding: 0; list-style: none; }
.workshop-details-list li { position: relative; padding: 0 0 .7rem 1.45rem; border-bottom: 1px solid rgb(245 215 120 / 16%); color: rgb(255 255 255 / 72%); }
.workshop-details-list li::before { content: "✦"; position: absolute; left: 0; color: var(--gold-300); }
.workshop-back-link { color: var(--gold-300); font-weight: 800; text-decoration: none; }
.workshop-back-link:hover { color: white; }
.workshop-more-section { color: white; background: radial-gradient(circle at 82% 18%, rgb(128 68 173 / 32%), transparent 38%), #16051f; }
.workshop-detail-more-mobile { display: none; }
.workshop-more-back { display: inline-block; margin-top: 1.5rem; }
@media (max-width: 991.98px) { .workshop-booking-layout { grid-template-columns: 1fr; } }
@media (max-width: 991.98px) { .workshop-detail-hero__grid { grid-template-columns: 1fr; } .workshop-detail-art { order: -1; width: min(100%, 418px); } }
@media (max-width: 991.98px) { .workshop-option-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 991.98px) { .workshop-certificate-feature { grid-template-columns: 1fr; } }
@media (max-width: 991.98px) { .workshop-path-card--birthday { grid-template-columns: 1fr; } .workshop-feature-image { width: min(100%, 460px); } }
@media (max-width: 991.98px) { .birthday-options-intro__grid, .birthday-options-cta__panel { grid-template-columns: 1fr; } .birthday-options-intro__image { width: min(100%, 640px); } .birthday-options-cta__panel .button { justify-self: start; } }
@media (max-width: 991.98px) { .workshop-path-card--elsewhere { grid-template-columns: 1fr; } .workshop-external-action { justify-items: start; justify-self: start; text-align: left; } }
@media (max-width: 767.98px) { .current-workshops__campaign-inner { grid-template-columns: 1fr; } .current-workshops--campaign .button { justify-self: start; } }
@media (max-width: 767.98px) { .workshop-schedule-desktop { display: none; } .workshop-option-grid { grid-template-columns: 1fr; } .workshop-card-section { margin-top: 0; } }
@media (max-width: 767.98px) { .workshop-detail-more-desktop { display: none; } .workshop-detail-more-mobile { display: grid; } }
@media (max-width: 767.98px) { .workshop-booking-jump { align-items: stretch; flex-direction: column; } .workshop-booking-jump__action { width: 100%; text-align: center; } .workshop-details-card__layout, .workshop-details-list { grid-template-columns: 1fr; } }
@media (max-width: 575.98px) { .workshop-time-button { width: 100%; } .eventbrite-widget { min-height: 560px; padding: .35rem; } }
@media (max-width: 767.98px) {
  .pricing-add-on-grid { grid-template-columns: 1fr; }
  .pricing-add-on-card { grid-template-columns: 1fr; }
  .pricing-add-on-card__art { width: min(180px, 58%); justify-self: center; }
  .birthday-pricing-notes article { grid-template-columns: 72px minmax(0, 1fr); }
  .birthday-pricing-note__badge { width: 72px; }
}

.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;
}

/* Branded overlay for licensed stock photography. The logo remains separate
   from the source photograph, preserving the licensed master and image quality. */
.licensed-image-frame {
  position: relative;
  display: block;
  overflow: hidden;
}
.licensed-image-frame::before {
  content: "";
  position: absolute;
  right: clamp(.65rem, 2vw, 1rem);
  bottom: clamp(.65rem, 2vw, 1rem);
  z-index: 3;
  width: clamp(58px, 18%, 92px);
  aspect-ratio: 1;
  pointer-events: none;
  background: url("../images/jimmy-marvel-logo.svg") center / contain no-repeat;
  filter: drop-shadow(0 3px 8px rgb(0 0 0 / 55%));
  opacity: .78;
}
.licensed-image-frame--schedule {
  margin: 0;
  border-radius: 1.35rem;
}
.licensed-image-frame--schedule img,
.licensed-image-frame--details img {
  display: block;
  width: 100%;
}
.licensed-image-frame--details {
  margin: 0 0 1.5rem;
  border-radius: .85rem;
}
.licensed-image-frame--details .workshop-details-card__image {
  margin-bottom: 0;
}
