.party-site { background: #fff; }
.party-site .shared-footer { color: #fff; background: var(--ink); padding-top: 10px; }
.party-content { line-height: 1.65; }
.party-content section { padding: 70px 0; }
.party-content .container { width: min(1120px, calc(100% - 48px)); margin: auto; }
.party-content .span12, .party-content .row, .party-content .cols-container { width: 100%; display: flow-root; }
.party-content .span8 { width: 66.666%; float: left; padding-right: 35px; }
.party-content .span4 { width: 33.333%; float: left; }
.party-content .span6 { width: 50%; float: left; padding: 20px; }
.party-content img { max-width: 100%; height: auto; }
.party-content h1 { font: 700 clamp(34px, 5vw, 64px)/1.05 Montserrat, sans-serif; letter-spacing: -.045em; margin: 0 0 30px; }
.party-content h2 { font: 700 clamp(24px, 3vw, 36px)/1.15 Montserrat, sans-serif; margin: 0 0 20px; }
.party-content p { margin: 0 0 20px; }
.party-content a { color: var(--purple); }
.party-content .main-btn { display: inline-block; padding: 13px 22px; margin: 12px 0; border-radius: 999px; color: #fff; background: var(--coral); font: 700 13px/1.4 Montserrat, sans-serif; text-decoration: none; }
.party-content .fuscia { background: var(--purple); }
.party-content .textcenter, .party-content .title-block > .span12:first-child { text-align: center; }
.party-content .aligncenter { display: block; margin: auto; }
.party-content .party-sign { padding: 25px; background: #f3efff; border-radius: 22px; }
.party-content .party-sign > img { transform-origin: 50% 88%; will-change: transform; }
.party-content .testimonials { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.party-content .testimonials-item { padding: 24px; border-radius: 22px; background: #f3efff; }
.party-content .testimonial-image { display: block; width: min(220px, 85%); height: 230px; object-fit: contain; transform-origin: 50% 88%; will-change: transform; }
.party-content .nitty-img { max-height: 330px; object-fit: contain; }
.party-content .faq-content { display: none; }
.party-content .faq-summary { cursor: pointer; }
.party-content { background: #fff; }
.party-content #about { background: #fff !important; }
.party-content #about .title-block { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,.9fr); gap: 28px 56px; align-items: start; }
.party-content #about .title-block > .span12:first-child { grid-column: 1; grid-row: 1; text-align: left; }
.party-content #about .title-block > .span12:nth-child(2) { display: contents; }
.party-content #about .span8, .party-content #about .party-sign { width: auto; float: none; }
.party-content #about .span8 { grid-column: 1; grid-row: 2; padding: 0; font-size: 18px; line-height: 1.75; }
.party-content #about .party-sign { grid-column: 2; grid-row: 1 / span 2; }
.party-content h1.title { font: 700 clamp(42px,6vw,76px)/.98 Montserrat,sans-serif; letter-spacing: -.055em; text-transform: none; margin-bottom: 10px; }
@supports ((background-clip: text) or (-webkit-background-clip: text)) {
  .party-content h1.title {
    background-image: linear-gradient(100deg, #e64b70, #c76700, #248b69, #7560d9, #dd4999, #e64b70);
    background-size: 300% 100%;
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    animation: party-title-rainbow 8s ease-in-out infinite alternate;
  }
}
@keyframes party-title-rainbow { from { background-position: 0% 50%; } to { background-position: 100% 50%; } }
@media(prefers-reduced-motion:reduce) { .party-content h1.title { animation:none; } }
.party-content h1.title span { display: block; margin-top: 14px; color: var(--purple); font-size: clamp(24px,3vw,40px); line-height: 1.1; letter-spacing: -.04em; }
.party-content .party-sign { position: relative; padding: 20px 28px 28px; border-radius: 22px; background: #f3efff; }
.party-content .party-sign > img { display: block; max-height: 350px; width: 100%; object-fit: contain; margin: -10px auto 15px; }
.party-content .main-btn { padding: 10px 19px; font-size: 13px; transition: background-color .2s ease; }
.party-content .main-btn:hover { background: var(--ink); }
.party-content #about .main-btn,
.party-content #add-ons .main-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 60px;
  max-width: 100%;
  padding: 17px 30px;
  font-size: clamp(17px, 1.6vw, 20px);
  line-height: 1.3;
  text-align: center;
}
.party-content #social-proof { position: relative; overflow: hidden; padding: 65px 0 0; margin: 20px 0 0; background: #fff1ed; border-top: 5px solid var(--coral); border-bottom: 2px solid var(--coral); }
.party-content #social-proof .testimonials { gap: 26px; }
.party-content #social-proof .testimonials-item { display: flex; flex-direction: column; background: transparent; border: 0; padding: 0; }
.party-content #social-proof .testimonials-item:nth-child(2) { border-color: var(--purple); }
.party-content #social-proof .testimonials-item:nth-child(3) { border-color: #7bc8ae; }
.party-content .testimonials-item { border: 2px solid var(--purple); background: #f7f4ff; }
.party-quote-puppet { position:relative; order:2; flex:0 0 225px; height:225px; width:85%; margin:55px auto 0; }
.party-content .party-quote-puppet .testimonial-image { position:absolute; bottom:-55px; left:0; width:100%; height:280px; }
.party-quote-bubble { position:relative; order:1; flex:1; margin:0; padding:32px 27px; border:2px solid var(--ink); border-radius:48px 48px 34px 34px; background:var(--paper); box-shadow:5px 6px 0 var(--ink); }
.party-content .party-quote-bubble p { margin:0; font:700 17px/1.5 Montserrat,sans-serif; letter-spacing:-.02em; }
.party-quote-bubble cite { display:block; margin-top:22px; font:700 11px/1.4 Montserrat,sans-serif; letter-spacing:.06em; font-style:normal; text-transform:uppercase; color:#675d54; }
.party-quote-dot { position:absolute; border:2px solid var(--ink); border-radius:50%; background:var(--paper); }
.party-quote-dot--large { width:26px; height:26px; bottom:-37px; left:calc(50% + 26px); }
.party-quote-dot--small { width:15px; height:15px; bottom:-64px; left:calc(50% + 34px); }
.party-content #next2 .service-block { margin-bottom: 35px; padding: 30px; border: 2px solid #7bc8ae; border-radius: 22px; background: #f0faf6; }
.party-content #add-ons { background: #fbfaf6 !important; }
.party-content #add-ons img { max-height: 320px; width: 100%; object-fit: contain; margin: 20px auto; }
.party-content #faq { display: grid; gap: 15px; }
.party-content .party-faq summary { grid-template-columns: minmax(0,1fr) 32px; min-height: 85px; padding: 22px 26px; gap: 20px; }
.party-content .party-faq summary strong { font: 700 clamp(17px,2vw,23px)/1.25 Montserrat,sans-serif; letter-spacing: -.025em; }
.party-content .party-faq .artist-card__bio { padding: 24px 26px; }
.party-content .party-faq .artist-card__bio p { margin: 0 0 14px; }
.party-content .party-faq .artist-card__bio p:last-child { margin-bottom: 0; }
.party-content .party-faq ul { padding-left: 22px; }
.party-show-buttons { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; margin: 28px 0 10px; }
.party-content .party-show-buttons .main-btn { display:flex; align-items:center; justify-content:center; min-height:70px; padding:20px 24px; margin:0; font-size:clamp(17px,1.6vw,21px); line-height:1.3; }
.party-content .party-show-buttons .main-btn:last-child { grid-column:1 / -1; }
.party-content #add-ons { margin-top: 35px; padding: 85px 0; background:#f3efff !important; border-top:6px solid var(--purple); border-bottom:2px solid var(--purple); }
.party-content #add-ons .title-block { text-align:center; margin-bottom:35px; }
.party-content #add-ons .small-padding { padding:28px; }
.party-content #add-ons .nitty-text { padding:28px; border-radius:22px; background:#fff; }
.party-content #add-ons .service-block > .span12 { text-align: center; }
.party-show-modal .video-lightbox__panel { width:min(1100px,100%); max-height:92svh; overflow:auto; padding:24px; }
.party-show-modal h2 { padding-right:45px; font:700 26px/1.2 Montserrat,sans-serif; margin:0 0 18px; }
.party-show-modal iframe { display:block; width:100%; height:68svh; border:0; border-radius:8px; background:#fff; }
.party-show-modal [data-party-show-external] { display:inline-block; margin-top:15px; color:var(--ink); font-size:13px; }
@media(max-width:620px) { .party-show-buttons { grid-template-columns:1fr; gap:14px; } .party-content #add-ons { padding:55px 0; } .party-content #add-ons .small-padding { padding:12px 0; } }
.party-nitty-stage { position: relative; height: clamp(200px, 26vw, 310px); margin: 25px auto -45px; width: 94%; clip-path: inset(-9999px -9999px 0 -9999px); }
.party-content .party-nitty-puppet { position: absolute; bottom: -25%; width: 27%; max-width: none; transform-origin: 50% 88%; will-change: transform; }
.party-nitty-puppet--bob { left: 0; }
.party-nitty-puppet--dolly { left: 24%; }
.party-nitty-puppet--clementine { left: 49%; }
.party-content .party-nitty-puppet--pete { left: 72%; bottom: -43%; }
.party-content #next2 .party-nitty-card { position: relative; z-index: 2; }
.party-content #next2 { padding: 60px 0 35px; }
.party-content #next2 .title-block { text-align: center; }
.party-content #next2 .party-nitty-card { padding: 26px 30px; border-radius: 28px 28px 0 0; margin-bottom: 26px; }
.party-nitty-card .nitty-text { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 30px; font-size:16px; line-height:1.6; }
.party-content .party-nitty-card p { margin:0; }
.party-nitty-card .nitty-text p:last-child { grid-column:1 / -1; padding-top:16px; border-top:1px solid #7bc8ae; }
.party-content #next2 .party-shows-card { padding:26px 30px; border-color:var(--coral); border-radius:0 0 28px 28px; background:#fff5f1; margin-bottom:0; }
.party-content .party-shows-card h2 { margin-bottom:14px; }
.party-content .party-shows-card p { margin-bottom:12px; }
.party-shows-card .party-show-buttons { margin:22px 0 0; gap:16px; }
@media(max-width:700px) { .party-nitty-card .nitty-text { grid-template-columns:1fr; gap:15px; } .party-content #social-proof { padding:45px 0 0; } .party-content #social-proof .party-quote-puppet { overflow:hidden; } .party-content #next2 .party-nitty-card, .party-content #next2 .party-shows-card { padding:22px; } }
@media(max-width:700px) { .party-nitty-stage { height: 170px; margin-bottom: -35px; width: 100%; } .party-content .party-nitty-puppet { width: 30%; bottom: -8%; } .party-content .party-nitty-puppet--pete { bottom: -26%; left: 69%; } }
@media(prefers-reduced-motion:reduce) { .party-content .testimonial-image, .party-content .party-nitty-puppet { transform:none !important; will-change:auto; } }
@media(max-width:700px) { .party-content #about .title-block { display:block; } .party-content #about .title-block > .span12:nth-child(2) { display:block; } .party-content .party-sign { margin-top:30px; } .party-content #next2 .service-block { padding:20px; } .party-content .party-faq summary { padding:20px; } }
@media(max-width:700px) { .party-content .span8,.party-content .span4,.party-content .span6 { width:100%; float:none; padding:15px 0; } .party-content .testimonials { grid-template-columns:1fr; } .party-content .container { width:calc(100% - 28px); } .party-content section { padding:45px 0; } }
@media(prefers-reduced-motion:reduce) { .party-content .party-sign > img { transform:none !important; will-change:auto; } }
