
:root{--ivory:#f7f5f0;--paper:#fffdfa;--ink:#252925;--muted:#73756e;--forest:#344936;--sand:#eae4d8;--line:#dfded6;--radius:14px;--shell:1180px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0;background:var(--ivory);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:14px;line-height:1.5}h1,h2,h3{font-family:Georgia,"Times New Roman",serif;font-weight:500;line-height:1.08;letter-spacing:-.035em}h2{font-size:32px}h3{font-size:23px}p{margin:0}button,a,input,select{ -webkit-tap-highlight-color:transparent}button,a{transition:background .2s,color .2s}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a{text-decoration:none}img{object-fit:cover}button,input,select{font:inherit}input,select{min-width:0}input:focus,select:focus{outline:2px solid var(--forest);outline-offset:2px}:focus-visible{outline:3px solid #b19158;outline-offset:4px}[hidden]{display:none!important}.shell{width:min(var(--shell),calc(100% - 64px));margin-inline:auto}.button{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-height:48px;padding:13px 23px;border-radius:var(--radius);background:var(--forest);color:white;font-size:13px;font-weight:600;border:1px solid transparent}.button:hover{background:#263b2a}.button-outline{border-color:#f0eee2;background:transparent;color:inherit}.button-outline:hover{background:#ffffff18}.text-link{font-size:13px;font-weight:600;color:var(--forest);text-underline-offset:5px;text-decoration:underline;background:none;border:0}.site-header{height:90px;position:relative;z-index:20;background:var(--ivory)}.site-header.over-hero{position:absolute;inset:0 0 auto;color:white;background:transparent}.header-inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:22px}.brand{display:flex;align-items:center;gap:12px;white-space:nowrap}.brand svg{width:31px;height:45px;color:inherit}.brand>span{font-family:Georgia,serif;font-size:25px;letter-spacing:-1px}.brand small{display:block;font-family:Arial,sans-serif;letter-spacing:2.5px;font-size:8px;margin-top:1px}.nav-links{display:flex;gap:24px;font-size:12px}.menu-toggle{display:none}.cinematic{position:relative;background:#242e25;color:white;isolation:isolate}.cinematic>img{z-index:-2}.hero-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(13,20,15,.78),rgba(13,20,15,.3) 62%,rgba(13,20,15,.15)),linear-gradient(0deg,rgba(13,20,15,.35),transparent 60%)}.home-hero{min-height:570px;height:65vh;max-height:780px}.hero-content{position:relative;padding-top:155px;padding-bottom:95px}.eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:4px;color:#e3dcc3;margin-bottom:20px}.hero-content h1{font-size:clamp(55px,6.8vw,94px);letter-spacing:-3px;margin:0 0 6px}.hero-subtitle{font-size:clamp(20px,2.1vw,29px);font-weight:400}.hero-details{font-size:15px;margin-top:7px;color:#e9e7dd}.hero-actions{display:flex;gap:16px;margin-top:27px}.hero-note{position:absolute;right:0;bottom:85px;font-family:Georgia,serif;font-size:18px;color:#ebe7d9}.hero-note span{display:block;color:#c3b28c;margin-top:6px}.quick-booking{position:relative;margin-top:-42px;z-index:3;background:var(--ivory);border-radius:var(--radius);padding:10px;box-shadow:0 10px 25px #22251412}.quick-booking form{display:grid;grid-template-columns:1fr 1fr .8fr 1.2fr .85fr;gap:8px;align-items:center}.quick-booking label{display:block;background:var(--paper);border-radius:9px;padding:8px 15px;font-size:12px;font-weight:600}.quick-booking input,.quick-booking select{display:block;width:100%;border:0;background:transparent;margin-top:4px;color:var(--muted);height:25px}.quick-note{font-size:11px;color:#938d7a;padding-left:14px}.quick-results{display:grid;gap:10px;padding:20px}.stays-section{display:grid;grid-template-columns:230px 1fr;gap:30px;margin-top:32px}.stays-intro p{color:var(--muted);margin:16px 0 20px;max-width:215px}.stay-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.stay-card{position:relative;min-height:295px;overflow:hidden;border-radius:var(--radius);color:white;background:var(--forest);display:block}.stay-card img{transition:transform .5s}.stay-card:hover img{transform:scale(1.03)}.stay-overlay{position:absolute;inset:0;padding:18px;display:flex;flex-direction:column;justify-content:flex-end;background:linear-gradient(0deg,#10170deb,transparent 85%)}.stay-meta{font-size:10px;color:#dfded3;margin-bottom:6px}.stay-overlay h3{font-size:24px;margin:0 0 10px;max-width:310px}.stay-price{font-size:13px;position:relative;padding-right:38px}.stay-price strong{font-size:22px}.circle-arrow{position:absolute;right:0;bottom:0;border:1px solid #ddd8c7a0;border-radius:50%;width:36px;height:36px;display:grid;place-items:center}.section{margin-top:30px;margin-bottom:28px}.section-heading{display:flex;align-items:center;gap:24px;margin-bottom:14px}.section-heading h2{flex-shrink:0}.section-heading p{color:var(--muted);font-size:12px}.section-heading>.text-link{margin-left:auto;white-space:nowrap}.experience-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.experience-card{overflow:hidden;border-radius:var(--radius);background:#ede9e0}.experience-image{position:relative;height:135px}.media-placeholder{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#b3bda6;background:#394b3b}.media-placeholder>span{font:48px Georgia,serif}.media-placeholder small{font-size:9px;letter-spacing:2px;text-transform:uppercase}.experience-text{padding:11px 12px 15px;position:relative}.experience-text h3{font-size:18px;margin-bottom:3px}.experience-text>span{font-size:11px}.experience-text .mini-arrow{position:absolute;right:10px;bottom:13px;width:24px;height:24px;border:1px solid #c7bda8;border-radius:50%;display:grid;place-items:center}.review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.review-grid blockquote{background:#fffaf7;border-radius:var(--radius);margin:0;padding:18px}.review-person{display:flex;align-items:center;gap:10px;font-size:12px}.review-person small{display:block;font-size:10px;color:var(--muted)}.avatar{background:var(--sand);color:var(--forest);border-radius:50%;width:40px;height:40px;display:grid;place-items:center;font:22px Georgia,serif}.stars{margin-left:auto;color:#a67d3c;font-size:12px;letter-spacing:1px}.review-grid blockquote p{font-size:12px;color:#666b62;margin-top:13px;line-height:1.65}.steps{display:grid;grid-template-columns:240px repeat(4,1fr);gap:20px;align-items:start;margin-top:32px}.steps>div>p{color:var(--muted);font-size:12px;margin-top:7px}.step{display:flex;gap:12px;padding-top:8px}.step>span{border-radius:50%;background:var(--forest);color:white;display:grid;place-items:center;width:35px;height:35px;flex-shrink:0;font:18px Georgia,serif}.step strong{font-size:11px}.step p{font-size:11px;color:var(--muted);margin-top:6px}.location{display:grid;grid-template-columns:340px 1fr;gap:30px;align-items:center}.location p{font-size:13px;color:var(--muted);margin:10px 0 16px}.location-visual{display:grid;grid-template-columns:1.7fr 1fr;min-height:180px;border-radius:var(--radius);overflow:hidden}.map-preview{display:flex;flex-direction:column;align-items:center;justify-content:center;background:#dde5d4;color:var(--forest);border:14px solid #e6ebdf}.map-pin{font-size:35px}.map-preview small{font-size:11px;margin-top:6px}.location-photo{position:relative}.location-photo span{position:absolute;bottom:15px;left:20px;color:white;font:20px Georgia,serif;text-shadow:0 1px 4px black}.site-footer{margin-top:25px;background:#243126;color:#ecebdf;padding:28px 0 18px}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:24px}.footer-inner nav{display:flex;gap:25px;font-size:12px}.footer-bottom{margin-top:20px;display:flex;justify-content:space-between;font-size:10px;color:#c1c4b8}.footer-bottom em{font:italic 22px Georgia,serif}.page-shell{width:min(var(--shell),calc(100% - 64px));margin:40px auto 60px}.page-shell h1{font-size:48px;margin-bottom:22px}.property-hero{min-height:425px}.property-hero .hero-content{padding-top:132px;padding-bottom:48px}.property-hero h1{max-width:730px;font-size:clamp(37px,4.2vw,60px);line-height:1.02;letter-spacing:-1.5px}.property-hero .hero-details{margin:16px 0}.hero-price{font-size:20px;margin-bottom:20px}.hero-price strong{font-size:32px}.property-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:30px;align-items:start}.property-content{min-width:0}.breadcrumb{font-size:10px;color:var(--muted);margin:18px 0}.booking-panel{position:sticky;top:20px;background:var(--paper);border-radius:var(--radius);padding:24px;margin-top:-16px;z-index:2;box-shadow:0 8px 30px #282b2110}.booking-panel>h2{font-size:25px}.booking-panel>p{color:var(--muted);font-size:12px;margin:7px 0 16px}.editorial-gallery{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:125px 125px;gap:7px}.editorial-gallery>button{position:relative;border:0;overflow:hidden;border-radius:10px}.editorial-gallery>button:first-child{grid-row:span 2}.editorial-gallery>button>span{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;background:#0007;color:white;font-size:28px}.editorial-gallery small{font-size:12px}.gallery-modal{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;background:#151a16;color:white;border:0;padding:40px}.gallery-modal::backdrop{background:#000d}.lightbox-image{position:relative;height:85%}.gallery-close{position:absolute;z-index:2;right:20px;top:10px;font-size:35px}.gallery-controls{display:flex;justify-content:center;gap:35px;align-items:center;height:50px}.gallery-controls button{font-size:28px;padding:10px}.story-block{display:grid;grid-template-columns:1fr 180px;gap:25px;margin:28px 0}.story-block p{color:var(--muted);margin:12px 0;line-height:1.65}.story-image{position:relative;min-height:180px;border-radius:12px;overflow:hidden}.amenities{display:flex;flex-wrap:wrap;gap:24px;margin:22px 0;color:var(--forest);font-size:12px}.rate-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:14px 0}.rate-grid>div{padding:13px;background:white;border-radius:10px}.rate-grid small{display:block;color:var(--muted)}.rate-grid strong{font-size:19px}.rules-note{font-size:12px;color:var(--muted)}.property-content .experience-grid{grid-template-columns:repeat(3,1fr)}.property-content .review-grid{gap:9px}.property-content .review-grid blockquote{padding:12px}.property-content .review-person{flex-wrap:wrap}.property-content .section-heading{flex-wrap:wrap;gap:8px}.booking-flow{display:block!important}.booking-flow fieldset,.booking-flow aside{border:0!important;padding:0!important;background:none!important;border-radius:0!important}.booking-flow aside>h2{display:none}.booking-progress{display:flex;list-style:none;justify-content:space-between;margin:16px 0 20px;padding:0;font-size:10px;color:var(--muted)}.booking-progress li{display:grid;justify-items:center;gap:6px}.booking-progress li>span{width:31px;height:31px;border-radius:50%;background:#edeae3;display:grid;place-items:center;font-size:15px}.booking-progress .active{color:var(--forest)}.booking-progress .active>span{background:var(--forest);color:white}.date-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.date-fields label{font-size:11px!important;font-weight:400!important}.date-fields label:nth-child(3){grid-column:span 2}.booking-flow input{padding:10px!important;font-size:13px!important;border-color:var(--line)!important;border-radius:9px!important;margin-top:5px!important}.date-fields label>span{font-size:10px;line-height:1.4}.contact-fields{display:grid;gap:12px}.contact-fields label{font-size:12px}.booking-flow aside .mt-6{margin-top:16px}.booking-flow dl{font-size:12px!important}.booking-flow dl>div{margin-top:10px!important}.booking-flow .flow-next{width:100%;margin-top:20px}.flow-back{display:block;margin:12px auto}.booking-flow aside>p:last-child{font-size:10px!important;line-height:1.6!important;margin-top:12px!important}.availability-ok{background:#eaf1e5;border-radius:10px;color:#365e37;padding:13px;margin-bottom:16px;font-weight:600;font-size:12px}.availability-busy{background:#f8e6df;padding:13px;color:#842b22}.privacy-note{font-size:11px;color:var(--muted);margin-top:15px}.final-summary{font-size:12px;line-height:1.7}.final-summary h3{font-size:20px;margin-bottom:10px}.booking-rules{font-size:11px;margin-top:20px;color:var(--muted)}.check-times{display:flex;justify-content:space-between;margin:18px 0;color:var(--ink)}.booking-rules details{border-top:1px solid var(--line);padding:13px 0}.booking-rules summary{list-style:none;cursor:pointer;color:var(--ink);display:flex;justify-content:space-between}.booking-rules details p{margin-top:10px}.booking-signature{font:italic 29px Georgia,serif;text-align:center;color:var(--forest);padding:26px 0}.mobile-booking-bar{display:none}.booking-drawer{padding:0;border:0;background:var(--ivory);border-radius:26px 26px 0 0;max-width:100vw;width:100%;max-height:94dvh;inset:auto 0 0;margin:0;overflow:auto}.booking-drawer::backdrop{background:#08110bcc}.drawer-inner{padding:20px 24px 35px;position:relative}.drawer-inner>h2{font-size:34px;margin:16px 0 10px}.drawer-inner>p{font-size:16px;max-width:85%;margin-bottom:24px}.drawer-close{position:absolute;right:18px;top:24px;border:0;border-radius:50%;background:var(--sand);height:40px;width:40px;font-size:28px}.drawer-handle{width:45px;height:5px;background:#bab7ad;border-radius:4px;margin:auto}.booking-page{max-width:640px}.booking-page .booking-flow{padding:28px;background:var(--paper);border-radius:16px}
@media(min-width:1500px){.home-hero{height:620px}}
@media(max-width:1024px){.nav-links{gap:12px}.header-book{padding:10px 15px}.brand>span{font-size:21px}.shell{width:calc(100% - 40px)}.hero-note{display:none}.quick-booking form{grid-template-columns:1fr 1fr .7fr 1.2fr}.quick-note{display:none}.stays-section{grid-template-columns:190px 1fr;gap:20px}.stay-overlay h3{font-size:21px}.steps{grid-template-columns:1fr 1fr}.steps>div:first-child{grid-column:span 2}.property-layout{grid-template-columns:minmax(0,1fr) 310px;gap:20px}.booking-panel{padding:18px}.story-block{grid-template-columns:1fr}.story-image{display:none}.footer-inner nav{gap:14px}.experience-grid{gap:8px}.section-heading{gap:12px}.section-heading p{max-width:220px}}
@media(max-width:760px){.shell,.page-shell{width:calc(100% - 36px)}.site-header{height:78px}.brand>span{font-size:22px}.brand svg{width:27px}.header-book{display:none}.menu-toggle{display:block;font-size:25px;background:none;border:0}.nav-links{display:none}.nav-links.is-open{display:flex;position:absolute;top:78px;left:0;right:0;flex-direction:column;padding:22px;background:var(--forest);color:white;gap:19px;font-size:15px}.home-hero{height:auto;min-height:590px}.hero-content{padding-top:145px;padding-bottom:115px}.hero-content h1{font-size:55px;letter-spacing:-2px}.hero-subtitle{font-size:22px;max-width:330px;margin-top:12px}.hero-details{font-size:12px;max-width:290px;line-height:1.7}.hero-actions{flex-direction:column;align-items:stretch;max-width:340px;gap:10px}.hero-actions .button{font-size:12px;padding:13px 15px}.eyebrow{font-size:9px;letter-spacing:2.6px}.quick-booking{margin-top:-38px}.quick-booking form{grid-template-columns:1fr 1fr}.quick-booking label{padding:9px;min-width:0}.quick-booking .button{font-size:11px;padding:12px}.stays-section{display:block;margin-top:28px}.stays-intro h2 br{display:none}.stays-intro p{max-width:none;margin:10px 0}.stays-intro>.text-link{display:none}.stay-grid{grid-template-columns:1fr;margin-top:18px;gap:15px}.stay-card{min-height:320px}.stay-overlay h3{font-size:28px;max-width:330px}.stay-price strong{font-size:24px}.section{margin-top:32px;margin-bottom:26px}h2{font-size:29px}.section-heading{flex-wrap:wrap;gap:7px}.section-heading h2{flex-shrink:1}.section-heading p{font-size:11px;max-width:none}.section-heading>.text-link{font-size:11px}.experience-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.experience-image{height:135px}.experience-text h3{font-size:19px}.review-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px}.review-grid blockquote{min-width:85%;scroll-snap-align:start}.steps{gap:16px}.step{display:block}.step>span{margin-bottom:10px}.step strong{font-size:13px}.step p{font-size:12px}.location{grid-template-columns:1fr;gap:17px}.location-visual{min-height:185px}.footer-inner{align-items:start;flex-direction:column}.footer-inner nav{flex-wrap:wrap}.footer-bottom{gap:18px;flex-wrap:wrap}.site-footer{padding-bottom:100px}.property-hero{min-height:500px}.property-hero .hero-content{padding-top:140px;padding-bottom:50px}.property-hero h1{font-size:42px;max-width:400px}.property-layout{display:block}.booking-panel{display:none}.editorial-gallery{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px}.editorial-gallery>button{min-width:82%;height:260px;scroll-snap-align:start}.story-block{display:block}.rate-grid{grid-template-columns:1fr;gap:6px}.rate-grid>div{display:flex;align-items:center;justify-content:space-between}.property-content .experience-grid{grid-template-columns:repeat(2,1fr)}.mobile-booking-bar{position:fixed;bottom:0;left:0;right:0;z-index:25;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 18px calc(13px + env(safe-area-inset-bottom));background:var(--paper);border-top:1px solid var(--line);border-radius:18px 18px 0 0;font-size:11px}.mobile-booking-bar strong{font-size:19px}.mobile-booking-bar small{display:block;color:var(--muted);margin-top:3px}.mobile-booking-bar .button{font-size:12px;padding:12px 17px}.drawer-inner .booking-flow input{padding:13px!important;font-size:15px!important}.drawer-inner .booking-flow dl{font-size:14px!important}.booking-progress{font-size:12px}.booking-progress li>span{width:38px;height:38px}.booking-page{margin-top:25px}.booking-page .booking-flow{padding:18px}.page-shell h1{font-size:36px}.gallery-modal{padding:50px 12px}.amenities{gap:18px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
.service-row{display:grid;grid-template-columns:1fr 1fr;gap:45px;align-items:center;margin:40px 0}.service-photo{position:relative;height:320px;border-radius:14px;overflow:hidden}.service-row:nth-of-type(even) .service-photo{order:2}.service-row p{margin:16px 0;color:var(--muted)}.service-row small{color:var(--muted)}@media(max-width:760px){.service-row{grid-template-columns:1fr;gap:15px}.service-row:nth-of-type(even) .service-photo{order:0}.service-photo{height:230px}}
/* Compact per-property availability, matching the forest/cream booking widget. */
.availability-calendar{border:1px solid #deded5;border-radius:16px;padding:14px;margin-bottom:18px;background:#faf9f6}
.calendar-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}
.calendar-heading button{padding:8px 12px;border-radius:8px;background:#ebece5}
.availability-calendar p{font-size:13px;margin:12px 0}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;text-align:center}
.calendar-grid button{min-height:36px;border-radius:8px;background:#fff;color:#294534;font-size:14px;border:1px solid #e1e5dd}
.calendar-grid button:disabled{background:#eeeae5;color:#aaa;text-decoration:line-through;cursor:not-allowed}
.calendar-grid button.selected{background:#294534;color:white;border-color:#294534}
.calendar-grid button:focus-visible{outline:2px solid #967144;outline-offset:1px}
.availability-calendar>small{display:block;margin:10px 0;font-size:11px;color:#6c706a}
.admin-availability-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin:25px 0}
.admin-availability-grid article{background:#faf9f6;border:1px solid #ddd;border-radius:16px;padding:20px;overflow-wrap:anywhere}
/* Calendar Hub administration follows the site's forest/cream palette. */
.calendar-admin { padding-block: 3rem; }
.calendar-admin h1 { margin-block: 1rem; font-size:clamp(32px,4vw,48px); }
.calendar-admin-card h2 { font-size:28px; }
.calendar-admin-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr)); gap:1.25rem; margin-block:2rem; }
.calendar-admin-card { background:#fffdf8; color:#263b2c; padding:1.5rem; border:1px solid #deded2; border-radius:18px; min-width:0; }
.calendar-admin-card article { padding-block:1rem; border-bottom:1px solid #deded2; }
.calendar-admin-card p { margin-block:.7rem; overflow-wrap:anywhere; }
.calendar-add-form { display:grid; gap:1rem; max-width:650px; margin-top:1rem; }
.calendar-add-form label { display:grid; gap:.4rem; }
.calendar-add-form .calendar-enabled { display:flex; align-items:center; gap:.6rem; }
.calendar-add-form input:not([type=checkbox]),.calendar-add-form select,.calendar-export-url { width:100%; padding:.8rem; border:1px solid #b8bfb5; border-radius:8px; background:white; color:#223828; }
.calendar-add-form input[type=checkbox] { width:1.2rem; height:1.2rem; }
.service-picker-photo { position:relative; width:100%; height:90px; overflow:hidden; border-radius:8px; margin-bottom:8px; }
