/* Traveler pages share the existing Bordeluche tokens. */
.stay-main { max-width:1240px; margin:0 auto; padding:125px 32px 72px; color:var(--bordeaux); font-family:var(--font-ui); }
.stay-main h1,.stay-main h2,.stay-main h3 { font-family:var(--font-display); font-weight:500; line-height:1.08; }
.stay-main h1 { font-size:clamp(2.6rem,5vw,4.4rem); margin:8px 0 18px; }
.stay-main h2 { font-size:clamp(1.9rem,3vw,2.8rem); margin:8px 0 20px; }
.stay-main h3 { font-size:1.8rem; margin:30px 0 14px; }
.stay-main p { line-height:1.65; }
.stay-main a { color:inherit; text-underline-offset:4px; }
.stay-eyebrow { font:500 .72rem/1.5 var(--font-ui); letter-spacing:.09em; text-transform:uppercase; margin:0; }
.stay-button { display:inline-flex; align-items:center; justify-content:center; gap:20px; background:var(--bordeaux); color:var(--ivoire) !important; padding:17px 22px; border:1px solid var(--bordeaux); border-radius:5px; text-decoration:none; font:500 .85rem/1.4 var(--font-ui); cursor:pointer; min-height:48px; }
.stay-button:hover { background:var(--sauge); border-color:var(--sauge); }
.stay-main a:focus-visible,.stay-main button:focus-visible,.stay-search :focus-visible,.stay-lightbox button:focus-visible { outline:3px solid var(--sauge); outline-offset:4px; }
.stay-catalogue-intro > p:last-child { margin-bottom:24px; }
.stay-search { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,.9fr) auto; gap:12px; padding:16px 0; border-block:1px solid var(--gold); font-family:var(--font-ui); color:var(--bordeaux); }
.stay-search-catalogue { grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr) minmax(0,.9fr) auto; }
.stay-search-field { min-width:0; padding:0 10px; border-right:1px solid var(--gold); }
.stay-search-field label { display:block; font-size:.75rem; margin:0 0 6px; font-weight:500; }
.stay-search input,.stay-search select { background:transparent; color:var(--bordeaux); border:0; border-radius:0; min-height:44px; padding:9px 0; font:400 16px var(--font-ui); width:100%; max-width:100%; box-sizing:border-box; min-width:0; }
.stay-search select { appearance:none; -webkit-appearance:none; padding-right:36px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23422928' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-size:16px; background-position:right 10px center; }
.stay-search input[type=date] { appearance:none; -webkit-appearance:none; }
.stay-search input::-webkit-date-and-time-value { text-align:left; min-width:0; }
.stay-search > .stay-button { align-self:center; border-radius:var(--pill); }
.stay-form-error { grid-column:1/-1; margin:0; }
.stay-notice,.stay-form-error { color:var(--bordeaux); padding:12px; border:1px solid var(--gold); border-radius:4px; }
.stay-results-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:26px 0 18px; }
.stay-results-heading h2 { font:500 1rem var(--font-ui); margin:0; }
.stay-results-heading p { font-size:.78rem; margin:0; }
.stay-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px 24px; }
.stay-card { min-width:0; }
.stay-card[hidden] { display:none; }
.stay-mobile-booking { display:none; }
.hero .hero-stay-entry { display:block; }
.hero-stay-entry .hero-geo-link { color:var(--ivoire); border-color:var(--ivoire); }
.stay-card-photo { display:block; }
.stay-card-photo img { width:100%; height:100%; object-fit:cover; display:block; }
.stay-card .prop-card-name { font-size:1.7rem; margin:0 0 12px; }
.stay-card .prop-card-name a { text-decoration:none; }
.stay-card .prop-card-link--primary { color:var(--ivoire); }
.stay-card .prop-card-location,.stay-card .prop-card-guests { color:var(--bordeaux); }
.stay-card .prop-card-platform { background:color-mix(in srgb,var(--ivoire) 92%,transparent); border:1px solid var(--gold); }
.stay-card-photo:hover img { transform:scale(1.025); }
.stay-card-features { margin:0 0 15px; font-size:.85rem; }
.stay-empty { padding:50px 25px; text-align:center; border:1px solid var(--perle); }
.stay-editorial,.stay-platforms { display:grid; grid-template-columns:1fr 1fr; gap:60px; padding:55px 0; border-top:1px solid var(--perle); margin-top:55px; }
.stay-editorial p:first-child { margin-top:0; }
.stay-faq { max-width:850px; padding:10px 0 40px; }
.stay-faq details { border-bottom:1px solid var(--perle); padding:18px 0; }
.stay-faq summary { font-weight:500; cursor:pointer; min-height:30px; }
.stay-faq details p { font-size:.9rem; }
.stay-owner { padding:32px; border:1px solid var(--gold); border-radius:7px; margin:35px 0; }
.stay-owner a { display:inline-block; font-size:.9rem; margin:8px 28px 0 0; }
.stay-breadcrumb { display:flex; align-items:center; gap:22px; font-size:.8rem; margin-bottom:24px; }
.stay-detail-heading { display:flex; justify-content:space-between; align-items:center; gap:28px; margin-bottom:15px; }
.stay-detail-heading h1 { margin-bottom:5px; }
.stay-detail-heading .stay-button { flex-shrink:0; }
.stay-gallery { display:grid; grid-template-columns:2fr 1fr; grid-template-rows:220px 220px; gap:10px; }
.stay-gallery button { position:relative; overflow:hidden; padding:0; border:0; border-radius:5px; cursor:zoom-in; background:var(--perle); }
.stay-gallery button:first-child { grid-row:1/3; }
.stay-gallery img { width:100%; height:100%; object-fit:cover; display:block; }
.stay-gallery button span { position:absolute; bottom:14px; left:14px; background:var(--ivoire); color:var(--bordeaux); padding:8px 14px; font:.75rem var(--font-ui); border-radius:4px; }
.stay-detail-content { display:grid; grid-template-columns:1.5fr 1fr; gap:80px; padding:45px 0; }
.stay-detail-content section > p { max-width:650px; }
.stay-highlights { display:flex; flex-wrap:wrap; gap:10px; list-style:none; padding:0; margin:24px 0; }
.stay-highlights li { background:color-mix(in srgb,var(--ivoire) 85%,var(--perle)); padding:10px 14px; border:1px solid var(--perle); border-radius:4px; font-size:.8rem; }
.stay-practical { padding:28px; align-self:start; border:1px solid var(--perle); border-radius:7px; background:color-mix(in srgb,var(--ivoire) 85%,var(--perle)); }
.stay-practical h2 { font-size:2rem; }
.stay-practical dl { margin:0 0 25px; }
.stay-practical dl div { display:flex; justify-content:space-between; gap:15px; padding:12px 0; border-bottom:1px solid var(--perle); font-size:.85rem; }
.stay-practical dd { margin:0; text-align:right; }
.stay-practical > p { font-size:.78rem; }
.stay-practical .stay-button { width:100%; }
.stay-booking { max-width:900px; padding:40px 0; border-top:1px solid var(--perle); scroll-margin-top:110px; }
.stay-booking iframe { display:block; width:100%; height:760px; border:0; background:var(--ivoire); scroll-margin-top:100px; }
.stay-booking-fallback,.stay-booking-status { font-size:.85rem; }
.stay-platforms { scroll-margin-top:110px; margin-top:10px; padding:35px 0; align-items:center; }
.stay-platform-links { display:flex; gap:15px; flex-wrap:wrap; }
.stay-platform-links a { border:1px solid var(--bordeaux); padding:14px 20px; border-radius:5px; text-decoration:none; font-size:.85rem; }
.stay-related { margin-top:60px; }
.stay-lightbox { border:0; border-radius:6px; width:min(1100px,96vw); max-height:95vh; padding:18px; background:var(--ivoire); color:var(--bordeaux); margin:auto; }
.stay-lightbox::backdrop { background:var(--bordeaux); opacity:.92; }
.stay-lightbox img { width:100%; height:70vh; object-fit:scale-down; display:block; }
.stay-lightbox button { background:var(--ivoire); color:var(--bordeaux); border:1px solid var(--perle); min-width:48px; min-height:44px; padding:8px 16px; cursor:pointer; font:500 .85rem var(--font-ui); }
.stay-lightbox button:disabled { opacity:.4; cursor:default; }
.stay-lightbox-close { display:block; margin-left:auto; }
.stay-lightbox-controls { display:flex; gap:22px; justify-content:center; align-items:center; font-family:var(--font-ui); }
.stay-footer { background:var(--bordeaux); color:var(--ivoire); padding:35px max(24px,calc((100vw - 1176px)/2)); font-family:var(--font-ui); }
.stay-footer p { font-family:var(--font-display); font-size:1.8rem; margin:0 0 20px; }
.stay-footer nav { display:flex; flex-wrap:wrap; gap:18px 30px; }
.stay-footer a { color:var(--ivoire); font-size:.8rem; text-underline-offset:4px; }
.stay-home-search { margin:0 0 24px; }
.stay-home-search > p a { color:var(--bordeaux); text-underline-offset:4px; }
.stay-home-search > p { font:400 .82rem/1.5 var(--font-ui); margin-top:12px; }
@media(max-width:1000px) { .stay-detail-content { gap:30px; } .stay-gallery { grid-template-rows:180px 180px; } .stay-search,.stay-search-catalogue { grid-template-columns:minmax(0,1fr) minmax(0,1fr); } }
@media(max-width:600px) {
 .stay-main { padding:94px 18px 40px; }
 .stay-catalogue-intro h1 { font-size:2.5rem; margin:8px 0 10px; }
 .stay-catalogue-intro .stay-eyebrow { font-size:.63rem; }
 .stay-catalogue-intro > p:last-child { font-size:.85rem; margin:0 0 16px; }
 .stay-search { padding:12px 0; gap:10px; }
 .stay-search-field { padding:0 4px; }
 .stay-search-catalogue .stay-search-field:first-child { grid-column:1/-1; border-right:0; border-bottom:1px solid var(--gold); padding-bottom:4px; }
 .stay-search-field label { font-size:.7rem; }
 .stay-search input,.stay-search select { padding:8px 0; font-size:16px; }
 .stay-search select { padding-right:34px; }
 .stay-search .stay-button { font-size:.8rem; padding:10px; gap:8px; min-height:44px; }
 .stay-results-heading { display:block; margin:20px 0 14px; }
 .stay-results-heading p { margin:7px 0 0; font-size:.73rem; }
 .stay-grid { grid-template-columns:1fr; gap:32px; }
 .stay-editorial,.stay-platforms,.stay-detail-content { grid-template-columns:1fr; gap:15px; padding:30px 0; margin-top:30px; }
 .stay-owner { padding:24px; }
 .stay-faq { padding:0 0 10px; }
 .stay-breadcrumb { margin-bottom:20px; }
 .stay-detail-heading { display:block; }
 .stay-detail-heading h1 { font-size:2.6rem; margin-bottom:16px; }
 .stay-detail-heading .stay-button { padding:12px 18px; margin-bottom:12px; }
 .stay-gallery { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; gap:10px; padding-bottom:12px; scrollbar-width:none; }
 .stay-gallery::-webkit-scrollbar { display:none; }
 .stay-gallery button { flex:0 0 78vw; max-width:300px; height:280px; scroll-snap-align:start; }
 .stay-practical { padding:22px; }
 .stay-booking { padding:25px 0; scroll-margin-top:85px; }
 .stay-booking iframe { scroll-margin-top:80px; }
 .stay-related .stay-grid { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; gap:14px; padding-bottom:12px; scrollbar-width:none; }
 .stay-related .stay-grid::-webkit-scrollbar { display:none; }
 .stay-related .stay-card { flex:0 0 78vw; max-width:300px; scroll-snap-align:start; }
 .stay-lightbox img { height:65vh; }
 .stay-mobile-booking { display:flex; position:fixed; left:18px; right:18px; bottom:14px; z-index:90; box-shadow:0 4px 20px color-mix(in srgb,var(--bordeaux) 25%,transparent); }
 body:has(.stay-main) .scroll-top { bottom:85px; }
}
.stay-mobile-booking[hidden] { display:none; }
@media(prefers-reduced-motion:reduce) { .stay-card-photo img { transition:none; } }
