/* Adattamenti del design per l’identità fittizia del Gufo Ramato. */
.demo-notice{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 18px;background:var(--paper);color:var(--black);font-size:11px;line-height:1.5}
.demo-notice a{font-weight:700;white-space:nowrap;min-height:30px;display:flex;align-items:center}
.bar-brand img,.receipt-brand img{object-fit:contain}
.bar-brand{padding:6px 12px}.bar-brand>img{height:100%}
.receipt-brand{width:210px}.receipt-brand img{height:auto}
.call-stamp strong{font-size:16px}
.cover-photo picture,.garden-photo picture{height:100%}
.event-lineup{display:grid;gap:30px;padding:30px 20px 75px;background:var(--ochre)}
.event-card{padding:30px 24px;border:4px solid var(--black);background:var(--paper);box-shadow:7px 7px 0 var(--black)}
.event-card h3{font-size:42px;line-height:1;margin-bottom:26px}
.event-card p{font-size:15px;max-width:550px}
.event-card .chapter{font-size:10px}.event-card a{display:flex;justify-content:space-between;align-items:center;min-height:48px;margin-top:24px;border-top:2px solid var(--black);font-weight:700;font-size:13px;text-decoration:none}
.live-copy .chapter{line-height:1.6}.live-poster{min-height:800px}
.coaster-contact{gap:70px;scroll-margin-top:130px}.coaster .fictional-address{font-size:11px;margin:10px 0 0;color:var(--ochre)}
.coaster-hours{font-size:12px;line-height:1.8;margin:20px 0 0}
.booking-ticket{position:relative;z-index:3;width:100%;max-width:560px;padding:30px 22px;background:var(--paper);color:var(--black);border:4px solid var(--black);box-shadow:9px 9px 0 var(--ochre)}
.booking-ticket h3{font-size:48px;line-height:.98}.booking-ticket>p:not(.chapter){margin:24px 0;font-size:15px}
.booking-ticket label{display:block;font-size:12px;font-weight:900;margin-bottom:8px}
.booking-ticket select{width:100%;min-width:0;min-height:48px;padding:10px;border:2px solid var(--black);border-radius:0;background:#fff;color:var(--black);font:inherit;font-size:16px}
.booking-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:20px}.booking-fields>div{min-width:0}
.booking-ticket button{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;margin-top:24px;padding:16px 13px;min-height:50px;border:3px solid var(--black);color:var(--paper);background:var(--plum);font:inherit;font-weight:900;font-size:13px;cursor:pointer;box-shadow:4px 4px 0 var(--ochre)}
.booking-ticket button:disabled{opacity:.55;cursor:default}.booking-result{margin:24px 0 0;padding:18px;border:2px dashed var(--black);font-size:14px;background:var(--cream)}
.booking-result[hidden]{display:none}button:focus-visible,select:focus-visible,.booking-result:focus-visible{outline:4px solid var(--orange);outline-offset:4px}
#eventi,#giardino{scroll-margin-top:130px}.menu-tools button{min-height:44px}
@media(max-width:420px){.demo-notice{align-items:start;flex-direction:column;gap:0;font-size:10px}.coaster h2{font-size:42px}.coaster{padding:40px 22px}.coaster address{font-size:14px}.booking-ticket h3{font-size:43px}}
@media(min-width:700px){.event-lineup{grid-template-columns:1fr 1fr;padding:30px 7vw 90px;gap:35px}.coaster-contact{padding-inline:7vw}.booking-ticket{padding:36px}#eventi,#giardino,.coaster-contact{scroll-margin-top:100px}.live-poster{min-height:650px}}
@media(min-width:1050px){.coaster-contact{grid-template-columns:1fr 1fr;gap:6vw;min-height:840px}.booking-ticket{padding:40px}.booking-ticket h3{font-size:60px}.live-poster{grid-template-columns:150px minmax(0,1fr) 300px;gap:4vw}.live-copy h2{font-size:clamp(72px,7vw,105px)}}

/* Menu e header condividono gli offset della barra fissa. */
:root{--pub-header-height:124px}
.menu-jumps{top:var(--pub-header-height)}
.menu-sheet{display:block;scroll-margin-top:calc(var(--pub-header-height) + 80px)}
#note-menu{scroll-margin-top:calc(var(--pub-header-height) + 80px)}
.menu-section-content{min-width:0}.menu-section-content>*{min-width:0}
@media(max-width:699px){
    .call-stamp{grid-column:2;grid-row:1;margin:10px 12px 10px 0;padding:8px}
    .call-stamp strong{font-size:14px}
    .bar-brand{width:130px}
    .comic-cover{padding-top:125px}.speech-mark{top:auto;bottom:45px}
}
@media(min-width:700px){:root{--pub-header-height:86px}}
@media(min-width:1050px){
    :root{--pub-header-height:96px}
    .menu-section-content{display:grid;grid-template-columns:.65fr 1.35fr;gap:7vw;align-items:start}
}

/* Icone a tratto condiviso e pagine del pub. */
.pub-icon{display:inline-block;width:24px;height:24px;flex:0 0 24px;vertical-align:middle}
.call-stamp strong{display:flex;align-items:center;justify-content:center;gap:8px}.call-stamp .pub-icon{width:21px;height:21px;flex-basis:21px}
.menu-jumps a{display:inline-flex;align-items:center;gap:8px}.menu-jumps .pub-icon{width:19px;height:19px;flex-basis:19px}
.menu-section-toggle strong{display:flex;align-items:center;gap:16px}.menu-section-toggle strong .pub-icon{width:30px;height:30px;flex-basis:30px}
.pub-page-intro{padding:75px 7vw 65px;background:var(--plum);color:var(--paper);border-bottom:5px solid var(--black);position:relative}
.pub-page-intro .kicker{display:flex;align-items:center;gap:12px;line-height:1.5}.pub-page-intro h1{font-size:clamp(62px,9vw,132px);line-height:.95;margin:24px 0}.pub-page-intro em{color:var(--orange)}
.pub-page-intro>p:last-child{font-size:18px;max-width:650px;margin:28px 0 0;line-height:1.6}.pub-page-intro--tables{background:var(--ochre);color:var(--black)}.pub-page-intro--tables em{color:var(--plum)}
.home-invites{display:grid;grid-template-columns:1fr 1fr;background:var(--ochre);border-top:5px solid var(--black)}
.home-invites article{padding:60px 5vw;min-width:0}.home-invites article+article{background:var(--paper);border-left:4px solid var(--black)}
.home-invites h2{font-size:clamp(44px,5vw,76px);line-height:1}.home-invites p:not(.chapter){font-size:17px;max-width:460px;margin:25px 0}
.invite-symbol{display:flex;align-items:center;justify-content:center;width:74px;height:74px;background:var(--black);color:var(--ochre);margin-bottom:30px;transform:rotate(-5deg)}.invite-symbol .pub-icon{width:42px;height:42px;flex-basis:42px}
.pub-cta{display:flex;align-items:center;justify-content:space-between;gap:18px;background:var(--plum);color:var(--paper);padding:18px 20px;min-height:58px;border:3px solid var(--black);box-shadow:5px 5px 0 var(--black);font-size:14px;font-weight:900;text-decoration:none;max-width:440px}.pub-cta:hover{background:var(--black)}
.booking-ticket h2{font-size:clamp(44px,5vw,60px);line-height:1}.booking-ticket label{display:flex;align-items:center;gap:8px}.booking-ticket label .pub-icon{width:20px;height:20px;flex-basis:20px}
.booking-ticket select{appearance:none;background:var(--cream);padding-right:40px;border:3px solid var(--black)}
.pub-select{position:relative;margin-bottom:4px;min-width:0}.pub-select:focus-within{z-index:10}
.pub-select .select-native{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);padding:0;border:0;opacity:0;pointer-events:none}
.booking-ticket .select-trigger{margin:0;min-height:58px;border:3px solid var(--black);padding:14px 12px;background:var(--cream);color:var(--black);box-shadow:3px 3px 0 var(--black);font-size:15px;font-weight:700;text-align:left;line-height:1.4}
.select-trigger>span{min-width:0}.select-trigger[aria-expanded=true]{background:var(--ochre);box-shadow:none}.select-trigger[aria-expanded=true] .pub-icon{transform:rotate(180deg)}
.select-options{position:absolute;top:calc(100% + 7px);left:0;right:0;max-height:290px;overflow:auto;overscroll-behavior:contain;z-index:15;padding:5px;margin:0;background:var(--paper);color:var(--black);border:3px solid var(--black);box-shadow:5px 5px 0 var(--black);list-style:none;scrollbar-color:var(--plum) var(--paper)}
.select-options[hidden]{display:none}.select-options [role=option]{padding:13px 12px;min-height:46px;line-height:1.4;font-size:14px;font-weight:700;cursor:pointer;border:2px solid transparent}.select-options [aria-selected=true]{background:var(--ochre)}.select-options .is-focused{background:var(--plum);color:var(--paper);border-color:var(--black)}
.booking-ticket .select-error{color:var(--plum);font-weight:700;font-size:13px;margin:14px 0}.select-trigger[aria-invalid=true]{outline:3px solid var(--plum);outline-offset:4px}
@media(max-width:699px){.pub-page-intro{padding:55px 20px 45px}.pub-page-intro h1{font-size:clamp(56px,12vw,84px)}.pub-page-intro>p:last-child{font-size:16px}.home-invites{grid-template-columns:1fr}.home-invites article{padding:45px 22px}.home-invites article+article{border-left:0;border-top:4px solid var(--black)}.booking-ticket .select-trigger{font-size:14px}.select-options{max-height:245px}.booking-fields{gap:12px}.call-stamp .pub-icon{width:17px;height:17px;flex-basis:17px}.call-stamp strong{gap:5px;font-size:13px}}

