.admin-mail-note { padding:12px 20px; background:#fff4df; border-bottom:1px solid #d6b68c; }
.admin-mail-note label { display:block; font-weight:700; color:#752b3b; margin-bottom:6px; }
.admin-mail-note textarea { display:block; box-sizing:border-box; width:100%; min-height:70px; max-height:120px; padding:9px 12px; border:1px solid #d6b68c; border-radius:9px; background:#fffdfa; font:inherit; resize:vertical; }
.admin-mail-note small { display:block; margin-top:5px; font-size:12px; line-height:1.4; }
.admin-mail-dialog { width:min(780px,calc(100vw - 24px)); max-height:94dvh; padding:0; border:1px solid #dccfc3; border-radius:18px; color:#283437; background:#fffdfa; box-shadow:0 16px 55px #251c2645; }
.admin-mail-dialog[open] { display:flex; flex-direction:column; }
.admin-mail-dialog::backdrop { background:#1d242570; }
.admin-mail-dialog>header { display:flex; justify-content:space-between; align-items:center; padding:15px 20px; gap:16px; }
.admin-mail-dialog h2 { font-size:26px; }
.admin-mail-dialog header p { font-size:12px; margin-top:3px; }
.admin-mail-dialog [data-close] { font-size:28px; min-width:44px; min-height:44px; }
.admin-mail-meta { padding:10px 20px; border-block:1px solid #e8ded5; font-size:13px; overflow-wrap:anywhere; }
.admin-mail-dialog iframe { display:block; width:100%; min-height:150px; height:56dvh; border:0; flex:1 1 auto; background:#f4efe9; }
.admin-mail-dialog>footer { display:block; padding:14px 20px; background:#fffdfa; border-top:1px solid #e8ded5; }
.admin-mail-dialog footer p { margin:0 0 9px; font-size:13px; }
.admin-mail-dialog [data-error] { color:#ad263b; }
.admin-mail-dialog [data-error]:empty { display:none; }
.admin-mail-dialog footer>div { display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; }
@media(max-width:480px){ .admin-mail-dialog>header,.admin-mail-meta,.admin-mail-dialog>footer { padding:10px 13px; } }
:root {
  --shadow-card: inset 0 1px 0 #ffffffc4, 0 2px 4px #5037290b, 0 7px 18px -5px #50372929;
  --shadow-raised: inset 0 1px 0 #ffffffd9, 0 3px 7px -2px #5037291c, 0 13px 29px -8px #50372938;
  --shadow-popup: 0 0 0 1px #4531270a, 0 5px 12px -3px #45312726, 0 20px 50px -10px #4531274d;
}
@media(max-width:600px) {
  :root {
    --shadow-card: inset 0 1px 0 #ffffffbf, 0 2px 4px #5037290c, 0 5px 13px -4px #50372925;
    --shadow-raised: inset 0 1px 0 #ffffffcc, 0 3px 6px -2px #5037291a, 0 9px 21px -6px #50372933;
  }
}
#voucher-banner { background:#702638; color:#fff9ed; padding:9px 18px; display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:6px 17px; text-align:center; font-size:14px; }
#voucher-banner>span { font-size:.77em; letter-spacing:.15em; text-transform:uppercase; color:#f8d49d; font-weight:700; }
#voucher-banner button { color:inherit; border:1px dashed #eac4a5; border-radius:24px; padding:4px 13px; }
#voucher-banner button:hover { background:#ffffff20; }
.voucher-quote:not(:empty) { display:grid; gap:5px; }
.voucher-quote>span { display:flex; justify-content:space-between; gap:8px; }
.voucher-quote>strong { justify-self:end; }
.voucher-line { font-size:14px; color:#5d3c44; }
#chat-root .launcher { position:fixed; inset:auto max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) auto; transform:none; margin:0; background:#177b32; color:#fff; border:0; gap:10px; padding:5px 5px 5px 18px; box-shadow:0 5px 20px #173c2a35; font-size:16px; }
.launcher-icon { width:43px; height:43px; display:grid; place-items:center; background:#ffffff20; border-radius:50%; }
#chat-root .launcher:hover { background:#11662a; }
#chat-root .launcher::after { content:''; position:absolute; bottom:0; left:0; width:12px; height:12px; background:#48d983; border:2px solid white; border-radius:50%; }
#chat-root .launcher .unread-count { position:absolute; right:0; top:-7px; }
#voucher-banner button { display:inline-flex; align-items:center; gap:6px; }
#voucher-banner strong { border-left:1px solid #caa2a6; padding-left:15px; }
@media(max-width:480px){#voucher-banner strong{border:0;padding:0;} }
.unread-count,.chat-threads b { border-radius:18px; padding:2px 8px; background:#ffe0a9; color:#402c14; font-size:12px; }
#chat-root .launcher.has-unread { background:#b62939; box-shadow:0 4px 22px #b6293940; }
#chat-root .launcher.has-unread::after { background:#ffcf96; }
#chat-root .unread-count,.chat-threads b { background:#c02d3b; color:white; border:2px solid white; font-size:14px; min-width:28px; text-align:center; }
#chat-root .launcher .unread-count { top:-9px; right:-3px; }
#chat-root [data-back].has-unread { color:#b62939; font-weight:750; }
#chat-root .chat-threads button:has(b) { background:#fff0ee; padding:12px 9px; border-radius:9px; }
#chat-root .chat-head [data-sound] { margin-left:auto; width:auto; min-width:48px; padding:0 5px; font-size:12px; }
#chat-root .chat-head [data-close] { margin-left:0; }
.chat-navigation { flex:none; padding:7px 14px; border-bottom:1px solid var(--line); }
.chat-navigation:empty { display:none; }
.chat-navigation button { font-weight:600; text-decoration:underline; color:var(--pine); }
.widget-context { font-size:13px; }
.widget-context h2 { font-size:20px; margin:2px 0; }
.widget-context .section-kicker { margin:4px 0; }
#chat-root .chat-panel {
  right:max(16px,env(safe-area-inset-right)); bottom:max(12px,env(safe-area-inset-bottom));
  width:min(430px,calc(100vw - 32px)); height:min(710px,calc(100dvh - 32px));
  background:white; border-radius:20px; border-color:#dce3db;
  box-shadow:var(--shadow-popup); z-index:12;
}
#chat-root .chat-head { background:#197837; min-height:72px; padding:12px 16px; }
#chat-root .chat-head small { font-size:13px; color:#e0f3e4; }
#chat-root .chat-avatar { width:44px; height:44px; border-radius:50%; background:#fffaf2; }
#chat-root .chat-head button { width:44px; height:44px; border-radius:50%; }
#chat-root .chat-head button:hover { background:#ffffff24; }
#chat-root .chat-navigation { padding:7px 16px; max-height:30%; overflow:auto; background:#fafaf7; }
#chat-root .message-list { overscroll-behavior:contain; padding:16px; }
#chat-root .compose { border:0; padding:10px 14px 14px; }
#chat-root .compose textarea { border:1px solid #a1b7a5; border-radius:18px; width:100%; padding:10px 14px; line-height:1.4; font-size:16px; }
#chat-root .compose .form-error:empty { display:none; }
#chat-root .send { width:42px; height:42px; background:#197837; }
@media(max-width:480px){
  #chat-root .chat-panel { right:6px; bottom:max(6px,env(safe-area-inset-bottom)); width:calc(100vw - 12px); height:min(710px,calc(100dvh - 16px - env(safe-area-inset-bottom))); border-radius:16px; }
}
@media(max-height:480px){ #chat-root .chat-head { min-height:48px; padding-block:3px; } }

.chat-threads { overflow:auto; padding:10px 14px; }
.chat-threads button { display:grid; grid-template-columns:1fr auto; width:100%; text-align:left; padding:10px 2px; border-bottom:1px solid var(--line); }
.chat-threads button span { grid-column:1; font-size:13px; }
.chat-threads button b { grid-column:2; grid-row:1/3; align-self:center; }
#marketing-choice { position:fixed; bottom:16px; left:16px; width:min(355px,calc(100vw - 32px)); padding:15px 18px; border:1px solid #d4c9bc; border-radius:14px; box-shadow:0 6px 30px #31242124; background:#fffaf3; color:#392b26; z-index:11; font-size:13px; }
#marketing-choice p { margin:5px 0 12px; }
#marketing-choice .actions { justify-content:flex-start; }
#marketing-settings { color:inherit; padding:0; font:inherit; }
@media(max-width:680px){#marketing-choice { bottom:80px; } #voucher-banner {gap:4px 10px;padding:6px 12px;} .foot-wrap nav {padding-bottom:52px;}}
.about-spread {width:min(1015px,calc(100% - 48px));margin:0 auto;padding:clamp(34px,4.1vw,60px) 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:clamp(26px,3.45vw,50px);color:#283539}
.about-office{position:relative;margin:0 0 22px}.about-office img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;box-sizing:border-box;border:6px solid #fffaf5;border-radius:24px;box-shadow:0 17px 36px #46312638}
.about-office figcaption{position:absolute;right:20px;bottom:-20px;display:flex;align-items:center;gap:10px;background:#fffcf8;border-radius:13px;padding:12px 18px;box-shadow:0 9px 22px #48322926}
.about-monogram{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#792d3f;color:white;font:600 15px Georgia,serif}.about-office figcaption strong{display:block;font:600 16px Georgia,serif}.about-office figcaption small{display:block;margin-top:3px;color:#5e676a}
.about-copy h1{font-size:clamp(26px,2.1vw,33px);font-weight:500;line-height:1.25;letter-spacing:-.02em;margin:6px 0 20px}.about-copy>p{margin:0;color:#5d696d;line-height:1.65}
.about-callout{padding:20px;background:#f2eae7;border-radius:14px;margin-top:22px}.about-callout h2{font-size:22px;font-weight:500;margin:0 0 8px}.about-callout p,.about-points p{font-size:14px;line-height:1.55;margin:0}.about-points{border-left:1px solid #843047;padding-left:19px;margin:30px 0}.about-points p+p{margin-top:12px}
.about-copy .contact-tiles{gap:9px;margin:0}.about-copy .contact-tiles :is(a,button){padding:14px;min-height:110px}.about-discover{margin-top:24px}
@media(max-width:720px){.about-spread{width:min(540px,calc(100% - 36px));grid-template-columns:minmax(0,1fr);gap:22px}.about-office figcaption{right:12px}.about-copy .contact-tiles :is(a,button){min-height:0}}
.reservation-page{width:min(810px,calc(100% - 36px));margin:0 auto;padding:clamp(35px,5vw,68px) 0 70px;color:#283437}.reservation-page h1{font-size:clamp(36px,4vw,48px);font-weight:500;line-height:1.12;margin:8px 0 14px}.reservation-page>p:not(.overline){max-width:65ch;color:#5b6669;line-height:1.6}
.reserve-card{display:grid;gap:16px;margin:25px 0 18px;border:1px solid #e5d8d1;border-radius:15px;padding:clamp(16px,2.2vw,28px);background:#fffdfa}.reserve-card label,.booking-surname{display:grid;gap:5px;font-size:14px;font-weight:650}.ref-request .booking-surname{margin-top:16px}.reserve-card .primary,.reserve-card .status{justify-self:start}.reserve-card .primary{border-radius:24px;background:#792b3d}.reserve-card .form-error:empty{display:none}.reserve-empty,.reserve-help{display:block;padding:20px;border-radius:12px;background:#f3ebe9}.reserve-empty{border:1px dashed #cba6ac;text-align:center;color:#657074}.reserve-help{margin-top:20px;color:#772c3d}.reserve-facts{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:0}.reserve-facts dt{color:#667173;font-size:13px}.reserve-facts dd{margin:0;overflow-wrap:anywhere}.reservation-page .back{margin-bottom:20px}
.reservation-lookup input { width:100%; min-width:0; box-sizing:border-box; min-height:46px; padding:10px 15px; border:1px solid #d8c8bb; border-radius:13px; background:#fffdfa; color:inherit; font:inherit; font-weight:400; }
.reservation-lookup input:focus-visible { outline:2px solid #792b3d; outline-offset:2px; }
.reservation-lookup + .reserve-empty { padding:clamp(20px,3.2vw,35px) 18px; }
.mail-panel{margin:16px 0;padding:18px;border:1px solid var(--line);border-radius:16px;background:#fffdfa;color:#283437}.mail-panel h3{margin:0 0 7px}.mail-panel p{margin:6px 0 12px;font-size:14px}.mail-panel form,.mail-panel label{display:grid;gap:7px}.mail-panel button{justify-self:start}.mail-panel .form-error:empty{display:none}
.contact-hero {position:relative;overflow:hidden;background:#f3eee6;color:#273339;padding:clamp(48px,6vw,88px) 0 clamp(55px,7vw,100px)}
.contact-hero::after {content:'';position:absolute;inset:auto 0 0;height:31px;background:#eedfe2;clip-path:polygon(0 32%,17% 54%,40% 93%,52% 80%,76% 12%,100% 0,100% 100%,0 100%)}
.contact-hero h1 {font-size:clamp(38px,4.7vw,70px);font-weight:500;line-height:1.05;margin:0}
.contact-sheet {max-width:830px;margin:auto;padding:clamp(36px,5vw,70px) 24px clamp(68px,8vw,120px);min-height:43vh}
.contact-sheet>h2 {font-size:clamp(28px,2.3vw,36px);margin:0 0 8px}.contact-sheet>p{margin:3px 0;color:var(--muted)}
.contact-tiles {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:34px}
.contact-tiles :is(a,button){display:grid;justify-items:start;align-content:center;text-align:left;gap:6px;border:1px solid #efe6df;border-radius:16px;padding:17px;background:#fffdfa;color:#293438;box-shadow:var(--shadow-card);text-decoration:none}
.contact-tiles .contact-live {background:#067657;color:white;border-color:#067657}.contact-tiles small{text-transform:uppercase;letter-spacing:.13em;font-size:11px}.contact-tiles svg{margin-bottom:4px}.contact-tiles strong{font-size:15px;overflow-wrap:anywhere}.contact-tiles :is(a,button):hover{box-shadow:var(--shadow-raised)}
.contact-sheet .ref-chat{margin-top:20px}.contact-sheet .ref-chat .message-list{height:210px}
@media(max-width:570px){.contact-tiles{grid-template-columns:1fr}.contact-tiles .contact-live{grid-row:1}.contact-sheet{padding-inline:18px}}
.top { position: relative; z-index: 4; }
.nav-toggle { display: none; }
.top nav { justify-content: flex-end; gap: clamp(18px, 2.6vw, 38px); }
.top a.nav-cta { display: inline-flex; align-items: center; gap: 10px; padding: 10px 18px; border-radius: 28px; background: #742737; color: white; }
.foot-wrap { padding-right: 0; }
.foot-wrap nav { margin-left: auto; display: flex; flex-wrap: wrap; gap: 10px 24px; }
.foot-wrap nav a:hover, .contact-links a:hover span, .link-arrow:hover { text-decoration: underline; text-underline-offset: .22em; }
.admin-mode .nav-toggle { display: none; }
.reference-mode {
  --paper: #fcf9f4; --ink: #352924; --pine: #76293c; --muted: #70655f; --line: #e4dcd2; --cream: #f5eee4;
  background: var(--paper); color: var(--ink);
}
.reference-mode :is(.content,.nav-wrap,.foot-wrap) { width: min(1280px,calc(100% - 64px)); }
.reference-mode .brand { color: #542b30; }
.reference-mode .brand img { border-radius: 32%; }
.reference-mode .top nav a:not(.nav-cta) { color: #584a43; }
.reference-mode .top nav a[aria-current],.reference-mode .top nav a:hover { text-decoration: underline; text-underline-offset: .38em; }
.reference-mode footer { background: #f4ede3; color: #604f46; }
.reference-mode h1, .reference-mode h2 { text-wrap: balance; }
.reference-mode h2 em, .guest-intro em { color: var(--pine); font-weight: 400; }
.overline { margin: 0 0 13px; text-transform: uppercase; font-size: 11px; font-weight: 700; line-height: 1.5; letter-spacing: .18em; color: var(--pine); }
.home-view .nav-wrap { position: absolute; top: 100%; left: 0; right: 0; }
.home-view .top nav a:not(.nav-cta),.home-view .top .brand,.home-view .nav-toggle { color: #fffaf0; }
.home-view .top a.nav-cta { background: #fff5df; color: #512634; }
.winter-hero { position: relative; isolation: isolate; overflow: hidden; background: #473f40; color: #fff9eb; }
.winter-hero picture,.winter-hero:after { position: absolute; z-index: -1; inset: 0; }
.winter-hero picture img { width: 100%; height: 100%; object-fit: cover; object-position: center 53%; }
.winter-hero:after { content: ''; background: linear-gradient(180deg,#25191f69,transparent 28%,transparent 75%,#3423284d),linear-gradient(90deg,#36222beb 0%,#402632a1 34%,#442a3426 69%,transparent); }
.winter-inner { min-height: clamp(545px,100svh,800px); display: flex; align-items: center; padding-block: 115px 75px; }
.winter-copy .overline { color: #ffe7b8; margin-bottom: 22px; }
.winter-copy h1 { font-size: clamp(69px,7.7vw,115px); line-height: .97; letter-spacing: -.054em; }
.winter-copy h1 em { font-weight: 400; color: #f3cf90; }
.winter-copy h1 + p { font-size: clamp(16px,1.5vw,20px); line-height: 1.55; margin: 24px 0; }
.guest-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.guest-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 13px 22px; border-radius: 28px; font-size: 14px; font-weight: 650; }
.guest-btn:hover { filter: brightness(.94); }
.guest-btn.pale { background: #fff3df; color: #512633; }
.guest-btn.green { background: #067859; color: white; border: 1px solid #c1d2bc66; }
.guest-btn.berry { background: var(--pine); color: white; }
.guest-section { padding-block: clamp(48px,6.2vw,90px); }
.guest-heading,.home-help .content { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; }
.guest-heading { margin-bottom: 29px; }
.link-arrow { display: inline-flex; align-items: center; gap: 9px; padding: 4px 0; color: var(--pine); font-size: 14px; font-weight: 650; }
.home-help { background: #f1e8dc; padding-block: 48px; }
.home-help .content { align-items: center; }
.home-help p:last-child { margin-top: 16px; max-width: 60ch; }
.home-help .guest-btn { flex-shrink: 0; }
.ref-card { display: flex; background: #fffdf9; border: 1px solid var(--line); border-radius: 17px; }
.ref-card .card-photo { aspect-ratio: 1.52; }
.ref-card .photo-tag { padding: 5px 11px; border-radius: 20px; background: #fff6eaf2; color: #602e36; letter-spacing: .02em; }
.ref-card .location,.ref-detail .location { color: #77645c; }
.ref-card .card-content { padding: 17px 20px 15px; }
.ref-card h3 { font-size: clamp(23px,2.1vw,29px); margin: 7px 0 14px; }
.ref-card .card-foot { border-color: var(--line); }
.ref-card .card-foot strong { color: var(--pine); }
.guest-intro { position: relative; isolation: isolate; overflow: hidden; background: #f4ecdf; }
.guest-intro:after { content: ''; position: absolute; z-index: -1; width: 75%; height: 75px; right: -8%; bottom: -57px; background: #ead8cd; border-radius: 50% 55% 0 0; transform: rotate(-2deg); }
.guest-intro .content { padding-block: clamp(37px,5vw,73px); }
.guest-intro h1 { font-size: clamp(43px,5.45vw,80px); margin: 0 0 12px; }
.guest-intro h1 + p,.contact-layout section>p:not(.overline),.about-layout div>p:not(.overline) { color: #67574f; }
.catalogue-body { padding-block: 32px 70px; min-height: 45vh; }
.filter-tools,.country-pills { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.filter-tools { justify-content: space-between; gap: 16px; }
.filter-chip,#show-filters { display: inline-flex; align-items: center; gap: 8px; background: #fffdf8; color: #654d45; border: 1px solid #dfd0c4; border-radius: 24px; padding: 9px 16px; font-size: 14px; }
.filter-chip[aria-pressed=true],#show-filters[aria-expanded=true] { background: var(--pine); border-color: var(--pine); color: white; }
#filter-panel { padding: 22px; margin-top: 18px; border: 1px solid var(--line); border-radius: 16px; background: #fffdf9; }
.filter-fields { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; }
.filter-fields label { display: grid; gap: 4px; font-size: 13px; font-weight: 650; }
.filter-fields input,.filter-fields select,.amenity-filter input[type=search] { width: 100%; min-width: 0; padding: 8px 11px; border: 1px solid #d9ccc0; border-radius: 7px; background: #fff; font: 400 15px var(--sans); min-height: 42px; }
.amenity-filter { min-width: 0; border: 0; border-top: 1px solid var(--line); padding: 12px 0; margin: 19px 0 0; }
.amenity-filter legend { font-size: 14px; font-weight: 650; padding-right: 10px; }
.amenity-filter input[type=search] { max-width: 300px; }
.amenity-options { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 11px; max-height: 165px; overflow-y: auto; padding: 4px; scrollbar-width: thin; }
.amenity-options label { position: relative; display: inline-flex; max-width: 100%; cursor: pointer; }
.amenity-options label span { border: 1px solid var(--line); border-radius: 16px; padding: 4px 10px; font-size: 12px; overflow-wrap: anywhere; }
.amenity-options input { position: absolute; opacity: 0; width: 1px; }
.amenity-options input:focus-visible+span { outline: 2px solid var(--pine); }
.amenity-options input:checked+span { background: #f3e2e4; border-color: var(--pine); color: #622335; }
#ref-count { font-size: 14px; color: var(--muted); margin: 22px 0 18px; }
.catalogue-empty { grid-column: 1/-1; text-align: center; padding-block: 35px; }
.catalogue-empty h2 { font-size: 30px; }
.catalogue-empty p { margin: 10px 0; }
.ref-detail { padding-top: 27px; }
.ref-detail .detail-head { display: grid; justify-content: start; gap: 8px; margin: 6px 0 26px; }
.ref-detail .detail-head :is(.overline,h1) { margin: 0; }
.ref-detail .location { font-size: 15px; }
.ref-detail .ref-gallery { border-radius: 18px; gap: 7px; }
.property-layout { display: grid; align-items: start; grid-template-columns: minmax(0,1fr) minmax(320px,.52fr); gap: clamp(28px,4.5vw,68px); margin-top: 30px; }
.property-aside { display: grid; gap: 20px; min-width: 0; }
.property-aside .booking-form { max-width: none; }
.property-aside h2 { font-size: 27px; }
.property-aside .ref-price strong { color: var(--pine); font-size: 34px; }
.property-aside .primary { background: var(--pine); border-radius: 24px; }
.property-story>section { padding-block: 24px; border-bottom: 1px solid var(--line); }
.property-story .ref-facts { margin: 0; padding-bottom: 21px; border-bottom: 1px solid var(--line); }
.ref-facts div,.ref-detail .amenities span { background: #f2eae0; color: #634e45; }
.description-copy p { font-size: 16px; line-height: 1.72; color: #5c4c45; }
.description-copy p+p { margin-top: 13px; }
.reference-mode .ref-chat { padding: 0; }
.reference-mode .ref-chat h2 { margin-bottom: 5px; font-size: 26px; }
.reference-mode .ref-chat .message-list { flex: auto; height: 166px; }
.about-layout,.contact-layout { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(32px,6vw,85px); align-items: start; }
.about-layout figure { margin: 0; }
.about-layout figure img { border-radius: 18px; width: 100%; aspect-ratio: 1.27; object-fit: cover; }
.about-layout figcaption { font-size: 12px; margin-top: 8px; color: var(--muted); }
.about-layout h2,.contact-layout h2 { margin-bottom: 15px; }
.about-layout .guest-btn { margin-top: 22px; }
.contact-links { display: grid; margin-top: 24px; }
.contact-links a { display: grid; gap: 3px; padding: 13px 0; border-top: 1px solid var(--line); }
.contact-links span { display: inline-flex; align-items: center; gap: 8px; color: var(--pine); font-weight: 650; font-size: 14px; }
.contact-layout .ref-chat .message-list { height: 205px; }
.booking-chat-page { max-width: 780px; }
.booking-chat-page h1 { font-size: clamp(32px,5vw,52px); margin: 0 0 18px; }
.booking-chat-page .conversation { max-width: none; padding: 0; }
.booking-thread-header { padding: 20px 22px; border-bottom: 1px solid var(--line); }
.booking-thread-header .section-kicker { margin: 0 0 6px; }
.conversation .booking-thread-header h2 { margin: 0; padding: 0; border: 0; font-size: clamp(23px,3vw,32px); }
.booking-thread-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 16px; margin-top: 10px; }
.booking-thread-meta > span:first-child { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; }
.booking-chat-page .message-list { flex: none; height: clamp(180px,38dvh,420px); }
.ref-request .receipt a.primary { text-decoration: none; }
@media(max-width:850px) {
  .nav-toggle { display: inline-flex; gap: 8px; align-items: center; border: 1px solid currentColor; border-radius: 22px; margin-left: auto; padding: 7px 14px; }
  .top #site-nav { display: none; }
  .top.menu-open #site-nav { display: flex; position: absolute; inset: 100% 0 auto; background: #fffaf1; padding: 14px; border-radius: 0 0 12px 12px; box-shadow: 0 10px 18px #35232a26; flex-direction: column; align-items: stretch; gap: 0; }
  .nav-wrap { position: relative; }
  .top.menu-open #site-nav a { color: #522e34; padding: 11px 14px; font-size: 15px; }
  .top.menu-open #site-nav a.nav-cta { color: white; background: #742737; align-self: flex-start; margin-top: 7px; }
  .filter-fields { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .property-layout { grid-template-columns: minmax(0,1fr) minmax(275px,.65fr); gap: 20px; }
  .reference-mode :is(.content,.nav-wrap,.foot-wrap) { width: calc(100% - 36px); }
}
@media(max-width:680px) {
  .winter-inner { min-height: clamp(525px,84svh,710px); padding-block: 100px 48px; }
  .winter-hero:after { background: linear-gradient(90deg,#302027be,#42232d59 84%),linear-gradient(0deg,#2d202877,transparent 70%); }
  .winter-copy h1 { font-size: clamp(64px,13.5vw,89px); }
  .winter-copy h1+p br { display: none; }
  .guest-btn { padding: 12px 17px; }
  .guest-heading,.home-help .content { align-items: flex-start; flex-direction: column; gap: 13px; }
  .filter-tools { align-items: flex-start; gap: 12px; }
  .filter-chip,#show-filters { padding: 7px 12px; font-size: 13px; }
  #filter-panel { padding: 14px; }
  .property-layout,.about-layout,.contact-layout { grid-template-columns: minmax(0,1fr); }
  .about-layout,.contact-layout { gap: 25px; }
  .property-layout { gap: 24px; }
  .property-story>section { padding-block: 19px; }
  .foot-wrap { flex-wrap: wrap; padding-bottom: 28px; }
  .foot-wrap nav { width: 100%; margin-left: 0; gap: 10px 16px; }
}
@media(max-width:370px) { .filter-fields { grid-template-columns: 1fr; } }

footer.site-footer {
  color:#fff3eb;
  background:linear-gradient(112deg,#742b37,#702631 54%,#792d38);
  border-top:0;
  font-size:14px;
  line-height:1.6;
}
.footer-inner { width:min(1216px,calc(100% - 64px)); margin-inline:auto; }
.footer-columns { display:grid; grid-template-columns:minmax(300px,2.5fr) 1.35fr 1fr 1.15fr; gap:clamp(20px,3vw,55px); padding-block:64px; }
.footer-intro { max-width:380px; }
.footer-brand { color:inherit; font-size:26px; }
.footer-brand img { width:44px; height:44px; }
.footer-intro p { margin:19px 0; color:#ead3ce; }
.footer-chat { display:inline-flex; align-items:center; gap:8px; padding:8px 16px; border-radius:30px; background:#007650; color:white; font-weight:650; }
.footer-chat:hover { background:#005e42; }
.footer-chat svg { display:block; }
.footer-columns nav { display:flex; flex-direction:column; align-items:flex-start; gap:10px; min-width:0; }
.footer-columns nav h2 { color:#f7cf92; font:700 12px/1.45 var(--sans, sans-serif); text-transform:uppercase; letter-spacing:.14em; margin:0 0 6px; }
.footer-columns nav>span { color:#e4ccc6; }
.footer-columns nav b { color:#fff3eb; }
.site-footer a:hover,.site-footer #marketing-settings:hover { text-decoration:underline; text-underline-offset:3px; }
.site-footer :focus-visible { outline:2px solid #ffdb9f; outline-offset:4px; }
.site-footer #marketing-settings { text-align:left; overflow-wrap:anywhere; }
.footer-base { border-top:1px solid #ffffff26; color:#e3c6bf; font-size:12px; }
.footer-base .footer-inner { display:flex; justify-content:space-between; padding-block:20px; }
.admin-mode .footer-columns { display:none; }
@media(max-width:1000px) {
  .footer-columns { grid-template-columns:1.4fr 1fr; gap:34px; padding-block:40px; }
  .footer-base .footer-inner { padding-right:120px; }
}
@media(max-width:600px) {
  .footer-inner { width:calc(100% - 40px); }
  .footer-columns { grid-template-columns:1fr 1fr; gap:26px 18px; }
  .footer-intro { grid-column:1/-1; }
  .footer-columns nav:last-child { grid-column:1/-1; }
  .footer-base .footer-inner { padding:16px 0 90px; }
}

.trip-receipt { width:min(1216px,calc(100% - 48px)); padding-top:18px; }
body:has(.trip-receipt) .nav-wrap { width:min(1216px,calc(100% - 48px)); }
body:has(.trip-receipt) main { background:radial-gradient(ellipse 80% 380px at 54% 0%,#f1e9e7a8,transparent); }
.trip-heading,.trip-number,.trip-total { display:flex; align-items:center; gap:14px; }
.trip-heading { align-items:flex-start; }
.trip-heading i,.trip-contact i { display:inline-grid; place-items:center; border-radius:50%; background:#f2e6e7; color:#802d40; width:40px; height:40px; flex:none; }
.trip-heading h1 { margin:0; font-size:clamp(27px,2.7vw,34px); }
.trip-heading p,.trip-panel p { margin:8px 0 0; color:#536367; line-height:1.58; }
.trip-number { flex-wrap:wrap; border:1px solid #ddc6bb; border-radius:16px; padding:18px 24px; background:linear-gradient(115deg,#f2e9dc,#f5eee6); margin:17px 0 20px; }
.trip-number strong { color:#7c2b3d; display:block; margin-top:3px; letter-spacing:.025em; }
.trip-panel>small,.trip-number small,.trip-times small { display:block; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.09em; color:#803548; }
.trip-columns { display:grid; grid-template-columns:minmax(0,1.18fr) minmax(0,1fr); gap:18px; margin-bottom:22px; }
.trip-stack { display:flex; flex-direction:column; min-width:0; gap:16px; }
.trip-panel,.trip-receipt .mail-panel { min-width:0; border:1px solid #e4d5cc; border-radius:20px; background:#fffdf9; padding:clamp(18px,2.5vw,29px); overflow-wrap:anywhere; }
.trip-panel h2 { margin:4px 0 0; font-size:clamp(24px,3vw,32px); line-height:1.18; font-weight:500; }
.trip-contact { background:linear-gradient(120deg,#f4eaea,#faf5ee); }
.trip-contact i { margin-bottom:10px; background:#fff9f5; }
.trip-chat,.trip-copy,.trip-ask,.trip-withdraw { font:inherit; font-weight:650; cursor:pointer; }
.trip-chat,.trip-copy { display:inline-flex; align-items:center; justify-content:center; gap:8px; border-radius:24px; padding:10px 18px; min-height:44px; }
.trip-chat { background:#08785d; color:white; margin:17px 10px 0 0; }
.trip-copy { color:#772d3e; border:1px solid #cdb9ae; background:#fffcf8; }
.trip-ask,.trip-withdraw { color:#792e3e; display:inline-block; padding:10px 0; }
.trip-ask[hidden],.trip-withdraw[hidden] { display:none; }
.trip-withdraw { align-self:flex-start; background:none; border:none; text-decoration:underline; }
.trip-facts { margin:12px 0 0; }
.trip-facts>div,.trip-total { display:flex; align-items:baseline; justify-content:space-between; gap:16px; padding:10px 0; border-bottom:1px solid #e9dfd6; }
.trip-facts dt { color:#626d70; }
.trip-facts dd { text-align:right; margin:0; min-width:0; font-weight:550; }
.trip-total { margin-top:5px; border:0; padding-bottom:0; font-size:18px; }
.trip-times { margin-top:16px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.trip-times>div { display:grid; gap:4px; padding:14px; background:#f3ede4; border-radius:14px; }
.trip-times strong { color:#792e3e; }
.trip-times span { font-size:13px; }
.trip-panel p+.trip-copy { margin-top:14px; }
.trip-receipt .mail-panel { margin:0; }
.trip-receipt [data-mail-slot]:empty { display:none; }
@media(max-width:760px){
  .trip-receipt { width:calc(100% - 32px); padding:24px 0 65px; }
  .trip-columns { display:flex; flex-direction:column; gap:12px; }
  .trip-stack { display:contents; }
  .trip-panel,.trip-withdraw { order:1; }
  .trip-stack>[data-mail-slot],.trip-stack>form { order:2; }
  .trip-number { padding:15px; gap:10px; }
  .trip-heading { gap:9px; }
  .trip-heading i { width:32px; height:32px; }
  .trip-chat { width:100%; margin-right:0; }
  .trip-ask { margin-top:4px; }
  .trip-facts>div { font-size:14px; }
}

.trip-columns { grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); }
.trip-number .trip-chat { margin:0; min-height:50px; border:2px solid white; border-radius:18px; box-shadow:0 1px 4px #21493940; text-align:center; }
.trip-heading p,.trip-status p,.trip-terms p { font-size:14px; }
.trip-status .trip-panel-head h2 { font-size:22px; }
.trip-status>p { padding-left:50px; }
.trip-steps { display:flex; gap:6px; padding:0; margin:20px 0 0; list-style:none; counter-reset:step; }
.trip-steps li { display:flex; align-items:center; gap:7px; flex:1; min-width:0; counter-increment:step; border-radius:14px; padding:10px; background:#f2ebe1; color:#596569; font-size:12px; font-weight:650; }
.trip-steps li::before { content:counter(step); flex:none; display:grid; place-items:center; width:18px; height:18px; border:1px solid currentColor; border-radius:50%; }
.trip-steps [data-current] { color:#782d3d; background:#f0e5e6; }
@media(max-width:480px){
  body:has(.trip-receipt) .nav-wrap { width:calc(100% - 32px); }
  .trip-status>p { padding-left:0; }
  .trip-steps { flex-direction:column; }
}
.trip-panel-head { display:flex; align-items:center; gap:12px; }
.trip-panel-head i { display:grid; place-items:center; flex:none; width:38px; height:38px; margin:0; border-radius:12px; color:#783142; background:#f3e8e7; }
.trip-panel-head small { color:#803548; font-size:11px; letter-spacing:.1em; text-transform:uppercase; font-weight:700; }
.trip-panel h2 { font-size:clamp(22px,2.2vw,29px); }
.trip-panel, .trip-terms, .trip-number, .trip-receipt .mail-panel,
.reserve-card, .ref-card, #filter-panel, .booking-overview {
  box-shadow:var(--shadow-card);
}
.trip-pass { border-color:#ddc8be; box-shadow:var(--shadow-raised); }
@media(hover:hover) { .ref-card:hover { box-shadow:var(--shadow-raised); } }
.trip-pass-body { display:grid; grid-template-columns:minmax(0,1fr) 166px; gap:12px; margin-top:18px; }
.trip-pass dl,.trip-stamp { border-radius:13px; margin:0; }
.trip-pass dl { display:grid; align-content:center; padding:6px 18px; background:#f5efe6; }
.trip-pass dl>div { padding:12px 0; }
.trip-pass dl>div+div { border-top:1px solid #e3d6c8; }
.trip-pass dt { color:#60686a; font-size:13px; }
.trip-pass dd { margin:4px 0 0; font-weight:650; line-height:1.4; }
.trip-pass dl>div:last-child dd { font-size:23px; }
.trip-inline-copy { background:transparent; border:0; padding:5px 0; color:#792e3e; text-decoration:underline; font:inherit; font-size:12px; cursor:pointer; }
.trip-stamp { display:grid; align-content:start; justify-items:center; align-self:start; width:166px; max-width:100%; padding:5px 5px 15px; border:1px solid #e4d8ca; border-radius:16px; background:white; color:#293337; text-align:center; box-shadow:0 2px 5px #50372912; }
.trip-stamp svg { display:block; width:100%; height:auto; shape-rendering:crispEdges; }
.trip-stamp figcaption { display:grid; justify-items:center; gap:8px; padding:2px 10px 0; }
.trip-stamp strong { max-width:16ch; font-size:14px; line-height:1.4; text-wrap:balance; }
.trip-stamp figcaption span { font-size:12px; line-height:1.6; color:#59666b; text-wrap:pretty; }
.trip-contact { background:#fffdf9; }
.trip-contact .trip-panel-head { align-items:flex-start; }
.trip-contact h2,.trip-arrival h2,.trip-reopen h2 { margin:0; font:650 17px/1.4 var(--sans); letter-spacing:normal; }
.trip-contact p,.trip-reopen p { font-size:14px; }
.trip-contact .trip-panel-head p { margin-top:3px; }
.trip-contact .trip-chat { width:auto; margin:14px 0; }
.trip-email { display:flex; align-items:flex-start; gap:12px; padding:14px; border:1px solid #e7d9d6; border-radius:14px; background:#f5efed; }
.trip-email i { width:31px; height:31px; margin:0; background:#ecdfdf; }
.trip-email p { margin:0 0 5px; }
.trip-email a,.trip-reopen>a { color:#792e3e; font-weight:650; font-size:14px; overflow-wrap:anywhere; }
.trip-arrival h2 svg { color:#792e3e; margin-right:5px; }
.trip-reopen .trip-copy { border-color:#782d3d; background:#782d3d; color:#fff; border-radius:13px; }
.trip-reopen>a { display:block; width:fit-content; margin-top:15px; }
.trip-terms { padding:18px 20px; border-radius:15px; border:1px solid #dbc1c0; background:#f3e8e6; color:#702d3b; }
.trip-terms b { display:flex; gap:8px; align-items:center; }
.trip-terms p { font-size:14px; color:#5c5554; margin:7px 0; }
.trip-terms + .trip-withdraw { font-size:14px; padding:4px 0; text-decoration:none; }
.trip-terms + .trip-withdraw:hover { text-decoration:underline; }
@media(max-width:760px){
  .trip-terms { order:1; }
  .trip-number .trip-chat { width:auto; }
}
@media(max-width:480px){
  .trip-pass-body { grid-template-columns:minmax(0,1fr); gap:10px; }
  .trip-pass dl { padding:3px 10px; }
  .trip-stamp { justify-self:center; }
}


.bank-settings input[name=iban]{text-transform:uppercase;font-variant-numeric:tabular-nums}
.trip-payment-action{margin-top:16px}
.trip-payment-action[hidden]{display:none}.trip-payment-action button{width:100%;justify-content:center}
.trip-payment-action p{font-size:12px;line-height:1.6;margin:10px 0 0;color:var(--muted)}
.payment-reported{font-size:11px;padding:7px 10px;background:#edf3ee;border-radius:8px;color:#285b42}
.trip-pass-body[hidden],.trip-paid-notice[hidden]{display:none}
.trip-pass-body.without-qr{grid-template-columns:1fr}
.trip-payment-state{display:flex;gap:8px;align-items:center;margin:20px 0 18px;padding:8px 12px;border:1px solid #edc647;border-radius:12px;background:#fffbed;color:#914716;font-size:12px}
.trip-payment-intro{font-size:13px;line-height:1.8;color:var(--muted)}
.trip-pass dl{align-content:start;padding:12px 16px}
.trip-pass dl>.trip-bank-field{padding:8px 0 12px;border:0}
.trip-pass .trip-bank-field dt{font-size:11px;line-height:1.6}
.trip-pass .trip-bank-field dd{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14px;min-width:0}
.trip-bank-field dd strong{min-width:0;overflow-wrap:anywhere;font-weight:650}
.trip-bank-field:has([data-copy-number]) dd{color:#7d2939}
.trip-bank-field .trip-inline-copy{display:flex;align-items:center;gap:5px;flex-shrink:0;text-decoration:none;font-size:11px;font-weight:600}
.trip-pass dl>.trip-bank-total{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:18px;margin-top:7px;border-top:1px solid #e3d6c8}
.trip-bank-total dt{font-size:11px}.trip-pass .trip-bank-total dd{margin:0;font-size:23px}
.trip-transfer-note{border:1px solid #b8dfd3;background:#ecfaf5;border-radius:17px;padding:16px;color:#165e4b;font-size:13px;line-height:1.65;margin-bottom:20px}
.trip-payment-action>.trip-chat{margin:0;min-height:49px;border-radius:28px;display:flex;align-items:center;gap:7px}
.trip-paid-notice{background:#f1e8e7;border-radius:20px;padding:21px;margin-top:18px}
.trip-paid-notice>strong{display:flex;gap:10px;align-items:center;color:#792c3c}
.trip-paid-notice>p{font-size:15px;color:#303b3e;margin:16px 0}
.trip-paid-notice>.trip-chat{display:flex;align-items:center;gap:8px;margin:20px 0;min-height:52px}
.trip-paid-notice>p.small{font-size:12px;margin-bottom:0;color:var(--muted)}
.trip-price-note{font-size:12px;line-height:1.7;color:var(--muted);margin:18px 0 0}
@media(max-width:480px){.trip-bank-field dd{flex-wrap:wrap}.trip-pass dl{padding:12px 15px}.trip-stamp{width:180px}.trip-paid-notice{padding:17px}.trip-payment-state{font-size:11px}.trip-payment-action>.trip-chat{width:100%}}
/* A compact language control remains visible outside the mobile menu. */
.language-switch{display:flex;flex-shrink:0;gap:2px;padding:3px;border:1px solid #d9c5ba;border-radius:24px;background:#fffaf5;color:#742737}
.language-switch button{font:700 12px/1.2 inherit;font-size:12px;padding:8px 9px;border:0;border-radius:18px;min-height:32px;background:transparent;color:inherit;cursor:pointer}
.language-switch button[aria-pressed=true]{background:#742737;color:#fff}
.language-switch button:focus-visible{outline:2px solid #b38950;outline-offset:2px}
.nav-wrap{gap:24px}.top nav{gap:clamp(12px,1.7vw,26px)}
.admin-mode .language-switch{display:none}
@media(max-width:1050px) and (min-width:851px){.top a.nav-cta{display:none}.top nav{margin-left:auto}.nav-wrap{gap:16px}}
@media(max-width:850px){.language-switch{order:1}.nav-toggle{order:2;margin-left:0}.nav-wrap>.brand{margin-right:auto}.nav-wrap{gap:12px}.language-switch button{padding:7px 8px}.reference-mode .nav-wrap{flex-wrap:nowrap}}
@media(max-width:380px){.language-switch button{padding:7px 6px}.nav-wrap{gap:6px}.nav-toggle{padding:7px 9px}.brand{font-size:20px}}
@media(max-width:380px){.nav-toggle{font-size:0;gap:0;min-height:40px;min-width:40px;justify-content:center}.nav-toggle span{font-size:16px}}
.reference-mode .site-footer .footer-brand{color:#fff4e4}
.language-switch button{font-family:inherit;font-weight:700;line-height:1.2}
.trip-address{display:grid;gap:4px;margin:0 0 16px;padding:14px 16px;border:1px solid #e1d5c9;border-radius:14px;background:#faf6f1}
.trip-address small{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#8a7f78}
.trip-address strong{font-size:16px;overflow-wrap:anywhere}
.trip-address span{font-size:13px;color:#667174}
.trip-bank-request{display:flex;flex-wrap:wrap;align-items:center;gap:12px;justify-content:space-between;margin:0 0 16px;padding:16px 18px;border:1px dashed #d9cbbc;border-radius:14px;background:#faf6f1}
.trip-bank-request div{display:grid;gap:3px;min-width:0}
.trip-bank-request small{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#8a7f78}
.trip-bank-request strong{font-size:16px}
.trip-bank-request span{font-size:13px;color:#667174;overflow-wrap:anywhere}
.booking-bank{margin-top:10px;padding-top:10px;border-top:1px solid #e6ded4}
.booking-bank summary{cursor:pointer}
.booking-bank-form{margin-top:10px;display:grid;gap:10px}
.booking-bank-form .triple{gap:10px}
.booking-alias{margin-top:10px;padding-top:10px;border-top:1px solid #e6ded4}
.booking-alias-form{margin-top:10px;display:grid;gap:10px}
.booking-alias-form .pair{gap:14px}
.admin-house.is-hidden{opacity:.62}
.house-order{display:flex;gap:6px}
.house-order button{padding:6px 10px}
.admin-house .status{margin-left:8px}

.admin-domain{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:#667174}
.admin-domain select{padding:6px 10px;border:1px solid #ddd3c9;border-radius:10px;background:#fffdfa;font-size:13px;color:#283437}


