/* Bulldog's existing imagery and copy, composed as a colorful, premium world. */
:root{--body:'Poppins',sans-serif;--ui-font:'Poppins',sans-serif;--heading:'Fredoka',sans-serif;--ink:#17234d;--scene-shadow:0 24px 65px #28336614}
body{background:#fff3e8;color:var(--ink);overflow-x:clip}
html{overflow-x:clip}
.header,.header *,main,main *,.skip,.floating-whatsapp{font-family:'Poppins',sans-serif!important}
main :is(h3,.mascot-invite,.mascot-photo figcaption,.service-photo-card h3,.agency-numbers strong,.step-number){font-family:'Fredoka',sans-serif!important}
main p{font-size:15px;line-height:1.85;font-weight:400}
.eyebrow{font-size:11px!important;letter-spacing:.19em;font-weight:600!important;line-height:1.7}
.section{padding:120px max(30px,calc((100vw - 1320px)/2)) 165px;position:relative}
.section .gallery-intro{margin-bottom:58px}
.gallery-intro>p:last-child{max-width:650px;margin:24px auto 0;color:#52617b}
.illustrated-title{filter:drop-shadow(0 5px 3px #ffffff65)}
.scene-definitions{position:absolute;overflow:hidden;pointer-events:none}
.scene-transition{position:absolute!important;z-index:0!important;left:0;right:0;bottom:-1px;height:135px;pointer-events:none;user-select:none}
.scene-wave{position:absolute;inset:0;width:100%;height:100%;fill:var(--next-scene)}
.scene-cloud{position:absolute;bottom:-8px;width:clamp(210px,28vw,400px);filter:drop-shadow(0 16px 15px #6e77be18);animation:cloud-drift 18s ease-in-out infinite}
.scene-cloud svg{width:100%;height:auto;display:block}.cloud-left{left:-85px;rotate:-5deg}.cloud-right{right:-100px;bottom:12px;rotate:6deg;scale:.8;animation-delay:-9s;filter:hue-rotate(42deg) drop-shadow(0 16px 15px #9971b818)}
@keyframes cloud-drift{0%,100%{translate:0 0}50%{translate:18px -10px}}
.paint-section>.paint-splash{opacity:.21;width:clamp(130px,18vw,280px)}
.paint-section>:not(.paint-splash):not(.scene-transition){z-index:1}
.scene-spark{position:absolute;color:#f8b722;font-family:'Fredoka',sans-serif!important;font-size:52px;line-height:1;filter:drop-shadow(0 5px 0 #cb8a2314)}
.button,.button.small,.hero .hero-cta,.contact .button,main :is(.about-link,.reviews-link,.map-link){font-size:15px;font-weight:600;min-height:60px;padding:19px 28px;gap:12px;box-shadow:0 5px 0 #db7418,0 14px 30px #fc971f25;border-color:#ffba65;animation:sunny-pulse 4s ease-in-out infinite}
@keyframes sunny-pulse{0%,100%{scale:1}50%{scale:1.015}}
.button:hover,main :is(.about-link,.reviews-link,.map-link):hover{box-shadow:0 7px 0 #d86a00,0 18px 36px #fc971f30}
.button:focus-visible,.slider-arrow:focus-visible{outline:3px solid #187cf5;outline-offset:6px}

/* The original video remains untouched; depth comes from its surroundings. */
.hero{height:100svh;min-height:680px}
.hero-overlay{background:linear-gradient(180deg,#101d4e59 0%,#12203a05 28%,#0b17492b 65%,#1427539c 100%)}
.hero-halo{position:absolute;width:50vw;height:65%;top:15%;pointer-events:none;opacity:.32}
.halo-blue{left:-30vw;background:radial-gradient(ellipse,#2070ff90,transparent 68%)}
.halo-pink{right:-32vw;background:radial-gradient(ellipse,#f042ab90,transparent 68%)}
.hero-content{max-width:1120px;padding:100px 24px 130px}
.hero h1.hero-lettering{width:min(780px,88vw)}
.hero-lettering img{max-height:calc(100svh - 290px);filter:drop-shadow(0 8px 25px #040f4559)}
.hero .hero-cta{min-width:300px;min-height:66px;font-size:16px;margin-top:-10px;padding:21px 32px}
.hero .scene-transition{z-index:5!important;height:100px}
.hero .scene-cloud{width:clamp(180px,25vw,330px);bottom:-15px;opacity:.95}
.hero-scroll-cue{position:absolute;z-index:6;left:calc(50% - 22px);bottom:22px;width:44px;height:44px;border:1px solid #fff8;border-radius:50%;display:grid;place-items:center;color:#243562;background:#ffffffb3;backdrop-filter:blur(8px)}
.hero-scroll-cue svg{width:23px;height:23px}
.header .nav-shell{background:transparent;box-shadow:none}
.header nav a:not(.button){font-size:13px;font-weight:600;letter-spacing:0;padding:13px 2px;text-shadow:0 2px 8px #1024439c}
.header.on-dark nav a:not(.button){color:#fff}
.header .brand img{filter:drop-shadow(0 7px 14px #040f4566)}
.header nav a:not(.button):hover{color:#ffca80!important}
.header .brand{width:155px;height:100px}.header .brand img{width:155px;top:-37px}
@media(min-width:1200px){.header .nav-shell{grid-template-columns:minmax(0,1fr) 230px minmax(0,1fr);min-height:118px}.header .brand{width:170px;height:108px}.header .brand img{width:170px;top:-41px}.header nav a:not(.button){font-size:14px}.nav-side{gap:24px}}

/* An editorial photo collage, with a warm atmosphere and brand stamp. */
#chi-siamo{background:radial-gradient(ellipse at 10% 36%,#ffdebc 0,transparent 50%),radial-gradient(ellipse at 88% 45%,#edd8ff 0,transparent 50%),#fff3e8;padding-top:85px}
.about-inner{max-width:1180px;display:grid;grid-template-columns:1fr 1.1fr;gap:72px;padding:0;margin:auto;align-items:center}
.about-copy{grid-column:1;grid-row:1;max-width:520px}
.about-copy .illustrated-title{width:min(100%,450px);margin-bottom:28px}
.about-copy .eyebrow{color:#aa5064;margin-bottom:18px}
.about-copy>p:not(.eyebrow){margin-top:20px;color:#4c5570}
.about-copy>p:not(.eyebrow):first-of-type{font-size:17px;color:#17234d;font-weight:500}
.about-copy .about-link{margin-top:30px}
.about-visual{grid-column:2;grid-row:1;position:relative;min-height:590px}
.photo-orbit{position:absolute;inset:50px -20px 30px;border-radius:46% 54% 64% 36% / 47% 42% 58% 53%;background:linear-gradient(135deg,#ebd5ff,#b8dbfa 50%,#f8cedc);rotate:9deg;box-shadow:inset 0 2px 6px #fff9}
.about-photo{position:absolute;margin:0;padding:9px;background:#ffffffed;box-shadow:0 20px 50px #2833661c;border-radius:30px}
.about-photo img{width:100%;height:100%;object-fit:cover;border-radius:22px}
.about-photo-main{width:90%;height:310px;top:30px;left:0;rotate:-6deg;z-index:2}
.about-photo-small{width:70%;height:245px;right:-15px;bottom:28px;rotate:7deg;z-index:3}
.about-photo-detail{width:45%;height:190px;left:-20px;bottom:2px;rotate:-9deg;z-index:4}
.about-brand-stamp{position:absolute;z-index:5;width:142px;height:142px;right:-12px;top:8px;background:#fff5e5;border:5px solid #fff;border-radius:50%;box-shadow:0 12px 30px #17234d1a;display:grid;place-items:center;rotate:9deg;overflow:hidden}
.about-brand-stamp img{position:absolute;width:128px;height:auto;max-width:none;top:-10px}
.spark-one{left:-35px;top:10px;rotate:8deg;z-index:4}.spark-two{right:5px;bottom:-10px;font-size:34px;color:#ee71aa;z-index:5}
.ribbon{position:relative;z-index:3;padding:20px 24px;background:linear-gradient(110deg,#ffb32c,#ff8d36 55%,#f87c60);box-shadow:0 8px 25px #e5892819;font-size:13px;letter-spacing:.1em;gap:28px;rotate:-1.1deg;margin:-58px -10px 0;border:1px solid #ffe1a370}
.ribbon i{color:#fff2d1;font-size:25px}

/* Large, tactile service compositions, each with its own soft silhouette. */
#servizi.services{--scene-base:#fff1f5;background:linear-gradient(180deg,var(--scene-base),transparent 18%,transparent 82%,var(--scene-base)),radial-gradient(ellipse at 92% 26%,#d8ecff 0,transparent 47%),radial-gradient(ellipse at 4% 70%,#ffe1c2 0,transparent 50%),#fff1f5;border:0;padding-top:125px}
.services .party-heading{margin-bottom:48px}.party-color-stage{width:min(100%,880px)}
.services>.service-grid{width:calc(100% - 90px);max-width:1170px;grid-template-columns:repeat(6,minmax(0,1fr));gap:34px 28px;align-items:stretch}
.service-photo-card{--tile-color:#f8d6e7;--tile-tilt:-.7deg;grid-column:span 2;border:0;border-radius:34px 34px 28px 28px;padding:0;background:linear-gradient(145deg,#fff,var(--tile-color))!important;box-shadow:0 14px 32px #4a2e6612,inset 0 1px 0 #fff;overflow:visible;rotate:var(--tile-tilt);transition:rotate .4s,translate .4s,box-shadow .4s}
.service-photo-card:nth-of-type(3n+2){--tile-color:#d8eaff;--tile-tilt:.7deg;border-radius:42px 26px 40px 26px}
.service-photo-card:nth-of-type(3n){--tile-color:#fff0c3;--tile-tilt:-.3deg;border-radius:26px 42px 26px 40px}
.service-photo-card:nth-of-type(5n){--tile-color:#d8f1e7;border-radius:60px 28px 30px 30px}
.service-photo-card:nth-of-type(3),.service-photo-card:nth-of-type(8),.service-photo-card:nth-of-type(12){border-radius:90px 90px 30px 30px}
.service-photo-card:nth-of-type(3) .service-photo-window,.service-photo-card:nth-of-type(8) .service-photo-window,.service-photo-card:nth-of-type(12) .service-photo-window{border-radius:40% 40% 22px 22px / 28% 28% 22px 22px}
.service-photo-card:nth-of-type(2) .service-photo-window{border-radius:38% 38% 24px 24px / 22% 22% 24px 24px}
.service-photo-card:nth-of-type(-n+2),.service-photo-card:nth-of-type(6),.service-photo-card:nth-of-type(7),.service-photo-card:nth-of-type(14),.service-photo-card:nth-of-type(15){grid-column:span 3}
.service-photo-card:last-of-type{grid-column:span 3}
.service-photo-link{padding:12px;border-radius:inherit}
.service-photo-window{border-radius:24px;aspect-ratio:1.6}
.service-photo-card:nth-of-type(-n+2) .service-photo-window,.service-photo-card:nth-of-type(6) .service-photo-window,.service-photo-card:nth-of-type(7) .service-photo-window,.service-photo-card:nth-of-type(n+14) .service-photo-window{aspect-ratio:2.15}
.service-photo-window img{transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.service-photo-card h3{font-size:23px;line-height:1.2;padding:22px 8px 16px;font-weight:500}
.service-photo-card::after{content:'';position:absolute;right:-10px;top:-12px;width:25px;height:25px;background:#b796e6;clip-path:polygon(50% 0,63% 36%,100% 50%,63% 64%,50% 100%,37% 64%,0 50%,37% 36%);rotate:12deg;pointer-events:none}
.service-photo-card:nth-of-type(3n)::after{background:#ffb53b}.service-photo-card:nth-of-type(3n+2)::after{display:none}
.services .service-grid>.party-decorations{opacity:.65}
.party-balloon-single{width:55px;height:128px;animation:balloon-sway 8s ease-in-out infinite;animation-delay:-2s}
.party-balloon-single.left{left:-65px}.party-balloon-single.right{right:-65px;animation-delay:-4s}
.party-confetti{opacity:.3;animation:confetti-drift 12s ease-in-out infinite}
@keyframes balloon-sway{0%,100%{translate:0 0;rotate:-3deg}50%{translate:4px -12px;rotate:3deg}}
@keyframes confetti-drift{0%,100%{translate:0 0}50%{translate:2px -6px}}
@media(hover:hover){.service-photo-card:hover{rotate:0deg;translate:0 -8px;transform:none;box-shadow:0 22px 44px #4a2e661a}.service-photo-card:hover img{transform:scale(1.055)}.service-photo-card:hover h3{color:#17234d}}

/* The cutout mascots take center stage on pastel planets, not square frames. */
#mascotte{--scene-base:#e9e4ff;background:linear-gradient(180deg,var(--scene-base),transparent 18%,transparent 82%,var(--scene-base)),radial-gradient(ellipse at 14% 46%,#d7ecff 0,transparent 48%),radial-gradient(ellipse at 88% 68%,#f9d1e8 0,transparent 46%),#e9e4ff;border:0;padding-top:110px}
#mascotte .mascot-stage{max-width:900px;margin-bottom:75px}
#mascotte .mascot-intro-box{margin-top:30px;padding:0 24px}
#mascotte .mascot-invite{font-size:clamp(25px,2.8vw,36px);line-height:1.3;font-weight:500}
#mascotte .mascot-invite span{color:#a8448b}
#mascotte .mascot-invite-detail{font-size:14px;max-width:620px;color:#52617b;margin-top:17px!important}
#mascotte .mascots-gallery{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:20px;max-width:1220px;align-items:end;margin:auto;padding:25px 8px 20px}
#mascotte .mascot-photo{margin:0;width:100%;rotate:-3deg;transform:none;transition:translate .4s,rotate .4s}
#mascotte .mascot-photo:nth-child(2n){rotate:3deg;translate:0 -25px}
#mascotte .mascot-photo:nth-child(4){rotate:-1deg;translate:0 -35px}
#mascotte .mascot-photo .portrait-space{position:relative;aspect-ratio:auto;height:350px;border:0;border-radius:0;box-shadow:none;background:transparent;overflow:visible}
#mascotte .mascot-photo .portrait-space::before{content:'';position:absolute;inset:25% -3% 5%;border-radius:48% 52% 40% 60% / 50% 39% 61% 50%;background:linear-gradient(145deg,#ffffffd9,var(--mascot-tint));box-shadow:inset 0 0 0 1px #fff9,0 18px 25px #62548012;rotate:-10deg}
#mascotte .mascot-photo .portrait-space::after{content:'';position:absolute;bottom:4px;left:10%;right:10%;height:20px;border-radius:50%;background:radial-gradient(ellipse,#65599524,transparent 70%)}
#mascotte .mascot-photo .portrait-space img{z-index:1;inset:-22px 0 0;width:100%;height:calc(100% + 22px);object-fit:contain;object-position:center bottom;filter:drop-shadow(0 10px 9px #17234d20);animation:mascot-greeting 7s ease-in-out infinite}
#mascotte .mascot-photo figcaption{position:relative;z-index:2;display:table;font-size:21px;margin:20px auto 0;padding:9px 22px;background:#ffffffd9;border:1px solid #fff;box-shadow:0 7px 18px #4e3e8110;font-weight:500}
#mascotte .mascot-quality-box{max-width:1040px;margin:62px auto 0;padding:32px 40px;border:1px solid #fff9;border-radius:32px;background:#ffffff90;backdrop-filter:blur(6px);box-shadow:0 12px 38px #6559950a}
#mascotte .mascot-quality-box h3{font-size:27px;margin-bottom:18px}
#mascotte .mascot-quality-box p{font-size:14px;max-width:800px}
.mascot-promises{border-color:#8a80b71c;gap:28px;margin-top:22px;padding-top:22px}.mascot-promises li{font-size:12px;font-weight:500;gap:9px}.mascot-promises svg{width:25px;height:25px}
#mascotte .gallery-action{margin-top:36px}
@media(hover:hover){#mascotte .mascot-photo:hover{translate:0 -14px;rotate:0deg;transform:none}#mascotte .mascot-photo:hover img{scale:1.04}#mascotte .mascot-photo:hover .portrait-space{box-shadow:none}}

/* The two approved novelties become distinct display pieces. */
#novita{--scene-base:#e3f8f4;background:linear-gradient(180deg,var(--scene-base),transparent 18%,transparent 82%,var(--scene-base)),radial-gradient(ellipse at 10% 58%,#fff3b9 0,transparent 45%),radial-gradient(ellipse at 95% 45%,#c4eff8 0,transparent 47%),#e3f8f4;border:0}
#novita .news-gallery{max-width:1120px;grid-template-columns:repeat(2,minmax(0,1fr));gap:42px;align-items:stretch;margin:68px auto 0}
#novita .news-photo{position:relative;z-index:1;margin:0;border-radius:48px 48px 32px 32px;padding:34px 25px 28px;background:linear-gradient(145deg,#bbdefc,#eff9ff 55%,#a3d5f9);box-shadow:0 22px 48px #287dab18,inset 0 1px 0 #fff;rotate:-2deg;transition:translate .4s,rotate .4s}
#novita .news-photo:nth-child(2){background:linear-gradient(145deg,#efd3fb,#fff1fd 55%,#cfc1f7);rotate:2deg}
.news-badge{position:absolute;left:26px;top:-16px;z-index:3;display:inline-flex;align-items:center;gap:12px;border-radius:100px;padding:10px 17px;background:#17234d;color:#fff;font-size:10px;font-weight:600;letter-spacing:.12em;box-shadow:0 7px 18px #17234d20;rotate:-3deg}
.news-badge span{color:#ffe064;font-size:20px;line-height:1}
#novita .news-photo:nth-child(2) .news-badge{background:#a73575;rotate:3deg}
#novita .news-photo .portrait-space{height:380px;aspect-ratio:auto;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible;position:relative}
#novita .news-photo .portrait-space::before{content:'';position:absolute;inset:5% 10%;border-radius:50%;border:1px solid #fff9;background:linear-gradient(140deg,#ffffff75,#ffffff0d);box-shadow:0 0 0 24px #ffffff26}
#novita .news-photo .portrait-space img{inset:-4px 0 0;width:100%;height:100%;filter:drop-shadow(0 18px 9px #4c43931a);transition:translate .5s,rotate .5s}
#novita .news-photo figcaption{margin-top:25px;padding:16px 10px 0;background:none;border:0;box-shadow:none;border-radius:0;min-height:80px}
#novita .news-photo h3{font-size:30px;line-height:1.2;font-weight:500;max-width:370px;color:#17234d}
@media(hover:hover){#novita .news-photo:hover{translate:0 -10px;rotate:0deg}#novita .news-photo:hover img{translate:0 -7px;rotate:1deg}}

/* Reviews glide horizontally; the colorful counters remain splash-led. */
#recensioni{--scene-base:#fff3f0;background:linear-gradient(180deg,var(--scene-base),transparent 18%,transparent 82%,var(--scene-base)),radial-gradient(ellipse at 90% 65%,#ffe7b3 0,transparent 48%),radial-gradient(ellipse at 8% 20%,#f9dcea 0,transparent 50%),#fff3f0;border:0}
.reviews-grid{max-width:1160px;display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:16px 6px 32px;overscroll-behavior-inline:contain;scroll-behavior:smooth}
.reviews-grid::-webkit-scrollbar{display:none}
.review-card{flex:0 0 calc(50% - 12px);scroll-snap-align:start;padding:35px 32px;min-height:310px;border-radius:34px;background:#ffffffdb;box-shadow:0 14px 26px #7849560c}
.review-card::before{height:4px;opacity:.5}
.review-card-top{margin-bottom:26px}.review-stars svg{width:22px;height:22px}.review-source{font-size:11px;padding:6px 11px;background:#f6f4f5}
.review-card blockquote{font-size:24px;line-height:1.5;font-weight:400;letter-spacing:-.02em;margin-bottom:30px}
.review-card figcaption strong{font-size:12px;font-weight:600}.review-card figcaption a{font-size:10px}.review-avatar{font-size:18px}
.review-navigation{display:flex;justify-content:center;align-items:center;gap:24px;margin:0 auto 30px}
.slider-arrow{display:grid;place-items:center;width:48px;height:48px;border:1px solid #17234d22;background:#ffffff80;border-radius:50%;color:#17234d;box-shadow:0 6px 15px #78495607;transition:background .2s,translate .2s}
.slider-arrow svg{width:20px;height:20px}.slider-arrow:hover{background:#fff;translate:0 -2px}
.review-page{font-size:10px;letter-spacing:.15em;color:#626b82;min-width:60px;text-align:center}
.agency-numbers{max-width:1220px;gap:32px;margin:88px auto 0}
.agency-numbers article{background:none;border:0;border-radius:0;box-shadow:none;padding:0 8px 20px}
.agency-numbers article>strong,.agency-numbers article:nth-child(n)>strong{font-size:clamp(60px,7vw,98px);min-height:200px;margin-bottom:8px;font-weight:600;text-shadow:0 3px 0 #ffffffc9,0 8px 18px #ffffff70}
.agency-numbers article>strong::before{inset:-4px -10px;opacity:.48;animation:splash-breathe 16s ease-in-out infinite}
.agency-numbers h3{font-size:13px;font-weight:500;line-height:1.5}
@keyframes splash-breathe{0%,100%{translate:0 0;scale:1}50%{translate:2px -6px;scale:1.04}}

/* The map joins a photo composition and the three highlighted regions. */
#dove-lavoriamo{--scene-base:#e7f3ff;background:linear-gradient(180deg,var(--scene-base),transparent 18%,transparent 82%,var(--scene-base)),radial-gradient(ellipse at 12% 68%,#d3eced 0,transparent 50%),radial-gradient(ellipse at 85% 20%,#d9e5ff 0,transparent 50%),#e7f3ff}
.location-inner{max-width:1160px;grid-template-columns:1fr 1.05fr;gap:70px;align-items:center}
.location-copy .illustrated-title{width:min(100%,520px)}
.location-copy>p:not(.eyebrow){font-size:14px;line-height:1.9;margin-top:22px;max-width:500px}
.location-copy .eyebrow{color:#33749d}
.region-pills{gap:9px;margin:30px 0}.region-pills span{font-size:12px;font-weight:500;padding:9px 16px;background:#ffffffb3;border:1px solid #fff;box-shadow:0 6px 12px #2269a308;color:#24628c}
.region-pills span:nth-child(2){background:#fff0f7;color:#9b4877}.region-pills span:nth-child(3){background:#fff3cc;color:#906626}
.location-copy address{font-size:13px;line-height:1.7}.location-copy .map-link{font-size:12px;padding:18px 23px}
.location-scene{position:relative;padding:30px 0 0}
.location-orbit{position:absolute;inset:0 -26px -20px;border-radius:46% 54% 60% 40%;background:linear-gradient(145deg,#bcd8ff,#f2d6e9);rotate:7deg}
.location-event{margin:0 0 18px;position:relative;z-index:2;width:90%;margin-left:-10px;border:9px solid #fff;border-radius:30px;box-shadow:0 12px 30px #1f53851a;rotate:-5deg}
.location-event img{width:100%;height:auto;aspect-ratio:2.4;object-fit:cover;border-radius:21px}
.map-pin{position:absolute;right:-15px;top:-22px;display:grid;place-items:center;width:60px;height:60px;border-radius:50%;color:#fff;background:linear-gradient(140deg,#f3546a,#d92f4c);border:4px solid #fff;box-shadow:0 10px 20px #d92f4c26;rotate:12deg}
.map-pin svg{width:30px;height:30px}
.location-map{position:relative;z-index:1;border:10px solid #fff;border-radius:30px;min-height:300px;box-shadow:0 22px 48px #1f53851a;rotate:3deg}
.location-map iframe{height:335px}

#come-funziona{--scene-base:#fff6e4;background:linear-gradient(180deg,var(--scene-base),transparent 18%,transparent 82%,var(--scene-base)),radial-gradient(ellipse at 12% 60%,#ffe4c4 0,transparent 52%),#fff6e4}
.steps{gap:24px}.steps article{background:#ffffff7a;border:1px solid #fff!important;border-radius:32px;padding:30px 26px;box-shadow:0 8px 26px #e8b9630b}
.steps h3{font-size:24px;font-weight:500}.steps p{font-size:13px;line-height:1.8}.step-number{width:60px;height:60px;font-size:30px;border-radius:20px;box-shadow:inset 0 1px 0 #fff}
.region-note{font-size:12px;color:#716950;border-top:1px solid #aa916c24}

/* A strong final invitation, with real imagery and a deep, multicolor atmosphere. */
#contatti{background:radial-gradient(ellipse at 12% 28%,#723eaa 0,transparent 52%),radial-gradient(ellipse at 90% 65%,#1359a1 0,transparent 58%),#111d4d;color:#fff;isolation:isolate;padding-top:115px;padding-bottom:170px}
#contatti .contact-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:-2;pointer-events:none}
#contatti::before{content:'';position:absolute;z-index:-1;inset:0;background:linear-gradient(180deg,#111d4d65,#111d4d99 65%,#111d4dcc);pointer-events:none}
#contatti .eyebrow{color:#dac8ed;margin-bottom:28px}
#contatti .illustrated-title{width:min(100%,850px);filter:drop-shadow(0 6px 18px #07163d66)}
#contatti>p:not(.eyebrow){font-size:16px;color:#e8e9f6}
.contact-actions{gap:16px;flex-flow:row wrap;justify-content:center;max-width:1100px;margin:36px auto 0}
#contact-whatsapp{font-size:14px;padding:21px 30px;min-height:66px}
.contact .call-link,.contact-instagram{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:58px;padding:16px 23px;font-size:12px;font-weight:500;border:1px solid #ffffff66;background:#ffffff0d;border-radius:100px;box-shadow:none;animation:none;text-decoration:none;color:#fff;transition:background .2s}
.contact .call-link:hover,.contact-instagram:hover{background:#ffffff20;color:#fff;box-shadow:none;transform:none}
.contact-instagram svg{width:19px;height:19px}
#contatti .contact-hint{font-size:11px!important;letter-spacing:.02em;margin-top:24px;color:#d0d5e6!important}
#follow-us{--scene-base:#f4efff;background:linear-gradient(180deg,var(--scene-base),transparent 18%,transparent 82%,var(--scene-base)),radial-gradient(ellipse at 50% 30%,#ffe8f2 0,transparent 60%),#f4efff;padding-top:75px;padding-bottom:80px}
.social-links{gap:32px;margin-top:35px}.social-links>a{font-size:11px;width:110px;gap:14px}.social-links svg{width:64px;height:64px;padding:18px;box-shadow:0 9px 24px #ac3c8820;animation:none;background:linear-gradient(135deg,#ee4c9a,#b94bcd);color:#fff;border-radius:22px;rotate:-5deg}
.social-links>a:nth-child(2) svg{background:linear-gradient(135deg,#338af2,#1767bd);color:#fff;box-shadow:0 9px 24px #2369ad20;rotate:5deg}
footer{background:#fffaf5;padding-top:65px}footer .paint-splash{opacity:.12}
.floating-whatsapp{width:64px;height:64px;box-shadow:0 5px 0 #149c49,0 12px 28px #17234d25;animation:sunny-pulse 4s ease-in-out infinite}.floating-whatsapp svg{width:32px;height:32px}

/* Scroll reveals enhance the layout without becoming a dependency for content. */
.design-motion [data-reveal]{transition:opacity .8s ease,translate .8s cubic-bezier(.2,.7,.2,1);transition-delay:var(--reveal-delay,0ms)}
.design-motion [data-reveal].reveal-pending{opacity:0;translate:0 24px}
.design-motion [data-reveal].is-visible{opacity:1}

@media(max-width:1100px){
  .about-inner{gap:38px}.about-visual{min-height:530px}.about-photo-main{height:260px}.about-photo-small{height:210px}.about-photo-detail{height:160px}.about-brand-stamp{width:120px;height:120px}.about-brand-stamp img{width:108px}
  #mascotte .mascot-photo .portrait-space{height:285px}#mascotte .mascots-gallery{gap:13px}#mascotte .mascot-photo figcaption{font-size:18px;padding:8px 16px}
  .location-inner{gap:40px}#novita .news-photo .portrait-space{height:330px}
}
@media(max-width:799px){
  .section{padding:90px 28px 125px}.scene-transition{height:95px}.scene-cloud{width:245px;bottom:-12px}.cloud-left{left:-100px}.cloud-right{right:-115px}
  .about-inner{grid-template-columns:1fr;gap:45px;max-width:620px}.about-copy{grid-column:1;grid-row:1;max-width:none}.about-copy .illustrated-title{margin-left:auto;margin-right:auto}.about-copy .eyebrow{text-align:center}.about-visual{grid-column:1;grid-row:2;min-height:570px;margin:0 20px}.about-photo-main{height:300px}.about-photo-small{height:240px}.about-photo-detail{height:190px}
  .services>.service-grid{width:calc(100% - 48px);grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.service-photo-card:nth-of-type(n){grid-column:span 1}.service-photo-card:nth-of-type(-n+2){grid-column:span 1}.service-photo-card h3{font-size:22px}.service-photo-window,.service-photo-card:nth-of-type(n) .service-photo-window{aspect-ratio:1.5}
  .party-balloon-single{width:40px;height:100px}.party-balloon-single.left{left:-43px}.party-balloon-single.right{right:-43px}
  #mascotte .mascots-gallery{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;max-width:none;gap:26px;padding:35px 20px 30px;margin:0 -28px;overscroll-behavior-inline:contain}
  #mascotte .mascots-gallery::-webkit-scrollbar{display:none}#mascotte .mascot-photo{flex:0 0 240px;scroll-snap-align:center}#mascotte .mascot-photo .portrait-space{height:360px}#mascotte .mascot-photo figcaption{font-size:22px}
  #mascotte .mascot-photo:nth-child(n){translate:0 0;rotate:0deg}#mascotte .mascot-stage{margin-bottom:32px}#mascotte .mascot-quality-box{margin-top:25px}
  #novita .news-gallery{gap:25px}#novita .news-photo{padding:30px 16px 20px}#novita .news-photo .portrait-space{height:275px}#novita .news-photo h3{font-size:25px}
  .location-inner{grid-template-columns:1fr;gap:45px;max-width:620px}.location-copy .illustrated-title{margin:auto}.location-copy .eyebrow{text-align:center}.location-copy>p:not(.eyebrow){max-width:none}.location-scene{margin:0 20px}
  .steps{grid-template-columns:1fr}.steps article{max-width:620px;width:100%;margin:auto}
}
@media(min-width:800px) and (max-width:999px){
  #mascotte .mascots-gallery{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;gap:30px;padding:35px 25px 30px;overscroll-behavior-inline:contain}
  #mascotte .mascots-gallery::-webkit-scrollbar{display:none}
  #mascotte .mascot-photo{flex:0 0 260px;scroll-snap-align:center}
  #mascotte .mascot-photo .portrait-space{height:360px}
  #mascotte .mascot-photo:nth-child(n){translate:0 0;rotate:0deg}
}
@media(max-width:599px){
  main p{font-size:14px}.section{padding:76px 22px 115px}.eyebrow{font-size:9px!important;letter-spacing:.14em}.section .gallery-intro{margin-bottom:34px}.gallery-intro>p:last-child{font-size:13px;line-height:1.8;margin-top:20px}
  .scene-transition{height:85px}.scene-cloud{width:210px;animation:none}.cloud-left{left:-90px}.cloud-right{right:-110px}.party-confetti{animation:none}
  .button,.button.small,.hero .hero-cta,.contact .button,main :is(.about-link,.reviews-link,.map-link){font-size:12px;min-height:58px;padding:18px 23px}
  .hero{height:100svh;min-height:620px}.hero-content{padding:90px 22px 115px}.hero h1.hero-lettering{width:100%}.hero-lettering img{max-height:calc(100svh - 260px)}.hero .hero-cta{min-width:min(280px,100%);font-size:13px;margin-top:6px;min-height:60px}.hero .scene-transition{height:70px}.hero-scroll-cue{width:36px;height:36px;left:calc(50% - 18px);bottom:12px}
  .header .brand{width:135px;height:85px}.header .brand img{width:135px;top:-32px}.header .nav-shell{min-height:98px}.header .menu-toggle{width:50px;height:50px;border-radius:15px;box-shadow:0 4px 0 #d86a00,0 10px 20px #17234d25}
  .header nav.open a:not(.button){font-size:14px!important;text-shadow:none;color:#17234d;padding:15px 16px}
  #chi-siamo{padding-top:60px}.about-inner{gap:30px}.about-copy .illustrated-title{width:min(100%,330px);margin-bottom:22px}.about-copy>p:not(.eyebrow){font-size:13px;line-height:1.9;margin-top:18px}.about-visual{min-height:390px;margin:10px 10px 0}.about-photo-main{height:205px;width:94%;top:10px}.about-photo-small{height:170px;width:76%;bottom:5px;right:-5px}.about-photo-detail{height:128px;width:49%;bottom:-8px;left:-10px}.about-photo{padding:6px;border-radius:23px}.about-photo img{border-radius:17px}.about-brand-stamp{width:92px;height:92px;right:-6px;top:-5px;border-width:3px}.about-brand-stamp img{width:80px;top:-3px}.photo-orbit{inset:20px -10px 0}.scene-spark{font-size:32px}.spark-one{left:-18px;top:0}.spark-two{right:-10px;bottom:-8px;font-size:26px}
  .ribbon{font-size:10px;padding:16px 18px;gap:18px;margin-top:-40px;justify-content:flex-start}.ribbon i{font-size:20px}
  #servizi.services{padding-top:90px}.services .party-heading{margin-bottom:35px}.party-color-stage{width:100%}.services #services-title.party-title{width:100%}
  .services>.service-grid{width:calc(100% - 24px);gap:22px 15px}.service-photo-card:nth-of-type(-n+2),.service-photo-card:nth-of-type(6),.service-photo-card:nth-of-type(7),.service-photo-card:nth-of-type(n+14){grid-column:span 2}.service-photo-link{padding:8px}.service-photo-card{border-radius:26px!important}.service-photo-window{border-radius:19px}.service-photo-card:nth-of-type(n) .service-photo-window{aspect-ratio:1.25}.service-photo-card:nth-of-type(-n+2) .service-photo-window,.service-photo-card:nth-of-type(6) .service-photo-window,.service-photo-card:nth-of-type(7) .service-photo-window,.service-photo-card:nth-of-type(n+14) .service-photo-window{aspect-ratio:1.6}
  .service-photo-card h3{font-size:18px;padding:16px 3px 12px}.service-photo-card::after{font-size:21px;right:-6px;top:-8px}.party-balloon-single{width:29px;height:82px}.party-balloon-single.left{left:-32px}.party-balloon-single.right{right:-32px}.party-confetti{opacity:.2}
  #mascotte{padding-top:75px}#mascotte .mascot-intro-box{padding:0;margin-top:24px}#mascotte .mascot-invite{font-size:25px;line-height:1.3}#mascotte .mascot-invite-detail{font-size:12px;line-height:1.8}#mascotte .mascots-gallery{margin:0 -22px;padding:25px 22px 25px;gap:25px}#mascotte .mascot-photo{flex-basis:74vw;max-width:280px}#mascotte .mascot-photo .portrait-space{height:365px}#mascotte .mascot-photo figcaption{font-size:22px}
  #mascotte .mascot-quality-box{padding:26px 22px;border-radius:28px}#mascotte .mascot-quality-box h3{font-size:24px;line-height:1.2}#mascotte .mascot-quality-box p{font-size:12px;line-height:1.9}.mascot-promises{gap:14px;justify-content:flex-start}.mascot-promises li{font-size:11px;width:100%}
  #novita .news-gallery{grid-template-columns:1fr;gap:44px;margin:45px auto 0;max-width:420px}#novita .news-photo{padding:28px 20px 25px;rotate:-1deg;border-radius:36px}#novita .news-photo:nth-child(2){rotate:1deg}#novita .news-photo .portrait-space{height:320px}#novita .news-photo figcaption{margin-top:18px;min-height:65px;padding:10px 4px 0}#novita .news-photo h3{font-size:28px}.news-badge{font-size:9px;padding:9px 14px;left:20px}
  .reviews-grid{gap:18px;margin:0 -8px;padding:10px 8px 25px}.review-card{flex-basis:calc(100% - 18px);padding:29px 24px;min-height:310px;border-radius:29px}.review-card blockquote{font-size:23px;line-height:1.5}.review-card figcaption strong{font-size:12px}.review-source{font-size:10px}.review-navigation{margin-bottom:25px;gap:20px}.slider-arrow{width:44px;height:44px}
  .agency-numbers{gap:18px 12px;margin-top:62px}.agency-numbers article{padding:0 0 18px}.agency-numbers article>strong,.agency-numbers article:nth-child(n)>strong{font-size:56px;min-height:140px}.agency-numbers article>strong::before{inset:0 -5px;opacity:.46}.agency-numbers h3{font-size:11px;max-width:140px;margin:auto}
  .location-copy>p:not(.eyebrow){font-size:12px;line-height:1.9}.region-pills{gap:7px;margin:25px 0}.region-pills span{font-size:10px;padding:8px 13px}.location-copy address{font-size:12px}.location-copy .map-link{font-size:10px}.location-scene{margin:0 6px}.location-event{border-width:6px;border-radius:24px;width:93%;margin-left:-6px}.location-event img{border-radius:18px;aspect-ratio:1.8}.location-map{border-width:7px;border-radius:25px}.location-map iframe{height:300px}.map-pin{width:48px;height:48px;border-width:3px}.map-pin svg{width:25px;height:25px}.location-orbit{inset:5px -12px -14px}
  .steps article{padding:28px 24px;border-radius:27px}.steps h3{font-size:25px}.steps p{font-size:12px}.region-note{font-size:10px;line-height:1.8}
  #contatti{padding-top:85px;padding-bottom:130px}#contatti .eyebrow{margin-bottom:24px;font-size:9px!important}#contatti>p:not(.eyebrow){font-size:13px;margin-top:22px}#contatti .illustrated-title{width:100%}.contact-actions{flex-direction:column;gap:14px;margin-top:28px}#contact-whatsapp{width:100%;font-size:11px;padding:19px 17px;gap:10px;min-height:64px}.button .whatsapp-icon{width:25px;height:25px;flex-shrink:0}.contact .call-link,.contact-instagram{min-height:51px;font-size:11px;padding:14px 20px}.contact .call-link{max-width:100%;width:auto}#contatti .contact-hint{font-size:9px!important;line-height:1.8}
  #follow-us{padding-top:60px;padding-bottom:65px}.social-links{gap:24px}.social-links>a{font-size:10px;width:95px}.social-links svg{width:61px;height:61px;padding:17px}.floating-whatsapp{width:59px;height:59px;right:16px;bottom:18px}.floating-whatsapp svg{width:29px;height:29px}
  .about-copy>p:not(.eyebrow),#mascotte .mascot-quality-box p,.location-copy>p:not(.eyebrow),.steps p{font-size:14px}
  .service-photo-card:nth-of-type(3){grid-column:span 2}
  .service-photo-card:nth-of-type(3) .service-photo-window{aspect-ratio:1.6}
  .service-photo-card:nth-of-type(-n+3) h3,.service-photo-card:nth-of-type(6) h3,.service-photo-card:nth-of-type(7) h3,.service-photo-card:nth-of-type(n+14) h3{font-size:22px}
  #mascotte .mascot-invite-detail{font-size:13px}
  .button,.button.small,.hero .hero-cta,.contact .button,main :is(.about-link,.reviews-link){font-size:14px}
  .hero .hero-cta{font-size:15px}
  .header nav.open a:not(.button){font-size:16px!important}
  .mascot-promises li{font-size:12px}
  .region-pills span,.agency-numbers h3{font-size:12px}.location-copy address{font-size:13px}.location-copy .map-link{font-size:12px}
  #contact-whatsapp{font-size:13px}.contact .call-link,.contact-instagram{font-size:12px}#contatti .contact-hint{font-size:11px!important}
}
@media(prefers-reduced-motion:reduce){.scene-cloud,.party-balloon-single,.party-confetti,.agency-numbers article>strong::before,.button,.floating-whatsapp{animation:none!important}.design-motion [data-reveal]{opacity:1!important;translate:none!important;transition:none!important}.reviews-grid{scroll-behavior:auto}.service-photo-window img,.news-photo img{transition:none}}

/* Studio photo opens the same Google Maps destination as the address button. */
.region-pills span:nth-child(4){background:#e8f7e9;color:#397546}
#dove-lavoriamo .location-arrival{display:block;position:relative;text-decoration:none;color:var(--ink);isolation:isolate}
.location-arrival-photo{display:block;width:100%;height:auto;aspect-ratio:6/5;object-fit:cover;object-position:center 32%;transition:transform .25s ease}
.location-arrival-caption{position:absolute;left:18px;right:18px;bottom:18px;display:grid;gap:5px;padding:18px 20px;border-radius:16px;background:#fffffff2;box-shadow:0 6px 20px #15234618}
.location-arrival-caption strong{font-family:var(--heading);font-size:1.4rem;line-height:1.2}
.location-arrival-caption>span{font-size:13px;line-height:1.5}
.location-arrival-caption small{font-size:12px;color:#24628c;font-weight:600;line-height:1.5}
.location-arrival:hover .location-arrival-photo{transform:scale(1.025)}
.location-arrival:focus-visible{outline:4px solid var(--brand-blue);outline-offset:5px}
/* A playful signature beneath the contact invitation. */
#contatti>p.contact-tagline{position:relative;z-index:4;width:fit-content;max-width:100%;margin:42px auto 0;padding:0 12px 16px;font-family:var(--heading);font-size:clamp(2rem,4.3vw,3.6rem);font-weight:600;line-height:1.08;color:#fff;text-shadow:0 3px 14px #111d4d80;transform:rotate(-2deg)}
.contact-tagline .tagline-intro{display:block;font-size:.48em;font-weight:400;letter-spacing:.035em;margin-bottom:7px;color:#fff1d2}
.contact-tagline .tagline-finish{display:flex;align-items:center;justify-content:center;gap:12px}
.contact-tagline .tagline-words{position:relative;display:block;color:#ffdc70;padding-bottom:10px}
.tagline-stroke{position:absolute;left:-2%;bottom:-7px;width:104%;height:18px;color:#ff719c;filter:drop-shadow(0 2px 3px #111d4d33)}
.tagline-heart{width:1.35em;height:1.35em;flex-shrink:0;overflow:visible;transform:rotate(12deg);filter:drop-shadow(0 5px 8px #111d4d55)}
@media(max-width:599px){.location-arrival-caption{left:10px;right:10px;bottom:10px;padding:12px 14px;border-radius:12px;gap:3px}.location-arrival-caption strong{font-size:1.2rem}.location-arrival-caption>span,.location-arrival-caption small{font-size:11px}#contatti>p.contact-tagline{font-size:clamp(1.65rem,7.3vw,2.6rem);margin-top:34px}.contact-tagline .tagline-finish{gap:8px}.tagline-stroke{height:13px;bottom:-4px}}
@media(prefers-reduced-motion:reduce){.location-arrival-photo{transition:none}.location-arrival:hover .location-arrival-photo{transform:none}}

footer .footer-bottom .footer-privacy{display:inline;font-size:inherit;color:#24628c;margin:0;text-decoration:underline;text-underline-offset:4px}

/* Show the size of the mascot collection before the sample gallery. */
#mascotte .mascot-invite.mascot-selection{font-size:clamp(1.8rem,4vw,3rem);font-weight:500;line-height:1.2;color:#152346}
#mascotte .mascot-selection strong{display:inline-block;font-size:1.65em;font-weight:700;color:#c80062;letter-spacing:-.04em;text-shadow:0 3px 0 #fff;vertical-align:-.04em}
#mascotte .mascot-invite.mascot-selection>span{display:block;margin-top:12px;font-size:clamp(1.15rem,2.3vw,1.65rem);line-height:1.4;color:#a8448b}
#mascotte .mascot-selection+.mascot-invite-detail{margin:18px auto 0!important;max-width:620px}
@media(max-width:599px){#mascotte .mascot-invite.mascot-selection{font-size:clamp(1.45rem,6.5vw,2rem)}#mascotte .mascot-invite.mascot-selection>span{font-size:1.1rem;margin-top:10px}}

.footer-legal{max-width:1240px;margin:32px auto 0;padding-top:22px;border-top:1px solid #15234616;color:#52617b;font-size:12px;line-height:1.8;overflow-wrap:anywhere}.footer-legal strong{font-weight:600}
