/* New directory and contact pages only; reuse the established Luxury & Warm palette. */
.hub-page .hub-intro{max-width:1280px;margin:auto;padding:52px 6% 45px}
.hub-page .hub-intro>.back{display:inline-block;margin-bottom:38px;font-size:11px;color:var(--muted);text-decoration:none}
.hub-page .hub-intro>.section-kicker{display:block;font-size:10px;letter-spacing:.18em;margin-bottom:22px}
.hub-page .hub-intro-row{display:grid;grid-template-columns:1.15fr 1fr;gap:7%;align-items:end}
.hub-page .hub-intro h1{font:400 clamp(40px,4.6vw,65px)/1.16 var(--serif);letter-spacing:-.02em;margin:0;max-width:680px}
.hub-page .hub-intro-row>p{font:400 14px/1.95 var(--sans);color:var(--muted);margin:0;max-width:460px}
.hub-page .hub-apartment-grid{max-width:1280px;margin:0 auto;padding:32px 6% 80px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:70px 6%}
.hub-page .apartment-card{min-width:0}
.hub-page .card-photo{aspect-ratio:2200/1467;background:#eee7dd}
.hub-page .card-photo img{object-fit:contain;transform:none;filter:none}
.hub-page .apartment-card h2{font:400 34px/1.2 var(--serif);letter-spacing:.04em;padding:23px 0 16px;margin:0;border-bottom:1px solid var(--line)}
.hub-page .hub-room-description{font:400 13px/1.9 var(--sans);color:var(--muted);margin:18px 0 0}
.hub-page .card-facts{min-height:0;padding:20px 0 26px}
.hub-page .card-facts li{font-size:10px}
.hub-page .card-link{display:inline-block;line-height:1.8}
.hub-page .hub-invitation{padding:65px 7% 75px;text-align:center;background:#eee7dd;border-block:1px solid var(--line)}
.hub-page .hub-invitation h2{font:400 clamp(32px,3.3vw,46px)/1.3 var(--serif);margin:20px 0}
.hub-page .hub-invitation p{max-width:590px;margin:0 auto 27px;font-size:13px;line-height:1.9;color:var(--muted)}
.hub-page .hub-button{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;padding:17px 24px;background:#75634f;color:#fffaf2;border:1px solid #75634f;font:500 11px/1.6 var(--sans);letter-spacing:.035em;text-decoration:none;cursor:pointer;transition:background .2s}
.hub-page .hub-button:hover{background:#5e4e3f}
.hub-page .hub-button:disabled{opacity:.65;cursor:wait}
.hub-page .hub-button span{font-size:18px;line-height:1}
.hub-page .contact-layout{max-width:1280px;margin:auto;padding:12px 6% 85px;display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:8%;align-items:start}
.hub-page .contact-details{padding-top:27px;border-top:1px solid var(--line)}
.hub-page .contact-details h2,.hub-page .inquiry-panel h2{font:400 31px/1.3 var(--serif);margin:0 0 28px}
.hub-page .contact-details dl{margin:0}
.hub-page .contact-details dl>div{padding:20px 0;border-bottom:1px solid var(--line)}
.hub-page .contact-details dt{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.hub-page .contact-details dd{font-size:14px;line-height:1.8;margin:0;overflow-wrap:anywhere}
.hub-page .contact-details dd span{font-size:12px;color:var(--muted)}
.hub-page .contact-details dd a{color:inherit;text-decoration:none}
.hub-page .contact-details>.line-link{display:inline-block;margin:22px 0;font-size:11px}
.hub-page .contact-message-links{display:flex;gap:24px;flex-wrap:wrap;font-size:12px}
.hub-page .contact-message-links a{color:inherit;text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:6px}
.hub-page .contact-note{font-size:12px;line-height:1.9;color:var(--muted);margin:30px 0 0;max-width:370px}
.hub-page .inquiry-panel{padding:35px 36px;background:#eee7dd;border:1px solid #ded2c3;scroll-margin-top:30px}
.hub-page .inquiry-panel>.section-kicker{font-size:9px;letter-spacing:.13em}
.hub-page .inquiry-panel h2{margin:14px 0 29px}
.hub-page .form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.hub-page .form-field{min-width:0;margin:0 0 23px}
.hub-page .form-field label{display:block;font:500 11px/1.7 var(--sans);margin-bottom:9px;color:#63574a}
.hub-page .form-field input,.hub-page .form-field select,.hub-page .form-field textarea{display:block;box-sizing:border-box;width:100%;min-width:0;max-width:100%;border:1px solid #ccbdab;border-radius:0;background:#f8f5ef;color:var(--ink);padding:12px;font:400 14px/1.5 var(--sans);min-height:46px}
.hub-page .form-field textarea{resize:vertical;min-height:140px}
.hub-page .form-field :focus-visible{outline:2px solid #8e7354;outline-offset:2px}
.hub-page .stay-dates{padding:0;margin:0;border:0;min-width:0}
.hub-page .stay-dates legend{padding:0 0 14px;font-size:10px;letter-spacing:.02em;color:var(--muted)}
.hub-page .form-disclosure{font-size:10px;line-height:1.85;color:var(--muted);margin:0 0 22px}
.hub-page .form-disclosure a{color:inherit;text-underline-offset:3px}
.hub-page .form-honeypot{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.hub-page .form-status{font-size:12px;line-height:1.8;margin:20px 0 0;padding:14px 16px;background:#f8f5ef;border-left:2px solid #8e7354;overflow-wrap:anywhere}
.hub-page .form-status[data-state=error]{border-color:#925a44;color:#75412d}
.hub-page .main-nav a[aria-current=page]{color:#8e7354}
@media(max-width:900px){.hub-page .contact-layout{gap:5%;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}.hub-page .inquiry-panel{padding:27px 24px}.hub-page .form-row{gap:14px}}
@media(max-width:750px){
 .hub-page .hub-intro{padding:30px 7% 30px}
 .hub-page .hub-intro>.back{margin-bottom:30px;font-size:10px}
 .hub-page .hub-intro>.section-kicker{font-size:9px;margin-bottom:18px}
 .hub-page .hub-intro-row{grid-template-columns:1fr;gap:23px}
 .hub-page .hub-intro h1{font-size:39px}
 .hub-page .hub-intro-row>p{font-size:12px;line-height:1.9}
 .hub-page .hub-apartment-grid{grid-template-columns:1fr;padding:8px 7% 55px;gap:43px}
 .hub-page .apartment-card h2{font-size:30px;padding:18px 0 13px}
 .hub-page .hub-room-description{font-size:12px}
 .hub-page .card-facts{gap:13px;padding-bottom:22px}
 .hub-page .card-facts li{font-size:9px}
 .hub-page .hub-invitation{padding:45px 7% 50px}
 .hub-page .hub-invitation p{font-size:12px}
 .hub-page .contact-layout{grid-template-columns:1fr;padding:0 7% 55px;gap:35px}
 .hub-page .contact-details{padding-top:23px}
 .hub-page .contact-details h2{font-size:28px;margin-bottom:14px}
 .hub-page .contact-details dl>div{padding:15px 0}
 .hub-page .contact-note{margin-top:23px}
 .hub-page .inquiry-panel{padding:26px 20px}
 .hub-page .inquiry-panel h2{font-size:29px}
 .hub-page .form-row{grid-template-columns:1fr;gap:0}
 .hub-page .stay-dates .form-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 .hub-page .form-field input,.hub-page .form-field select,.hub-page .form-field textarea{font-size:16px;padding:11px 9px}
 .hub-page .hub-button{min-height:48px}
}
@media(prefers-reduced-motion:reduce){.hub-page .hub-button{transition:none}}
.hub-page .stay-calendar{background:#f8f5ef;border:1px solid #ccbdab;padding:16px;margin:0 auto 25px;max-width:380px}
.hub-page .stay-calendar[hidden]{display:none}
.hub-page .calendar-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}
.hub-page .calendar-heading strong{font:500 13px/1.4 var(--sans);text-transform:capitalize}
.hub-page .calendar-heading button{border:0;background:transparent;color:var(--ink);font-size:20px;width:40px;min-height:40px;cursor:pointer}
.hub-page .calendar-heading button:disabled{opacity:.25;cursor:default}
.hub-page [data-calendar-step]{font-size:11px;line-height:1.6;min-height:35px;margin:10px 0;color:var(--muted)}
.hub-page .calendar-weekdays,.hub-page .calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;text-align:center}
.hub-page .calendar-weekdays span{font-size:10px;color:var(--muted);padding:5px 0 9px}
.hub-page .calendar-days button{font:400 12px/1 var(--sans);aspect-ratio:1;min-height:34px;width:100%;border:1px solid transparent;background:transparent;color:var(--ink);cursor:pointer;padding:0;border-radius:0}
.hub-page .calendar-days button:hover:not(:disabled){border-color:#8e7354}
.hub-page .calendar-days button:disabled{opacity:.27;cursor:default}
.hub-page .calendar-days button.is-today{border-bottom-color:#b5a18a}
.hub-page .calendar-days button.in-range{background:#e7ddcd}
.hub-page .calendar-days button[aria-pressed=true]{background:#75634f;color:#fffaf2}
.hub-page .calendar-note{font-size:10px;line-height:1.7;color:var(--muted);border-top:1px solid var(--line);padding-top:12px;margin:13px 0 0}
@media(max-width:400px){.hub-page .stay-calendar{padding:10px}.hub-page .calendar-days{gap:1px}.hub-page .calendar-days button{min-height:32px}}
/* A quiet, editorial date picker within the existing contact form. */
.hub-page .stay-calendar{max-width:410px;padding:25px 23px 18px;background:linear-gradient(145deg,#fffdf8,#f6f0e5);border:1px solid #d6c5ab;border-radius:9px;box-shadow:0 12px 30px #6d53350b,0 2px 5px #6d533508}
.hub-page .calendar-eyebrow{font:500 8px/1.6 var(--sans);letter-spacing:.21em;color:#9b805c;text-align:center;margin-bottom:18px}
.hub-page .calendar-selection{display:grid;grid-template-columns:1fr 1fr;border:1px solid #d9cbb7;border-radius:5px;overflow:hidden;margin-bottom:25px}
.hub-page .calendar-selection button{position:relative;min-width:0;text-align:left;border:0;background:transparent;color:#4a4035;padding:13px 14px;cursor:pointer}
.hub-page .calendar-selection button+button{border-left:1px solid #d9cbb7}
.hub-page .calendar-selection button>span{display:block;font:500 8px/1.5 var(--sans);letter-spacing:.15em;color:#8a775f;margin-bottom:6px}
.hub-page .calendar-selection strong{display:block;font:400 18px/1.35 var(--serif);padding-right:14px;white-space:nowrap}
.hub-page .calendar-selection i{position:absolute;right:12px;bottom:15px;font-size:14px;font-style:normal;color:#9f835c}
.hub-page .calendar-selection button[aria-pressed=true]{background:#e9ddc9;box-shadow:inset 0 -2px #a78656}
.hub-page .calendar-heading strong{font:400 24px/1.3 var(--serif);color:#4d4235}
.hub-page .calendar-heading button{display:flex;align-items:center;justify-content:center;border:1px solid #ded2bf;border-radius:50%;width:32px;min-height:32px;height:32px;font-size:16px;color:#8e7354;transition:background .2s,border-color .2s}
.hub-page .calendar-heading button:hover:not(:disabled){background:#eee3d1;border-color:#b9a17f}
.hub-page [data-calendar-step]{text-align:center;min-height:0;font-size:10px;margin:14px 0 20px;line-height:1.6;color:#9a8468}
.hub-page .calendar-weekdays{gap:0;border-bottom:1px solid #e6dbca;margin-bottom:7px}
.hub-page .calendar-weekdays span{font-size:9px;letter-spacing:.06em;color:#99856b;padding-bottom:13px}
.hub-page .calendar-days{gap:3px 0}
.hub-page .calendar-days button{position:relative;isolation:isolate;height:42px;min-height:42px;aspect-ratio:auto;border:0;border-radius:0;background:transparent!important;font-size:12px;color:#55493b}
.hub-page .calendar-days button>span{position:relative;z-index:2}
.hub-page .calendar-days button::after{content:'';position:absolute;z-index:1;left:50%;top:50%;width:34px;height:34px;border-radius:50%;transform:translate(-50%,-50%);border:1px solid transparent;box-sizing:border-box}
.hub-page .calendar-days button:hover:not(:disabled):not([aria-pressed=true])::after{border-color:#b69a70;background:#ede2d1}
.hub-page .calendar-days button.in-range::before,.hub-page .has-range .calendar-days button.is-arrival::before,.hub-page .has-range .calendar-days button.is-departure::before{content:'';position:absolute;z-index:0;left:0;right:0;top:4px;bottom:4px;background:#e9decc}
.hub-page .has-range .calendar-days button.is-arrival::before{left:50%}
.hub-page .has-range .calendar-days button.is-departure::before{right:50%}
.hub-page .calendar-days button[aria-pressed=true]{color:#fffaf1}
.hub-page .calendar-days button[aria-pressed=true]::after{background:#8d7450;border-color:#8d7450;box-shadow:0 2px 5px #73593918}
.hub-page .calendar-days button.is-today:not([aria-pressed=true])>span::after{content:'';position:absolute;width:3px;height:3px;left:calc(50% - 1.5px);bottom:-8px;background:#b38f56;border-radius:50%}
.hub-page .calendar-days button:focus-visible{outline:1px solid #a88754;outline-offset:-1px;border-radius:4px}
.hub-page .calendar-summary{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid #e6dbca;padding-top:15px;margin-top:15px;font-size:10px;line-height:1.7;color:#8a7356}
.hub-page .calendar-summary button{font:400 9px/1.6 var(--sans);color:#8a7356;background:none;border:0;border-bottom:1px solid #b9a381;cursor:pointer;padding:0}
.hub-page .calendar-note{border:0;margin:10px 0 0;padding:0;font-size:9px;line-height:1.7;color:#a08d73}
@media(max-width:750px){.hub-page .stay-calendar{padding:20px 14px 15px}.hub-page .calendar-heading strong{font-size:22px}.hub-page .calendar-selection button{padding:12px 10px}.hub-page .calendar-selection strong{font-size:17px}.hub-page .calendar-selection i{right:8px;font-size:12px}.hub-page .calendar-days button{height:37px;min-height:37px}.hub-page .calendar-days button::after{width:30px;height:30px}.hub-page .calendar-days button.in-range::before,.hub-page .has-range .calendar-days button.is-arrival::before,.hub-page .has-range .calendar-days button.is-departure::before{top:3.5px;bottom:3.5px}}
@media(prefers-reduced-motion:reduce){.hub-page .calendar-heading button{transition:none}}

.hub-page .calendar-selection button[data-empty=true] strong{font:400 12px/1.9 var(--sans);color:#9b876c;letter-spacing:0}

/* Apartment directory: one clear H1 followed by its introduction. */
.hub-page.apartments-page .hub-intro-row{display:block}
.hub-page.apartments-page .hub-intro h1{max-width:none;white-space:nowrap}
.hub-page.apartments-page .hub-intro-row>p{max-width:760px;margin:22px 0 0}
@media(max-width:750px){.hub-page.apartments-page .hub-intro h1{font-size:clamp(21px,6.7vw,39px)}.hub-page.apartments-page .hub-intro-row>p{margin-top:18px}}

/* Single-line localized heading and concise amenity notes on the dedicated page only. */
.amenities-page .hub-intro-row{display:block}
.amenities-page .hub-intro h1{max-width:none;white-space:nowrap;font-size:clamp(15px,3.35vw,48px);letter-spacing:-.035em}
.amenities-page .hub-intro-row>p{margin:16px 0 0}
.amenities-page .amenities li{gap:15px}
.amenities-page .amenity-name{font:500 12px/1.6 var(--sans);letter-spacing:.04em}
.amenities-page .amenity-description{max-width:220px;margin:0;color:var(--muted);font:400 11px/1.75 var(--sans);letter-spacing:0}
@media(max-width:650px){.amenities-page .hub-intro h1{font-size:clamp(15px,4.25vw,24px);letter-spacing:-.045em}.amenities-page .amenity-description{font-size:10px;line-height:1.7}}
