/* Shared page templates: continuous image-led openings and compact lead capture. */
:root{--page-ink:#342238;--page-paper:#fffaf2;--lead-color:#ffd447}
.page-hero{position:relative;isolation:isolate;overflow:hidden;background:var(--page-color);color:var(--page-ink);border-radius:0 0 48px 48px}
.page-hero .header{color:var(--page-ink);padding-right:0}
.page-hero .phone,.page-hero .callback{color:inherit}
.page-hero-inner{min-height:500px;position:relative;display:flex;align-items:center;padding-block:45px 65px}
.page-hero-copy{position:relative;width:48%;z-index:3;pointer-events:none}
.page-hero-copy a,.page-hero-copy button{pointer-events:auto}
.page-hero h1{font-size:clamp(40px,5.3vw,76px);line-height:1.02;letter-spacing:-2px;overflow-wrap:break-word}
.page-hero-copy>p{font-size:19px;line-height:1.5;max-width:33ch;margin-top:22px}
.breadcrumbs{display:flex;flex-wrap:wrap;gap:8px;font-size:12px;line-height:1.5;margin-bottom:24px;opacity:.9}
.breadcrumbs a{text-decoration:underline;text-underline-offset:3px}
.page-hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:25px;margin-top:30px}
.page-hero-actions>div strong{display:block;font-size:25px;line-height:1.1;white-space:nowrap}
.page-hero-actions>div span{display:block;font-size:12px;margin-top:8px}
.hero-order{position:relative;background:#fff;color:#452745;min-width:175px;isolation:isolate}
.hero-order::after{content:'';position:absolute;inset:-7px;border:2px solid #ffffff90;border-radius:inherit;animation:order-ring 2.4s ease-in-out infinite;pointer-events:none}
@keyframes order-ring{0%,100%{opacity:0;transform:scale(.98)}30%{opacity:.6}75%{opacity:0;transform:scale(1.12,1.2)}}
.page-hero-art{position:absolute;inset:0 -20px 0 43%;display:flex;align-items:flex-end;justify-content:center;z-index:1;overflow:hidden}
.page-hero-art img,.page-hero-art .detail-cutout{height:100%;width:100%;object-fit:contain;object-position:center bottom;max-height:520px}
.page-hero-art>svg:not(.detail-cutout){width:60%;height:65%;align-self:center;filter:drop-shadow(10px 18px 0 #51327d20)}
.photo-hero{color:#fff}
.photo-hero .header{color:#fff}
.photo-hero .page-hero-art{inset:0 0 0 35%}
.photo-hero .page-hero-art img{max-height:none;object-fit:cover}
.photo-hero .page-hero-art::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,var(--page-color) 0%,transparent 65%),linear-gradient(0deg,#0002,transparent 60%);pointer-events:none}
.page-heading{margin-bottom:32px;max-width:850px}
.page-heading .eyebrow{margin-bottom:15px;font-size:11px;letter-spacing:.09em}
.page-heading h2{font-size:clamp(30px,4vw,52px);line-height:1.05;letter-spacing:-1.3px}
.page-heading>p:last-child:not(.eyebrow){font-size:17px;line-height:1.55;margin-top:20px;max-width:65ch;color:#67566d}
.includes-section{padding-block:65px}
.includes-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.includes-grid article{display:flex;align-items:center;gap:18px;background:#efe6ff;border-radius:23px;padding:23px;min-width:0}
.includes-grid article:nth-child(3n+2){background:#d4f1e6}.includes-grid article:nth-child(3n){background:#ffe5a5}
.includes-grid .package-icon{position:static;width:55px;height:55px;flex:0 0 55px}
.includes-grid h3{font-size:20px;line-height:1.2;font-weight:700;letter-spacing:-.3px}
.gender-choices{display:flex;justify-content:center;gap:18px;margin-block:30px 10px}
.gender-choice{display:flex;align-items:center;justify-content:center;min-height:60px;padding:18px 30px;border-radius:99px;font-size:19px;font-weight:700;background:#ceeaf7;color:#24475b;text-align:center}
.gender-choice.girls{background:#ffd4e1;color:#6e294b}
.page-lead{padding:60px 0;margin-block:35px;background:#ffd447;border-radius:38px}
.page-lead-grid{display:grid;grid-template-columns:1fr 1fr;gap:55px;align-items:center}
.page-lead h2{font-size:clamp(33px,4.6vw,57px);line-height:1.04;letter-spacing:-1.5px}
.page-lead p:not(.eyebrow):not(.quote-error){font-size:18px;line-height:1.5;margin-top:22px;max-width:30ch}
.lead-wa{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:5px;font-size:15px;font-weight:700;margin-top:15px}
.page-lead .quote-form{padding:28px;background:#fffaf2;border-radius:25px;margin:0}
.form-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.quote-form .quote-error:not(:empty){padding:12px;border-radius:12px;background:#fff2d5;color:#5b3d1f;line-height:1.45}
.quote-error a{display:inline-flex;align-items:center;min-height:36px;text-decoration:underline;font-weight:700;margin-right:15px}
dialog#request{background:#ffd447;width:440px;max-width:calc(100vw - 28px);padding:35px 30px 28px;border-radius:28px;color:#342238;max-height:calc(100dvh - 28px)}
#request .close{position:absolute;right:14px;top:10px;width:36px;height:36px;border-radius:50%;padding:0;display:grid;place-items:center;background:#ffffff80;color:#342238;font-size:25px;line-height:1}
#request h2{font-family:HeaderSans,Arial,sans-serif;font-size:36px;line-height:1.02;letter-spacing:-1px;margin:6px 20px 15px 0}
#request #dialog-copy{font-size:14px;line-height:1.4;margin:0 0 21px;max-width:30ch}
#request .quote-form{gap:12px}
#request .quote-form>label{font-size:0;gap:0}
#request .quote-form>label input{font-size:17px;min-height:54px;border:0;border-radius:13px}
#request .quote-form>.button{background:#ee3f68;color:#fff;min-height:54px;font-size:17px;box-shadow:none}
#request .consent-row{margin-top:2px;gap:9px}
#request .consent-row>label{font-size:10px;line-height:1.45;color:#4f3a34}
#request .consent-row a{color:inherit}
.catalog-inline-lead{grid-column:1/-1;background:#a98ae9;color:#30213d;display:flex;align-items:center;justify-content:space-between;gap:30px;padding:38px;border-radius:28px;margin:10px 0 35px}
.catalog-inline-lead h2{font-size:35px;line-height:1.1;letter-spacing:-.8px}
.catalog-inline-lead p{font-size:17px;margin-top:15px;max-width:35ch}
.catalog-inline-lead>div:last-child{display:flex;flex-direction:column;align-items:center;gap:16px;flex-shrink:0}
.catalog-inline-lead a:not(.button){font-size:14px;text-decoration:underline;text-underline-offset:4px}
.full-catalog .catalog-results{margin:20px 0 35px;font-size:14px}
.full-catalog-grid .card-hit{display:flex;flex-direction:column;height:100%;width:100%;text-align:left}
.full-catalog-grid .card-image{flex-shrink:0}
.full-catalog-grid .card-content{flex:1}
.gender-filter{margin-bottom:20px}
.full-catalog-grid [hidden]{display:none!important}
.service-list-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.service-preview{position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;border-radius:28px;min-height:380px;background:#c8b4ef;color:#fff;padding:25px}
.service-picture{position:absolute;inset:0;z-index:-2;display:grid;place-items:center}
.service-picture img{width:100%;height:100%;object-fit:cover}
.service-preview.has-photo::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#25163300 20%,#251633e8 100%)}
.service-preview-copy>p{font-size:11px;letter-spacing:.05em;text-transform:uppercase;margin-bottom:9px}
.service-preview-copy h2{font-family:Arial,Helvetica,sans-serif;font-size:30px;font-weight:800;line-height:1.05;letter-spacing:-.7px;margin-bottom:15px}
.service-preview-copy strong{font-size:23px;color:#ffe36b;white-space:nowrap}
.service-discover{display:block;font-size:13px;margin-top:13px;text-decoration:underline;text-underline-offset:4px}
.service-preview.has-art{color:#342238}
.service-preview.has-art .service-picture{inset:0 0 35%}
.service-preview.has-art .service-picture svg{width:130px;height:150px}
.service-preview.has-art .service-preview-copy strong{color:#51327d}
.service-include-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:36px}
.service-include-grid article{background:#eadfff;border-radius:24px;padding:25px;min-width:0}
.service-include-grid article:nth-child(2){background:#ffe29c}.service-include-grid article:nth-child(3){background:#ccede3}.service-include-grid article:nth-child(4){background:#ffd4df}
.service-include-grid span{display:block;font-size:28px;font-weight:800;margin-bottom:35px;color:#77528e}
.service-include-grid h3{font-size:22px;line-height:1.15;letter-spacing:-.3px}
.activities-section{background:#e8dfff;border-radius:35px}
.activities-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:45px;align-items:center}
.activities-art{height:520px;display:flex;align-items:flex-end;justify-content:center;overflow:hidden}
.activities-art img,.activities-art svg{width:100%;height:100%;object-fit:contain;object-position:center bottom}
.activities-grid ol{padding:0;margin:25px 0;list-style:none;display:grid;gap:14px}
.activities-grid li{display:flex;align-items:center;gap:16px;font-size:18px;line-height:1.4}
.activities-grid li span{display:grid;place-items:center;flex:0 0 38px;height:38px;border-radius:50%;background:#fff8;font-size:13px;font-weight:700}
.draft-note{font-size:12px;line-height:1.5;color:#6d5a78;max-width:55ch}
.detail-photo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:20px;max-width:950px;margin:auto}
.detail-photo{margin:0;aspect-ratio:1.35;background:#eadfff;border-radius:28px;overflow:hidden}
.detail-photo img{height:100%;width:100%;object-fit:cover}
.detail-photo.costume-photo{background:#ffdc70;aspect-ratio:1.6}
.detail-photo.costume-photo img{object-fit:contain}
.work-samples{background:#efe6ff;border-radius:30px}
.invitations{background:#ffde76;border-radius:35px;overflow:hidden}
.invitations-grid{display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:45px}
.invitation-art{display:grid;place-items:center;min-height:330px}
.invitation-art>div{width:240px;border-radius:18px;background:#fffaf2;color:#633d81;padding:30px;transform:rotate(7deg);box-shadow:12px 14px 0 #c9954a35}
.invitation-art small{font-size:11px;letter-spacing:.1em;font-weight:700}
.invitation-art strong{display:block;font-size:39px;line-height:1.02;letter-spacing:-1.2px;margin:24px 0}
.invitation-art span{display:block;font-size:14px;margin-top:9px}
.seo-description{font-size:15px;line-height:1.7;margin-top:20px;max-width:80ch}
@media(hover:hover) and (pointer:fine){.hero-order:hover::after{animation-play-state:paused}.service-preview:hover .service-discover{text-decoration-thickness:2px}}
@media(prefers-reduced-motion:reduce){.hero-order::after{animation:none;opacity:.3}}
@media(max-width:1050px){.service-list-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.includes-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.service-include-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
 .page-hero{border-radius:0 0 30px 30px}
 .page-hero .header.wrap{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:space-between!important;gap:7px;width:calc(100% - 28px);margin:0 14px;padding:12px 0;min-height:76px;height:auto}
 .page-hero-inner{display:flex;flex-direction:column;min-height:0;padding:15px 0 0;width:100%;gap:0}
 .page-hero-copy{width:100%;padding:0 20px;pointer-events:auto}
 .page-hero h1{font-size:clamp(32px,8vw,43px);line-height:1.04;letter-spacing:-1px;text-align:center}
 .breadcrumbs{justify-content:center;font-size:10px;gap:6px;margin-bottom:18px}
 .page-hero-copy>p{text-align:center;font-size:16px;line-height:1.45;margin:18px auto 0;max-width:32ch}
 .page-hero-actions{justify-content:center;gap:20px;margin:25px auto 10px}
 .hero-order{min-width:145px;padding:18px 27px;font-size:17px}
 .page-hero-actions>div strong{font-size:22px}
 .page-hero-actions>div span{font-size:11px;margin-top:4px;max-width:140px}
 .page-hero-art,.photo-hero .page-hero-art{position:relative;inset:auto;display:flex;width:100%;height:310px;margin-top:18px;overflow:hidden}
 .page-hero-art img,.page-hero-art .detail-cutout{height:100%;width:100%;max-height:none}
 .photo-hero .page-hero-art::after{background:linear-gradient(180deg,var(--page-color),transparent 55%)}
 .photo-hero .page-hero-art{height:280px;margin-top:0}
 .photo-hero .page-hero-art img{object-position:center center}
 .page-heading{margin-bottom:24px}.page-heading h2{font-size:32px;line-height:1.06;letter-spacing:-1px}
 .page-heading>p:last-child:not(.eyebrow){font-size:15px;line-height:1.5;margin-top:17px}
 .includes-section{padding-block:45px}.includes-grid{gap:12px}
 .includes-grid article{flex-direction:column;align-items:flex-start;gap:14px;padding:20px 15px;border-radius:20px}
 .includes-grid h3{font-size:17px;line-height:1.15;letter-spacing:-.3px;overflow-wrap:normal}
 .includes-grid .package-icon{height:44px;width:44px;flex-basis:44px}
 .gender-choices{gap:12px;margin-block:24px 0}.gender-choice{min-height:55px;padding:15px 16px;font-size:16px;flex:1}
 .page-lead{padding:35px 0;margin-block:25px;border-radius:28px}
 .page-lead-grid{grid-template-columns:1fr;gap:25px}
 .page-lead h2{font-size:36px;letter-spacing:-1px}.page-lead p:not(.eyebrow):not(.quote-error){font-size:16px;margin-top:17px}
 .page-lead .quote-form{padding:23px;border-radius:22px}
 dialog#request{padding:28px 23px 23px;border-radius:24px}
 #request h2{font-size:31px;margin-top:13px}#request #dialog-copy{font-size:14px;margin-bottom:18px}
 #request .consent-row>label{font-size:10px}#request .quote-form>label input{min-height:52px}
 .catalog-inline-lead{padding:27px 22px;display:block;margin-block:5px 20px;border-radius:25px}
 .catalog-inline-lead h2{font-size:31px}.catalog-inline-lead p{font-size:16px}
 .catalog-inline-lead>div:last-child{align-items:flex-start;margin-top:22px;gap:17px}
 .gender-filter{flex-wrap:nowrap;overflow:auto;padding-bottom:8px;gap:8px}
 .service-list-grid{grid-template-columns:1fr;gap:20px}.service-preview{min-height:330px;border-radius:24px;padding:24px}
 .service-preview-copy h2{font-size:30px}.service-preview-copy strong{font-size:23px}
 .service-include-grid{gap:12px;margin-top:25px}.service-include-grid article{padding:22px 17px;border-radius:21px}
 .service-include-grid span{font-size:24px;margin-bottom:24px}.service-include-grid h3{font-size:18px;line-height:1.2}
 .activities-grid{grid-template-columns:1fr;gap:25px}.activities-art{height:320px;order:2}
 .activities-grid li{font-size:16px;gap:12px}.activities-section{border-radius:28px}
 .detail-photo{aspect-ratio:1.05;border-radius:24px}.detail-photo.costume-photo{aspect-ratio:1.2}
 .invitations-grid{grid-template-columns:1fr;gap:25px}.invitation-art{min-height:320px}
 .seo-description{font-size:14px;line-height:1.65}
}
@media(max-width:350px){.includes-grid h3{font-size:15px}.gender-choice{font-size:14px;padding-inline:12px}.page-hero-actions{gap:15px}.hero-order{min-width:133px;padding-inline:22px}.page-hero-actions>div strong{font-size:20px}.service-include-grid h3{font-size:16px}}

@media(max-width:760px){.page-hero .header-contact,.page-hero .header-location,.page-hero .header .socials{display:none!important}}
/* Data-driven mini-shows and agency identity. */
.mini-show-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin-top:30px}
.mini-show-card{display:flex;flex-direction:column;align-items:center;text-align:center;padding:25px 16px;border-radius:26px;background:var(--cream,#fff9ee);color:inherit;text-decoration:none;gap:12px;min-width:0}
.mini-show-card svg,.mini-show-card img{width:100px;height:100px;object-fit:contain;color:var(--purple,#8b5bd1)}
.mini-show-card h3{font-size:23px;line-height:1.15;margin:0;overflow-wrap:anywhere}.mini-show-card strong{margin-top:auto;font-size:21px}
.addition-card small{display:block;margin-top:8px;font-size:14px}.addition-card{text-decoration:none;color:inherit}.addition-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.service-art{color:var(--purple,#8b5bd1)}.company-details{font-size:12px;line-height:1.6;text-align:center;padding:15px 20px;opacity:.8;grid-column:1/-1}.holiday-minimum{font-size:24px;font-weight:800;margin:18px 0 10px}
@media(max-width:760px){.mini-show-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.mini-show-card{padding:20px 12px}.mini-show-card h3{font-size:19px}.addition-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.holiday-minimum{display:none}}
@media(max-width:760px){.hero .intro{display:block;font-size:15px;line-height:1.35;margin:12px auto 0}.hero .intro br{display:none}}
@media(max-width:760px){.hero .intro strong{color:inherit;font-size:inherit}.hero .intro{font-weight:600}}
