/* THEME-READY: cambia queste variabili per il tuo prossimo evento.
   --hero-video è un percorso testuale letto da script.js, relativo a index.html. */
:root{--ui-font:'Inter',Arial,sans-serif;--cta-start:#0879ef;--cta-end:#0062db;--cta-hover:#0053c6;--cta-shadow:#0879ef33;--brand-blue:#0879ef;--brand-pink:#ef0877;--brand-yellow:#ffe34b;--brand-orange:#ff8b14;--brand-green:#81d12b;--ink:#152346;--paper:#fff;--soft:#f3f7ff;--hero-video:"assets/hero-gemini.mp4";--heading:'Fredoka',sans-serif;--body:'Nunito',sans-serif}
/* Attiva aggiungendo data-theme="halloween" o "christmas" a <html>. */
:root[data-theme="halloween"]{--brand-blue:#6834bf;--brand-pink:#d44800;--brand-yellow:#ffb63d;--soft:#faf5ff}
:root[data-theme="christmas"]{--brand-blue:#075b43;--brand-pink:#cb2044;--brand-yellow:#ffe29a;--soft:#f0faf6}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.6;background:var(--paper)}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}img{max-width:100%;display:block}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--heading);line-height:1.07;font-weight:600}h2{font-size:clamp(2.3rem,4.4vw,4rem);letter-spacing:-.025em}h2 span{color:var(--brand-blue)}:focus-visible{outline:3px solid var(--brand-orange);outline-offset:6px}.skip{position:fixed;top:-100px;left:20px;background:white;padding:12px;z-index:100}.skip:focus{top:10px}.section{padding:78px 24px;scroll-margin-top:10px}.eyebrow{font-size:.78rem;font-weight:900;letter-spacing:.16em;margin-bottom:20px}.button{display:inline-flex;align-items:center;justify-content:center;gap:20px;padding:17px 26px;border-radius:100px;background:var(--brand-yellow);color:var(--ink);font-weight:900;font-size:1rem;box-shadow:0 5px 0 rgba(18,35,70,.13);transition:transform .2s,box-shadow .2s}.button:hover{transform:translateY(-4px) rotate(-1deg);box-shadow:0 9px 0 rgba(18,35,70,.12)}.button.small{font-size:.88rem;padding:12px 21px;box-shadow:none}.header{position:absolute;top:0;left:0;width:100%;z-index:20;padding:12px 18px}.nav-shell{max-width:1280px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:20px;background:#fff;padding:6px 22px;border-radius:20px;box-shadow:0 4px 30px #07162c12}.brand{position:relative;display:block;width:130px;height:60px;overflow:hidden;flex-shrink:0}.brand img{position:absolute;width:130px;max-width:none;top:-29px;filter:drop-shadow(0 2px 2px #0002)}nav{display:none}nav.open{display:flex;position:absolute;top:89px;left:18px;right:18px;flex-direction:column;background:#fff;padding:25px;border-radius:20px;gap:20px;box-shadow:0 15px 25px #07162c20}nav a{font-size:.9rem;font-weight:800}nav a:hover{color:var(--brand-blue)}.menu-toggle{background:none;border:0;width:42px;height:42px;padding:8px}.menu-toggle span{display:block;height:3px;background:var(--ink);margin:7px 0;border-radius:4px}.header.scrolled{position:fixed;padding-top:8px}.scrolled .nav-shell{background:#fffffff0;backdrop-filter:blur(18px)}.hero{height:100svh;min-height:730px;position:relative;overflow:hidden;background:#000;color:white;display:grid;place-items:center;text-align:center}.hero video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transform:none}.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,#00000015,#00000035 45%,#00000045)}.hero-content{position:relative;z-index:2;padding:135px 22px 110px;max-width:1050px;animation:enter .8s ease-out}.light{font-size:.7rem;color:white;letter-spacing:.14em;display:flex;justify-content:center;align-items:center;gap:10px}.spark{color:var(--brand-yellow);font-size:1.3rem}.hero h1{font-size:clamp(3.5rem,7.5vw,7.3rem);line-height:1.03;letter-spacing:-.025em;text-shadow:0 5px 25px #0004}.hero h1 span{color:var(--brand-yellow);display:inline-block}.hero-content>p{font-size:1rem;line-height:1.7;margin:25px 0 30px;text-shadow:0 2px 8px #0008}.hero-cta{padding:19px 29px;margin-top:35px}.hero-secondary{display:block;text-decoration:underline;text-underline-offset:5px;font-weight:800;font-size:.9rem;margin-top:25px}.hero-bottom{position:absolute;bottom:24px;left:30px;right:30px;display:flex;justify-content:space-between;font-size:.8rem;font-weight:800;z-index:2}.hero-bottom>span{display:none}.hero-bottom>a{margin:auto}.video-toggle{position:absolute;bottom:64px;right:24px;z-index:3;border:1px solid #ffffff60;background:#11203f70;color:white;border-radius:30px;padding:8px 13px;font-size:.8rem}.video-toggle span{display:none}.ribbon{display:flex;justify-content:space-around;align-items:center;gap:32px;padding:21px 24px;background:var(--brand-yellow);overflow:hidden;white-space:nowrap;font-weight:600;font-family:var(--heading);font-size:1.05rem;letter-spacing:.06em}.ribbon i{font-style:normal;color:var(--brand-pink);font-size:1.4rem}.services{max-width:1328px;margin:auto}.section-heading{display:flex;flex-direction:column;gap:25px;margin-bottom:42px}.section-heading>p{max-width:340px;color:#52617b}.service-grid{display:grid;grid-template-columns:1fr;gap:18px}.service-card{border-radius:26px;padding:26px;position:relative;transition:transform .25s,box-shadow .25s}.service-card:hover{transform:translateY(-8px);box-shadow:0 20px 35px #15234612}.pink{background:#ffedf5;--card-accent:#c7005b}.blue{background:#e9f3ff;--card-accent:#0969cc}.yellow{background:#fff7d5;--card-accent:#8b5300}.green{background:#edfadf;--card-accent:#347510}.card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:35px;color:var(--card-accent)}.card-number{font-size:.8rem;font-weight:900}.service-symbol{font-family:var(--heading);font-size:3rem;line-height:1}.service-card h3{font-size:1.85rem;color:var(--card-accent);margin-bottom:18px}.service-card p{font-size:1rem;line-height:1.6;min-height:76px}.service-card a{border-top:1px solid #15234620;margin-top:27px;padding-top:18px;display:flex;justify-content:space-between;font-weight:900;font-size:.86rem}.service-card a span{font-size:1.4rem;line-height:1}.mascots{background:var(--soft);position:relative;display:grid;gap:40px;overflow:hidden;align-items:center}.mascot-photo{position:relative;margin:0 auto;width:100%;max-width:540px;transform:rotate(-3deg)}.mascot-photo>img{width:100%;aspect-ratio:1.2;object-fit:cover;border:10px solid white;border-radius:32px;box-shadow:0 12px 40px #0b3c8915}.photo-sticker{position:absolute;bottom:-20px;right:5px;padding:23px 16px;border-radius:50%;background:var(--brand-yellow);font-family:var(--heading);font-size:1.7rem;line-height:1.05;transform:rotate(12deg);box-shadow:0 5px 0 #15234615}.mascot-copy{max-width:510px;margin:auto}.mascot-copy>p:not(.eyebrow){margin-top:23px;color:#52617b}.mascot-copy .button{margin-top:30px}.floating-mascot{position:absolute;pointer-events:none;width:120px;height:148px;overflow:hidden;animation:float 6s ease-in-out infinite}.floating-mascot img{position:absolute;max-width:none;width:260px;top:-62px;left:0}.mascot-one{bottom:-26px;right:-32px;transform:rotate(-12deg);opacity:.9}.process{max-width:1240px;margin:auto;text-align:center}.steps{display:grid;gap:30px;margin:0 0 48px}.steps article{padding:20px 22px}.step-number{display:inline-grid;place-items:center;width:62px;height:62px;border-radius:22px;background:#eaf3ff;color:var(--brand-blue);font:600 2rem var(--heading);transform:rotate(-8deg);margin-bottom:24px}.steps article:nth-child(2) .step-number{background:#ffedf5;color:var(--brand-pink);transform:rotate(7deg)}.steps article:nth-child(3) .step-number{background:#fff7d5;color:#8b5300}.steps h3{font-size:1.5rem;margin-bottom:14px}.steps p{color:#52617b;font-size:1rem}.region-note{border-top:1px solid #15234616;padding-top:30px;font-size:.95rem;font-weight:800}.region-note span{color:var(--brand-pink);margin-right:10px}.contact{position:relative;overflow:hidden;text-align:center;background:var(--brand-blue);color:white;padding-top:75px;padding-bottom:80px}.contact h2{font-size:clamp(4rem,8vw,7.5rem);line-height:1}.contact h2 span{color:var(--brand-yellow)}.contact>p:not(.eyebrow){margin-top:24px}.contact-actions{display:flex;align-items:center;flex-direction:column;gap:20px;margin-top:32px}.call-link{font-size:.95rem;font-weight:800;text-decoration:underline;text-underline-offset:5px}.contact .contact-hint{font-size:.85rem;color:#fffdf2}.mascot-two{bottom:-13px;left:-15px;width:150px;height:180px;display:none}.mascot-two img{width:325px;top:-78px}.contact .eyebrow{color:#fffdf2}footer{padding:45px 24px 20px}.footer-grid{max-width:1240px;margin:auto;display:grid;gap:35px}.footer-brand .brand{height:70px;width:150px}.footer-brand .brand img{width:150px;top:-34px}.footer-brand p{font-weight:800;font-size:.9rem;margin-top:10px}footer h3{font-family:var(--body);font-size:.85rem;font-weight:900;margin-bottom:15px}footer a:not(.brand){display:block;font-size:.9rem;margin-bottom:8px;color:#52617b}footer a:hover{color:var(--brand-blue)}address{font-style:normal;font-size:.9rem;color:#52617b;margin-bottom:10px}.footer-bottom{max-width:1240px;margin:35px auto 0;border-top:1px solid #15234616;padding-top:20px;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;font-size:.78rem;color:#52617b}.floating-whatsapp{position:fixed;bottom:18px;right:18px;z-index:30;width:54px;height:54px;display:flex;align-items:center;justify-content:center;background:#087a4a;color:white;border:3px solid white;border-radius:50%;box-shadow:0 5px 20px #15234630}.floating-whatsapp svg{width:29px;height:29px}.floating-whatsapp span{display:none}.floating-whatsapp:hover{transform:translateY(-3px)}@keyframes enter{from{opacity:0;transform:translateY(25px)}to{opacity:1;transform:translateY(0)}}@keyframes float{0%,100%{translate:0 0}50%{translate:0 -12px}}
@media(min-width:600px){.service-grid{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:repeat(2,1fr)}.hero-content>p{font-size:1.17rem}.hero-bottom>span{display:block}.hero-bottom>a{margin:0}.video-toggle span{display:none}.brand{width:155px;height:75px}.brand img{width:155px;top:-35px}.hero{min-height:760px}.section{padding:95px 36px}.mascot-two{display:block}}
@media(min-width:1000px){.header{padding:20px 30px}.nav-shell{padding:4px 25px}nav{display:flex;align-items:center;gap:27px}.menu-toggle{display:none}.hero video{transform:none;object-position:center}.hero-overlay{background:linear-gradient(180deg,#00000015,#00000035 45%,#00000045)}.hero-content{padding-top:115px}.hero-bottom{left:55px;right:55px;bottom:30px}.video-toggle{bottom:65px;right:55px}.section-heading{flex-direction:row;justify-content:space-between;align-items:flex-end}.section-heading>p{margin-bottom:8px}.service-grid{grid-template-columns:repeat(4,1fr)}.service-card{padding:29px 25px}.service-card h3{font-size:1.9rem}.service-card p{min-height:100px}.mascots{grid-template-columns:1fr 1fr;padding:100px max(45px,calc((100vw - 1200px)/2));gap:85px}.steps{grid-template-columns:repeat(3,1fr)}.steps article+article{border-left:1px dashed #15234630}.mascot-one{width:145px;height:175px;right:-25px}.mascot-one img{width:310px;top:-75px}.footer-grid{grid-template-columns:1.1fr 1fr 1fr 1fr}.floating-whatsapp{right:26px;bottom:24px}.light{font-size:.8rem}.hero{min-height:780px}}
.hero #hero-video{object-fit:cover;object-position:center;transform:none}
.brand img{height:auto;width:105px;top:-23px;left:8px}.footer-brand .brand img{width:110px;top:-24px;left:8px}
@media(min-width:600px){.brand img{width:115px;top:-25px;left:15px}}
.seasonal{margin-top:35px;background:var(--ink);color:white;padding:35px;border-radius:26px;display:grid;gap:25px}.seasonal .eyebrow{color:var(--brand-yellow);margin-bottom:12px}.seasonal h3{font-size:1.8rem;margin-bottom:12px}.seasonal p:not(.eyebrow){font-size:1rem;color:#d6e0f1}.season-links{display:flex;flex-wrap:wrap;gap:12px;align-content:center}.season-links a{border:1px solid #ffffff60;border-radius:50px;padding:10px 20px;font-size:.95rem;font-weight:800;transition:background .2s,color .2s}.season-links a:hover{background:var(--brand-yellow);color:var(--ink);border-color:var(--brand-yellow)}
@media(min-width:1000px){.service-grid{grid-template-columns:repeat(3,1fr)}.service-card p{min-height:76px}.seasonal{grid-template-columns:1.1fr 1fr;gap:40px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
.service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 18px;align-items:start}
.service-rosette{--rosette-hue:0deg;min-width:0}
.rosette-link{position:relative;display:block;width:100%;aspect-ratio:1;isolation:isolate;transition:transform .2s}
.rosette-link:hover{transform:translateY(-5px)}
.rosette-photo{position:absolute;left:10.7%;top:6.6%;width:78.2%;aspect-ratio:1;border-radius:50%;overflow:hidden;background:#f4f8fc;box-shadow:inset 0 0 0 1px #e0e8f0;z-index:-1}
.rosette-photo img{width:100%;height:100%;object-fit:cover}
.rosette-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;filter:hue-rotate(var(--rosette-hue)) drop-shadow(0 5px 5px #17314c1a);pointer-events:none}
.service-rosette.pink{background:none;--rosette-hue:310deg}.service-rosette.blue{background:none;--rosette-hue:175deg}.service-rosette.green{background:none;--rosette-hue:75deg}.service-rosette.yellow{background:none;--rosette-hue:20deg}.service-rosette.orange{--rosette-hue:0deg}
.service-rosette h3{position:absolute;left:19%;right:19%;top:69.5%;height:10%;display:flex;align-items:center;justify-content:center;font-family:var(--heading);font-weight:600;font-size:clamp(.72rem,2.7vw,1.2rem);line-height:1.05;text-transform:uppercase;text-align:center;color:white;text-shadow:0 2px 2px #0008;margin:0}
.seasonal-heading{margin:65px 0 28px;text-align:center}.seasonal-heading h3{font-size:clamp(1.8rem,3vw,2.5rem)}.seasonal-heading .eyebrow{color:var(--brand-blue)}
@media(min-width:700px){.service-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:35px}.service-rosette h3{font-size:1.1rem}}
@media(min-width:1000px){.service-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:28px 16px}.service-rosette h3{font-size:clamp(.8rem,1.1vw,1rem)}}
@media(prefers-reduced-motion:reduce){.rosette-link{transition:none}}
/* SEZIONI EDITORIALI E SPAZI FOTO: sostituire il contenuto di .portrait-space con img. */
.about{background:#fff;padding-top:70px;padding-bottom:75px}.about-inner{max-width:1150px;margin:auto;display:grid;gap:30px;align-items:center}.about-mark{max-width:270px;width:100%;margin:auto;aspect-ratio:1;position:relative;overflow:hidden}.about-mark img{position:absolute;left:0;top:-21%;width:100%;height:auto}.about-copy h2{color:var(--brand-pink);margin-bottom:25px}.about-copy p:not(.eyebrow){margin-bottom:17px;color:#52617b}.about-link{font-weight:900;color:var(--brand-blue);text-decoration:underline;text-underline-offset:6px}.party-heading{display:block;text-align:center;margin-bottom:50px}.party-heading h2{color:var(--brand-pink)}.gallery-intro{max-width:740px;margin:0 auto 42px;text-align:center}.gallery-intro>p:not(.eyebrow){margin-top:22px;color:#52617b}.mascot-gallery-section{background:var(--soft)}.mascot-gallery-section h2{color:var(--brand-blue);font-size:clamp(3rem,6vw,5rem)}.portrait-gallery{max-width:1256px;margin:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.portrait-placeholder{margin:0;min-width:0}.portrait-space{aspect-ratio:3/4.5;border-radius:26px;position:relative;overflow:hidden;display:grid;place-items:center;background:#fff;border:2px dashed #bccde6;color:#6b7e98}.portrait-space img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.slot-number{position:absolute;left:18px;top:16px;font-family:var(--heading);font-size:1.5rem;color:#98abc2}.slot-message{font-weight:800;font-size:.85rem}.mascot-slot:nth-child(2n) .portrait-space{border-color:#e7bbcf;background:#fff9fc}.mascot-slot:nth-child(3n) .portrait-space{border-color:#d4dca0;background:#fcfdf6}.gallery-action{margin-top:35px;text-align:center}.news-section{background:#fff}.news-section h2{color:var(--brand-pink)}.news-slot .portrait-space{background:#fff7dd;border-color:#e9d9a4}.news-slot:nth-child(2n) .portrait-space{background:#fff0f6;border-color:#e5b6cf}.news-slot:nth-child(3n) .portrait-space{background:#eef7ff;border-color:#b7d5ee}.reviews-section{background:#f7faff}.reviews-grid{max-width:1200px;margin:auto;display:grid;gap:22px}.review-card{margin:0;padding:30px;background:#fff;border:1px solid #e4eaf1;border-radius:24px;box-shadow:0 8px 24px #15234608;display:flex;flex-direction:column}.review-stars{color:#a36d00;letter-spacing:.12em;font-size:1.25rem;margin-bottom:22px}.review-card blockquote{margin:0 0 28px;font-family:var(--heading);font-size:1.55rem;line-height:1.3}.review-card figcaption{margin-top:auto}.review-card figcaption strong{display:block;font-size:.95rem}.review-card figcaption a{font-size:.8rem;color:#627390;text-decoration:underline;text-underline-offset:4px}.reviews-link{color:var(--brand-blue);font-weight:900;text-decoration:underline;text-underline-offset:5px}.agency-numbers{max-width:1256px;margin:65px auto 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.agency-numbers article{background:white;border-radius:24px;padding:28px 20px;border:1px solid #e4eaf1;box-shadow:0 6px 18px #15234608}.agency-numbers article>strong{display:block;color:var(--brand-pink);font-family:var(--heading);font-size:clamp(2.8rem,5vw,4.5rem);font-weight:600;line-height:1.05;margin-bottom:17px}.agency-numbers article:nth-child(2)>strong{color:var(--brand-blue)}.agency-numbers article:nth-child(3)>strong{color:#64870e}.agency-numbers article:nth-child(4)>strong{color:#c65b00}.agency-numbers article>strong span{font-size:.75em}.agency-numbers h3{font-family:var(--body);font-size:.9rem;font-weight:900;line-height:1.4}.location-section{background:#fff}.location-inner{max-width:1200px;margin:auto;display:grid;gap:35px;align-items:center}.location-copy>p:not(.eyebrow){margin-top:24px;color:#52617b}.region-pills{display:flex;flex-wrap:wrap;gap:10px;margin:25px 0}.region-pills span{padding:7px 14px;border-radius:50px;background:#eaf3ff;color:#0969cc;font-weight:900;font-size:.85rem}.location-copy address{font-size:1rem}.location-copy address strong{color:var(--ink)}.map-link{display:inline-block;margin-top:15px;color:var(--brand-blue);font-size:.9rem;font-weight:900;text-decoration:underline;text-underline-offset:5px}.location-map{border-radius:28px;overflow:hidden;border:1px solid #e4eaf1;min-height:360px;background:var(--soft)}.location-map iframe{width:100%;height:400px;display:block;border:0}.follow-section{text-align:center;background:#fff8de}.follow-section h2{font-size:clamp(4rem,9vw,8rem);font-weight:600;text-shadow:0 4px 0 #15234612}.follow-section h2 span:nth-child(1){color:var(--brand-blue)}.follow-section h2 span:nth-child(2){color:var(--brand-pink)}.follow-section h2 span:nth-child(3){color:var(--brand-orange)}.social-links{display:flex;justify-content:center;gap:24px;margin-top:38px}.social-links>a{width:88px;display:flex;flex-direction:column;align-items:center;gap:10px;font-weight:900;font-size:.85rem}.social-links svg{width:66px;height:66px;padding:17px;background:var(--brand-pink);color:white;border-radius:50%;box-shadow:0 5px 0 #15234615;transition:transform .2s}.social-links>a:nth-child(2) svg{background:var(--brand-blue)}.social-links>a:hover svg{transform:translateY(-4px)}.footer-title{max-width:1240px;margin:0 auto 40px;font-size:2rem;color:var(--brand-blue)}
@media(min-width:700px){.about-inner{grid-template-columns:.7fr 1.3fr;gap:45px}.about-mark{max-width:330px}.mascots-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}.news-gallery{grid-template-columns:repeat(4,minmax(0,1fr))}.reviews-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.review-card{padding:27px}.review-card blockquote{font-size:1.35rem}.agency-numbers{grid-template-columns:repeat(4,minmax(0,1fr))}.location-inner{grid-template-columns:1fr 1fr;gap:50px}.location-map iframe{height:470px}}
@media(min-width:1000px){nav{gap:17px}nav a{font-size:.82rem}.button.small{padding:12px 17px;font-size:.82rem}.mascots-gallery{grid-template-columns:repeat(5,minmax(0,1fr))}.portrait-gallery{gap:24px}.about-inner{gap:75px}.about-mark{max-width:350px}.about-copy{max-width:680px}}
.contact-logo{display:none;pointer-events:none}
@media(min-width:1000px){.contact-logo{display:block;position:absolute;left:30px;bottom:14px;width:190px}.contact-logo img{display:block;position:static;width:100%;height:auto;max-width:100%;filter:drop-shadow(0 4px 5px #06245130)}}
.hero h1.hero-lettering{font-size:0;line-height:1;text-shadow:none;width:min(740px,100%);margin:0 auto}
.hero-lettering img{display:block;width:100%;height:auto;max-height:calc(100svh - 310px);object-fit:contain;filter:drop-shadow(0 5px 14px #0005)}
.hero-content{width:100%;display:flex;flex-direction:column;align-items:center}
.hero .hero-cta{font-size:clamp(1.1rem,2vw,1.35rem);padding:20px 28px;min-height:72px;min-width:min(340px,100%);max-width:100%;margin-top:-12px;text-align:center;box-shadow:0 7px 0 #15234630,0 12px 26px #0002}
@media(min-width:700px){.hero .hero-cta{padding:22px 42px;min-height:78px;margin-top:-20px}}
.illustrated-title{font-size:0!important;line-height:1!important;text-shadow:none!important;position:relative;overflow:hidden;isolation:isolate;aspect-ratio:var(--title-ratio);width:min(100%,calc(var(--title-ratio) * clamp(3rem,6vw,5rem)));margin-left:auto;margin-right:auto}
.illustrated-title img{position:absolute;max-width:none;pointer-events:none;object-fit:initial;width:var(--sheet-width);height:auto;left:var(--sheet-left);top:var(--sheet-top)}
.about-copy .illustrated-title,.location-copy .illustrated-title{margin-left:0;margin-right:0}
.follow-section .illustrated-title{width:min(100%,calc(var(--title-ratio) * clamp(4rem,9vw,7rem)))}
.footer-title.illustrated-title{margin-left:0;margin-right:0;width:min(100%,calc(var(--title-ratio) * 3.5rem))}
.paint-section{position:relative;isolation:isolate;overflow:hidden}
.paint-splash{position:absolute;width:clamp(140px,17vw,245px);height:auto;z-index:-1;pointer-events:none;user-select:none;opacity:.28;object-fit:contain}
.paint-pink{filter:none}.paint-blue{filter:hue-rotate(238deg) brightness(1.3)}.paint-yellow{filter:hue-rotate(92deg) brightness(3.3)}.paint-orange{filter:hue-rotate(66deg) brightness(3.2)}.paint-green{filter:hue-rotate(111deg) brightness(2.4)}
.paint-top-left{left:-65px;top:15px;transform:rotate(-24deg)}.paint-top-right{right:-65px;top:20px;transform:rotate(35deg) scaleX(-1)}
.paint-bottom-left{left:-80px;bottom:12px;transform:rotate(155deg)}.paint-bottom-right{right:-75px;bottom:20px;transform:rotate(-125deg)}.paint-mid-left{left:-85px;top:45%;transform:rotate(70deg)}
.services.paint-section{max-width:none}.services.paint-section>.service-grid,.services.paint-section>.section-heading{max-width:1256px;margin-left:auto;margin-right:auto}
.process.paint-section{max-width:none}.process.paint-section>.steps,.process.paint-section>.region-note{max-width:1168px;margin-left:auto;margin-right:auto}
@media(max-width:599px){.paint-splash{width:125px;opacity:.18}.paint-top-left,.paint-bottom-left,.paint-mid-left{left:-70px}.paint-top-right,.paint-bottom-right{right:-70px}.paint-mid-left{display:none}}
.agency-numbers article>strong{font-variant-numeric:tabular-nums}
.section-mascot{--mascot-height:clamp(155px,17vw,210px);height:var(--mascot-height);width:calc(var(--mascot-height) * var(--mascot-ratio));position:absolute;overflow:hidden;z-index:0;pointer-events:none;user-select:none;filter:drop-shadow(0 5px 5px #15234612)}
.section-mascot img{position:absolute;width:var(--mascot-image-width);height:auto;max-width:none;left:var(--mascot-image-left);top:var(--mascot-image-top)}
.mascot-high-left{left:24px;top:12px;transform:rotate(-7deg)}.mascot-high-right{right:24px;top:14px;transform:rotate(7deg)}
.mascot-low-left{left:20px;bottom:20px;transform:rotate(5deg)}.mascot-low-right{right:24px;bottom:14px;transform:rotate(-5deg)}
.mascot-footer{--mascot-height:145px;right:12px;bottom:18px;opacity:.95}
.paint-section>:not(.paint-splash):not(.section-mascot){position:relative;z-index:1}
@media(min-width:1000px){.about-inner{padding-left:50px}.footer-grid{padding-right:60px}}
@media(max-width:999px){.section-mascot{--mascot-height:130px}.mascot-high-left{left:5px;top:12px}.mascot-high-right{right:5px;top:12px}.mascot-low-left{left:5px;bottom:5px}.mascot-low-right{right:5px;bottom:5px}.about-inner{padding-bottom:100px}.mascot-footer{display:none}}
@media(max-width:599px){.section-mascot{--mascot-height:85px;opacity:.95}.mascot-high-left{left:2px;top:5px}.mascot-high-right{right:2px;top:5px}.mascot-low-left{left:12px;bottom:5px}.mascot-low-right{right:12px;bottom:5px}.about-inner{padding-bottom:60px}}

/* Personaggi che presentano il titolo MASCOTTE. */
#mascotte{padding-top:220px}
#mascotte .mascot-stage{position:relative;margin-bottom:46px}
.disney-mascot{position:absolute;pointer-events:none;user-select:none;z-index:0}
.disney-mascot img{width:100%;height:100%;object-fit:contain}
#mascotte>.disney-mascot{position:absolute;z-index:0}
.donald-presenter{width:220px;height:210px;left:max(18px,calc(50% - 620px));top:170px}
.mickey-corner{width:135px;height:190px;right:20px;top:24px}
.goofy-perched{width:235px;height:175px;left:50%;bottom:calc(100% - 12px);transform:translateX(-32%);z-index:0}
.mascot-stage #mascot-title{position:relative;z-index:1}
@media(max-width:999px){#mascotte{padding-top:190px}.donald-presenter{width:145px;height:155px;left:8px;top:155px}.mickey-corner{width:85px;height:130px;right:8px;top:20px}.goofy-perched{width:200px;height:150px}}
@media(max-width:599px){#mascotte{padding-top:145px}.donald-presenter{width:85px;height:90px;left:-8px;top:115px}.mickey-corner{width:52px;height:80px;right:6px;top:16px}.goofy-perched{width:150px;height:112px;bottom:calc(100% - 8px);transform:translateX(-35%)}#mascotte .mascot-stage{margin-bottom:36px}#mascotte #mascot-title{width:min(72vw,calc(var(--title-ratio) * 3rem))}}

/* Originali forniti: ritaglio solo di presentazione, nessuna modifica raster. */
.mickey-corner{--crop-ratio:0.6883116883116883;width:calc(var(--disney-height) * var(--crop-ratio));height:var(--disney-height);overflow:hidden;mix-blend-mode:multiply}.mickey-corner img{position:absolute;max-width:none;width:377.35849056603774%;height:auto;left:-138.67924528301887%;top:-31.980519480519483%}
.donald-presenter{--crop-ratio:1.103942652329749;width:calc(var(--disney-height) * var(--crop-ratio));height:var(--disney-height);overflow:hidden;mix-blend-mode:multiply}.donald-presenter img{position:absolute;max-width:none;width:259.7402597402597%;height:auto;left:-79.54545454545455%;top:-35.483870967741936%}
.goofy-perched{--crop-ratio:1.089511754068716;width:calc(var(--disney-height) * var(--crop-ratio));height:var(--disney-height);overflow:hidden;mix-blend-mode:multiply}.goofy-perched img{position:absolute;max-width:none;width:132.78008298755185%;height:auto;left:-10.78838174273859%;top:0%}
.donald-presenter{--disney-height:210px}.mickey-corner{--disney-height:190px}.goofy-perched{--disney-height:175px;mask-image:linear-gradient(to bottom,#000 94%,transparent)}@media(max-width:999px){.donald-presenter{--disney-height:155px}.mickey-corner{--disney-height:130px}.goofy-perched{--disney-height:150px}}@media(max-width:599px){.donald-presenter{--disney-height:90px}.mickey-corner{--disney-height:80px}.goofy-perched{--disney-height:112px}}

@media(min-width:1000px){.donald-presenter{--disney-height:180px;left:max(18px,calc(50% - 530px));top:155px}}
.goofy-perched{mask-image:linear-gradient(to right,transparent,#000 12%,#000 88%,transparent),linear-gradient(to bottom,#000 85%,transparent);mask-composite:intersect}

/* Titolo rialzato e Paperino più grande, senza il bordo del riferimento. */
#mascotte{padding-top:185px}
#mascotte #mascot-title{width:min(100%,560px)}
#mascotte .mascot-stage{margin-bottom:70px}
.donald-presenter{--disney-height:250px;top:110px;left:max(18px,calc(50% - 600px));clip-path:inset(0 0 0 5px)}
@media(min-width:1000px){.donald-presenter{--disney-height:250px;top:110px;left:max(18px,calc(50% - 600px))}}
@media(max-width:999px){#mascotte{padding-top:175px}#mascotte #mascot-title{width:min(70vw,520px)}.donald-presenter{--disney-height:190px;top:110px;left:5px}}
@media(max-width:599px){#mascotte{padding-top:135px}#mascotte #mascot-title{width:76vw}#mascotte .mascot-stage{margin-bottom:80px}.donald-presenter{--disney-height:115px;top:120px;left:-6px;clip-path:inset(0 0 0 3px)}}

/* Topolino poggia sopra l'ultimo spazio della galleria. */
.mascots-gallery{position:relative}
.mascots-gallery>.mickey-corner{--disney-height:260px;position:absolute;top:auto;bottom:calc(100% + 8px);right:10%;transform:translateX(50%);z-index:0}
.goofy-perched{--disney-height:225px;bottom:calc(100% - 55px)}
@media(max-width:999px){.mascots-gallery>.mickey-corner{--disney-height:200px;right:16.6667%}.goofy-perched{--disney-height:190px;bottom:calc(100% - 47px)}}
@media(max-width:599px){.mascots-gallery>.mickey-corner{--disney-height:140px;right:25%}.goofy-perched{--disney-height:145px;bottom:calc(100% - 40px)}}

#mascotte>.mickey-corner{--disney-height:260px;top:100px;bottom:auto;right:max(50px,calc(50% - 580px));transform:none}
@media(max-width:999px){#mascotte>.mickey-corner{--disney-height:200px;top:calc(37px + min(70vw,520px) / 4.951807);right:calc(16.6667% - 33px)}}
@media(max-width:599px){#mascotte>.mickey-corner{--disney-height:140px;top:calc(67px + 76vw / 4.951807);right:calc(25% - 36px)}}

/* Nuovi personaggi sotto la galleria: ampi e scontornati. */
#mascotte .mascot-parade{max-width:1256px;margin:30px auto 0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;align-items:end;pointer-events:none;user-select:none}
.parade-character{position:relative;min-width:0;width:100%;height:300px;overflow:hidden}
.parade-character img{position:absolute;max-width:none;width:var(--character-width,100%);height:auto;left:var(--character-left,0);top:var(--character-top,0)}
.parade-stitch,.parade-stitch-angel{height:260px}
.parade-masha-orso{height:235px}
#mascotte .gallery-action{margin-top:26px}
@media(max-width:999px){#mascotte .mascot-parade{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.parade-character{height:260px}.parade-stitch,.parade-stitch-angel{height:230px}.parade-masha-orso{height:210px}.parade-belle-bestia{grid-column:1 / 2}.parade-masha-orso{grid-column:2 / 4;max-width:330px;justify-self:center}}
@media(max-width:599px){#mascotte .mascot-parade{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 12px;margin-top:26px}.parade-character{height:235px}.parade-stitch,.parade-stitch-angel{height:190px}.parade-belle-bestia{grid-column:auto}.parade-masha-orso{grid-column:1 / -1;height:225px;max-width:290px}.parade-character img{image-rendering:auto}}
@media(min-width:1000px){#mascotte .mascot-parade{grid-template-columns:repeat(6,minmax(0,1fr));gap:22px 28px}.parade-character{grid-column:span 2;max-width:350px;justify-self:center;height:340px}.parade-stitch,.parade-stitch-angel{height:300px}.parade-belle-bestia{grid-column:2 / 4}.parade-masha-orso{grid-column:4 / 6;height:280px}}

/* Contorni PNG originali, adattati senza deformare i personaggi. */
.parade-stitch{--character-ratio:0.9518845228548516;--character-width:100%;--character-left:0%;--character-top:-2.0850040096230953%}
.parade-stitch-angel{--character-ratio:1.4547677261613692;--character-width:103.5294117647059%;--character-left:-3.361344537815126%;--character-top:-24.449877750611247%}
.parade-masha-orso{--character-ratio:1.3407407407407408;--character-width:100%;--character-left:0%;--character-top:-0.5555555555555556%}
.parade-character{height:auto!important;aspect-ratio:var(--character-ratio);width:min(100%,calc(300px * var(--character-ratio)));align-self:end}.parade-masha-orso{width:min(100%,calc(260px * var(--character-ratio)))}@media(min-width:1000px){.parade-character{width:min(100%,calc(340px * var(--character-ratio)))}.parade-masha-orso{width:min(100%,calc(280px * var(--character-ratio)))}}@media(max-width:599px){.parade-character{width:min(100%,calc(235px * var(--character-ratio)))}.parade-masha-orso{width:min(100%,calc(225px * var(--character-ratio)))}}
#mascotte .mascot-parade{mix-blend-mode:multiply}
@media(min-width:1000px){#mascotte .mascot-parade{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.parade-character,.parade-masha-orso{grid-column:auto;max-width:380px;width:100%}}
@media(min-width:600px) and (max-width:999px){.parade-masha-orso{grid-column:auto;max-width:none}}

/* Elsa e Masha/Orso affiancano i personaggi nella parte alta. */
#mascotte>.upper-mascot-band{position:absolute;inset:8px 0 auto;height:170px;pointer-events:none;user-select:none;z-index:0}
.upper-character{position:absolute;overflow:hidden}.upper-character img{width:100%;height:auto}
.upper-elsa{width:160px;left:calc(50% - 330px);border-radius:24px}
.upper-masha{width:220px;right:calc(50% - 400px);top:5px}
.parade-belle-bestia{--character-ratio:0.9172521467603435;--character-width:100%;--character-left:0%;--character-top:0%;grid-column:auto!important}
@media(max-width:999px){.upper-elsa{width:125px;left:calc(50% - 245px)}.upper-masha{width:170px;right:calc(50% - 280px)}}
@media(max-width:599px){#mascotte>.upper-mascot-band{position:relative;inset:auto;height:140px;margin-top:-115px;margin-bottom:75px;display:flex;justify-content:space-between;align-items:start;gap:18px}.upper-character{position:relative;left:auto;right:auto;top:auto}.upper-elsa{width:120px}.upper-masha{width:175px;margin-top:18px}#mascotte>.donald-presenter{top:220px}#mascotte>.mickey-corner{top:calc(167px + 76vw / 4.951807)}.parade-belle-bestia{grid-column:1 / -1!important;width:min(100%,260px);justify-self:center}}

/* Stitch e Angel prendono il posto di Belle e Bestia, a destra. */
@media(min-width:600px){#mascotte .parade-stitch{grid-column:1}#mascotte .parade-stitch-angel{grid-column:3;justify-self:center}}
@media(max-width:599px){#mascotte .parade-stitch{grid-column:1}#mascotte .parade-stitch-angel{grid-column:2}}

/* Menu e pulsanti: tipografia pulita e colori coordinati al brand. */
nav a{font-family:var(--ui-font);font-weight:600;font-size:.9rem;letter-spacing:-.015em;line-height:1.4;white-space:nowrap}nav a:not(.button){color:#25334b;transition:color .18s ease}nav a:not(.button):hover{color:var(--cta-start)}
.button,.hero .hero-cta{font-family:var(--ui-font);font-weight:700;letter-spacing:-.015em;color:#fff;background:linear-gradient(135deg,var(--cta-start),var(--cta-end));border:1px solid #ffffff28;box-shadow:0 6px 16px var(--cta-shadow),inset 0 1px 0 #ffffff25;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}
.button:hover,.hero .hero-cta:hover{color:#fff;background:linear-gradient(135deg,var(--cta-end),var(--cta-hover));transform:translateY(-3px);box-shadow:0 10px 24px #b9086940,inset 0 1px 0 #ffffff20}
.button:active,.hero .hero-cta:active{transform:translateY(0);box-shadow:0 3px 8px var(--cta-shadow)}
.button.small{font-size:.875rem;font-weight:700;padding:13px 21px;box-shadow:0 4px 12px var(--cta-shadow)}
.contact .button{border-color:#ffffff70;box-shadow:0 7px 22px #002b5e35,inset 0 1px 0 #ffffff30}
.video-toggle{background:#163453d9;border-color:#ffffff90;box-shadow:0 4px 12px #0002;color:#fff}.video-toggle:hover{background:#0d2846}
.menu-toggle{border-radius:12px;background:#eef4ff}.menu-toggle span{background:#145bc0}.menu-toggle:hover{background:#e1ebff}
.floating-whatsapp{background:linear-gradient(145deg,#07875b,#056640);box-shadow:0 5px 18px #05664040;transition:transform .2s,box-shadow .2s}.floating-whatsapp:hover{background:linear-gradient(145deg,#06794e,#044c31);box-shadow:0 8px 22px #05664055}
.social-links svg{background:linear-gradient(135deg,#d70966,#b90869);box-shadow:0 6px 16px #b9086926}.social-links>a:nth-child(2) svg{background:linear-gradient(135deg,#176dd3,#1255b0);box-shadow:0 6px 16px #1255b02e}
@media(min-width:1000px){nav{gap:15px}nav a{font-size:.875rem}.button.small{font-size:.875rem}}

/* Titolo in alto, direttamente sopra le coccarde. */
.services .party-heading{display:block;margin-bottom:36px}
.party-color-stage{position:relative;isolation:isolate;width:min(100%,1000px);aspect-ratio:2.3;margin:auto;display:grid;place-items:center}
.party-color-splash{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none;user-select:none;z-index:-1}
.services #services-title.party-title{position:relative;width:90%;margin:0 auto;overflow:visible;filter:drop-shadow(0 3px 2px #fff) drop-shadow(0 10px 7px #10244e80);transform:translateY(-3%)}
.ribbon{background:var(--brand-blue);color:white}.ribbon i{color:var(--brand-yellow)}
.services .service-grid>.party-decorations{position:absolute;inset:0;pointer-events:none;user-select:none;overflow:visible;z-index:0}
.services>.party-heading,.services>.service-grid{position:relative;z-index:1}
.services>.service-grid{width:calc(100% - 120px)}
.services .service-rosette{position:relative;z-index:1}
.party-balloon-single{position:absolute;top:var(--level);width:70px;height:150px;object-fit:contain;filter:hue-rotate(var(--hue)) drop-shadow(0 4px 3px #15234618);transform:rotate(var(--tilt))}
.party-balloon-single.left{left:-82px}.party-balloon-single.right{right:-82px}
.party-confetti{position:absolute;left:var(--x);top:var(--y);width:var(--size);height:calc(var(--size) * 1.8);background:var(--color);border-radius:2px;transform:rotate(var(--turn));opacity:.7}
.party-confetti.round{height:var(--size);border-radius:50%}
@media(min-width:1000px){.services .service-grid{row-gap:58px}}
@media(max-width:699px){.services>.service-grid{width:calc(100% - 40px)}.party-balloon-single{width:34px;height:85px}.party-balloon-single.left{left:-39px}.party-balloon-single.right{right:-39px}.party-confetti{opacity:.4;width:calc(var(--size) * .65);height:var(--size)}.party-confetti:nth-child(3n){display:none}}
.services .party-title img{position:static;display:block;width:100%;height:auto;max-width:100%}
.paint-splash{opacity:.65}
.paint-blue{filter:hue-rotate(238deg) brightness(1.15) saturate(1.45)}.paint-yellow{filter:hue-rotate(92deg) brightness(2.8) saturate(1.7)}.paint-orange{filter:hue-rotate(66deg) brightness(2.65) saturate(1.6)}.paint-green{filter:hue-rotate(111deg) brightness(2) saturate(1.65)}.paint-pink{filter:saturate(1.35)}
@media(max-width:599px){.services .party-heading{margin-bottom:26px}.paint-splash{opacity:.46}}

/* Dopo la rimozione di Elsa, i personaggi mobili tornano accanto al titolo. */
@media(max-width:599px){#mascotte>.donald-presenter{top:120px}#mascotte>.mickey-corner{top:calc(67px + 76vw / 4.951807)}}



/* Verde brillante e navigazione senza pannello di fondo. */
.button,.hero .hero-cta,.button:hover,.hero .hero-cta:hover{color:#fff;border-color:#0053c626;box-shadow:0 6px 18px var(--cta-shadow),inset 0 1px 0 #ffffff60}
.button:hover,.hero .hero-cta:hover{box-shadow:0 10px 24px #0879ef40,inset 0 1px 0 #ffffff60}
.contact .button{color:#fff;border-color:#7dbbff;box-shadow:0 8px 24px #003d9930}
.header .nav-shell,.header.scrolled .nav-shell{background:transparent;box-shadow:none;backdrop-filter:none;border:0}
.header.on-dark nav a:not(.button){color:#fff;text-shadow:0 1px 5px #000b}
.header.on-dark nav a:not(.button):hover{color:#8bc5ff}
.header:not(.on-dark) nav a:not(.button):hover{color:#0062db}
.menu-toggle,.menu-toggle:hover{background:var(--cta-start);box-shadow:0 3px 12px #0053c61a}.menu-toggle span{background:#fff}
.video-toggle,.video-toggle:hover{background:var(--cta-start);color:#fff;border-color:#0053c626}
.floating-whatsapp{background:#25d366;box-shadow:0 5px 20px #0d8a3d40;width:60px;height:60px}
.floating-whatsapp:hover{background:#1cbd59;box-shadow:0 8px 24px #0d8a3d50}
.floating-whatsapp svg{width:32px;height:32px;fill:currentColor}
.button .whatsapp-icon{width:23px;height:23px;flex:none;fill:currentColor}
.social-links svg,.social-links>a:nth-child(2) svg{background:linear-gradient(135deg,var(--cta-start),var(--cta-end));color:#fff;box-shadow:0 6px 16px var(--cta-shadow)}
@media(max-width:999px){.header nav.open{background:#ffffffed;backdrop-filter:blur(16px);border:1px solid #ffffff90}.header.on-dark nav.open a:not(.button){color:#25334b;text-shadow:none}.header.on-dark nav.open a:not(.button):hover{color:#0062db}}

.video-toggle{bottom:92px;right:28px}


/* Hero provvisoria senza video e logo al centro di sei voci. */
.hero{background:radial-gradient(ellipse at 18% 22%,#fff2b8 0,transparent 48%),radial-gradient(ellipse at 85% 65%,#e6dfff 0,transparent 44%),linear-gradient(135deg,#fffdf5,#edf6ff);color:var(--ink)}
.hero-overlay{background:none}
.header .nav-shell{position:relative;min-height:88px}
.header .brand{margin:auto;width:150px;height:76px}.header .brand img{width:150px;top:-34px}
.header nav a:not(.button){font-weight:700;font-size:1rem;letter-spacing:0;color:#152346;padding:12px 0;text-shadow:none}
.nav-side{display:flex;gap:26px;align-items:center}
@media(min-width:1000px){.header .nav-shell{display:grid;grid-template-columns:minmax(0,1fr) 170px minmax(0,1fr);max-width:1320px;gap:24px;padding:6px 20px}.header .brand{grid-column:2;grid-row:1}.header nav{display:contents}.nav-left{grid-column:1;grid-row:1;justify-content:flex-end}.nav-right{grid-column:3;grid-row:1;justify-content:flex-start}}
@media(max-width:999px){.header .nav-shell{justify-content:center}.header .menu-toggle{position:absolute;right:10px;top:24px}.header nav.open{top:104px}.nav-side{flex-direction:column;gap:8px}.header nav.open{gap:8px}.header nav a:not(.button){font-size:1.05rem}}

.header .brand{width:130px;height:80px}.header .brand img{width:130px;top:-31px;left:0}


/* Navbar ampia: gruppi esterni e spazio libero attorno al logo. */
.header .brand{width:150px;height:94px}.header .brand img{width:150px;top:-36px;left:0}
.header .nav-shell{min-height:106px}
@media(min-width:1000px){.header .nav-shell{max-width:1500px;grid-template-columns:minmax(0,1fr) 180px minmax(0,1fr);gap:24px;padding-left:24px;padding-right:24px}.nav-left{justify-content:flex-start}.nav-right{justify-content:flex-end}.nav-side{gap:22px}.header nav a:not(.button){font-size:1.05rem;font-weight:700}}
@media(min-width:1200px){.header .nav-shell{grid-template-columns:minmax(0,1fr) 240px minmax(0,1fr);gap:40px;padding-left:32px;padding-right:32px;min-height:124px}.header .brand{width:180px;height:112px}.header .brand img{width:180px;top:-43px}.header nav a:not(.button){font-size:1.15rem}.nav-side{gap:28px}}
@media(max-width:999px){.header .menu-toggle{top:32px}.header nav.open{top:118px}}


/* Nuovo video: riempie la hero senza fasce laterali. */
.hero{background:#11243b;color:white}.hero video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;transform:none;filter:none;opacity:1}.hero-overlay{background:none}

/* Real mascot photos with their names. */
.mascot-photo .portrait-space{border-style:solid;border-width:1px;box-shadow:0 10px 28px #1523460a;background:linear-gradient(160deg,#fff,#eaf3ff)}
.mascot-photo:nth-child(2n) .portrait-space{background:linear-gradient(160deg,#fff,#fff0f6)}
.mascot-photo:nth-child(3n) .portrait-space{background:linear-gradient(160deg,#fff,#f4f8e8)}
.mascot-photo .portrait-space img{inset:10px;width:calc(100% - 20px);height:calc(100% - 20px);object-fit:contain;object-position:center bottom}
.mascot-photo figcaption{text-align:center;font-family:var(--body);font-weight:800;font-size:1.15rem;line-height:1.3;color:var(--ink);padding:16px 5px 0}
@media(max-width:599px){.mascot-photo figcaption{font-size:1rem;padding-top:12px}}

/* Spacing after removing the decorative characters and title splash. */
.services .party-color-stage{aspect-ratio:auto}
.services #services-title.party-title{transform:none;filter:none}
#mascotte{padding-top:78px}
#mascotte .mascot-stage{margin-bottom:42px}
.about-inner{padding-bottom:0}
@media(max-width:599px){#mascotte{padding-top:60px}#mascotte .mascot-stage{margin-bottom:32px}}

/* Mascot information boxes: equal space above and below the introduction. */
#mascotte .mascot-stage{max-width:900px;margin-bottom:32px}
#mascotte .mascot-text-box{position:relative;z-index:1;background:#fff;border:1px solid #cbdff7;border-radius:22px;padding:20px 28px;box-shadow:0 6px 20px #15234606;text-align:center;color:var(--ink)}
#mascotte .mascot-text-box p{margin:0;line-height:1.6}
#mascotte .mascot-intro-box{margin-top:32px;font-size:clamp(1.2rem,2vw,1.5rem)}
#mascotte .mascot-quality-box{max-width:1050px;margin:32px auto 0;font-size:clamp(1.05rem,1.5vw,1.2rem)}
@media(max-width:599px){#mascotte .mascot-stage{margin-bottom:24px}#mascotte .mascot-intro-box{margin-top:24px}#mascotte .mascot-text-box{padding:18px 20px;border-radius:18px}#mascotte .mascot-quality-box{margin-top:24px}}

/* Sunny orange actions and Fredoka typography. */
:root{--cta-start:#ffa52e;--cta-end:#ff8b14;--cta-hover:#f57c00;--cta-shadow:#ff8b1438;--body:'Fredoka',sans-serif;--ui-font:'Fredoka',sans-serif}
.header,.header *,main,main *,.skip,.floating-whatsapp{font-family:'Fredoka',sans-serif!important;font-style:normal!important}
main p{font-weight:400}main h3{font-weight:600}.header nav a{font-weight:600}
footer{font-family:'Nunito',sans-serif}footer h3{font-family:'Nunito',sans-serif}
.button,.button.small,.hero .hero-cta,.contact .button,main :is(.about-link,.reviews-link,.map-link,.call-link){display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:66px;padding:20px 34px;border:2px solid #ffb951;border-radius:100px;background:linear-gradient(135deg,var(--cta-start),var(--cta-end));color:#152346;font-size:1.25rem;font-weight:600;text-decoration:none;text-shadow:none;box-shadow:0 6px 0 #d86a00,0 12px 26px #ff8b1433;animation:sunny-pulse 2.6s ease-in-out infinite;transition:background .2s,box-shadow .2s,transform .2s}
.button:hover,.hero .hero-cta:hover,.contact .button:hover,main :is(.about-link,.reviews-link,.map-link,.call-link):hover{color:#152346;background:linear-gradient(135deg,#ffb747,#ff941f);animation-play-state:paused;transform:translateY(-3px);box-shadow:0 9px 0 #d86a00,0 16px 30px #ff8b1440}
.button:active,main :is(.about-link,.reviews-link,.map-link,.call-link):active{transform:translateY(3px);box-shadow:0 2px 0 #d86a00;scale:1}
.floating-whatsapp,.floating-whatsapp:hover{width:72px;height:72px;background:linear-gradient(135deg,var(--cta-start),var(--cta-end));color:#152346;box-shadow:0 6px 0 #d86a00,0 12px 26px #ff8b1433;animation:sunny-pulse 2.6s ease-in-out infinite}
.floating-whatsapp svg{width:38px;height:38px}.button .whatsapp-icon{width:29px;height:29px}
.social-links>a{width:108px;font-size:1rem}.social-links svg,.social-links>a:nth-child(2) svg{width:82px;height:82px;padding:21px;color:#152346;background:linear-gradient(135deg,var(--cta-start),var(--cta-end));box-shadow:0 6px 0 #d86a00,0 12px 26px #ff8b1433;animation:sunny-pulse 2.6s ease-in-out infinite}
.menu-toggle,.menu-toggle:hover{width:52px;height:52px;background:var(--cta-start);box-shadow:0 4px 0 #d86a00;animation:sunny-pulse 2.6s ease-in-out infinite}.menu-toggle span{background:#152346}
.header nav a:hover,.header.on-dark nav a:hover,.header:not(.on-dark) nav a:hover{color:#d86a00!important}
#mascotte .mascot-text-box{border-color:#ffd398;box-shadow:0 6px 20px #ff8b140a}
@keyframes sunny-pulse{0%,100%{scale:1}50%{scale:1.035}}
@media(max-width:599px){.button,.button.small,.hero .hero-cta,.contact .button,main :is(.about-link,.reviews-link,.map-link,.call-link){font-size:1.1rem;min-height:60px;padding:17px 25px;max-width:100%}.floating-whatsapp{width:66px;height:66px}}
@media(prefers-reduced-motion:reduce){.button,.floating-whatsapp,.social-links svg,.menu-toggle,main :is(.about-link,.reviews-link,.map-link,.call-link){animation:none}}

/* Sunny orange service ribbon. */
.ribbon{background:linear-gradient(135deg,var(--cta-start),var(--cta-end));color:var(--ink)}.ribbon i{color:#a84900}

/* Original WhatsApp brand colors. */
.floating-whatsapp{background:#25d366;color:#fff;box-shadow:0 6px 0 #149c49,0 12px 26px #25d36633}.floating-whatsapp:hover{background:#1ebe5d;color:#fff;box-shadow:0 6px 0 #149c49,0 12px 26px #25d36640}.button .whatsapp-icon{color:#128c46}
/* Matching paint splashes sit behind the live counters. */
.agency-numbers article{--counter-color:#c80062;--counter-filter:saturate(1.35);--counter-turn:-12deg;text-align:center;padding:22px 16px 28px}
.agency-numbers article:nth-child(2){--counter-color:#0766c8;--counter-filter:hue-rotate(238deg) brightness(1.15) saturate(1.45);--counter-turn:16deg}
.agency-numbers article:nth-child(3){--counter-color:#4c790d;--counter-filter:hue-rotate(111deg) brightness(2) saturate(1.65);--counter-turn:-22deg}
.agency-numbers article:nth-child(4){--counter-color:#bd5100;--counter-filter:hue-rotate(66deg) brightness(2.65) saturate(1.6);--counter-turn:22deg}
.agency-numbers article>strong,.agency-numbers article:nth-child(n)>strong{position:relative;isolation:isolate;display:flex;align-items:center;justify-content:center;min-height:150px;margin:0 0 18px;color:var(--counter-color);font-weight:700;text-shadow:0 2px 0 #fff,0 0 12px #ffffffb3}
.agency-numbers article>strong::before{content:'';position:absolute;z-index:-1;inset:-6px 0;background:url('assets/paint-splatter.webp') center / contain no-repeat;filter:var(--counter-filter);opacity:.35;transform:rotate(var(--counter-turn));pointer-events:none}
.agency-numbers h3{position:relative;z-index:1}
@media(max-width:599px){.agency-numbers article{padding:16px 10px 22px}.agency-numbers article>strong{min-height:120px;margin-bottom:14px}}
/* Soft pastel backdrop for the party services. */
#servizi.services,#mascotte,#novita,#recensioni{background-color:#fff5ed;background-image:radial-gradient(ellipse at 8% 10%,#fce0ec 0,transparent 47%),radial-gradient(ellipse at 95% 28%,#dceefb 0,transparent 49%),radial-gradient(ellipse at 12% 85%,#e4f2db 0,transparent 48%),radial-gradient(ellipse at 85% 95%,#fff0cc 0,transparent 50%);border-top:1px solid #ffe8d3;border-bottom:1px solid #ffe8d3}

.news-photo .portrait-space{border:1px solid #f2d8ba;background:#fff7ee;box-shadow:0 10px 28px #1523460a}.news-photo .portrait-space img{object-fit:contain;object-position:center}

#novita .news-gallery{max-width:920px;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px}#novita .news-photo .portrait-space{aspect-ratio:4/5;background:#ffffffb3}#novita .news-photo .portrait-space img{inset:14px;width:calc(100% - 28px);height:calc(100% - 28px);object-fit:contain}@media(max-width:599px){#novita .news-gallery{grid-template-columns:1fr;max-width:420px;gap:24px}}

/* Navigation is only over the initial video, never fixed while scrolling. */
.header,.header.scrolled{position:absolute;top:0}.header.scrolled{padding-top:12px}html{scroll-padding-top:24px}

#novita .news-photo figcaption{text-align:center;padding:24px 8px 0}#novita .news-photo h3{font-size:clamp(1.65rem,2.8vw,2.3rem);font-weight:600;line-height:1.2;color:#b94f00}@media(max-width:599px){#novita .news-photo figcaption{padding-top:18px}}

/* A more playful mascot section, with readable colored accents. */
#mascotte .mascot-intro-box{background:linear-gradient(135deg,#ffffffec,#fff7e9);border:2px solid #ffe0a8}
#mascotte .mascot-invite{font-weight:500;color:#0766c8;font-size:clamp(1.3rem,2.5vw,1.9rem);line-height:1.3}
#mascotte .mascot-invite span{color:#c80062}
#mascotte .mascot-invite-detail{font-size:clamp(1rem,1.5vw,1.2rem);margin-top:9px!important;color:#52617b}
#mascotte .mascot-quality-box h3{font-size:clamp(1.3rem,2.2vw,1.8rem);color:#0766c8;margin-bottom:14px;line-height:1.2}
#mascotte .mascot-quality-box strong{color:#c80062;font-weight:600}#mascotte .mascot-quality-box strong:nth-of-type(2){color:#4c790d}#mascotte .mascot-quality-box strong:nth-of-type(3){color:#0766c8}
#mascotte .mascot-photo{--mascot-accent:#0766c8;--mascot-tint:#eaf3ff;max-width:none;transition:transform .25s}
#mascotte .mascot-photo:nth-child(2){--mascot-accent:#bf2530;--mascot-tint:#fff0ed}
#mascotte .mascot-photo:nth-child(3){--mascot-accent:#c80062;--mascot-tint:#fff0f6}
#mascotte .mascot-photo:nth-child(4){--mascot-accent:#077e87;--mascot-tint:#e7f8f7}
#mascotte .mascot-photo:nth-child(5){--mascot-accent:#1755bf;--mascot-tint:#edf2ff}
#mascotte .mascot-photo .portrait-space{border:2px solid color-mix(in srgb,var(--mascot-accent) 25%,white);background:linear-gradient(160deg,#fff,var(--mascot-tint));transition:box-shadow .25s}
#mascotte .mascot-photo figcaption{display:table;margin:15px auto 0;padding:8px 20px;border-radius:100px;background:#fff;color:var(--mascot-accent);font-weight:600;font-size:1.25rem;box-shadow:0 4px 0 color-mix(in srgb,var(--mascot-accent) 20%,white)}
#mascotte .mascot-photo .portrait-space img{animation:mascot-greeting 6s ease-in-out infinite;animation-delay:calc(var(--mascot-order,0) * -.7s)}
#mascotte .mascot-photo:nth-child(2){--mascot-order:1}#mascotte .mascot-photo:nth-child(3){--mascot-order:2}#mascotte .mascot-photo:nth-child(4){--mascot-order:3}#mascotte .mascot-photo:nth-child(5){--mascot-order:4}
@media(hover:hover){#mascotte .mascot-photo:hover{transform:translateY(-7px) rotate(0deg)}#mascotte .mascot-photo:hover .portrait-space{box-shadow:0 15px 30px #15234615}}
@keyframes mascot-greeting{0%,100%{translate:0 0}50%{translate:0 -5px}}
@media(prefers-reduced-motion:reduce){#mascotte .mascot-photo .portrait-space img{animation:none}}
/* News titles: calm lettering on colorful, aligned labels. */
#novita .news-photo figcaption{margin-top:20px;padding:20px 24px;background:#ffffffde;border:1px solid #ffd398;border-top:4px solid #ff9b21;border-radius:20px;min-height:112px;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 18px #15234606}
#novita .news-photo:nth-child(2) figcaption{border-color:#cbdff7;border-top-color:#0879ef}
#novita .news-photo h3{color:#152346;font-size:clamp(1.45rem,2.3vw,1.85rem);font-weight:500;line-height:1.25;max-width:350px}
@media(max-width:599px){#novita .news-photo figcaption{min-height:90px;padding:18px 22px;margin-top:16px}}

/* Keep the menu within reach on phones and touch tablets, including landscape iPad. */
/* Animated paint falls behind the lettering and dissolves into the video. */
.hero .welcome-colors{position:absolute;inset:0;width:100%;height:100%;z-index:3;pointer-events:none}
.hero.is-celebrating .hero-content{z-index:4;animation:none}
.hero.is-celebrating .hero-lettering{animation:dream-reveal 1.65s cubic-bezier(.16,1,.3,1) .45s both;will-change:transform,opacity,filter}
.hero.is-celebrating .hero-cta{animation:dream-action .7s ease 1.4s both,sunny-pulse 2.6s ease-in-out 2.1s infinite}
@keyframes dream-reveal{0%{opacity:0;transform:translateY(48px) scale(.72);filter:blur(12px)}40%{opacity:1;filter:blur(0)}72%{transform:translateY(-7px) scale(1.045)}100%{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}
@keyframes dream-action{from{opacity:0;translate:0 16px}to{opacity:1;translate:0 0}}
@media(prefers-reduced-motion:reduce){.welcome-colors{display:none}.hero.is-celebrating .hero-lettering,.hero.is-celebrating .hero-cta{animation:none}}

/* Photo cards inspired by the supplied reference, using the original image files. */
.services .service-grid{grid-template-columns:minmax(0,1fr);gap:24px;align-items:stretch}
.service-photo-card{position:relative;z-index:1;min-width:0;background:white;border:1px solid #1523460a;border-radius:24px;box-shadow:0 5px 0 #15234606,0 10px 24px #1523460b;overflow:hidden;transition:transform .2s,box-shadow .2s}
.service-photo-card:is(.pink,.blue,.green,.yellow,.orange){background:#fff}
.service-photo-link{display:flex;flex-direction:column;height:100%;padding:10px;text-decoration:none;isolation:isolate}
.service-photo-window{display:block;width:100%;aspect-ratio:1408 / 768;border-radius:16px;overflow:hidden;background:#f4f8fc}
.service-photo-window img{width:100%;height:100%;object-fit:cover;image-rendering:auto;filter:none;opacity:1}
.service-photo-card h3{display:flex;align-items:center;justify-content:center;flex:1;gap:8px;padding:17px 8px 12px;margin:0;font-size:clamp(1.15rem,1.6vw,1.4rem);font-weight:500;line-height:1.25;color:#152346;text-align:center;text-transform:none;text-shadow:none}
@media(hover:hover){.service-photo-card:hover{transform:translateY(-5px);box-shadow:0 7px 0 #15234606,0 16px 30px #15234612}.service-photo-card:hover h3{color:#b94f00}}
@media(min-width:600px){.services .service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1000px){.services .service-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:26px}.service-photo-card{grid-column:span 2}.service-photo-card:nth-of-type(-n+2){grid-column:span 3}.service-photo-card:nth-of-type(-n+2) .service-photo-window{aspect-ratio:2.5}.service-photo-card:last-of-type{grid-column:3 / span 2}}
@media(max-width:599px){.service-photo-card{border-radius:20px}.service-photo-link{padding:8px}.service-photo-window{border-radius:13px}.service-photo-card h3{font-size:1.2rem;padding:15px 6px 10px}.services>.service-grid{width:calc(100% - 34px)}}

/* Clear, friendly descriptions and testimonial cards. */
#mascotte .mascot-intro-box{background:transparent;border:0;box-shadow:none;padding:14px 24px}
#mascotte .mascot-invite{color:#152346;font-size:clamp(1.5rem,2.7vw,2rem);font-weight:500}
#mascotte .mascot-invite span{color:#b94f00}
#mascotte .mascot-invite-detail{max-width:620px;margin:14px auto 0!important;line-height:1.6}
#mascotte .mascot-quality-box{padding:30px 36px;background:#ffffffd9;border:1px solid #fff;box-shadow:0 12px 40px #15234607}
#mascotte .mascot-quality-box h3{color:#152346;font-weight:500}
#mascotte .mascot-quality-box p{max-width:780px;margin:auto;color:#52617b;font-size:1.05rem}
.mascot-promises{list-style:none;padding:24px 0 0;margin:24px 0 0;border-top:1px solid #15234612;display:flex;justify-content:center;gap:32px;flex-wrap:wrap}
.mascot-promises li{display:flex;gap:10px;align-items:center;color:#0766c8;font-size:1rem;font-weight:500}
.mascot-promises li:nth-child(2){color:#b94f00}.mascot-promises li:nth-child(3){color:#c80062}.mascot-promises svg{width:28px;height:28px;flex-shrink:0}
.reviews-grid{gap:24px}
.review-card{--review-accent:#b94f00;--review-tint:#fff0da;position:relative;border:1px solid #ffffff;border-radius:28px;padding:28px;background:#ffffffed;box-shadow:0 12px 32px #15234609;overflow:hidden;transition:transform .25s,box-shadow .25s}
.review-card:nth-child(2){--review-accent:#0766c8;--review-tint:#eaf3ff}.review-card:nth-child(3){--review-accent:#c80062;--review-tint:#fff0f6}
.review-card::before{content:'';position:absolute;left:0;right:0;top:0;height:5px;background:var(--review-accent);opacity:.7}
.review-card-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:26px}
.review-stars{display:flex;gap:3px;color:#f6a821;margin:0;letter-spacing:0}.review-stars svg{width:23px;height:23px;fill:currentColor;filter:drop-shadow(0 1px 0 #c98219)}
.review-source{font-size:.85rem;font-weight:500;color:#52617b;background:#f3f5f8;padding:5px 10px;border-radius:100px}
.review-card blockquote{position:relative;font-size:1.4rem;font-weight:400;line-height:1.5;color:#152346;margin:0 0 30px}
.review-card figcaption{display:grid;grid-template-columns:44px 1fr;column-gap:12px;align-items:center;padding-top:20px;border-top:1px solid #1523460e}
.review-avatar{grid-row:1 / 3;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--review-tint);color:var(--review-accent);font-weight:600;font-size:1.2rem}
.review-card figcaption strong{font-size:1rem;font-weight:500}.review-card figcaption a{grid-column:2;font-size:.8rem}
@media(hover:hover){.review-card:hover{transform:translateY(-5px);box-shadow:0 18px 38px #15234612}}
@media(max-width:599px){#mascotte .mascot-quality-box{padding:24px 20px}.mascot-promises{justify-content:flex-start;gap:16px;padding-top:20px;margin-top:20px}.mascot-promises li{width:100%;font-size:1rem}.review-card{padding:26px 23px}.review-card blockquote{font-size:1.25rem}}

@media(max-width:999px),(hover:none) and (pointer:coarse){
  .header .nav-shell{display:flex;justify-content:center}
  .header .menu-toggle{display:block;position:fixed;top:max(18px,env(safe-area-inset-top));right:max(18px,env(safe-area-inset-right));z-index:22;animation:none;box-shadow:0 4px 0 #d86a00,0 7px 22px #15234626}
  .header nav{display:none}
  .header nav.open{display:flex;position:fixed;top:calc(max(18px,env(safe-area-inset-top)) + 68px);left:auto;right:max(18px,env(safe-area-inset-right));width:min(340px,calc(100vw - 36px));max-height:calc(100dvh - 110px);overflow-y:auto;overscroll-behavior:contain;gap:6px;padding:20px;background:#fffffff5;backdrop-filter:blur(14px);border:1px solid #ffd398;border-radius:22px;box-shadow:0 12px 35px #15234626}
  .header .nav-side{display:flex;flex-direction:column;gap:6px;width:100%}
  .header nav.open a:not(.button){display:block;width:100%;padding:13px 16px;text-align:left;color:#152346;text-shadow:none;font-size:1.2rem;font-weight:600;border-radius:12px}
  .header nav.open a:hover{background:#fff0da}
  .menu-toggle[aria-expanded=true] span:first-child{transform:translateY(5px) rotate(45deg)}
  .menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-5px) rotate(-45deg)}
  .menu-toggle span{transition:transform .2s}
}
