:root{--pink:#f50063;--pink2:#de005a;--ink:#07090b;--panel:#171a1d;--paper:#f7f7f5;--line:#303337}
*{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:hidden}body{margin:0;overflow-x:hidden;background:var(--ink);color:#fff;font-family:Inter,Arial,sans-serif;font-size:14px}a{text-decoration:none}h1,h2,h3,.btn{font-family:"Barlow Condensed",Arial,sans-serif;font-weight:900}.btn{border-radius:3px;letter-spacing:.2px;padding:.72rem 1.25rem}.btn-pink{background:var(--pink);border-color:var(--pink);color:#fff}.btn-pink:hover,.btn-pink:focus{background:#d90058;border-color:#d90058;color:#fff}.eyebrow{margin:0 0 .45rem;color:var(--pink);font-size:.72rem;font-weight:800}.brand{display:inline-block;width:120px;color:#fff;font-family:"Permanent Marker",cursive;line-height:.78;transform:rotate(-5deg)}.brand span,.brand strong{display:block}.brand span{color:var(--pink);font-size:1.55rem}.brand strong{margin:5px 0 0 12px;color:#fff;font-size:1.42rem}.paper{position:relative;background-color:var(--paper);background-image:radial-gradient(circle,rgba(0,0,0,.035) 0 1px,transparent 1.2px);background-size:14px 14px;color:#111}.dark{position:relative;background:radial-gradient(circle at 50% 0,#1c2023 0,#090b0d 62%)}.section-pad{padding-top:2rem;padding-bottom:2rem}.section-title{margin-bottom:1rem}.section-title h2{margin:0;font-size:2rem;line-height:1}.section-title h2 span{color:var(--pink)}

header[id],main section[id]{scroll-margin-top:96px}

/* Hero */
.hero{position:relative;min-height:520px;overflow:hidden;background:#040507}.hero:after{content:"";position:absolute;z-index:0;right:-50px;top:70px;width:280px;height:260px;background:url(../img/paint-left.png) center/contain no-repeat;opacity:.78;transform:rotate(18deg) scaleX(-1)}.navbar{position:relative;z-index:4;padding:14px 0 6px}.navbar-nav{gap:1.55rem}.navbar .nav-link{position:relative;padding:.65rem 0!important;color:#fff;font-size:.67rem;white-space:nowrap}.navbar .nav-link:hover,.navbar .nav-link.active{color:var(--pink)}.navbar .nav-link.active:after{content:"";position:absolute;left:0;right:0;bottom:1px;height:2px;background:var(--pink)}.nav-cta{margin-left:1.8rem;white-space:nowrap}.hero-inner{position:relative;z-index:2}.hero-inner>.row{min-height:455px}.hero-visual{align-self:stretch;background:url(../img/hero-alfonso.jpg) center bottom/cover no-repeat}.hero-copy{display:flex;flex-direction:column;justify-content:center;padding:42px 24px 42px 64px}.hero-copy h1{margin:0 0 1rem;font-size:3.65rem;line-height:.78;letter-spacing:-1px;text-transform:uppercase;transform:rotate(-1deg)}.hero-copy h1 span,.hero-copy h1 em{display:block;font-style:normal}.hero-copy h1 em{color:var(--pink)}.hero-lead{max-width:530px;margin:0 0 1.4rem;font-size:.9rem;line-height:1.55}.hero-services{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:1.4rem;max-width:610px}.hero-services span{display:flex;align-items:center;gap:9px;font-size:.58rem;line-height:1.3}.hero-services i{color:var(--pink);font-size:1.55rem}.hero-actions{display:flex;gap:1.15rem}.hero-actions .btn{min-width:205px;font-size:.78rem}.btn-brush{position:relative;z-index:1;border:0;background:var(--pink);color:#fff}.btn-brush:before{content:"";position:absolute;z-index:-1;inset:-5px -13px;background:var(--pink);clip-path:polygon(3% 10%,98% 0,95% 22%,100% 45%,96% 69%,100% 91%,4% 100%,7% 75%,0 53%,5% 29%)}

/* Stats */
.stats-bar{background:linear-gradient(90deg,#101215,#1b1e21,#101215);border-top:1px solid #282b2e;border-bottom:1px solid #303337}.stat{position:relative;display:flex;min-height:86px;align-items:center;justify-content:center;gap:18px}.stat:not(:last-child):after{content:"";position:absolute;right:0;width:1px;height:45px;background:#616468}.stat i{color:var(--pink);font-size:2.45rem}.stat strong,.stat small{display:block}.stat strong{font-size:1.55rem;line-height:1}.stat small{margin-top:5px;color:#d1d2d3;font-size:.62rem}

/* Characters */
.characters .section-pad{padding-top:1.25rem;padding-bottom:1.25rem}.character-intro h2{margin:0 0 .8rem;font-size:2.05rem;line-height:.95}.character-intro>p:not(.eyebrow){font-size:.72rem;line-height:1.5}.character-intro .btn{font-size:.7rem}.character-slider{position:relative}.character-viewport{overflow:hidden;padding:8px 3px}.character-track{display:flex;gap:13px;transition:transform .42s ease;will-change:transform}.character-card{flex:0 0 calc((100% - 52px)/5);overflow:hidden;border-radius:5px;background:#fff;box-shadow:0 3px 13px rgba(0,0,0,.12);text-align:center;transform:rotate(1deg);user-select:none}.character-card:nth-child(even){transform:rotate(-.7deg)}.character-card img{display:block;width:100%;height:155px;object-fit:cover;object-position:top}.character-card h3{min-height:33px;margin:8px 5px 0;font-size:1rem;line-height:.9}.character-card p{min-height:31px;margin:0 6px 8px;font-size:.61rem;line-height:1.25}.slider-arrow{position:absolute;z-index:3;top:41%;display:grid;width:38px;height:38px;padding:0;place-items:center;border:0;border-radius:50%;background:var(--pink);color:#fff;box-shadow:0 4px 12px rgba(0,0,0,.22)}.slider-arrow:disabled{opacity:.28}.slider-prev{left:-18px}.slider-next{right:-18px}.slider-dots{text-align:center;margin-top:4px}.slider-dots button{width:10px;height:10px;margin:0 3px;padding:0;border:0;border-radius:50%;background:#c6c7c9}.slider-dots button.active{background:var(--pink)}

/* Next show */
.next-show{overflow:hidden;border-bottom:1px solid #2c3034}.next-show .section-pad{padding-top:2.5rem;padding-bottom:2.5rem}.next-show-card{position:relative;isolation:isolate;overflow:hidden;border:1px solid #3b3f44;border-radius:8px;background:linear-gradient(115deg,#171a1e 0%,#101215 58%,#25000f 100%);box-shadow:0 18px 48px rgba(0,0,0,.34)}.next-show-card:after{content:"";position:absolute;z-index:-1;right:-90px;bottom:-190px;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,rgba(245,0,99,.28),transparent 68%)}.next-show-kicker{display:flex;align-items:center;gap:.55rem;padding:.65rem 1.25rem;border-bottom:1px solid #34383d;color:#fff;font-size:.72rem;font-weight:800;letter-spacing:.08em}.next-show-pulse{width:8px;height:8px;border-radius:50%;background:var(--pink);box-shadow:0 0 0 5px rgba(245,0,99,.15);animation:show-pulse 2s ease-in-out infinite}.next-show-main{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1.6rem;padding:1.75rem 2rem}.next-show-icon{display:grid;width:76px;height:76px;place-items:center;border-radius:50%;background:var(--pink);box-shadow:0 10px 28px rgba(245,0,99,.32);font-size:2rem}.next-show-copy h2{margin:0 0 .65rem;font-size:2.25rem;line-height:.92}.next-show-copy h2 span{color:var(--pink)}.next-show-copy>p:last-child{max-width:650px;margin:0;color:#d5d7da;font-size:.84rem;line-height:1.55}.next-show-actions{display:flex;min-width:245px;flex-direction:column;gap:.7rem}.next-show-actions .btn{font-size:.76rem}.next-show-actions .btn-outline-light{border-color:#72767b}.next-show-actions .btn-outline-light:hover{border-color:var(--pink);background:rgba(245,0,99,.15)}
@keyframes show-pulse{0%,100%{transform:scale(.9);box-shadow:0 0 0 4px rgba(245,0,99,.12)}50%{transform:scale(1.08);box-shadow:0 0 0 8px rgba(245,0,99,0)}}
@media(max-width:991.98px){.next-show .section-pad{padding-top:2.25rem;padding-bottom:2.25rem}.next-show-main{grid-template-columns:auto 1fr}.next-show-actions{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));min-width:0}.next-show-copy h2{font-size:2.35rem}.next-show-copy>p:last-child{font-size:.95rem}}
@media(max-width:575.98px){.next-show-main{display:block;padding:1.5rem 1.15rem}.next-show-icon{width:58px;height:58px;margin-bottom:1.25rem;font-size:1.55rem}.next-show-copy h2{font-size:2rem}.next-show-actions{display:flex;margin-top:1.35rem}.next-show-actions .btn{min-height:48px;font-size:.85rem}.next-show-kicker{padding:.7rem 1rem;font-size:.66rem}}
@media(prefers-reduced-motion:reduce){.next-show-pulse{animation:none}}

/* Events */
.events .section-pad{padding-top:1.55rem;padding-bottom:1.75rem}.event-card{height:100%;overflow:hidden;border-radius:5px;background:linear-gradient(#1b1e21,#151719);box-shadow:0 8px 24px rgba(0,0,0,.3)}.event-card>img{display:block;width:100%;height:125px;object-fit:cover}.event-body{position:relative;padding:15px 17px 14px}.event-icon{position:absolute;top:-36px;left:16px;display:grid;width:42px;height:42px;place-items:center;border-radius:50%;background:var(--pink);font-size:1.2rem;line-height:1}.event-icon>i,.event-icon>svg{position:static!important;display:block!important;width:1em!important;height:1em!important;margin:0!important;transform:none!important}.event-icon>i:before{position:static!important;margin:0!important;transform:none!important}.event-card h3{margin:0 0 4px;font-size:1.12rem}.event-card p{min-height:42px;margin:0 0 5px;color:#dedfe0;font-size:.65rem;line-height:1.4}.event-card a{color:var(--pink);font-size:.69rem;font-weight:800}

/* TikTok */
.tiktok{z-index:2;min-height:282px;overflow:visible}.tiktok .container{position:relative;z-index:3}.tiktok .row{min-height:282px}.tiktok-media{position:relative;height:250px}.tiktok-gallery{position:absolute;z-index:1;top:22px;right:0;display:grid;width:72%;height:218px;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(2,1fr);gap:6px}.tiktok-tile{position:relative;min-width:0;margin:0;overflow:hidden;border:3px solid #fff;border-radius:5px;background:#222;box-shadow:0 4px 12px rgba(0,0,0,.18);transform:rotate(.8deg)}.tiktok-tile:nth-child(1){grid-column:2}.tiktok-tile:nth-child(even){transform:rotate(-1deg)}.tiktok-tile img{display:block;width:100%;height:100%;object-fit:cover;object-position:top}.tiktok-tile span{position:absolute;right:5px;bottom:3px;color:#fff;font-size:.55rem;font-weight:800;text-shadow:0 1px 3px #000}.tiktok-phone{position:absolute;z-index:4;top:-36px;left:-18px;width:auto;height:350px;filter:drop-shadow(0 12px 12px rgba(0,0,0,.25))}.tiktok-copy h2{margin:0 0 .65rem;font-size:2.1rem;line-height:.94}.tiktok-copy>p:not(.eyebrow){margin-bottom:1rem;color:#383a3c;font-size:.72rem;line-height:1.55}.tiktok-copy .btn{font-size:.72rem}.tiktok-logo i{color:#050507;font-size:8rem;text-shadow:-7px -4px 0 #00eef1,7px 5px 0 var(--pink)}.paint{position:absolute;z-index:1;width:250px;pointer-events:none}.paint-left{left:calc(50% - 720px);top:8px;transform:rotate(-8deg)}.paint-right{right:calc(50% - 720px);top:10px;width:300px;transform:rotate(16deg) scaleX(-1)}

/* Testimonials and CTA */
.testimonials{z-index:1;overflow:hidden}.testimonials .section-pad{position:relative;z-index:2;padding-top:1.3rem;padding-bottom:1.1rem}.testimonials blockquote{position:relative;min-height:105px;margin:0;padding:15px 17px 12px 34px;border-radius:5px;background:#f8f8f8;color:#17191b;font-size:.61rem}.testimonials blockquote>i{position:absolute;left:12px;top:10px;color:var(--pink);font-size:1.5rem}.testimonials blockquote p{min-height:43px;margin:0 0 .5rem}.testimonials blockquote footer{font-size:.56rem}.testimonials blockquote span{float:right;color:var(--pink);font-size:.83rem;letter-spacing:2px}.alfonso-shadow{position:absolute;z-index:0;right:0;bottom:-42px;width:330px;height:330px;background:url(../img/alfonso-gray.png) top center/cover no-repeat;filter:grayscale(1);opacity:.2}.booking-strip{position:relative;isolation:isolate;display:flex;min-height:74px;align-items:center;gap:18px;margin-top:1.1rem;padding:10px 28px;background:linear-gradient(90deg,#e4005d,var(--pink) 60%,#ff0870)}.booking-strip:before{content:"";position:absolute;z-index:-1;inset:-12px -55px;background:url(../img/cta-brush.png) center/100% 100% no-repeat}.booking-icon{display:grid;flex:0 0 auto;width:52px;height:52px;place-items:center;border-radius:50%;background:#fff;color:var(--pink);font-size:1.6rem}.booking-copy small,.booking-copy strong{display:block;font-family:"Barlow Condensed",sans-serif;font-weight:800}.booking-copy small{font-size:.76rem}.booking-copy strong{font-size:1.72rem;line-height:1}.booking-strip .btn{min-width:210px;color:var(--pink);font-size:.76rem}

/* Footer */
.site-footer{background:#07090b;color:#d4d5d5}.footer-main{padding-top:1.35rem;padding-bottom:.8rem}.footer-brand{margin-bottom:.8rem}.site-footer p,.site-footer a,.site-footer span{color:#d4d5d5;font-size:.61rem}.site-footer h4{margin-bottom:.7rem;color:var(--pink);font-size:.75rem;font-weight:700}.site-footer .row>div>a,.site-footer .row>div>span{display:block;margin-bottom:6px}.site-footer .row>div>a i,.site-footer .row>div>span i{width:20px;color:#fff}.footer-links-second{padding-top:1.7rem}.socials{display:flex;gap:18px}.socials a i{font-size:1.3rem}.footer-bottom{display:flex;justify-content:space-between;gap:1rem;margin-top:.8rem;padding-top:.75rem;border-top:1px solid #303337}.footer-bottom a{margin-left:24px}

/* Modal */
.booking-modal{border:1px solid #34383d;background:#111418;color:#fff;box-shadow:0 20px 70px rgba(0,0,0,.7)}.booking-modal .form-label{font-size:.73rem;font-weight:700}.booking-modal .form-control,.booking-modal .form-select{border-color:#3c4249;background:#1d2126;color:#fff}.booking-success{padding:.7rem 1rem;border-left:3px solid var(--pink);background:rgba(245,0,99,.17)}

@media(max-width:1199.98px){.navbar-nav{gap:.9rem}.navbar .nav-link{font-size:.59rem}.nav-cta{margin-left:1rem;padding:.6rem .8rem}.hero{min-height:450px}.hero-inner>.row{min-height:390px}.hero-copy{padding-left:38px}.hero-copy h1{font-size:3.15rem}.hero-services{gap:10px}.tiktok-phone{height:330px}.tiktok-gallery{height:205px}.tiktok-logo i{font-size:6.5rem}}
@media(max-width:991.98px){.navbar{padding:10px 0}.navbar-collapse{margin-top:10px;padding:18px;border:1px solid #25282c;background:#0c0e11}.navbar-nav{gap:0}.nav-cta{margin:12px 0 0}.hero:after{display:none}.hero-inner>.row{min-height:0}.hero-visual{height:420px;background-position:center bottom}.hero-copy{padding:38px 12px 48px}.hero-services{max-width:none}.stat:nth-child(2):after{display:none}.characters .section-pad,.events .section-pad,.testimonials .section-pad{padding-top:2.5rem;padding-bottom:2.5rem}.character-intro{margin-bottom:1rem}.character-card{flex-basis:calc((100% - 26px)/3)}.tiktok{padding:1.5rem 0 2.25rem}.tiktok .row{min-height:0}.tiktok-media{max-width:620px;height:315px;margin:auto}.tiktok-gallery{height:225px}.tiktok-phone{top:-10px;height:330px}.tiktok-logo{display:none}.paint{opacity:.45}.testimonials blockquote{min-height:118px}.booking-strip{flex-wrap:wrap}.booking-strip .btn{margin-left:0!important}.site-footer{padding-top:1rem}.footer-links-second{padding-top:1.7rem}}
@media(max-width:767.98px){.hero-visual{height:355px}.hero-copy h1{font-size:2.85rem}.hero-services{grid-template-columns:repeat(2,1fr)}.hero-actions{flex-direction:column}.hero-actions .btn{width:100%}.stat{min-height:74px;gap:10px}.stat:nth-child(odd):after{display:block}.stat i{font-size:1.75rem}.stat strong{font-size:1.25rem}.stat small{font-size:.53rem}.character-card{flex-basis:calc((100% - 13px)/2)}.character-card img{height:165px}.slider-prev{left:-7px}.slider-next{right:-7px}.event-card>img{height:180px}.event-card p{min-height:0}.tiktok-media{height:275px}.tiktok-gallery{top:35px;height:190px}.tiktok-phone{top:-5px;left:-8px;height:300px}.tiktok-copy{text-align:center}.testimonials blockquote{min-height:0}.booking-strip{justify-content:center;text-align:center;padding:18px}.booking-copy{width:calc(100% - 75px);text-align:left}.booking-copy strong{font-size:1.42rem}.booking-strip .btn{width:100%}.footer-links-second{padding-top:0}.footer-bottom{flex-direction:column;text-align:center}.footer-bottom a{margin:0 8px}}
@media(max-width:430px){.hero-visual{height:305px}.hero-copy h1{font-size:2.45rem}.hero-services i{font-size:1.3rem}.character-card{flex-basis:100%}.character-card img{height:210px}.tiktok-media{height:235px}.tiktok-gallery{right:-10px;width:76%;height:160px}.tiktok-phone{height:245px}.paint{display:none}.booking-copy{width:100%;text-align:center}.booking-strip:before{inset:-10px -25px}.booking-icon{width:48px;height:48px}}

/* Soft edge for the decorative portrait; hidden on phones to prevent overlap. */
.alfonso-shadow{bottom:-28px;opacity:.18;-webkit-mask-image:radial-gradient(ellipse 58% 68% at 54% 48%,#000 42%,transparent 78%);mask-image:radial-gradient(ellipse 58% 68% at 54% 48%,#000 42%,transparent 78%)}
@media(max-width:767.98px){.alfonso-shadow{display:none}}

/* Larger desktop canvas and typography for wide screens. */
@media(min-width:1200px){
  body{font-size:15px}
  .navbar .nav-link{font-size:.72rem}
  .hero-copy h1{font-size:4rem}
  .hero-lead{font-size:1rem}
  .hero-services span{font-size:.66rem}
  .character-intro>p:not(.eyebrow),.tiktok-copy>p:not(.eyebrow){font-size:.79rem}
  .event-card p{font-size:.72rem}
  .testimonials blockquote{font-size:.68rem}
  .site-footer p,.site-footer a,.site-footer span{font-size:.68rem}
}

@media(min-width:1400px){
  body{font-size:16px}
  .brand{width:145px}.brand span{font-size:1.85rem}.brand strong{font-size:1.7rem}
  .navbar{padding-top:18px}.navbar-nav{gap:1.8rem}.navbar .nav-link{font-size:.78rem}.nav-cta{font-size:.9rem;padding:.82rem 1.35rem}
  .hero{min-height:640px}.hero-inner>.row{min-height:565px}.hero-copy{padding-left:76px}.hero-copy h1{font-size:4.7rem}.hero-lead{max-width:620px;font-size:1.08rem}.hero-services{max-width:690px}.hero-services span{font-size:.75rem}.hero-services i{font-size:1.9rem}.hero-actions .btn{min-width:240px;font-size:.9rem;padding:.85rem 1.4rem}
  .stat{min-height:102px}.stat i{font-size:2.9rem}.stat strong{font-size:1.9rem}.stat small{font-size:.73rem}
  .characters .section-pad{padding-top:1.8rem;padding-bottom:1.8rem}.character-intro h2{font-size:2.5rem}.character-intro>p:not(.eyebrow){font-size:.86rem}.character-intro .btn{font-size:.82rem}.character-card img{height:190px}.character-card h3{font-size:1.2rem}.character-card p{font-size:.72rem}
  .section-title h2{font-size:2.55rem}.eyebrow{font-size:.84rem}.events .section-pad{padding-top:2rem;padding-bottom:2.2rem}.event-card>img{height:165px}.event-body{padding:19px 21px 18px}.event-icon{top:-43px;width:50px;height:50px;font-size:1.45rem}.event-card h3{font-size:1.35rem}.event-card p{min-height:50px;font-size:.79rem}.event-card a{font-size:.8rem}
  .tiktok,.tiktok .row{min-height:355px}.tiktok-media{height:315px}.tiktok-gallery{top:30px;height:270px}.tiktok-phone{top:-48px;left:-28px;height:430px}.tiktok-copy h2{font-size:2.75rem}.tiktok-copy>p:not(.eyebrow){font-size:.88rem}.tiktok-copy .btn{font-size:.84rem}.tiktok-logo i{font-size:10rem}.paint-left{left:calc(50% - 860px)}.paint-right{right:calc(50% - 860px)}
  .testimonials .section-pad{padding-top:1.7rem;padding-bottom:1.5rem}.testimonials blockquote{min-height:128px;padding:19px 21px 15px 40px;font-size:.78rem}.testimonials blockquote p{min-height:53px}.testimonials blockquote footer{font-size:.67rem}.booking-strip{min-height:90px;margin-top:1.4rem;padding:13px 34px}.booking-icon{width:62px;height:62px;font-size:1.9rem}.booking-copy small{font-size:.9rem}.booking-copy strong{font-size:2.1rem}.booking-strip .btn{min-width:245px;font-size:.88rem;padding:.82rem 1.3rem}
  .footer-main{padding-top:1.8rem;padding-bottom:1rem}.site-footer p,.site-footer a,.site-footer span{font-size:.76rem}.site-footer h4{font-size:.88rem}.socials a i{font-size:1.55rem}
}

/* Deterministic TikTok mosaic: every image owns one fixed grid cell. */
.tiktok-media{isolation:isolate}
.tiktok-gallery{grid-template-areas:"empty tile1 tile2 tile3" "empty tile4 tile5 tile6";grid-auto-flow:unset}
.tiktok-tile,.tiktok-tile:nth-child(even){transform:none}
.tiktok-tile{color:#fff;text-decoration:none;transition:transform .18s ease,box-shadow .18s ease}
.tiktok-tile:hover,.tiktok-tile:focus-visible{z-index:2;transform:translateY(-3px);box-shadow:0 9px 20px rgba(0,0,0,.27)}
.tiktok-tile:nth-child(1){grid-area:tile1}
.tiktok-tile:nth-child(2){grid-area:tile2}
.tiktok-tile:nth-child(3){grid-area:tile3}
.tiktok-tile:nth-child(4){grid-area:tile4}
.tiktok-tile:nth-child(5){grid-area:tile5}
.tiktok-tile:nth-child(6){grid-area:tile6}

/* Final TikTok composition: the phone overlaps the individual tiles and crosses the section edge. */
.tiktok-gallery{width:76%}
@media(min-width:1400px){.tiktok-phone{top:-28px}}

/* The paint belongs to the TikTok mark instead of floating beside it. */
.tiktok-logo{position:relative;isolation:isolate}
.tiktok-logo:before{content:"";position:absolute;z-index:1;left:50%;top:50%;width:300px;height:300px;background:url(../img/paint-logo-hd.png) center/contain no-repeat;transform:translate(-50%,-50%) rotate(-8deg);pointer-events:none}
.tiktok-logo i{position:relative;z-index:2;display:inline-block}
@media(min-width:1400px){.tiktok-logo:before{width:350px;height:350px}}

/* Two independent phone layers: replace the display without touching the hardware. */
.tiktok-device{position:absolute;z-index:4;top:-36px;left:-18px;width:259px;height:350px;filter:drop-shadow(0 12px 12px rgba(0,0,0,.25))}
.tiktok-device img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain}
.tiktok-screen{z-index:1}.tiktok-frame{z-index:2;pointer-events:none}
@media(max-width:1199.98px){.tiktok-device{width:244px;height:330px}}
@media(max-width:991.98px){.tiktok-device{top:-10px}}
@media(max-width:767.98px){.tiktok-device{top:-5px;left:-8px;width:222px;height:300px}}
@media(max-width:430px){.tiktok-device{width:181px;height:245px}}
@media(min-width:1400px){.tiktok-device{top:-28px;left:-28px;width:318px;height:430px}}

/* CTA uses the transparent brush artwork itself, without a rectangular fill behind it. */
.booking-strip{background:transparent}
.booking-strip:before{inset:-4px -45px;background-size:100% 100%}
@media(min-width:1400px){.booking-strip{min-height:82px;padding-top:10px;padding-bottom:10px}}
@media(max-width:767.98px){.booking-strip:before{inset:-4px -18px}}
@media(min-width:992px){.booking-strip .btn{margin-right:32px}}

/* Keep all event cards and their internal spacing perfectly aligned. */
.events .row{align-items:stretch}
.events .row>[class*="col-"]{display:flex}
.event-card{display:flex;width:100%;flex-direction:column}
.event-card>img{flex:0 0 auto}
.event-body{display:flex;flex:1 1 auto;flex-direction:column}
.event-card p{flex:1 1 auto}
.event-card a{align-self:flex-start;margin-top:auto}

/* Give the event section the taller, more generous proportions of the reference. */
@media(min-width:992px){
  .events .section-pad{padding-top:3rem;padding-bottom:3.25rem}
  .event-card>img{height:155px}
  .event-body{min-height:145px;padding-top:20px;padding-bottom:20px}
}
@media(min-width:1400px){
  .events .section-pad{padding-top:3.4rem;padding-bottom:3.6rem}
  .event-card>img{height:195px}
  .event-body{min-height:165px;padding-top:24px;padding-bottom:24px}
}

/* Polished footer with a clear four-column hierarchy. */
.navbar a[href="/#angebote"]{display:none!important}
.hero .navbar .brand img{width:100%;max-height:76px;object-fit:contain}
.site-footer:not(.alfonso-global-footer){display:none!important}
.site-footer{position:relative;border-top:1px solid rgba(255,255,255,.07);background:linear-gradient(180deg,#080a0c 0%,#050709 100%)}
.footer-main{padding-top:3rem;padding-bottom:1.4rem}
.footer-grid{align-items:flex-start}
.footer-brand{margin-bottom:1.15rem}
.footer-about p{max-width:310px;margin:0;color:#aeb2b6;line-height:1.65}
.site-footer h4{position:relative;margin:0 0 1.25rem;padding-bottom:.7rem;color:#fff;font-family:"Barlow Condensed",Arial,sans-serif;font-size:1.05rem;font-weight:900;letter-spacing:.4px;text-transform:uppercase}
.site-footer h4:after{content:"";position:absolute;left:0;bottom:0;width:30px;height:2px;background:var(--pink)}
.site-footer p,.site-footer a,.site-footer span{font-size:.78rem}
.site-footer a{transition:color .2s ease,transform .2s ease}
.site-footer a:hover{color:var(--pink)}
.footer-nav-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1.6rem;row-gap:.7rem}
.site-footer .footer-nav-grid a{display:block;margin:0;color:#c7c9cb}
.footer-contact .footer-accordion-panel>a,.footer-contact .footer-accordion-panel>.contact-row{display:flex!important;align-items:center;gap:.7rem;margin:0 0 .8rem!important;color:#c7c9cb}
.footer-contact .footer-accordion-panel>a>i,.footer-contact .footer-accordion-panel>.contact-row>i{display:grid;flex:0 0 30px;width:30px!important;height:30px;place-items:center;border:1px solid rgba(245,0,99,.4);border-radius:50%;color:var(--pink)!important}
.footer-contact a span,.footer-contact .contact-row span{font-size:inherit}
.socials{gap:.65rem}
.socials a{display:grid!important;width:38px;height:38px;margin:0!important;place-items:center;border:1px solid #34383d;border-radius:50%;background:#111418;color:#fff}
.socials a:hover{border-color:var(--pink);background:var(--pink);color:#fff;transform:translateY(-2px)}
.socials a i{font-size:1.05rem}
.footer-accordion-toggle{all:unset;display:block;color:inherit;font:inherit;text-transform:inherit}
.footer-accordion-toggle>i,.footer-accordion-toggle .svg-inline--fa{display:none}
.footer-accordion-panel{max-height:none;opacity:1}
.footer-bottom{align-items:center;margin-top:2rem;padding-top:1.15rem;border-top-color:#272b2f}
.footer-bottom>span{color:#8f9499}
.footer-bottom>div{display:flex;gap:1.8rem}
.footer-bottom a{margin:0;color:#aeb2b6}
@media(min-width:1400px){
  .footer-main{padding-top:3.5rem;padding-bottom:1.6rem}
  .site-footer p,.site-footer a,.site-footer span{font-size:.84rem}
  .site-footer h4{font-size:1.15rem}
}
@media(max-width:991.98px){
  .footer-main{padding-top:2.5rem}
  .footer-social{margin-top:.25rem}
}
@media(max-width:575.98px){
  .footer-nav-grid{column-gap:1rem}
  .footer-bottom>div{gap:1rem}
}

/* Full-bleed 50/50 hero: stage image starts at the viewport edge and behind the nav. */
@media(min-width:992px){
  .hero-inner{margin-top:-67px}
  .hero-inner>.row{min-height:520px;margin-right:0;margin-left:0}
  .hero-visual,.hero-copy{width:50%}
  .hero-visual{background-position:center center}
  .hero-copy{padding:108px max(32px,calc((100vw - 1320px)/2)) 52px clamp(42px,4vw,82px)}
  .hero:after{z-index:1;right:-20px;top:20px;width:360px;height:330px}
  .navbar .nav-link{text-shadow:0 1px 3px rgba(0,0,0,.9)}
}
@media(min-width:1400px){
  .hero-inner>.row{min-height:640px}
  .hero-copy{padding-top:125px}
  .hero:after{right:10px;top:10px;width:410px;height:370px}
}

/* High-resolution layered hero: stage, performer and paint stay independently sharp. */
.hero-visual{position:relative;overflow:hidden;background-image:url(../img/hero-stage-v3.png);background-position:center;background-size:cover;background-repeat:no-repeat}
.hero-person{position:absolute;inset:0;z-index:1;display:block;width:100%;height:100%;object-fit:contain;object-position:center bottom;pointer-events:none;filter:drop-shadow(0 16px 18px rgba(0,0,0,.32))}
@media(min-width:992px){
  .hero-person{top:0;bottom:auto;height:132%;object-position:center top}
  .hero:after{right:-75px;top:38px;width:330px;height:330px;background-image:url(../img/paint-logo-hd.png);opacity:.78;transform:rotate(-10deg)}
}
@media(min-width:1400px){
  .hero:after{right:-90px;top:45px;width:390px;height:390px}
}
@media(max-width:991.98px){
  .hero-person{object-position:center}
}

/* The desktop navigation floats over the hero so the stage starts at the first pixel. */
@media(min-width:992px){
  .hero .navbar{inset:0 0 auto;width:100%}
  .hero-inner{margin-top:0}
}

/* Keep the navigation available while the visitor moves through the page. */
.hero .navbar{position:fixed;z-index:1030;top:0;right:0;left:0;width:100%;transition:background-color .22s ease,box-shadow .22s ease,backdrop-filter .22s ease}
.hero .navbar.is-scrolled{background:rgba(5,7,9,.94);box-shadow:0 8px 24px rgba(0,0,0,.28);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
@media(max-width:991.98px){
  header[id],main section[id]{scroll-margin-top:78px}
  .hero .navbar{background:rgba(5,7,9,.9);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
}

/* Larger desktop character cards: four strong previews instead of five small ones. */
@media(min-width:1200px){
  .characters .section-pad{padding-top:2.4rem;padding-bottom:2.4rem}
  .character-card{flex-basis:calc((100% - 39px)/4)}
  .character-card img{height:225px}
  .character-card h3{min-height:39px;margin-top:11px;font-size:1.3rem}
  .character-card p{min-height:38px;margin:2px 10px 12px;font-size:.76rem}
  .slider-arrow{width:44px;height:44px;font-size:1.1rem}
}
@media(min-width:1400px){
  .character-card img{height:250px}
  .character-card h3{font-size:1.42rem}
  .character-card p{font-size:.82rem}
}

/* Clear, high-contrast character CTA. */
.character-intro .btn{
  display:inline-flex;
  min-height:50px;
  align-items:center;
  justify-content:center;
  gap:.75rem;
  padding:.9rem 1.4rem;
  border:2px solid var(--pink);
  background:#df0759;
  color:#fff;
  font-size:.92rem;
  font-weight:900;
  letter-spacing:.45px;
  line-height:1;
  text-shadow:0 1px 1px rgba(0,0,0,.22);
  box-shadow:0 7px 18px rgba(223,7,89,.22);
}
.character-intro .btn:hover,.character-intro .btn:focus-visible{background:#f50063;border-color:#ff4a91;color:#fff;transform:translateY(-1px)}
.character-intro .btn i{font-size:1rem}
@media(min-width:1400px){.character-intro .btn{min-height:54px;padding:1rem 1.65rem;font-size:1rem}}

/* Font Awesome SVG compatibility and consistent icon sizing. */
.hero-services .svg-inline--fa{flex:0 0 auto;color:var(--pink);font-size:1.55rem}
.stat .svg-inline--fa{flex:0 0 auto;color:var(--pink);font-size:2.45rem}
.tiktok-logo .svg-inline--fa{position:relative;z-index:2;display:inline-block;color:#050507;font-size:8rem;filter:drop-shadow(-7px -4px 0 #00eef1) drop-shadow(7px 5px 0 var(--pink))}
.testimonials blockquote>.svg-inline--fa{position:absolute;left:12px;top:10px;color:var(--pink);font-size:1.5rem}
.site-footer .row>div>a .svg-inline--fa,.site-footer .row>div>span .svg-inline--fa{color:#fff}
.footer-contact .footer-accordion-panel>a>.svg-inline--fa,.footer-contact .footer-accordion-panel>.contact-row>.svg-inline--fa{display:grid;flex:0 0 30px;width:30px!important;height:30px;padding:8px;border:1px solid rgba(245,0,99,.4);border-radius:50%;color:var(--pink)!important}
.socials a .svg-inline--fa{font-size:1.05rem}
.character-intro .btn .svg-inline--fa{font-size:1rem}
@media(max-width:1199.98px){.tiktok-logo .svg-inline--fa{font-size:6.5rem}}
@media(max-width:767.98px){.stat .svg-inline--fa{font-size:1.75rem}}
@media(max-width:430px){.hero-services .svg-inline--fa{font-size:1.3rem}}
@media(min-width:1400px){
  .hero-services .svg-inline--fa{font-size:1.9rem}
  .stat .svg-inline--fa{font-size:2.9rem}
  .tiktok-logo .svg-inline--fa{font-size:10rem}
  .socials a .svg-inline--fa{font-size:1.15rem}
}

/* Keep the supplied full-body character portraits visible and consistent. */
.character-card img{
  object-fit:contain;
  object-position:center bottom;
  padding:8px 8px 0;
  background:
    radial-gradient(circle at 50% 48%,rgba(229,42,103,.13),transparent 44%),
    linear-gradient(145deg,#fff 0%,#f6f1f3 100%);
  filter:drop-shadow(0 9px 7px rgba(18,20,22,.16));
}

/* Stronger hierarchy for character names and subtitles. */
.character-card{
  background:linear-gradient(180deg,#fff 70%,#fdf7fa 100%);
}
.character-card h3{
  position:relative;
  min-height:73px;
  margin:0;
  padding:27px 10px 7px;
  color:#101216;
  font-size:1.42rem;
  line-height:.86;
  letter-spacing:.35px;
}
.character-card h3::before{
  content:"CHARAKTER";
  position:absolute;
  top:-10px;
  left:50%;
  padding:4px 10px 3px;
  transform:translateX(-50%);
  border-radius:999px;
  background:var(--pink);
  color:#fff;
  font-family:Inter,sans-serif;
  font-size:.48rem;
  font-weight:800;
  line-height:1;
  letter-spacing:1.2px;
  box-shadow:0 4px 10px rgba(229,42,103,.24);
}
.character-card h3::after{
  content:"";
  display:block;
  width:28px;
  height:3px;
  margin:7px auto 0;
  border-radius:3px;
  background:var(--pink);
}
.character-card p{
  display:flex;
  min-height:49px;
  margin:0;
  padding:0 13px 14px;
  align-items:flex-start;
  justify-content:center;
  color:#4c4f55;
  font-size:.76rem;
  font-weight:500;
  line-height:1.35;
}
@media(max-width:767.98px){
  .character-card h3{min-height:68px;padding-top:27px;font-size:1.25rem}
  .character-card p{min-height:45px;font-size:.72rem}
}

/* One consistent subpage hero frame on phones and tablets. */
@media(max-width:991.98px){
  .video-page-header,
  .characters-page-header,
  .about-page-header,
  .dates-page-header,
  .alfonso-blog-header:not(.is-article){
    height:680px!important;
    min-height:680px!important;
    max-height:680px!important;
  }
  .video-hero,
  .characters-hero,
  .about-hero,
  .dates-hero,
  .alfonso-blog-masthead{
    height:598px!important;
    min-height:598px!important;
    max-height:598px!important;
    justify-content:center!important;
  }
  .alfonso-blog-header.is-article{
    height:82px!important;
    min-height:82px!important;
    max-height:82px!important;
  }
  body .alfonso-blog-shell .cms-blog-article-header{
    height:598px!important;
    min-height:598px!important;
    max-height:598px!important;
  }
  .video-hero-cast,
  .characters-hero-stage,
  .characters-hero-number,
  .about-hero-visual,
  .about-hero-word,
  .dates-hero-cast,
  .alfonso-blog-masthead-visual,
  .alfonso-error-visual{
    display:none!important;
  }
}

/* Celebration motion in the testimonials area. */
.celebration{position:absolute;z-index:1;inset:0;overflow:hidden;pointer-events:none}
.balloon{position:absolute;bottom:-105px;color:var(--balloon-color);font-size:3.35rem;filter:drop-shadow(0 9px 7px rgba(0,0,0,.34));opacity:0;transform-origin:50% 100%;animation:balloon-rise var(--duration) cubic-bezier(.22,.61,.36,1) infinite;animation-delay:var(--delay);animation-play-state:paused}
.balloon-1{--balloon-color:#f50063;--duration:9.5s;--delay:-1s;left:2%}
.balloon-2{--balloon-color:#00d9df;--duration:11s;--delay:-6.1s;left:92%;font-size:2.8rem}
.balloon-3{--balloon-color:#ffc928;--duration:10.2s;--delay:-3.7s;left:11%;font-size:2.35rem}
.balloon-4{--balloon-color:#8d5cff;--duration:12s;--delay:-8.4s;left:82%;font-size:2.2rem}
.balloon-5{--balloon-color:#ff7438;--duration:10.8s;--delay:-5.2s;left:48%;font-size:2rem}
.confetti{position:absolute;top:-18px;display:block;width:8px;height:15px;border-radius:2px;background:var(--confetti-color);opacity:0;animation:confetti-fall var(--duration) linear infinite;animation-delay:var(--delay);animation-play-state:paused}
.c1{--confetti-color:#f50063;--duration:4.7s;--delay:-.3s;left:4%}.c2{--confetti-color:#00d9df;--duration:5.8s;--delay:-3.1s;left:12%}.c3{--confetti-color:#ffc928;--duration:5.2s;--delay:-1.7s;left:21%}.c4{--confetti-color:#fff;--duration:6.2s;--delay:-4.4s;left:31%}.c5{--confetti-color:#f50063;--duration:5.4s;--delay:-2.5s;left:40%}.c6{--confetti-color:#00d9df;--duration:6.5s;--delay:-.8s;left:49%}.c7{--confetti-color:#ffc928;--duration:4.9s;--delay:-3.7s;left:58%}.c8{--confetti-color:#fff;--duration:5.9s;--delay:-1.2s;left:66%}.c9{--confetti-color:#f50063;--duration:5.1s;--delay:-4.8s;left:74%}.c10{--confetti-color:#00d9df;--duration:6.1s;--delay:-2.1s;left:82%}.c11{--confetti-color:#ffc928;--duration:5.5s;--delay:-.5s;left:91%}.c12{--confetti-color:#fff;--duration:6.4s;--delay:-3.4s;left:96%}.c13{--confetti-color:#8d5cff;--duration:5.7s;--delay:-4s;left:8%;transform:scale(.7)}.c14{--confetti-color:#ff7438;--duration:4.8s;--delay:-2.8s;left:26%}.c15{--confetti-color:#8d5cff;--duration:6.3s;--delay:-1.5s;left:45%;transform:scale(.7)}.c16{--confetti-color:#ff7438;--duration:5.6s;--delay:-4.7s;left:63%}.c17{--confetti-color:#8d5cff;--duration:5s;--delay:-2s;left:78%;transform:scale(.7)}.c18{--confetti-color:#ff7438;--duration:6s;--delay:-3.2s;left:88%}
.testimonials.is-celebrating .balloon,.testimonials.is-celebrating .confetti{animation-play-state:running}
@keyframes balloon-rise{0%{opacity:0;transform:translate3d(0,0,0) rotate(-8deg) scale(.82)}12%{opacity:.92}38%{transform:translate3d(20px,-170px,0) rotate(7deg) scale(1)}68%{transform:translate3d(-13px,-335px,0) rotate(-5deg) scale(1.03)}88%{opacity:.78}100%{opacity:0;transform:translate3d(12px,-540px,0) rotate(6deg) scale(.96)}}
@keyframes confetti-fall{0%{opacity:0;transform:translate3d(0,-20px,0) rotate(0deg)}8%{opacity:.9}55%{transform:translate3d(22px,210px,0) rotate(390deg)}92%{opacity:.75}100%{opacity:0;transform:translate3d(-15px,430px,0) rotate(760deg)}}
@media(max-width:767.98px){.balloon-3,.balloon-5{display:none}.balloon{font-size:2.55rem}.confetti{width:6px;height:11px}}

/* Clearer header navigation with a larger, playful brand mark. */
.navbar .brand{width:175px;transform:none}
.navbar .brand img{display:block;width:100%;height:auto;transform-origin:50% 72%;animation:logo-wiggle 5.8s ease-in-out infinite;will-change:transform}
.navbar .nav-link{font-size:.75rem;letter-spacing:.18px}
.navbar-nav{gap:1.6rem}
@keyframes logo-wiggle{0%,68%,100%{transform:rotate(0deg) translateY(0)}73%{transform:rotate(-3.5deg) translateY(-1px)}78%{transform:rotate(3deg) translateY(0)}83%{transform:rotate(-2deg) translateY(-1px)}88%{transform:rotate(1.2deg) translateY(0)}93%{transform:rotate(0deg) translateY(0)}}
@media(min-width:992px){.navbar .brand{width:215px}.navbar .nav-link{font-size:.78rem}.navbar-nav{gap:1.8rem}.nav-cta{margin-left:1.65rem}}
@media(min-width:992px) and (max-width:1199.98px){.navbar .brand{width:190px}.navbar .nav-link{font-size:.7rem}.navbar-nav{gap:1.05rem}.nav-cta{margin-left:1rem}}
@media(min-width:1400px){.navbar .brand{width:255px}.navbar .nav-link{font-size:.84rem}.navbar-nav{gap:2.1rem}}

/* One continuous hero stage: image, navigation and copy share a single composition. */
@media(min-width:992px){
  .hero-inner>.row{position:relative}
  .hero-visual{z-index:0;flex:0 0 55%;width:55%;overflow:visible}
  .hero-copy{position:relative;z-index:2;flex:0 0 52%;width:52%;margin-left:-7%;padding-left:clamp(92px,6.2vw,150px);background:linear-gradient(90deg,rgba(4,5,7,0) 0%,rgba(4,5,7,.72) 13%,rgba(4,5,7,.96) 27%,#040507 43%)}
  .hero-person{width:102%;max-width:none;object-position:52% top}
  .hero .navbar .container{position:relative;z-index:5}
  .hero .navbar-collapse{align-self:flex-start}
}
@media(min-width:1400px){
  .hero-copy{padding-left:clamp(118px,7vw,178px);background:linear-gradient(90deg,rgba(4,5,7,0) 0%,rgba(4,5,7,.66) 12%,rgba(4,5,7,.95) 28%,#040507 44%)}
  .hero-person{width:104%;object-position:54% top}
}
@media(min-width:1200px){.hero .navbar-collapse{transform:translateX(clamp(30px,2.4vw,48px))}}

/* Stronger desktop type scale and a wider two-line hero statement. */
@media(min-width:992px){
  .navbar .nav-link{font-size:.88rem}
  .hero-copy h1 .hero-line{display:block;white-space:nowrap}
  .hero-copy h1 .hero-line em{display:inline;margin-left:.08em}
}
@media(min-width:992px) and (max-width:1199.98px){.navbar .nav-link{font-size:.82rem}}
@media(min-width:1200px){.navbar-nav{gap:1.55rem}.hero-copy h1{font-size:3.8rem;letter-spacing:-1.35px}}
@media(min-width:1400px){.navbar .nav-link{font-size:1rem}.navbar-nav{gap:1.7rem}.hero-copy h1{font-size:4.55rem;letter-spacing:-1.8px}}

/* Give the hero copy more horizontal room without compressing the title. */
@media(min-width:992px){
  .hero-visual{flex-basis:57%;width:57%}
  .hero-copy{flex-basis:57%;width:57%;margin-left:-14%;padding-left:clamp(64px,5vw,112px);background:linear-gradient(90deg,rgba(4,5,7,0) 0%,rgba(4,5,7,.62) 11%,rgba(4,5,7,.94) 25%,#040507 39%)}
  .hero-copy h1{max-width:720px}
  .hero-lead{max-width:680px}
  .hero-services{max-width:720px}
}
@media(min-width:1200px){
  .hero .navbar-collapse{transform:translateX(calc(clamp(34px,3.2vw,66px) * -1))}
  .hero-copy h1{font-size:4rem;letter-spacing:-1.35px}
}
@media(min-width:1400px){
  .hero-copy{padding-left:clamp(78px,4.8vw,110px);background:linear-gradient(90deg,rgba(4,5,7,0) 0%,rgba(4,5,7,.58) 10%,rgba(4,5,7,.94) 24%,#040507 39%)}
  .hero-copy h1{font-size:4.75rem;letter-spacing:-1.8px}
}

/* Matching hero CTAs: calm, equal surfaces that do not compete with the stage artwork. */
.hero-actions{gap:2.25rem}
.hero-actions .btn{
  display:inline-flex;
  min-width:250px;
  min-height:54px;
  align-items:center;
  justify-content:center;
  gap:.55rem;
  padding:.8rem 1.55rem;
  border:2px solid transparent;
  border-radius:3px;
  font-size:.86rem;
  line-height:1;
  transition:transform .2s ease,background-color .2s ease,border-color .2s ease,color .2s ease;
}
.hero-actions .btn-brush{background:var(--pink);box-shadow:0 10px 24px rgba(245,0,99,.28)}
.hero-actions .btn-brush:before{display:none}
.hero-actions .btn-outline-light{border-color:rgba(255,255,255,.82);background:rgba(6,8,10,.58);color:#fff}
.hero-actions .btn:hover,.hero-actions .btn:focus-visible{transform:translateY(-3px);color:#fff}
.hero-actions .btn-brush:hover,.hero-actions .btn-brush:focus-visible{background:#d90058}
.hero-actions .btn-outline-light:hover,.hero-actions .btn-outline-light:focus-visible{border-color:var(--pink);background:rgba(245,0,99,.18)}
@media(min-width:1400px){.hero-actions{gap:2.75rem}.hero-actions .btn{min-width:275px;min-height:58px;font-size:.94rem}}
@media(max-width:767.98px){.hero-actions{gap:1rem}.hero-actions .btn{min-width:0;min-height:52px}}

/* A few subtle interactions keep the stage lively without distracting from Alfonso. */
.hero-visual:after{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(112deg,transparent 28%,rgba(255,255,255,.1) 47%,transparent 64%);transform:translateX(-135%);animation:stage-light-sweep 10s ease-in-out infinite;pointer-events:none}
.hero-services span{transition:color .2s ease,transform .2s ease}
.hero-services span:hover{color:#fff;transform:translateX(4px)}
.hero-services span i{transition:transform .25s ease,filter .25s ease}
.hero-services span:hover i{filter:drop-shadow(0 0 8px rgba(245,0,99,.7));transform:scale(1.14) rotate(-5deg)}
.hero-actions .btn-brush:hover,.hero-actions .btn-brush:focus-visible{box-shadow:0 14px 28px rgba(245,0,99,.42)}
.character-card{transition:transform .25s ease,box-shadow .25s ease}
.character-card:hover{box-shadow:0 14px 28px rgba(0,0,0,.2);transform:translateY(-7px) rotate(1deg)}
.character-card:nth-child(even):hover{transform:translateY(-7px) rotate(-.7deg)}
.event-card{transition:transform .25s ease,box-shadow .25s ease}
.event-card>img{transition:transform .45s ease}
.event-card:hover{box-shadow:0 16px 32px rgba(0,0,0,.42);transform:translateY(-6px)}
.event-card:hover>img{transform:scale(1.045)}
.socials a{transition:color .2s ease,transform .2s ease,border-color .2s ease,background-color .2s ease,box-shadow .2s ease}
.socials a:hover{box-shadow:0 8px 16px rgba(245,0,99,.25)}
@keyframes stage-light-sweep{0%,50%{transform:translateX(-135%)}68%,100%{transform:translateX(135%)}}
@media(prefers-reduced-motion:reduce){
  .hero-visual:after{animation:none}
  .hero-services span,.hero-services span i,.hero-actions .btn,.character-card,.event-card,.event-card>img,.socials a{transition:none}
}

/* Pepe gets a quiet, stage-like presence: a breathing spotlight and a gentle sway. */
.hero-visual:before{content:"";position:absolute;z-index:0;left:50%;bottom:4%;width:68%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(245,0,99,.28) 0,rgba(121,52,162,.16) 37%,transparent 70%);filter:blur(16px);transform:translateX(-50%) scale(.9);animation:pepe-spotlight 5.8s ease-in-out infinite;pointer-events:none}
.hero-person{transform-origin:50% 100%;animation:pepe-sway 6.8s ease-in-out infinite;will-change:transform}
.hero-visual:hover .hero-person{animation-duration:3.8s}
@keyframes pepe-sway{0%,100%{transform:translate3d(0,0,0) rotate(0deg) scale(1)}32%{transform:translate3d(-5px,-5px,0) rotate(-.45deg) scale(1.008)}67%{transform:translate3d(5px,-1px,0) rotate(.35deg) scale(1.003)}}
@keyframes pepe-spotlight{0%,100%{opacity:.48;transform:translateX(-50%) scale(.9)}50%{opacity:.9;transform:translateX(-50%) scale(1.08)}}
@media(prefers-reduced-motion:reduce){.hero-visual:before,.hero-person{animation:none}}

/* Responsive rebuild: one readable, composed experience from phone to tablet. */
.slider-counter{display:none}

@media(max-width:991.98px){
  body{font-size:16px}
  header[id],main section[id]{scroll-margin-top:82px}
  .hero .navbar{min-height:78px;padding:.55rem 0;border-bottom:1px solid rgba(255,255,255,.08)}
  .navbar .brand{width:168px}
  .navbar-toggler{width:48px;height:48px;padding:.55rem;border-radius:50%;background:rgba(255,255,255,.06)}
  .navbar-collapse{max-height:calc(100vh - 94px);overflow-y:auto;margin-top:.55rem;padding:1rem 1.1rem 1.2rem;border-color:rgba(255,255,255,.1);border-radius:0 0 12px 12px;background:rgba(7,9,11,.98)}
  .navbar .nav-link{padding:.72rem .15rem!important;font-size:1rem;letter-spacing:.01em}
  .navbar .nav-link.active:after{right:auto;width:34px}
  .nav-cta{width:100%;min-height:48px;margin-top:.75rem;font-size:1rem}

  .hero{min-height:0;padding-top:78px}
  .hero-visual{height:clamp(360px,52vw,500px);background-position:center 58%}
  .hero-person{height:108%;object-position:center bottom}
  .hero-copy{position:relative;padding:clamp(2.4rem,6vw,3.5rem) max(1.25rem,calc((100vw - 720px)/2)) 3.5rem;background:radial-gradient(circle at 85% 8%,rgba(245,0,99,.13),transparent 34%),#040507}
  .hero-copy:before{content:"";position:absolute;top:0;right:1.25rem;left:1.25rem;height:1px;background:linear-gradient(90deg,transparent,var(--pink),transparent)}
  .hero-copy h1{max-width:640px;margin-bottom:1.25rem;font-size:clamp(3rem,8vw,4.35rem);line-height:.86;letter-spacing:-.035em}
  .hero-lead{max-width:680px;margin-bottom:1.6rem;font-size:1rem;line-height:1.65;color:#e7e8ea}
  .hero-services{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;margin-bottom:1.75rem}
  .hero-services span{min-height:64px;padding:.75rem;border:1px solid rgba(255,255,255,.08);border-radius:6px;background:rgba(255,255,255,.035);font-size:.82rem;line-height:1.35}
  .hero-services .svg-inline--fa{font-size:1.45rem}
  .hero-actions{max-width:680px;gap:.8rem}
  .hero-actions .btn{min-width:0;min-height:52px;font-size:.92rem}

  .stats-bar{padding:.55rem 0}
  .stat{min-height:96px;justify-content:flex-start;padding:1rem clamp(.65rem,3vw,1.25rem);gap:.75rem}
  .stat:nth-child(odd):after{display:block;height:55px;background:#3b3f43}
  .stat strong{font-size:1.65rem}
  .stat small{font-size:.75rem;line-height:1.35}
  .stat .svg-inline--fa{width:32px;font-size:1.75rem}

  .section-pad{padding-top:3.75rem;padding-bottom:3.75rem}
  .section-title{max-width:700px;margin:0 auto 1.75rem}
  .section-title h2,.character-intro h2,.tiktok-copy h2{font-size:clamp(2.35rem,6vw,3.25rem);line-height:.95}
  .eyebrow{font-size:.8rem;letter-spacing:.035em}
  .characters .section-pad,.events .section-pad,.testimonials .section-pad{padding-top:3.75rem;padding-bottom:3.75rem}
  .character-intro{margin-bottom:1.5rem;text-align:center}
  .character-intro>p:not(.eyebrow){max-width:600px;margin-right:auto;margin-left:auto;font-size:1rem;line-height:1.6}
  .character-intro .btn{min-height:50px;font-size:.9rem}
  .character-card h3{min-height:0;margin:.9rem .75rem .35rem;font-size:1.3rem;line-height:1}
  .character-card p{min-height:0;margin:0 .75rem 1rem;font-size:.85rem;line-height:1.45}
  .slider-arrow{top:43%;width:44px;height:44px}
  .slider-counter{display:block;margin-top:.85rem;color:#74777b;font-size:.85rem;font-weight:700;text-align:center}
  .slider-dots{display:none}

  .event-card>img{height:clamp(180px,31vw,260px)}
  .event-body{padding:1.4rem 1.35rem 1.35rem}
  .event-icon{top:-30px;width:48px;height:48px}
  .event-card h3{margin-bottom:.55rem;font-size:1.45rem}
  .event-card p{min-height:0;margin-bottom:.8rem;font-size:.92rem;line-height:1.55}
  .event-card a{font-size:.86rem}

  .tiktok{padding:2.75rem 0 3.75rem}
  .tiktok-media{height:clamp(285px,45vw,340px)}
  .tiktok-copy{max-width:650px;margin:auto;text-align:center}
  .tiktok-copy>p:not(.eyebrow){font-size:1rem;line-height:1.6}
  .tiktok-copy .btn{min-height:50px;padding-right:1.5rem;padding-left:1.5rem;font-size:.92rem}

  .testimonials blockquote{min-height:0;padding:1.35rem 1.25rem 1.15rem 3rem;font-size:.95rem;line-height:1.55}
  .testimonials blockquote>i{left:1rem;top:1.15rem}
  .testimonials blockquote p{min-height:0;margin-bottom:1rem}
  .testimonials blockquote footer{font-size:.82rem}
  .booking-strip{margin-top:1.75rem;padding:1.25rem}
  .booking-copy small{font-size:.83rem}
  .booking-copy strong{font-size:1.65rem;line-height:1.05}
  .booking-strip .btn{min-height:50px;font-size:.9rem}

  .footer-main{padding-top:3rem;padding-bottom:1.5rem}
  .site-footer p,.site-footer a,.site-footer span{font-size:.9rem}
  .site-footer h4{margin-bottom:1rem;font-size:1rem}
  .footer-about p{font-size:.95rem}
  .footer-nav-grid{row-gap:.85rem}
  .site-footer .row>div>a,.site-footer .row>div>span{margin-bottom:.7rem}
  .footer-bottom{margin-top:1.5rem;padding-top:1.25rem}
}

@media(max-width:767.98px){
  .hero-visual{height:390px}
  .hero-copy{padding-right:1.25rem;padding-left:1.25rem}
  .hero-copy h1{font-size:clamp(3rem,12.5vw,4rem)}
  .hero-actions{flex-direction:column}
  .hero-actions .btn{width:100%}
  .character-card{flex-basis:calc((100% - 13px)/2)}
  .character-card img{height:210px}
  .event-card>img{height:220px}
  .booking-strip{gap:.9rem}
}

@media(max-width:575.98px){
  .hero .navbar{min-height:72px}
  .navbar .brand{width:145px}
  .hero{padding-top:72px}
  .hero-visual{height:330px;background-position:center 60%}
  .hero-person{width:108%;height:108%;margin-left:-4%}
  .hero-copy{padding-top:2.35rem;padding-bottom:3rem}
  .hero-copy h1{font-size:clamp(2.85rem,13vw,3.65rem)}
  .hero-services span{min-height:68px;padding:.7rem .6rem;font-size:.76rem}
  .hero-services .svg-inline--fa{font-size:1.35rem}

  .stats-bar{padding:.35rem 0}
  .stat{min-height:91px;padding:.85rem .6rem;gap:.55rem}
  .stat:nth-child(-n+2){border-bottom:1px solid #303337}
  .stat strong{font-size:1.45rem}
  .stat small{font-size:.69rem}
  .stat .svg-inline--fa{width:27px;font-size:1.55rem}

  .section-pad,.characters .section-pad,.events .section-pad,.testimonials .section-pad{padding-top:3.25rem;padding-bottom:3.25rem}
  .section-title h2,.character-intro h2,.tiktok-copy h2{font-size:2.45rem}
  .character-intro{text-align:left}
  .character-intro .btn{width:100%}
  .character-card{flex-basis:100%}
  .character-card img{height:250px}
  .slider-prev{left:-5px}.slider-next{right:-5px}

  .events .row{--bs-gutter-y:1.25rem}
  .event-card>img{height:205px}
  .event-body{padding:1.3rem 1.15rem 1.25rem}
  .event-card h3{font-size:1.4rem}

  .tiktok{padding-top:2.25rem;padding-bottom:3.25rem}
  .tiktok-media{height:270px}
  .tiktok-gallery{top:28px;right:-6px;width:77%;height:185px;gap:5px}
  .tiktok-device{top:0;left:-5px;width:195px;height:264px}
  .tiktok-copy{padding:0 .35rem}

  .testimonials .row{--bs-gutter-y:.85rem}
  .testimonials blockquote{padding:1.2rem 1rem 1.05rem 2.75rem;font-size:.9rem}
  .booking-strip{padding:1.35rem 1rem}
  .booking-copy{width:100%;text-align:center}
  .booking-copy strong{font-size:1.55rem}

  .footer-main{padding-top:2.6rem}
  .footer-grid{--bs-gutter-y:0}
  .footer-about{margin-bottom:1.8rem;text-align:center}
  .footer-about p{margin-right:auto;margin-left:auto}
  .footer-brand{margin-right:auto;margin-left:auto}
  .footer-accordion{width:100%;padding-right:calc(var(--bs-gutter-x)*.5);padding-left:calc(var(--bs-gutter-x)*.5);border-top:1px solid #282c30;text-align:left}
  .footer-accordion:last-of-type{border-bottom:1px solid #282c30}
  .footer-accordion h4{margin:0;padding:0}
  .footer-accordion h4:after{display:none}
  .site-footer .footer-accordion-toggle{display:flex;width:100%;min-height:58px;align-items:center;justify-content:space-between;color:#f2f3f4;font-size:1rem;cursor:pointer}
  .footer-accordion-toggle span{color:inherit;font:inherit}
  .footer-accordion-toggle>i,.footer-accordion-toggle .svg-inline--fa{display:block;color:var(--pink);font-size:.78rem;transition:transform .22s ease}
  .footer-accordion.is-open .footer-accordion-toggle>i,.footer-accordion.is-open .footer-accordion-toggle .svg-inline--fa{transform:rotate(180deg)}
  .footer-accordion-panel{max-height:0;overflow:hidden;opacity:0;transition:max-height .28s ease,opacity .2s ease,padding-bottom .28s ease}
  .footer-accordion.is-open .footer-accordion-panel{max-height:320px;padding-bottom:1.25rem;opacity:1}
  .footer-accordion .footer-nav-grid{padding-top:.1rem;padding-bottom:.25rem}
  .footer-social .socials{justify-content:flex-start;padding-top:.15rem}
  .footer-bottom{align-items:center}
  .footer-bottom div{display:flex;flex-wrap:wrap;justify-content:center;gap:.9rem}
  .footer-bottom a{margin:0}
}

@media(max-width:374.98px){
  .hero-visual{height:292px}
  .hero-copy h1{font-size:2.65rem}
  .hero-services{grid-template-columns:1fr}
  .hero-services span{min-height:56px}
  .stat{align-items:flex-start}
  .stat small{font-size:.64rem}
  .tiktok-media{height:238px}
  .tiktok-device{width:174px;height:235px}
  .tiktok-gallery{height:164px}
}

/* Give the appointment teaser its own stage between the two surrounding sections. */
.next-show{
  border-top:1px solid #ff4e91;
  border-bottom:1px solid #9f003b;
  background:
    radial-gradient(circle at 12% 15%,rgba(255,255,255,.2),transparent 24%),
    linear-gradient(120deg,#bb0045 0%,#f50063 52%,#d0004e 100%);
}
.next-show .section-pad{padding-top:2.75rem;padding-bottom:2.75rem}
.next-show-card{
  overflow:visible;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.next-show-card:after{display:none}
.next-show-kicker{padding:0 2rem .8rem;border:0;color:#fff}
.next-show-pulse{background:#fff;box-shadow:0 0 0 5px rgba(255,255,255,.18)}
.next-show-main{padding:1rem 2rem 0}
.next-show-icon{background:#fff;color:var(--pink);box-shadow:0 10px 28px rgba(77,0,28,.3)}
.next-show-copy .eyebrow{color:#fff}
.next-show-copy h2 span{color:#fff}
.next-show-copy>p:last-child{color:#fff}
.next-show-actions .btn-pink{border-color:#111418;background:#111418;color:#fff}
.next-show-actions .btn-pink:hover,.next-show-actions .btn-pink:focus{border-color:#2b3036;background:#2b3036}
.next-show-actions .btn-outline-light{border-color:#fff;background:transparent;color:#fff}
.next-show-actions .btn-outline-light:hover,.next-show-actions .btn-outline-light:focus{border-color:#fff;background:#fff;color:var(--pink)}
@media(max-width:575.98px){.next-show-kicker{padding-right:1.15rem;padding-left:1.15rem}.next-show-main{padding-right:1.15rem;padding-left:1.15rem}}

/* Final next-show treatment: a light editorial break, not a framed card or banner. */
.next-show{
  color:#111418;
  border:0;
  background-color:#f1f1ee;
  background-image:
    radial-gradient(circle at 12% 30%,rgba(245,0,99,.08),transparent 28%),
    radial-gradient(circle,rgba(0,0,0,.04) 0 1px,transparent 1.2px);
  background-size:auto,14px 14px;
}
.next-show .section-pad{padding-top:3rem;padding-bottom:3rem}
.next-show-kicker{color:#25282c}
.next-show-pulse{background:var(--pink);box-shadow:0 0 0 5px rgba(245,0,99,.14)}
.next-show-icon{background:var(--pink);color:#fff;box-shadow:0 10px 28px rgba(245,0,99,.25)}
.next-show-copy .eyebrow{color:var(--pink)}

/* Pink text needs a darker shade on light paper to meet WCAG contrast. */
.paper .eyebrow,.video-page-main .eyebrow{color:#c5004f}
.next-show-copy h2{color:#111418}
.next-show-copy h2 span{color:var(--pink)}
.next-show-copy>p:last-child{color:#45484d}
.next-show-actions .btn-pink{border-color:var(--pink);background:var(--pink);color:#fff}
.next-show-actions .btn-pink:hover,.next-show-actions .btn-pink:focus{border-color:#d90058;background:#d90058;color:#fff}
.next-show-actions .btn-outline-light{border-color:#25282c;background:transparent;color:#25282c}
.next-show-actions .btn-outline-light:hover,.next-show-actions .btn-outline-light:focus{border-color:#25282c;background:#25282c;color:#fff}

/* Alfonso's tour mobile drives in, pauses at the next show, then continues. */
.next-show-kicker{padding:0 0 .35rem}
.next-show-main{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(330px,.85fr);
  align-items:center;
  gap:clamp(1.5rem,4vw,4rem);
  padding:0;
}
.next-show-road{
  position:relative;
  height:340px;
  overflow:hidden;
}
.next-show-road:before{
  content:"";
  position:absolute;
  right:0;
  bottom:27px;
  left:4%;
  height:5px;
  border-radius:50%;
  background:#292d31;
  box-shadow:0 8px 14px rgba(0,0,0,.14);
}
.next-show-road:after{
  content:"";
  position:absolute;
  right:0;
  bottom:12px;
  left:0;
  height:2px;
  background:repeating-linear-gradient(90deg,var(--pink) 0 34px,transparent 34px 52px);
  opacity:.55;
}
.next-show-car{
  --tour-duration:10s;
  --tour-delay:-1.5s;
  position:absolute;
  z-index:2;
  left:0;
  bottom:18px;
  display:block;
  width:min(690px,92%,calc((100% - 48px)*2.096));
  max-width:none;
  aspect-ratio:1816/866;
  filter:drop-shadow(0 12px 9px rgba(0,0,0,.22));
  transform-origin:50% 100%;
  animation:trabbi-tour var(--tour-duration) cubic-bezier(.45,.05,.25,1) infinite var(--tour-delay);
  will-change:transform;
}
.next-show-car-body{position:relative;z-index:1;display:block;width:100%;height:100%;object-fit:contain}
.next-show-car:before,.next-show-car:after{
  content:"";
  position:absolute;
  z-index:2;
  top:78%;
  left:0;
  width:30px;
  aspect-ratio:1;
  border-radius:50%;
  background:radial-gradient(circle,rgba(82,87,91,.72) 0 24%,rgba(125,130,134,.46) 48%,transparent 74%);
  filter:blur(2.5px);
  mix-blend-mode:multiply;
  pointer-events:none;
  animation:trabbi-smoke 1.45s ease-out infinite;
}
.next-show-car:before{animation-delay:-.35s}
.next-show-car:after{animation-delay:-1.05s}
.next-show-wheel{
  position:absolute;
  z-index:3;
  width:14.5%;
  aspect-ratio:1;
  border-radius:50%;
  background:repeating-conic-gradient(from 0deg,transparent 0 20deg,rgba(255,255,255,.32) 22deg 25deg,transparent 27deg 45deg);
  -webkit-mask:radial-gradient(circle,transparent 0 37%,#000 43% 67%,transparent 73%);
  mask:radial-gradient(circle,transparent 0 37%,#000 43% 67%,transparent 73%);
  opacity:0;
  transform-origin:50% 50%;
  animation:trabbi-wheel-motion var(--tour-duration) cubic-bezier(.45,.05,.25,1) infinite var(--tour-delay);
  will-change:transform;
}
.next-show-wheel-rear{top:66.3%;left:16.87%}
.next-show-wheel-front{top:67.55%;left:75.57%}
.next-show-copy{padding:1.25rem 0}
.next-show-copy h2{font-size:clamp(2.3rem,3.2vw,3.2rem)}
.next-show-copy>p:last-of-type{max-width:520px;font-size:.94rem}
.next-show-actions{display:flex;min-width:0;margin-top:1.35rem;flex-direction:column;gap:.7rem}
.next-show-actions .btn{min-height:48px;font-size:.8rem}
@keyframes trabbi-tour{
  0%{transform:translate3d(-118%,4px,0) rotate(-.5deg)}
  34%{transform:translate3d(1.5%,-2px,0) rotate(.3deg)}
  39%{transform:translate3d(0,0,0) rotate(-.15deg)}
  55%{transform:translate3d(0,0,0) rotate(0)}
  61%{transform:translate3d(3%,0,0) rotate(.15deg)}
  100%{transform:translate3d(125%,3px,0) rotate(.45deg)}
}
@keyframes trabbi-wheel-motion{
  0%{opacity:.5;transform:rotate(-900deg)}
  34%{opacity:.35;transform:rotate(0deg)}
  39%,55%{opacity:0;transform:rotate(0deg)}
  61%{opacity:.22;transform:rotate(90deg)}
  100%{opacity:.5;transform:rotate(1260deg)}
}
@keyframes trabbi-smoke{
  0%{opacity:0;transform:translate3d(4px,4px,0) scale(.45)}
  18%{opacity:.62}
  100%{opacity:0;transform:translate3d(-22px,-58px,0) scale(2.2)}
}
@media(max-width:991.98px){
  .next-show-main{grid-template-columns:1fr;gap:.4rem}
  .next-show-road{height:clamp(260px,48vw,370px)}
  .next-show-car{width:min(760px,92%,calc((100% - 48px)*2.096))}
  .next-show-copy{max-width:720px;padding-top:0}
  .next-show-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:575.98px){
  .next-show-road{height:210px;margin-right:-1.15rem;margin-left:-1.15rem}
  .next-show-car{bottom:21px;width:min(92%,calc((100% - 48px)*2.096))}
  .next-show-copy h2{font-size:2.25rem}
  .next-show-actions{display:flex}
}
@media(prefers-reduced-motion:reduce){
  .next-show-car{--tour-duration:16s;--tour-delay:-3s;left:0;animation-timing-function:linear}
  .next-show-wheel{animation-timing-function:linear}
}

/* Persistent navigation shared by every Alfonso subpage. */
.video-page-header,
.characters-page-header,
.about-page-header,
.dates-page-header,
.alfonso-blog-header,
.alfonso-error-page {
  z-index:1040;
  padding-top:92px;
}
.video-page-header>.navbar,
.characters-page-header>.navbar,
.about-page-header>.navbar,
.dates-page-header>.navbar,
.alfonso-blog-header>.navbar,
.alfonso-error-page>.navbar {
  position:fixed!important;
  z-index:1050;
  top:0;
  right:0;
  left:0;
  width:100%;
  min-height:92px;
  border-bottom:1px solid rgba(255,255,255,.09);
  background:transparent;
  box-shadow:none;
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
  transition:background-color .22s ease,box-shadow .22s ease,backdrop-filter .22s ease;
}
.video-page-header>.navbar.is-scrolled,
.characters-page-header>.navbar.is-scrolled,
.about-page-header>.navbar.is-scrolled,
.dates-page-header>.navbar.is-scrolled,
.alfonso-blog-header>.navbar.is-scrolled,
.alfonso-error-page>.navbar.is-scrolled{
  background:rgba(5,7,9,.94);
  box-shadow:0 8px 24px rgba(0,0,0,.28);
  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px);
}
@media(max-width:991.98px){
  .video-page-header,
  .characters-page-header,
  .about-page-header,
  .dates-page-header,
  .alfonso-blog-header,
  .alfonso-error-page{padding-top:82px}
  .video-page-header>.navbar,
  .characters-page-header>.navbar,
  .about-page-header>.navbar,
  .dates-page-header>.navbar,
  .alfonso-blog-header>.navbar,
  .alfonso-error-page>.navbar{
    min-height:82px;
    background:rgba(5,7,9,.9);
    -webkit-backdrop-filter:blur(12px);
    backdrop-filter:blur(12px);
  }
  .video-page-header>.navbar .navbar-collapse,
  .characters-page-header>.navbar .navbar-collapse,
  .about-page-header>.navbar .navbar-collapse,
  .dates-page-header>.navbar .navbar-collapse,
  .alfonso-blog-header>.navbar .navbar-collapse,
  .alfonso-error-page>.navbar .navbar-collapse{max-height:calc(100vh - 105px);overflow-y:auto}
}

/* Readable display typography across all Alfonso subpages. */
.video-hero-copy h1,
.characters-hero-copy h1,
.about-hero-copy h1,
.dates-hero-copy h1,
.alfonso-error-copy h1,
.alfonso-blog-masthead-title {
  letter-spacing:-.035em!important;
  line-height:.9!important;
  text-wrap:balance;
}
.video-library-heading h2,
.characters-library-intro h2,
.characters-booking h2,
.about-intro-heading h2,
.about-timeline-intro h2,
.about-philosophy-quote p,
.about-formats-heading h2,
.about-road-copy h2,
.dates-section-heading h2,
.dates-archive-heading h2,
.dates-booking h2,
body .alfonso-blog-shell .cms-blog-index-heading h1 {
  letter-spacing:-.03em!important;
  line-height:.92!important;
  text-wrap:balance;
}
@media(max-width:767.98px){
  .video-hero-copy h1,
  .characters-hero-copy h1,
  .about-hero-copy h1,
  .dates-hero-copy h1,
  .alfonso-error-copy h1,
  .alfonso-blog-masthead-title {
    font-size:clamp(3.1rem,12vw,4.75rem)!important;
    line-height:.92!important;
  }
  .video-library-heading h2,
  .characters-library-intro h2,
  .characters-booking h2,
  .about-intro-heading h2,
  .about-timeline-intro h2,
  .about-philosophy-quote p,
  .about-formats-heading h2,
  .about-road-copy h2,
  .dates-section-heading h2,
  .dates-archive-heading h2,
  .dates-booking h2,
  body .alfonso-blog-shell .cms-blog-index-heading h1 {
    font-size:clamp(2.75rem,11vw,3.5rem)!important;
    line-height:.95!important;
  }
}

/* Compact mobile stage: keep the first call to action within a single viewport. */
img,video,iframe{max-width:100%}
main,header,footer,.container,.row,[class*="-hero"]{min-width:0}
@media(min-width:576px) and (max-width:991.98px){
  .hero-visual{height:clamp(280px,38vw,340px)}
  .hero-copy{padding-top:2rem;padding-bottom:2.5rem}
  .hero-copy h1{font-size:clamp(2.9rem,7vw,3.8rem)}
  .hero-lead{margin-bottom:1.25rem;font-size:.95rem;line-height:1.55}
  .hero-services{gap:.6rem;margin-bottom:1.25rem}
  .hero-services span{min-height:58px;padding:.6rem;font-size:.76rem}
  .hero-actions .btn{min-height:48px;font-size:.85rem}
}
@media(max-width:575.98px){
  .hero-visual{height:260px}
  .hero-copy{padding-top:1.75rem;padding-bottom:2.25rem}
  .hero-copy h1{margin-bottom:1rem;font-size:clamp(2.2rem,9.7vw,2.65rem);line-height:.9}
  .hero-lead{margin-bottom:1.15rem;font-size:.9rem;line-height:1.5}
  .hero-services{gap:.55rem;margin-bottom:1.15rem}
  .hero-services span{min-height:56px;padding:.55rem;font-size:.72rem;line-height:1.25}
  .hero-actions{gap:.65rem}
  .hero-actions .btn{min-height:48px;font-size:.82rem}
}
@media(max-width:374.98px){
  .hero-visual{height:230px}
  .hero-copy h1{font-size:2.3rem}
  .hero-services{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hero-services span{min-height:54px;font-size:.68rem}
}

@media(max-width:991.98px){
  .video-hero-copy,.characters-hero-copy,.about-hero-copy,.dates-hero-copy,.alfonso-blog-masthead-copy{padding-top:32px!important;padding-bottom:24px!important}
  .video-hero-copy h1,.characters-hero-copy h1,.about-hero-copy h1,.dates-hero-copy h1,.alfonso-blog-masthead-title{margin-bottom:14px!important;font-size:clamp(2.7rem,10vw,3.7rem)!important}
  .video-hero-copy>p:not(.eyebrow),.characters-hero-copy>p:not(.eyebrow),.about-hero-copy>p:not(.eyebrow),.dates-hero-copy>p:not(.eyebrow),.alfonso-blog-masthead-copy>p:not(.eyebrow){margin-bottom:18px!important;line-height:1.55!important}
  .video-hero-cast,.characters-hero-stage,.about-hero-visual,.dates-hero-cast,.alfonso-blog-masthead-visual{height:clamp(230px,64vw,300px)!important}
}
@media(max-width:575.98px){
  .video-hero-copy,.characters-hero-copy,.about-hero-copy,.dates-hero-copy,.alfonso-blog-masthead-copy{padding-top:26px!important;padding-bottom:22px!important}
  .video-hero-copy h1,.characters-hero-copy h1,.about-hero-copy h1,.dates-hero-copy h1,.alfonso-blog-masthead-title{font-size:clamp(2.55rem,11vw,3.2rem)!important}
  .video-hero-cast,.characters-hero-stage,.about-hero-visual,.dates-hero-cast,.alfonso-blog-masthead-visual{height:250px!important}
}

/* Buttons use a wider UI typeface so their labels remain readable at every size. */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.55rem;
  font-family:system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.025em;
  line-height:1.25;
  text-align:center;
  text-shadow:none;
  white-space:normal;
}
.btn-pink{
  border-color:#d90058;
  background:#d90058;
  color:#fff;
}
.btn-pink:hover,.btn-pink:focus-visible{
  border-color:#b9004a;
  background:#b9004a;
  color:#fff;
}
@media(max-width:575.98px){
  .btn{min-height:48px;font-size:.75rem;letter-spacing:.015em}
}
