/* Expanded Tibi-Libi site: rooms, pool, events, services and restaurant menu. */
.editorial-title{font-family:var(--serif);font-size:clamp(52px,4.8vw,76px);letter-spacing:-.035em;line-height:1.05;font-weight:400;margin:25px 0}.editorial-title em{color:var(--rust)}
.inner-hero{height:90svh;min-height:780px;max-height:1050px}.inner-hero .hero-copy{top:31%}.inner-hero h1{font-size:clamp(78px,7.5vw,120px)}.inner-hero .hero-description{max-width:390px}.inner-hero .stay-seal span:first-child{text-align:center}.main-nav{gap:24px}.main-nav>a{white-space:nowrap}.site-header{gap:30px}.brand{flex-shrink:0}.main-nav a[aria-current=page]:after{width:100%}
.footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:15px 25px;font-size:14px}.footer-links a:hover{text-decoration:underline;text-underline-offset:5px}.footer-place{margin-left:auto}.footer-brand{margin-right:auto}.home-room-types{margin:25px 0 28px}.home-room-types>div{padding:17px 0;border-bottom:1px solid #ffffff30}.home-room-types dt{font-family:var(--serif);font-size:29px;line-height:1.3}.home-room-types dd{margin:7px 0 0;color:#d1d3c8;font-size:14px}.room-info .outline-button{width:100%}
.feature-split{display:grid;grid-template-columns:1.2fr 1fr;gap:10%;align-items:center;padding-top:95px;padding-bottom:95px}.feature-photo{position:relative;overflow:hidden;height:450px}.feature-photo img{position:absolute;top:-12.5%;height:125%;transform:translate3d(0,var(--shift,0px),0);will-change:transform}.feature-copy>p:not(.eyebrow){font-size:16px;max-width:390px;line-height:1.85}.pool-home{background:#dee4df}.pool-home .editorial-title em{color:#496657}.feature-flip{grid-template-columns:1fr 1.2fr}.feature-flip .feature-photo{grid-column:2;grid-row:1}.feature-flip .feature-copy{grid-column:1;grid-row:1}.events-home{background:#934d38;color:#fff8ed}.events-home .editorial-title em{color:#ead8be}
.services-home{padding-top:95px;padding-bottom:95px}.services-heading{display:flex;align-items:end;justify-content:space-between;gap:35px}.services-heading>p{font-size:16px;margin-bottom:30px;line-height:1.85}.services-home .section-topline{margin-bottom:0}.service-list{list-style:none;margin:45px 0 0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:30px}.service-list li{border-top:1px solid var(--line);padding-top:26px}.service-signature{display:block;font-family:var(--serif);font-size:36px;letter-spacing:-1px;line-height:1.2;margin-bottom:18px;white-space:nowrap}.service-list h3{font-size:15px;font-weight:600;line-height:1.5;margin-bottom:10px}.service-list p{font-size:14px;line-height:1.75;color:#60695b}
.light-header .site-header{color:var(--ink);border-color:var(--line)}.light-header .nav-book{border-color:#69705f}.light-header .nav-book:hover{background:var(--ink);color:var(--paper)}.room-masthead{padding-top:175px;padding-bottom:75px;display:grid;grid-template-columns:1fr 1.08fr;gap:6%;align-items:center}.room-masthead h1{font-family:var(--serif);font-size:clamp(56px,5.5vw,88px);line-height:1.02;letter-spacing:-.045em;margin:30px 0}.room-masthead h1 em{color:var(--rust)}.room-masthead-copy>p:not(.eyebrow){font-size:16px;line-height:1.85}.room-masthead-image{height:590px;position:relative;overflow:hidden}.room-masthead-image img{position:absolute;height:122%;top:-11%;transform:translate3d(0,var(--shift,0px),0);will-change:transform;object-position:62% center}.room-masthead-facts{display:flex;gap:44px;margin-top:50px;border-top:1px solid var(--line);padding-top:24px}.room-masthead-facts>span{display:flex;gap:11px;align-items:baseline;font-size:13px}.room-masthead-facts strong{font-weight:400;font-family:var(--serif);font-size:45px;line-height:1}
.room-categories{padding-top:75px;padding-bottom:75px}.room-categories .section-topline{border-top:1px solid var(--line);padding-top:28px}.subtle-link{font-size:14px;text-decoration:underline;text-underline-offset:5px}.room-category{display:grid;grid-template-columns:1.2fr 1fr;gap:9%;align-items:center;margin-top:55px}.room-category+.room-category{margin-top:95px}.category-image{position:relative;height:430px;overflow:hidden}.category-image img{position:absolute;height:125%;top:-12.5%;transform:translate3d(0,var(--shift,0px),0);will-change:transform}.category-copy h3{font-family:var(--serif);font-size:58px;letter-spacing:-.035em;line-height:1.05;margin:24px 0}.category-copy h3 em{color:var(--rust)}.category-copy p:not(.eyebrow){font-size:16px;line-height:1.85}.category-copy .occupancy{font-size:14px;font-weight:600;padding:15px 0;margin-bottom:22px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.category-copy .solid-button{margin-top:28px}.category-reverse{grid-template-columns:1fr 1.2fr}.category-reverse .category-image{grid-column:2;grid-row:1}.category-reverse .category-copy{grid-column:1;grid-row:1}.editorial-note{font-size:12px;line-height:1.8;color:#60695b;margin-top:30px}.room-amenities{background:#e2e3d9;max-width:none}.room-amenities .section-topline{margin-bottom:20px}.amenity-list{list-style:none;padding:0;margin:45px 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:45px}.amenity-list li{border-top:1px solid #abb0a0;padding:22px 0;display:flex;gap:20px;align-items:baseline;font-size:16px}.amenity-list span{font-family:var(--serif);font-style:italic;font-size:22px;color:var(--rust)}.closing-note{font-size:13px;line-height:1.7;margin-top:20px}
.pool-access{background:#dce5df}.pool-access>.section-wrap,.event-inquiry>.section-wrap{display:grid;grid-template-columns:1.1fr 1fr;gap:12%;align-items:center;padding-top:85px;padding-bottom:85px}.pool-access .editorial-title em{color:#496657}.pool-access p:not(.eyebrow),.event-inquiry p:not(.eyebrow){font-size:16px;line-height:1.85}.pool-access .solid-button,.event-inquiry .solid-button{margin-top:30px}.contact-phone{display:block;font-size:14px;margin-top:22px}.event-occasions{display:grid;grid-template-columns:1fr 1fr;gap:9%;margin-top:70px}.event-occasions article{border-top:1px solid var(--line);padding-top:30px}.event-occasions h3{font-family:var(--serif);font-size:43px;line-height:1.12;letter-spacing:-.02em;margin:22px 0}.event-occasions p:not(.eyebrow){font-size:16px;line-height:1.85;max-width:430px}.event-inquiry{background:var(--ink);color:var(--paper)}.event-inquiry .editorial-title em{color:#ccb69e}.event-inquiry .solid-button{background:var(--paper);color:var(--ink)}.event-inquiry .event-detail-note{margin-top:22px;font-size:14px!important;color:#c5ccbc}
.menu-section{background:#e6e3d8;max-width:none;padding-top:90px;padding-bottom:90px}.menu-heading{text-align:center;max-width:650px;margin:0 auto 60px}.menu-provisional{font-size:14px;line-height:1.8;color:#5c6254;max-width:590px;margin:25px auto 0}.menu-columns{display:grid;grid-template-columns:1fr 1fr;gap:9%;max-width:1180px;margin:auto}.menu-column{border-top:1px solid #b2b7a8;padding-top:25px}.menu-column h3{font-family:var(--serif);font-size:44px;letter-spacing:-.02em;line-height:1.15;margin:18px 0 28px}.menu-column ul{list-style:none;margin:0;padding:0}.menu-column li{padding:20px 0;border-top:1px solid #b2b7a877}.menu-column h4{font-size:18px;font-weight:500;margin:0 0 7px}.menu-column li p{font-size:14px;line-height:1.7;color:#606655}.menu-contact-note{text-align:center;font-size:13px;line-height:1.7;margin:45px auto 0;max-width:550px}.capacity-help{font-size:12px;color:#626959;line-height:1.65;margin:-8px 0 18px}dialog{max-height:92svh}
@media(max-width:1150px){.main-nav{gap:17px}.nav-book{padding:11px 15px;gap:20px}.service-list{gap:20px}.service-signature{font-size:31px}.room-masthead-image{height:500px}.category-image{height:390px}.category-copy h3{font-size:49px}}
@media(max-width:1040px){.site-header{height:92px;padding:0 6%}.brand-name{font-size:35px}.brand-sub{font-size:12px;letter-spacing:.5px}.menu-toggle{display:flex;flex-direction:column;gap:7px;width:44px;height:44px;align-items:center;justify-content:center;background:transparent;color:inherit;z-index:2;flex-shrink:0}.menu-toggle span{width:24px;height:1px;background:currentColor;transition:transform .3s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(4px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-4px) rotate(-45deg)}.main-nav{display:none;position:absolute;top:91px;left:0;right:0;background:var(--ink);padding:24px 6% 32px;align-items:stretch;gap:8px;max-height:calc(100svh - 92px);overflow:auto;color:var(--paper)}.main-nav.is-open{display:flex;flex-direction:column}.main-nav>a{font-size:25px;font-family:var(--serif);white-space:normal;padding:8px 0}.nav-book{font-size:14px;justify-content:space-between;border-color:#ffffff70;margin-top:10px}.light-header .nav-book{border-color:#ffffff70}.main-nav>a:after{display:none}.main-nav a[aria-current=page]{color:#d6b89b}.feature-split{gap:7%}.feature-photo{height:390px}.service-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}.footer-links{order:3;width:100%;justify-content:flex-start}.footer-meta{order:4}.room-masthead{padding-top:145px;gap:5%}.room-masthead h1{font-size:60px}.room-masthead-image{height:460px}.room-masthead-facts{gap:24px}.room-masthead-facts>span{gap:8px}.category-copy h3{font-size:46px}.category-image{height:380px}.amenity-list{gap:0 25px}.pool-access>.section-wrap,.event-inquiry>.section-wrap{gap:7%}}
@media(max-width:740px){.inner-hero{height:93svh;min-height:720px}.inner-hero .hero-copy{top:30%}.inner-hero h1{font-size:clamp(56px,11.6vw,80px)}.inner-hero .stay-seal{bottom:14%}.inner-hero .hero-location .location-line{display:block}.inner-hero .hero-location{font-size:11px}.editorial-title{font-size:51px;line-height:1.06}.feature-split,.feature-flip{display:flex;flex-direction:column;align-items:stretch;gap:30px;padding-top:65px;padding-bottom:65px}.feature-copy{order:0}.feature-photo{order:1;height:320px}.feature-copy .editorial-title{margin:24px 0}.feature-copy>p:not(.eyebrow){max-width:none}.services-home{padding-top:65px;padding-bottom:65px}.services-heading{display:block}.services-heading>p{margin-top:24px;margin-bottom:0}.service-list{grid-template-columns:1fr 1fr;gap:28px 24px;margin-top:38px}.service-signature{font-size:32px;white-space:normal}.service-list p{font-size:14px}.service-list li:last-child{grid-column:1 / -1}.service-list h3{font-size:16px}.room-masthead{display:flex;flex-direction:column;padding-top:145px;padding-bottom:55px;align-items:stretch;gap:38px}.room-masthead h1{font-size:56px;line-height:1.03;margin:24px 0}.room-masthead-image{height:360px}.room-masthead-facts{margin-top:32px;padding-top:23px;gap:38px}.room-masthead-facts strong{font-size:40px}.room-categories{padding-top:20px;padding-bottom:60px}.room-categories .section-topline{display:block;margin-bottom:35px}.room-categories .subtle-link{display:inline-block;margin-top:17px}.room-category,.category-reverse{display:flex;flex-direction:column;align-items:stretch;gap:30px;margin-top:35px}.room-category+.room-category{margin-top:65px}.category-image{height:310px;order:0}.category-copy{order:1}.category-copy h3{font-size:51px;margin:23px 0}.category-copy .solid-button{width:100%;font-size:14px;gap:20px}.category-copy .occupancy{font-size:14px}.room-amenities{padding-top:60px;padding-bottom:55px}.amenity-list{grid-template-columns:1fr;gap:0;margin-top:35px}.amenity-list li{padding:18px 0;font-size:16px}.pool-access>.section-wrap,.event-inquiry>.section-wrap{display:block;padding-top:65px;padding-bottom:65px}.pool-access>.section-wrap>div+div,.event-inquiry>.section-wrap>div+div{margin-top:25px}.event-inquiry .solid-button,.pool-access .solid-button{width:100%;font-size:14px;gap:15px}.event-occasions{grid-template-columns:1fr;gap:36px;margin-top:45px}.event-occasions h3{font-size:39px}.menu-section{padding-top:65px;padding-bottom:65px}.menu-heading{text-align:left;margin-bottom:40px}.menu-columns{grid-template-columns:1fr;gap:40px}.menu-column h3{font-size:38px}.menu-column h4{font-size:18px}.menu-provisional{font-size:14px}.menu-contact-note{text-align:left;font-size:14px}.footer-links{gap:15px 22px;font-size:14px}.footer-meta{font-size:12px}.home-room-types{margin:18px 0 25px}.room-info h3{padding-right:0}.capacity-help{font-size:12px}dialog{padding:36px 24px 28px}dialog h2{font-size:43px;margin:21px 0 18px}dialog .dialog-intro{font-size:14px}form{margin-top:20px}}
@media(prefers-reduced-motion:reduce){.js-motion .reveal{opacity:1;transform:none}}
/* Logo: the frog PNG is used as a mask, so it takes the surrounding text colour (cream on dark heroes, ink on light pages). */
.brand-mark{display:block;flex-shrink:0;aspect-ratio:811/918;background:currentColor;-webkit-mask:url(/assets/logo-mark-right.webp) center/contain no-repeat;mask:url(/assets/logo-mark-right.webp) center/contain no-repeat}
.brand{flex-direction:row;align-items:center;gap:14px}.brand .brand-mark{height:58px}.brand-text{display:flex;flex-direction:column}
.footer-brand{display:inline-flex;align-items:center;gap:12px}.footer-brand .brand-mark{height:44px}
@media(max-width:740px){.brand{gap:10px}.brand .brand-mark{height:46px}.footer-brand .brand-mark{height:38px}}
/* Restaurant: dish plates (transparent cut-outs that lean toward the cursor, see site.js) */
.menu-column li.dish{display:grid;grid-template-columns:128px 1fr;gap:26px;align-items:center;padding:18px 0}
.dish-plate{width:128px;aspect-ratio:1;position:relative}
.dish-plate img{width:100%;height:100%;object-fit:contain;transform:translate3d(var(--dx,0px),var(--dy,0px),0) rotate(var(--dr,0deg)) scale(var(--ds,1));filter:drop-shadow(0 12px 14px #282e2533);will-change:transform}
.dish-credits{max-width:550px;margin:18px auto 0;font-size:11px;line-height:1.7;color:#6a7061;text-align:center}
.dish-credits summary{cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.dish-credits ul{list-style:none;padding:0;margin:8px 0 0}.dish-credits a{text-decoration:underline;text-underline-offset:2px}
/* Restaurant: the two dining rooms */
.restaurant-spaces{display:grid;grid-template-columns:1fr 1fr;gap:9%;margin-top:80px}
.restaurant-spaces article{border-top:1px solid var(--line);padding-top:30px}
.restaurant-spaces h3{font-family:var(--serif);font-size:43px;line-height:1.12;letter-spacing:-.02em;font-weight:400;margin:22px 0}.restaurant-spaces h3 em{color:var(--rust)}
.restaurant-spaces article>p:not(.eyebrow){font-size:16px;line-height:1.85;max-width:450px}
.space-facts{display:grid;grid-template-columns:repeat(3,auto);justify-content:start;gap:12px 42px;margin:30px 0 0}
.space-facts dt{font-size:11px;letter-spacing:1.6px;text-transform:uppercase;color:#6a7061}.space-facts dd{margin:6px 0 0;font-family:var(--serif);font-size:24px}
.spaces-note{display:flex;justify-content:space-between;align-items:center;gap:20px 40px;flex-wrap:wrap;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0;margin-top:60px;font-size:15px}
/* Restaurant: catering band */
.restaurant-catering{background:var(--ink);color:var(--paper)}
.restaurant-catering>.section-wrap{display:grid;grid-template-columns:1.1fr 1fr;gap:12%;align-items:center;padding-top:85px;padding-bottom:85px}
.restaurant-catering .editorial-title em{color:#ccb69e}
.restaurant-catering p:not(.eyebrow){font-size:16px;line-height:1.85}
.occasion-list{list-style:none;padding:0;margin:24px 0 0;display:flex;flex-wrap:wrap;gap:10px}
.occasion-list li{border:1px solid #ffffff38;padding:9px 15px;font-size:13px;border-radius:40px}
.restaurant-catering .solid-button{background:var(--paper);color:var(--ink);margin-top:32px}.restaurant-catering .solid-button:hover{background:#ddd8c7}
@media(max-width:1040px){.restaurant-catering>.section-wrap{gap:7%}.space-facts{grid-template-columns:repeat(2,auto)}}
@media(max-width:740px){
.menu-column li.dish{grid-template-columns:96px 1fr;gap:18px}.dish-plate{width:96px}
.restaurant-spaces{grid-template-columns:1fr;gap:40px;margin-top:50px}.restaurant-spaces h3{font-size:39px}
.space-facts{grid-template-columns:1fr 1fr;gap:16px 24px}.space-facts dd{font-size:21px}
.spaces-note{margin-top:40px}
.restaurant-catering>.section-wrap{display:block;padding-top:65px;padding-bottom:65px}.restaurant-catering>.section-wrap>div+div{margin-top:25px}
.restaurant-catering .solid-button{width:100%;font-size:14px;gap:15px}
.dish-credits{text-align:left}
}
/* Restaurant: tabbed menu (cuisine tabs > category pills > dish list) */
.menu-board{max-width:1180px;margin:0 auto}
.menu-cuisines{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #b2b7a8;border-bottom:1px solid #b2b7a8}
.menu-cuisines button{position:relative;display:flex;align-items:baseline;gap:18px;background:none;border:0;color:inherit;font-family:var(--serif);font-size:clamp(30px,3.4vw,46px);letter-spacing:-.02em;line-height:1.1;padding:26px 0 24px;text-align:left;cursor:pointer;opacity:.4;transition:opacity .3s}
.menu-cuisines button+button{padding-left:5%;border-left:1px solid #b2b7a8}
.menu-cuisines button:hover,.menu-cuisines button[aria-selected=true]{opacity:1}
.menu-cuisines button::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--rust);transform:scaleX(0);transform-origin:left;transition:transform .45s ease}
.menu-cuisines button+button::after{left:5%}
.menu-cuisines button[aria-selected=true]::after{transform:scaleX(1)}
.menu-cuisine-num{font-family:var(--sans);font-size:11px;letter-spacing:2px;color:var(--rust)}
.menu-cats{display:flex;flex-wrap:wrap;gap:10px;margin:30px 0 14px}
.menu-cats button{border:1px solid #b2b7a8;border-radius:40px;background:transparent;color:inherit;font:500 13px/1 var(--sans);padding:12px 19px;cursor:pointer;white-space:nowrap;transition:background .25s,color .25s,border-color .25s}
.menu-cats button:hover{border-color:var(--ink)}
.menu-cats button[aria-selected=true]{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.menu-cuisines button:focus-visible,.menu-cats button:focus-visible{outline:2px solid var(--rust);outline-offset:3px}
.menu-dishes{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;column-gap:9%}
.menu-dishes:not([hidden]){animation:menu-in .5s ease both}
@keyframes menu-in{from{opacity:0;transform:translateY(12px)}}
.menu-dishes li.dish{display:grid;grid-template-columns:128px 1fr;gap:26px;align-items:center;padding:18px 0;border-top:1px solid #b2b7a877}
.menu-dishes h4{font-size:18px;font-weight:500;margin:0 0 7px}
.menu-dishes li p{font-size:14px;line-height:1.7;color:#606655;margin:0}
/* Restaurant: dining-room photos */
.space-photo{position:relative;margin:0 0 30px;aspect-ratio:4/3;overflow:hidden;background:#dcd8cb}
.space-photo img{width:100%;height:100%;object-fit:cover;display:block}
@media(max-width:740px){
.menu-cuisines button{font-size:25px;gap:10px;padding:20px 0 18px;flex-direction:column;gap:6px}
.menu-cuisines button+button{padding-left:18px}.menu-cuisines button+button::after{left:18px}
.menu-cats{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:22px -6% 8px;padding:2px 6%}
.menu-cats::-webkit-scrollbar{display:none}
.menu-dishes{grid-template-columns:1fr}
.menu-dishes li.dish{grid-template-columns:96px 1fr;gap:18px}
.space-photo{margin-bottom:24px}
}
.menu-board [hidden]{display:none!important}
.space-facts{column-gap:28px}.space-facts dd{white-space:nowrap}
/* Home: FAQ (also the source for the FAQPage structured data, see seo/build.py) */
.faq{display:grid;grid-template-columns:1fr 1.4fr;gap:10%;padding-top:110px;padding-bottom:110px;border-top:1px solid var(--line)}
.faq h2{font-family:var(--serif);font-size:clamp(52px,4.8vw,76px);font-weight:400;letter-spacing:-.035em;line-height:1.05;margin:25px 0}.faq h2 em{color:var(--rust)}
.faq-heading>p:not(.eyebrow){font-size:16px;line-height:1.85;max-width:340px}
.faq-item{border-top:1px solid var(--line)}.faq-item:last-child{border-bottom:1px solid var(--line)}
.faq-item summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:24px 0;font-family:var(--serif);font-size:27px;line-height:1.25}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:'+';font-family:var(--sans);font-size:22px;font-weight:300;color:var(--rust);transition:transform .3s}
.faq-item[open]:not(.is-closing) summary::after{transform:rotate(45deg)}
.faq-item p{margin:-6px 0 26px;font-size:16px;line-height:1.85;max-width:620px;color:#4c5245}
@media(max-width:1040px){.faq{grid-template-columns:1fr;gap:40px}}
@media(max-width:740px){.faq{padding-top:70px;padding-bottom:70px}.faq h2{font-size:52px}.faq-item summary{font-size:23px;padding:20px 0}}
/* Language switch (inserted by seo/build.py) */
.lang-switch{font-size:12px;letter-spacing:1.5px;font-weight:600;padding:4px 0;border-bottom:1px solid currentColor;opacity:.85}.lang-switch:hover{opacity:1}
/* Pool: hours & access */
.pool-hours{padding-top:30px;padding-bottom:110px}
.pool-hours-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5%}
.pool-hours-grid article{border-top:1px solid var(--line);padding-top:28px}
.pool-time{font-family:var(--serif);font-size:clamp(46px,4.4vw,68px);letter-spacing:-.03em;line-height:1;margin:26px 0 18px;color:#35503f}
.pool-hours-grid article>p:last-child{font-size:16px;line-height:1.8;max-width:320px}
.pool-facts{display:flex;justify-content:space-between;flex-wrap:wrap;gap:20px 40px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:26px 0;margin:70px 0 0}
.pool-facts dt{font-size:11px;letter-spacing:1.6px;text-transform:uppercase;color:#6a7061}.pool-facts dd{margin:6px 0 0;font-family:var(--serif);font-size:28px}
@media(max-width:1040px){.pool-hours-grid{grid-template-columns:1fr;gap:34px}}
@media(max-width:740px){.pool-hours{padding-bottom:70px}.pool-time{font-size:52px;margin:18px 0 12px}.pool-facts{flex-direction:column;margin-top:45px}.pool-facts dd{font-size:24px}}
/* ==========================================================================
   Motion: slow, eased, layered. Everything here is skipped under
   prefers-reduced-motion. Entrance animations use the individual `translate`,
   `scale` and `rotate` properties so they never fight the parallax `transform`,
   and `backwards` fill so no value lingers after they finish.
   ========================================================================== */
:root{--ease-out:cubic-bezier(.16,1,.3,1);--ease-soft:cubic-bezier(.22,.61,.36,1)}
@media(prefers-reduced-motion:no-preference){
 /* Page-to-page: a soft cross-fade (Chrome, Edge, Safari 18+; other browsers just navigate) */
 @view-transition{navigation:auto}
 ::view-transition-old(root){animation:vt-out .45s var(--ease-soft) both}
 ::view-transition-new(root){animation:vt-in .8s var(--ease-out) .08s both}
 @keyframes vt-out{to{opacity:0}}
 @keyframes vt-in{from{opacity:0;translate:0 18px}}

 /* Hero entrance */
 .site-header{animation:fade-in 1.4s var(--ease-soft) .2s backwards}
 .hero-media img{animation:hero-settle 3s var(--ease-out) backwards}
 .hero-copy>.eyebrow{animation:rise 1.4s var(--ease-out) .35s backwards}
 .hero-copy>h1{animation:rise-curtain 1.6s var(--ease-out) .5s backwards}
 .hero-copy>.hero-description{animation:rise 1.4s var(--ease-out) .85s backwards}
 .hero-location,.hero-bottom,.hero-photo-note{animation:fade-in 1.6s var(--ease-soft) 1.1s backwards}
 .hero .stay-seal{animation:seal-in 1.8s var(--ease-out) 1s backwards}
 @keyframes hero-settle{from{scale:1.14;filter:brightness(.7)}}
 @keyframes rise{from{opacity:0;translate:0 34px;filter:blur(8px)}}
 @keyframes rise-curtain{from{opacity:0;translate:0 70px;clip-path:inset(0 0 100% 0);filter:blur(6px)}to{clip-path:inset(-40% -10% -40% -10%)}}
 @keyframes seal-in{from{opacity:0;scale:.55;rotate:-40deg}}
 @keyframes fade-in{from{opacity:0}}

 /* Scroll reveals (classes set by site.js) */
 .js-motion .reveal{opacity:0;transform:none;translate:0 46px;filter:blur(5px);transition:opacity 1.2s var(--ease-out),translate 1.4s var(--ease-out),filter 1.2s var(--ease-out);transition-delay:var(--reveal-delay,0ms)}
 .js-motion .reveal.is-visible{opacity:1;translate:none;filter:none}
 .js-motion .img-reveal{clip-path:inset(9% 7% 9% 7%);transition:clip-path 1.8s var(--ease-out)}
 .js-motion .img-reveal img{scale:1.2;transition:scale 2.4s var(--ease-out)}
 .js-motion .img-reveal.is-shown{clip-path:inset(0)}
 .js-motion .img-reveal.is-shown img{scale:1}

 /* Hover: slower, eased micro-interactions */
 .main-nav>a:after{transition:width .6s var(--ease-out)}
 .solid-button,.outline-button,.nav-book{transition:background .5s var(--ease-soft),color .5s var(--ease-soft),border-color .5s var(--ease-soft)}
 .solid-button span,.outline-button span,.nav-book span,.text-link span{transition:translate .6s var(--ease-out),transform .6s var(--ease-out)}
 .solid-button:hover span,.outline-button:hover span,.nav-book:hover span{translate:4px -4px}
 .stay-seal{transition:background .6s var(--ease-soft),scale .8s var(--ease-out)}
 .stay-seal:hover{scale:1.06}
 .seal-arrow{transition:rotate .8s var(--ease-out)}.stay-seal:hover .seal-arrow{rotate:45deg}
 .js-motion .restaurant-teaser-image.is-shown:hover img{scale:1.04;transition-duration:1.4s}
 .menu-cats button,.menu-cuisines button{transition-timing-function:var(--ease-soft);transition-duration:.5s}
 .menu-dishes:not([hidden]){animation:menu-in .8s var(--ease-out) both}
 @keyframes menu-in{from{opacity:0;translate:0 18px}}

 /* Booking dialog and mobile menu */
 dialog[open]{animation:dialog-in .8s var(--ease-out) backwards}
 dialog[open]::backdrop{animation:fade-in .6s var(--ease-soft) backwards}
 @keyframes dialog-in{from{opacity:0;translate:0 28px;scale:.985}}
 .main-nav.is-open>*{animation:nav-item-in .8s var(--ease-out) backwards}
 .main-nav.is-open>*:nth-child(2){animation-delay:.05s}.main-nav.is-open>*:nth-child(3){animation-delay:.1s}.main-nav.is-open>*:nth-child(4){animation-delay:.15s}
 .main-nav.is-open>*:nth-child(5){animation-delay:.2s}.main-nav.is-open>*:nth-child(6){animation-delay:.25s}.main-nav.is-open>*:nth-child(7){animation-delay:.3s}
 @keyframes nav-item-in{from{opacity:0;translate:0 16px}}
}
@media(prefers-reduced-motion:no-preference) and (max-width:740px){
 .js-motion .reveal{translate:0 26px;filter:none}
 .js-motion .img-reveal{clip-path:inset(5% 4% 5% 4%)}
}
/* ==========================================================================
   Blog (pages generated by seo/build.py)
   ========================================================================== */
.blog-page main{padding-top:112px}
.blog-masthead{padding-top:90px;padding-bottom:60px}
.blog-masthead h1{font-family:var(--serif);font-weight:400;font-size:clamp(64px,7vw,112px);letter-spacing:-.04em;line-height:.98;margin:26px 0 30px}.blog-masthead h1 em{color:var(--rust)}
.blog-intro{font-size:17px;line-height:1.85;max-width:560px}
.blog-list{display:grid;grid-template-columns:repeat(3,1fr);gap:60px 4%;padding-bottom:110px}
.blog-empty{grid-column:1/-1;font-family:var(--serif);font-size:30px;border-top:1px solid var(--line);padding-top:30px}
.post-card a{display:block;color:inherit}
.post-card-image{position:relative;overflow:hidden;aspect-ratio:4/3;background:#dcd8cb;margin-bottom:24px}
.post-card-image img{width:100%;height:100%;object-fit:cover;display:block;transition:scale 1.4s var(--ease-out)}
.post-card a:hover .post-card-image img{scale:1.04}
.post-meta{font-size:12px;letter-spacing:.4px;color:#6a7061;margin:0}
.post-meta span{color:var(--rust);text-transform:uppercase;letter-spacing:1.6px;font-size:11px}
.post-card h2{font-family:var(--serif);font-weight:400;font-size:31px;line-height:1.15;letter-spacing:-.015em;margin:14px 0 12px}
.post-card p:not(.post-meta){font-size:15px;line-height:1.75;color:#4c5245;margin:0}
.post-card-more{display:inline-flex;gap:14px;align-items:center;font-size:13px;border-bottom:1px solid currentColor;padding-bottom:6px;margin-top:22px}
.post-card-more span{transition:translate .6s var(--ease-out)}.post-card a:hover .post-card-more span{translate:4px -4px}
.post-card--featured{grid-column:1/-1}
.post-card--featured a{display:grid;grid-template-columns:1.35fr 1fr;gap:6%;align-items:center}
.post-card--featured .post-card-image{margin:0;aspect-ratio:16/10}
.post-card--featured h2{font-size:clamp(38px,3.6vw,54px)}
/* Article */
.post-header{max-width:860px;padding-top:70px;padding-bottom:50px}
.post-back{display:inline-flex;gap:10px;font-size:13px;margin-bottom:44px;border-bottom:1px solid transparent;transition:border-color .4s}.post-back:hover{border-color:currentColor}
.post-header h1{font-family:var(--serif);font-weight:400;font-size:clamp(46px,5vw,76px);letter-spacing:-.035em;line-height:1.04;margin:22px 0 26px}
.post-lead{font-size:19px;line-height:1.75;color:#4c5245;margin:0 0 26px}
.post-hero{margin:0 auto 70px}
.post-hero-frame{position:relative;overflow:hidden;aspect-ratio:16/8;background:#dcd8cb}
.post-hero-frame img{width:100%;height:100%;object-fit:cover;display:block}
.post-hero figcaption{font-size:11px;color:#6a7061;margin-top:12px;text-align:right}.post-hero figcaption a{text-decoration:underline;text-underline-offset:2px}
.post-body{max-width:720px;margin:0 auto;padding:0 6% 100px;box-sizing:content-box;font-size:18px;line-height:1.85}
.post-body>*:first-child{margin-top:0}
.post-body p{margin:0 0 1.3em}
.post-body h2{font-family:var(--serif);font-weight:400;font-size:40px;line-height:1.12;letter-spacing:-.02em;margin:1.7em 0 .6em}
.post-body h3{font-family:var(--serif);font-weight:500;font-size:28px;line-height:1.2;margin:1.5em 0 .5em}
.post-body ul,.post-body ol{padding-left:1.2em;margin:0 0 1.4em}.post-body li{margin:.45em 0;padding-left:.3em}.post-body li::marker{color:var(--rust)}
.post-body strong{font-weight:600}
.post-body a{color:var(--rust);text-decoration:underline;text-underline-offset:3px}
.post-body blockquote{margin:1.6em 0;padding:4px 0 4px 28px;border-left:2px solid var(--rust);font-family:var(--serif);font-size:27px;line-height:1.4;font-style:italic}
.post-body img{width:100%;height:auto;display:block;margin:1.6em 0}
.post-cta{background:var(--ink);color:var(--paper)}
.post-cta>.section-wrap{display:grid;grid-template-columns:1.1fr 1fr;gap:12%;align-items:center;padding-top:85px;padding-bottom:85px}
.post-cta .editorial-title em{color:#ccb69e}.post-cta p:not(.eyebrow){font-size:16px;line-height:1.85}
.post-cta .solid-button{background:var(--paper);color:var(--ink);margin-top:28px}.post-cta .solid-button:hover{background:#ddd8c7}
.post-more{padding-top:90px}
.post-more-title{font-family:var(--serif);font-weight:400;font-size:46px;letter-spacing:-.02em;margin:0 0 40px}
.post-more .blog-list{padding-bottom:40px}
@media(max-width:1040px){.blog-list{grid-template-columns:1fr 1fr}.post-card--featured a{grid-template-columns:1fr;gap:26px}.post-cta>.section-wrap{gap:7%}}
@media(max-width:740px){
.blog-page main{padding-top:92px}.blog-masthead{padding-top:50px;padding-bottom:40px}.blog-masthead h1{font-size:62px}
.blog-list{grid-template-columns:1fr;gap:50px;padding-bottom:70px}.post-card h2{font-size:28px}
.post-header{padding-top:40px;padding-bottom:36px}.post-back{margin-bottom:30px}.post-lead{font-size:17px}
.post-hero{margin-bottom:44px}.post-hero-frame{aspect-ratio:4/3}
.post-body{font-size:17px;padding-bottom:70px}.post-body h2{font-size:32px}
.post-cta>.section-wrap{display:block;padding-top:65px;padding-bottom:65px}.post-cta>.section-wrap>div+div{margin-top:25px}.post-cta .solid-button{width:100%;gap:15px}
.post-more{padding-top:60px}.post-more-title{font-size:38px}
}
/* Article: header and body share one 720px reading column */
.post-header,.post-body{max-width:none;margin:0;box-sizing:border-box;padding-left:max(7%,calc(50% - 360px));padding-right:max(7%,calc(50% - 360px))}
/* ==========================================================================
   Prices, placeholders, testimonials, find us, practical info, legal, 404
   ========================================================================== */
/* "à confirmer" marker for information the hotel still has to provide */
.tbc{display:inline-block;font-family:var(--sans);font-style:normal;font-size:10px;font-weight:600;letter-spacing:1.2px;text-transform:uppercase;color:var(--rust);border:1px dashed currentColor;border-radius:20px;padding:2px 8px;line-height:1.4;vertical-align:.15em;white-space:nowrap}
.placeholder-tag{display:inline-block;font-size:11px;letter-spacing:1.2px;text-transform:uppercase;color:var(--rust);border:1px dashed currentColor;padding:6px 12px;border-radius:30px;margin:0}
/* Room prices */
.room-price{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin:18px 0 6px;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.room-price strong{font-family:var(--serif);font-weight:500;font-size:38px;letter-spacing:-.02em;line-height:1}
.room-price-unit{font-size:14px;color:#5c6254}
.room-price-alt{flex-basis:100%;font-size:13px;color:#6a7061;letter-spacing:.3px}
.home-room-price{display:block;font-family:var(--serif);font-size:22px;margin-top:6px;color:var(--rust)}
/* Footer contact */
.footer-contact{display:flex;gap:22px;flex-wrap:wrap}
.footer-meta p a{text-decoration:underline;text-underline-offset:3px}
/* Testimonials */
.testimonials{border-top:1px solid var(--line);padding-top:110px;padding-bottom:110px}
.testimonials-heading{display:grid;grid-template-columns:1fr auto;align-items:end;gap:20px 40px;margin-bottom:56px}
.testimonials-heading .eyebrow{grid-column:1/-1}
.testimonials h2{font-family:var(--serif);font-weight:400;font-size:clamp(48px,4.6vw,72px);letter-spacing:-.035em;line-height:1.05;margin:0}.testimonials h2 em{color:var(--rust)}
.testimonial-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.testimonial{margin:0;background:#e9e5da;padding:38px 34px 32px;display:flex;flex-direction:column;position:relative}
.testimonial::before{content:"\201C";position:absolute;top:8px;right:26px;font-family:var(--serif);font-size:110px;line-height:1;color:#d3cbbb}
.testimonial-stars{margin:0 0 20px;color:var(--rust);letter-spacing:4px;font-size:14px}
.testimonial blockquote{margin:0 0 28px;flex:1}.testimonial blockquote p{font-family:var(--serif);font-size:23px;line-height:1.45;margin:0;color:#4c5245;font-style:italic}
.testimonial figcaption{border-top:1px solid #cfc8b8;padding-top:18px;display:flex;flex-direction:column;gap:4px;font-size:13px;color:#6a7061}
.testimonial figcaption strong{font-size:15px;font-weight:600;color:var(--ink)}
/* Schematic map placeholder */
.map-placeholder{position:relative;background:#dfe3d8;overflow:hidden;aspect-ratio:4/3;display:flex;flex-direction:column}
.map-placeholder--tall{aspect-ratio:4/4.4}
.map-sketch{width:100%;flex:1;min-height:0;background:repeating-linear-gradient(0deg,transparent 0 39px,#cdd3c6 39px 40px),repeating-linear-gradient(90deg,transparent 0 39px,#cdd3c6 39px 40px)}
.map-water,.map-coast{fill:#b9cdc6}
.map-road{fill:none;stroke:#f3f1ea;stroke-width:9;stroke-linecap:round}.map-road--minor{stroke-width:4}
.map-place circle{fill:#5c6254}.map-place text,.map-water-label{font-family:var(--sans);font-size:15px;fill:#4c5245}
.map-water-label{font-style:italic;fill:#46645a}
.map-pin path{fill:var(--rust)}.map-pin circle{fill:#fff8ef}
.map-pin text{font-family:var(--serif);font-size:28px;fill:var(--ink)}.map-pin .map-pin-sub{font-family:var(--sans);font-size:14px;fill:#5c6254}
.map-placeholder-note{position:absolute;left:18px;top:16px;margin:0;font-size:10px;letter-spacing:1.2px;text-transform:uppercase;color:var(--rust);background:#f1eee5e6;border:1px dashed currentColor;border-radius:30px;padding:5px 11px}
.map-open{position:absolute;right:16px;bottom:16px;background:var(--ink);color:var(--paper);font-size:13px;padding:12px 18px;display:inline-flex;gap:14px;align-items:center;transition:background .4s}
.map-open:hover{background:#3a4235}
/* Home: find us */
.find-us{display:grid;grid-template-columns:1.15fr 1fr;gap:8%;align-items:center;border-top:1px solid var(--line)}
.find-us h2{font-family:var(--serif);font-weight:400;font-size:clamp(46px,4.2vw,66px);letter-spacing:-.035em;line-height:1.05;margin:24px 0 34px}.find-us h2 em{color:var(--rust)}
.find-us-list,.contact-list{margin:0}
.find-us-list>div,.contact-list>div{border-top:1px solid var(--line);padding:16px 0}
.find-us-list dt,.contact-list dt,.info-item dt{font-size:11px;letter-spacing:1.6px;text-transform:uppercase;color:#6a7061}
.find-us-list dd,.contact-list dd{margin:6px 0 0;font-size:16px;line-height:1.7}
.find-us-list a,.contact-list a{border-bottom:1px solid currentColor}
/* Practical info page */
.practical-page main,.legal-page main,.notfound-page main{padding-top:112px}
.page-masthead{padding-top:90px;padding-bottom:40px}
.page-masthead h1{font-family:var(--serif);font-weight:400;font-size:clamp(62px,6.6vw,104px);letter-spacing:-.04em;line-height:.98;margin:26px 0 28px}.page-masthead h1 em{color:var(--rust)}
.page-intro{font-size:17px;line-height:1.85;max-width:560px}
.access{display:grid;grid-template-columns:1fr 1fr;gap:7%;align-items:start;padding-top:50px}
.access-map{position:sticky;top:30px}
.access h2{font-family:var(--serif);font-weight:400;font-size:clamp(44px,4vw,62px);letter-spacing:-.03em;line-height:1.05;margin:22px 0 34px}.access h2 em{color:var(--rust)}
.airport-steps{list-style:none;margin:0 0 34px;padding:0}
.airport-steps li{display:grid;grid-template-columns:54px 1fr;gap:10px;border-top:1px solid var(--line);padding:22px 0}
.step-num{font-family:var(--serif);font-size:26px;color:var(--rust);line-height:1.2}
.airport-steps h3{font-size:17px;font-weight:600;margin:0 0 6px}.airport-steps p{margin:0;font-size:15px;line-height:1.75;color:#4c5245}
.good-to-know{border-top:1px solid var(--line)}
.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0 5%;margin:50px 0 0}
.info-item{border-top:1px solid var(--line);padding:22px 0 26px}
.info-item dd{margin:8px 0 0;font-family:var(--serif);font-size:24px;line-height:1.3}
.info-item dd small{display:block;font-family:var(--sans);font-size:13px;color:#6a7061;margin-top:4px}
.info-item .tbc{margin-left:4px}
.contact-band{background:var(--ink);color:var(--paper)}
.contact-band>.section-wrap{display:grid;grid-template-columns:1.1fr 1fr;gap:12%;align-items:center;padding-top:85px;padding-bottom:85px}
.contact-band .editorial-title em{color:#ccb69e}
.contact-band .contact-list>div{border-color:#ffffff25}.contact-band .contact-list dt{color:#bdc2b5}
.contact-band .tbc{color:#e0b99a}
.contact-band .solid-button{background:var(--paper);color:var(--ink);margin-top:28px}.contact-band .solid-button:hover{background:#ddd8c7}
/* Legal page (reuses the article layout) */
.legal .post-body li{margin:.6em 0}.legal .post-body h2{font-size:32px}
/* 404 */
.notfound{min-height:62svh;display:flex;flex-direction:column;justify-content:center;padding-top:60px;padding-bottom:110px}
.notfound-code{font-family:var(--serif);font-size:clamp(120px,16vw,230px);line-height:.8;letter-spacing:-.05em;color:#d9d3c4;margin:0}
.notfound h1{font-family:var(--serif);font-weight:400;font-size:clamp(46px,4.8vw,74px);letter-spacing:-.035em;line-height:1.05;margin:10px 0 24px}.notfound h1 em{color:var(--rust)}
.notfound-text{font-size:17px;line-height:1.8;margin:0;max-width:520px}.notfound-text--en{color:#6a7061;font-size:15px;margin-top:6px}
.notfound-actions{display:flex;flex-wrap:wrap;align-items:center;gap:18px 26px;margin-top:36px}
.notfound-actions .outline-button{width:auto;margin:0;border-color:var(--line)}.notfound-actions .text-link{margin:0}
@media(max-width:1040px){
.testimonial-grid{grid-template-columns:1fr}.testimonials-heading{grid-template-columns:1fr}
.find-us{grid-template-columns:1fr;gap:50px}
.access{grid-template-columns:1fr;gap:50px}.access-map{position:static}
.info-grid{grid-template-columns:1fr 1fr}
.contact-band>.section-wrap{gap:7%}
}
@media(max-width:740px){
.testimonials{padding-top:70px;padding-bottom:70px}.testimonial{padding:30px 24px 26px}.testimonial blockquote p{font-size:20px}
.room-price strong{font-size:32px}
.map-placeholder,.map-placeholder--tall{aspect-ratio:4/4}
.map-open{left:16px;right:16px;justify-content:space-between}
.practical-page main,.legal-page main,.notfound-page main{padding-top:92px}
.page-masthead{padding-top:50px}.page-masthead h1{font-size:58px}
.info-grid{grid-template-columns:1fr}.info-item dd{font-size:21px}
.contact-band>.section-wrap{display:block;padding-top:65px;padding-bottom:65px}.contact-band>.section-wrap>div+div{margin-top:25px}.contact-band .solid-button{width:100%;gap:15px}
.footer-contact{flex-direction:column;gap:6px}
}
.room-masthead-facts{flex-wrap:wrap;row-gap:14px}
@media(max-width:740px){.room-masthead-facts{gap:14px 28px}}
/* ==========================================================================
   Premium layer: smart header, mobile booking bar, button sweeps, grain,
   marquee, split headings, image break, quote carousel, conference, gallery,
   lightbox, cursor label
   ========================================================================== */
/* Smart header (classes set by site.js) */
.site-header{position:fixed;transition:height .6s var(--ease-out),translate .7s var(--ease-out),color .5s var(--ease-soft),border-color .5s var(--ease-soft)}
.site-header::before{content:"";position:absolute;inset:0;z-index:-1;background:rgba(241,238,229,.84);-webkit-backdrop-filter:blur(16px) saturate(1.25);backdrop-filter:blur(16px) saturate(1.25);opacity:0;transition:opacity .5s var(--ease-soft)}
.site-header.is-stuck{height:76px;color:var(--ink);border-color:rgba(40,46,37,.12)}
.site-header.is-stuck::before{opacity:1}
.site-header.is-hidden{translate:0 -102%}
.brand .brand-mark,.brand-name,.brand-sub{transition:height .6s var(--ease-out),font-size .6s var(--ease-out),opacity .4s,margin .6s var(--ease-out)}
.site-header.is-stuck .brand .brand-mark{height:44px}
.site-header.is-stuck .brand-name{font-size:30px}
.site-header.is-stuck .brand-sub{margin-top:6px}
.site-header.is-stuck .nav-book{border-color:#69705f}
.site-header.is-stuck .main-nav>a{padding:6px 0}
@media(max-width:1040px){.site-header.is-stuck{height:66px}.site-header.is-stuck .main-nav{top:65px;max-height:calc(100svh - 66px)}.site-header.is-stuck .brand .brand-mark{height:38px}.site-header.is-stuck .brand-name{font-size:28px}.site-header.is-stuck .brand-sub{display:none}}
/* Mobile booking bar */
.mobile-book-bar{display:none}
@media(max-width:740px){
.mobile-book-bar{display:flex;gap:8px;position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:30;translate:0 140%;opacity:0;visibility:hidden;transition:translate .7s var(--ease-out),opacity .4s var(--ease-soft),visibility 0s .7s}
.mobile-book-bar.is-visible{translate:none;opacity:1;visibility:visible;transition-delay:0s}
.mobile-book{flex:1;display:flex;justify-content:space-between;align-items:center;background:var(--ink);color:var(--paper);border:0;font:500 14px/1 var(--sans);padding:17px 20px;box-shadow:0 14px 34px rgba(26,31,23,.28)}
.mobile-book span{font-size:18px}
.mobile-wa{display:flex;align-items:center;background:var(--paper);color:var(--ink);border:1px solid var(--line);font-size:13px;padding:0 16px;box-shadow:0 14px 34px rgba(26,31,23,.16)}
.modal-open .mobile-book-bar{opacity:0;visibility:hidden}
}
/* Buttons: a darker layer sweeps in from the left on hover */
.solid-button{position:relative;isolation:isolate;overflow:hidden}
.solid-button::before{content:"";position:absolute;inset:0;z-index:-1;background:rgba(20,24,18,.2);transform:scaleX(0);transform-origin:right;transition:transform .8s var(--ease-out)}
.solid-button:hover::before{transform:scaleX(1);transform-origin:left}
.solid-button:hover{background:var(--rust)}
.restaurant-contact .solid-button:hover,.restaurant-catering .solid-button:hover,.post-cta .solid-button:hover,.contact-band .solid-button:hover,.event-inquiry .solid-button:hover{background:var(--paper)}
.restaurant-contact .solid-button::before,.restaurant-catering .solid-button::before,.post-cta .solid-button::before,.contact-band .solid-button::before,.event-inquiry .solid-button::before{background:rgba(20,24,18,.1)}
.outline-button,.nav-book{position:relative;isolation:isolate;overflow:hidden}
.outline-button::before,.nav-book::before{content:"";position:absolute;inset:0;z-index:-1;background:currentColor;opacity:.1;transform:scaleY(0);transform-origin:bottom;transition:transform .7s var(--ease-out)}
.outline-button:hover::before,.nav-book:hover::before{transform:scaleY(1)}
.nav-book:hover,.light-header .nav-book:hover,.outline-button:hover{background:transparent;color:inherit}
.main-nav .nav-book:hover{color:inherit}
/* Film grain over the whole page, for a printed, photographic feel */
body::after{content:"";position:fixed;inset:0;z-index:80;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .6 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
/* Marquee */
.material-strip.is-marquee{display:block;overflow:hidden;font-family:var(--serif);font-size:clamp(30px,3.2vw,46px);letter-spacing:.02em;padding:24px 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marquee-track{display:flex;width:max-content;animation:marquee 42s linear infinite}
.marquee-group{display:flex;align-items:center}
.marquee-group span{margin-right:.9em}
.material-strip.is-marquee:hover .marquee-track{animation-play-state:paused}
@keyframes marquee{to{translate:-33.3333% 0}}
/* Headings rising line by line (split by site.js) */
.is-split .line{display:block;overflow:hidden;padding:0 .12em .12em 0;margin-bottom:-.12em}
.js-motion .is-split .line-inner{display:block;translate:0 108%;transition:translate 1.35s var(--ease-out);transition-delay:calc(var(--reveal-delay,0ms) + var(--line,0) * 130ms + 80ms)}
.js-motion .reveal.is-visible .is-split .line-inner,.js-motion .is-split.is-visible .line-inner{translate:none}
.js-motion .is-split.reveal,.js-motion .reveal .is-split{filter:none}
/* Home: full-bleed image break */
.image-break{position:relative;isolation:isolate;overflow:hidden;height:80svh;min-height:520px;max-height:880px;display:grid;place-items:center;text-align:center;color:#fffaf0;padding:0 8%}
.image-break-media{position:absolute;inset:-24% 0;z-index:-2;transform:translate3d(0,var(--shift,0px),0);will-change:transform}
.image-break-media img{width:100%;height:100%;object-fit:cover;object-position:50% 70%}
.image-break-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(20,24,18,.25),rgba(20,24,18,.55))}
.image-break-quote{font-family:var(--serif);font-size:clamp(56px,7.4vw,124px);line-height:.98;letter-spacing:-.045em;margin:24px 0 0}
.image-break-quote em{color:#ecd5b8}
/* Home: testimonials as a dark quote carousel */
.testimonials{background:var(--ink);color:var(--paper);border:0;padding:0}
.testimonials>.section-wrap{padding-top:120px;padding-bottom:110px}
.testimonials .testimonials-heading{display:flex;flex-direction:column;align-items:center;text-align:center;gap:22px;margin-bottom:64px}
.testimonials h2 em{color:#ccb69e}
.testimonials .placeholder-tag{color:#e0b99a}
.quote-carousel{max-width:1000px;margin:0 auto;text-align:center}
.quote-carousel::before{content:"\201C";display:block;font-family:var(--serif);font-size:150px;line-height:.55;color:rgba(214,184,155,.35);margin-bottom:6px}
.quote-slides{display:grid}
.quote-slide{grid-area:1/1;margin:0;opacity:0;translate:0 22px;filter:blur(6px);pointer-events:none;transition:opacity .9s var(--ease-soft),translate 1.2s var(--ease-out),filter .9s var(--ease-soft)}
.quote-slide.is-active{opacity:1;translate:none;filter:none;pointer-events:auto}
.quote-slide .testimonial-stars{color:#d6b89b;margin-bottom:26px}
.quote-slide blockquote{margin:0}
.quote-slide blockquote p{font-family:var(--serif);font-size:clamp(28px,3.3vw,48px);line-height:1.25;letter-spacing:-.015em;margin:0;color:var(--paper)}
.quote-slide figcaption{display:flex;justify-content:center;align-items:baseline;flex-wrap:wrap;gap:6px 14px;margin-top:36px;font-size:13px;color:#bdc2b5}
.quote-slide figcaption strong{font-size:15px;font-weight:600;color:var(--paper)}
.quote-controls{display:flex;justify-content:center;align-items:center;gap:28px;margin-top:58px}
.quote-prev,.quote-next{width:56px;height:56px;border-radius:50%;border:1px solid rgba(255,255,255,.28);background:transparent;color:inherit;font-size:18px;cursor:pointer;transition:background .5s var(--ease-soft),color .5s var(--ease-soft),border-color .5s}
.quote-prev:hover,.quote-next:hover{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.quote-dots{display:flex;gap:10px}
.quote-dots button{position:relative;overflow:hidden;width:42px;height:2px;padding:0;border:0;background:rgba(255,255,255,.25);cursor:pointer}
.quote-dots button::before{content:"";position:absolute;inset:-10px 0}
.quote-dots button[aria-current]::after{content:"";position:absolute;inset:0;background:var(--paper);transform-origin:left;animation:dot-progress 7s linear both}
@keyframes dot-progress{from{transform:scaleX(0)}}
/* Home: find us on a tinted band */
.find-us-band{background:#e6e3d8}
.find-us-band .find-us{border-top:0}
.find-us-band .map-placeholder{background:#dde2d6}
/* Events: conference room */
.conference{border-top:1px solid var(--line)}
.conference-intro{display:grid;grid-template-columns:1.1fr 1fr;gap:10%;align-items:end;margin-bottom:70px}
.conference h2{font-family:var(--serif);font-weight:400;font-size:clamp(54px,5.2vw,84px);letter-spacing:-.04em;line-height:1;margin:0}.conference h2 em{color:var(--rust)}
.conference-intro p{font-size:17px;line-height:1.85;margin:0}
.layouts{display:grid;grid-template-columns:1fr 1fr;gap:5%}
.layout-visual{position:relative;overflow:hidden;background:#e6e3d8;aspect-ratio:16/10;display:grid;place-items:center;padding:6%}
.layout-plan{width:100%;height:auto;transition:scale 1.4s var(--ease-out)}
.layout:hover .layout-plan{scale:1.04}
.plan-room{fill:none;stroke:#b2b7a8;stroke-width:1}
.plan-screen{fill:var(--ink)}.plan-stage{fill:#d6cfbf}
.plan-table{fill:#f1eee5;stroke:#8d9383;stroke-width:1}
.plan-seat{fill:var(--rust)}
.js-motion .layout .plan-seat{opacity:0;transition:opacity .9s var(--ease-soft) .5s}
.js-motion .layout.is-visible .plan-seat{opacity:1}
.layout-copy{display:grid;grid-template-columns:1fr auto;column-gap:30px;align-items:start;padding:30px 0;border-bottom:1px solid var(--line)}
.layout-copy .eyebrow{grid-column:1/-1;margin:0}
.layout-copy h3{font-family:var(--serif);font-weight:400;font-size:clamp(34px,3vw,44px);letter-spacing:-.02em;line-height:1.1;margin:14px 0 12px}
.layout-capacity{grid-column:2;grid-row:2/4;display:flex;align-items:center;gap:12px;margin:12px 0 0}
.layout-capacity strong{font-family:var(--serif);font-weight:400;font-size:clamp(68px,6vw,92px);line-height:.8;letter-spacing:-.04em;color:var(--rust)}
.layout-capacity span{font-size:11px;letter-spacing:1.4px;text-transform:uppercase;line-height:1.5;color:#6a7061}
.layout-copy>p:last-child{grid-column:1;font-size:15px;line-height:1.75;color:#4c5245;margin:0}
.equipment{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:24px 40px;margin-top:64px;padding:30px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.equipment .eyebrow{margin:0}
.equipment ul{display:flex;flex-wrap:wrap;gap:24px 64px;list-style:none;margin:0;padding:0}
.equipment li{display:flex;align-items:center;gap:16px;font-family:var(--serif);font-size:28px}
.equipment svg{width:42px;height:42px;fill:none;stroke:var(--rust);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
/* Gallery */
.gallery{padding-top:0}
.gallery-filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:44px}
.gallery-filters button{border:1px solid #b2b7a8;border-radius:40px;background:transparent;color:inherit;font:500 13px/1 var(--sans);padding:12px 20px;cursor:pointer;transition:background .5s var(--ease-soft),color .5s var(--ease-soft),border-color .5s}
.gallery-filters button:hover{border-color:var(--ink)}
.gallery-filters button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.gallery-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:clamp(64px,6.4vw,100px);grid-auto-flow:dense;gap:16px}
.gallery-item{grid-column:span 4;grid-row:span 4}
.gallery-item--wide{grid-column:span 8}
.gallery-item--tall{grid-row:span 8}
.gallery-grid.is-filtered .gallery-item--wide{grid-column:span 4}
.gallery-item[hidden]{display:none}
.gallery-link{position:relative;display:block;width:100%;height:100%;overflow:hidden;background:#dcd8cb}
.gallery-link img{width:100%;height:100%;object-fit:cover;display:block;transition:scale 1.6s var(--ease-out)}
.gallery-link:hover img{scale:1.06}
.gallery-caption{position:absolute;left:0;right:0;bottom:0;display:flex;flex-direction:column;gap:4px;padding:60px 24px 20px;color:#fffaf0;background:linear-gradient(transparent,rgba(20,24,18,.72));opacity:0;translate:0 24px;transition:opacity .6s var(--ease-soft),translate .8s var(--ease-out)}
.gallery-link:hover .gallery-caption,.gallery-link:focus-visible .gallery-caption{opacity:1;translate:none}
@media(hover:none){.gallery-caption{opacity:1;translate:none}}
.gallery-cat{font-size:10px;letter-spacing:1.8px;text-transform:uppercase;opacity:.85}
.gallery-title{font-family:var(--serif);font-size:27px;line-height:1.1}
.gallery-placeholder{height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:8px;padding:22px;border:1px dashed #b2b7a8;background:repeating-linear-gradient(135deg,transparent 0 16px,rgba(178,183,168,.18) 16px 17px)}
.gallery-placeholder .gallery-cat{color:#6a7061}
.gallery-placeholder strong{font-family:var(--serif);font-weight:400;font-size:27px;line-height:1.1}
/* Lightbox */
.lightbox{width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;background:rgba(15,18,13,.94);color:#f1eee5;overflow:hidden}
.lightbox[open]{display:grid;place-items:center}
.lightbox::backdrop{background:transparent;backdrop-filter:none}
.lightbox-figure{margin:0;display:flex;flex-direction:column;align-items:center;gap:18px}
.lightbox-figure img{display:block;max-width:84vw;max-height:78svh;object-fit:contain;box-shadow:0 30px 80px rgba(0,0,0,.35)}
.lightbox-figure figcaption{display:flex;align-items:baseline;flex-wrap:wrap;justify-content:center;gap:6px 22px;font-size:12px;color:#bdc2b5}
.lightbox-title{font-family:var(--serif);font-size:26px;color:#f1eee5}
.lightbox-count{letter-spacing:2px}
.lightbox-close,.lightbox-prev,.lightbox-next{position:absolute;width:56px;height:56px;border-radius:50%;border:1px solid rgba(255,255,255,.25);background:transparent;color:inherit;font-size:20px;cursor:pointer;transition:background .5s var(--ease-soft),color .5s var(--ease-soft)}
.lightbox-close:hover,.lightbox-prev:hover,.lightbox-next:hover{background:#f1eee5;color:var(--ink)}
.lightbox-close{top:24px;right:24px;font-size:28px;font-weight:300}
.lightbox-prev{left:24px;top:50%;margin-top:-28px}.lightbox-next{right:24px;top:50%;margin-top:-28px}
/* Cursor label over photos */
.cursor-label{position:fixed;left:0;top:0;z-index:90;width:86px;height:86px;margin:-43px 0 0 -43px;border-radius:50%;background:var(--paper);color:var(--ink);display:grid;place-items:center;font:600 11px/1 var(--sans);letter-spacing:1.6px;text-transform:uppercase;pointer-events:none;scale:0;transition:scale .55s var(--ease-out)}
.cursor-label.is-active{scale:1}
@media(max-width:1040px){
.conference-intro{grid-template-columns:1fr;gap:26px;margin-bottom:50px}
.layouts{grid-template-columns:1fr;gap:50px}
.gallery-item,.gallery-item--wide{grid-column:span 6}
.gallery-item--tall{grid-column:span 6;grid-row:span 8}
}
@media(max-width:740px){
.image-break{height:64svh;min-height:420px}.image-break-quote{font-size:52px}
.testimonials>.section-wrap{padding-top:80px;padding-bottom:80px}
.quote-carousel::before{font-size:110px}
.quote-slide blockquote p{font-size:26px}
.quote-controls{gap:18px;margin-top:44px}
.layout-copy{grid-template-columns:1fr}
.layout-capacity{grid-column:1;grid-row:auto;margin:6px 0 16px}
.equipment{flex-direction:column;align-items:flex-start}
.equipment ul{flex-direction:column;gap:18px}
.gallery-grid{grid-template-columns:1fr 1fr;grid-auto-rows:120px;gap:10px}
.gallery-item,.gallery-item--wide,.gallery-grid.is-filtered .gallery-item--wide{grid-column:span 1;grid-row:span 2}
.gallery-item--wide{grid-column:span 2}
.gallery-item--tall{grid-row:span 3}
.gallery-title,.gallery-placeholder strong{font-size:21px}
.gallery-caption{padding:40px 14px 12px}
.lightbox-figure img{max-width:94vw}
.lightbox-prev,.lightbox-next{top:auto;bottom:24px;margin:0}
.lightbox-close{top:14px;right:14px}
}
@media(prefers-reduced-motion:reduce){.marquee-track{animation:none}.quote-dots button[aria-current]::after{animation:none}}
.nav-book{white-space:nowrap}
@media(max-width:1200px) and (min-width:1041px){.main-nav{gap:14px;font-size:13px}.site-header{gap:22px}.nav-book{padding:10px 14px;gap:12px}}
/* Gallery mosaic: tile order in galerie/index.html is composed to fill 7 rows exactly, so no auto re-packing on desktop */
.gallery-grid{grid-auto-flow:row}
.gallery-grid.is-filtered{grid-auto-flow:row dense}
@media(max-width:1040px){.gallery-grid{grid-auto-flow:row dense}}
@media(max-width:740px){.gallery-item--tall{grid-row:span 2}}
@media(max-width:740px){.gallery-grid:not(.is-filtered) .gallery-item:last-child{grid-column:span 2}}
/* Clickable framed photos: invisible overlay link (home) or lightbox zoom (inner pages) */
.image-link{position:absolute;inset:0;z-index:2}
.category-image,.room-masthead-image,.space-photo,.post-hero-frame{cursor:zoom-in}
.js-motion .img-reveal.is-shown:hover img,.room-image:hover img,.feature-photo:hover img,.spirit-visual:hover img{scale:1.04;transition:scale 1.4s var(--ease-out)}
.cursor-label{width:98px;height:98px;margin:-49px 0 0 -49px;letter-spacing:1.2px}
.lightbox.is-single .lightbox-prev,.lightbox.is-single .lightbox-next{display:none}
/* ==========================================================================
   Premium layer 2: full-screen mobile menu, booking drawer, signature footer
   ========================================================================== */
.nav-extra{display:none}
@media(max-width:1040px){
.main-nav{display:flex;position:fixed;inset:0;height:100svh;max-height:none;z-index:1;flex-direction:column;justify-content:flex-start;align-items:stretch;gap:0;padding:clamp(96px,15svh,140px) 8% calc(28px + env(safe-area-inset-bottom));overflow-y:auto;background:var(--ink);color:var(--paper);visibility:hidden;clip-path:inset(0 0 100% 0);transition:clip-path .9s var(--ease-out),visibility 0s linear .9s}
.main-nav.is-open{visibility:visible;clip-path:inset(0);transition:clip-path .9s var(--ease-out),visibility 0s}
.site-header.is-stuck .main-nav{top:0;max-height:none}
.main-nav>a{font-family:var(--serif);font-size:clamp(34px,8.6vw,50px);line-height:1.1;letter-spacing:-.02em;padding:5px 0;white-space:normal}
.main-nav>a[aria-current=page]{color:#d6b89b}
.main-nav .lang-switch{align-self:flex-start;font-family:var(--sans);font-size:13px;letter-spacing:2px;border:0;padding:10px 0;margin-top:8px;opacity:.7}
.main-nav .nav-book{margin-top:22px;border-color:rgba(255,255,255,.35);padding:16px 20px}
.nav-extra{display:flex;flex-direction:column;gap:6px;margin-top:auto;padding-top:34px;font-size:15px}
.nav-extra .eyebrow{color:#bdc2b5;margin:0 0 6px;padding-top:24px;border-top:1px solid rgba(255,255,255,.15)}
.nav-extra span{color:#bdc2b5}
.brand,.menu-toggle{position:relative;z-index:2}
.menu-open .site-header{color:var(--paper);border-color:transparent}
.menu-open .site-header::before{opacity:0}
.menu-open,.menu-open body{overflow:hidden}
}
@media(max-width:1040px) and (prefers-reduced-motion:no-preference){
.main-nav.is-open>*{animation:nav-item-in .9s var(--ease-out) backwards}
.main-nav.is-open>*:nth-child(1){animation-delay:.2s}.main-nav.is-open>*:nth-child(2){animation-delay:.25s}.main-nav.is-open>*:nth-child(3){animation-delay:.3s}
.main-nav.is-open>*:nth-child(4){animation-delay:.35s}.main-nav.is-open>*:nth-child(5){animation-delay:.4s}.main-nav.is-open>*:nth-child(6){animation-delay:.45s}
.main-nav.is-open>*:nth-child(7){animation-delay:.5s}.main-nav.is-open>*:nth-child(8){animation-delay:.55s}.main-nav.is-open>*:nth-child(9){animation-delay:.6s}.main-nav.is-open>*:nth-child(10){animation-delay:.65s}
}
/* Booking drawer */
.drawer{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;background:transparent;overflow:hidden;color:var(--ink)}
.drawer[open]{animation:none}
.drawer::backdrop{background:rgba(20,24,18,.55);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.drawer-panel{position:absolute;top:0;right:0;bottom:0;width:min(600px,100%);display:flex;flex-direction:column;background:var(--paper);box-shadow:-30px 0 80px rgba(0,0,0,.18)}
@media(prefers-reduced-motion:no-preference){
.drawer[open]::backdrop{animation:fade-in .6s var(--ease-soft)}
.drawer[open] .drawer-panel{animation:drawer-in .9s var(--ease-out)}
.drawer.is-closing .drawer-panel{animation:drawer-out .42s var(--ease-soft) forwards}
.drawer.is-closing::backdrop{animation:fade-out .42s var(--ease-soft) forwards}
}
@keyframes drawer-in{from{translate:100% 0}}
@keyframes drawer-out{to{translate:100% 0}}
@keyframes fade-out{to{opacity:0}}
.drawer-head{position:relative;padding:34px 40px 0;border-bottom:1px solid var(--line)}
.drawer-head h2{font-family:var(--serif);font-weight:400;font-size:50px;letter-spacing:-.035em;line-height:1;margin:16px 0 22px}.drawer-head h2 em{color:var(--rust)}
.drawer-close{position:absolute;top:22px;right:24px;width:48px;height:48px;border-radius:50%;border:1px solid var(--line);background:transparent;color:inherit;font-size:26px;font-weight:300;line-height:1;cursor:pointer;transition:background .4s var(--ease-soft),color .4s var(--ease-soft),rotate .7s var(--ease-out)}
.drawer-close:hover{background:var(--ink);color:var(--paper);rotate:90deg}
.drawer-tabs{display:flex;gap:26px;overflow-x:auto;scrollbar-width:none;margin:0 -40px;padding:0 40px}
.drawer-tabs::-webkit-scrollbar{display:none}
.drawer-tabs button{position:relative;flex-shrink:0;background:none;border:0;padding:14px 0 16px;font:500 14px/1 var(--sans);color:#6a7061;cursor:pointer;transition:color .4s}
.drawer-tabs button::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--rust);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease-out)}
.drawer-tabs button:hover,.drawer-tabs button[aria-selected=true]{color:var(--ink)}
.drawer-tabs button[aria-selected=true]::after{transform:scaleX(1)}
.drawer-body{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:28px 40px 40px}
.drawer-form{margin:0}
.drawer-form[hidden]{display:none}
@media(prefers-reduced-motion:no-preference){.drawer-form:not([hidden]){animation:menu-in .7s var(--ease-out) both}}
.drawer-intro{font-size:15px;line-height:1.7;color:#4c5245;margin:0 0 24px}
.drawer .field{display:block;margin:0 0 18px;font-size:13px}
.field-label{display:block;font-size:11px;letter-spacing:1.4px;text-transform:uppercase;color:#6a7061;margin-bottom:8px}
.field-label em{text-transform:none;letter-spacing:0;font-style:normal;color:#9aa08f}
.drawer .field input,.drawer .field select,.drawer .field textarea{display:block;width:100%;margin:0;background:#f7f5ef;border:1px solid #cfd1c5;padding:13px 14px;font:inherit;font-size:15px;color:var(--ink);border-radius:0;transition:border-color .3s,background .3s}
.drawer .field textarea{resize:vertical;min-height:84px}
.drawer .field input:focus,.drawer .field select:focus,.drawer .field textarea:focus{border-color:var(--ink);background:#fff;outline:none}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.field-row>.field:only-child{grid-column:1/-1}
.drawer .field[hidden]{display:none}
.choices,.checks{border:0;margin:0 0 20px;padding:0;min-width:0}
.choices{display:grid;gap:10px}
.choices--two{grid-template-columns:1fr 1fr}
.drawer .choice{position:relative;display:flex;align-items:center;gap:14px;border:1px solid #cfd1c5;background:#f7f5ef;padding:12px 40px 12px 12px;cursor:pointer;transition:border-color .35s,background .35s,box-shadow .35s}
.choices--two .choice{flex-direction:column;align-items:stretch;gap:10px;padding-right:12px}
.choice input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px;margin:0}
.choice:hover{border-color:#8d9383}
.choice:has(input:checked){border-color:var(--ink);background:#fff;box-shadow:inset 0 0 0 1px var(--ink)}
.choice:has(input:focus-visible){outline:2px solid var(--rust);outline-offset:3px}
.choice-thumb{width:68px;height:54px;object-fit:cover;flex-shrink:0}
.choices--two .choice-thumb{width:100%;height:90px}
.choice-text{display:flex;flex-direction:column;gap:3px;min-width:0}
.choice-title{font-family:var(--serif);font-size:23px;line-height:1.1}
.choice-meta{font-size:12px;line-height:1.4;color:#6a7061}
.choice::after{content:"";position:absolute;top:12px;right:12px;width:16px;height:16px;box-sizing:border-box;border-radius:50%;border:1px solid #9aa08f;background:#fff;transition:border .35s var(--ease-out)}
.choice:has(input:checked)::after{border:5px solid var(--rust)}
.drawer .check{display:flex;align-items:center;gap:10px;font-size:14px;margin:4px 0 12px;cursor:pointer}
.drawer .check input{display:inline-block;width:18px;height:18px;margin:0;padding:0;accent-color:var(--rust);flex-shrink:0}
.checks{display:flex;flex-wrap:wrap;gap:0 26px}.checks legend{width:100%;float:left}
.estimate:empty{display:none}
.estimate{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:2px 14px;background:#e6e3d8;padding:14px 16px;margin:-4px 0 20px;font-size:13px}
.estimate strong{font-family:var(--serif);font-weight:500;font-size:28px;line-height:1}
.estimate small{grid-column:1/-1;color:#6a7061;font-size:11px}
.drawer-form .solid-button{width:100%;margin-top:8px;justify-content:space-between}
.drawer .form-note{font-size:12px;line-height:1.6;color:#6a7061;margin:14px 0 0}
.booking-status{font-size:13px;margin:10px 0 4px}.booking-status:empty{display:none}
.whatsapp-fallback{font-size:13px;text-decoration:underline;text-underline-offset:4px}
@media(max-width:740px){
.drawer-head{padding:24px 22px 0}.drawer-head h2{font-size:38px;margin:12px 0 16px}
.drawer-close{top:14px;right:14px;width:44px;height:44px}
.drawer-tabs{margin:0 -22px;padding:0 22px;gap:22px}
.drawer-body{padding:22px 22px calc(30px + env(safe-area-inset-bottom))}
.field-row{gap:10px}.choices--two .choice-thumb{height:62px}.choice-title{font-size:20px}
}
/* Signature footer */
.footer{position:relative;overflow:hidden;background:var(--ink);color:var(--paper);border-top:0;padding:96px 6% 0}
.footer-signature{width:100%;display:grid;grid-template-columns:1.3fr 1fr;gap:8%;align-items:end;padding-bottom:70px;margin-bottom:36px;border-bottom:1px solid rgba(255,255,255,.14)}
.footer-invite{font-family:var(--serif);font-size:clamp(54px,6.2vw,100px);line-height:1;letter-spacing:-.04em;margin:0}.footer-invite em{color:#d6b89b}
.footer-direct{list-style:none;margin:0;padding:0}
.footer-direct li{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:15px 0;border-top:1px solid rgba(255,255,255,.14);font-size:16px}
.footer-direct span{font-size:11px;letter-spacing:1.6px;text-transform:uppercase;color:#bdc2b5}
.footer-direct a{transition:color .4s}.footer-direct a:hover{color:#d6b89b}
.footer-links a{opacity:.8;transition:opacity .3s}.footer-links a:hover{opacity:1}
.footer-place{color:#bdc2b5}
.footer-meta{border-color:rgba(255,255,255,.14);color:#9ba293}
.footer-contact{display:none}
.footer-wordmark{width:100%;margin:46px 0 0;display:flex;align-items:flex-end;justify-content:center;gap:.06em;font-family:var(--serif);font-size:clamp(90px,21vw,340px);line-height:.74;letter-spacing:-.05em;color:rgba(241,238,229,.09);white-space:nowrap;user-select:none;pointer-events:none;translate:0 .08em}
.footer-wordmark .brand-mark{height:.74em;margin-bottom:.04em}
@media(max-width:1040px){.footer-signature{grid-template-columns:1fr;gap:40px}}
@media(max-width:740px){.footer{padding:64px 7% 0}.footer-invite{font-size:50px}.footer-direct li{flex-direction:column;gap:4px}.footer-wordmark{font-size:23vw;margin-top:30px}}
/* Count-up figures keep their width while running */
.count{display:inline-block;font-variant-numeric:tabular-nums}
/* The signature footer is always dark (overrides an old light restaurant-page footer rule) */
.restaurant-page .footer,.footer{background:var(--ink)}
/* Audit fixes */
.gallery-page main{padding-top:112px}
@media(max-width:740px){.gallery-page main{padding-top:92px}}
.rooms .home-room-price{color:#d6b89b}
/* Dark section directly above the dark footer: add a hairline so the two blocks read as separate */
.restaurant-contact + .footer,.contact-band + .footer,.event-inquiry + .footer,.post-cta + .footer,.testimonials + .footer{border-top:1px solid rgba(255,255,255,.12)}
.footer>.footer-links{flex:1;display:flex;flex-wrap:wrap;justify-content:center;gap:10px 22px}
@media(max-width:740px){.footer>.footer-links{justify-content:flex-start}}
/* FAQ: margins must not collapse out of <details>, otherwise the measured height is wrong and the animation ends with a jump */
.faq-item{display:flow-root}
.faq-item p{margin:0;padding:0 0 26px}
.faq-item summary{margin-bottom:0}
/* ==========================================================================
   Testimonials: staggered deck on a seamless gradient (replaces the quote carousel)
   ========================================================================== */
.testimonials{position:relative;isolation:isolate;background:none;color:var(--ink);border:0}
/* Soft shaped band instead of a hard edge: a pseudo-element so the background-tone script leaves it alone */
.testimonials::before{content:"";position:absolute;inset:0;z-index:-1;background:#e6e3d8}
.testimonials>.section-wrap{padding-top:150px;padding-bottom:140px}
.testimonials h2 em{color:var(--rust)}
.testimonials .placeholder-tag{color:var(--rust)}
.stagger{--card:clamp(250px,25vw,330px);position:relative;height:calc(var(--card) + 150px);margin-top:26px}
.stagger-deck{position:absolute;inset:0}
.stagger-card{position:absolute;left:50%;top:50%;width:var(--card);height:var(--card);margin:calc(var(--card) / -2) 0 0 calc(var(--card) / -2);
 display:flex;flex-direction:column;box-sizing:border-box;padding:26px 26px 30px;cursor:pointer;
 background:#f1eee5;color:var(--ink);border:1px solid #cfc8b8;
 clip-path:polygon(40px 0,100% 0,100% 100%,0 100%,0 40px);
 transition:opacity .75s var(--ease-soft),translate .75s var(--ease-out),rotate .75s var(--ease-out),background .6s var(--ease-soft),color .6s var(--ease-soft),border-color .6s}
.stagger-card.is-centre{background:var(--ink);color:var(--paper);border-color:var(--ink);cursor:default;box-shadow:0 22px 46px rgba(40,46,37,.22)}
.stagger-mark{display:block;width:40px;height:46px;flex-shrink:0;background:var(--rust);
 -webkit-mask:url(/assets/logo-mark-right.webp) center/contain no-repeat;mask:url(/assets/logo-mark-right.webp) center/contain no-repeat}
.stagger-card.is-centre .stagger-mark{background:#d6b89b}
.stagger-card blockquote{margin:18px 0 0;flex:1;display:flex;align-items:center}
.stagger-card blockquote p{margin:0;font-family:var(--serif);font-size:clamp(19px,1.5vw,23px);line-height:1.35;letter-spacing:-.01em}
.stagger-by{display:flex;flex-direction:column;gap:2px;font-size:12px;color:#6a7061}
.stagger-card.is-centre .stagger-by{color:#bdc2b5}
.stagger-by strong{font-size:14px;font-weight:600;color:var(--ink)}
.stagger-card.is-centre .stagger-by strong{color:var(--paper)}
.stagger-controls{position:absolute;left:50%;bottom:0;translate:-50% 0;display:flex;gap:12px;z-index:30}
.stagger-controls button{width:56px;height:56px;border-radius:50%;border:1px solid #b2b7a8;background:transparent;color:var(--ink);font-size:18px;cursor:pointer;transition:background .5s var(--ease-soft),color .5s var(--ease-soft),border-color .5s}
.stagger-controls button:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
@media(max-width:740px){
.testimonials>.section-wrap{padding-top:100px;padding-bottom:96px}
.stagger{--card:min(78vw,300px);height:calc(var(--card) + 130px)}
.stagger-card{padding:22px 22px 26px}
.stagger-controls button{width:50px;height:50px}
}
@media(prefers-reduced-motion:reduce){.stagger-card{transition:none}}
/* Tablet: the staggered deck must never create horizontal scrolling (clip, not hidden, so the centre card keeps its shadow vertically) */
.stagger{overflow-x:clip;overflow-clip-margin:30px}
/* Global guard: nothing may scroll the page sideways */
body{overflow-x:clip}
/* Deck: cards tilt in 3D toward the cursor (transform) while layout uses translate/rotate */
.stagger-deck{perspective:1200px}
.stagger-card{will-change:transform,translate,opacity;touch-action:pan-y}
.stagger-card.is-centre{cursor:grab}
.stagger-card:active{cursor:grabbing}
/* Testimonials: a secondary section should not eat a whole screen on large displays */
.testimonials>.section-wrap{padding-top:96px;padding-bottom:88px}
.testimonials .testimonials-heading{gap:16px;margin-bottom:40px}
.stagger{--card:clamp(250px,21vw,300px);height:calc(var(--card) + 112px);margin-top:18px}
@media(max-width:740px){.testimonials>.section-wrap{padding-top:76px;padding-bottom:72px}.stagger{--card:min(78vw,300px);height:calc(var(--card) + 120px)}}
/* Keep the arrows clear of the two neighbour cards, without adding height back */
.stagger{height:calc(var(--card) + 142px)}
.testimonials>.section-wrap{padding-bottom:70px}
@media(max-width:740px){.stagger{height:calc(var(--card) + 132px)}.testimonials>.section-wrap{padding-bottom:60px}}
.stagger{height:calc(var(--card) + 154px)}
.testimonials>.section-wrap{padding-bottom:58px}
@media(max-width:740px){.stagger{height:calc(var(--card) + 142px)}.testimonials>.section-wrap{padding-bottom:52px}}
/* ==========================================================================
   L'hôtel + Entreprises pages
   ========================================================================== */
.hotel-page main,.business-page main{padding-top:112px}
/* Story */
.story{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center;padding-top:40px}
.story-visual{position:relative;overflow:hidden;height:560px}
.story-visual img{position:absolute;top:-11%;height:122%;width:100%;object-fit:cover;transform:translate3d(0,var(--shift,0px),0);will-change:transform}
.story-copy h2{font-family:var(--serif);font-weight:400;font-size:clamp(44px,4.2vw,66px);letter-spacing:-.035em;line-height:1.05;margin:22px 0 28px}.story-copy h2 em{color:var(--rust)}
.story-copy p{font-size:16px;line-height:1.85;margin:0 0 18px;max-width:520px}
/* Values */
.values{border-top:1px solid var(--line)}
.value-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6%;margin:56px 0 0}
.value-grid article{border-top:1px solid var(--line);padding-top:26px}
.value-grid h3{font-family:var(--serif);font-weight:400;font-size:30px;line-height:1.15;margin:16px 0 14px}
.value-grid p{font-size:15px;line-height:1.8;color:#4c5245;margin:0}
.hotel-figures{display:grid;grid-template-columns:repeat(4,1fr);gap:20px 4%;margin:70px 0 0;padding:30px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.hotel-figures dt{font-size:11px;letter-spacing:1.6px;text-transform:uppercase;color:#6a7061}
.hotel-figures dd{margin:8px 0 0;font-family:var(--serif);font-size:clamp(44px,4vw,64px);line-height:1;letter-spacing:-.03em;color:var(--rust)}
/* Team */
.team{border-top:1px solid var(--line)}
.team .placeholder-tag{margin-top:22px}
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;margin-top:48px}
.team-card h3{font-family:var(--serif);font-weight:400;font-size:24px;margin:18px 0 6px}
.team-card p{font-size:13px;color:#6a7061;margin:0}
.team-photo{aspect-ratio:3/4;display:grid;place-items:center;border:1px dashed #b2b7a8;background:repeating-linear-gradient(135deg,transparent 0 16px,rgba(178,183,168,.18) 16px 17px)}
/* Offers */
.offer-grid{display:grid;grid-template-columns:1fr 1fr;gap:5% 6%;margin-top:56px}
.offer{border-top:1px solid var(--line);padding-top:26px;display:flex;flex-direction:column}
.offer h3{font-family:var(--serif);font-weight:400;font-size:clamp(30px,2.6vw,38px);line-height:1.12;margin:16px 0 18px}
.offer ul{list-style:none;margin:0 0 24px;padding:0;flex:1}
.offer li{position:relative;padding:9px 0 9px 22px;font-size:15px;line-height:1.7;border-top:1px solid #cfd1c580}
.offer li::before{content:"";position:absolute;left:0;top:19px;width:8px;height:1px;background:var(--rust)}
.offer .outline-button{margin-top:0;border-color:#b2b7a8}
.offer .outline-button:hover{color:inherit}
/* Why */
.why{background:#e6e3d8}
.why>.section-wrap{display:grid;grid-template-columns:1fr 1fr;gap:9%;align-items:center;padding-top:90px;padding-bottom:90px}
.why p{font-size:16px;line-height:1.85;margin:24px 0 0;max-width:460px}
.why-list{list-style:none;margin:0;padding:0}
.why-list li{display:flex;flex-direction:column;gap:4px;padding:16px 0;border-top:1px solid #c7c9bc}
.why-list strong{font-size:16px;font-weight:600}
.why-list span{font-size:14px;line-height:1.7;color:#5c6254}
/* Partners */
.partners{text-align:center;border-top:1px solid var(--line)}
.partners-title{font-family:var(--serif);font-weight:400;font-size:clamp(30px,3vw,42px);letter-spacing:-.02em;margin:0 0 18px}
.partner-grid{list-style:none;display:grid;grid-template-columns:repeat(5,1fr);gap:18px;margin:38px 0 0;padding:0}
.partner-grid li{aspect-ratio:5/2;display:grid;place-items:center;border:1px dashed #b2b7a8}
@media(max-width:1040px){
.story{grid-template-columns:1fr;gap:36px}.story-visual{height:380px}
.value-grid{grid-template-columns:1fr;gap:30px}
.hotel-figures{grid-template-columns:1fr 1fr;gap:26px 5%}
.team-grid{grid-template-columns:1fr 1fr}
.offer-grid{grid-template-columns:1fr;gap:40px}
.why>.section-wrap{grid-template-columns:1fr;gap:34px}
.partner-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:740px){
.hotel-page main,.business-page main{padding-top:92px}
.story-visual{height:300px}.story-copy h2{font-size:40px}
.hotel-figures dd{font-size:42px}
.team-grid{gap:18px}.team-card h3{font-size:21px}
.offer h3{font-size:28px}
.why>.section-wrap{padding-top:64px;padding-bottom:64px}
.partner-grid{grid-template-columns:1fr 1fr}
}

/* --- Cadres d'images remplis par des visuels d'illustration distants --- */
.team-photo.has-photo{border:0;background:#dcd8cb;overflow:hidden}
.team-photo img{width:100%;height:100%;object-fit:cover;display:block}
.partner-grid li img{width:100%;height:100%;object-fit:contain;display:block}

/* Galerie : les photos derivent dans leur tuile au scroll, comme les visuels de l'accueil.
   L'image deborde du cadre (118% de hauteur, remontee de 9%) pour avoir de la marge de course ;
   site.js ecrit --shift, borne a cette marge. `scale` reste libre pour le zoom au survol. */
.gallery-link img{position:absolute;left:0;top:-9%;width:100%;height:118%;object-fit:cover;display:block;transform:translate3d(0,var(--shift,0px),0);will-change:transform;transition:scale 1.6s var(--ease-out)}

/* Portraits de l'equipe : meme zoom au survol que les autres photos cadrees */
@media (hover:hover) and (prefers-reduced-motion:no-preference){
.team-photo.has-photo img{transition:scale 1.4s var(--ease-out)}
.team-photo.has-photo:hover img{scale:1.04}
}

/* Entreprises : chaque offre ouvre sur une photo, qui remplace le filet du haut */
.offer:has(.space-photo){border-top:0;padding-top:0}
.offer .space-photo{aspect-ratio:3/2;margin:0 0 22px}

/* Entreprises : bande de logos partenaires (logos d'exemple locaux en SVG) */
.partner-grid li:has(img){border:0}
.partner-grid li img{opacity:.72;transition:opacity .4s var(--ease-out)}
.partner-grid li img:hover{opacity:1}

/* Questionnaire (sept. 2026) : tarifs de la salle, conditions traiteur, partenaires en toutes lettres */
.restaurant-phone{display:block}.restaurant-phone+.restaurant-phone{margin-top:6px}
.restaurant-catering .catering-terms{margin:22px 0 0;font-size:14px!important;color:#c5ccbc}
.rate-list{margin:26px 0 0;border-top:1px solid rgba(255,255,255,.16)}
.rate-list>div{display:flex;justify-content:space-between;align-items:baseline;gap:8px 20px;flex-wrap:wrap;padding:13px 0;border-bottom:1px solid rgba(255,255,255,.16)}
.rate-list dt{font-size:11px;letter-spacing:1.6px;text-transform:uppercase;color:#bdc2b5}
.rate-list dd{margin:0;font-family:var(--serif);font-size:22px}
.partner-grid--names{grid-template-columns:repeat(3,1fr)}
.partner-grid--names li{aspect-ratio:auto;min-height:118px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:18px 16px;border:1px solid var(--line)}
.partner-grid--names strong{font-family:var(--serif);font-weight:400;font-size:clamp(26px,2.4vw,34px);letter-spacing:.02em;line-height:1}
.partner-grid--names span{font-size:12px;line-height:1.5;color:#6a7061}
@media(max-width:740px){.partner-grid--names{grid-template-columns:1fr 1fr}.partner-grid--names li{min-height:104px}}

/* Restaurant : vraie carte (liste avec prix, sans photos de plats) */
.menu-list{row-gap:0}
.menu-list .menu-item{padding:17px 0;border-top:1px solid #b2b7a877}
.menu-item-head{display:flex;align-items:baseline;gap:14px}
.menu-item-head h4{margin:0;font-size:17px;font-weight:500;line-height:1.4}
.menu-item-head::after{content:'';order:1;flex:1;min-width:20px;border-bottom:1px dotted #9da294;transform:translateY(-4px)}
.menu-price{order:2;flex-shrink:0;font-family:var(--serif);font-size:21px;white-space:nowrap}
.menu-list .menu-item p{margin:5px 0 0;font-size:13.5px;line-height:1.65;color:#606655;max-width:44ch}
.menu-signature{display:inline-block;margin-left:10px;padding:3px 8px 2px;border:1px solid var(--rust);border-radius:20px;color:var(--rust);font-size:10px;letter-spacing:1.4px;text-transform:uppercase;vertical-align:2px}
.menu-sides{margin:30px 0 0;padding-top:20px;border-top:1px solid #b2b7a8;font-size:14px;line-height:1.8;color:#5c6254}
@media(max-width:740px){.menu-item-head h4{font-size:16px}.menu-price{font-size:19px}}
.partner-grid--names li.partner-logo{gap:12px}
.partner-grid--names li.partner-logo img{width:auto;height:74px;max-width:100%;object-fit:contain;opacity:1}
@media(max-width:740px){.partner-grid--names li.partner-logo img{height:58px}}
.partner-grid--names li.partner-logo{border:1px solid var(--line)}
/* Accueil : source des avis Google sous le titre */
.review-source{margin:0;font-size:13px;letter-spacing:.3px;color:#5c6254}
.review-source a{text-decoration:underline;text-underline-offset:3px;color:var(--rust)}
/* Testimonials with real (longer) reviews: portrait cards, smaller type for long quotes */
.stagger{--card-h:calc(var(--card) * 1.3);height:calc(var(--card-h) + 154px)}
.stagger-card{height:var(--card-h);margin-top:calc(var(--card-h) / -2)}
.stagger-card.is-long blockquote p{font-size:clamp(17px,1.35vw,20px)}
@media(max-width:740px){.stagger{height:calc(var(--card-h) + 142px)}}
/* Plan simplifié (accueil, infos pratiques) : lieux placés d'après leurs coordonnées réelles */
.map-placeholder-note{left:auto;right:18px}
.map-route{fill:none;stroke:var(--rust);stroke-width:3;stroke-linecap:round;stroke-dasharray:2 8}
.map-route-label{font-family:var(--sans);font-size:14px;font-weight:600;fill:var(--rust);paint-order:stroke;stroke:#dfe3d8;stroke-width:5px;stroke-linejoin:round}
.map-place text{paint-order:stroke;stroke:#dfe3d8;stroke-width:4px;stroke-linejoin:round}
.map-compass path{fill:var(--ink)}
.map-compass text,.map-scale text{font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:1px;fill:var(--ink)}
.map-scale path{fill:none;stroke:var(--ink);stroke-width:1.5}
.map-pin text{paint-order:stroke;stroke:#dfe3d8;stroke-width:5px;stroke-linejoin:round}
.map-sketch{overflow:visible}

/* ---------- Room service (/commander/): menu as a shop, basket bar, basket panel ---------- */
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.order-page .mobile-book-bar{display:none}
.order-page main{padding-top:112px}
.order-masthead{padding-bottom:26px}
.order-steps{list-style:none;padding:0;margin:34px 0 0;display:flex;flex-wrap:wrap;gap:12px 28px;font-size:13px;color:#5c6254}
.order-steps li{display:flex;align-items:center;gap:10px}
.order-steps span{display:inline-grid;place-items:center;width:26px;height:26px;border:1px solid var(--rust);border-radius:50%;color:var(--rust);font-size:12px;font-weight:600}
.order{padding-top:0;padding-bottom:150px}
.order-noscript{padding:16px 18px;border:1px solid var(--rust);margin-bottom:20px;font-size:14px}
.order-noscript a{text-decoration:underline}
.order-cats{position:sticky;top:0;z-index:15;display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;background:var(--paper);padding:14px 0;border-bottom:1px solid rgba(40,46,37,.1);transition:top .45s var(--ease-out)}
.order-cats::-webkit-scrollbar{display:none}
body:has(.site-header.is-stuck:not(.is-hidden)) .order-cats{top:76px}
.order-cats a{flex:none;padding:9px 16px;border:1px solid #cfd1c5;border-radius:40px;font-size:13px;white-space:nowrap;transition:background .25s,color .25s,border-color .25s}
.order-cats a:hover{border-color:var(--ink)}
.order-cats a.is-active{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.order-group{padding-top:38px;scroll-margin-top:150px}
.order-group h2{font-family:var(--serif);font-size:42px;letter-spacing:-.02em;line-height:1;margin-bottom:16px}
.order-list{list-style:none;margin:0;padding:0;border-bottom:1px solid #d6d4c8}
.order-item{display:grid;grid-template-columns:1fr auto;align-items:center;gap:5px 22px;padding:18px 0;border-top:1px solid #d6d4c8}
.order-item h3{font-family:var(--serif);font-weight:500;font-size:22px;line-height:1.2;letter-spacing:-.005em}
.order-item h3 .menu-signature{vertical-align:3px}
.order-item p{font-size:13px;line-height:1.55;color:#6a7061;margin-top:4px}
.order-price{grid-column:1;font-size:13px;font-weight:600;letter-spacing:.02em;transition:color .25s}
.order-item.is-picked .order-price{color:var(--rust)}
.qty{grid-column:2;grid-row:1 / span 2}
.qty-add{width:44px;height:44px;border-radius:50%;border:1px solid var(--ink);background:transparent;font-size:22px;line-height:1;display:grid;place-items:center;transition:background .25s,color .25s}
.qty-add:hover{background:var(--ink);color:var(--paper)}
.qty-stepper{display:flex;align-items:center;height:44px;border:1px solid var(--ink);border-radius:40px}
.qty-stepper button{width:40px;height:42px;background:transparent;color:inherit;font-size:19px;line-height:1;border-radius:40px}
.qty-stepper output{min-width:22px;text-align:center;font-weight:600;font-size:14px}
.order-item .qty-stepper{background:var(--ink);color:var(--paper)}
.qty-add[hidden],.qty-stepper[hidden]{display:none}
.order-terms{margin-top:40px;font-size:13px;line-height:1.7;color:#6a7061;max-width:620px}
@media (min-width:1041px){.order-list{display:grid;grid-template-columns:1fr 1fr;column-gap:70px}}
@media (max-width:740px){
 .order-group h2{font-size:36px}
 .order-item h3{font-size:20px}
 .order-group{scroll-margin-top:130px}
 body:has(.site-header.is-stuck:not(.is-hidden)) .order-cats{top:66px}
 .order-page main{padding-top:92px}
}

.order-bar{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:30;translate:0 140%;opacity:0;visibility:hidden;transition:translate .6s var(--ease-out),opacity .3s,visibility 0s .6s}
.order-bar.is-visible{translate:0 0;opacity:1;visibility:visible;transition:translate .6s var(--ease-out),opacity .3s}
.modal-open .order-bar{opacity:0;visibility:hidden}
.order-bar-button{width:100%;display:grid;grid-template-columns:1fr auto;align-items:center;column-gap:14px;padding:0 0 0 20px;min-height:60px;background:var(--ink);color:var(--paper);font-size:14px;text-align:left;box-shadow:0 18px 40px -18px rgba(24,28,22,.7)}
.order-bar-count{grid-row:1;align-self:end;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:#c9c8b8}
.order-bar-total{grid-row:2;align-self:start;font-weight:600;white-space:nowrap}
.order-bar-cta{grid-column:2;grid-row:1 / span 2;white-space:nowrap;align-self:stretch;display:flex;align-items:center;gap:10px;padding:0 20px;background:var(--rust);transition:background .25s}
.order-bar-button:hover .order-bar-cta{background:#8a3e26}
@media (min-width:741px){.order-bar{left:auto;right:28px;bottom:28px;width:460px}}

.cart{position:fixed;inset:0 0 0 auto;margin:0;padding:0;border:0;width:min(480px,100vw);max-width:100vw;height:100dvh;max-height:100dvh;background:var(--paper);color:var(--ink);box-shadow:-30px 0 60px -30px rgba(0,0,0,.35)}
.cart::backdrop{background:rgba(24,28,22,.45)}
.cart[open]{animation:cart-in-side .5s var(--ease-out) backwards}
.cart.is-closing{animation:cart-out-side .38s ease-in forwards}
@keyframes cart-in-side{from{translate:100% 0}}
@keyframes cart-out-side{to{translate:100% 0}}
.cart-panel{height:100%;overflow-y:auto;overscroll-behavior:contain;padding:30px 30px calc(30px + env(safe-area-inset-bottom))}
.cart-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px}
.cart-head h2{font-family:var(--serif);font-size:46px;line-height:.95;letter-spacing:-.03em}
.cart-head h2 em{color:var(--rust)}
.cart-close{flex:none;width:44px;height:44px;border:1px solid #cfd1c5;border-radius:50%;background:transparent;font-size:24px;line-height:1;display:grid;place-items:center}
.cart-empty{display:none;font-size:14px;line-height:1.6;color:#6a7061;padding:18px 0 26px;border-top:1px solid #d6d4c8}
.cart.is-empty .cart-empty{display:block}
.cart.is-empty .cart-total,.cart.is-empty .cart-clear{display:none}
.cart-lines{list-style:none;margin:0;padding:0}
.cart-line{display:grid;grid-template-columns:1fr auto;gap:6px 16px;align-items:center;padding:14px 0;border-top:1px solid #d6d4c8}
.cart-line-name{display:block;font-family:var(--serif);font-size:19px;line-height:1.2}
.cart-line-price{display:block;font-size:12px;color:#6a7061;margin-top:3px}
.cart-line .qty-stepper{border-color:#cfd1c5;height:40px}
.cart-line .qty-stepper button{height:38px;width:38px}
.cart-line-total{grid-column:2;text-align:right;font-size:13px;font-weight:600}
.cart-total{display:flex;justify-content:space-between;align-items:baseline;padding:18px 0;border-top:1px solid var(--ink);margin-bottom:24px;font-size:12px;letter-spacing:.12em;text-transform:uppercase}
.cart-total strong{font-family:var(--serif);font-size:32px;font-weight:500;letter-spacing:-.01em;text-transform:none}
.cart-form .field input,.cart-form .field textarea{display:block;width:100%;margin:0;background:#f7f5ef;border:1px solid #cfd1c5;padding:13px 14px;font:inherit;font-size:16px;color:var(--ink);border-radius:0;transition:border-color .3s,background .3s}
.cart-form .field textarea{resize:vertical;min-height:84px}
.cart-form .field input:focus,.cart-form .field textarea:focus{border-color:var(--ink);background:#fff;outline:none}
.cart-note{font-size:12.5px;line-height:1.6;color:#6a7061;margin:2px 0 16px}
.cart-submit{width:100%}
.cart .whatsapp-fallback{display:inline-block;margin-top:4px}
.cart .whatsapp-fallback[hidden]{display:none}
.cart-clear{display:block;margin:20px 0 0;padding:0;background:none;font-size:13px;color:#6a7061;text-decoration:underline;text-underline-offset:4px}
@media (max-width:740px){
 .cart{inset:auto 0 0 0;width:100vw;height:92dvh;max-height:92dvh;box-shadow:0 -20px 50px -20px rgba(0,0,0,.35)}
 .cart[open]{animation-name:cart-in-up}
 .cart.is-closing{animation-name:cart-out-up}
 .cart-panel{padding:24px 20px calc(24px + env(safe-area-inset-bottom))}
 .cart-head h2{font-size:40px}
}
@keyframes cart-in-up{from{translate:0 100%}}
@keyframes cart-out-up{to{translate:0 100%}}
@media (prefers-reduced-motion:reduce){.cart[open],.cart.is-closing{animation:none}.order-bar,.order-bar.is-visible{transition:none}}
