/* Composed pages (compose.py, venues/<id>/page.html): the arrangement of each partial's variants. Only structure lives
   here: colours and fonts come from the venue (theme, media/venue.css), which dresses every variant its own way.
   Each partial's root has data-block and data-variant; the classes cb-<block>-<variant> below are for styling only. */

body.composed{--pad:clamp(18px,4vw,56px)}
.composed .preview~header.cb-header{top:30px}
.composed .preview~header.cb-header-masthead,.composed .preview~header.cb-header-tabbar,.composed .preview~header.cb-header-wordmark,.composed .preview~header.cb-header-index,.composed .preview~header.cb-header-pillbar{top:auto;margin-top:30px}

/* ---------------------------------------------------------------- header */
/* masthead: the name large and centred, the sections in a row under it; it scrolls away with the page */
.cb-header-masthead{position:relative;z-index:30;background:var(--sand);color:var(--ink);text-align:center;padding:14px var(--pad) 0;border-bottom:1px solid var(--line)}
.mh-top{display:flex;justify-content:space-between;align-items:center;gap:16px;font-size:.78rem;letter-spacing:.08em}
.mh-top .langs{display:flex;gap:12px;overflow-x:auto;scrollbar-width:none;min-width:0}.mh-line{flex:0 1 auto;min-width:0}.mh-top .langs a{text-decoration:none;opacity:.7}.mh-top .langs a[aria-current]{opacity:1;font-weight:500}
.mh-brand{display:block;text-decoration:none;color:var(--brown);margin:clamp(10px,2vw,22px) auto}
.mh-name{display:block;font:400 clamp(2.6rem,9vw,7.5rem)/.95 var(--serif);letter-spacing:-.01em}
.mh-brand .lg-w,.mh-brand img{display:inline-block;width:min(420px,70vw)}
.mh-nav{display:flex;justify-content:center;gap:clamp(14px,3vw,40px);border-top:1px solid var(--line);padding:12px 0;overflow-x:auto;scrollbar-width:none;white-space:nowrap}
.mh-nav a{text-decoration:none;font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;flex:0 0 auto}
.mh-nav a:hover{color:var(--brown)}
.mh-nav .cb-book{border:0;font-weight:600;color:var(--brown)}

