/* Perfetto: shared responsive shell. Loaded after page-specific styles. */
:root { --perfetto-ink:#193a2a; --perfetto-paper:#f7f3e9; }
html { scroll-padding-top:100px; }
body { min-width:0; }
button,input,select,textarea { font:inherit; }
a:focus-visible,button:focus-visible,[role="button"]:focus-visible { outline:3px solid #a66a20; outline-offset:5px; }
.container { width:100%; min-width:0; }
#main-header,#main-header.scrolled { padding:14px 0; }
#main-header > nav { width:100%; max-width:1440px; padding:0 clamp(20px,4vw,64px); gap:24px; }
#main-header .logo { flex:0 0 auto; }
#main-header .logo img,#main-header.scrolled .logo img { width:112px; height:62px; object-fit:contain; transform:none; }
#main-header .header-actions { display:flex; align-items:center; flex-shrink:0; gap:10px; }
#main-header .nav-links { gap:clamp(16px,2vw,32px); }
#main-header .nav-links a { letter-spacing:1.2px; }
#main-header .mobile-toggle { border:0; background:transparent; padding:8px; flex:0 0 44px; width:44px; height:44px; }
#cart-sidebar { right:0; width:min(440px,100%); max-width:100%; height:100vh; height:100dvh; padding:clamp(20px,4vw,32px); transform:translateX(105%); visibility:hidden; pointer-events:none; transition:transform .3s,visibility .3s; }
#cart-sidebar.active { right:0; transform:translateX(0); visibility:visible; pointer-events:auto; }
#cart-sidebar #cart-items { min-height:0; overscroll-behavior:contain; }
#cart-sidebar .cart-footer { flex-shrink:0; padding-bottom:env(safe-area-inset-bottom,0px); }
#cart-overlay { position:fixed; inset:0; background:rgba(12,27,19,.48); z-index:9998; display:none; }
#cart-overlay.active { display:block; }
#mobile-menu { height:100vh; height:100dvh; visibility:hidden; pointer-events:none; overflow-y:auto; overscroll-behavior:contain; }
#mobile-menu.is-open { visibility:visible; pointer-events:auto; }
#mobile-menu .mobile-nav-links { width:100%; max-width:560px; margin:auto; min-height:0; flex:1 0 auto; padding:24px; gap:6px; }
#mobile-menu .mobile-link { padding:12px; }
#mobile-menu .mobile-menu-header { padding:18px 24px; }
body.perfetto-drawer-open { overflow:hidden; }
.perfetto-hero { display:grid; grid-template-columns:1fr 1fr; height:auto; min-height:620px; background:var(--perfetto-paper); text-align:left; overflow:hidden; }
.perfetto-hero .hero-content { width:100%; max-width:740px; margin:0 0 0 auto; padding:clamp(40px,6vw,90px) clamp(24px,4vw,64px); opacity:1; transform:none; animation:none; }
.hero-eyebrow { display:block; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:2.1px; color:#51604e; margin-bottom:26px; }
.perfetto-hero .hero-title { font-size:clamp(42px,4.5vw,72px); line-height:1.04; letter-spacing:-1.8px; color:var(--perfetto-ink); margin-bottom:26px; }
.perfetto-hero .hero-title em { font-weight:400; color:#8a512e; }
.perfetto-hero .hero-desc { color:#475448; font-size:15px; line-height:1.85; max-width:440px; margin-bottom:28px; }
.perfetto-hero .hero-buttons { gap:18px; flex-wrap:wrap; align-items:center; justify-content:flex-start; }
.perfetto-hero .btn { padding:17px 24px; gap:20px; white-space:normal; }
.hero-delivery { font-size:12px; font-weight:600; padding:12px 0; border-bottom:1px solid #9aab96; }
.hero-note { margin-top:32px; font-size:11px; color:#65715f; max-width:370px; }
.hero-visual { position:relative; align-self:stretch; min-width:0; background:url('../../ciao.png') 83% center/cover; border-radius:0 0 0 100px; }
.hero-stamp { position:absolute; bottom:32px; right:28px; padding:22px 28px; background:#193a2a; color:#fff5df; border:1px solid #d1b478; border-radius:50%; font:600 24px/1.15 'Cormorant Garamond',Georgia,serif; text-align:center; transform:rotate(-9deg); }
.perfetto-moments { background:#193a2a; color:#f7f3e9; padding:clamp(48px,7vw,96px) 0; }
.perfetto-moments .container { max-width:1360px; }
.moments-heading { max-width:610px; margin-bottom:38px; }
.moments-heading .section-subtitle { justify-content:flex-start; color:#dfc393; letter-spacing:2px; }
.moments-heading h2 { font-size:clamp(34px,4vw,52px); color:#fff9eb; margin-bottom:16px; }
.moments-heading p { color:#ccd6ca; font-size:14px; }
.moments-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.moment-card { display:flex; flex-direction:column; border:1px solid #536653; border-radius:20px; padding:30px; transition:background .2s,transform .2s; }
.moment-card:hover { background:#244733; transform:translateY(-4px); }
.moment-number { color:#dfc393; letter-spacing:2px; font-size:10px; font-weight:600; margin-bottom:32px; }
.moment-card h3 { font-size:30px; color:#fff9eb; margin-bottom:14px; }
.moment-card p { font-size:13px; color:#ccd6ca; margin-bottom:30px; }
.moment-link { margin-top:auto; display:flex; justify-content:space-between; gap:12px; font-size:12px; font-weight:600; color:#fff9eb; }
.promos-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr)); }
/* Keep the same card width in sparse and full categories. */
.pizza-grid { grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr)); }
.footer-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr)); }
.footer-col p,.footer-col a { color:#d4dccf; }
.footer-logo img { background:#fff9eb; border-radius:14px; padding:12px; }
.footer-bottom { color:#bac6b6; }
.cta-section { background-attachment:scroll; }
.reveal { opacity:1; transform:none; }
.cookie-overlay { overflow-y:auto; }
.cookie-modal { max-height:calc(100dvh - 40px); overflow-y:auto; }
@media(max-width:1100px) {
 #main-header .nav-links,#main-header .header-actions { display:none; }
 #main-header .mobile-toggle { display:flex; }
}
@media(max-width:760px) {
 #main-header,#main-header.scrolled { padding:9px 0; }
 #main-header .logo img,#main-header.scrolled .logo img { height:48px; width:94px; }
 .perfetto-hero { grid-template-columns:1fr; min-height:0; }
 .perfetto-hero .hero-content { max-width:none; padding:40px 24px 32px; }
 .perfetto-hero .hero-title { max-width:530px; font-size:clamp(40px,8vw,58px); }
 .hero-eyebrow { margin-bottom:20px; font-size:10px; }
 .hero-visual { min-height:280px; background-position:90% 56%; border-radius:42px 42px 0 0; }
 .hero-stamp { bottom:20px; right:20px; font-size:21px; padding:18px 24px; }
 .hero-note { margin-top:24px; }
 .moments-grid { grid-template-columns:1fr; gap:14px; }
 .moment-card { padding:24px; }
 .moment-number { margin-bottom:20px; }
 .moment-card p { margin-bottom:22px; }
 .reviews-section { padding:56px 0; }
 .bv2-footer { flex-wrap:wrap; }
 .bv2-add-btn { white-space:normal; }
}
@media(max-width:380px) {
 .hero-buttons .btn { width:100%; }
 .cookie-modal { padding:28px 20px; border-radius:28px; }
 .cookie-buttons { flex-direction:column; }
}
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto; }
 *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
}

/* Keep fixed drawers in the viewport after the loading animation. */
html, body { overflow-x:clip; max-width:100%; }
#perfetto-page-wrap { transform:none!important; will-change:auto!important; width:100%; min-width:0; }
.perfetto-hero { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.perfetto-hero .hero-content { min-width:0; }
footer .footer-col h4 { color:#dec49e; }
footer .newsletter input::placeholder { color:#c9d3c7; opacity:1; }
footer .footer-col br { display:none; }
.product-new-badge { display:inline-flex; align-items:center; width:max-content; max-width:100%; margin:0 0 6px; padding:2px 7px; border-radius:20px; color:#193a2a; background:#f1e0b9; font-size:10px; line-height:1.3; font-weight:700; letter-spacing:.5px; }
/* The decorative frame never changes the card size or intercepts clicks. */
.pizza-card.is-new { position:relative; }
.pizza-card.is-new::after {
 content:"";
 position:absolute;
 inset:0;
 pointer-events:none;
 border:1px solid #d5bb8b;
 border-radius:inherit;
 box-shadow:0 0 0 1px rgba(199,164,105,.08),0 0 8px rgba(199,164,105,.06);
}
.pizza-card.is-new:not(.unavailable)::after { animation:perfetto-new-border 4s ease-in-out infinite; }
@keyframes perfetto-new-border {
 0%,100% { border-color:#d5bb8b; box-shadow:0 0 0 1px rgba(199,164,105,.08),0 0 8px rgba(199,164,105,.06); }
 50% { border-color:#b8883c; box-shadow:0 0 0 1px rgba(199,164,105,.24),0 0 18px rgba(199,164,105,.18); }
}
@media(prefers-reduced-motion:reduce) {
 .pizza-card.is-new::after { animation:none!important; box-shadow:none; }
}
.menu-new-empty { grid-column:1/-1; padding:30px 0; text-align:center; }
.menu-new-empty p { margin-bottom:20px; }
.category-header { scroll-margin-top:150px; }
#cat-nav a { flex-shrink:0; display:inline-flex; align-items:center; justify-content:center; }
@media(max-width:760px) { .perfetto-hero { grid-template-columns:minmax(0,1fr); } }

.searcher { top:91px; }
@media(max-width:760px) { .searcher { top:67px; } }
