:root {
  --navy: #171f68;
  --navy-soft: #27327d;
  --peach: #fbd8c8;
  --coral: #f48a91;
  --blue: #bfe4ee;
  --yellow: #ffd66f;
  --cream: #fff8ef;
  --ink: #171f68;
  --font-display: 'More Sugar', 'LazyDog', 'Fredoka', sans-serif;
  --font-body: 'Fredoka', 'More Sugar', 'LazyDog', sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--cream); font-family: var(--font-body); font-weight: 400; }
.site-nav { background: var(--peach); padding: 1.1rem 0; }
.navbar-brand { color: var(--navy); display: flex; align-items: center; gap: .65rem; font-family: var(--font-display); font-size: 1.25rem; font-weight: 700; line-height: .85; text-transform: lowercase; }
.navbar-brand:hover { color: var(--navy); }
.navbar-brand small { font-size: .72rem; font-weight: 500; letter-spacing: .08em; }
.brand-mark { display: grid; width: 2.4rem; height: 2.4rem; border: 2px solid var(--navy); border-radius: 50%; place-items: center; font-size: 1.7rem; line-height: 1; transform: rotate(-10deg); }
.nav-link { color: var(--navy); font-size: .95rem; font-weight: 500; }
.nav-link:hover { color: var(--coral); }
.navbar-toggler { border: 2px solid var(--navy); }
.navbar-toggler-icon { background-image: var(--bs-navbar-toggler-icon-bg); }
.btn { border: 0; border-radius: 999px; padding: .72rem 1.35rem; font-weight: 600; transition: transform .2s ease, box-shadow .2s ease; }
.btn:hover { transform: translateY(-2px); box-shadow: 0 7px 0 rgba(23, 31, 104, .16); }
.btn-coral { background: var(--coral); color: var(--navy); }
.btn-yellow { background: var(--yellow); color: var(--navy); }
.btn-navy { background: var(--navy); color: white; }
.hero-section { position: relative; overflow: hidden; background: var(--peach); padding: 5rem 0 7.5rem; }
.hero-content { position: relative; z-index: 1; }
.eyebrow { color: var(--coral); font-size: .8rem; font-weight: 700; letter-spacing: .13em; margin-bottom: 1rem; text-transform: uppercase; }
.eyebrow-dark { color: var(--navy-soft); }
h1, h2, h3, .navbar-brand { font-family: var(--font-display); font-weight: 700; }
h1 { font-size: clamp(3.7rem, 8vw, 7rem); letter-spacing: -.03em; line-height: .9; margin: 0 0 1.5rem; }
h1 span, h2 em { color: var(--coral); font-style: normal; }
.hero-lede { font-size: 1.3rem; line-height: 1.35; max-width: 29rem; }
.hero-actions { align-items: center; margin: 2rem 0 1.8rem; }
.text-link { color: var(--navy); font-weight: 600; text-decoration: none; }
.text-link:hover { color: var(--coral); }
.hero-note { font-size: .95rem; font-weight: 500; }
.note-dot { background: var(--coral); border-radius: 50%; display: inline-block; height: .6rem; margin-right: .5rem; width: .6rem; }
.flyer-frame { background: var(--navy); border: .65rem solid var(--navy); box-shadow: 1.1rem 1.1rem 0 var(--coral); margin: 0 auto; max-width: 25rem; position: relative; transform: rotate(3deg); }
.flyer-frame img { display: block; width: 100%; }
.sticker { align-items: center; background: var(--yellow); border: 3px solid var(--navy); border-radius: 50%; display: flex; font-size: 2rem; height: 3.8rem; justify-content: center; position: absolute; width: 3.8rem; z-index: 2; }
.sticker-one { left: -2rem; top: 18%; transform: rotate(-15deg); }
.sticker-two { bottom: 8%; right: -1.7rem; transform: rotate(12deg); }
.music-line { color: var(--coral); font-size: 2rem; letter-spacing: .4rem; opacity: .8; position: absolute; white-space: nowrap; }
.music-line-top { right: -2rem; top: 9%; transform: rotate(8deg); }
.details-section { background: var(--cream); padding: 6rem 0; }
h2 { font-size: clamp(2.8rem, 6vw, 5rem); letter-spacing: -.03em; line-height: .92; margin: 0; }
.heading-copy { max-width: 21rem; font-size: 1.1rem; line-height: 1.45; margin: 0; }
.info-card { border-radius: 1.25rem; min-height: 12.5rem; padding: 1.7rem; }
.card-peach { background: var(--peach); }.card-blue { background: var(--blue); }.card-yellow { background: var(--yellow); }
.card-icon { display: block; font-size: 2.2rem; line-height: 1; margin-bottom: 1.3rem; }
.info-card h3 { font-size: 1.65rem; margin-bottom: .55rem; }.info-card p { margin: 0; max-width: 15rem; }
.schedule-panel { background: var(--blue); border-radius: 1.3rem; padding: 2rem 2.3rem; }.schedule-panel h3 { font-size: 2.1rem; line-height: 1; margin: 0; }.schedule-detail { display: grid; gap: .25rem; font-size: 1rem; }.schedule-detail span { margin-top: .55rem; }
.about-section { background: var(--navy); color: white; padding: 6.5rem 0; }.about-section .eyebrow { color: var(--yellow); }.about-section h2 span { color: var(--blue); }.about-copy { font-size: 1.35rem; line-height: 1.4; max-width: 31rem; }.mini-list { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1.8rem; }.mini-list span { border: 1px solid rgba(255,255,255,.45); border-radius: 999px; font-size: .9rem; padding: .45rem .9rem; }
.contact-section { background: var(--coral); padding: 6rem 0; }.contact-section h2 { margin-bottom: 1.4rem; }.contact-section > .container > p:not(.eyebrow):not(.phone) { font-size: 1.1rem; }.contact-email { color: var(--navy); font-size: clamp(1.25rem, 3vw, 2rem); font-weight: 600; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .25rem; }.phone { font-size: 1.1rem; margin-top: 1rem; }.phone a { color: var(--navy); text-decoration: none; }
.site-footer { background: var(--navy); color: var(--blue); font-size: .85rem; padding: 1.3rem 0; }
.page-hero { padding: 6.5rem 0 6rem; }
.page-hero-blue { background: var(--blue); }
.page-hero-peach { background: var(--peach); }
.page-hero-coral { background: var(--coral); }
.page-hero h1 { max-width: 52rem; }
.page-hero h1 span { color: var(--coral); }
.page-hero-blue h1 span, .page-hero-coral h1 span { color: var(--navy); }
.page-intro { font-size: 1.3rem; line-height: 1.4; margin: 1.6rem 0 0; max-width: 38rem; }
.page-content-section { background: var(--cream); padding: 6rem 0; }
.photo-placeholder { align-items: center; border: 2px dashed currentColor; border-radius: 1.25rem; display: flex; font-size: 1rem; font-weight: 600; justify-content: center; min-height: 22rem; padding: 2rem; text-align: center; }
.photo-placeholder-light { background: var(--navy-soft); color: var(--blue); }.photo-placeholder-blue { background: var(--blue); color: var(--navy); }.photo-placeholder-peach { background: var(--peach); color: var(--navy); }
.embed-placeholder { align-items: center; background: white; border: 2px dashed var(--navy-soft); border-radius: 1.25rem; display: flex; flex-direction: column; justify-content: center; min-height: 28rem; padding: 3rem; text-align: center; }.embed-placeholder h2 { font-size: 2.4rem; }.embed-placeholder p { font-size: 1.1rem; margin: 1rem 0 .25rem; }.embed-placeholder small { opacity: .7; }.placeholder-icon { background: var(--yellow); border-radius: 50%; display: grid; font-size: 2rem; height: 4rem; margin-bottom: 1.2rem; place-items: center; width: 4rem; }
.booking-embed { background: white; border-radius: 1.25rem; overflow: hidden; }
.side-note { background: var(--yellow); border-radius: 1.25rem; padding: 2rem; }.side-note h3 { font-size: 2rem; line-height: 1; }.side-note p { line-height: 1.45; }.side-note hr { border-color: rgba(23,31,104,.35); margin: 1.6rem 0; }.contact-email-small { display: block; font-size: 1.05rem; word-break: break-word; }.side-note .phone { color: var(--navy); display: block; font-size: 1rem; margin-top: .7rem; text-decoration: none; }
.placeholder-copy { font-size: 1.15rem; line-height: 1.55; margin-top: 1.8rem; max-width: 38rem; }.quote-card { background: var(--blue); border-radius: 1.25rem; margin-top: 5rem; padding: 2.5rem; text-align: center; }.quote-card > span { color: var(--coral); display: block; font-family: Georgia, serif; font-size: 5rem; height: 2.6rem; line-height: 1; }.quote-card blockquote { font-family: var(--font-display); font-size: 1.6rem; margin: 1rem auto .7rem; max-width: 45rem; }.quote-card cite, .testimonial-section cite { font-size: .9rem; font-style: normal; }
.testimonial-section { background: var(--yellow); padding: 4.5rem 0; }.testimonial-card { align-items: center; display: flex; flex-direction: column; min-height: 8rem; justify-content: center; }.testimonial-section blockquote { font-family: var(--font-display); font-size: clamp(1.6rem, 3vw, 2.5rem); line-height: 1.1; margin: .6rem auto 1rem; max-width: 48rem; }.testimonial-section cite { color: var(--navy-soft); }.testimonial-controls { align-items: center; display: flex; gap: 1rem; justify-content: center; margin-top: 1.7rem; }.testimonial-button { align-items: center; background: var(--navy); border: 0; border-radius: 50%; color: white; display: grid; font-size: 1.3rem; height: 2.7rem; justify-content: center; line-height: 1; transition: transform .2s ease, background .2s ease; width: 2.7rem; }.testimonial-button:hover, .testimonial-button:focus-visible { background: var(--navy-soft); transform: translateY(-2px); }.testimonial-count { font-size: .9rem; font-weight: 600; min-width: 3rem; }
.contact-form { display: grid; gap: .55rem; max-width: 36rem; }.contact-form label { font-size: .9rem; font-weight: 600; margin-top: .55rem; }.contact-form input, .contact-form textarea { background: white; border: 2px solid rgba(23,31,104,.22); border-radius: .6rem; color: var(--navy); font: inherit; padding: .8rem 1rem; width: 100%; }.contact-form input:focus, .contact-form textarea:focus { border-color: var(--navy); outline: 3px solid rgba(191,228,238,.8); }.contact-form textarea { resize: vertical; }.contact-form button { justify-self: start; margin-top: .8rem; }
.contact-corner { background: var(--navy); border-radius: .8rem 0 0 .8rem; box-shadow: 0 5px 18px rgba(23,31,104,.22); display: grid; gap: .15rem; padding: .75rem 1rem; position: fixed; right: 0; top: 6rem; z-index: 10; }.contact-corner a { color: white; font-size: .78rem; text-decoration: none; }.contact-corner a:hover { color: var(--yellow); }
@media (max-width: 991.98px) { .hero-section { padding-top: 4rem; }.navbar-collapse { padding-top: 1rem; }.nav-cta { display: inline-block; margin-top: .5rem; }.flyer-frame { margin-top: 1.5rem; max-width: 21rem; } }
@media (max-width: 575.98px) { .hero-section { padding-bottom: 5.5rem; }.hero-lede { font-size: 1.15rem; }.flyer-frame { margin-left: 1rem; margin-right: 1rem; }.sticker-one { left: -1.3rem; }.sticker-two { right: -1rem; }.details-section, .about-section, .contact-section, .page-content-section { padding: 4.5rem 0; }.page-hero { padding: 4.5rem 0; }.page-hero h1 { font-size: 3.5rem; }.schedule-panel { padding: 1.6rem; }.schedule-detail { margin: .5rem 0; }.photo-placeholder { min-height: 15rem; }.contact-corner { border-radius: .8rem 0 0 .8rem; padding: .55rem .7rem; position: static; margin-left: auto; width: max-content; }.contact-corner a { font-size: .68rem; } }