/* Apertura breve delle tendine; la barra riusa il loop continuo condiviso. */
.select-options:not([hidden]){animation:pub-select-enter .18s ease-out both;transform-origin:top center}
.select-trigger .pub-icon{transition:transform .18s ease-out}
@keyframes pub-select-enter{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.select-options:not([hidden]){animation:none}.select-trigger .pub-icon{transition:none}}

.booking-help{font-size:12px;line-height:1.6;margin:15px 0 20px}.booking-night-info{font-size:13px;line-height:1.6;padding:14px;border-left:4px solid var(--ochre);background:var(--cream);margin:20px 0}
.booking-ticket input[type=date]{display:block;box-sizing:border-box;width:100%;min-width:0;min-height:56px;padding:12px;border:3px solid var(--black);border-radius:0;background:var(--cream);color:var(--black);font:inherit;font-size:16px;box-shadow:3px 3px 0 var(--black)}
.booking-ticket input:focus-visible{outline:4px solid var(--orange);outline-offset:4px}

/* Calendario del pub: carta, ocra e prugna, con giorni chiusi distinguibili. */
.calendar-label{display:flex;gap:8px;align-items:center;font-size:13px;font-weight:900;margin:22px 0 12px}
.pub-calendar{padding:14px 10px;background:var(--cream);border:3px solid var(--black);box-shadow:4px 4px 0 var(--black)}
.calendar-toolbar{display:grid;grid-template-columns:42px 1fr 42px;gap:8px;align-items:center;margin-bottom:16px}.calendar-toolbar strong{text-align:center;text-transform:capitalize;font-size:17px;line-height:1.2}
.booking-ticket .calendar-nav{margin:0;padding:0;min-height:42px;height:42px;justify-content:center;border:2px solid var(--black);box-shadow:none;background:var(--plum);font-size:29px;line-height:1}
.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.calendar-weekdays{margin-bottom:8px;text-align:center;font-size:11px;font-weight:900}
.booking-ticket .calendar-day{position:relative;display:flex;align-items:center;justify-content:center;min-width:0;width:100%;min-height:44px;margin:0;padding:4px 0;border:2px solid transparent;box-shadow:none;background:var(--paper);color:var(--black);font-size:14px;font-weight:700}
.booking-ticket .calendar-day:not(:disabled):hover{background:var(--ochre);border-color:var(--black)}.booking-ticket .calendar-day:disabled{opacity:.4;text-decoration:line-through;background:transparent;cursor:not-allowed}
.booking-ticket .calendar-day.is-selected{background:var(--plum);color:var(--paper);border-color:var(--black)}.calendar-day[aria-current=date]{border-color:var(--orange)}
.calendar-day.has-event::after{content:'';position:absolute;width:5px;height:5px;border-radius:50%;background:var(--orange);bottom:3px;left:calc(50% - 2px)}
.calendar-legend{font-size:11px;line-height:1.6;margin:14px 0}.event-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--orange);margin-right:4px}
.pub-calendar button:focus-visible{position:relative;z-index:1;outline:3px solid var(--orange);outline-offset:1px}
@media(max-width:380px){.pub-calendar{padding:12px 7px}.calendar-toolbar{gap:5px;grid-template-columns:36px 1fr 36px}.calendar-toolbar strong{font-size:15px}.booking-ticket .calendar-day{font-size:12px}.calendar-days{gap:2px}}
