/* Small functional additions to the original design, whose CSS remains in index.html. */
[hidden]{display:none!important}
.reveal{opacity:1;transform:none}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea{touch-action:manipulation}
button{cursor:pointer}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #c77843;outline-offset:4px}
html{scroll-padding-top:20px}
body.modal-open{overflow:hidden}
.hero-content{z-index:1}
.hero{overflow:visible}
.hero-slides{overflow:hidden}
.booking-box{right:0;bottom:-35px;z-index:2}
.booking-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.booking-grid>div{min-width:0}
.hero-slides{pointer-events:none}
.hero-slide{transition:opacity 1.4s ease}
.hero-slide.active{transform:none}
.nav-links{gap:19px}
.form-error{font-size:12px!important;color:#a23222!important;line-height:1.5!important;margin:12px 0 0}
.lead-form label{display:grid;gap:7px;font-size:12px;color:var(--muted)}
.calc-form input{width:100%;min-width:0}
.calc-result strong.quote{font-size:35px}
.calc-result p{margin-top:14px}
.review-heading{font-size:52px;line-height:1.1}
@media(max-width:1100px){.stamp{right:-5px}}
.gallery-link{margin-top:25px}
.nearby-art{position:absolute;inset:10px 10% auto;width:80%;height:165px;color:#b7cdbd;opacity:.7}
.nearby-card:has(.nearby-art){background:linear-gradient(135deg,#315b4c,#17352f)}
.menu-question{margin:12px 0 0 12px}
.restaurant-menu{background:var(--cream)}
.menu-reader{display:grid;grid-template-columns:270px minmax(0,1fr);gap:30px;align-items:start}
.menu-categories{background:var(--paper);padding:22px;border:1px solid var(--line)}
.menu-categories>label{display:block;font-size:12px;font-weight:700;margin-bottom:10px}
.menu-categories>select{width:100%;padding:12px 8px;border:1px solid var(--line);background:white;color:var(--ink);font-size:13px}
.menu-category-buttons{display:grid;gap:5px;margin-top:18px}
.menu-category-buttons button{background:none;border:0;border-left:2px solid transparent;color:var(--ink);padding:10px 12px;text-align:left;font-size:12px}
.menu-category-buttons button:hover{background:var(--cream)}
.menu-category-buttons button[aria-pressed=true]{background:var(--sage);border-color:var(--accent);font-weight:700}
.menu-categories>p{font-size:12px;color:var(--muted);line-height:1.6}
.menu-page{background:var(--paper);padding:25px;border:1px solid var(--line);text-align:center;min-width:0}
.menu-page-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px}
.menu-page-toolbar .btn{min-width:48px;min-height:44px;padding:10px}
.menu-page-toolbar p{font-size:12px;color:var(--muted)}
.menu-page-toolbar button:disabled{opacity:.35;cursor:default;transform:none}
.menu-page h3{font-size:27px;margin:0 0 18px}
.menu-page-image{border:0;background:transparent;display:block;position:relative;width:100%;padding:0;margin-bottom:22px;cursor:zoom-in}
.menu-page-image img{object-fit:contain;width:100%;max-height:760px;height:auto}
.menu-page-image span{display:inline-block;margin-top:14px;padding:8px 14px;background:var(--sage);font-size:12px;color:var(--ink)}
.menu-page>.btn{font-size:12px}
.seasonal-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.seasonal-card{background:var(--paper);border:1px solid var(--line)}
.poster-button{width:100%;display:block;border:0;background:var(--cream);padding:0;cursor:zoom-in}
.poster-button img{width:100%;height:auto;object-fit:contain}
.seasonal-copy{padding:28px}
.seasonal-copy h3{font-size:30px}
.seasonal-copy p{font-size:14px;line-height:1.7;color:var(--muted)}
.seasonal-copy .btn{margin-top:10px}
.gallery-filters{display:flex;flex-wrap:wrap;gap:9px;margin:25px 0 15px}
.gallery-filters button{border:1px solid var(--line);background:transparent;color:var(--ink);border-radius:4px;padding:11px 16px;font-size:12px;min-height:44px}
.gallery-filters button[aria-pressed=true]{background:var(--ink);color:white}
.full-gallery-item{aspect-ratio:3/4}
.full-gallery-item button{width:100%;height:100%;position:relative;border:0;padding:0;background:var(--cream);display:block;cursor:zoom-in}
.full-gallery-item.new-photo img{object-fit:contain}
.full-gallery-item button>span{position:absolute;left:8px;bottom:8px;background:var(--paper);color:var(--ink);padding:5px 8px;font-size:10px}
#galleryMore{margin-top:24px}
.gallery-grid figure{cursor:zoom-in}
.gallery-grid figure:focus-visible,.room-card img:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
.room-card img{cursor:zoom-in}
.lightbox{margin:0;border:0;padding:18px 24px;background:#081c17;color:#fff;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;box-sizing:border-box}
.lightbox[open]{display:flex;flex-direction:column;align-items:stretch}
.lightbox::backdrop{background:#081c17}
.lightbox-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:12px;flex-shrink:0}
.lightbox-toolbar>div{display:flex;gap:10px;align-items:center}
.lightbox button,.lightbox-toolbar a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;border:1px solid #ffffff55;padding:9px 14px;background:none;color:white;font-size:12px;text-decoration:none}
.lightbox-viewport{flex:1;min-height:0;min-width:0;overflow:auto;display:flex;align-items:center;justify-content:center;margin:16px 0;overscroll-behavior:contain}
.lightbox .lightbox-viewport img{max-height:100%;height:100%;width:100%;max-width:100%;object-fit:contain;box-shadow:none;touch-action:pan-y;cursor:zoom-in}
.lightbox.zoomed .lightbox-viewport{display:block}
.lightbox.zoomed .lightbox-viewport img{width:1500px;max-width:none;height:auto;max-height:none;object-fit:contain;touch-action:pan-x pan-y;cursor:zoom-out}
.lightbox-controls{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-shrink:0}
.lightbox-controls p{font-size:13px;text-align:center;line-height:1.5;margin:0}
.lightbox-controls button{font-size:22px}
@media(max-width:1050px) and (min-width:801px){.nav-links{gap:12px;font-size:11px}.brand{font-size:21px}.booking-box{width:320px}.hero-copy{max-width:58%}.hero h1{font-size:90px}.hero-meta{gap:18px}.hero-meta strong{font-size:16px}}
@media(max-width:800px){.booking-box{right:auto;bottom:auto}.hero{padding-bottom:70px;min-height:0}.hero h1{font-size:clamp(57px,10vw,78px)}.hero-meta{gap:17px;flex-wrap:wrap}.hero-meta strong{font-size:17px}.hero-actions{flex-wrap:wrap}.hero p{font-size:16px}.menu-reader{grid-template-columns:1fr;gap:16px}.menu-categories{padding:18px}.menu-category-buttons{display:none}.menu-categories>p{margin-bottom:0}.menu-categories>select{font-size:16px}.menu-page{padding:18px}.menu-page-image img{max-height:none}.menu-page h3{font-size:24px}.menu-question{margin-left:0}.seasonal-grid{gap:18px}.seasonal-copy{padding:20px}.seasonal-copy h3{font-size:25px}.full-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.lead-form input,.lead-form select,.lead-form textarea,.booking-box input,.booking-box select{font-size:16px;min-width:0}.form-row>label{min-width:0}.lead-form .form-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.lightbox{padding:12px}.lightbox-toolbar{font-size:10px;gap:8px}.lightbox-toolbar>div{gap:5px}.lightbox-toolbar a,.lightbox button{font-size:11px;padding:8px}.lightbox-controls p{font-size:11px}.lightbox-controls button{font-size:22px}.call-button{left:12px;bottom:16px}.whatsapp{right:12px;bottom:16px}footer{padding-bottom:90px}}
@media(max-width:480px){.seasonal-grid{grid-template-columns:1fr}.hero-meta{gap:15px}.hero-meta>div:last-child{width:100%}.hero-content{margin-top:0}.brand{font-size:22px}.brand-mark{width:40px;height:40px;flex-basis:40px}.menu-page-toolbar .btn{min-width:44px}.gallery-filters{gap:6px}.gallery-filters button{padding:9px 11px;font-size:11px}.event-cards{grid-template-columns:1fr}.calc-result{padding:25px}.calc-result strong{font-size:42px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
@media(max-width:380px){.booking-grid{grid-template-columns:1fr}}
