
:root{--bg:#FFFFFF;--ink:#2B0D13;--card:#F8EDEF;--accent:#7A1B2D;--on:#FFFFFF;--mute:#6B4A52;color-scheme:light}
:root{box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
html{scroll-padding-top:env(safe-area-inset-top,0px);scroll-behavior:smooth}
*,*::before,*::after{box-sizing:inherit}
body{margin:0;background:var(--bg);color:var(--ink);font:400 1.0625rem/1.6 Figtree,system-ui,sans-serif}
h1,h2,h3{font-family:"Bricolage Grotesque",Georgia,serif;line-height:1.05;margin:0}
a{color:inherit}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.wrap{max-width:62rem;margin:0 auto;padding:0 1.25rem}
header{display:flex;justify-content:space-between;align-items:center;padding:1.1rem 0}
.logo img{height:3.2rem;width:auto;display:block}
.lg-d{display:none}
.gal{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr))}
.gal figure{margin:0}
.gal img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block;border-radius:.8rem;border:2px solid var(--accent)}
nav a{margin-left:1.1rem;text-decoration:none;font-weight:600}
.btn{display:inline-block;background:var(--accent);color:var(--on);padding:.85rem 1.4rem;border-radius:2rem;font-weight:600;text-decoration:none}
.btn:hover{filter:brightness(.85)}
.hero{display:grid;gap:2rem;grid-template-columns:1.1fr .9fr;align-items:center;padding:2rem 0 4rem}
.hero-img{width:100%;height:auto;display:block;border-radius:1rem;border:3px solid var(--accent);box-shadow:.6rem .7rem 0 rgba(122,27,45,.2)}
.hero h1{font-weight:800;font-size:clamp(3.4rem,10vw,6.8rem);letter-spacing:-.04em}
.hero p{max-width:30rem;font-size:1.25rem;margin:1.25rem 0 1.75rem;position:relative;z-index:1}
.card{position:absolute;right:-1.5rem;top:1.2rem;width:clamp(9rem,30vw,16rem);aspect-ratio:5/7;background:#fff;color:#7A1B2D;border:3px solid #7A1B2D;border-radius:.9rem;transform:rotate(11deg);box-shadow:.5rem .6rem 0 rgba(122,27,45,.2);display:flex;align-items:center;justify-content:center;font:800 clamp(5rem,18vw,9rem)/1 "Bricolage Grotesque",serif}
.card::before,.card::after{content:"A";position:absolute;font-size:clamp(1.3rem,4vw,2rem);left:.8rem;top:.6rem}
.card::after{left:auto;right:.8rem;top:auto;bottom:.6rem;transform:rotate(180deg)}
.hero .proof{font-size:1rem;color:var(--mute);margin:1.25rem 0 0}
section{padding:3.5rem 0}
h2{font-weight:800;font-size:clamp(2rem,6vw,3.2rem);margin-bottom:1.5rem}
.band{background:var(--card)}
.events{list-style:none;margin:0;padding:0;border-top:2px solid var(--ink)}
.events li{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0;border-bottom:2px solid var(--ink)}
.events h3{font-size:1.4rem}
.events p{margin:.15rem 0 0;color:var(--mute)}
.events a{white-space:nowrap;font-weight:600}
.grid{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr))}
.grid h3{font-size:1.5rem;margin-bottom:.4rem}
.grid.g4{grid-template-columns:repeat(auto-fit,minmax(12.5rem,1fr))}
.grid p{margin:0;color:var(--mute)}
.two{display:grid;gap:2.5rem;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr))}
.big{font-family:"Bricolage Grotesque",serif;font-weight:800;font-size:clamp(3rem,10vw,5rem);line-height:1;color:var(--accent)}
.contact{text-align:left}
.contact p{font-size:1.15rem}
footer{padding:2rem 0 3rem;color:var(--mute);font-size:.95rem}
@media (max-width:48rem){.hero{grid-template-columns:1fr}}
@media (max-width:34rem){nav a:not(.btn){display:none}.events li{flex-direction:column;align-items:flex-start}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.p1{background-image:url(/img/apolo-jr-mago-41a0bfd65c.webp)}
.p2{background-image:url(/img/apolo-jr-mago-magia-para-bautizos.webp)}
.p3{background-image:url(/img/apolo-jr-mago-7cd3598642.webp)}
.p4{background-image:url(/img/apolo-jr-mago-perfiles-en-espejo-fondo-blanco.webp)}
.p5{background-image:url(/img/apolo-jr-mago-82a68846ef.webp)}
.head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap}
.link{background:none;border:0;padding:0;color:var(--accent);font:600 1.05rem Figtree,sans-serif;text-decoration:underline;cursor:pointer}
.rail{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:.5rem 1.25rem 1rem;margin:0 -1.25rem;scrollbar-width:thin}
.ev{flex:0 0 min(70vw,14rem);aspect-ratio:3/4;border:0;border-radius:1rem;scroll-snap-align:start;background-size:cover;background-position:center;display:flex;align-items:flex-end;padding:0;overflow:hidden;cursor:pointer;color:#fff;text-align:left}
@media (prefers-reduced-motion:no-preference){
.rail{scroll-snap-type:none}
.ev{scroll-snap-align:none;position:relative;transition:transform .6s cubic-bezier(.2,.7,.2,1),box-shadow .6s}
.ev.on{transform:scale(1.06);box-shadow:0 16px 36px rgba(122,27,45,.38);z-index:1}
.ev:hover{transform:scale(1.06)}
.ev::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,transparent 38%,rgba(255,255,255,.38) 50%,transparent 62%);transform:translateX(-130%)}
.ev.on::after{animation:evsh 1.5s ease .15s 1 forwards}
.ev.on::before{content:"\2726";position:absolute;top:.8rem;right:1rem;color:#fff;font-size:1.3rem;z-index:2;animation:evtw 1.8s ease-in-out infinite;text-shadow:0 0 .6rem rgba(255,255,255,.9)}
@keyframes evsh{to{transform:translateX(130%)}}
@keyframes evtw{0%,100%{opacity:.25;transform:scale(.7) rotate(0)}50%{opacity:1;transform:scale(1.15) rotate(35deg)}}
}
.ev span{width:100%;padding:3rem 1rem 1rem;font:800 1.5rem/1.1 "Bricolage Grotesque",Georgia,serif;background:linear-gradient(transparent,rgba(122,27,45,.95))}
.about{display:grid;gap:2rem;grid-template-columns:1fr 1.4fr;align-items:center}
.about img{width:100%;max-width:22rem;aspect-ratio:3/4;object-fit:cover;border-radius:1rem;border:3px solid var(--accent);display:block}
@media (max-width:48rem){.about{grid-template-columns:1fr}}
button.btn{border:0;font:600 1rem Figtree,sans-serif;cursor:pointer;margin-top:.5rem}
dialog{border:0;border-radius:1rem;padding:1.5rem;width:min(26rem,calc(100% - 2rem));background:var(--bg);color:var(--ink)}
dialog::backdrop{background:rgba(43,13,19,.65)}
dialog h3{font-size:1.8rem}
.list{list-style:none;margin:1rem 0;padding:0;display:grid;gap:.6rem}
.list a,.list button{display:block;width:100%;text-align:left;padding:.85rem 1rem;border:2px solid var(--accent);border-radius:.7rem;background:none;color:var(--ink);font:600 1.05rem Figtree,sans-serif;text-decoration:none;cursor:pointer}
.list a:hover,.list button:hover{background:var(--accent);color:var(--on)}
.cal{max-width:26rem}
.cal-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}
.cal-h strong{font:800 1.5rem 'Bricolage Grotesque',Georgia,serif;text-transform:capitalize}
.cal-h button{width:2.6rem;height:2.6rem;border-radius:50%;border:2px solid var(--accent);background:none;color:var(--ink);font-size:1.3rem;cursor:pointer}
.cal-h button:disabled{opacity:.3;cursor:default}
.cal-g{display:grid;grid-template-columns:repeat(7,1fr);gap:.3rem;text-align:center}
.cal-g span{font-weight:600;color:var(--mute);font-size:.9rem}
.cal-g button{aspect-ratio:1;border:2px solid transparent;border-radius:.6rem;background:var(--card);color:var(--ink);font:600 1rem Figtree,sans-serif;cursor:pointer}
.cal-g button:disabled{background:none;color:var(--mute);opacity:.45;cursor:default}
.cal-g button.busy:disabled{text-decoration:line-through;border-color:var(--accent);opacity:.75}
.cal-g button.sel{background:var(--accent);color:var(--on);border-color:var(--accent)}
.cal-n{margin-top:1rem;min-height:3.2rem}
.cal-k{font-size:.9rem;color:var(--mute);margin:.5rem 0 0}
dialog{width:min(30rem,calc(100% - 2rem));max-height:calc(100% - 2rem);overflow:auto}
.dimg{aspect-ratio:4/3;background-size:cover;background-position:center 25%;border-radius:.8rem;margin-bottom:1rem}
.sub{font-weight:600;color:var(--mute);margin:1rem 0 .4rem}
.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 1rem}
.chip{position:relative}
.chip input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.chip span{display:block;padding:.5rem .9rem;border:2px solid var(--accent);border-radius:2rem;font-weight:600}
.chip input:checked+span{background:var(--accent);color:var(--on)}
.chip input:focus-visible+span{outline:3px solid var(--accent);outline-offset:3px}
.dos{border:2px solid var(--accent);border-radius:.8rem;padding:1rem;margin:0 0 1rem}
.dos h4{margin:0 0 .4rem;font:800 1.2rem 'Bricolage Grotesque',Georgia,serif}
.dos p{margin:.2rem 0}
.dos .btn{margin:.5rem 0 .2rem}
.dos .alt{font-size:.92rem}
.btn2{display:inline-block;border:2px solid var(--accent);color:var(--accent);background:none;padding:.55rem 1.1rem;border-radius:2rem;font:600 1rem Figtree,sans-serif;text-decoration:none;cursor:pointer;margin:.3rem .5rem .3rem 0}
.btn2:hover{background:var(--accent);color:var(--on)}
.p6{background-image:url(/img/apolo-jr-mago-magia-para-comuniones.webp)}
.p7{background-image:url(/img/apolo-jr-mago-magia-para-cumpleanos-en-familia.webp)}
.p8{background-image:url(/img/apolo-jr-mago-magia-para-ayuntamientos-y-fiestas-locales.webp)}
.p9{background-image:url(/img/apolo-jr-mago-magia-para-eventos-privados-y-cumpleanos-de-ad-2.webp)}
#video{padding-top:0}
.promo{width:100%;max-width:56rem;height:auto;aspect-ratio:1280/546;display:block;border-radius:1rem;border:3px solid var(--accent);background:#000}
#prensa{padding-bottom:0}
.press{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));align-items:start;max-width:62rem}
.press figure{margin:0}
.press img{width:100%;height:auto;display:block;border-radius:.6rem;border:2px solid var(--accent)}
.press figcaption{font-size:.9rem;color:var(--mute);margin-top:.4rem}
.hv{position:relative;min-height:min(86vh,46rem);display:flex;align-items:flex-end;overflow:hidden;background:#000;color:#fff}
.hv video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hv-shade{position:absolute;inset:0;background:linear-gradient(to top,rgba(30,6,12,.88),rgba(30,6,12,.35) 55%,rgba(30,6,12,.1))}
.hv-txt{position:relative;padding-top:6rem;padding-bottom:3rem}
.hv h1{font-weight:800;font-size:clamp(3.4rem,11vw,7rem);letter-spacing:-.04em;color:#fff}
.hv p{max-width:34rem;font-size:1.2rem;margin:1rem 0 1.5rem;color:#fff}
.hv .hv-proof{font-size:.95rem;margin:1.1rem 0 0;color:#f1dfe2}
.hv .btn{background:#fff;color:#7A1B2D}
.hv .btn:hover{filter:none;background:#F8EDEF}
.hv-btn{position:absolute;right:1rem;top:1rem;border:2px solid #fff;background:rgba(30,6,12,.55);color:#fff;padding:.5rem .9rem;border-radius:2rem;font:600 .95rem Figtree,sans-serif;cursor:pointer}
.hv-btn:hover{background:rgba(30,6,12,.8)}
@media (max-width:48rem){.hv{display:block;min-height:0;background:#2a0a12}
.hv video{position:relative;inset:auto;height:auto;aspect-ratio:15/8;object-fit:cover;object-position:50% 50%;display:block}
.hv-shade{display:none}
.hv-txt{padding-top:1.5rem;padding-bottom:2.5rem}
.hv h1{font-size:clamp(3rem,15vw,4.5rem)}}
.hv-media{position:absolute;inset:0}
.hv-btn{top:auto;bottom:1rem;right:1rem;z-index:2}
#eventos{border-radius:1.5rem 1.5rem 0 0;margin-top:-1.5rem;position:relative}
@media (max-width:48rem){.hv{background:linear-gradient(#2a0a12,#4a1020)}
.hv-media{position:relative;inset:auto}
.hv-media video{-webkit-mask-image:linear-gradient(#000 62%,transparent);mask-image:linear-gradient(#000 62%,transparent)}
.hv-btn{bottom:.7rem}
.hv-txt{margin-top:-1.75rem;padding-top:0;padding-bottom:3.5rem}}
.menu-btn{display:none;border:2px solid var(--accent);background:none;color:var(--ink);padding:.5rem .9rem;border-radius:2rem;font:600 1rem Figtree,sans-serif;cursor:pointer}
@media (min-width:0){header{flex-wrap:wrap;gap:.5rem}
.menu-btn{display:inline-block;order:1;margin-left:auto}
header nav{display:contents}
header nav .btn{order:2}
header nav a:not(.btn){order:3;flex-basis:100%;margin:0;padding:.7rem 0;border-top:1px solid var(--card);font-size:1.15rem}
header.open nav a:not(.btn){display:block}}
.hv h1{font-family:"Playfair Display",Georgia,serif;font-weight:500;letter-spacing:-.015em;line-height:1;font-size:clamp(3.2rem,11vw,6.6rem)}
.hv-sub{display:block;font:300 clamp(1.2rem,3.6vw,2rem)/1 Antonio,"Arial Narrow",sans-serif;letter-spacing:.42em;margin-top:.7rem;padding-left:.15em}
.iso{display:block;height:3.2rem;width:auto;margin:0 0 1rem}
.iso-f{height:2.4rem;margin:0 0 .6rem}
.lg-iso-d{display:none}
.cnt-row{display:flex;align-items:center;gap:1.25rem;margin-bottom:.5rem}
.cnt-row h2{margin-bottom:.4rem}
.cnt-row p{margin:0}
.iso-side{height:5.5rem;margin:0;flex:none}
@media (max-width:34rem){.iso-side{height:4.2rem}}
.ft-row{display:flex;align-items:center;gap:.9rem}
.ft-row .iso-f{height:2.6rem;margin:0;flex:none}
.p10{background-image:url(/img/apolo-jr-mago-magia-de-coctel-para-bodas.webp)}
/* nav: desplegable de servicios + feedback al pasar/pulsar */
.dd{position:relative;display:inline-block}
.dd-m{position:absolute;top:100%;left:.2rem;padding-top:.7rem;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .2s,transform .2s,visibility .2s;z-index:20}
.dd-i{min-width:15.5rem;background:var(--bg);border:2px solid var(--accent);border-radius:.9rem;padding:.4rem;box-shadow:0 18px 40px rgba(43,13,19,.22)}
.dd:hover .dd-m,.dd:focus-within .dd-m{opacity:1;visibility:visible;transform:none}
nav .dd-i a.sub{display:block;margin:0;padding:.5rem .8rem;border-radius:.6rem;font-weight:600;transition:background .15s,color .15s,padding-left .15s}
nav .dd-i a.sub:hover,nav .dd-i a.sub:active,nav .dd-i a.sub:focus-visible{background:var(--accent);color:var(--on);padding-left:1.1rem}
nav .dd-i a.sub::after{display:none}
nav a:not(.btn):not(.sub){position:relative;transition:color .2s}
nav a:not(.btn):not(.sub)::after{content:"";position:absolute;left:0;right:0;bottom:-.2rem;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .25s}
nav a:not(.btn):not(.sub):hover,nav a:not(.btn):not(.sub):active,.dd:hover .dd-t{color:var(--accent)}
nav a:not(.btn):not(.sub):hover::after,nav a:not(.btn):not(.sub):active::after,.dd:hover .dd-t::after{transform:scaleX(1)}
.dd-t::before{content:"";display:inline-block;width:.45rem;height:.45rem;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-.15rem) rotate(45deg);margin-right:.45rem;transition:transform .2s}
.dd:hover .dd-t::before{transform:translateY(.05rem) rotate(225deg)}
@media (min-width:0){
.dd,.dd-m,.dd-i{display:contents}
.dd-m{opacity:1;visibility:visible;transform:none;position:static;padding:0}
.dd-t::before{display:none}
header nav .dd-i a.sub{display:none;order:3;flex-basis:100%;padding:.45rem 0 .45rem 1.1rem;border-top:0;font-size:1rem;font-weight:400;border-radius:0;color:var(--mute)}
header.open nav .dd-i a.sub{display:block}
header nav .dd-i a.sub:hover,header nav .dd-i a.sub:active{background:var(--card);color:var(--accent);padding-left:1.1rem}
}
.btn{transition:filter .2s,transform .2s,box-shadow .2s}
.btn:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(122,27,45,.28)}
.btn:active,.btn2:active,button.btn:active{transform:scale(.96);filter:brightness(.8)}
.link{transition:filter .2s,text-decoration-thickness .2s}
.link:hover,.link:active{filter:brightness(.75);text-decoration-thickness:3px}
.hv-btn{transition:background .2s,transform .2s}
.hv-btn:hover,.hv-btn:active{transform:scale(1.05)}
.menu-btn{transition:background .2s,color .2s}
.menu-btn:hover,.menu-btn:active{background:var(--accent);color:var(--on)}
.chip span{transition:background .2s,transform .15s}
.chip:hover span,.chip:active span{background:var(--card);transform:translateY(-1px)}
.chip input:checked+span,.chip:hover input:checked+span{background:var(--accent)}
.cal-g button{transition:background .15s,color .15s,transform .15s}
.cal-g button:not(:disabled):not(.sel):hover,.cal-g button:not(:disabled):not(.sel):active{background:var(--accent);color:var(--on);transform:scale(1.1)}
.cal-h button{transition:background .15s,color .15s}
.cal-h button:not(:disabled):hover,.cal-h button:not(:disabled):active{background:var(--accent);color:var(--on)}
.list a,.list button{transition:background .15s,color .15s}
.press img,.gal img{transition:transform .3s,box-shadow .3s}
.press img:hover,.gal img:hover{transform:scale(1.02);box-shadow:0 10px 24px rgba(122,27,45,.25)}
footer a,.contact a,.ft-row a{transition:color .2s}
footer a:hover,.contact a:not(.btn):hover{color:var(--accent)}
.ev:active{transform:scale(1.02)}
/* página de servicio */
body.svc-on>main,body.svc-on>section:not(#svcpage){display:none}
#svcpage{padding:0}
.svc{padding-top:1rem;padding-bottom:3rem}
.svc-back{display:inline-block;font-weight:600;text-decoration:none;margin:0 0 1.5rem;color:var(--accent);transition:transform .2s}
.svc-back:hover,.svc-back:active{transform:translateX(-4px)}
.svc-top{display:grid;grid-template-columns:1.15fr .85fr;gap:2.5rem;align-items:start}
.svc-eye{font-weight:600;letter-spacing:.12em;text-transform:uppercase;font-size:.85rem;color:var(--accent);margin:0 0 .8rem}
.svc h1{font-weight:800;font-size:clamp(2.4rem,7vw,4.4rem);letter-spacing:-.03em;margin:0 0 .4rem}
.svc-sub{font:500 clamp(1.3rem,4vw,2rem)/1.15 "Playfair Display",Georgia,serif;font-style:italic;color:var(--accent);margin:0 0 1.2rem}
.svc-lead{font-size:1.25rem;margin:1rem 0 1.4rem;max-width:36rem}
.svc-pts{list-style:none;margin:0 0 1.8rem;padding:0;max-width:36rem}
.svc-pts li{position:relative;padding:.45rem 0 .45rem 1.9rem}
.svc-pts li::before{content:"\2726";position:absolute;left:0;top:.45rem;color:var(--accent)}
.svc-ph{width:100%;max-width:24rem;aspect-ratio:3/4;border-radius:1rem;border:3px solid var(--accent);box-shadow:.6rem .7rem 0 rgba(122,27,45,.2);background-size:cover;background-position:center;justify-self:end}
.svc-g{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));margin:3rem 0 0}
.svc-g figure{margin:0}
.svc-g img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block;border-radius:.8rem;border:2px solid var(--accent);transition:transform .3s,box-shadow .3s}
.svc-g img:hover{transform:scale(1.02);box-shadow:0 10px 24px rgba(122,27,45,.25)}
.svc-g figure.wide{grid-column:1/-1}
.svc-g figure.wide img{aspect-ratio:16/9;object-position:50% 50%}
.svc-g figcaption{font-size:.95rem;color:var(--mute);margin-top:.5rem}
.svc-cta{background:var(--card);border-radius:1.2rem;padding:1.8rem;margin:3rem 0 0}
.svc-cta h2{font-size:clamp(1.6rem,4.5vw,2.3rem);margin:0 0 .5rem}
.svc-cta p{margin:.2rem 0 1rem;max-width:34rem}
.svc-cta .sub{margin:1rem 0 .4rem}
.svc-rel{margin:2.5rem 0 0}
.svc-rel h3{font-size:1.2rem;margin:0 0 .8rem}
.svc-rel div{display:flex;flex-wrap:wrap;gap:.5rem}
.svc-rel a{padding:.45rem .9rem;border:2px solid var(--accent);border-radius:2rem;font-weight:600;text-decoration:none;transition:background .15s,color .15s,transform .15s}
.svc-rel a:hover,.svc-rel a:active{background:var(--accent);color:var(--on);transform:translateY(-2px)}
@media (max-width:48rem){.svc-top{grid-template-columns:1fr;gap:1.5rem}.svc-ph{justify-self:start;max-width:18rem}}
.p11{background-image:url(/img/apolo-jr-mago-magia-de-cerca-para-bares-y-restaurantes.webp)}
.svc-b{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));margin:3rem 0 0}
.svc-b>div{background:var(--card);border-radius:1rem;padding:1.3rem}
.svc-b h3{font-size:1.25rem;margin:0 0 .5rem}
.svc-b p{margin:0}
.svc-b ul{margin:.2rem 0 0;padding-left:1.1rem}
.svc-b li{margin:.35rem 0}
.svc-g:has(.half){grid-template-columns:1fr 1fr}
.svc-g .half img{aspect-ratio:4/3}
@media(max-width:34rem){.svc-g:has(.half){grid-template-columns:1fr}}
.svc-ph.p11{aspect-ratio:1/1;max-width:26rem;background-position:center}
.ev.p11{background-position:55% center}
@media(max-width:48rem){#pressrail{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:.9rem;margin:0 -1rem;padding:0 1rem .8rem;max-width:none;-webkit-overflow-scrolling:touch}
#pressrail figure{flex:0 0 76%;scroll-snap-align:start;cursor:pointer}
#pressrail figure[data-press=andalucia]{order:-1}
#pressrail::after{content:"";flex:0 0 .1rem}}
#plink{border:0;border-radius:1rem;padding:1.4rem;max-width:22rem;width:calc(100% - 2rem);box-shadow:0 20px 50px rgba(0,0,0,.3)}
#plink::backdrop{background:rgba(0,0,0,.5)}
#plink h3{margin:0 0 .6rem}#plink p{margin:0 0 1rem}
#plink .row{display:flex;gap:.6rem;flex-wrap:wrap}
#plink .row>*{flex:1;text-align:center}
.p12{background-image:url(/img/apolo-jr-mago-magia-para-centros-comerciales.webp)}
.svc-ph.p12{background-position:50% 35%}
.p13{background-image:url(/img/apolo-jr-mago-magia-para-empresas-y-eventos-corporativos.webp)}
.svc-ph.p13{background-position:50% 25%}
.ev.p13{background-position:50% 22%}
.svc-v{margin:3rem auto 0;max-width:22rem}.svc-v video{width:100%;display:block;border-radius:.8rem;border:2px solid var(--accent);background:#000}.svc-v figcaption{font-size:.95rem;color:var(--mute);margin-top:.5rem;text-align:center}
.p14{background-image:url(/img/apolo-jr-mago-taller-de-magia-para-ninos.webp)}
.svc-ph.p14{background-position:50% 25%}
.ev.p14{background-position:50% 25%}
img.lg-d,img.lg-iso-d{display:none!important}
.cal-side{display:none}
@media(min-width:48.01rem){.calwrap{display:grid;grid-template-columns:26rem 1fr;gap:2rem;align-items:start}
.cal-side{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-content:start}
.mini{background:var(--bg);border:2px solid transparent;border-radius:1rem;padding:.7rem .8rem .8rem;cursor:pointer;transition:border-color .2s,transform .2s,box-shadow .2s;outline:none}
.mini:hover,.mini:focus-visible{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 8px 20px rgba(122,27,45,.18)}
.mini strong{display:block;font:800 1.05rem 'Bricolage Grotesque',Georgia,serif;text-transform:capitalize;margin-bottom:.5rem}
.mini-g{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;text-align:center;font-size:.64rem;line-height:1.65}
.mini-g span{border-radius:.3rem;color:var(--ink)}
.mini-g span.w{color:var(--mute);font-weight:600}
.mini-g span.x{color:var(--mute);opacity:.4}
.mini-g span.b{text-decoration:line-through;color:var(--accent);opacity:.8}
.mini-k{grid-column:1/-1;font-size:.85rem;color:var(--mute);margin:.2rem 0 0}}
.soc{display:flex;gap:.8rem;margin-top:1.2rem}
.ic{width:3rem;height:3rem;border-radius:50%;border:2px solid var(--accent);color:var(--accent);display:inline-flex;align-items:center;justify-content:center;transition:background .2s,color .2s,transform .2s}
.ic:hover,.ic:focus-visible{background:var(--accent);color:var(--on);transform:scale(1.08)}
.ft-row .sp{color:var(--accent);font-size:.8em;margin:0 .35rem}
.st{color:var(--accent);margin:0 .25em;font-size:.9em;letter-spacing:0}
.sep{display:flex;justify-content:center;gap:1.1rem;color:var(--accent);font-size:.8rem;margin:0 0 2.2rem;opacity:.85}
.sep span:nth-child(2){font-size:1.1rem;transform:translateY(-.15rem)}
.cal-g button{position:relative}
.cal-g button.sel::after{content:"✦";position:absolute;top:.12rem;right:.3rem;font-size:.55rem;color:var(--on);opacity:.9}
.cal-g button.today:not(.sel){border-color:var(--accent)}
.cal-g button.today:not(.sel)::after{content:"✦";position:absolute;top:.12rem;right:.3rem;font-size:.55rem;color:var(--accent)}
.cal-g button.free:not(:disabled):hover::after{content:"✦";position:absolute;top:.12rem;right:.3rem;font-size:.55rem;color:var(--on)}
#ldr{position:fixed;inset:0;z-index:9999;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.2rem;transition:opacity .6s,visibility .6s}
#ldr.done{opacity:0;visibility:hidden;pointer-events:none}
#ldr .ls{display:flex;gap:1.2rem;color:#7A1B2D;font-size:1.6rem}
#ldr .ls span{opacity:.2;animation:ldp 1.2s infinite}
#ldr .ls span:nth-child(2){animation-delay:.2s;font-size:2.2rem;transform:translateY(-.3rem)}
#ldr .ls span:nth-child(3){animation-delay:.4s}
#ldr p{margin:0;color:#7A1B2D;font:600 .9rem Figtree,sans-serif;letter-spacing:.2em;text-transform:uppercase}
@keyframes ldp{0%,100%{opacity:.2;transform:scale(.85)}50%{opacity:1;transform:scale(1.15)}}
@media(prefers-reduced-motion:reduce){#ldr .ls span{animation:none;opacity:1}}
.rv{opacity:0;transform:perspective(900px) translateY(var(--ty,34px)) rotateX(var(--rx,10deg)) scale(.97);filter:blur(7px);transition:opacity .9s cubic-bezier(.2,.8,.2,1) var(--d,0s),transform 1s cubic-bezier(.18,.9,.25,1.08) var(--d,0s),filter .9s ease var(--d,0s);will-change:transform,opacity}
.rv.m img,.rv.m video{clip-path:inset(var(--ci,100% 0 0 0) round 1rem);transition:clip-path 1s cubic-bezier(.2,.8,.2,1) var(--d,0s)}
.rv.in{opacity:1;transform:perspective(900px) translateY(0) rotateX(0) scale(1);filter:blur(0)}
.rv.m.in img,.rv.m.in video{clip-path:inset(0 0 0 0 round 1rem)}
.rv.nt img,.rv.nt video{transition:none!important}
.rv.nt{transition:none!important}
#spb{position:fixed;left:0;top:0;height:3px;width:100%;z-index:9990;pointer-events:none;transform-origin:0 50%;transform:scaleX(var(--p,0));background:linear-gradient(90deg,#7A1B2D,#c4546a)}
#spb::after{content:"✦";position:absolute;right:-.5rem;top:-.35rem;font-size:.9rem;color:#7A1B2D;transform:scaleX(calc(1 / max(var(--p,1),.02)))}
.spk{position:fixed;z-index:9980;pointer-events:none;color:#7A1B2D;opacity:0;animation:spk 1.5s ease-out forwards;will-change:transform,opacity}
@keyframes spk{0%{opacity:0;transform:translateY(0) scale(.4) rotate(0)}20%{opacity:.9}100%{opacity:0;transform:translateY(var(--dy,-60px)) scale(1.1) rotate(80deg)}}
@media(prefers-reduced-motion:reduce){.rv,.rv.m,.rv.m img,.rv.m video{opacity:1;transform:none;filter:none;transition:none;clip-path:none}.spk,#spb{display:none}}

/* cabecera: menú · logo fijo · pedir fecha */
@media(min-width:0){
:root{--hh:3.7rem}
body{padding-top:var(--hh)}
html{scroll-padding-top:calc(var(--hh) + .5rem)}
header{position:fixed;top:0;left:0;right:0;z-index:9980;padding:0 1rem;display:grid;grid-template-columns:1fr auto 1fr;grid-template-rows:var(--hh);grid-auto-rows:auto;align-items:center;gap:0;background:transparent;pointer-events:none;max-height:100vh;max-height:100dvh;overflow-y:auto}
header>*,header nav a,header nav .btn{pointer-events:auto}
header .menu-btn{order:1;margin:0;justify-self:start;padding:.45rem .85rem;font-size:.95rem;background:var(--bg)}
header.open{background:var(--bg);pointer-events:auto}
header .logo{order:2;justify-self:center;align-self:stretch;display:flex;align-items:center;justify-content:center;width:5.6rem;background:var(--card);border-radius:0 0 1rem 1rem}
header .logo img{height:2.7rem}
header nav .btn{order:3;justify-self:end;margin:0;padding:.55rem .9rem;font-size:.95rem;white-space:nowrap}
header nav a:not(.btn){order:4;grid-column:1/-1}
header.open nav .dd-i a.sub{grid-column:1/-1;order:4}
header.open{padding-bottom:1rem}
#spb{top:calc(var(--hh) - 3px)}
}

/* v71: solo el logo queda fijo y cambia de color según el fondo */
@media(min-width:0){
:root{--hh:3.5rem}
header{position:absolute;grid-template-columns:auto 1fr auto;background:transparent}
header .logo{position:fixed;top:.15rem;left:50%;transform:translateX(-50%);width:auto;align-self:auto;background:none;border-radius:0;z-index:9985;pointer-events:auto;padding:0}
header .logo img{height:3.15rem;transition:opacity .25s}
header.dk .logo img.lg-l{display:none!important}
header.dk .logo img.lg-d{display:block!important}
header .menu-btn{background:var(--bg)}
header.open{background:var(--bg)}
}

@media(min-width:34.01rem){
header nav a:not(.btn){display:none}
header.open nav a:not(.btn){display:block}
header{padding:0 max(1rem,calc((100vw - 62rem)/2 + 1.25rem))}
header.open nav .dd-i a.sub{display:block}
}
/* v74/75: galerías de solo fotos: deslizar hacia los lados (móvil y ordenador) */
@media(min-width:0){
.svc-g,.svc-g:has(.half){display:flex;gap:.8rem;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;margin-left:-1rem;margin-right:-1rem;padding:0 1rem .4rem;scroll-padding:0 1rem;scrollbar-width:none}
.svc-g::-webkit-scrollbar{display:none}
.svc-g figure,.svc-g figure.wide{flex:0 0 auto;scroll-snap-align:start;grid-column:auto}
.svc-g img,.svc-g figure.wide img,.svc-g .half img{height:22rem;width:auto;aspect-ratio:3/4}
.svc-g figure.wide img,.svc-g .half img{aspect-ratio:4/3}
.svc-g figcaption{max-width:100%}
}
@media(min-width:34.01rem){
.svc-g,.svc-g:has(.half){margin-left:0;margin-right:0;padding:0 0 .4rem;scroll-padding:0}
.svc-g img,.svc-g figure.wide img,.svc-g .half img{height:26rem}
}
.press figure[data-press="diario"]{cursor:pointer}
.press figure[data-press]{cursor:pointer}
.rec{margin-top:1.4rem;padding:1.1rem 1.3rem;border-left:3px solid var(--accent);background:#fff;border-radius:0 .8rem .8rem 0}
.rec h3{margin:0 0 .6rem;font-size:1.05rem;color:var(--accent)}
.rec ul{list-style:none;margin:0 0 .7rem;padding:0}
.rec li{position:relative;padding-left:1.6rem;margin:.35rem 0}
.rec li::before{content:"✦";position:absolute;left:0;color:var(--accent)}
.rec p{margin:0;font-style:italic;color:var(--mute)}
/* v83: prensa, tarjetas recortadas con entrada animada */
#prensa .press{display:flex;gap:1.4rem;max-width:none;overflow-x:auto;scroll-snap-type:x mandatory;padding:2.2rem 1.25rem 2.4rem;margin:.4rem -1.25rem 0;scrollbar-width:none;align-items:stretch;perspective:1200px}
#prensa .press::-webkit-scrollbar{display:none}
#prensa .press figure{position:relative;flex:0 0 auto;width:min(17rem,74vw);scroll-snap-align:center;background:#fff;padding:.55rem .55rem 0;border-radius:.5rem;border:1px solid #e4cfd3;box-shadow:0 .8rem 1.6rem rgba(122,27,45,.18);transform-origin:50% 0;opacity:0;transform:translateX(9rem) rotate(9deg) scale(.9);transition:transform .9s cubic-bezier(.2,.9,.25,1.15),opacity .6s,box-shadow .35s,filter .35s;cursor:pointer;overflow:visible}
#prensa .press.in figure{opacity:1;transform:rotate(var(--r,0deg)) translateY(var(--y,0)) scale(.96);transition-delay:calc(var(--i,0) * .16s)}
#prensa .press figure:nth-child(1){--r:-2.2deg}#prensa .press figure:nth-child(2){--r:1.6deg;--y:.7rem}#prensa .press figure:nth-child(3){--r:-1.2deg}#prensa .press figure:nth-child(4){--r:2deg;--y:.5rem}
#prensa .press.in figure.on{transform:rotate(0) translateY(-.6rem) scale(1.03);box-shadow:0 1.4rem 2.4rem rgba(122,27,45,.3);filter:none;transition-delay:0s;z-index:2}
#prensa .press.in figure:not(.on){filter:saturate(.8) brightness(.97)}
#prensa .press figure::before{content:"";position:absolute;top:-.7rem;left:50%;width:4.4rem;height:1.4rem;transform:translateX(-50%) rotate(-3deg);background:rgba(122,27,45,.82);border-radius:.2rem;box-shadow:0 .1rem .3rem rgba(0,0,0,.2);z-index:3}
#prensa .press figure::after{content:"";position:absolute;inset:0;border-radius:.5rem;pointer-events:none;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.75) 50%,transparent 65%);transform:translateX(-130%);z-index:2}
#prensa .press.in figure::after{animation:prsh 1.3s ease calc(.5s + var(--i,0) * .16s) 1 both}
@keyframes prsh{to{transform:translateX(130%)}}
#prensa .press img{height:23rem;width:100%;object-fit:cover;object-position:top;border:0;border-radius:.3rem;box-shadow:none}
#prensa .press img:hover{transform:none;box-shadow:none}
#prensa .press figcaption{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin:0;padding:.65rem .35rem .7rem;font-size:.82rem;font-weight:600;color:var(--accent);letter-spacing:.01em}
#prensa .press figcaption::after{content:"Leer →";flex:none;font-size:.75rem;background:var(--accent);color:#fff;padding:.25rem .65rem;border-radius:2rem;font-weight:700}
#prensa .press figure.on figcaption::after{animation:prpl 1.6s ease-in-out infinite}
@keyframes prpl{50%{transform:translateX(.25rem)}}
@media(min-width:34.01rem){#prensa .press{margin-left:0;margin-right:0;padding-left:.5rem;padding-right:.5rem}}
@media(prefers-reduced-motion:reduce){#prensa .press figure{opacity:1;transform:none;transition:none}#prensa .press.in figure::after{animation:none}}
#prensa .press figcaption{display:grid;grid-template-columns:1fr auto;align-items:center;gap:.35rem .5rem;padding:.7rem .4rem .85rem;font-weight:400}
#prensa .press figcaption b{grid-column:1;grid-row:1;font-size:.85rem;font-weight:700;color:var(--accent)}
#prensa .press figcaption::after{grid-column:2;grid-row:1}
#prensa .press figcaption span{grid-column:1/-1;grid-row:2;font-size:.8rem;line-height:1.35;color:var(--mute)}
.rail,.svc-g,#prensa .press{overscroll-behavior-x:contain}
.svc-g,.svc-g:has(.half),#prensa .press{scrollbar-width:thin}
.svc-g::-webkit-scrollbar,#prensa .press::-webkit-scrollbar{display:block;height:8px}
.svc-sub-h{margin:2.5rem 0 0}.svc-sub-h h2{font-size:1.5rem;margin:0 0 1rem}.svc-sg{display:grid;grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));gap:1rem}.svc-sg .ev{flex:none;width:100%;text-decoration:none}.svc-sg .ev span{font-size:1.25rem}@media(max-width:720px){.hv{padding-top:0!important}}.md h2{font-size:1.5rem;margin:2.2rem 0 .3rem}.md-n{color:var(--mute);margin:0 0 1rem}.md-g{display:grid;grid-template-columns:repeat(auto-fill,minmax(10.5rem,1fr));gap:.8rem}.md-c{border:2px solid var(--accent);border-radius:1rem;overflow:hidden;background:var(--card,#fff)}.md-p{aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;padding:1.2rem}.md-p.dark{background:#1b0f13}.md-p.light{background:#f1ebeb}.md-p img{max-width:100%;max-height:100%;object-fit:contain;display:block}.md-p.photo{padding:0;background:#e9e4e4}.md-ph .md-p{aspect-ratio:3/4}.md-p.photo img{width:100%;height:100%;object-fit:cover}.md-b{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.7rem .9rem;flex-wrap:wrap}.md-b span{display:flex;gap:.4rem}.md-b a{border:2px solid var(--accent);color:var(--accent);border-radius:99rem;padding:.25rem .8rem;font-weight:700;font-size:.9rem;text-decoration:none;transition:background .2s,color .2s}.md-b a:hover{background:var(--accent);color:var(--on,#fff)}.svc-sub-h{position:relative;overflow-x:clip}.svc-sg .ev.on{transform:none;box-shadow:0 10px 26px rgba(122,27,45,.4)}.svc-sub-h:not(.go) .svc-sg .ev{opacity:0}.svc-sub-h h2{position:relative;display:inline-block}.svc-sub-h h2::after{content:"";position:absolute;left:0;bottom:-.3rem;height:3px;width:100%;background:linear-gradient(90deg,#7a1b2d,#d4a64a);transform-origin:left;transform:scaleX(0)}.svc-sg .ev .bk{position:absolute;inset:0;border-radius:inherit;z-index:3;opacity:0;pointer-events:none;display:flex;align-items:center;justify-content:center;color:#f3d9a0;font-size:3.2rem;background:radial-gradient(circle at 50% 40%,#b02b41 0,#7a1b2d 55%,#44101b 100%);box-shadow:inset 0 0 0 7px rgba(243,217,160,.85),inset 0 0 0 10px #7a1b2d}@keyframes svdeal{0%{opacity:1;transform:perspective(900px) translate(var(--tx),var(--ty)) rotateY(180deg) rotateZ(var(--rz)) scale(.55)}55%{opacity:1;transform:perspective(900px) translate(calc(var(--tx)*.25),calc(var(--ty)*.25)) rotateY(80deg) rotateZ(calc(var(--rz)*.3)) scale(1.12)}100%{opacity:1;transform:perspective(900px) none}}@keyframes svbk{0%,45%{opacity:1}46%,100%{opacity:0}}@keyframes svh2{0%{opacity:0;letter-spacing:.4em;filter:blur(8px);transform:scale(1.3)}60%{text-shadow:0 0 24px rgba(212,166,74,.9)}100%{opacity:1;letter-spacing:0;filter:none;transform:none;text-shadow:none}}@keyframes svul{to{transform:scaleX(1)}}@keyframes svbur{0%{opacity:.95;transform:scale(.2)}100%{opacity:0;transform:scale(7)}}@keyframes svtw{0%{opacity:0;transform:translate(0,0) scale(.2) rotate(0)}15%{opacity:1}100%{opacity:0;transform:translate(var(--sx),var(--sy)) scale(1.2) rotate(220deg)}}.svc-sub-h.go h2{animation:svh2 .9s cubic-bezier(.2,.8,.2,1) backwards}.svc-sub-h.go h2::after{animation:svul .9s ease .5s forwards}.svc-sub-h.go .svc-sg .ev{animation:svdeal 1.15s cubic-bezier(.2,.9,.25,1.05) backwards;animation-delay:calc(.45s + var(--i)*.17s);z-index:calc(10 - var(--i))}.svc-sub-h.go .svc-sg .ev .bk{animation:svbk 1.15s linear backwards;animation-delay:calc(.45s + var(--i)*.17s)}.sg-bur{position:absolute;width:70px;height:70px;margin:-35px 0 0 -35px;border-radius:50%;pointer-events:none;z-index:4;opacity:0;background:radial-gradient(circle,#fff 0,rgba(243,217,160,.95) 28%,rgba(122,27,45,.45) 56%,transparent 70%)}.svc-sub-h.go .sg-bur{animation:svbur 1.1s ease-out .3s both}.svc-sub-h .sp{position:absolute;pointer-events:none;opacity:0;z-index:5;line-height:1}.svc-sub-h.go .sp{animation:svtw 1.6s ease-out both;animation-delay:calc(.35s + var(--i)*.035s)}@media(prefers-reduced-motion:reduce){.svc-sub-h:not(.go) .svc-sg .ev{opacity:1}.svc-sub-h.go h2,.svc-sub-h.go h2::after,.svc-sub-h.go .svc-sg .ev,.svc-sub-h.go .svc-sg .ev .bk,.svc-sub-h.go .sp,.svc-sub-h.go .sg-bur{animation:none}.svc-sub-h h2::after{transform:none}}.svc-g{padding-bottom:.8rem!important;overflow-y:hidden;touch-action:pan-x pan-y;overscroll-behavior-y:auto}.svc-g figure{transform:none!important;opacity:1!important;clip-path:none!important;filter:none!important}@media(hover:none){.svc-g img:hover{transform:none;box-shadow:none}}
.p15{background-image:url(/img/apolo-jr-mago-espectaculo-de-magia-para-salas-y-teatros.webp)}
.svc-ph.p15,.ev.p15{background-position:50% 30%}


/* v106: sistema de espaciado unificado y fotos encuadradas en móvil */
:root{--gut:1.25rem;--sec:clamp(3.5rem,9vw,5.5rem);--blk:clamp(2.5rem,6vw,3.5rem);--h2gap:1rem}
.wrap{padding-left:var(--gut);padding-right:var(--gut)}
section{padding-top:var(--sec);padding-bottom:var(--sec)}
section#svcpage{padding-top:1rem;padding-bottom:var(--sec)}
.sep{margin:0 0 1.5rem}
h2{margin-top:0;margin-bottom:var(--h2gap)}
.wrap>p,.about p{margin-top:0;margin-bottom:1rem}
.wrap>h2+p{margin-top:0}
.grid,.press,#prensa .press,.calwrap,.hub-g,.rail{margin-top:1.5rem}
#prensa .press{margin-top:.5rem}
.about{gap:1.5rem 2.5rem}
/* páginas de servicio: un único ritmo entre bloques */
#svcbox>*{margin-top:0;margin-bottom:0}
#svcbox>*+*{margin-top:var(--blk)}
#svcbox>.svc-back{display:inline-block;margin-bottom:0}
#svcbox>.svc-back+*{margin-top:1.25rem}
#svcbox .svc-top>div>:last-child{margin-bottom:0}
.svc-b{gap:1rem}
.svc-faq .svc-b,.md .md-g{margin-top:0}
#svcbox>.svc-seo+.hub-g{margin-top:var(--h2gap)}
#svcbox>.svc-seo+.svc-seo{margin-top:var(--blk)}
/* todos los H2 de sección dentro de un servicio, mismo tamaño */
.svc-seo>h2,.svc-faq>h2,.svc-sub-h>h2,.svc-cta h2,.md>h2,.svc-rel>h2,.svc-rel>h3{font-size:clamp(1.6rem,4.5vw,2.2rem);line-height:1.15;margin:0 0 var(--h2gap)}
.svc-seo p{margin:0 0 .8rem}.svc-seo p:last-child{margin-bottom:0}
.svc-cta{padding:clamp(1.25rem,4vw,2rem)}
.svc-g{margin-top:0}
.svc-g figcaption{margin-top:.5rem}
.svc-v{margin-left:auto;margin-right:auto}
footer{padding-top:var(--blk);padding-bottom:2.5rem}
/* móvil: fotos a todo el ancho, mismo margen a ambos lados */
@media (max-width:48rem){
.svc-top{gap:1.5rem}
.svc-ph,.svc-ph.p11{justify-self:start;width:calc(100% - .6rem);max-width:none;aspect-ratio:4/5}
.svc-ph.p11{aspect-ratio:1/1}
.about img{max-width:none;width:100%;aspect-ratio:4/5;margin:0}
.svc-v{max-width:none;width:100%}
.svc-v video{max-height:80vh;object-fit:cover}
.hv-txt{padding-bottom:var(--sec)}
}
@media (min-width:48.01rem) and (max-width:62rem){.svc-ph{max-width:20rem}}
footer{padding-top:1.5rem;border-top:1px solid rgba(122,27,45,.12)}
footer .ft-nav a,footer nav a{padding:0!important;margin:0;border:0;background:none}
#contacto{padding-bottom:calc(var(--sec) * .75)}


/* v107: opiniones */
.op{grid-template-columns:repeat(auto-fit,minmax(16rem,1fr))}
.op-c{background:var(--bg);border-radius:1rem;padding:1.4rem;display:flex;flex-direction:column;gap:.6rem;box-shadow:0 .4rem 1.2rem rgba(122,27,45,.08)}
.op-st{margin:0;color:#d4a64a;letter-spacing:.15em;font-size:1.05rem}.op-st span{color:var(--mute);letter-spacing:0;font-size:.85rem;margin-left:.3rem}
.op-c blockquote{margin:0;flex:1}.op-c blockquote p{margin:0;font-size:1.08rem;line-height:1.5;color:var(--ink)}
.op-who{margin:0;font-size:.9rem;color:var(--mute)}
.grid.op .op-st{color:#d4a64a}.grid.op blockquote p{color:var(--ink)}.grid.op .op-who{color:var(--mute)}
.op-src{margin:2rem 0 0}.op-src a{color:var(--accent);font-weight:600;text-decoration:none}


/* v108: tarjeta Eventos familiares */
.p16{background-image:url(/img/apolo-jr-mago-una-celebracion-en-familia.webp)}
.p16{background-position:50% 40%}


/* v109: foto de Eventos privados */
.p9{background-image:url(/img/apolo-jr-mago-magia-para-eventos-privados-y-cumpleanos-de-ad.webp)}
.ev.p9,.svc-ph.p9{background-position:50% 20%}

.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.svc-b h2,.svc-rel h2{font-size:1.25rem;margin:0 0 .5rem}.svc-rel h2{margin:0 0 .8rem}
.svc-seo{margin:3rem 0 0;max-width:46rem}.svc-seo h2{font-size:clamp(1.4rem,4vw,2rem);margin:0 0 .6rem}.svc-seo p{margin:0}
.svc-faq{margin:3rem 0 0}.svc-faq>h2{font-size:clamp(1.4rem,4vw,2rem);margin:0 0 1rem}
a.ev{text-decoration:none}
.band a.link,.head a.link{text-decoration:none}
.ft-nav{display:flex;flex-wrap:wrap;gap:.4rem 1.1rem;margin:1.4rem 0 .6rem;font-size:.95rem}
.ft-nav a{color:inherit;text-decoration:none;opacity:.85}.ft-nav a:hover{opacity:1;text-decoration:underline}
.hub-g{display:grid;gap:1.2rem;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));margin:2rem 0 0}
.hub-g>div{background:var(--card);border-radius:1rem;padding:1.3rem}.hub-g h2{font-size:1.25rem;margin:0 0 .5rem}
.hub-g p{margin:0 0 .8rem}.hub-g a.more{font-weight:600;color:var(--accent);text-decoration:none}
.hub-g h3{font-size:1.25rem;margin:0 0 .5rem}
.svc-zn{margin:.8rem 0 0!important}.svc-zn a,.ft-nap a,.legal a{color:var(--accent)}
.svc-seo+.svc-seo{margin-top:2rem}.legal h2{font-size:1.3rem;margin:1.6rem 0 .4rem}.legal p{margin:0 0 .6rem}
.ft-nap{font-size:.9rem;margin:.6rem 0 1rem;opacity:.85;line-height:1.5}
.ft-legal{display:flex;gap:1rem;font-size:.85rem;margin:.8rem 0 0;opacity:.75}.ft-legal a{color:inherit}
footer .ft-nav a{display:inline-block!important}
/* v106: sistema de espaciado unificado y fotos encuadradas en móvil */
:root{--gut:1.25rem;--sec:clamp(3.5rem,9vw,5.5rem);--blk:clamp(2.5rem,6vw,3.5rem);--h2gap:1rem}
.wrap{padding-left:var(--gut);padding-right:var(--gut)}
section{padding-top:var(--sec);padding-bottom:var(--sec)}
section#svcpage{padding-top:1rem;padding-bottom:var(--sec)}
.sep{margin:0 0 1.5rem}
h2{margin-top:0;margin-bottom:var(--h2gap)}
.wrap>p,.about p{margin-top:0;margin-bottom:1rem}
.wrap>h2+p{margin-top:0}
.grid,.press,#prensa .press,.calwrap,.hub-g,.rail{margin-top:1.5rem}
#prensa .press{margin-top:.5rem}
.about{gap:1.5rem 2.5rem}
/* páginas de servicio: un único ritmo entre bloques */
#svcbox>*{margin-top:0;margin-bottom:0}
#svcbox>*+*{margin-top:var(--blk)}
#svcbox>.svc-back{display:inline-block;margin-bottom:0}
#svcbox>.svc-back+*{margin-top:1.25rem}
#svcbox .svc-top>div>:last-child{margin-bottom:0}
.svc-b{gap:1rem}
.svc-faq .svc-b,.md .md-g{margin-top:0}
#svcbox>.svc-seo+.hub-g{margin-top:var(--h2gap)}
#svcbox>.svc-seo+.svc-seo{margin-top:var(--blk)}
/* todos los H2 de sección dentro de un servicio, mismo tamaño */
.svc-seo>h2,.svc-faq>h2,.svc-sub-h>h2,.svc-cta h2,.md>h2,.svc-rel>h2,.svc-rel>h3{font-size:clamp(1.6rem,4.5vw,2.2rem);line-height:1.15;margin:0 0 var(--h2gap)}
.svc-seo p{margin:0 0 .8rem}.svc-seo p:last-child{margin-bottom:0}
.svc-cta{padding:clamp(1.25rem,4vw,2rem)}
.svc-g{margin-top:0}
.svc-g figcaption{margin-top:.5rem}
.svc-v{margin-left:auto;margin-right:auto}
footer{padding-top:var(--blk);padding-bottom:2.5rem}
/* móvil: fotos a todo el ancho, mismo margen a ambos lados */
@media (max-width:48rem){
.svc-top{gap:1.5rem}
.svc-ph,.svc-ph.p11{justify-self:start;width:calc(100% - .6rem);max-width:none;aspect-ratio:4/5}
.svc-ph.p11{aspect-ratio:1/1}
.about img{max-width:none;width:100%;aspect-ratio:4/5;margin:0}
.svc-v{max-width:none;width:100%}
.svc-v video{max-height:80vh;object-fit:cover}
.hv-txt{padding-bottom:var(--sec)}
}
@media (min-width:48.01rem) and (max-width:62rem){.svc-ph{max-width:20rem}}
footer{padding-top:1.5rem;border-top:1px solid rgba(122,27,45,.12)}
footer .ft-nav a,footer nav a{padding:0!important;margin:0;border:0;background:none}
#contacto{padding-bottom:calc(var(--sec) * .75)}
.svc-op .op-c{max-width:40rem;background:var(--card);box-shadow:none}
.op-who a{color:var(--accent)}
