/* Public website only. Existing Willa typography, colours and geometry remain authoritative. */
.portal-search,.portal-price-search{background:var(--cream,#f2ece4);border:1px solid var(--line,#ddd1c4);padding:24px;margin-block:24px;color:var(--ink,#282525)}
.portal-stay-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(100px,.65fr) minmax(190px,1.2fr);gap:16px;align-items:end;text-align:left}
.portal-stay-form label{display:grid;gap:8px;font-family:Montserrat,sans-serif;font-size:12px;font-weight:500;min-width:0}
.portal-stay-form input{background:#fff;color:#282525;border:1px solid #ddd1c4;border-radius:2px;padding:12px;width:100%;min-width:0;min-height:48px;font-family:Montserrat,sans-serif;font-size:16px;box-sizing:border-box}
.portal-stay-form .button{min-height:48px;justify-content:center;width:100%;padding:12px 16px;font-size:13px;box-sizing:border-box;text-align:center}
.portal-form-note,.portal-price-status{margin:14px 0 0!important;font-size:12px!important;line-height:1.7!important;color:#655e58!important}
.portal-price{padding-top:20px!important;border-top:1px solid #ddd1c4;margin-top:18px;color:#282525}
.portal-price-amount{display:flex;align-items:baseline;gap:7px}.portal-price-amount small{font-size:12px}.portal-price-amount strong{font-family:Montserrat,sans-serif;font-size:27px;line-height:1.25;color:#9c3b3b}
.portal-price-unit,.portal-price-date,.portal-price-note,.portal-rate-name{font-family:Montserrat,sans-serif;font-size:12px!important;line-height:1.65!important;margin:7px 0!important;color:#655e58}
.portal-price-date{color:#282525}.portal-rate-name{font-weight:600;color:#282525}.portal-price .button{font-size:12px;padding:12px 14px;margin-top:12px;min-height:44px;white-space:normal;text-align:center}
.portal-price .text-link{font-size:13px;min-height:44px;display:inline-flex;align-items:center}
.portal-business-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:24px}
.portal-business-card{padding:24px;background:#fff;border:1px solid #ddd1c4;min-width:0}.portal-business-card h3{font-size:25px;line-height:1.25;margin:12px 0 20px}.portal-business-card .button{font-size:12px;margin-top:16px}
.portal-season-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-block:32px 64px}
.portal-season{background:#fdfaf7;border:1px solid #ddd1c4;padding:28px;display:flex;flex-direction:column;align-items:flex-start;min-width:0}.portal-season h2{font-size:28px;line-height:1.25;margin:12px 0 18px}.portal-season>p:not(.eyebrow){font-size:14px;line-height:1.8}.portal-season .button{font-size:12px;margin-top:auto;min-height:44px}.portal-season-dates{color:#9c3b3b;margin-top:20px}.portal-season .portal-price-note{margin-bottom:24px!important}
.portal-offer-intro{max-width:850px}.portal-offer-intro>p{font-size:16px;line-height:1.8}.portal-offer-points{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:32px 0}.portal-offer-points>div{padding:24px;border-top:1px solid #ddd1c4;background:#f2ece4}.portal-offer-points h3{font-size:23px;margin-bottom:12px}.portal-offer-points p{font-size:14px;line-height:1.8}
.room-detail .portal-stay-form{grid-template-columns:1fr 1fr}.room-detail .portal-stay-form .button{grid-column:1/-1}.room-detail .portal-price-search{padding:18px;margin:16px 0}
.booking-card .portal-stay-form{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.booking-card .portal-stay-form .button{grid-column:1/-1}.booking-card .portal-price-search{padding:16px;margin:20px 0;border-inline:0}.booking-card .portal-stay-form input{font-size:14px;padding:9px}.booking-card .portal-price-search>.eyebrow{font-size:10px}.booking-card .portal-price{margin-bottom:24px}.booking-card .portal-price .button{width:100%;box-sizing:border-box}.booking-card .portal-stay-form label{font-size:11px}
.portal-stay-form :focus-visible,.portal-price :focus-visible,.portal-season :focus-visible{outline:2px solid #9c3b3b;outline-offset:4px}
@media(max-width:1000px){.portal-stay-form{grid-template-columns:1fr 1fr}.portal-business-results,.portal-season-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-offer-points{grid-template-columns:1fr}}
@media(max-width:600px){.portal-search,.portal-price-search{padding:16px;margin-block:20px}.portal-stay-form{grid-template-columns:minmax(0,1fr);gap:14px}.portal-stay-form input{width:100%;max-width:100%}.portal-business-results,.portal-season-grid{grid-template-columns:minmax(0,1fr)}.portal-season{padding:24px}.portal-season h2{font-size:27px}.room-detail .portal-stay-form{grid-template-columns:minmax(0,1fr)}.portal-price-amount strong{font-size:26px}}
.portal-booking-open{overflow:hidden}
.portal-booking-dialog{width:min(1440px,calc(100vw - 48px));height:calc(100dvh - 48px);max-width:none;max-height:none;padding:0;border:1px solid #ddd1c4;border-radius:3px;background:#fdfaf7;box-shadow:0 24px 90px #28252540;overflow:hidden}
.portal-booking-dialog::backdrop{background:#28252588;backdrop-filter:blur(3px)}
.portal-booking-dialog iframe{width:100%;height:100%;border:0;display:block;background:#fdfaf7}
.portal-booking-dialog [hidden]{display:none!important}
.portal-booking-loading{height:100%;display:flex;flex-direction:column;gap:18px;align-items:center;justify-content:center;padding:24px;text-align:center;color:#655e58;font:14px/1.7 Montserrat,Arial,sans-serif}
.portal-booking-loading strong{font:36px 'Playfair Display',Georgia,serif;color:#9c3b3b}.portal-booking-loading a{color:#9c3b3b}.portal-booking-loading button{border:1px solid #ddd1c4;min-height:44px;background:#fff;color:#9c3b3b;padding:10px 24px;font:inherit}
@media(max-width:760px){.portal-booking-dialog{width:100vw;height:100dvh;border:0;border-radius:0;margin:0}}

/* Shared Willa navigation: readable labels, quiet geometry and one clear booking action. */
.header{gap:24px;padding:22px clamp(24px,4vw,76px);background:#fdfaf7;border-bottom:1px solid #ddd1c4;min-height:108px}
.header .brand{width:180px;flex:0 0 180px}.header .brand img{width:100%;height:auto}
/* The same outlined shape and type as the Menu control. Icons remain decorative. */
.header .desktop-nav{flex:1;gap:16px;margin-left:0;justify-content:center;align-items:stretch}.header .desktop-nav>a{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #decabe;border-radius:5px;background:linear-gradient(145deg,#fffdfb,#f9f2eb);box-shadow:0 2px 5px #582a2310;padding:13px 12px;font:600 15px/1.4 Montserrat,Arial,sans-serif;letter-spacing:0;color:#9c3b3b;min-height:52px;white-space:nowrap;transition:background .18s,border-color .18s,color .18s}
.header .desktop-nav .site-nav-icon{width:22px;height:22px;padding:2px;flex:none;color:#9c3b3b;border-radius:4px;background:#f0e3d7}
.header .desktop-nav>a:hover,.header .desktop-nav>a[aria-current=page]{background:#f2e8df;color:#9c3b3b;border-color:#b77570;box-shadow:none;transform:none}
.header .desktop-nav>a:focus-visible{outline:2px solid #9c3b3b;outline-offset:3px}
.header .header-actions{gap:14px;margin-left:0;flex-shrink:0}.header .header-book{min-height:52px;padding:14px 23px;font-size:16px;gap:24px;border-radius:2px;box-shadow:none}.header .menu summary{border:1px solid #ddd1c4;border-radius:5px;padding:14px 18px;min-height:52px;background:linear-gradient(145deg,#fffdfb,#f9f2eb);box-shadow:0 2px 5px #582a2310;outline:none;font:600 15px/1.4 Montserrat,Arial,sans-serif;gap:15px}.header .menu summary:hover,.header .menu[open] summary{border-color:#9c3b3b;color:#9c3b3b}.header .menu summary i{font-style:normal;font-size:22px;line-height:1}.header .menu summary:focus-visible{outline:2px solid #9c3b3b;outline-offset:4px}
.header .menu-panel{padding:32px max(24px,calc((100vw - 1300px)/2)) 36px;background:#fdfaf7}.header .menu-title{font-size:38px;margin-bottom:24px;color:#9c3b3b}.header .menu-links>a{font-size:17px;line-height:1.5;min-height:64px}.header .menu-links>a.menu-promo-link:before{content:none;display:none}.header .menu-links>a.menu-promo-link{font-weight:600}.header .menu-phone{font-size:24px}
@media(min-width:1400px){.header .desktop-nav{display:flex!important}}
@media(min-width:1400px) and (max-width:1599px){.header{gap:16px;padding-inline:24px}.header .desktop-nav{gap:14px}.header .brand{width:150px;flex-basis:150px}.header .desktop-nav>a{padding-inline:10px;gap:6px}.header .header-actions{gap:10px;margin-left:0}.header .header-book{padding-inline:18px;gap:18px}}
@media(max-width:1399px){.header .desktop-nav{display:none!important}.header .header-actions{margin-left:auto}.header{min-height:96px;padding:18px 28px}}
@media(max-width:650px){.header{padding:14px 18px;min-height:80px;gap:14px}.header .brand{width:122px;flex-basis:122px}.header .header-actions{gap:8px}.header .header-book{padding:12px;font-size:13px;min-height:44px;gap:9px}.header .header-book>span{display:none}.header .menu summary{padding:10px 12px;min-height:44px;gap:8px;font-size:13px}.header .menu-panel{padding:24px 22px;max-height:calc(100dvh - 196px - env(safe-area-inset-bottom));overscroll-behavior:contain}.header .menu-title{font-size:29px}.header .menu-links>a{font-size:16px;min-height:58px}}

.header .menu-links>a{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:12px;font-weight:400}
.header .menu-links>a.menu-promo-link{font-weight:400}
.header .menu-links>a>.menu-item-label{font-size:inherit;line-height:inherit;margin-left:0;min-width:0}
.header .menu-links .menu-item-icon{width:28px;height:28px;padding:4px;box-sizing:border-box;display:block;border-radius:5px;background:#f0e3d7;color:#9c3b3b}
/* A quiet left-to-right invitation, followed by a pause; transforms never reflow the menu. */
@keyframes willa-nav-invite{0%,9%,100%{transform:scale(1);box-shadow:0 2px 5px #582a2310}4.5%{transform:scale(1.035);box-shadow:0 3px 12px #9c3b3b26,0 0 0 3px #c8a78b24,inset 0 0 18px #dec2a326}}
@media(min-width:1400px) and (prefers-reduced-motion:no-preference){.header .desktop-nav>a{animation:willa-nav-invite 12s ease-in-out infinite;transform-origin:center}.header .desktop-nav>a:nth-child(2){animation-delay:1.2s}.header .desktop-nav>a:nth-child(3){animation-delay:2.4s}.header .desktop-nav>a:nth-child(4){animation-delay:3.6s}.header .desktop-nav>a:nth-child(5){animation-delay:4.8s}.header .desktop-nav>a:nth-child(6){animation-delay:6s}.header .desktop-nav:focus-within>a{animation:none;transform:none}}
@media(min-width:1400px) and (hover:hover) and (pointer:fine){.header .desktop-nav:hover>a{animation:none;transform:none}}

/* Editorial pages keep all copy while making the reading rhythm explicit. */
.article-copy{counter-reset:willa-section;min-width:0}.article-copy .article-section{position:relative;padding:30px 32px 32px 64px;margin:0 0 24px;border:1px solid #e6dbcf;background:#fffdfb;counter-increment:willa-section}.article-copy .article-section:before{content:counter(willa-section,decimal-leading-zero);position:absolute;left:21px;top:36px;color:#9c3b3b;font:500 12px/1.3 Montserrat,Arial,sans-serif;letter-spacing:.08em}.article-copy .article-section h2{font-size:clamp(27px,2.5vw,36px);line-height:1.2;margin:0 0 20px;color:#9c3b3b;max-width:30ch}.article-copy .article-section p,.article-copy .article-section li{font-size:16px;line-height:1.85;color:#514b47;max-width:68ch}.article-copy .article-section p+p{margin-top:16px}.article-copy .article-section p:last-child{margin-bottom:0}.article-aside{padding:26px;background:#f2ece4;border-top:2px solid #9c3b3b}.article-aside .eyebrow{font-size:12px}.article-aside>p{font-size:15px;line-height:1.75}.article-aside h2{font-size:31px}.article-aside .button{font-size:14px;padding:16px;min-height:50px}.article-aside .info-link{font-size:14px;line-height:1.7}
@media(max-width:650px){.article-copy .article-section{padding:24px 22px 26px;margin-bottom:18px}.article-copy .article-section:before{position:static;display:block;margin-bottom:12px}.article-copy .article-section h2{font-size:28px}.article-copy .article-section p,.article-copy .article-section li{font-size:15px;line-height:1.85}.article-aside{padding:24px}}

/* Stay offers are an invitation to the live catalogue, not hard-coded discounts. */
.stay-offers-hero{display:grid;grid-template-columns:1.05fr 1fr;gap:60px;align-items:center;padding-block:68px 48px}.stay-offers-copy .eyebrow{font-size:12px;line-height:1.8}.stay-offers-copy h1{font-size:clamp(42px,4.6vw,68px);line-height:1.06;margin:22px 0 28px;letter-spacing:-.02em}.stay-offers-copy h1 em{color:#9c3b3b;font-weight:400}.stay-offers-copy>p:not(.eyebrow){font-size:17px;line-height:1.85;max-width:49ch}.stay-offers-copy>.text-link{font-size:15px;margin-top:20px;min-height:44px;display:inline-flex;gap:24px;align-items:center}.stay-offers-image{margin:0;position:relative}.stay-offers-image img{width:100%;height:430px;object-fit:cover}.stay-offers-image figcaption{background:#9c3b3b;color:#fff8f0;padding:17px 24px;font:21px/1.4 'Playfair Display',Georgia,serif}
.stay-offers-search{padding-block:30px 40px}.stay-offers-search h2{font-size:33px;margin:8px 0 0}.stay-offers-search .portal-search{margin:22px 0 0;padding:26px 30px}.stay-offers-catalogue{scroll-margin-top:130px;padding-block:36px 64px}.stay-offers-catalogue .section-heading{align-items:end;gap:30px}.stay-offers-catalogue .section-heading h2{font-size:44px}.stay-offers-catalogue .section-heading>p{font-size:14px;line-height:1.8;color:#655e58;max-width:42ch}.stay-offers-filters{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.stay-offers-filters button{background:transparent;border:1px solid #ddd1c4;padding:12px 20px;min-height:46px;color:#514b47;font:500 14px/1.5 Montserrat,Arial,sans-serif;border-radius:2px;cursor:pointer}.stay-offers-filters button[aria-pressed=true]{border-color:#9c3b3b;color:#9c3b3b;background:#f2ece4;box-shadow:inset 0 -2px #9c3b3b}.stay-offers-filters button:focus-visible{outline:2px solid #9c3b3b;outline-offset:3px}
.stay-offers-page .portal-season-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:28px 0 0}.stay-offers-page .portal-season{padding:30px 32px;background:#fff;border-top:2px solid #9c3b3b}.stay-season-top{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%}.stay-season-top .eyebrow{font-size:10px;line-height:1.5;letter-spacing:.1em}.stay-season-min{background:#f2ece4;padding:7px 12px;white-space:nowrap;color:#9c3b3b;font-size:12px}.stay-offers-page .portal-season h2{font-size:33px;line-height:1.2;margin:24px 0 18px}.stay-season-copy{font-size:15px!important;line-height:1.8!important;max-width:54ch;margin:0 0 24px}.stay-season-details{display:grid;grid-template-columns:1.3fr 1fr;gap:18px;width:100%;padding:18px 0;border-top:1px solid #e6dbcf;margin:0 0 22px}.stay-season-details dt{font-size:11px;color:#655e58;margin-bottom:7px}.stay-season-details dd{font-size:13px;line-height:1.6;margin:0;color:#282525}.stay-offers-page .portal-season .button{width:100%;font-size:13px;min-height:48px;display:flex;justify-content:space-between;gap:14px;padding:14px 18px;margin-top:auto}.stay-offers-empty{grid-column:1/-1;padding:24px;background:#f2ece4;font-size:15px}.stay-offers-help{padding-block:24px 70px}.stay-offers-help>h2{font-size:36px;max-width:32ch}.stay-offers-help .portal-offer-points>div{padding:25px 28px}.stay-offers-help .portal-offer-points>div>span{font-size:12px;color:#9c3b3b}.stay-offers-help .portal-offer-points h3{font-size:26px;margin:14px 0}.stay-offers-help .portal-offer-points p{font-size:14px;line-height:1.8}
@media(max-width:1000px){.stay-offers-hero{gap:30px;padding-top:40px}.stay-offers-image img{height:390px}.stay-offers-copy h1{font-size:44px}.stay-offers-copy>p:not(.eyebrow){font-size:15px}.stay-season-details{grid-template-columns:1fr}.stay-offers-page .portal-season{padding:25px}.stay-offers-page .portal-season h2{font-size:29px}}
@media(max-width:650px){.stay-offers-hero{grid-template-columns:1fr;padding-block:34px 20px;gap:28px}.stay-offers-copy h1{font-size:43px}.stay-offers-image img{height:255px}.stay-offers-image figcaption{font-size:20px}.stay-offers-search{padding-block:24px}.stay-offers-search h2{font-size:30px}.stay-offers-search .portal-search{padding:20px}.stay-offers-catalogue{padding-block:28px 40px}.stay-offers-catalogue .section-heading h2{font-size:35px}.stay-offers-catalogue .section-heading>p{font-size:13px}.stay-offers-filters{gap:8px}.stay-offers-filters button{font-size:12px;padding:10px 12px}.stay-offers-page .portal-season-grid{grid-template-columns:1fr;gap:18px}.stay-offers-page .portal-season{padding:24px}.stay-offers-page .portal-season h2{font-size:29px}.stay-season-copy{font-size:14px!important}.stay-offers-help>h2{font-size:31px}}

/* Shared public-site calendar. Native inputs remain a no-JS fallback. */
.willa-date-native{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none;clip-path:inset(50%)}
.portal-stay-form .willa-date-control,.inquiry-form .willa-date-control{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:62px;padding:14px 16px;background:white;border:1px solid #ddd1c4;color:#282525;font:500 18px/1.4 Montserrat,Arial,sans-serif;letter-spacing:0;text-transform:none;border-radius:2px;cursor:pointer}
.willa-date-control:hover,.willa-date-control:focus-visible{border-color:#9c3b3b!important;outline:2px solid #9c3b3b;outline-offset:2px}
.willa-calendar{box-sizing:border-box;width:min(780px,calc(100% - 28px));max-height:calc(100dvh - 28px);margin:auto;padding:28px;border:1px solid #ddd1c4;border-top:4px solid #9c3b3b;background:#fdfaf7;color:#282525;border-radius:3px;box-shadow:0 16px 70px #28252533;font-family:Montserrat,Arial,sans-serif;overflow:auto}
.willa-calendar::backdrop{background:#28252588}
.willa-calendar-head{display:flex;justify-content:space-between;gap:12px;align-items:start}.willa-calendar .eyebrow{font-size:11px;color:#9c3b3b;letter-spacing:.13em}.willa-calendar h2{font:32px/1.2 'Playfair Display',Georgia,serif;margin:10px 0 22px}.willa-calendar [data-close]{border:1px solid #ddd1c4;background:white;color:#9c3b3b;font-size:28px;width:42px;height:42px;cursor:pointer}
.willa-calendar-tabs{display:grid;grid-template-columns:1fr 1fr;gap:12px}.willa-calendar-tabs button{padding:14px;text-align:left;background:white;border:1px solid #ddd1c4;color:#282525;cursor:pointer}.willa-calendar-tabs button[aria-pressed=true]{border-color:#9c3b3b;box-shadow:inset 0 -3px #9c3b3b}.willa-calendar-tabs small{display:block;font:12px Montserrat,Arial,sans-serif;margin-bottom:6px}.willa-calendar-tabs strong{font:600 20px/1.4 Montserrat,Arial,sans-serif}
.willa-calendar-nav{display:flex;align-items:center;justify-content:space-between;margin:18px 0;gap:8px;font-size:12px}.willa-calendar-nav button{width:42px;height:40px;border:1px solid #ddd1c4;background:white;color:#9c3b3b;font-size:22px;cursor:pointer}.willa-calendar-nav button:disabled{opacity:.3;cursor:default}
.willa-calendar-months{display:grid;grid-template-columns:1fr 1fr;gap:28px}.willa-calendar-month h3{font:600 16px Montserrat,Arial,sans-serif;text-transform:capitalize;margin:0 0 18px}.willa-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.willa-calendar-grid>*{display:grid;place-items:center;min-width:0;aspect-ratio:1}.willa-calendar-weekday{font-size:11px;color:#655e58}.willa-calendar-grid button{border:1px solid transparent;background:transparent;color:#282525;font:500 15px Montserrat,Arial,sans-serif;cursor:pointer;border-radius:2px}.willa-calendar-grid button.in-range{background:#f2e5dd}.willa-calendar-grid button[aria-pressed=true]{background:#9c3b3b;color:white}.willa-calendar-grid button:disabled{color:#b7b1ac;cursor:default;background:transparent}.willa-calendar-grid button:not(:disabled):hover,.willa-calendar-grid button:focus-visible{outline:2px solid #9c3b3b;outline-offset:-2px}.willa-calendar-note{font-size:12px;margin:20px 0 0;color:#655e58}
.portal-available-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}.portal-available-category{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px;background:#fff;border:1px solid #ddd1c4;border-left:3px solid #9c3b3b;font-size:14px;text-decoration:none;color:#282525}.portal-available-category strong{color:#9c3b3b;white-space:nowrap;font-size:16px}.portal-available-category:hover{border-color:#9c3b3b}
.room-card .portal-price{margin-top:auto;padding:20px 0;min-height:0}.room-card .portal-price p{margin:8px 0!important;line-height:1.5;font-size:13px}.room-card .portal-price .text-link{padding:12px 0;font-size:14px}.room-card .portal-price-note{color:#655e58}.room-card .portal-price-date{font-weight:500}.room-card .portal-price .button{font-size:14px;margin-top:12px}
.inquiry-form{border:1px solid #ddd1c4;border-top:3px solid #9c3b3b;background:#f2ece4;padding:clamp(24px,4vw,56px)!important;max-width:1080px;margin:auto}.inquiry-form>h2{color:#9c3b3b;font-size:clamp(30px,4vw,46px)}.inquiry-form .form-grid{gap:22px}.inquiry-form label{font-size:14px!important;line-height:1.5}.inquiry-form input:not([type=checkbox]):not([type=hidden]),.inquiry-form textarea{font:500 16px/1.5 Montserrat,Arial,sans-serif;padding:16px;border:1px solid #d6c4b8;border-radius:2px;background:#fff;color:#282525}.inquiry-form textarea{min-height:150px;resize:vertical}.inquiry-form input:focus,.inquiry-form textarea:focus{outline:2px solid #9c3b3b;outline-offset:2px}.inquiry-form .button{min-height:58px;margin-top:24px;font-size:16px}.inquiry-form .form-note,.inquiry-form .form-provider-note{font-size:13px;line-height:1.6}.inquiry-form .form-status{margin-top:20px;padding:20px;background:#fff;border-left:3px solid #708569;font-size:15px;line-height:1.6}.inquiry-form .form-status.is-error{border-color:#9c3b3b}.inquiry-form [disabled]{opacity:.6}
@media(max-width:650px){.willa-calendar{padding:20px;width:calc(100% - 20px)}.willa-calendar-months{grid-template-columns:1fr}.willa-calendar-month:nth-child(2){display:none}.willa-calendar-grid>*{min-height:38px}.willa-calendar h2{font-size:28px}.willa-calendar-tabs strong{font-size:18px}.portal-available-results{grid-template-columns:1fr}.portal-available-category{padding:12px;gap:12px;font-size:13px}.portal-available-category strong{font-size:14px}.portal-stay-form .willa-date-control,.inquiry-form .willa-date-control{font-size:17px;min-height:56px}}

.portal-season.stay-story{padding:0;overflow:hidden;display:flex;flex-direction:column;border:1px solid #ddc9b6;background:#fffdfa}.stay-story-photo{position:relative;height:160px;overflow:hidden}.stay-story-photo img{width:100%;height:100%;object-fit:cover;object-position:center 50%}.stay-story-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#342023a6,transparent)}.stay-story-photo>span{position:absolute;bottom:17px;left:26px;z-index:1;color:#fff;font:600 10px/1.5 Montserrat,Arial,sans-serif;letter-spacing:1.6px}.stay-story-body{padding:28px;display:flex;flex-direction:column;flex:1}.stay-story-body h2{font-size:29px;line-height:1.3}.stay-story .stay-season-copy{font-size:16px;color:#9c3b3b;line-height:1.7}.stay-story-copy{font-size:14px;line-height:1.85;color:#62594f}.stay-terms-note,.stay-sample{font-size:12px;line-height:1.7;color:#716359}.stay-live-terms{border-top:1px solid #d9c4ae;margin:14px 0 22px}.stay-live-terms summary{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:600;color:#9c3b3b;padding:17px 0;cursor:pointer;gap:12px}.stay-live-terms summary span{font-size:22px}.stay-live-terms[open] summary span{transform:rotate(45deg)}.stay-live-terms section{border-top:1px solid #e8ddcf;padding:12px 0}.stay-live-terms h3{font:600 15px/1.6 Montserrat,Arial,sans-serif;color:#9c3b3b}.stay-live-terms p{font-size:13px;line-height:1.8}.stay-story-body>.button{margin-top:auto}.booking-method-dialog,.beata-stay-dialog{border-radius:4px}.booking-choice-options>button,.beata-work-offers .public-beata-offer{border-radius:4px}
@media(max-width:650px){.stay-story-body{padding:22px}.stay-story-body h2{font-size:25px}.stay-story-photo{height:140px}}

/* Room sidebar keeps current prices within its own narrow column. */
.booking-card .portal-available-results{grid-template-columns:minmax(0,1fr)}
.portal-available-category>span{min-width:0;overflow-wrap:anywhere}