/* rail: a column down the left edge on wide screens */
.cb-header-rail{position:fixed;z-index:40;inset:0 auto 0 0;width:168px;display:flex;flex-direction:column;align-items:flex-start;gap:22px;padding:26px 20px;background:var(--deep);color:#f2efea;border-right:1px solid color-mix(in srgb,var(--peach) 30%,transparent);overflow-y:auto;scrollbar-width:none}
.cb-header-rail .mark{width:64px}
.rl-nav{display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin-top:18px}
.rl-nav a{text-decoration:none;font-size:.74rem;line-height:1.3;letter-spacing:.16em;text-transform:uppercase}
.rl-nav a:hover{color:var(--peach)}
.rl-foot{margin-top:auto;display:flex;flex-direction:column;align-items:flex-start;gap:14px;font-size:.72rem}
.rl-foot .langs{display:grid;grid-template-columns:1fr 1fr;gap:4px 10px}.rl-foot .langs a{padding:0;border:0}.rl-foot .langs a{text-decoration:none;opacity:.7}.rl-foot .langs a[aria-current]{opacity:1;color:var(--peach)}
.rl-foot .cb-book{color:var(--peach)}
body.composed:has(.cb-header-rail) main,body.composed:has(.cb-header-rail)>footer,body.composed:has(.cb-header-rail) .preview{margin-left:168px}
@media (min-width:901px){body.composed:has(.cb-header-rail) .sb{left:calc(168px + clamp(12px,3vw,40px))}}   /* a unit page's booking bar clear of the rail (compose.dress_sub) */
@media (max-width:820px){
  .cb-header-rail{inset:0 0 auto 0;width:auto;height:58px;flex-direction:row;align-items:center;padding:8px 14px;gap:14px;border-right:0;border-bottom:1px solid color-mix(in srgb,var(--peach) 30%,transparent)}
  .cb-header-rail .mark{width:40px;flex:0 0 auto}
  .rl-nav,#nav.rl-nav{flex-direction:row;margin:0 0 0 6px;gap:16px;overflow-x:auto;scrollbar-width:none;flex:1;min-width:0;align-items:center}
  .rl-nav a{white-space:nowrap;font-size:.7rem}
  .cb-header-rail{overflow:visible}
  .rl-foot{margin:0;flex-direction:row}.rl-foot .langs{display:none}
  body.composed:has(.cb-header-rail) main,body.composed:has(.cb-header-rail)>footer,body.composed:has(.cb-header-rail) .preview{margin-left:0}
  body.composed:has(.cb-header-rail) main{padding-top:58px}
}

/* tab bar: a small top line; the four tabs at the bottom of the phone, a floating pill on wide screens */
.cb-header-tabbar{position:absolute;z-index:30;inset:0 0 auto;pointer-events:none}
.tb-top{display:flex;justify-content:space-between;align-items:center;padding:14px var(--pad);pointer-events:auto}
.tb-top .mark{width:46px;flex:0 0 auto}.tb-top .langs{display:flex;gap:10px;font-size:.75rem;overflow-x:auto;scrollbar-width:none;min-width:0;margin-left:16px}.tb-top .langs a{text-decoration:none;opacity:.75}.tb-top .langs a[aria-current]{opacity:1;font-weight:600}
.tb-bar{position:fixed;z-index:45;left:50%;bottom:18px;translate:-50% 0;display:flex;gap:4px;padding:6px;border-radius:999px;background:var(--deep);color:#f2efea;box-shadow:0 10px 40px rgba(0,0,0,.35);pointer-events:auto}
.tb-bar a{display:flex;align-items:center;gap:8px;padding:10px 18px;border-radius:999px;text-decoration:none;font-size:.8rem;letter-spacing:.06em}
.tb-bar a:hover,.tb-bar a.js-book{background:var(--peach);color:var(--ink)}
.tb-bar svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
@media (max-width:700px){
  .tb-bar{left:0;right:0;bottom:0;translate:none;border-radius:0;justify-content:space-around;padding:6px 4px calc(6px + env(safe-area-inset-bottom))}
  .tb-bar a{flex-direction:column;gap:3px;padding:6px 10px;font-size:.68rem;border-radius:12px}
  body.composed:has(.tb-bar){padding-bottom:70px}
}

/* float: no bar, one round button */
.cb-header-float{background:none!important;padding:0;inset:auto}
.cb-header-float .fl-btn{position:fixed;z-index:45;top:18px;right:18px;width:54px;height:54px;border-radius:50%;background:var(--peach);color:var(--ink);box-shadow:0 6px 24px rgba(0,0,0,.3)}
.cb-header-float .fl-btn span{left:16px;right:16px}.cb-header-float .fl-btn span:first-child{top:22px}.cb-header-float .fl-btn span:last-child{top:30px}
.cb-header-float .fl-btn[aria-expanded=true] span{top:26px}
.composed .preview~.cb-header-float .fl-btn{top:44px}

/* ---------------------------------------------------------------- opening */
.cb-opening h1{margin:0}
.h-type{display:flex;flex-direction:column}
/* corner: the photo to the edges, the words in a corner */
.cb-opening-corner{position:relative;min-height:100svh;display:flex;color:#fff;isolation:isolate;overflow:hidden}
.co-ph{position:absolute;inset:0;z-index:-1;margin:0}.co-ph img{width:100%;height:100%;object-fit:cover}
.co-ph .hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:transparent}   /* media.hero.video: the film over its first frame */
.cb-opening-corner .pause{position:absolute;top:auto;right:clamp(12px,2vw,30px);bottom:clamp(16px,3vw,32px);z-index:2;width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.7);background:rgba(0,0,0,.35);color:#fff;font-size:.7rem;letter-spacing:-.1em;cursor:pointer}
.co-ph::after{content:"";position:absolute;inset:0;background:linear-gradient(20deg,rgba(0,0,0,.72),rgba(0,0,0,.05) 60%)}
.co-t{margin-top:auto;padding:var(--pad);max-width:min(720px,100%)}
.at-br .co-t{margin-left:auto;text-align:right}.at-tl .co-t{margin-top:0;padding-top:110px}
.co-t h1{color:#fff;font-size:clamp(3rem,9vw,7.5rem);line-height:.92}
.co-tag{font:400 clamp(1.1rem,2.2vw,1.5rem)/1.35 var(--serif);margin:1rem 0 1.6rem;max-width:32em}
.co-a,.sp-a{display:flex;gap:22px;align-items:center;flex-wrap:wrap}.at-br .co-a{justify-content:flex-end}
/* split: half photo, half words */
.cb-opening-split{display:grid;grid-template-columns:1fr 1fr;min-height:100svh;background:var(--sand)}
.cb-opening-split.ph-left .sp-ph{order:-1}
.sp-ph{margin:0;min-height:50svh}.sp-ph img{width:100%;height:100%;object-fit:cover}
.sp-ph{position:relative;overflow:hidden}.sp-ph .sp-film{z-index:1;background:transparent}.sp-ph .pause{top:16px;bottom:auto;right:16px;z-index:2}   /* film=on: the film over its first frame */
.sp-t{display:flex;flex-direction:column;justify-content:center;padding:120px var(--pad) var(--pad)}
.sp-t h1{font-size:clamp(2.8rem,6vw,5.6rem);line-height:.95;color:var(--brown)}
.sp-tag{font:400 clamp(1.1rem,2vw,1.45rem)/1.35 var(--serif);margin:1.1rem 0 1rem}.sp-lead{color:var(--muted);max-width:34em;margin-bottom:1.6rem}
@media (max-width:820px){.cb-opening-split{grid-template-columns:1fr}.sp-ph{order:-1;height:56svh}.sp-t{padding:40px var(--pad)}}
/* poster: type only */
.cb-opening-poster{min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding:110px var(--pad) var(--pad);background:var(--sand);color:var(--ink)}
.po-k{font-size:.8rem;letter-spacing:.3em;text-transform:uppercase}
.po-h{font:400 clamp(4rem,17vw,16rem)/.82 var(--serif);color:var(--brown);letter-spacing:-.02em;margin:.2em 0}
.po-tag{font:400 clamp(1.2rem,2.6vw,2rem)/1.25 var(--serif);max-width:28em}
.cb-opening-poster{position:relative;isolation:isolate}
.po-mark{position:absolute;z-index:-1;right:var(--pad);top:50%;translate:0 -50%;width:min(38vw,520px);opacity:.9}.po-mark svg{width:100%;height:auto;display:block}
@media (max-width:700px){.cb-opening-poster{min-height:0;padding-top:96px}.po-mark{position:static;translate:none;width:45%;margin:0 0 18px}.po-facts{margin-top:2rem}}
/* poster with photo=: one photo set into the poster, a round window at the foot on wide screens, under the words on phones */
.po-ph{position:absolute;z-index:-1;right:var(--pad);bottom:calc(var(--pad) + 64px);width:min(32vw,440px);aspect-ratio:1;margin:0;border-radius:50%;overflow:hidden}.po-ph img{width:100%;height:100%;object-fit:cover;display:block}
@media (min-width:701px){.cb-opening-poster.has-ph .po-facts{margin-right:calc(min(32vw,440px) + 24px)}}
@media (max-width:700px){.po-ph{position:static;width:78%;margin:26px -8% 0 auto}}
/* {{opening poster call=icons}}: call and WhatsApp as round buttons after the phone number */
.po-ic{display:inline-flex;gap:8px;margin-left:10px;vertical-align:middle}.po-ic a{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;border:1.5px solid currentColor;color:inherit}
.po-ic a:hover{background:var(--ink);color:var(--sand);border-color:var(--ink)}.po-ic svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.po-social .po-ic{margin-left:0}
/* {{opening poster video=on}}: the film over the first screen, the poster below it */
.po-film{position:relative;height:calc(100svh - var(--po-film-off,110px));min-height:300px;overflow:hidden;background:var(--ink)}
.po-film video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.po-film .pause{top:auto;bottom:clamp(16px,3vw,32px)}
@media (max-width:700px){.po-film .pause{top:14px;bottom:auto;right:14px}}   /* phones: clear of a tab bar at the foot */
.cb-opening-poster.has-film{padding-top:clamp(48px,7vw,90px)}
.po-facts{list-style:none;padding:0;margin-top:auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px 30px;border-top:2px solid currentColor;padding-top:14px;font-size:.85rem}
.po-facts b{display:block;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;font-weight:600}
/* menu: the opening is today's card */
.cb-opening-menu{min-height:100svh;display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(24px,5vw,80px);align-items:center;padding:110px var(--pad) var(--pad);background:var(--deep);color:#f2efea}
.om-head h1{font-size:clamp(2.6rem,6vw,5.4rem);line-height:.95;color:#fff}.om-tag{font:400 1.3rem/1.35 var(--serif);margin-top:1rem;color:var(--peach)}
.om-card{background:var(--sand);color:var(--ink);padding:clamp(22px,4vw,48px);box-shadow:0 30px 70px rgba(0,0,0,.4);text-align:center}
.om-card .hc-l{list-style:none;padding:0;margin:1.2rem 0}.om-card .hc-l li{padding:12px 0;border-top:1px dotted var(--line)}
.om-card .hc-n{font:400 1.3rem/1.2 var(--serif);color:var(--brown)}.om-card .hc-c{display:block;font-size:.88rem;color:var(--muted)}.om-card .hc-p{font-weight:600}
.om-card .hc-k{letter-spacing:.3em;text-transform:uppercase;font-size:.75rem}.om-card .hc-d{font-size:.78rem;color:var(--muted);margin-top:.3rem}
@media (max-width:820px){.cb-opening-menu{grid-template-columns:1fr}}
/* booking: the form is the opening */
.cb-opening-booking{position:relative;min-height:100svh;display:grid;grid-template-columns:1fr minmax(320px,460px);gap:clamp(24px,5vw,70px);align-items:center;padding:120px var(--pad) var(--pad);background:var(--deep);color:#f2efea;isolation:isolate}
.ob-ph{position:absolute;inset:0;z-index:-1;margin:0}.ob-ph img{width:100%;height:100%;object-fit:cover;opacity:.38}
.ob-t h1{font-size:clamp(2.8rem,7vw,6rem);line-height:.92;color:#fff}.ob-tag{font:400 1.35rem/1.35 var(--serif);margin:1rem 0}
.ob-t .status{text-align:left}
.ob-form form{background:var(--sand);color:var(--ink);padding:clamp(20px,3vw,34px);display:grid;gap:14px}
.ob-form h2{font-size:1.8rem;margin:0}.ob-form label{display:grid;gap:4px;font-size:.8rem;letter-spacing:.08em}
.ob-form input,.ob-form select,.ob-form textarea{font:inherit;padding:10px;border:1px solid var(--line);background:#fff;color:var(--ink)}
.ob-form .bk-row{display:grid;grid-template-columns:1fr 1fr .7fr;gap:10px}
@media (max-width:820px){.cb-opening-booking{grid-template-columns:1fr}.ob-form .bk-row{grid-template-columns:1fr 1fr}}
/* strip: a row of photos, the name over it */
.cb-opening-strip{padding-top:96px;background:var(--sand);overflow:hidden}
.st-t{padding:0 var(--pad) 26px;display:flex;justify-content:space-between;align-items:end;gap:20px;flex-wrap:wrap}
.st-t h1{font-size:clamp(2.6rem,8vw,6.5rem);line-height:.9;color:var(--brown)}.st-tag{font:400 1.2rem/1.35 var(--serif);max-width:24em}
.st-l{list-style:none;padding:0;display:flex;gap:10px;height:min(62svh,560px)}
.st-l li{flex:1 1 0;min-width:0}.st-l li:nth-child(odd){margin-top:40px}.st-l img{width:100%;height:100%;object-fit:cover}
@media (max-width:700px){.st-l{overflow-x:auto;scroll-snap-type:x mandatory;height:52svh}.st-l li{flex:0 0 72%;scroll-snap-align:center}.st-l li:nth-child(odd){margin-top:0}}

/* ---------------------------------------------------------------- open now / hours */
.cb-now .status::before{flex:0 0 auto}
.cb-now-sentence{font:400 clamp(1.1rem,2vw,1.4rem)/1.5 var(--serif)}
.cb-now-sentence .status{display:inline;margin:0;font:inherit;letter-spacing:0}
.cb-now-table{padding:clamp(56px,8vw,110px) 0}
.nt-g{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(24px,5vw,80px);align-items:start}
.nt-g .status{text-align:left;margin-top:0}
.nt-l{list-style:none;padding:0;font-size:1.05rem}
.nt-l li{display:grid;grid-template-columns:1fr auto;gap:20px;padding:14px 4px;border-bottom:1px solid var(--line)}
.nt-l li:first-child{border-top:2px solid currentColor}.nt-l li span:last-child{font-variant-numeric:tabular-nums;text-align:right}
@media (max-width:760px){.nt-g{grid-template-columns:1fr}}
.cb-now-ticker{background:var(--peach);color:var(--ink);display:flex;align-items:center;gap:20px;overflow:hidden;white-space:nowrap;padding:10px 0 10px var(--pad);font-size:.85rem;letter-spacing:.06em}
.cb-now-ticker .status{margin:0;flex:0 0 auto;font-weight:600}.cb-now-ticker .closing{display:none}
.tk-run{overflow:hidden;flex:1;mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.tk-run p{display:inline-block;margin:0}.tk-run span{margin-right:2.4em}.tk-run span::before{content:"◆";margin-right:2.4em;font-size:.6em;vertical-align:.2em}
@media (prefers-reduced-motion:no-preference){.tk-run p{animation:tk 40s linear infinite}@keyframes tk{to{transform:translateX(-33.33%)}}}
.cb-now-chip{position:fixed;z-index:44;left:16px;bottom:16px;max-width:calc(100vw - 32px)}
.ch-d summary{list-style:none;cursor:pointer;background:var(--white);color:var(--ink);border:1px solid var(--line);border-radius:999px;padding:8px 16px;box-shadow:0 6px 20px rgba(0,0,0,.18)}
.ch-d summary::-webkit-details-marker{display:none}
.ch-s{margin:0;font-size:.8rem}.ch-p{background:var(--white);color:var(--ink);margin-bottom:10px;padding:16px 18px;border-radius:14px;box-shadow:0 10px 30px rgba(0,0,0,.2);position:absolute;bottom:100%;left:0;width:min(320px,calc(100vw - 32px))}
.ch-p .hours{list-style:none;padding:0;font-size:.85rem}.ch-p .hours li{display:flex;justify-content:space-between;gap:12px;padding:4px 0}
body.composed:has(.tb-bar) .cb-now-chip{bottom:86px}
.cb-now-dial{padding:clamp(56px,8vw,110px) 0}
.dl-g{display:grid;grid-template-columns:minmax(240px,380px) 1fr;gap:clamp(28px,6vw,90px);align-items:center}
.dl-f{margin:0;position:relative}.dl-svg{width:100%;height:auto;display:block}
.dl-ring{fill:none;stroke:var(--line);stroke-width:14}.dl-arc{fill:none;stroke:var(--peach);stroke-width:14;stroke-linecap:butt}
.dl-n{font:500 9px var(--sans);text-anchor:middle;fill:currentColor;opacity:.6}
.dl-hand{stroke:var(--brown);stroke-width:2.5;stroke-linecap:round;transform-origin:100px 100px}.dl-hub{fill:var(--brown)}
.dl-f figcaption{text-align:center;margin-top:12px}.dl-s{display:inline-block;margin:0}
.dl-t .hours{list-style:none;padding:0}.dl-t .hours li{display:flex;justify-content:space-between;gap:20px;padding:10px 0;border-bottom:1px solid var(--line)}
@media (max-width:760px){.dl-g{grid-template-columns:1fr}.dl-f{max-width:300px;margin:auto}}

/* ---------------------------------------------------------------- menu */
/* carta: one column, centred, like a printed menu */
.cb-menu-carta .wrap{max-width:780px}
.cb-menu-carta .menu-head{text-align:center;justify-content:center}
.cb-menu-carta #menu-grid{display:block;columns:auto}
.cb-menu-carta .menu-col{margin:0 auto 3rem;text-align:center;break-inside:avoid}
.cb-menu-carta .menu-col h3{font-size:clamp(1.6rem,3vw,2.2rem);margin-bottom:1rem}
.cb-menu-carta .menu-col li{display:block;padding:10px 0;border:0}
.cb-menu-carta .menu-col li>div{display:block}.cb-menu-carta .menu-col .price{display:block;margin-top:2px}
.cb-menu-carta .menu-col .note{display:block}
/* board: a blackboard panel */
.cb-menu-board .menu-grid{background:#1d211f;color:#eceae2;padding:clamp(22px,4vw,56px);border:12px solid #5a4632;box-shadow:inset 0 0 60px rgba(0,0,0,.6),0 20px 50px rgba(0,0,0,.35);display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:30px 50px}
.cb-menu-board .menu-col h3{color:#fff;font-style:italic;border-bottom:1px dashed rgba(236,234,226,.4);padding-bottom:.4rem}
.cb-menu-board .menu-col li{border:0;padding:7px 0}.cb-menu-board .note,.cb-menu-board .alg{color:rgba(236,234,226,.65)}
/* table: rows with dotted leaders and the prices in a column */
.cb-menu-table #menu-grid{display:block}
.cb-menu-table .menu-col{margin-bottom:2.4rem}
.cb-menu-table .menu-col h3{font-size:1rem;letter-spacing:.24em;text-transform:uppercase;padding:10px 14px;background:var(--brown);color:#fff;margin:0}
.cb-menu-table .menu-col ul{list-style:none;padding:0}
.cb-menu-table .menu-col li{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:baseline;padding:12px 14px;border-bottom:1px solid var(--line)}
.cb-menu-table .menu-col li:nth-child(even){background:color-mix(in srgb,var(--sand) 50%,transparent)}
.cb-menu-table .menu-col .dish{font-weight:500}.cb-menu-table .price{font-variant-numeric:tabular-nums;font-weight:600;min-width:4.5em;text-align:right}
/* cards: one card per section, a photo on top */
.cb-menu-cards #menu-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px}
.cb-menu-cards .menu-col{background:var(--white);color:var(--ink);border-radius:18px;overflow:hidden;box-shadow:0 12px 34px rgba(0,0,0,.14);padding:0 0 18px}
.cb-menu-cards .menu-col h3{padding:18px 22px 6px;color:var(--brown)}.cb-menu-cards .menu-col ul,.cb-menu-cards .pf-note{padding:0 22px}
.cb-menu-cards .mc-ph{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}
/* tabs and accordion: assets/compose.js builds them over the engine's sections */
.mt-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 1.6rem}
.mt-tabs button{font:inherit;font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;padding:10px 16px;border:1px solid currentColor;background:none;color:inherit;border-radius:4px;cursor:pointer}
.mt-tabs button[aria-selected=true]{background:var(--peach);border-color:var(--peach);color:var(--ink)}
.cb-menu-tabs.mt-on #menu-grid{display:block}.cb-menu-tabs.mt-on .menu-col{display:none}.cb-menu-tabs.mt-on .menu-col.mt-cur{display:block}
.cb-menu-tabs.mt-on .menu-jump{display:none}
.cb-menu-accordion #menu-grid{display:block}
.cb-menu-accordion .menu-col{border-top:1px solid currentColor}
.cb-menu-accordion .menu-col h3{margin:0}
.ma-btn{all:unset;box-sizing:border-box;width:100%;display:flex;justify-content:space-between;align-items:center;padding:18px 4px;cursor:pointer;font:inherit}
.ma-btn::after{content:"+";font-size:1.6rem;line-height:1;transition:rotate .3s}.menu-col.ma-open .ma-btn::after{rotate:45deg}
.ma-btn:focus-visible{outline:2px solid var(--peach);outline-offset:2px}
.cb-menu-accordion.ma-on .menu-col>:not(h3){display:none}.cb-menu-accordion.ma-on .menu-col.ma-open>:not(h3){display:block}
.cb-menu-accordion.ma-on .menu-jump{display:none}

/* ---------------------------------------------------------------- reviews */
/* quote: one review, large; the button shows the next */
.cb-reviews-quote .rev-head{display:block;text-align:center}.cb-reviews-quote .rev-src{display:none}
.cb-reviews-quote .rev-list{display:block!important;max-width:900px;margin:2rem auto 0}
.cb-reviews-quote .rev-card{display:none;background:none;border:0;box-shadow:none;text-align:center;padding:0}
.cb-reviews-quote .rev-card.rv-on{display:block}
.cb-reviews-quote .rev-card blockquote{font:400 clamp(1.4rem,3.2vw,2.4rem)/1.3 var(--serif);-webkit-line-clamp:unset;display:block;overflow:visible;max-height:none}
.cb-reviews-quote .rev-card .rev-full{display:none}.cb-reviews-quote .rev-who{justify-content:center;margin-top:1.4rem}
.cb-reviews-quote .rev-cta{justify-content:center}.cb-reviews-quote #rev-toggle{display:none}
/* marquee: the cards running sideways */
.cb-reviews-marquee .rev-list{display:flex!important;flex-wrap:nowrap;gap:20px;width:max-content;grid-template-columns:none}
.cb-reviews-marquee .rev-card{width:340px;flex:0 0 340px}
.cb-reviews-marquee .wrap{overflow:hidden;width:100%;max-width:none}.cb-reviews-marquee .rev-head,.cb-reviews-marquee .rev-cta{width:min(1140px,100% - 40px);margin-inline:auto}
@media (prefers-reduced-motion:no-preference){.cb-reviews-marquee .rev-list.mq-on{animation:mq 60s linear infinite}.cb-reviews-marquee .rev-list:hover{animation-play-state:paused}@keyframes mq{to{transform:translateX(-50%)}}}
@media (prefers-reduced-motion:reduce){.cb-reviews-marquee .wrap{overflow-x:auto}}
.cb-reviews-marquee #rev-toggle{display:none}
/* wall: short lines, many of them */
.cb-reviews-wall .rev-list{display:block!important;columns:3 260px;column-gap:40px}
.cb-reviews-wall .rev-card{break-inside:avoid;background:none;border:0;box-shadow:none;padding:0 0 22px;margin:0}
.cb-reviews-wall .rev-card blockquote{-webkit-line-clamp:2;font:italic 400 1.15rem/1.4 var(--serif)}
.cb-reviews-wall .rev-av,.cb-reviews-wall .rev-stars{display:none}.cb-reviews-wall #rev-toggle{display:none}
.cb-reviews-wall .rev-card .rev-full{display:none}
/* the wall's cards have no ground of their own (background:none), so the full review that opens over a long one (style.css
   .rev-full: background:inherit, padding:inherit) was see-through and unpadded, over the short text and the name: give it its
   own card, a little wider than the column (--rev-pop: a venue's colour for it; default white) */
.cb-reviews-wall .rev-full{background:var(--rev-pop,#fff);color:var(--ink,#222);inset:-14px -18px auto;padding:14px 18px 18px;border-radius:2px}
/* score: the figure only */
.rv-score{text-align:center;margin:1rem 0 2rem}
.rv-n b{display:block;font:400 clamp(5rem,16vw,11rem)/.9 var(--serif);color:var(--brown)}
.rv-n span{letter-spacing:.3em;color:var(--peach);font-size:1.4rem}.rv-c{letter-spacing:.14em;text-transform:uppercase;font-size:.8rem}
.cb-reviews-score .rev-list,.cb-reviews-score #rev-toggle{display:none!important}
.cb-reviews-score .rev-head{display:block;text-align:center}.cb-reviews-score .rev-src{justify-content:center;margin-top:1rem}
.cb-reviews-score .rev-cta{justify-content:center}

/* ---------------------------------------------------------------- location */
.cb-location .addr{margin:1rem 0}
.ld-a{display:flex;gap:20px;align-items:center;flex-wrap:wrap;margin:1.2rem 0}
.lo-h{margin-top:2rem}.lo-h .hours,.ll-g .hours{list-style:none;padding:0}.lo-h .hours li,.ll-g .hours li{display:flex;justify-content:space-between;gap:16px;padding:6px 0;border-bottom:1px solid var(--line)}
.ld-g{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(28px,6vw,90px)}
.lo-map{margin-top:clamp(28px,5vw,64px)}.lo-map .map-card{margin:0}
.ld-steps{list-style:none;padding:0;counter-reset:ld}
.ld-steps li{counter-increment:ld;position:relative;padding:0 0 28px 64px;border-left:1px solid var(--line);margin-left:20px}
.ld-steps li::before{content:counter(ld);position:absolute;left:-20px;top:0;width:40px;height:40px;border-radius:50%;background:var(--brown);color:#fff;display:grid;place-items:center;font:500 1rem var(--sans)}
.ld-steps h3{font-size:1.35rem;margin-bottom:.3rem}
.cb-location-street{position:relative;min-height:90svh;display:flex;align-items:flex-end;color:#fff;isolation:isolate}
.ls-ph{position:absolute;inset:0;margin:0;z-index:-1}.ls-ph img{width:100%;height:100%;object-fit:cover}
.ls-ph::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.8),rgba(0,0,0,.1) 70%)}
.ls-t{padding:var(--pad);max-width:900px}
.ls-addr{font:400 clamp(2.6rem,8vw,6.5rem)/.95 var(--serif);margin:0}.ls-city{font-size:1.1rem;letter-spacing:.2em;text-transform:uppercase;margin:.4rem 0 1rem}
.cb-location-street .addr{opacity:.9}.cb-location-street .lo-h .hours li{border-color:rgba(255,255,255,.25)}
.ll-g{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,6vw,90px)}
.ll-l{list-style:none;padding:0}.ll-l li{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}
.ll-l b{font:400 1.3rem var(--serif)}.ll-l span{font-variant-numeric:tabular-nums;color:var(--muted)}
@media (max-width:760px){.ld-g,.ll-g{grid-template-columns:1fr}}

/* ---------------------------------------------------------------- footer */
.cb-footer-columns{padding:clamp(40px,6vw,80px) var(--pad);background:var(--deep);color:#f2efea;text-align:left}
.fc-g{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.fc-g .f-name{font:400 1.6rem var(--serif);color:#fff}
.fc-g .hours{list-style:none;padding:0;font-size:.9rem}.fc-g .hours li{display:flex;justify-content:space-between;gap:12px}
@media (max-width:760px){.fc-g{grid-template-columns:1fr}}
.cb-footer-wordmark{padding:50px var(--pad) 0;background:var(--deep);color:#f2efea;overflow:hidden;text-align:left}
.fw-name{font:400 clamp(4rem,19vw,17rem)/.8 var(--serif);color:var(--peach);margin:30px 0 -.12em;white-space:nowrap;letter-spacing:-.02em}
.fw-name span{margin-right:.2em}
.cb-footer-line{padding:22px var(--pad);font-size:.82rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;border-top:1px solid var(--line)}

/* the header variants' own navigation is not the full-screen overlay of style.css (#nav) */
#nav.mh-nav,#nav.rl-nav,#nav.tb-bar{opacity:1;visibility:visible;z-index:auto;inset:auto;flex-direction:row;justify-content:center;align-items:center;font:inherit;background:none}
#nav.mh-nav{position:static;display:flex;gap:clamp(14px,3vw,40px);justify-content:center}
#nav.rl-nav{position:static;flex-direction:column;align-items:flex-start;justify-content:flex-start;text-align:left}
#nav.tb-bar{position:fixed;background:var(--deep);gap:4px;z-index:45;left:50%;bottom:18px;top:auto;right:auto}
#nav.mh-nav>a,#nav.rl-nav>a,#nav.tb-bar>a{padding:inherit;color:inherit}
#nav.tb-bar>a{padding:10px 18px}
#nav.tb-bar>a:hover,#nav.tb-bar>a.js-book{color:var(--ink)}   /* the hover and booking tab are light: dark text (the id rule above would keep the bar's light text) */
@media (max-width:820px){#nav.rl-nav{flex-direction:row;justify-content:flex-start}}
@media (max-width:700px){#nav.tb-bar{left:0;right:0;bottom:0;justify-content:space-around}#nav.tb-bar>a{padding:6px 10px}#nav.mh-nav{justify-content:flex-start}}
.f-langs{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:.78rem}.f-langs a{text-decoration:none;opacity:.75}.f-langs a[aria-current]{opacity:1;text-decoration:underline}
.cb-footer-plain .f-langs,.cb-footer-line .f-langs{justify-content:center}
.cb-opening-menu{position:relative;isolation:isolate}
.om-ph{position:absolute;inset:0;z-index:-1;margin:0}.om-ph img{width:100%;height:100%;object-fit:cover}
.om-ph::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.78),rgba(0,0,0,.35))}

/* ---------------------------------------------------------------- lodging: where the booking box is */
.cb-booking-inline .bi-g,.bp-g{display:grid;grid-template-columns:1fr 1.4fr;gap:clamp(24px,5vw,70px);align-items:center}
@media (max-width:760px){.cb-booking-inline .bi-g,.bp-g{grid-template-columns:1fr}}
.cb-booking-strip{position:sticky;top:0;z-index:35;background:var(--sand,#f3efe8);border-bottom:1px solid var(--line);padding:10px var(--pad)}
.composed .preview-bar~.cb-booking-strip,.composed .cb-booking-strip{top:0}
.bs-in form.bk{display:flex;flex-wrap:wrap;gap:10px;align-items:end;margin:0}.bs-in .bk-f{flex:1 1 120px}.bs-in .bk-err,.bs-in .bk-est{flex-basis:100%}
.bd-tab{position:fixed;z-index:45;right:0;top:50%;translate:0 -50%;writing-mode:vertical-rl;transform:rotate(180deg);padding:18px 12px;border:0;cursor:pointer;font:600 .8rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;background:var(--brown);color:#fff;border-radius:0 8px 8px 0}
.bd-panel{position:fixed;z-index:50;inset:0 0 0 auto;width:min(440px,100vw);overflow-y:auto;background:var(--white,#fff);color:var(--ink);padding:56px 28px 28px;box-shadow:-20px 0 60px rgba(0,0,0,.25)}
.bd-x{position:absolute;top:12px;right:14px;border:0;background:none;font-size:2rem;line-height:1;cursor:pointer;color:inherit}
.bdp h1{font-size:clamp(2.4rem,6vw,4.4rem)}.bdp .units{margin-top:3rem}
.cb-header-float .fl-row{position:fixed;z-index:44;top:24px;left:18px;display:flex;gap:12px;align-items:center}
html.no-js .bd-panel{position:static;width:auto;box-shadow:none;padding:40px var(--pad)}html.no-js .bd-tab,html.no-js .bd-x{display:none}
.bd-panel form.bk,.bi-box form.bk{display:grid!important;grid-template-columns:1fr 1fr;gap:12px;align-items:end;position:static}
.bd-panel form.bk>*,.bi-box form.bk>*{position:static;margin:0;min-width:0}
.bi-box form.bk .btn,.bd-panel form.bk .btn,.bd-panel form.bk .bk-err,.bd-panel form.bk .bk-est,.bi-box form.bk .bk-err,.bi-box form.bk .bk-est{grid-column:1/-1}

/* ---------------------------------------------------------------- the venue's logo, as it is (STYLES.md rule 7)
   Only its size is set here: never a filter, mask, outline, crop, recolouring or animation. */
.cb-logo{display:block;height:auto;max-width:100%}
.mark .cb-logo,.cb-logo-s{width:auto;height:46px;max-width:160px;object-fit:contain}
.cb-logo-l{width:min(460px,78vw);height:auto}
.cb-logo-f{width:min(240px,60vw);margin:0 auto 1.4rem}
.po-mark .cb-logo{width:100%;height:auto}
.lh-mark .cb-logo{width:min(220px,50vw);height:auto;margin:0 auto}
.cb-wordmark{display:inline-flex;flex-direction:column;font-family:var(--serif);line-height:1}
.mark .cb-wordmark{font-size:1.1rem}
.mark{width:auto}

/* ---------------------------------------------------------------- variants from the award-winning references (21 Oct 2026) */
/* rail with the address (Kiln) */
.cb-header-rail.has-addr .rl-addr{font-size:.74rem;line-height:1.5;letter-spacing:.06em;margin:0}
.cb-header-rail.has-addr .rl-addr a{text-decoration:none}
.rl-pill{display:inline-block;border:1px solid currentColor;border-radius:999px;padding:8px 16px;text-decoration:none;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase}
.rl-pill:hover{background:var(--peach);color:var(--ink);border-color:var(--peach)}
@media (max-width:820px){.cb-header-rail.has-addr .rl-addr{display:none}.cb-header-rail .rl-pill{position:fixed;left:16px;right:16px;bottom:12px;text-align:center;background:var(--deep);color:#fff;z-index:46;padding:12px}}
/* pills (Torre del Saracino) */
.cb-header-pills{position:fixed;inset:0 0 auto;z-index:40;display:flex;justify-content:space-between;align-items:flex-start;padding:18px var(--pad);background:none!important;color:var(--ink);pointer-events:none}
.cb-header-pills>*{pointer-events:auto}
.pl-burger{width:52px;height:52px;border-radius:50%;background:var(--white);box-shadow:0 4px 18px rgba(0,0,0,.18);color:var(--ink)}
.pl-burger span{left:16px;right:16px}
.pl-logo{position:absolute;left:50%;top:14px;translate:-50% 0}.pl-logo .cb-logo{height:58px;max-width:200px}
.pl-r{display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.pl-lw{display:flex;align-items:center;gap:10px}.pl-lp .lp>summary{min-height:44px;padding:0 14px;border-radius:999px;background:var(--white);color:var(--ink);box-shadow:0 4px 18px rgba(0,0,0,.18)}
.pl-pill{display:inline-block;padding:11px 22px;border-radius:999px;background:var(--brown);color:#fff;text-decoration:none;font-size:.8rem;letter-spacing:.08em;box-shadow:0 4px 18px rgba(0,0,0,.18)}
.pl-pill-2{background:var(--white);color:var(--ink)}
.pl-tel{display:none;width:44px;height:44px;border-radius:50%;background:var(--white);color:var(--ink);text-decoration:none;place-items:center;font-size:1.3rem}
.pl-menu{position:fixed;left:50%;bottom:18px;translate:-50% 0;padding:12px 26px;border-radius:999px;background:var(--white);color:var(--ink);text-decoration:none;font-size:.82rem;letter-spacing:.1em;box-shadow:0 6px 22px rgba(0,0,0,.2);z-index:41}
.cb-header-pills.solid{background:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;box-shadow:none!important}   /* a filter would make the header the containing block of the fixed menu pill (it jumped to the top on scroll) */
.cb-header-pills #nav{pointer-events:auto}
.cb-header-pills #nav .pl-langs{display:flex;flex-wrap:wrap;justify-content:center;gap:2px 14px;margin:18px 0 0;padding:0;border:0;font-family:var(--sans)}.cb-header-pills #nav .pl-langs a{color:inherit;font:500 .8rem/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;padding:12px 4px;opacity:.7;border:0}.cb-header-pills #nav .pl-langs a[aria-current]{opacity:1;text-decoration:underline;text-underline-offset:6px}
.cb-header-pills.open .pl-menu{visibility:hidden}
@media (max-width:700px){.pl-tel{display:grid}.pl-logo .cb-logo{height:44px;max-width:130px}.pl-pill{padding:9px 14px;font-size:.72rem}}
/* pill bar (Caviar Kaspia) */
.cb-header-pillbar{position:static}
.pb-logo{position:absolute;z-index:30;top:18px;left:var(--pad)}
.pb-bar{position:fixed;z-index:45;left:50%;bottom:18px;translate:-50% 0;display:flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:var(--white);color:var(--ink);box-shadow:0 8px 30px rgba(0,0,0,.2);max-width:calc(100vw - 24px)}
#nav.pb-nav{position:static;opacity:1;visibility:visible;z-index:auto;inset:auto;display:flex;flex-direction:row;gap:4px;background:none;font:inherit}
#nav.pb-nav>a{padding:8px 12px;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:inherit}
.pb-toggle{display:none;border:0;background:none;font:600 .78rem var(--sans);letter-spacing:.16em;text-transform:uppercase;padding:8px 14px;cursor:pointer;color:inherit}
.pb-bar .langs{display:none}
@media (max-width:900px){.pb-toggle{display:block}#nav.pb-nav{display:none;position:absolute;bottom:calc(100% + 10px);left:50%;translate:-50% 0;flex-direction:column;background:var(--white);border-radius:18px;padding:12px;box-shadow:0 8px 30px rgba(0,0,0,.2);min-width:220px}.pb-bar.open #nav.pb-nav{display:flex}}
/* wordmark (Atoma) */
.cb-header-wordmark{position:relative;z-index:30;background:var(--deep);color:#f2efe9;padding:16px var(--pad) 26px;text-align:center}
.wm-top{display:flex;justify-content:flex-end}.wm-top .langs{display:flex;gap:10px;font-size:.72rem}.wm-top .langs a{text-decoration:none;opacity:.75}.wm-top .langs a[aria-current]{opacity:1}
.wm-name{margin:8px 0 10px}.wm-name a{display:block}.wm-logo{width:min(1100px,100%);height:auto;margin:0 auto;max-height:46vh;object-fit:contain}
#nav.wm-nav{position:static;opacity:1;visibility:visible;z-index:auto;inset:auto;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;gap:10px clamp(18px,4vw,60px);background:none;font:400 clamp(.9rem,1.6vw,1.2rem) var(--serif);text-transform:uppercase;letter-spacing:.06em}
#nav.wm-nav>a{padding:0;color:inherit}
.wm-bar{position:fixed;z-index:44;left:0;right:0;bottom:0;display:flex;gap:18px;justify-content:center;align-items:center;flex-wrap:wrap;padding:10px var(--pad);background:var(--deep);color:#f2efe9;font-size:.78rem;letter-spacing:.06em;border-top:1px solid color-mix(in srgb,var(--peach) 35%,transparent)}
.wm-bar a{color:inherit;text-decoration:none}.wm-bar .wm-book{padding:9px 18px}
body.composed:has(.wm-bar){padding-bottom:60px}
/* the status in the bar sits on the bar's line (style.css gives .status a top margin for the openings: it pushed the hours
   below the address and the button) */
.wm-bar .status{margin:0;text-align:left}
@media (max-width:700px){.wm-bar .wm-addr{display:none}}
/* index (Enoteca della Valpolicella) */
.cb-header-index{position:relative;inset:auto;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:20px;padding:16px var(--pad);background:var(--sand)!important;color:var(--ink);border-bottom:1px solid currentColor}
.ix-btn{width:auto;height:auto;font:500 .78rem var(--sans);letter-spacing:.2em;text-transform:uppercase;color:inherit;padding:6px 0}
#nav.ix-nav{position:static;opacity:1;visibility:visible;z-index:auto;inset:auto;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;gap:4px 34px;background:none;font:400 .82rem var(--sans);letter-spacing:.16em;text-transform:uppercase}
#nav.ix-nav>a{color:inherit;padding:2px 0}#nav.ix-nav>a:nth-child(even){transform:translateY(12px)}
#nav.ix-nav .langs-m{display:none}
.ix-r{display:flex;gap:16px;align-items:center}.ix-r .langs{display:flex;gap:8px;font-size:.7rem}.ix-r .langs a{text-decoration:none;opacity:.7}.ix-r .langs a[aria-current]{opacity:1}
@media (max-width:820px){#nav.ix-nav{position:fixed;inset:0;z-index:-1;flex-direction:column;justify-content:center;align-items:center;gap:14px;background:var(--sand);font-size:1.3rem;opacity:0;visibility:hidden}
  #nav.ix-nav>a:nth-child(even){transform:none}.cb-header-index.open #nav.ix-nav{opacity:1;visibility:visible;z-index:39}#nav.ix-nav .langs-m{display:flex;gap:12px;font-size:.9rem}.ix-r .langs{display:none}
  .cb-header-index.open .ix-btn{position:relative;z-index:40}.cb-header-index.open .ix-btn::after{content:" \2715";letter-spacing:0}}   /* the open index keeps its button on top, as the way out */
/* title page (SAGA) */
.cb-opening-title{padding:clamp(40px,7vw,90px) var(--pad);text-align:center;background:var(--white)}
.tt-h{font:400 clamp(2.6rem,7vw,5.6rem)/1 var(--serif);color:var(--brown)}.tt-h .cb-logo{margin:0 auto;width:min(300px,60vw)}
.tt-line{margin-top:1rem;letter-spacing:.2em;text-transform:uppercase;font-size:.78rem}
.tt-ph{display:flex;justify-content:center;gap:clamp(14px,3vw,40px);margin-top:clamp(28px,5vw,60px)}
.tt-ph figure{margin:0;flex:0 1 380px}.tt-ph img{width:100%;aspect-ratio:1/1;object-fit:cover}
@media (max-width:700px){.tt-ph{flex-direction:column;align-items:center}.tt-ph figure{width:86%}}
/* one photograph (Torre del Saracino) */
.cb-opening-photo{position:relative;height:100svh;min-height:520px;overflow:hidden}
.ph-ph{position:absolute;inset:0;margin:0}.ph-ph img{width:100%;height:100%;object-fit:cover}
.ph-h{position:absolute;left:0;right:0;bottom:90px;text-align:center;color:#fff;font:300 clamp(1rem,2vw,1.4rem)/1.3 var(--serif);letter-spacing:.4em;text-transform:uppercase;text-shadow:0 2px 16px rgba(0,0,0,.6)}
.ph-h .h-type{flex-direction:row;justify-content:center;gap:.5em}
/* collage to drag (Caviar Kaspia) */
.cb-opening-collage{position:relative;height:min(100svh,900px);min-height:560px;overflow:hidden;background:var(--sand)}
.cl-wrap{position:absolute;inset:0;overflow:auto;scrollbar-width:none;cursor:grab}.cl-wrap::-webkit-scrollbar{display:none}.cl-wrap.drag{cursor:grabbing}
.cl-l{list-style:none;padding:0;margin:0;position:relative;width:2200px;height:1300px}
.cl-i{position:absolute;box-shadow:0 14px 40px rgba(0,0,0,.18)}.cl-i img{display:block;width:100%;height:100%;object-fit:cover;pointer-events:none}
.cl-0{left:60px;top:40px;width:360px;height:250px}.cl-1{left:520px;top:120px;width:300px;height:380px}.cl-2{left:1380px;top:60px;width:420px;height:300px}
.cl-3{left:180px;top:420px;width:420px;height:300px}.cl-4{left:1480px;top:460px;width:330px;height:420px}.cl-5{left:820px;top:800px;width:380px;height:260px}
.cl-6{left:300px;top:840px;width:300px;height:360px}.cl-7{left:1880px;top:200px;width:260px;height:340px}
.cl-card{position:absolute;left:50%;top:50%;translate:-50% -50%;z-index:2;width:min(420px,86vw);background:var(--white);padding:28px 30px;text-align:center;box-shadow:0 18px 60px rgba(0,0,0,.18)}
.cl-card h1 .cb-logo{width:min(260px,70%);margin:0 auto}.cl-tag{margin:.8rem 0 1rem;letter-spacing:.14em;text-transform:uppercase;font-size:.78rem}
/* the press wall (Atoma) */
.cb-reviews-press{background:var(--deep);color:#f2efe9;text-align:center}.cb-reviews-press h2{color:#fff}.cb-reviews-press .kicker{color:var(--peach)}
.pr-l{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1px;margin:2.4rem 0;background:color-mix(in srgb,var(--peach) 35%,transparent);border:1px solid color-mix(in srgb,var(--peach) 35%,transparent)}
.pr-l li{background:var(--deep);padding:30px 24px;display:flex;flex-direction:column;justify-content:center;gap:12px;min-height:180px}
.pr-w{font:400 1.25rem/1.35 var(--serif);color:#fff}.pr-s{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--peach)}
/* chapter heads (Enoteca della Valpolicella) */
.cb-chapter{display:flex;justify-content:space-between;gap:20px;padding:14px var(--pad);margin:0;border-top:1px solid var(--ink);border-bottom:1px solid var(--line);font:500 .74rem var(--sans);letter-spacing:.24em;text-transform:uppercase;background:var(--sand)}
.cb-chapter .ch-r{font:400 1.4rem/1 var(--serif);letter-spacing:0}

/* lodging: the masthead's and the rail's own navigation, not lodging.css's full-screen menu (.lodging #nav) */
html.lodging #nav.mh-nav,html.lodging #nav.rl-nav{background:none;color:inherit;font-weight:inherit;overflow:visible;justify-content:center}
html.lodging #nav.mh-nav{padding:12px 0;gap:8px clamp(14px,3vw,40px);flex-wrap:wrap;white-space:normal;justify-content:center}
@media (max-width:820px){html.lodging #nav.mh-nav{flex-wrap:nowrap;white-space:nowrap;overflow-x:auto;justify-content:flex-start}}
html.lodging #nav.rl-nav{padding:0;gap:16px}
html.lodging #nav.mh-nav>a,html.lodging #nav.rl-nav>a{color:inherit;font:inherit;font-size:.8rem;letter-spacing:.18em;text-transform:uppercase}
html.lodging #nav.rl-nav>a{font-size:.74rem;line-height:1.3;letter-spacing:.16em;white-space:normal}
.mh-brand .mh-logo{display:block;margin:0 auto;max-height:clamp(56px,9vw,110px);width:auto;max-width:min(80vw,520px)}
/* lodging: {{booking drawer step=units}} */
.bu-k{margin:18px 0 8px;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;opacity:.7}
.bu-l{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.bu-c{display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:100%;padding:0 0 10px;background:none;border:1px solid var(--line,rgba(0,0,0,.15));border-radius:6px;cursor:pointer;text-align:left;font:inherit;color:inherit;overflow:hidden}
.bu-c:hover,.bu-c:focus-visible{border-color:currentColor}
.bu-c img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.bu-n{font-weight:600;padding:0 10px}.bu-g,.bu-p{font-size:.82rem;padding:0 10px;opacity:.8}
.bd-back{background:none;border:0;padding:6px 0;font:inherit;font-size:.8rem;cursor:pointer;color:inherit;text-decoration:underline}
.bd-picked{font-weight:600;margin:4px 0 0}
/* lodging: {{availability inline}} */
.av-g{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:24px 48px;align-items:start}
.av-g .av-cal{grid-column:2}.av-g .av-box{grid-column:2}
.av-note{font-style:italic}
.av-next{font-size:.9rem;letter-spacing:.04em}
@media (max-width:820px){.av-g{grid-template-columns:1fr}.av-g .av-cal,.av-g .av-box{grid-column:auto}}

/* settings.hours_tbc: the status without a dot or a colour of open/closed */
.status.st-tbc::before{content:none!important;display:none!important}
.status.st-tbc{font-style:italic}

/* the rail's logo: the venue's own file at the rail's width, whatever its proportions (a wide logo no longer overflows) */
.cb-header-rail .mark{display:block;width:100%}
.cb-header-rail .mark .cb-logo{display:block;width:auto;max-width:100%;height:auto;max-height:64px}
@media (max-width:820px){.cb-header-rail .mark{width:110px;flex:0 0 110px}.cb-header-rail .mark .cb-logo{max-height:40px}
  html.lodging #nav.rl-nav{justify-content:flex-start}html.lodging #nav.rl-nav>a{white-space:nowrap}}
/* lodging: the openings other than photo set the name in the page's own heading, not lodging.css's spaced capitals over a photo */
.cb-opening-corner .lh-name,.cb-opening-split .lh-name,.cb-opening-poster .lh-name,.cb-opening-strip .lh-name{font:inherit;letter-spacing:inherit;text-transform:inherit;text-shadow:none}

/* ================================================================ partials the venue sessions asked for (October 2026) */
/* {{bar foot}}: at the foot of the screen on phones (wide=on: always) */
.cb-bar{display:none}
@media (max-width:820px){
  .cb-bar{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;position:fixed;z-index:44;left:0;right:0;bottom:0;background:var(--deep,#222);color:#fff;padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -6px 20px rgba(0,0,0,.15)}
  body:has(.cb-bar){padding-bottom:calc(56px + env(safe-area-inset-bottom))}
}
.cb-bar.bf-wide{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;position:fixed;z-index:44;left:0;right:0;bottom:0;background:var(--deep,#222);color:#fff}
body:has(.cb-bar.bf-wide){padding-bottom:56px}
.bf-i{display:flex;align-items:center;justify-content:center;min-height:56px;padding:6px 8px;text-decoration:none;color:inherit;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;border:0;border-left:1px solid rgba(255,255,255,.15);background:none}
.bf-i:first-child{border-left:0}.bf-book{background:var(--peach);color:var(--deep,#222);font-weight:600}
/* {{timeline lines}} */
.tl-l{list-style:none;margin:2rem 0 0;padding:0;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;position:relative;gap:18px}
.tl-l::before{content:"";position:absolute;left:0;right:0;top:9px;border-top:1px solid var(--brown)}
.tl-i{position:relative;padding-top:30px}
.tl-dot{position:absolute;top:2px;left:0;width:15px;height:15px;border-radius:50%;border:1px solid var(--brown);background:var(--paper,#fff)}
.tl-i.is-now .tl-dot{background:var(--brown)}
.tl-w{font-weight:600;margin:0 0 4px}.tl-t{margin:0;opacity:.85}
@media (max-width:820px){.tl-l{grid-auto-flow:row;padding-left:28px;gap:22px}.tl-l::before{left:7px;right:auto;top:0;bottom:0;border-top:0;border-left:1px solid var(--brown)}.tl-i{padding-top:0}.tl-dot{left:-28px;top:3px}}
/* {{figure numbers}} */
.cb-figure{position:relative;margin:0 auto;max-width:1100px;padding:0 16px 60px}
.cb-figure .fg-ph{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover}
.fg-box{position:absolute;bottom:0;right:6%;display:flex;gap:28px;padding:22px 26px;background:var(--brown);color:#fff;max-width:min(88%,520px)}
.fg-left .fg-box{right:auto;left:6%}
.fg-n{margin:0;display:flex;flex-direction:column;gap:4px}.fg-n b{font:400 clamp(2rem,5vw,3.4rem)/1 var(--serif)}.fg-n span{font-size:.85rem;opacity:.9}
@media (max-width:600px){.fg-box{position:relative;right:auto;left:auto;margin:-40px 16px 0;flex-wrap:wrap}.cb-figure{padding:0 0 30px}}
/* {{doors split}} */
.cb-doors{display:grid;grid-template-columns:1fr 1fr}
.dr{border:0;display:flex;flex-direction:column;justify-content:center;gap:10px;min-height:min(46vh,380px);padding:clamp(28px,6vw,80px);text-decoration:none;color:inherit}
.dr b{font:400 clamp(2rem,5.4vw,4rem)/1 var(--serif);text-decoration:none;border:0}.dr span{max-width:34ch;opacity:.85}
.cb-doors .dr-enq{background:var(--sand,#efe8dc);color:var(--ink,#222)}.cb-doors .dr-book{background:var(--brown);color:#fff}   /* above lodging.css's .lodging a{color:inherit} */
.dr:hover b,.dr:focus-visible b{text-decoration:underline;text-underline-offset:.15em;text-decoration-thickness:1px}
@media (max-width:700px){.cb-doors{grid-template-columns:1fr}.dr{min-height:0}}
/* {{now greet}} */
.cb-now-greet{padding:clamp(110px,16vh,180px) clamp(16px,6vw,80px) clamp(40px,8vh,90px);max-width:1100px;margin:0 auto}
.ng-hi{font:400 clamp(2.6rem,9vw,7rem)/1 var(--serif);margin:0 0 .3em}
.ng-h{font-size:clamp(1.1rem,2.2vw,1.5rem);margin:0 0 .6em}
.ng-today{font-size:clamp(1.05rem,2vw,1.4rem);max-width:40ch;margin:0 0 1rem}
.cb-now-greet .status{justify-content:flex-start;text-align:left}
.ng-a{display:flex;flex-wrap:wrap;gap:12px 22px;align-items:center;margin-top:1.4rem}
/* {{moments dated}} */
.cb-moments-dated .mo.is-now{outline:1px solid var(--brown);outline-offset:10px}
.cb-moments-dated .mo-now{display:inline-block;margin:6px 0 0;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--brown)}
.cb-moments-dated .mo-ph{margin:0 0 12px}.cb-moments-dated .mo-ph img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
/* {{tab dated}}: fixed on every screen */
.cb-tab{position:fixed;z-index:43;right:0;top:50%;translate:0 -50%;writing-mode:vertical-rl;display:flex;gap:10px;align-items:center;padding:16px 10px;background:var(--brown);color:#fff;text-decoration:none;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase}
@media (max-width:820px){.cb-tab{writing-mode:horizontal-tb;top:auto;bottom:14px;right:14px;translate:none;padding:9px 14px;border-radius:999px;max-width:62vw}.cb-tab .tb-k{display:none}.cb-tab .tb-d{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  body:has(.cb-bar) .cb-tab,body:has(.cb-frame) .cb-tab{bottom:calc(70px + env(safe-area-inset-bottom))}}
/* {{photos numbered}}: one photo at a time, the numbers the only control */
.cb-photos-numbered .pn-r{position:absolute;opacity:0;pointer-events:none}
.pn-s{position:relative;aspect-ratio:3/2;overflow:hidden}
.pn-f{position:absolute;inset:0;margin:0;opacity:0;visibility:hidden;transition:opacity .4s}
.pn-f img{width:100%;height:100%;object-fit:cover;display:block}
.pn-f figcaption{position:absolute;left:0;bottom:0;padding:10px 14px;background:rgba(0,0,0,.55);color:#fff;font-size:.85rem}
.pn-n{display:flex;gap:8px;margin-top:14px}
.pn-n label{display:grid;place-items:center;min-width:40px;height:40px;border:1px solid transparent;opacity:.6;cursor:pointer;font-variant-numeric:tabular-nums}
.cb-photos-numbered .pn-r:focus-visible~.pn-n label{outline:none}
.cb-photos-numbered .pn-r:focus-visible+*{outline:none}
@media (prefers-reduced-motion:reduce){.pn-f{transition:none}}
/* {{opening cutouts}}: the name huge, the venue's photos cut into pebbles around it */
.cb-opening-cutouts{position:relative;min-height:min(92vh,880px);padding:clamp(120px,16vh,170px) clamp(16px,5vw,64px) 60px;overflow:hidden}
.cb-opening-cutouts .cu-t{position:relative;z-index:2;max-width:62%}
.cu-h{font:400 clamp(3rem,11vw,9.5rem)/.92 var(--serif);margin:0;color:inherit}.cb-opening-cutouts .cu-h .h-type{color:inherit;font:inherit}.cu-h .h-type>span{display:block}
.cu-k{letter-spacing:.16em;text-transform:uppercase;font-size:.78rem}
.cu-call{margin:1.2rem 0 0}.cu-call a{font:400 clamp(1.6rem,4vw,2.6rem) var(--serif);text-decoration:none}
.cu-a{display:flex;flex-wrap:wrap;gap:12px 22px;margin-top:1.4rem}
.cu-l{list-style:none;margin:0;padding:0;position:absolute;inset:0;z-index:1}
.cu-c{position:absolute;overflow:hidden;box-shadow:0 18px 40px rgba(0,0,0,.18)}
.cu-c img{width:100%;height:100%;object-fit:cover;display:block}
.cu-c0{right:6%;top:14%;width:26vw;max-width:360px;aspect-ratio:1;border-radius:58% 42% 46% 54%/52% 46% 54% 48%}
.cu-c1{right:26%;top:48%;width:18vw;max-width:260px;aspect-ratio:1;border-radius:44% 56% 60% 40%/50% 60% 40% 50%;z-index:0}
.cu-c2{right:3%;bottom:8%;width:20vw;max-width:290px;aspect-ratio:4/3;border-radius:50% 50% 42% 58%/60% 44% 56% 40%}
.cu-c3{right:40%;top:10%;width:12vw;max-width:170px;aspect-ratio:1;border-radius:50%}
@media (max-width:899px){
  .cb-opening-cutouts .cu-t{max-width:none}
  .cu-l{position:static;display:flex;gap:10px;margin:0 0 22px;order:-1}
  .cb-opening-cutouts{display:flex;flex-direction:column}
  .cu-c{position:relative;inset:auto;width:30%;max-width:none;flex:1}.cu-c3{display:none}
}
/* {{location times}}: the drawn map with travel times */
.lt-g{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:28px 48px;align-items:start}
.lt-map{margin:0}.lt-svg{width:100%;height:auto;display:block}
.lt-bg{fill:var(--sand,#efe8dc)}.lt-ring{fill:none;stroke:var(--brown);stroke-opacity:.18}
.lt-l{stroke:var(--brown);stroke-opacity:.5;stroke-width:1}.lt-far{stroke-dasharray:4 5}
.lt-dot{fill:var(--brown)}.lt-arr{fill:var(--brown)}
.lt-me-r{fill:none;stroke:var(--peach);stroke-width:3}.lt-me{fill:var(--peach)}
.lt-svg .lt-t{font-size:13px;fill:var(--ink,#222)}.lt-n{font-weight:600}.lt-km{font-size:11px;fill:var(--brown);opacity:.7}
@media (max-width:820px){.lt-g{grid-template-columns:1fr}.lt-h{display:none}}
/* {{rail right}}: from 1000 px, beside the page */
.cb-rail-right{display:none}
@media (min-width:1000px){
  .cb-rail-right{display:flex;flex-direction:column;justify-content:space-between;gap:24px;position:fixed;z-index:39;top:0;right:0;bottom:0;width:116px;padding:90px 14px 24px;background:var(--deep,#222);color:#fff;overflow-y:auto;scrollbar-width:none}
  body.composed:has(.cb-rail-right) main,body.composed:has(.cb-rail-right)>footer{margin-right:116px}
}
.rr-acts,.rr-chs{display:flex;flex-direction:column;gap:12px}
.rr-a,.rr-c{color:inherit;text-decoration:none;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;line-height:1.3}
.rr-book{color:var(--peach);font-weight:600}.rr-c span{display:block;font:400 1.2rem var(--serif);letter-spacing:0}
/* {{book choose}}: a table or a room? */
.cb-choose{position:relative;display:inline-block}
.cb-choose>summary{list-style:none;cursor:pointer}.cb-choose>summary::-webkit-details-marker{display:none}
.chz-p{position:absolute;z-index:46;left:0;top:calc(100% + 8px);min-width:240px;display:flex;flex-direction:column;gap:8px;padding:16px;background:var(--white,#fff);color:var(--ink,#222);box-shadow:0 12px 34px rgba(0,0,0,.2)}
.chz-up .chz-p{top:auto;bottom:calc(100% + 8px)}
.chz-q{margin:0 0 4px;font-weight:600}.chz-o{display:block;padding:10px 12px;border:1px solid var(--line,rgba(0,0,0,.15));text-decoration:none;color:inherit}
.chz-o:hover,.chz-o:focus-visible{border-color:currentColor}
/* {{chapter … screen=on}} */
.cb-chapter-screen{min-height:72vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:60px 16px}
.cs-r{font:400 clamp(1.2rem,2.4vw,1.8rem) var(--serif);letter-spacing:.2em;margin:0 0 .4em}
.cs-w{font:400 clamp(3.4rem,14vw,12rem)/.9 var(--serif);margin:0;overflow-wrap:anywhere}
.cb-chapter-screen.tone-dark{background:var(--deep,#222);color:#fff}.cb-chapter-screen.tone-sand{background:var(--sand,#efe8dc)}.cb-chapter-screen.tone-brand{background:var(--brown);color:#fff}
/* {{frame facts}}: a thin frame of facts around the screen */
.cb-frame{position:fixed;z-index:38;inset:var(--fr-inset,14px);border:1px solid var(--brown);pointer-events:none}
.cb-frame>p{position:absolute;margin:0;padding:6px 10px;background:var(--paper,#fff);font-size:.74rem;letter-spacing:.08em;pointer-events:auto}
.fr-tl{top:-1px;left:-1px;text-transform:uppercase;letter-spacing:.16em}.fr-tr{top:-1px;right:70px;display:flex;gap:14px}
.fr-bl{bottom:-1px;left:-1px}.fr-br{bottom:-1px;right:-1px}
.fr-b{font-weight:600;color:var(--brown)}.fr-tr a,.fr-br a{text-decoration:none;color:inherit}
@media (max-width:820px){
  .cb-frame{inset:auto 0 0 0;height:auto;border:0;border-top:1px solid var(--brown);background:var(--paper,#fff);display:flex;justify-content:space-between;align-items:center;padding:8px 12px calc(8px + env(safe-area-inset-bottom));pointer-events:auto}
  .cb-frame>p{position:static;padding:0;background:none}.fr-tl,.fr-br,.fr-2{display:none}
  body:has(.cb-frame){padding-bottom:52px}
}
/* lodging: {{opening frame}}: one photo in a shaped frame on the paper, the name across the width at its foot */
.cb-opening-frame{padding:clamp(100px,14vh,150px) 16px 40px;text-align:center}
.fm-ph{margin:0 auto;width:min(70vw,560px);aspect-ratio:4/5;overflow:hidden}
.fm-ph img{width:100%;height:100%;object-fit:cover;display:block}
.fr-arch .fm-ph{border-radius:50% 50% 0 0/36% 36% 0 0}
.fm-t h1{margin:calc(-1 * var(--fr-overlap,.45em)) 0 0;position:relative;font-size:clamp(2.4rem,9.6vw,9rem);line-height:1}
.fm-t .lh-name{font:inherit;letter-spacing:inherit;text-transform:inherit;text-shadow:none;text-wrap:balance}
.fm-t .lh-h{display:block;font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;margin-top:1rem}
.fm-tag{max-width:46ch;margin:1rem auto}.fm-a{margin-top:1.2rem}
/* lodging: {{booking builder}} */
.bb-g{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:28px;align-items:start}
.bb-units,.bb-extras{border:0;padding:0;margin:0 0 22px}.bb-units legend,.bb-extras legend{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;margin-bottom:10px}
.bb-ul{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.bb-u{position:relative;display:flex;flex-direction:column;gap:4px;padding:0 0 10px;border:1px solid var(--line,rgba(0,0,0,.15));cursor:pointer;overflow:hidden}
.bb-u input{position:absolute;opacity:0}.bb-u:has(input:checked){border-color:var(--brown);box-shadow:0 0 0 2px var(--brown)}
.bb-u:has(input:focus-visible){outline:2px solid var(--brown);outline-offset:2px}
.bb-u img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}.bb-u>span{padding:0 10px}.bb-u .bu-n{padding-top:10px}
.bb-x{display:flex;align-items:center;gap:8px;padding:6px 0}
.bb-sum{position:sticky;top:90px;padding:20px;background:var(--sand,#efe8dc)}
.bb-sum dl{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;margin:0}.bb-sum dt{font-size:.8rem;opacity:.7}.bb-sum dd{margin:0}
@media (max-width:820px){.bb-g{grid-template-columns:1fr}.bb-sum{position:static}}
/* lodging: {{reviews notes}}: notes pinned to a board, each its own height */
.rv-notes .rvs,.rv-notes ul{columns:3 260px;column-gap:18px;display:block}
.rv-notes .rv{break-inside:avoid;margin:0 0 18px;background:var(--white,#fff);box-shadow:0 6px 18px rgba(0,0,0,.08);transform:rotate(-.6deg)}
.rv-notes .rv:nth-child(2n){transform:rotate(.5deg)}
@media (prefers-reduced-motion:reduce){.rv-notes .rv{transform:none}}

/* the language picker (langpick.py: .lp, a flag; .lp-m the list) in the composed headers: not clipped, opening the way there is room */
.cb-header .lp{position:relative;flex:0 0 auto}
.rl-foot .lp .lp-m{right:auto;left:0;top:auto;bottom:calc(100% + 8px)}
.mh-top .lp,.tb-top .lp,.ix-top .lp{overflow:visible}
.cb-header-pillbar .lp .lp-m,.cb-header-wordmark .wm-bar .lp .lp-m{top:auto;bottom:calc(100% + 8px)}

/* {{book choose}} inside the right rail (opens to the left) and the foot bar (fills its cell, opens upward) */
.cb-rail-right .chz-p{left:auto;right:calc(100% + 10px);top:0}
.cb-rail-right:has(.cb-choose){overflow:visible}   /* the rail scrolls its own column; with the question, nothing may clip it (Le Due Cascine) */
.cb-bar .cb-choose{display:flex}.cb-bar .cb-choose>summary{flex:1;display:flex;align-items:center;justify-content:center}
.cb-bar .chz-p{left:auto;right:0}
/* the legal codes (venue.json legal: CIN, CIR, VAT) in the composed lodging footers, as lodging.css .lf .codes */
.cb-footer .codes{font-size:.78rem;opacity:.85}
/* lodging: {{opening triad}}: three tall photo panels side by side at every width, each with its word; the words read as one motto */
.cb-opening-triad{padding:clamp(28px,5vw,64px) var(--pad) clamp(36px,5vw,70px);text-align:center}
.tr-t h1{font-size:clamp(1.9rem,4.6vw,3.6rem);line-height:1.08;margin:0 auto;max-width:22ch;text-wrap:balance}
.tr-t .lh-name{font:inherit;letter-spacing:inherit;text-transform:inherit;text-shadow:none}
.tr-t .lh-name.vh+.lh-h{display:block}
.tr-tag{max-width:52ch;margin:1rem auto 0;font:400 1.1rem/1.5 var(--serif)}
.tr-l{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(8px,2vw,28px);max-width:1180px;margin:clamp(24px,4vw,48px) auto 0}
.tr-p{display:flex;flex-direction:column;gap:14px;text-decoration:none;color:inherit}
.tr-ph{margin:0;aspect-ratio:3/4;overflow:hidden}
.tr-ph img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s ease}
.tr-p:hover .tr-ph img,.tr-p:focus-visible .tr-ph img{transform:scale(1.03)}
.tr-w{position:relative;font-size:clamp(.82rem,2vw,1.35rem);letter-spacing:.14em;text-transform:uppercase}
.tr-w[data-sep]::before{content:attr(data-sep);position:absolute;left:calc(-1 * clamp(4px,1vw,14px));translate:-50% 0;font-style:normal}
.tr-a{margin-top:clamp(22px,3vw,34px)}
@media (max-width:700px){.tr-ph{aspect-ratio:9/16}.tr-l{gap:8px}.tr-w{letter-spacing:.06em}}
@media (prefers-reduced-motion:reduce){.tr-ph img{transition:none}}
/* {{opening triad film=on}} (Agriturismo tra Sole e Vigne, 2 Nov 2026): the hero film in a 16:9 band to the edges above the words and doors
   (lodging.css .lh-img/.lh-vid/.lh-pause, lodging.js plays it); no words over it, so no shade */
.cb-opening-triad .tr-film{position:relative;inset:auto;aspect-ratio:16/9;max-height:min(80vh,760px);overflow:hidden;
  margin:calc(-1 * clamp(28px,5vw,64px)) calc(-1 * var(--pad)) clamp(28px,4vw,52px)}
.cb-opening-triad .tr-film::after{display:none}
@media (max-width:700px){.cb-opening-triad .tr-film .lh-pause{top:auto;bottom:12px;right:12px}}
/* lodging: {{opening doors}} (Villa Chiara, 30 Oct 2026): the words beside a row of the units as doors, tall photos with
   a name plate under each, every door a link to its unit; on a phone the row scrolls sideways */
.cb-opening-doors{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,2.2fr);gap:clamp(24px,3.4vw,56px);align-items:end;
  padding:clamp(28px,4vw,56px) var(--pad) clamp(36px,4vw,60px)}
.dr-t{align-self:center;max-width:30em}
.dr-t h1{margin:.5rem 0 0}
.dr-t .lh-name{display:block;text-shadow:none}
.dr-t .lh-h{display:block;margin-top:.5rem}
.dr-p{margin:1.1rem 0 1.4rem}
.dr-a{display:flex;flex-wrap:wrap;gap:12px 22px;align-items:center;margin:0}
.dr-row{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:clamp(8px,1.1vw,16px);align-items:end}
.dr-d{display:flex;flex-direction:column;align-items:center;gap:14px;color:inherit;text-decoration:none;min-width:0}
.dr-ph{margin:0;width:100%;aspect-ratio:1/2.3;max-height:68svh;overflow:hidden}
.dr-ph img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
.dr-d:hover .dr-ph img,.dr-d:focus-visible .dr-ph img{transform:scale(1.04)}
.dr-plate{white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
@media (max-width:1100px){.cb-opening-doors{grid-template-columns:1fr;align-items:start}.dr-t{max-width:40em}}
@media (max-width:760px){
  .dr-row{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--pad);gap:12px;margin:0 calc(-1 * var(--pad));padding:6px var(--pad) 10px;scrollbar-width:none}
  .dr-row::-webkit-scrollbar{display:none}
  .dr-d{flex:0 0 38%;scroll-snap-align:start}
  .dr-ph{aspect-ratio:1/2;max-height:46svh}
}
@media (prefers-reduced-motion:reduce){.dr-ph img{transition:none}}
/* the film (Villa La Madonna, lodging; La Fiorida, 25 Oct 2026): the hero film to the edges (lodging.css .lh/.lh-img/.lh-vid
   carry the photo, the film and the pause button), only the logo, one line, Book and one link over it, a scroll cue at the foot */
.cb-opening-film{display:flex;align-items:center;justify-content:center;max-height:none}
.cb-opening-film .lh-img::after{background:linear-gradient(180deg,rgba(0,0,0,.38) 0%,rgba(0,0,0,.06) 34%,rgba(0,0,0,.06) 58%,rgba(0,0,0,.46) 100%)}
.fi-t{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;text-align:center;padding:90px 20px 110px;color:#fff}
.fi-t h1{margin:0;color:#fff;font-weight:300}
.fi-logo{display:block;width:min(560px,78vw);height:auto;margin:0 auto}
.fi-h{display:block;margin-top:clamp(16px,2.4vw,26px);text-shadow:0 1px 14px rgba(0,0,0,.35)}
.fi-a{display:flex;flex-wrap:wrap;gap:14px 28px;align-items:center;justify-content:center;margin-top:clamp(26px,4vw,44px)}
.fi-a .btn-ul{color:#fff}
.fi-cue{position:absolute;z-index:2;left:50%;bottom:clamp(18px,3vw,34px);transform:translateX(-50%);color:#fff;text-decoration:none;
  font:500 .72rem/1 var(--sans);letter-spacing:.28em;text-transform:uppercase;display:flex;flex-direction:column;align-items:center;gap:10px;padding:8px}
.fi-cue::after{content:"";width:1px;height:38px;background:currentColor;opacity:.8}
@media (max-width:700px){.fi-t{padding:80px 18px 120px}.fi-cue{bottom:96px}}
/* {{tables form}} (lodging, La Fiorida): a table at the property's restaurants, WhatsApp or a labelled demonstration */
.tb-g{display:grid;grid-template-columns:1fr 1.25fr;gap:clamp(24px,4vw,60px);align-items:start}
.tb-f{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px;background:#fff;border:1px solid var(--line,rgba(0,0,0,.15));padding:clamp(18px,3vw,30px)}
.tb-f label{display:flex;flex-direction:column;gap:6px;font:600 .74rem/1.3 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--muted,#555)}
.tb-f input,.tb-f select{font:400 1rem/1.3 var(--sans);letter-spacing:0;text-transform:none;color:var(--ink,#222);padding:11px 12px;border:1px solid var(--line,rgba(0,0,0,.2));background:#fff;min-height:46px;border-radius:0}
.tb-w{grid-column:1/-1}
.tb-a{display:flex;flex-wrap:wrap;gap:14px 26px;align-items:center;margin:6px 0 0}
.tb-closed{color:var(--clay,#8a3b12);margin:0;font-weight:600}
.tb-own{font-size:.95rem}.tb-own a{color:inherit}
.tb-ok{background:#fff;border:1px solid var(--line,rgba(0,0,0,.15));border-top:4px solid var(--peach,#c9a);padding:clamp(18px,3vw,30px)}
.tb-ok h3 span{font:600 .9rem/1 var(--sans);letter-spacing:.12em;margin-left:.4em;opacity:.8}
.tb-ok ul{list-style:none;padding:0;margin:1rem 0}.tb-ok li{padding:7px 0;border-bottom:1px solid var(--line,rgba(0,0,0,.12))}
.tb-ok-k{font:600 .74rem/1.3 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--clay,#8a3b12)}
.tb-ok-p{font-size:.92rem;color:var(--muted,#555)}
@media (max-width:860px){.tb-g{grid-template-columns:1fr}.tb-f{grid-template-columns:1fr}}
/* {{seasons dated}} (lodging, La Fiorida): a season's block, shown only between its dates */
.cb-seasons-dated .ss{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(20px,4vw,56px);align-items:center}
.cb-seasons-dated .ss+.ss{margin-top:clamp(30px,5vw,60px)}
.cb-seasons-dated .ss[hidden]{display:none}
.ss-ph{margin:0;aspect-ratio:4/3;overflow:hidden}.ss-ph img{width:100%;height:100%;object-fit:cover}
@media (max-width:820px){.cb-seasons-dated .ss{grid-template-columns:1fr}}
/* {{shopfeed row}} (lodging, La Fiorida): the property's Shopify shop as a row of product cards */
.sf-t{max-width:760px;margin:0 auto clamp(24px,4vw,40px);text-align:center}
.sf-l{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(12px,2vw,22px)}
.sf-l a{display:flex;flex-direction:column;gap:8px;text-decoration:none;color:inherit;background:#fff;border:1px solid var(--line,rgba(0,0,0,.12));padding:12px}
.sf-l img{width:100%;height:auto;aspect-ratio:1;object-fit:contain;background:#fff}
.sf-n{font-weight:600;line-height:1.35}.sf-p{font-size:.95rem;color:var(--muted,#555)}
.sf-a{text-align:center;margin-top:clamp(18px,3vw,30px)}
@media (max-width:860px){.sf-l{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* {{opening photo photo=hero}}: media.hero's photo, its phone cut and the film (Cascina Cerutti, 30 Oct 2026) */
.ph-ph .e-hero-bg,.ph-ph .e-hero-bg img,.ph-ph .hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ph-ph .e-hero-bg{z-index:0}.ph-ph .e-hero-bg::after{content:none}   /* the photo as it is, like photo=<name>; a venue adds its own shade */
.cb-opening-photo .pause{position:absolute;z-index:3;right:var(--pad);bottom:24px}
/* the floating status chip, menu pill and takeaway bar stay at the foot of the screen: the footer leaves room for them,
   so its last line is never under them when the page is scrolled to the end (the user, 31 Oct 2026, I Portici) */
.composed:has(.cb-now-chip, .pl-menu) footer.cb-footer{padding-bottom:calc(22px + 76px)}
