/* HAPPY MOUSE — THE BIRTHDAY CLUB
   A full, coordinated birthday art direction, layered onto the original site.
   Keep the existing booking, gallery, package logic and actual portfolio photos. */
:root {
  --cream:#fffaf5;
  --purple:#7045bd;
  --deep-purple:#5935a1;
  --lavender:#e8d7fa;
  --pink:#f9bed0;
  --yellow:#ffdc75;
  --ink:#30253c;
}
body { background:#fffaf5; }
.announcement { background:#392b4a; color:#ffe087; height:34px; letter-spacing:.2em; }
.announcement .ann-mid { color:#ffeaf3; }
.site-header { background:#fffaf5; border-bottom:1px solid #e8d9e4; }
.desktop-nav a { position:relative; }
.desktop-nav a::after { content:""; position:absolute; bottom:-8px; left:0; right:100%; border-bottom:3px solid #ef9fba; border-radius:10px; transition:right .22s; }
.desktop-nav a:hover::after { right:0; }
.nav-book { background:#7045bd; border-radius:12px 27px 27px 27px; box-shadow:0 5px 0 #d5bcee; }
.button-purple { background:#7045bd; }

/* The opening fold reads as an invitation, not a generic playground hero. */
.hero {
  background:radial-gradient(ellipse at 0% 92%,rgba(255,221,212,.4),transparent 45%),#fffaf5;
  min-height:700px;
}
.hero-noise { opacity:.14; }
.hero-copy { padding-top:clamp(74px,7.8vw,115px); padding-bottom:65px; }
.hero-copy::after {
  content:""; position:absolute; width:145px; height:142px; right:0; top:37px; opacity:.45;
  background:radial-gradient(circle,#ed9db6 2px,transparent 3px) 10px 9px / 34px 34px;
  mask-image:radial-gradient(circle,black,transparent 70%); pointer-events:none;
}
.hero .eyebrow { color:#77529b; letter-spacing:.18em; }
.eyebrow-flower { color:#e88caf; }
.birthday-invite {
  display:inline-flex; align-items:center; gap:12px; padding:9px 15px; background:#fff;
  color:#7650b4; border:1.5px dashed #c7addd; border-radius:30px;
  font-size:9px; font-weight:800; letter-spacing:.16em; margin-top:33px;
  box-shadow:4px 4px 0 #f8e3eb;
}
.birthday-invite span { font-size:14px; line-height:1; color:#eba3b3; }
.hero h1.birthday-title {
  white-space:normal; margin:19px 0 25px; line-height:.99; letter-spacing:-.05em;
  position:relative; z-index:2;
}
.birthday-title > span { display:block; white-space:nowrap; }
.birthday-title .bday-line-small { font-size:clamp(50px,5.5vw,96px); color:#31263c; font-weight:600; }
.birthday-title .bday-line-big { font-size:clamp(53px,6.4vw,109px); margin-top:4px; font-weight:600; }
.bday-line-big strong { font-weight:600; color:#7045bd; filter:drop-shadow(0 5px 0 #e4cef7); }
.bday-line-big em {
  font-family:Georgia, 'Times New Roman', serif; font-size:.93em; font-weight:600; font-style:italic;
  letter-spacing:-.09em; color:#f19bb3; padding-right:8px; position:relative;
}
.bday-line-big em::after { content:""; position:absolute; bottom:-7px; left:6%; width:94%; height:10px; border-radius:70% 90%; background:#ffda71; transform:rotate(-2deg); z-index:-1; }
.bday-line-big .joy-period { color:#7045bd; font-weight:900; }
.hero-copy>p { max-width:510px; color:#65596c; font-size:15px; }
.hero-copy>p em { color:#3c2b4b; }
.hero-actions .button-purple { background:#ffdb75; color:#35283c; border:1.5px solid #3c2b48; box-shadow:0 6px 0 #d9b65a; padding:18px 23px; }
.hero-actions .button-purple:hover { background:#ffe495; box-shadow:0 8px 0 #d9b65a; }
.hero-trust { margin-top:42px; }
.hero-trust strong { color:#49315f; }
.face-stack b { border-color:#fffaf5; }
.hero-art {
  background:radial-gradient(circle at 85% 14%,#f8eafa 0%,transparent 39%),radial-gradient(circle at 30% 90%,#d9c2f5 0%,transparent 52%),#e8d7fa;
  border-radius:95px 33px 84px 33px;
  margin:24px 29px 29px 0;
  min-height:655px;
  box-shadow:inset 0 0 0 1px #fff8,0 12px 25px rgba(92,59,138,.07);
}
.hero-art::before { background-size:35px 35px; opacity:.5; }
.birthday-bunting {
  position:absolute; width:98%; height:auto; top:-13px; left:1%; z-index:8; pointer-events:none;
  object-fit:contain; object-position:top; transform:rotate(2deg);
  filter:drop-shadow(0 5px 3px rgba(63,35,99,.09));
}
.hero-balloon-art {
  position:absolute; width:25%; height:auto; left:-7%; top:26%; z-index:3; object-fit:contain;
  transform:rotate(-14deg); filter:drop-shadow(4px 6px 0 rgba(128,88,172,.12)); pointer-events:none;
}
.hero-photo-wrap { top:14%; height:73%; left:16%; width:70%; z-index:4; border-width:9px; box-shadow:12px 17px 0 rgba(110,69,183,.21),0 27px 39px rgba(69,42,117,.13); }
.hero-small-photo { z-index:6; bottom:4%; }
.hero-burst { z-index:9; width:clamp(106px,10.2vw,145px); height:clamp(106px,10.2vw,145px); top:12%; right:-1%; transform:rotate(13deg); }
.hero-burst span { font-size:clamp(16px,1.4vw,20px); }
.hero-note { z-index:9; background:#fffaf4; border:2px solid white; }
.hero-note strong { font-size:16px; }
.hero-doodle { z-index:5; }
.hero-star.star1 { left:5%; top:12%; font-size:44px; }
.hero-star.star2 { right:3%; bottom:31%; }
.art-caption { font-size:8px; letter-spacing:.13em; white-space:nowrap; z-index:9; }
.marquee-band { background:#ffdc73; border-block:0; box-shadow:0 5px 0 #e9a4b9; margin-top:-10px; padding:20px 0; }
.marquee-track i { color:#7c50bd; }
.marquee-track span { letter-spacing:.035em; }
.promise-strip { background:#fffaf5; padding-block:39px; }
.promise-symbol { box-shadow:3px 5px 0 #3c2b4817; }

/* A quiet system of birthday labels across the entire experience. */
.birthday-section-label {
  display:inline-flex; gap:9px; align-items:center; justify-content:center;
  font-size:10px; font-weight:800; letter-spacing:.2em; color:#744fb3;
  background:#fff7fb; border:1px solid #e5cadd; padding:9px 17px; border-radius:100px;
}
.experience { position:relative; background:#fffaf5; }
.experience::before {
  content:""; position:absolute; width:190px; height:260px; top:60px; left:-110px;
  background:url('./assets/birthday-balloons.svg') center / contain no-repeat;
  opacity:.19; transform:rotate(-18deg); pointer-events:none;
}
.experience .section-intro h2 { margin-top:22px; }
.experience-tile { box-shadow:0 12px 0 rgba(100,72,132,.07); }
.experience-tile::after {
  content:"✦"; display:grid; place-items:center; position:absolute; width:39px; height:39px;
  top:12px; right:24px; border-radius:50%; background:#fff7f0; font-size:24px;
  color:#9c65c6; transform:rotate(15deg); box-shadow:0 3px 7px #39253d1a;
}
.experience-tile:nth-child(2)::after { content:"✳"; color:#e687a4; }
.experience-tile:nth-child(3)::after { content:"✷"; color:#dd935b; }

/* Hero-style birthday chapter, a purposeful editorial break between browsing and shopping. */
.birthday-feature {
  min-height:540px; display:grid; grid-template-columns:1fr 1fr; align-items:center;
  position:relative; isolation:isolate; overflow:hidden;
  background:linear-gradient(112deg,#f8e8f3 0%,#f5e5fc 56%,#eee0fc 100%);
  border-block:1px solid #e6cfea;
}
.birthday-feature::before {
  content:""; position:absolute; inset:0; opacity:.32; z-index:-1;
  background-image:radial-gradient(#fff 2px,transparent 2.5px),radial-gradient(#e8b5cd 2px,transparent 3px);
  background-size:42px 42px,117px 111px; background-position:0 0,20px 16px;
}
.birthday-feature::after {
  content:"✳"; position:absolute; right:5%; top:30px; color:#e9a8be; font-size:87px; opacity:.7; transform:rotate(16deg);
}
.birthday-feature-art { position:relative; min-height:490px; display:flex; align-items:center; justify-content:center; }
.cake-art-halo {
  position:absolute; width:72%; max-width:440px; aspect-ratio:1; border-radius:52% 48% 44% 56%;
  background:#fffbf5; box-shadow:0 0 0 18px #ffffff50,0 0 0 20px #a779c236;
  transform:rotate(-12deg); left:14%; top:9%;
}
.cake-illustration { position:relative; z-index:1; width:min(78%,550px); height:auto; object-fit:contain; transform:rotate(-4deg); filter:drop-shadow(0 7px 6px #8d5f8b15); }
.cake-handnote {
  position:absolute; left:16%; bottom:55px; z-index:3; font-family:Georgia,serif; font-size:23px;
  font-weight:700; font-style:italic; color:#7c52ae; transform:rotate(-12deg);
}
.cake-handnote span { display:inline-block; transform:translateY(-11px) rotate(8deg); font-family:var(--font-body); }
.birthday-feature-copy { position:relative; padding:70px max(7vw,35px) 72px 15px; max-width:790px; }
.birthday-feature-copy h2 { font-size:clamp(50px,5.2vw,84px); letter-spacing:-.055em; line-height:1.015; margin:27px 0 19px; }
.birthday-feature-copy h2 em { font-style:italic; color:#7650bd; font-family:Georgia,serif; font-weight:500; letter-spacing:-.065em; }
.birthday-feature-copy p { color:#675a74; max-width:455px; font-size:15px; line-height:1.75; margin-bottom:26px; }
.birthday-feature-copy .button { box-shadow:0 6px 0 #e4bad5; }
.birthday-feature-stamp {
  display:grid; place-content:center; position:absolute; right:3%; bottom:32px; width:112px; aspect-ratio:1;
  border-radius:50%; background:#ffdb76; border:2px dashed #7149af; transform:rotate(15deg);
  color:#4d3265; text-align:center; font-weight:900; line-height:1.1; font-size:10px; letter-spacing:.065em;
}
.birthday-feature-stamp strong { font-size:23px; font-family:Georgia,serif; font-style:italic; letter-spacing:-.04em; }

/* A party menu, rather than a stack of generic product tiles. */
.packages-section {
  background:radial-gradient(circle at 105% 0%,#f7d6e8 0,transparent 28%),#eee3fa;
}
.packages-section::after {
  content:""; width:180px; height:180px; position:absolute; left:-90px; top:105px; opacity:.45;
  background:radial-gradient(circle,#fff 4px,transparent 5px) 0 0 / 28px 28px;
  border-radius:50%; z-index:-1; pointer-events:none;
}
.package-section-label { margin-bottom:23px; }
.package-heading h2 { line-height:.89; }
.package-heading>p { color:#5a4b67; }
.package-card { border:1.5px solid #fff; box-shadow:0 7px 0 #bea3d94a,0 18px 25px #4d2e6c0e; transition:transform .24s,box-shadow .24s; }
.package-card:hover { transform:translateY(-4px); box-shadow:0 10px 0 #bea3d94a,0 20px 30px #4d2e6c15; }
.package-card .package-image { background:#e5d2f2; }
.package-card .package-badge { background:#ffe08a; color:#3d2e48; border:1px solid #fff6e3; box-shadow:0 4px 0 #edbb66; }
.package-body { background:#fffaf5; }
.extras-strip { background:#ffe086; box-shadow:8px 8px 0 #bc9be2; }

/* The gallery behaves like photos tucked into a birthday scrapbook. */
.gallery-section { background:#fffaf5; position:relative; }
.gallery-celebration-label { display:flex; justify-content:center; align-items:center; gap:14px; font-size:10px; font-weight:900; letter-spacing:.21em; color:#8057b4; margin:-19px 0 29px; }
.gallery-celebration-label span { font-size:23px; color:#eb9cb2; }
.gallery-heading h2 span { color:#724cbc; }
.gallery-photo { border:8px solid white; box-shadow:0 12px 19px #52346524; }
.gallery-photo::after {
  content:""; position:absolute; top:-10px; left:42%; z-index:4; width:52px; height:22px;
  background:#ffdd86bd; transform:rotate(-7deg); clip-path:polygon(2% 0,98% 0,100% 100%,0 100%);
  pointer-events:none;
}
.gallery-b::after,.gallery-d::after { transform:rotate(8deg); background:#e9c7f5cf; }
.gallery-sticker { background:#ffe07e; border:2px dashed #fff; box-shadow:0 8px 0 #eab95b; }
.story-section { background:#ddf2e6; }
.story-copy-side { position:relative; }
.story-copy-side::after { content:"✦"; position:absolute; top:28px; right:6%; font-size:62px; color:#df9ac3; transform:rotate(-16deg); opacity:.9; }
.how-section { background:#fffaf5; }
.how-head .birthday-section-label { margin-bottom:2px; }
.step-graphic { background:#fff7f0; border:2px solid #493950; box-shadow:6px 9px 0 #ebc6dc; }
.how-steps article:nth-child(2) .step-graphic { background:#ebe0fa; }
.how-steps article:nth-child(3) .step-graphic { background:#fff0b9; }
.faq-section { background:#f8eef9; }

/* The final invitation includes illustration, but the real form stays prominent. */
.booking-section {
  background:linear-gradient(115deg,#ffd6e2,#f9c8db 64%,#e8d5f9);
  border-top:6px solid #fffaf5;
}
.booking-section::before { content:""; position:absolute; inset:0; pointer-events:none; background:radial-gradient(circle at 70% 45%,#fff8 2px,transparent 3px) 0 0 / 46px 46px; opacity:.45; }
.booking-content { max-width:700px; }
.book-kicker { letter-spacing:.18em; }
.booking-content h2 { line-height:.95; }
.booking-content h2 span { color:#7045bd; }
.booking-balloons { position:absolute; top:7%; right:5%; width:min(20%,240px); height:auto; object-fit:contain; opacity:.7; transform:rotate(15deg); pointer-events:none; }
.booking-side { opacity:1; right:2%; top:28%; width:34%; max-width:490px; z-index:1; }
.booking-cake { width:100%; height:auto; object-fit:contain; transform:rotate(7deg); filter:drop-shadow(7px 14px 0 #e7add253); }
.booking-curved-text { display:none; }
.inquiry-form { background:#fffaf5f5; box-shadow:0 16px 40px #68415d14,8px 9px 0 #f3aeca; border:1.5px solid #ffffff; border-radius:25px; }
.footer { border-top:8px solid #ffdb77; }
.mobile-dock-flower { background:#ffe07e!important; }

@media (min-width:1800px) {
  .hero-art { max-width:900px; }
  .hero h1.birthday-title .bday-line-small { font-size:clamp(80px,5vw,94px); }
  .hero h1.birthday-title .bday-line-big { font-size:clamp(88px,6vw,114px); }
  .birthday-feature { padding-inline:max(0px,calc((100vw - 1800px)/2)); }
}
@media (min-width:951px) and (max-width:1280px) {
 .birthday-title .bday-line-small { font-size:5.2vw; }
 .birthday-title .bday-line-big { font-size:6.1vw; }
 .hero-art { margin-right:17px; min-height:610px; }
 .birthday-feature-copy h2 { font-size:clamp(46px,5.4vw,69px); }
}
@media (min-width:651px) and (max-width:950px) {
 .hero-copy { padding-top:83px; }
 .birthday-invite { margin-top:24px; font-size:8px; }
 .birthday-title .bday-line-small { font-size:5.3vw; }
 .birthday-title .bday-line-big { font-size:5.85vw; }
 .hero h1.birthday-title { margin:17px 0 20px; }
 .hero-art { min-height:575px; margin:20px 15px 24px 0; border-radius:70px 22px 70px 22px; }
 .hero-burst { width:100px; height:100px; top:14%; }
 .hero-burst span { font-size:14px; }
 .birthday-feature { min-height:450px; }
 .birthday-feature-art { min-height:420px; }
 .birthday-feature-copy { padding:52px 4vw 52px 6px; }
 .birthday-feature-copy h2 { font-size:clamp(42px,5.4vw,60px); }
 .birthday-feature-stamp { right:2%; bottom:16px; width:80px; font-size:7px; }
 .birthday-feature-stamp strong { font-size:17px; }
 .booking-side { opacity:.58; right:-2%; }
}
@media (max-width:650px) {
  .announcement { height:29px; font-size:8px; letter-spacing:.16em; }
  .site-header { background:#fffaf5; }
  .mobile-nav { background:#fffaf5; }
  .hero-copy { padding:30px 7vw 31px; background:radial-gradient(ellipse at 4% 100%,#ffe9e0,transparent 70%); }
  .hero-copy::after { display:none; }
  .hero .eyebrow { font-size:8px; gap:8px; }
  .hero .eyebrow-flower { font-size:23px; }
  .eyebrow-line { width:27px; }
  .birthday-invite { margin-top:23px; padding:8px 11px; font-size:8px; gap:7px; }
  .hero h1.birthday-title { margin:18px 0 17px; line-height:1.03; letter-spacing:-.055em; }
  .birthday-title .bday-line-small { font-size:clamp(36px,10.25vw,62px); }
  .birthday-title .bday-line-big { font-size:clamp(43px,11.3vw,71px); margin-top:2px; }
  .bday-line-big em::after { height:6px; bottom:-6px; }
  .hero-copy>p { font-size:13px; line-height:1.58; max-width:440px; margin:19px 0 23px; }
  .hero-actions .button-purple { padding:15px 18px; border-radius:15px 33px 33px 33px; font-size:12px; }
  .hero-trust { margin-top:27px; }
  .hero-art {
    width:calc(100% - 28px); height:clamp(365px,103vw,515px); min-height:0;
    margin:0 14px 24px; border-radius:55px 55px 30px 30px;
    background:radial-gradient(circle at 85% 14%,#f7ebff,transparent 45%),radial-gradient(circle at 30% 90%,#d7bef8,transparent 56%),#e5d1f9;
  }
  .birthday-bunting { top:-3px; left:-1%; width:102%; transform:rotate(1deg); }
  .hero-balloon-art { width:25%; left:-7%; top:31%; }
  .hero-photo-wrap { top:14%; height:72%; width:70%; left:15%; border-width:7px; }
  .hero-small-photo { left:3%; bottom:4%; width:35%; }
  .hero-burst { top:13%; right:1%; width:clamp(73px,21vw,108px); height:clamp(73px,21vw,108px); }
  .hero-burst span { font-size:clamp(10px,2.8vw,14px); }
  .hero-note { right:3%; bottom:6%; padding:9px 11px; }
  .hero-note strong { font-size:13px; }
  .hero-star.star1 { top:15%; left:4%; font-size:34px; }
  .art-caption { font-size:7px; padding:7px 8px; }
  .marquee-band { padding:16px 0; }
  .marquee-track span { font-size:18px; }
  .promise-strip { padding:29px 7vw; }
  .birthday-section-label { font-size:8px; letter-spacing:.11em; padding:8px 13px; }
  .experience::before { width:90px; height:140px; left:-67px; top:23px; }
  .experience-tile::after { width:31px; height:31px; font-size:19px; top:11px; right:13px; }
  .birthday-feature { display:flex; flex-direction:column; overflow:hidden; }
  .birthday-feature-art { order:1; width:100%; min-height:280px; height:clamp(280px,78vw,390px); }
  .cake-art-halo { width:65%; left:18%; top:13%; }
  .cake-illustration { width:min(78%,430px); }
  .cake-handnote { bottom:5%; left:13%; font-size:17px; }
  .birthday-feature-copy { order:2; width:100%; padding:9px 7vw 48px; text-align:center; max-width:520px; }
  .birthday-feature-copy h2 { font-size:clamp(45px,11.1vw,66px); margin:15px 0 15px; }
  .birthday-feature-copy p { font-size:13px; line-height:1.65; margin:0 auto 20px; }
  .birthday-feature-copy .button { font-size:12px; padding:15px 18px; }
  .birthday-feature-stamp { display:none; }
  .birthday-feature::after { top:14px; right:5%; font-size:45px; }
  .package-section-label { margin-bottom:16px; }
  .package-card .package-badge { font-size:9px; }
  .gallery-celebration-label { margin:-13px 0 20px; font-size:8px; letter-spacing:.09em; }
  .gallery-photo { border-width:5px; }
  .gallery-photo::after { width:39px; height:14px; top:-6px; }
  .booking-section { background:linear-gradient(160deg,#ffd1df,#f8c4d9 80%,#e7d4f7); }
  .booking-balloons { width:106px; right:-23px; top:36px; opacity:.42; }
  .inquiry-form { border-radius:19px; box-shadow:4px 6px 0 #f3aeca; }
  .footer { border-top-width:6px; }
}
@media (max-width:380px) {
  .birthday-title .bday-line-small { font-size:10vw; }
  .birthday-title .bday-line-big { font-size:10.9vw; }
  .hero-art { height:350px; width:calc(100% - 20px); margin-inline:10px; }
  .hero-burst { width:70px; height:70px; }
  .hero-burst span { font-size:9px; }
  .hero-note { padding:8px; font-size:8px; }
  .hero-note strong { font-size:12px; }
  .birthday-feature-copy { padding-inline:6vw; }
  .birthday-feature-stamp { right:-5px; bottom:3px; width:61px; }
}
@media (prefers-reduced-motion:reduce) {
 .desktop-nav a::after,.package-card { transition:none; }
}

/* Oct 2026 refinement — remove mismatched IG/smiley callout and oversized booking art.
   Replace them with integrated birthday decoration and a stronger centered booking layout. */
.gallery-heading {
  align-items: end;
}
.birthday-gallery-decor {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  gap: 12px;
  min-width: 170px;
}
.birthday-gallery-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 16px;
  border-radius: 999px;
  background: #fff7fb;
  border: 1.5px dashed #cfafd9;
  color: #7045bd;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .18em;
  text-transform: uppercase;
  box-shadow: 5px 5px 0 #f5d8e6;
}
.birthday-gallery-icons {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: #e98fac;
  font-size: 25px;
  line-height: 1;
}
.birthday-gallery-icons span:nth-child(2) { color: #7045bd; }
.birthday-gallery-icons span:nth-child(3) { color: #ffbf47; }

.booking-balloons,
.booking-side,
.booking-cake,
.booking-curved-text {
  display: none !important;
}
.booking-section {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  min-height: auto;
  padding: 88px clamp(20px, 6vw, 80px) 76px;
  overflow: hidden;
  background:
    radial-gradient(circle at 18% 20%, rgba(255,255,255,.35) 0 2px, transparent 2.6px) 0 0/34px 34px,
    linear-gradient(115deg, #ffd8e4 0%, #f8cbdd 54%, #ecd8fb 100%);
}
.booking-content {
  position: relative;
  z-index: 2;
  width: min(100%, 860px);
  max-width: 860px !important;
  margin: 0 auto;
}
.booking-content > p {
  max-width: 620px;
  font-size: 15px;
  line-height: 1.7;
  color: #6c5f73;
  margin-bottom: 22px;
}
.book-kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 16px;
  border-radius: 999px;
  background: rgba(255,250,245,.75);
  border: 1px solid rgba(112,69,189,.18);
  box-shadow: 4px 4px 0 rgba(255,255,255,.45);
}
.booking-content h2 {
  margin: 18px 0 14px;
  font-size: clamp(68px, 7vw, 104px);
  letter-spacing: -.06em;
}
.inquiry-form {
  position: relative;
  z-index: 2;
  width: 100%;
  box-shadow: 0 18px 40px rgba(104,65,93,.12), 10px 10px 0 #efabc6;
}
.inquiry-form label {
  color: #44344f;
}
.form-submit .button-dark {
  border-radius: 999px;
  box-shadow: 0 5px 0 rgba(90,53,145,.28);
}
.booking-direct {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 22px;
}
.booking-direct-label {
  font-weight: 800;
}
.booking-confetti,
.booking-corner-badge {
  position: absolute;
  z-index: 1;
  pointer-events: none;
}
.booking-confetti {
  width: 180px;
  height: 180px;
  opacity: .9;
}
.booking-confetti::before,
.booking-confetti::after {
  content: "";
  position: absolute;
  inset: 0;
  background-repeat: no-repeat;
}
.booking-confetti-left {
  left: max(16px, 4vw);
  top: 70px;
  transform: rotate(-12deg);
}
.booking-confetti-left::before {
  background-image:
    radial-gradient(circle, #ffe07d 0 8px, transparent 9px),
    radial-gradient(circle, #7045bd 0 5px, transparent 6px),
    radial-gradient(circle, #ef8fb0 0 6px, transparent 7px),
    linear-gradient(#ef8fb0, #ef8fb0),
    linear-gradient(#7045bd, #7045bd),
    linear-gradient(#ffc95a, #ffc95a);
  background-size: 16px 16px, 10px 10px, 12px 12px, 28px 3px, 3px 22px, 22px 3px;
  background-position: 22px 28px, 120px 24px, 86px 102px, 14px 110px, 138px 72px, 108px 136px;
}
.booking-confetti-left::after {
  background-image:
    radial-gradient(circle, #ffffff 0 20px, transparent 21px),
    radial-gradient(circle, rgba(112,69,189,.14) 0 28px, transparent 29px);
  background-size: 44px 44px, 60px 60px;
  background-position: 42px 60px, 36px 52px;
}
.booking-confetti-right {
  right: max(14px, 4vw);
  bottom: 44px;
  transform: rotate(10deg);
}
.booking-confetti-right::before {
  background-image:
    radial-gradient(circle, #ef8fb0 0 7px, transparent 8px),
    radial-gradient(circle, #7045bd 0 6px, transparent 7px),
    radial-gradient(circle, #ffe07d 0 8px, transparent 9px),
    linear-gradient(#7045bd, #7045bd),
    linear-gradient(#ef8fb0, #ef8fb0),
    linear-gradient(#ffe07d, #ffe07d);
  background-size: 14px 14px, 12px 12px, 16px 16px, 24px 3px, 3px 20px, 20px 3px;
  background-position: 110px 26px, 44px 112px, 128px 120px, 26px 48px, 126px 76px, 62px 144px;
}
.booking-confetti-right::after {
  background-image:
    radial-gradient(circle, rgba(255,255,255,.95) 0 18px, transparent 19px),
    radial-gradient(circle, rgba(239,143,176,.18) 0 26px, transparent 27px);
  background-size: 40px 40px, 56px 56px;
  background-position: 88px 80px, 74px 68px;
}
.booking-corner-badge {
  right: clamp(18px, 4vw, 52px);
  top: 62px;
  display: grid;
  place-items: center;
  width: 145px;
  aspect-ratio: 1;
  padding: 14px;
  text-align: center;
  border-radius: 50%;
  background: #ffdf7b;
  color: #4d3265;
  border: 2px dashed rgba(112,69,189,.75);
  box-shadow: 0 10px 0 rgba(239,171,198,.52);
  transform: rotate(10deg);
  font-size: 11px;
  line-height: 1.25;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.booking-corner-badge strong {
  display: block;
  margin-top: 5px;
  font-size: 17px;
  line-height: 1.05;
  letter-spacing: -.03em;
  text-transform: none;
}

@media (min-width: 651px) and (max-width: 1080px) {
  .booking-content { max-width: 760px !important; }
  .booking-corner-badge {
    width: 118px;
    top: 34px;
    right: 20px;
    font-size: 9px;
  }
}

@media (max-width: 650px) {
  .gallery-heading { text-align: center; }
  .birthday-gallery-decor {
    align-items: center;
    min-width: 0;
    margin-top: 10px;
  }
  .birthday-gallery-badge {
    font-size: 8px;
    letter-spacing: .14em;
    padding: 9px 14px;
  }
  .birthday-gallery-icons {
    font-size: 21px;
    gap: 10px;
  }

  .booking-section {
    padding: 74px 6vw 64px;
  }
  .booking-content {
    width: 100%;
    max-width: 100% !important;
  }
  .book-kicker {
    font-size: 9px;
    letter-spacing: .14em;
    padding: 8px 12px;
  }
  .booking-content h2 {
    font-size: clamp(54px, 12.6vw, 76px);
    line-height: .96;
  }
  .booking-content > p {
    font-size: 13px;
    margin-bottom: 18px;
  }
  .inquiry-form {
    box-shadow: 5px 7px 0 #efabc6;
  }
  .booking-direct {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
  .booking-confetti {
    width: 116px;
    height: 116px;
    opacity: .7;
  }
  .booking-confetti-left {
    top: 22px;
    left: -6px;
  }
  .booking-confetti-right {
    right: -14px;
    bottom: 18px;
  }
  .booking-corner-badge {
    width: 92px;
    top: 22px;
    right: 10px;
    padding: 8px;
    font-size: 7px;
    box-shadow: 0 6px 0 rgba(239,171,198,.45);
  }
  .booking-corner-badge strong {
    font-size: 12px;
    margin-top: 3px;
  }
}

/* Oct 2026 refinement v2 — rebuild booking area as a contained invitation panel.
   Fix stretched desktop layout and restore clean text/button alignment. */
.booking-section {
  padding: 34px max(5vw, 20px) 42px !important;
  background: transparent !important;
}
.booking-section::before {
  display: none !important;
}
.booking-panel {
  position: relative;
  width: min(100%, 1240px);
  margin: 0 auto;
  padding: 66px clamp(26px, 5vw, 72px) 54px;
  border-radius: 44px;
  overflow: hidden;
  isolation: isolate;
  background:
    radial-gradient(circle at 18% 18%, rgba(255,255,255,.35) 0 2px, transparent 2.6px) 0 0 / 30px 30px,
    linear-gradient(110deg, #f9ccdb 0%, #f7c9da 53%, #efdafb 100%);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.5), 0 18px 35px rgba(99,61,125,.08);
}
.booking-panel::before {
  content: "";
  position: absolute;
  right: -70px;
  top: -34px;
  width: 270px;
  height: 270px;
  border-radius: 50%;
  background: rgba(255, 222, 114, .88);
  z-index: 0;
}
.booking-panel::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(255,255,255,.6) 1.3px, transparent 1.8px);
  background-size: 26px 26px;
  opacity: .35;
  pointer-events: none;
  z-index: 0;
}
.booking-blob {
  position: absolute;
  left: auto !important;
  right: 70px;
  top: 74px;
  width: 160px;
  height: 160px;
  border-radius: 54% 46% 48% 52%;
  background: rgba(255,250,245,.62);
  filter: blur(1px);
  z-index: 1;
}
.booking-stars {
  position: absolute;
  z-index: 2;
  line-height: 1;
  font-family: var(--font-head);
}
.booking-stars.star-a {
  right: 320px;
  top: 64px;
  font-size: 44px;
  color: #7045bd;
}
.booking-stars.star-b {
  right: 58px;
  bottom: 40px;
  font-size: 34px;
  color: #7045bd;
}
.booking-panel-badge {
  position: absolute;
  right: 44px;
  top: 138px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 132px;
  min-height: 44px;
  padding: 10px 18px;
  border-radius: 999px;
  background: #fff9f3;
  border: 2px solid rgba(112,69,189,.14);
  box-shadow: 0 8px 0 rgba(238,170,196,.46);
  transform: rotate(8deg);
  color: #7045bd;
  font-family: Georgia, serif;
  font-style: italic;
  font-size: 25px;
  font-weight: 700;
  white-space: nowrap;
}
.booking-panel-squiggle {
  position: absolute;
  right: 118px;
  bottom: 78px;
  width: 170px;
  color: #ec96b1;
  z-index: 2;
  transform: rotate(-8deg);
  opacity: .95;
}
.booking-panel-squiggle svg {
  width: 100%;
  height: auto;
}
.booking-content {
  position: relative;
  z-index: 3;
  width: min(100%, 760px) !important;
  max-width: 760px !important;
  margin-left: 0;
}
.book-kicker {
  position: relative;
  z-index: 3;
}
.booking-content h2 {
  font-size: clamp(68px, 6.2vw, 96px) !important;
  line-height: .95 !important;
  margin: 16px 0 16px !important;
}
.booking-content > p {
  max-width: 560px !important;
  font-size: 15px !important;
  line-height: 1.7 !important;
  margin-bottom: 20px !important;
}
.inquiry-form {
  background: rgba(255,250,245,.96) !important;
  border-radius: 24px !important;
  border: 1.5px solid rgba(255,255,255,.96) !important;
  box-shadow: 0 14px 36px rgba(104,65,93,.10), 8px 9px 0 #f0abc7 !important;
}
.form-line {
  gap: 14px;
}
.form-submit {
  display: grid !important;
  grid-template-columns: auto minmax(220px, 1fr);
  align-items: center !important;
  gap: 14px !important;
}
.form-submit .button-dark {
  min-width: 205px;
  justify-content: center;
  padding: 17px 20px;
}
.form-submit > span {
  display: block;
  max-width: 320px;
  color: #7a6e7d;
  font-size: 11px;
  line-height: 1.55;
}
.booking-direct {
  display: flex !important;
  align-items: center !important;
  gap: 10px 14px !important;
  flex-wrap: wrap;
  margin-top: 16px !important;
  line-height: 1.55 !important;
}
.booking-direct-label {
  font-size: 12px;
  font-weight: 800;
}
.booking-direct-links {
  display: inline-flex !important;
  align-items: center !important;
  gap: 12px !important;
  flex-wrap: wrap;
}
.booking-direct-links a {
  font-size: 12px;
  font-weight: 800;
}
.booking-direct-or {
  font-size: 12px;
  opacity: .65;
}

@media (max-width: 1080px) {
  .booking-panel {
    padding-right: 40px;
  }
  .booking-content {
    width: min(100%, 700px) !important;
    max-width: 700px !important;
  }
  .booking-panel::before {
    width: 220px;
    height: 220px;
    right: -50px;
  }
  .booking-stars.star-a {
    right: 245px;
  }
  .booking-panel-badge {
    right: 28px;
    top: 132px;
    font-size: 22px;
  }
  .booking-panel-squiggle {
    right: 64px;
  }
}

@media (max-width: 760px) {
  .booking-section {
    padding: 24px 6vw 32px !important;
  }
  .booking-panel {
    width: 100%;
    padding: 52px 18px 34px;
    border-radius: 26px;
  }
  .booking-panel::before {
    width: 132px;
    height: 132px;
    right: -26px;
    top: -18px;
  }
  .booking-blob {
    right: 18px;
    top: 54px;
    width: 82px;
    height: 82px;
  }
  .booking-stars.star-a {
    right: 116px;
    top: 24px;
    font-size: 28px;
  }
  .booking-stars.star-b {
    right: 20px;
    bottom: 16px;
    font-size: 24px;
  }
  .booking-panel-badge {
    right: 10px;
    top: 68px;
    min-width: 88px;
    min-height: 34px;
    padding: 7px 10px;
    font-size: 15px;
    box-shadow: 0 5px 0 rgba(238,170,196,.46);
  }
  .booking-panel-squiggle {
    right: 24px;
    bottom: 88px;
    width: 94px;
  }
  .booking-content {
    width: 100% !important;
    max-width: 100% !important;
  }
  .booking-content h2 {
    font-size: clamp(56px, 12.4vw, 74px) !important;
    margin: 14px 0 14px !important;
  }
  .booking-content > p {
    max-width: 100% !important;
    font-size: 13px !important;
    margin-bottom: 16px !important;
  }
  .inquiry-form {
    border-radius: 20px !important;
    box-shadow: 4px 6px 0 #f0abc7 !important;
  }
  .form-line {
    gap: 0;
  }
  .form-submit {
    grid-template-columns: 1fr !important;
    align-items: start !important;
    gap: 10px !important;
  }
  .form-submit .button-dark {
    min-width: 0;
    width: 100%;
  }
  .form-submit > span {
    max-width: 100%;
    font-size: 10px;
  }
  .booking-direct {
    flex-direction: row !important;
    align-items: center !important;
    gap: 6px 10px !important;
  }
  .booking-direct-label {
    width: 100%;
  }
}
