/* Oregano is a required part of the art direction, bundled in fonts.css. */
:root {
  --paper:#f6f3e9; --cream:#fffcf2; --ink:#3d4935; --green:#465b37;
  --muted:#7b806e; --line:#dcdcc9; --gold:#ad7e39;
  --hand:'Oregano',cursive; --sans:'Open Sans',Arial,sans-serif;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:var(--sans); -webkit-font-smoothing:antialiased; }
body::before { content:''; position:fixed; inset:0; z-index:-1; background:url('background.jpg') center/1000px; opacity:.13; pointer-events:none; }
button,a { -webkit-tap-highlight-color:transparent; touch-action:manipulation; }
button { font:inherit; color:inherit; border:0; cursor:pointer; }
a { color:inherit; text-decoration:none; }
a:hover { text-underline-offset:5px; }
button:focus-visible,a:focus-visible { outline:2px solid var(--gold); outline-offset:5px; }
button:disabled { cursor:wait; }
img { max-width:100%; }
[hidden] { display:none!important; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:fixed; top:10px; left:20px; padding:12px 18px; background:var(--cream); z-index:100; transform:translateY(-150%); }
.skip-link:focus { transform:none; }
.site-header { max-width:1600px; margin:auto; padding:28px 4.8%; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand { display:flex; gap:13px; align-items:center; color:var(--green); flex-shrink:0; }
.brand svg { display:block; width:70px; height:70px; flex-shrink:0; color:#336536; }
.brand>span { font:400 22px/.95 var(--sans); }
.brand small { display:block; font:8px var(--sans); letter-spacing:2.7px; margin-top:11px; }
.site-header nav { display:flex; gap:36px; align-items:center; font-size:13px; }
.site-header nav>a:hover { text-decoration:underline; }
.header-contact { border:1px solid #a7b194; border-radius:50% 45% 42% 48% / 47% 45% 48% 47%; padding:17px 24px; font:20px var(--hand); }
.menu-button { display:none; width:42px; height:42px; padding:0; background:none; flex-shrink:0; flex-direction:column; align-items:center; justify-content:center; gap:7px; }
.menu-button span { display:block; width:23px; height:1px; background:var(--green); margin:0; }
.adventure { max-width:1600px; margin:0 auto; display:grid; grid-template-columns:minmax(270px,.78fr) minmax(0,2fr); align-items:center; padding:10px 3% 20px 6%; gap:12px; min-height:calc(100svh - 260px); }
.intro { position:relative; z-index:2; padding:15px 0 25px; }
.eyebrow { font:9px/1.6 var(--sans); letter-spacing:1.9px; color:var(--muted); margin:0 0 27px; }
.intro .eyebrow { display:flex; align-items:center; gap:9px; font-size:8px; letter-spacing:1.6px; white-space:nowrap; }
.intro .eyebrow>span { width:5px; height:5px; border-radius:50%; background:#88966c; }
.intro h1 { margin:0; font:clamp(64px,6.2vw,95px)/.96 var(--hand); letter-spacing:-1.5px; font-weight:400; }
.intro h1 em { font-style:normal; color:var(--gold); position:relative; white-space:nowrap; }
.intro h1 em::after { content:''; position:absolute; left:0; right:4%; bottom:-4px; height:8px; border-top:4px solid #b28b52; border-radius:50%; transform:rotate(-4deg); }
.intro-copy { font-size:16px; line-height:1.5; margin:28px 0; color:#727763; }
.enter-button { display:inline-flex; align-items:center; justify-content:space-between; gap:30px; padding:15px 24px 16px; background:var(--green); color:var(--cream); font:23px var(--hand); border-radius:4px 10px; box-shadow:2px 3px 0 #344a2c15; transition:background .2s,transform .2s; }
.enter-button:hover { background:#35492b; transform:translateY(-2px); }
.door-icon { fill:currentColor; flex-shrink:0; }
.enter-button .door-icon { width:20px; height:20px; }
.hotspot-marker .door-icon { width:16px; height:16px; }
.invitation-note { font:17px var(--hand); color:#8b8a70; margin:13px 0 0 3px; }
.botanical-mark { display:block; width:70px; margin-top:32px; transform:rotate(-10deg); }
.botanical-mark svg { width:100%; stroke:#9da984; stroke-width:1.2; fill:#a9b28c15; }
.world { min-width:0; position:relative; }
.scene { position:relative; isolation:isolate; aspect-ratio:662/478; width:100%; overflow:clip; overflow-clip-margin:6px; }
.scene-view { position:absolute; inset:0; transition:opacity .85s ease,transform 1.35s cubic-bezier(.22,.61,.36,1); transform-origin:50.5% 45%; }
.scenery { display:block; width:100%; height:100%; object-fit:contain; mix-blend-mode:multiply; user-select:none; -webkit-user-drag:none; mask-image:linear-gradient(to right,transparent,#000 3%,#000 97%,transparent),linear-gradient(to bottom,transparent,#000 3%,#000 96%,transparent); mask-composite:intersect; }
.interior { opacity:0; transform:scale(1.08); }
.interior-painting { position:absolute; left:0; right:0; top:12%; aspect-ratio:1024/559; transition:opacity .45s ease,transform .6s ease; }
.interior-left-painting { inset:0; aspect-ratio:auto; opacity:0; transform:translateX(-5%); pointer-events:none; }
.looking-left .interior-painting:not(.interior-left-painting) { opacity:0; transform:translateX(5%); pointer-events:none; }
.looking-left .interior-left-painting { opacity:1; transform:translateX(0); pointer-events:auto; }
.interior-detail { position:absolute; inset:0; opacity:0; transform:translateX(5%); pointer-events:none; transition:opacity .45s ease,transform .6s ease; background:var(--paper); }
.interior-detail .detail-image-frame { position:absolute; top:12%; left:0; width:100%; aspect-ratio:1024/559; }
.interior-detail .detail-scenery { width:100%; height:100%; object-fit:cover; }
.interior-detail .detail-scenery[data-dish=pasta] { position:absolute; top:0; left:50%; width:auto; max-width:100%; height:100%; transform:translateX(-50%); object-fit:contain; }
.looking-detail #interior-counter,.looking-detail #interior-left { opacity:0; transform:translateX(-5%); pointer-events:none; }
.looking-detail .interior-detail { opacity:1; transform:translateX(0); pointer-events:auto; }
.looking-detail #toggle-hints { display:none; }
.adventure[data-view=inside] .exterior { opacity:0; transform:scale(2.8); pointer-events:none; }
.adventure[data-view=inside] .interior { opacity:1; transform:scale(1); }
.hotspots { position:absolute; inset:0; }
.hotspot { position:absolute; left:var(--x); top:var(--y); width:var(--w); height:var(--h); transform:translate(-50%,-50%); display:flex; align-items:center; justify-content:center; padding:0; border:0; background:none; border-radius:4px; cursor:crosshair; }
.hotspot-marker { width:27px; height:27px; display:grid; place-items:center; place-content:center; padding-top:.07em; border-radius:50%; background:#fffbedeb; color:var(--green); border:1px solid #8c9d7188; font:24px var(--hand); opacity:0; transform:scale(.65); transition:opacity .2s,transform .2s; box-shadow:0 1px 10px #5d65381a; pointer-events:none; }
.hotspot:hover .hotspot-marker,.hotspot:focus-visible .hotspot-marker,.show-hints .hotspot-marker { opacity:1; transform:scale(1); }
.dish-hotspot .hotspot-marker { opacity:.9; transform:scale(1); }
.interior-left-painting .hotspot-marker { opacity:.7; transform:scale(.85); }
.hotspot-label { position:absolute; bottom:100%; left:50%; transform:translate(-50%,3px); white-space:nowrap; padding:8px 13px; background:#fcf9ed; color:var(--green); border:1px solid #9ba27d66; border-radius:4px 9px 3px 8px; font:20px var(--hand); opacity:0; pointer-events:none; transition:opacity .15s,transform .15s; z-index:8; }
.hotspot:hover .hotspot-label,.hotspot:focus-visible .hotspot-label { opacity:1; transform:translate(-50%,-5px); }
.interior-counter [data-dish=freschi] .hotspot-label { left:0; transform:translate(0,3px); }
.interior-counter [data-dish=freschi]:hover .hotspot-label,.interior-counter [data-dish=freschi]:focus-visible .hotspot-label { transform:translate(0,-5px); }
.interior-counter [data-dish=pasta] .hotspot-label { left:auto; right:0; transform:translate(0,3px); }
.interior-counter [data-dish=pasta]:hover .hotspot-label,.interior-counter [data-dish=pasta]:focus-visible .hotspot-label { transform:translate(0,-5px); }
.door-hotspot { cursor:pointer; }
.door-hotspot .hotspot-marker { opacity:1; transform:none; padding-top:0; width:31px; height:31px; font:20px var(--sans); }
.door-light { position:absolute; inset:0; box-shadow:inset 0 0 24px #ffdd76; background:#efcf7425; opacity:0; transition:opacity .4s; }
.door-hotspot:hover .door-light,.door-arrival .door-light { opacity:1; }
.door-invitation { position:absolute; inset:0; pointer-events:none; }
.door-invitation span { position:absolute; left:55.5%; top:17%; font:24px var(--hand); color:var(--green); background:#f7f2e0e0; padding:3px 9px; border-radius:50%; }
.door-invitation svg { position:absolute; left:49%; top:24%; width:15%; height:20%; stroke:var(--green); stroke-width:1.3; stroke-linecap:round; }
.visitor { position:absolute; width:24%; aspect-ratio:384/360; transform:translate(-50%,-100%); transform-origin:50% 100%; z-index:3; pointer-events:none; will-change:left,top,transform; }
.visitor-button { display:block; position:relative; width:100%; height:100%; padding:0; background:none; pointer-events:auto; }
.character-art { display:block; position:relative; width:100%; height:100%; }
.sprite-frame { position:absolute; inset:0; width:100%; height:100%; opacity:0; }
.sprite-frame:first-child { opacity:1; }
/* The painted source faces left; flip only while travelling right. */
.faces-right .visitor-button { transform:scaleX(-1); }
.walking .sprite-frame { animation:show-frame .68s steps(1,end) var(--frame-delay) infinite; }
.visitor-shadow { position:absolute; bottom:1%; left:32%; width:39%; height:4%; border-radius:50%; background:#6a593d28; filter:blur(3px); z-index:-1; }
.speech { position:absolute; bottom:100%; left:51%; transform:translate(-50%,5px) rotate(-3deg); width:185px; padding:17px 21px 19px; border:1px solid #8a9470; background:#faf7e9f5; border-radius:48% 43% 41% 33% / 40% 43% 34% 38%; text-align:center; box-shadow:2px 3px 0 #56643a10; opacity:0; transition:opacity .3s,transform .3s; pointer-events:none; }
.speech::after { content:''; position:absolute; left:50%; bottom:-9px; width:13px; height:15px; border-right:1px solid #8a9470; border-bottom:1px solid #8a9470; background:#faf7e9; transform:skew(-23deg) rotate(38deg); }
.speaking .speech { opacity:1; transform:translate(-50%,0) rotate(-3deg); }
.speaker { display:none; }
.speech-copy { font:24px/1.13 var(--hand); color:var(--green); }
.scene-tools { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:10px 4% 0; min-height:47px; }
.action-hint { margin:0; font:18px/1.3 var(--hand); color:#7b816c; }
.action-hint span { color:var(--green); font-family:var(--sans); font-weight:400; font-size:14px; }
.scene-controls { display:flex; align-items:center; gap:13px; flex-shrink:0; }
.text-button { padding:9px 18px; display:flex; align-items:center; gap:7px; font:17px var(--hand); background:#d8e2c0; color:var(--green); border-radius:999px; transition:background .2s,color .2s; }
.text-button svg { width:17px; height:17px; stroke:currentColor; stroke-width:1.2; }
.text-button:hover,.text-button[aria-pressed=true] { color:var(--green); background:#c7d3a8; }
.icon-button { width:36px; height:36px; padding:0; display:flex; align-items:center; justify-content:center; background:#d8e2c0; color:var(--green); font:15px var(--sans); border-radius:999px; transition:background .2s,color .2s; }
.icon-button:hover,.icon-button[aria-pressed=true] { background:#c7d3a8; }
.observation { position:absolute; bottom:8%; left:50%; transform:translateX(-50%) rotate(-1deg); width:330px; max-width:90%; padding:29px 30px 24px; z-index:6; background:var(--cream); border:1px solid #cdd1b5; border-radius:4px 10px; box-shadow:0 8px 28px #4f53351c; }
.observation h2 { font:500 24px/1.25 var(--sans); color:var(--green); margin:0 0 13px; }
.observation p { font:16px/1.5 var(--sans); margin:0; color:#737863; }
#close-observation { position:absolute; right:5px; top:5px; width:33px; height:33px; font:24px var(--sans); background:none; }
.observation-enter { background:none; padding:13px 0 0; margin-top:8px; color:var(--green); font:21px var(--hand); }
.observation-enter span { margin-left:16px; }
.scene-curtain { position:absolute; inset:0; z-index:5; background:var(--paper); opacity:0; pointer-events:none; }
.transitioning .scene-curtain { animation:cross-door 1.2s ease both; }
.interior-navigation { position:absolute; left:5%; right:5%; bottom:3%; z-index:2; display:flex; justify-content:space-between; align-items:center; gap:12px; }
.back-outside,.turn-inside { background:#f9f5e9ed; border:1px solid #aeb69799; border-radius:4px 9px 4px 8px; padding:7px 12px; font:21px var(--hand); color:var(--green); box-shadow:0 2px 9px #4f53351a; }
.back-outside:hover,.turn-inside:hover { color:var(--gold); background:#fffcf2; }
.inside-actions { margin-top:22px; max-width:280px; }
.inside-actions a { display:flex; align-items:center; gap:13px; border-bottom:1px solid var(--line); padding:15px 0; font:25px var(--hand); }
.inside-actions a:hover { color:var(--gold); }
.adventure[data-view=inside] .botanical-mark { display:none; }
.site-footer { max-width:1450px; margin:10px auto 0; padding:24px 4% 28px; display:flex; align-items:center; justify-content:space-between; gap:25px; position:relative; }
.site-footer::before { content:''; position:absolute; top:0; left:4%; right:4%; height:1px; background:var(--line); }
.footer-salute { display:flex; align-items:center; gap:15px; color:var(--green); }
.footer-logo { width:46px; height:46px; flex-shrink:0; }
.footer-salute p { margin:0; font:22px/1.3 var(--sans); }
.footer-salute-sub { display:block; font-size:14px; font-weight:400; }
.site-footer small { display:block; color:#8d927d; letter-spacing:1.6px; font:8px var(--sans); margin-bottom:10px; }
.footer-address>span,.footer-phone a,.footer-mail { font:12px var(--sans); }
.footer-address,.footer-phone,.footer-mail { display:flex; align-items:center; gap:8px; }
.footer-mail { color:var(--green); }
.site-footer a:hover { color:var(--gold); }
dialog { border:1px solid var(--line); border-radius:4px; background:var(--paper); color:var(--green); padding:28px; width:450px; max-width:calc(100vw - 30px); box-shadow:0 20px 80px #1d2a2733; }
dialog::backdrop { background:#263c2c66; backdrop-filter:blur(4px); }
.menu-top { display:flex; align-items:center; justify-content:space-between; }
.menu-top p { margin:0; }
.menu-top button { width:36px; height:36px; font-size:26px; background:none; }
.menu-heading { font:50px var(--hand); margin:8px 0 20px; }
dialog>a { display:flex; justify-content:space-between; border-bottom:1px solid var(--line); padding:17px 0; font:28px var(--hand); }
.menu-contact { font-size:12px; line-height:2; margin-top:30px; }
.no-script { font:24px var(--hand); }
.motion-paused .sprite-frame { animation-play-state:paused!important; }
@keyframes show-frame { 0% { opacity:1; } 25%,100% { opacity:0; } }
@keyframes cross-door { 0%,100% {opacity:0} 45% {opacity:.75} }
@media(min-width:1500px) { .adventure { gap:30px; padding-top:35px; padding-bottom:35px; } }
@media(max-width:1150px) {
 .site-header { padding:22px 4%; }.site-header nav { gap:22px; }.header-contact { font-size:18px; padding:14px 17px; }.brand>span { font-size:29px; }.brand svg { width:60px; height:60px; }.footer-salute p { font-size:29px; }
 .adventure { padding-left:5%; padding-right:2%; grid-template-columns:minmax(245px,.85fr) minmax(0,2fr); gap:5px; }.intro h1 { font-size:72px; }.intro-copy { font-size:16px; }.intro .eyebrow { font-size:7px; letter-spacing:1.3px; }.botanical-mark { width:52px; margin-top:25px; }.action-hint { font-size:18px; }.text-button { font-size:15px; }.scene-tools { padding:10px 1% 0; }
 .door-invitation span { font-size:21px; }.speech { width:170px; }.speech-copy { font-size:23px; }
}
@media(max-width:850px) {
 .site-header { padding:20px 5%; }.site-header nav>a { display:none; }.menu-button { display:flex; }.brand>span { font-size:28px; }.brand small { font-size:7px; letter-spacing:2.1px; }.footer-salute p { font-size:28px; }
 .adventure { display:block; padding:8px 5% 20px; }.intro { text-align:center; padding:15px 0 10px; }.intro .eyebrow { justify-content:center; font-size:8px; margin-bottom:19px; }.intro h1 { font-size:63px; line-height:.97; }.intro h1 br { display:none; }.intro h1 br::after { content:' '; }.intro h1 { max-width:550px; margin:auto; }.intro-copy { margin:20px auto; font-size:16px; max-width:340px; }.intro-copy br { display:none; }.intro-copy br::after { content:' '; }.botanical-mark { display:none; }.enter-button { font-size:22px; padding:12px 22px; }.invitation-note { font-size:17px; margin-top:11px; }
 .world { max-width:710px; margin:25px auto 0; }.scene-tools { padding:10px 2% 0; }.action-hint { font-size:18px; }.text-button { font-size:17px; }.site-footer { padding:24px 5%; gap:25px; flex-wrap:wrap; }.footer-salute { width:42%; }.footer-address { width:48%; }.footer-phone { width:42%; }.footer-mail { width:48%; }.inside-actions { margin:22px auto 0; text-align:left; max-width:360px; }.inside-actions a { padding:12px 0; }.adventure[data-view=inside] .world { margin-top:0; }
}
@media(max-width:520px) {
 .brand img { width:46px; height:46px; }.brand>span { font-size:26px; }.brand small { font-size:6px; letter-spacing:2px; }.brand { gap:9px; }.site-header { padding:17px 5%; }.adventure { padding:0 3% 20px; }.intro { padding:19px 4% 10px; }.intro h1 { max-width:335px; font-size:56px; line-height:.95; letter-spacing:-.6px; }.intro .eyebrow { font-size:7px; margin-bottom:17px; letter-spacing:1.25px; }.intro-copy { font-size:16px; max-width:280px; margin:20px auto 19px; line-height:1.5; }.enter-button { font-size:22px; }.invitation-note { font-size:16px; }.world { margin-top:25px; }.scene { overflow-clip-margin:3px; }.door-invitation span { font-size:16px; left:55%; top:15%; padding:2px 5px; }.door-invitation svg { top:21%; height:23%; }.visitor { width:28%; }.speech { width:135px; padding:13px 15px 15px; }.speech-copy { font-size:20px; }.hotspot { min-width:33px; min-height:36px; }.hotspot-marker { width:24px; height:24px; font-size:22px; }.door-hotspot .hotspot-marker { width:27px; height:27px; font-size:17px; }.hotspot-label { font-size:16px; padding:6px 9px; }.scene-tools { padding:13px 3% 0; gap:8px; }.action-hint { font-size:18px; max-width:190px; }.action-hint span { display:block; }.scene-controls { gap:6px; }.text-button { font-size:16px; gap:5px; }.text-button svg { width:16px; }.icon-button { width:26px; height:26px; font-size:13px; }.observation { bottom:3%; padding:22px 22px 18px; width:300px; }.observation h2 { font-size:20px; margin-bottom:9px; }.observation p { font-size:16px; line-height:1.5; }.observation-enter { font-size:20px; padding-top:7px; margin-top:5px; }
 .interior-navigation { left:2%; right:2%; bottom:0; gap:5px; }.back-outside,.turn-inside { font-size:17px; padding:5px 7px; }
 .site-footer { padding:23px 7% 28px; gap:24px 15px; }.site-footer::before { left:7%; right:7%; }.footer-salute { width:100%; gap:11px; }.footer-salute p { font-size:26px; }.footer-salute br { display:none; }.footer-logo { width:35px; height:35px; }.footer-address { width:100%; }.footer-address>span { font-size:12px; }.footer-phone { width:auto; flex:1; }.footer-mail { width:auto; font-size:12px; }.site-footer small { margin-bottom:7px; }.inside-actions a { font-size:24px; }.intro h1 br { display:initial; }.intro h1 br:first-child { display:none; }
}
@media(prefers-reduced-motion:reduce) {
 *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
 .brand svg animate, .brand svg animateTransform { display:none; }
 .visitor { will-change:auto; }
}
/* The world beyond the door shares the same paper, type and quiet rhythm. */
.bottega-page { max-width:1170px; margin:0 auto; padding:15px 0 40px; }
.bottega-intro { text-align:center; padding:10px 0 20px; position:relative; }
.return-link { display:block; text-align:left; font:20px var(--hand); margin:0 0 24px; color:var(--muted); }
.bottega-intro .eyebrow { margin-bottom:12px; }
.bottega-intro h1 { font:74px/1 var(--hand); margin:0 0 17px; font-weight:400; }
.bottega-intro h1 em,.choice-editorial h2 em,.visit-info h2 em { font-style:normal; color:var(--gold); }
.bottega-intro>p:last-child { font-size:16px; line-height:1.5; color:var(--muted); }
.choice-nav { display:flex; justify-content:center; gap:36px; border-bottom:1px solid var(--line); margin:14px 0 35px; }
.choice-nav a { font:10px var(--sans); padding:15px 4px 17px; color:var(--muted); border-bottom:2px solid transparent; }
.choice-nav a span { font:26px var(--hand); }
.choice-nav a[aria-current=page] { color:var(--green); border-bottom-color:var(--green); }
.choice-panel { display:grid; grid-template-columns:1.15fr 1fr; gap:70px; align-items:center; padding:12px 0 30px; }
.choice-editorial .eyebrow { margin-bottom:20px; }
.choice-editorial h2 { font:60px/1.04 var(--hand); font-weight:400; margin:0 0 24px; }
.choice-editorial>p:not(.eyebrow) { color:var(--muted); font-size:16px; line-height:1.5; max-width:380px; }
.handwritten-note { font:28px/1.1 var(--hand); color:#82905f; padding-left:20px; margin:30px 0; border-left:1px solid #afb88f; }
.inline-contact { font:22px var(--hand); color:var(--green); display:inline-block; border-bottom:1px solid #a4ae8d; padding:5px 0; }
.choice-photo { margin:0; position:relative; padding:10px 9px 14px; background:#fdfbf3; border:1px solid #dedeca; box-shadow:3px 5px 0 #53563509; transform:rotate(2deg); }
.choice-photo img { width:100%; height:380px; object-fit:cover; display:block; object-position:50% 65%; }
.choice-photo--pranzo img { object-position:50% 57%; }
.choice-photo--aperitivo img { object-position:50% 80%; }
.choice-photo--gastronomia img { object-fit:contain; background:#e9e2d1; }
.choice-photo figcaption { font:23px var(--hand); text-align:center; margin-top:13px; color:#7b8262; }
.visit-info { border-top:1px solid var(--line); margin-top:40px; padding:42px 0 15px; display:grid; grid-template-columns:1.1fr 1fr; gap:60px; align-items:center; }
.visit-info .eyebrow { margin-bottom:13px; }.visit-info h2 { font:47px var(--hand); margin:0; font-weight:400; }.visit-info p:not(.eyebrow) { color:var(--muted); font-size:12px; line-height:1.8; }.visit-info a { font:23px var(--hand); }.visit-info a span { margin-right:18px; display:inline-flex; vertical-align:middle; }.visit-info a span svg { width:20px; height:20px; }
.opening-times { margin:0; }.opening-times>div { display:flex; align-items:center; gap:24px; justify-content:space-between; padding:9px 0; border-bottom:1px solid var(--line); }.opening-times dt { display:inline-flex; align-items:center; color:#fff; font-size:12px; letter-spacing:.5px; background:#b7c896; padding:5px 11px; border-radius:4px; }.opening-times dd { margin:0; font:21px var(--hand); }
@media(min-width:851px) and (max-height:780px) {
 .site-header { padding-top:18px; padding-bottom:18px; }.brand svg { width:60px; height:60px; }.adventure { padding-top:0; padding-bottom:8px; }.intro { padding-top:10px; padding-bottom:10px; }.intro h1 { font-size:68px; }.intro .eyebrow { margin-bottom:20px; }.intro-copy { margin:20px 0; font-size:16px; line-height:1.5; }.botanical-mark { display:none; }.scene { width:min(100%,calc((100svh - 240px)*1.385)); margin:0 auto; }.scene-tools { max-width:690px; margin:auto; }.site-footer { padding-top:19px; padding-bottom:19px; }.enter-button { padding:13px 22px; font-size:22px; }
}
@media(max-width:850px) { .choice-panel { gap:35px; }.choice-editorial h2 { font-size:49px; }.choice-photo img { height:350px; }.visit-info { gap:25px; }.bottega-page { padding:10px 5% 30px; }.choice-nav { gap:20px; } }
@media(max-width:520px) {
 .bottega-page { padding:5px 7% 25px; }.bottega-intro { padding-top:0; }.return-link { font-size:18px; margin-bottom:27px; }.bottega-intro h1 { font-size:55px; }.bottega-intro .eyebrow { font-size:7px; }.bottega-intro>p:last-child { font-size:16px; line-height:1.5; }.choice-nav { justify-content:space-between; gap:7px; margin:0 0 24px; }.choice-nav a { font-size:8px; }.choice-nav a span { font-size:20px; }.choice-panel { display:flex; flex-direction:column; gap:30px; padding-bottom:20px; }.choice-editorial h2 { font-size:47px; margin-bottom:18px; }.choice-editorial .eyebrow { font-size:7px; margin-bottom:15px; }.choice-editorial>p:not(.eyebrow) { font-size:16px; line-height:1.5; }.handwritten-note { font-size:26px; margin:23px 0; }.choice-photo { max-width:310px; width:100%; transform:rotate(1.5deg); }.choice-photo img { height:290px; }.choice-photo figcaption { font-size:22px; }.visit-info { display:block; margin-top:25px; padding-top:30px; }.visit-info h2 { font-size:43px; }.opening-times { margin-top:25px; }
}

.home-offers { max-width:1170px; margin:40px auto 65px; padding:45px 0; border-top:1px solid var(--line); }
.home-offers .eyebrow { margin-bottom:12px; }
.home-offers h2 { font:clamp(40px,4vw,60px)/1.05 var(--hand); font-weight:400; max-width:620px; margin:0 0 17px; }
.home-offers h2 em { font-style:normal; color:var(--gold); }
.home-offers>p:not(.eyebrow) { color:var(--muted); font-size:16px; line-height:1.5; max-width:720px; }
.home-overview-link { display:inline-block; margin-top:8px; color:var(--green); border-bottom:1px solid #a4ae8d; font:22px var(--hand); }
.home-offer-links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-top:32px; }
.home-offer-links a { display:flex; flex-direction:column; gap:10px; min-height:145px; padding:22px; border:1px solid var(--line); border-radius:4px 10px; background:#fffcf2a8; box-shadow:2px 3px 0 #344a2c15; }
.home-offer-links a:hover { border-color:var(--green); }
.home-offer-links strong { font:30px var(--hand); color:var(--green); font-weight:400; }
.home-offer-links span { font-size:16px; line-height:1.5; color:var(--muted); }
.home-about { max-width:760px; margin:52px auto 0; }
.home-about h3 { font:clamp(36px,3.5vw,50px)/1.05 var(--hand); font-weight:400; margin:0 0 20px; }
.home-about h3 em { font-style:normal; color:var(--gold); }
.home-about p { color:var(--muted); font-size:16px; line-height:1.5; }
@media(max-width:1150px) and (min-width:851px) { .site-header nav>a:not(.header-contact) { display:none; } .menu-button { display:flex; } }
@media(max-width:700px) { .home-offers { margin:25px auto 40px; padding:35px 0; } .home-offer-links { grid-template-columns:1fr; } .home-offer-links a { min-height:0; } }
@media(max-width:1250px) { .home-offers { padding-left:5%; padding-right:5%; } }

/* The photographic entrance recalls the original three-panel experience. */
.immersive-overview .site-header { position:absolute; z-index:30; top:18px; left:4%; right:4%; max-width:none; padding:10px 20px; border:1px solid #ffffff45; border-radius:16px; background:#26302682; backdrop-filter:blur(10px); color:#fff; }
.immersive-overview .site-header .brand { color:#fff; }
.immersive-overview .site-header .brand svg { color:#fff; }
.immersive-overview .site-header .header-contact { border-color:#ffffff8c; }
.immersive-overview .site-header .menu-button span { background:#fff; }
.photo-gateway { position:relative; min-height:100svh; overflow:hidden; background:#2d3228; color:#fff; }
.photo-gateway-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); min-height:100svh; }
.photo-gateway-panel { position:relative; display:flex; align-items:center; justify-content:center; min-width:0; min-height:100svh; overflow:hidden; text-align:center; color:#fff; }
.photo-gateway-image { position:absolute; inset:0; z-index:0; display:block; width:100%; height:100%; max-width:none; object-fit:cover; object-position:center; transition:transform .55s ease; }
.photo-gateway-panel::after { content:''; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg,#101b16a8 0%,#101b1640 36%,#101b1699 100%); transition:background .3s ease; }
.photo-gateway-panel:hover .photo-gateway-image,.photo-gateway-panel:focus-visible .photo-gateway-image { transform:scale(1.045); }
.photo-gateway-panel:hover::after,.photo-gateway-panel:focus-visible::after { background:linear-gradient(180deg,#101b16a3 0%,#101b162b 36%,#101b1680 100%); }
.photo-gateway-content { position:relative; z-index:2; display:flex; flex-direction:column; align-items:center; gap:14px; max-width:90%; padding:120px 20px 20px; text-shadow:0 2px 12px #121912ac; }
.photo-gateway-content img { display:block; width:auto; max-width:140px; height:110px; object-fit:contain; filter:drop-shadow(0 2px 9px #15201555); }
.photo-gateway-content strong { font:clamp(32px,3vw,46px)/1 var(--hand); font-weight:400; }
.photo-gateway-content small { font:12px/1.5 var(--sans); }
.photo-gateway-intro { position:absolute; z-index:5; top:192px; left:50%; width:min(800px,90%); transform:translateX(-50%); text-align:center; pointer-events:none; text-shadow:0 3px 18px #111b14b8; }
.photo-gateway-intro h1 { margin:0; font:clamp(48px,5vw,72px)/1 var(--hand); font-weight:400; }
.photo-gateway-intro h1 em { font-style:normal; color:#f5d59a; }
.photo-gateway-intro p { margin:8px 0 0; font:14px/1.65 var(--sans); }
.photo-gateway-scroll { position:absolute; z-index:6; bottom:20px; left:50%; transform:translateX(-50%); display:flex; gap:12px; align-items:center; padding:8px 14px; border-radius:30px; background:#1c2d23a8; font:18px var(--hand); white-space:nowrap; }
.photo-gateway-scroll:hover { background:#1c2d23d9; }
.overview-content { padding-top:40px; }
@media(min-width:851px) { .overview-content.bottega-page { max-width:calc(1170px + 10%); padding-left:5%; padding-right:5%; } }
.overview-lead { margin:0 0 55px; text-align:left; }
.overview-lead .eyebrow { margin-bottom:15px; }
.overview-lead h2,.overview-story h2 { font:clamp(43px,4vw,62px)/1.05 var(--hand); font-weight:400; margin:0 0 22px; }
.overview-lead h2 em,.overview-story h2 em { font-style:normal; color:var(--gold); }
.overview-lead>p:not(.eyebrow),.overview-story>p:not(.eyebrow) { color:var(--muted); font-size:16px; line-height:1.5; }
.overview-stories { border-top:1px solid var(--line); }
.overview-story { display:grid; grid-template-columns:1.15fr .85fr; grid-auto-flow:dense; column-gap:60px; align-items:start; padding:48px 80px 55px; margin:0 auto; border-bottom:1px solid var(--line); }
.overview-story>* { grid-column:1; }
.overview-story>h2 { grid-column:2; grid-row:1 / span 3; text-align:right; margin:0; }
.overview-story:nth-child(even) { grid-template-columns:.85fr 1.15fr; }
.overview-story:nth-child(even)>* { grid-column:2; }
.overview-story:nth-child(even)>h2 { grid-column:1; text-align:left; }
.overview-story>p { margin:0 0 18px; }
.overview-stories>.overview-story:last-child { border-bottom:0; }
.overview-story .eyebrow { margin-bottom:15px; }
.overview-story .overview-story-cta { justify-self:start; margin-top:13px; }
.detail-story { display:grid; grid-template-columns:.85fr 1.15fr; gap:60px; padding:50px 0 55px; margin-top:18px; border-top:1px solid var(--line); }
.detail-story .eyebrow { margin-bottom:16px; }
.detail-story h2 { font:clamp(43px,4vw,60px)/1.05 var(--hand); font-weight:400; margin:0; }
.detail-story h2 em { font-style:normal; color:var(--gold); }
.detail-story-copy p { margin:0 0 18px; color:var(--muted); font-size:16px; line-height:1.5; }
.photo-notes { border-top:1px solid var(--line); padding:47px 0 55px; }
.photo-notes-heading { text-align:center; max-width:620px; margin:0 auto 33px; }
.photo-notes-heading .eyebrow { margin-bottom:10px; }
.photo-notes-heading h2 { font:clamp(40px,4vw,55px)/1.05 var(--hand); font-weight:400; margin:0 0 12px; }
.photo-notes-heading h2 em { font-style:normal; color:var(--gold); }
.photo-notes-heading>p:last-child { margin:0; color:var(--muted); font-size:13px; line-height:1.75; }
.photo-notes-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; align-items:start; padding:4px 8px; }
.photo-notes-grid--pair { grid-template-columns:repeat(2,minmax(0,280px)); justify-content:center; gap:35px; }
.photo-notes-grid--single { grid-template-columns:minmax(0,320px); justify-content:center; }
.photo-note { position:relative; min-width:0; margin:0; padding:9px 9px 14px; background:#fffdf6; border:1px solid #e2ddcb; box-shadow:4px 8px 18px #45452b1c; transform:rotate(-2deg); transition:transform .3s ease,box-shadow .3s ease; }
.photo-note:nth-child(even) { transform:rotate(2deg) translateY(9px); }
.photo-note:nth-child(3n) { transform:rotate(-1deg) translateY(4px); }
@media(hover:hover) { .photo-note:hover,.photo-note:nth-child(even):hover,.photo-note:nth-child(3n):hover { z-index:1; transform:translateY(-9px) rotate(0deg) scale(1.04); box-shadow:6px 15px 28px #45452b2e; } }
.photo-note img { display:block; width:100%; height:auto; aspect-ratio:1/1; object-fit:cover; background:#ebe5d5; }
.photo-note--cutout img { object-fit:contain; padding:5px; }
.photo-note figcaption { margin:10px 0 0; color:#737d60; text-align:center; font:22px/1.05 var(--hand); }
@media(max-width:850px) { .detail-story { grid-template-columns:1fr; gap:18px; } .overview-story,.overview-story:nth-child(even) { grid-template-columns:1fr; } .overview-story>*,.overview-story:nth-child(even)>* { grid-column:1; } .overview-story>h2,.overview-story:nth-child(even)>h2 { grid-column:1; grid-row:auto; text-align:left; margin-bottom:22px; } }
@media(max-width:700px) { .photo-notes-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px 16px; } .photo-notes-grid--single { grid-template-columns:minmax(0,280px); } .photo-notes-grid--pair { grid-template-columns:repeat(2,minmax(0,220px)); } }
@media(max-width:520px) { .photo-notes { padding:35px 0 42px; } .photo-notes-heading { margin-bottom:23px; } .photo-notes-grid { padding:4px 0; } .photo-note { padding:6px 6px 10px; } .photo-note figcaption { font-size:18px; } }
@media(max-width:850px) { .immersive-overview .site-header { left:4%; right:4%; padding:10px 15px; } }
@media(max-width:520px) {
 .site-header { gap:10px; }
 .site-header .brand { flex:1 1 auto; min-width:0; }
 .site-header .brand>span { min-width:0; font-size:clamp(18px,5vw,21px); line-height:1.05; }
 .site-header nav { flex:0 0 42px; }
}
@media(max-width:700px) {
 .photo-gateway,.photo-gateway-grid { height:100svh; min-height:600px; }
 .photo-gateway-grid { grid-template-columns:1fr; grid-template-rows:repeat(3,minmax(0,1fr)); }
 .photo-gateway-panel { min-height:0; }
 .photo-gateway-image { object-position:center 57%; }
 .photo-gateway-content { gap:5px; padding:10px; }
 .photo-gateway-content img { max-width:80px; height:65px; }
 .photo-gateway-content strong { font-size:27px; }
 .photo-gateway-content small { font-size:11px; }
 .photo-gateway-panel:first-child .photo-gateway-content { padding-top:115px; }
 .photo-gateway-intro { width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); clip-path:inset(50%); white-space:nowrap; transform:none; }
 .photo-gateway-scroll { bottom:8px; font-size:16px; }
 .overview-content { padding-top:25px; }
 .overview-lead { margin-bottom:35px; }
 .overview-story { padding:35px 0 40px; }
}
@media(min-width:701px) and (max-height:680px) { .photo-gateway-intro { top:160px; } .photo-gateway-content { padding-top:105px; } .photo-gateway-content img { height:75px; } }

.furniture-occluder { position:absolute; inset:0; z-index:4; width:100%; height:100%; pointer-events:none; opacity:0; object-fit:contain; clip-path:polygon(41.8% 48%,46% 48%,46% 50%,49% 50%,49% 52%,51% 51%,52% 49%,54.5% 49%,54% 58%,54% 65%,52% 65%,51% 58%,48% 60%,48% 66%,46% 66%,45% 60%,43% 63%,42% 62%); }
.exterior:has(.depth-behind-tables) .furniture-occluder { opacity:1; }
