@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,500;1,600&display=swap');
:root{--paper:#f5f2e9;--paper-deep:#ece8dc;--white:#fffdf8;--ink:#25372f;--muted:#69736a;--olive:#3d5545;--olive-dark:#263a31;--terracotta:#b7664f;--terracotta-dark:#984f3d;--line:#d9d8cb;--gold:#b98a54;--serif:'Playfair Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif;--shell:1240px;--radius:4px;}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:86px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}button,input{font:inherit}button{color:inherit}.section-shell{width:min(var(--shell),calc(100% - 72px));margin-inline:auto}.section-space{padding-block:112px}.skip-link{position:absolute;left:14px;top:-60px;z-index:100;background:#fff;padding:10px 16px}.skip-link:focus{top:12px}.prototype-ribbon{display:flex;justify-content:center;align-items:center;gap:9px;padding:8px 16px;background:var(--olive-dark);color:#f7f5ed;font-size:11px;letter-spacing:.07em;text-transform:uppercase}.prototype-dot{width:7px;height:7px;border-radius:50%;background:#c8946c;box-shadow:0 0 0 3px #c8946c33}.site-header{height:82px;padding-inline:max(36px,calc((100% - var(--shell))/2));display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #d8d4c8;background:var(--paper);position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:11px;min-width:198px}.brand img{width:42px;height:42px}.brand-copy{display:flex;flex-direction:column;line-height:1.12;font-size:11px;letter-spacing:.15em;text-transform:uppercase}.brand-copy strong{font-size:14px;letter-spacing:.2em;font-weight:600}.brand-copy span{font-size:9px;letter-spacing:.14em;margin-top:5px;color:var(--muted)}.primary-nav{display:flex;align-items:center;gap:30px;font-size:12px;color:#48574e}.primary-nav>a:not(.button){transition:color .2s}.primary-nav>a:not(.button):hover{color:var(--terracotta)}.primary-nav .nav-phone{font-weight:600;letter-spacing:.02em;color:var(--ink)}.button{display:inline-flex;align-items:center;justify-content:center;gap:14px;padding:15px 22px;border:1px solid transparent;border-radius:var(--radius);font-size:12px;font-weight:600;letter-spacing:.03em;transition:background .2s,color .2s,border-color .2s,transform .2s;cursor:pointer}.button:hover:not(:disabled){transform:translateY(-2px)}.button-small{padding:12px 16px;font-size:11px}.button-olive{background:var(--olive);color:white}.button-olive:hover:not(:disabled){background:var(--olive-dark)}.button-terracotta{background:var(--terracotta);color:#fff}.button-terracotta:hover:not(:disabled){background:var(--terracotta-dark)}.button-outline{border-color:var(--olive);color:var(--olive);background:transparent}.button-outline:hover:not(:disabled){background:var(--olive);color:white}.button-light{background:var(--paper);color:var(--olive-dark)}.button-light:hover:not(:disabled){background:#fff}.button-full{width:100%}.button:disabled{opacity:.56;cursor:not-allowed}.menu-toggle{display:none}
.hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);gap:6.2%;align-items:center;padding-top:46px;padding-bottom:64px;min-height:640px}.hero-photo-wrap{position:relative;min-height:560px;overflow:hidden;background:#d5d7cc}.hero-photo{width:100%;height:560px;object-fit:cover;object-position:center}.photo-caption{position:absolute;left:22px;bottom:22px;padding:10px 14px;background:#f5f2e9eF;color:#39473c;font-size:10px;letter-spacing:.09em;text-transform:uppercase}.caption-mark{color:var(--terracotta);margin-right:8px}.hero-stamp{position:absolute;right:22px;top:22px;width:96px;height:96px;border-radius:50%;background:#f5f2e9eF;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--olive);line-height:1.1}.hero-stamp span{font-size:8px;text-transform:uppercase;letter-spacing:.1em}.hero-stamp strong{font-family:var(--serif);font-size:30px;margin-top:4px}.hero-stamp small{font-size:9px}.hero-content{padding:28px 0 22px;max-width:470px}.eyebrow{display:flex;align-items:center;gap:10px;text-transform:uppercase;letter-spacing:.16em;font-size:10px;font-weight:600;color:#7b806e;margin:0 0 18px}.eyebrow-line{width:27px;height:1px;background:var(--terracotta)}h1,h2,h3,p{margin-top:0}h1,h2{font-family:var(--serif);font-weight:500;letter-spacing:-.035em;line-height:1.11}h1{font-size:clamp(42px,4.3vw,64px);margin:0 0 22px}h1 em,h2 em{font-weight:500;color:var(--terracotta);display:block}h1 em{font-size:.83em;margin-top:7px}h2{font-size:clamp(37px,4vw,54px);margin:0}h3{font-family:var(--serif);font-weight:500;letter-spacing:-.02em}.hero-intro{max-width:400px;color:#626b61;font-size:14px;line-height:1.8;margin-bottom:25px}.hero-facts{display:flex;align-items:center;gap:18px;font-size:11px;color:#6c756b;border-block:1px solid var(--line);padding:14px 0}.hero-facts strong{color:var(--ink);font-weight:600}.hero-facts i{width:3px;height:3px;background:var(--terracotta);border-radius:50%}.hero-price{margin-top:23px;display:grid;gap:0}.hero-price>span:first-child{font-size:10px;text-transform:uppercase;letter-spacing:.13em;color:#777c70}.hero-price>strong{font-family:var(--serif);font-size:29px;font-weight:500;line-height:1.3}.hero-price>strong small{font-family:var(--sans);font-size:13px;font-weight:400}.price-subnote{font-size:10px;color:#777c70}.hero-actions{display:flex;align-items:center;gap:22px;margin-top:25px}.text-link{font-size:11px;font-weight:600;color:var(--olive);border-bottom:1px solid #a6aa9b;padding-bottom:5px}.text-link span{margin-left:7px;color:var(--terracotta)}.hero-footnote{font-size:10px;color:#7b7e72;margin:15px 0 0}
.fact-strip{display:grid;grid-template-columns:repeat(4,1fr);padding:24px 0;border-block:1px solid var(--line);gap:20px}.fact-strip>div{display:flex;align-items:center;gap:13px;padding-left:20px;border-right:1px solid var(--line)}.fact-strip>div:last-child{border-right:0}.fact-icon{font-family:var(--serif);font-size:25px;color:var(--terracotta);width:31px;text-align:center}.fact-strip strong,.fact-strip small{display:block}.fact-strip strong{font-family:var(--serif);font-size:16px;font-weight:500}.fact-strip small{font-size:10px;color:#7b8074;margin-top:2px}
.section-heading{margin-bottom:36px}.heading-row{display:flex;justify-content:space-between;align-items:end;gap:40px}.section-heading>p,.heading-row>p{max-width:320px;margin:0 0 6px;color:#7a8074;font-size:12px;line-height:1.8}.gallery-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}.filter-chip{background:transparent;border:1px solid #d5d5ca;border-radius:30px;padding:9px 15px;color:#657066;font-size:10px;cursor:pointer;transition:all .2s}.filter-chip:hover,.filter-chip.is-active{background:var(--olive);border-color:var(--olive);color:#fff}.gallery-grid{display:grid;grid-template-columns:1.1fr 1fr 1fr;grid-template-rows:240px 240px 240px;gap:12px}.gallery-card{position:relative;border:0;padding:0;overflow:hidden;text-align:left;background:#d4d5c9;cursor:pointer;min-height:0}.gallery-card-large{grid-row:span 2}.gallery-card img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.65,.3,1)}.gallery-card:hover img{transform:scale(1.035)}.gallery-label{position:absolute;left:13px;bottom:13px;padding:7px 10px;background:#f5f2e9eF;color:var(--ink);font-size:10px}.gallery-open{position:absolute;right:13px;top:13px;width:29px;height:29px;border-radius:50%;display:grid;place-items:center;background:#f5f2e9eF;color:var(--olive)}.gallery-source-note{margin:13px 0 0;font-size:10px;color:#8b8d82}.gallery-card[hidden]{display:none}.lightbox{width:min(1050px,calc(100% - 32px));max-width:none;border:0;padding:28px;background:#17251f;color:#fff}.lightbox::backdrop{background:#0d1713e8}.lightbox figure{margin:0;display:grid;justify-items:center;gap:12px}.lightbox figure img{max-height:78vh;max-width:100%;object-fit:contain}.lightbox figcaption{font-size:12px;color:#e4e0d4}.lightbox-close,.lightbox-arrow{position:absolute;border:0;background:#ffffff20;color:white;cursor:pointer}.lightbox-close{right:14px;top:9px;width:38px;height:38px;border-radius:50%;font-size:27px}.lightbox-arrow{top:50%;transform:translateY(-50%);width:42px;height:52px;font-size:30px}.lightbox-prev{left:6px}.lightbox-next{right:6px}
.villa-section{background:var(--paper-deep)}.villa-layout{display:grid;grid-template-columns:.95fr 1.05fr;align-items:center;gap:10%}.villa-copy{max-width:480px}.body-lead{font-family:var(--serif);font-size:20px;line-height:1.55;color:#586358;margin:24px 0}.floor-list{border-top:1px solid #c9cabe}.floor-row{display:grid;grid-template-columns:38px 1fr;gap:15px;padding:20px 0;border-bottom:1px solid #c9cabe}.floor-number{font-family:var(--serif);font-size:16px;color:var(--terracotta)}.floor-row h3{font-size:19px;margin:0 0 5px}.floor-row p{font-size:12px;color:#6f776d;line-height:1.7;margin:0}.small-note{font-size:10px;color:#828478;margin:16px 0 0}.villa-image-stack{position:relative;padding-right:65px;padding-bottom:56px}.villa-image-main{width:100%;height:470px;object-fit:cover}.villa-image-small{position:absolute;width:36%;height:190px;object-fit:cover;right:0;bottom:0;border:9px solid var(--paper-deep)}.image-index{position:absolute;top:18px;left:-22px;writing-mode:vertical-rl;transform:rotate(180deg);font-size:9px;letter-spacing:.2em;color:#f9f6eb}
.amenities-section{display:grid;grid-template-columns:.72fr 1.28fr;align-items:center;gap:8%}.amenities-intro{max-width:340px}.amenities-intro>p:not(.eyebrow){margin:25px 0;color:#6d776b;font-size:13px;line-height:1.85}.amenities-intro .text-link{display:inline-block}.amenity-cards{display:grid;grid-template-columns:1.25fr .75fr;gap:14px;align-items:stretch}.amenity-card{position:relative;min-height:390px;overflow:hidden;background:var(--olive-dark);color:white}.amenity-card-photo img{width:100%;height:100%;min-height:390px;object-fit:cover;opacity:.78}.amenity-card-photo:after{content:"";position:absolute;inset:30% 0 0;background:linear-gradient(transparent,#17251fdb)}.amenity-card-caption{position:absolute;z-index:1;left:22px;bottom:19px}.amenity-card-caption>span,.amenity-number{font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:#d7c1a0}.amenity-card-caption h3,.amenity-card-text h3{font-size:23px;margin:8px 0 2px}.amenity-card-caption p{font-size:10px;margin:0;color:#e5e3d9}.amenity-card-text{padding:25px 20px;display:flex;flex-direction:column;justify-content:center;background:var(--olive)}.steam-icon{font-family:var(--serif);font-size:52px;line-height:1;color:#dac9a8;margin:25px 0 16px}.amenity-card-text h3{font-size:22px}.amenity-card-text p{font-size:11px;line-height:1.75;color:#e1e5dc;margin:6px 0 0}
.rental-section{background:var(--olive-dark);color:#f9f6ec}.rental-section .eyebrow{color:#c7c6b3}.rental-section h2 em{color:#c58169}.rental-section .section-heading>p{color:#c4c7b9}.rental-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:stretch}.rental-card{padding:34px 38px;background:#f6f3e9;color:var(--ink);display:flex;flex-direction:column}.rental-card-month{background:#e7e5d8}.rental-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:19px}.rental-kicker{font-size:9px;letter-spacing:.15em;text-transform:uppercase;color:#777f6f}.rental-icon{font-size:19px;color:var(--terracotta)}.month-seal{border:1px solid #b9c0b1;border-radius:30px;padding:6px 12px;font-size:9px;color:var(--olive)}.rental-card h3{font-size:34px;margin:0 0 13px}.rental-price{display:flex;align-items:baseline;gap:8px;margin:0 0 3px}.rental-price strong{font-family:var(--serif);font-weight:500;font-size:23px}.rental-price span{font-size:10px;color:#7a8176}.monthly-price{margin:0}.monthly-price strong{font-family:var(--serif);font-weight:500;font-size:33px}.monthly-price span{font-size:11px;color:#6d776b}.monthly-subtitle{font-size:11px;color:#758072;margin:2px 0 0}.rental-rule{height:1px;background:#d1d3c6;margin:20px 0 15px}.plain-list{list-style:none;margin:0 0 22px;padding:0;display:grid;gap:8px}.plain-list li{font-size:11px;color:#5d685e;display:flex;gap:10px;align-items:flex-start}.plain-list li:before{content:"—";color:var(--terracotta);font-weight:700}.season-note{display:flex;gap:11px;background:#ebe9dd;padding:13px 14px;margin:auto 0 19px}.season-sun{color:var(--terracotta);font-size:19px}.season-note p{font-size:10px;line-height:1.6;color:#677064;margin:0}.season-note strong{color:var(--ink)}.rental-card .button{align-self:flex-start}.rental-card-month .button{align-self:stretch;margin-top:auto}.monthly-bath-note{font-size:10px;color:#758072;margin:0 0 17px}.rental-footnote{font-size:10px;color:#c2c5b8;margin:19px 0 0;text-align:center}
.dates-section{display:grid;grid-template-columns:.9fr 1.1fr;align-items:center;gap:9%}.dates-copy{max-width:390px}.dates-copy>p:not(.eyebrow){margin:23px 0;color:#70786c;font-size:13px;line-height:1.8}.date-widget{padding:27px;background:#fffdf8;border:1px solid var(--line);box-shadow:0 12px 35px #36473d0b}.demo-warning{display:flex;gap:13px;align-items:flex-start;padding:12px 14px;background:#f4efe4;border-left:2px solid var(--gold);margin-bottom:18px}.demo-warning>span{width:18px;height:18px;border:1px solid var(--gold);border-radius:50%;display:grid;place-items:center;color:#947040;font-size:11px;flex:none}.demo-warning p{font-size:10px;line-height:1.6;color:#6c7062;margin:0}.demo-warning strong{color:var(--ink)}.date-fields{display:grid;grid-template-columns:1fr 1fr 1fr;gap:9px;margin-bottom:15px}.date-fields label,.monthly-demo-form>label,.form-row label{display:grid;gap:5px;font-size:9px;text-transform:uppercase;letter-spacing:.09em;color:#707a6e}.date-fields input,.monthly-demo-form input:not([type=checkbox]){min-width:0;height:44px;border:1px solid #d9d9cf;background:#f5f3ec;padding:0 10px;color:#72796c;font-size:10px;text-transform:none;letter-spacing:0}.date-fields input:disabled,.monthly-demo-form input:disabled{opacity:1;-webkit-text-fill-color:#7d8278}.widget-caption{font-size:9px;color:#86897f;margin:10px 0 0;text-align:center}
.rules-section{background:var(--paper-deep)}.rules-layout{display:grid;grid-template-columns:.6fr 1.4fr;gap:8%}.rules-lead{max-width:285px}.rules-lead>p:last-child{font-size:12px;color:#757c70;margin-top:22px}.rules-content{display:grid;gap:32px}.rules-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px 32px}.rule-item{display:grid;grid-template-columns:34px 1fr;gap:13px}.rule-icon{width:32px;height:32px;border:1px solid #c8c8ba;border-radius:50%;display:grid;place-items:center;color:var(--terracotta);font-family:var(--serif);font-size:15px}.rule-item h3{font-size:17px;margin:0 0 5px}.rule-item p{font-size:10px;line-height:1.7;color:#747b6f;margin:0}.faq-list{border-top:1px solid #c8cabe}.faq-list details{border-bottom:1px solid #c8cabe}.faq-list summary{list-style:none;cursor:pointer;position:relative;padding:15px 28px 15px 0;font-family:var(--serif);font-size:16px}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:after{content:"+";position:absolute;right:3px;top:14px;color:var(--terracotta);font-family:var(--sans);font-size:18px}.faq-list details[open] summary:after{content:"−"}.faq-list details p{font-size:11px;color:#71796e;line-height:1.8;max-width:700px;margin:0 25px 17px 0}
.monthly-section{display:grid;grid-template-columns:1fr .92fr;gap:9%;align-items:center}.monthly-photo{position:relative;min-height:580px}.monthly-photo img{width:100%;height:580px;object-fit:cover}.monthly-photo span{position:absolute;bottom:20px;left:20px;background:#f5f2e9ee;padding:9px 13px;font-size:10px;letter-spacing:.05em;color:var(--olive)}.monthly-content h2{margin-bottom:21px}.monthly-content>p:not(.eyebrow):not(.monthly-callout){font-size:12px;color:#6d776b;line-height:1.8}.monthly-callout{display:flex;align-items:baseline;gap:9px;margin:0 0 10px}.monthly-callout strong{font-family:var(--serif);font-weight:500;font-size:29px}.monthly-callout span{font-size:10px;color:#747c70}.monthly-demo-form{padding:18px;background:#ece9df;margin-top:22px;display:grid;gap:12px}.demo-form-note{font-size:9px;line-height:1.6;color:#777d70;margin:0}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.monthly-demo-form>label input{width:100%}.consent-label{display:grid;grid-template-columns:14px 1fr!important;align-items:start;gap:8px!important;font-size:9px!important;line-height:1.5;letter-spacing:0!important;text-transform:none!important}.consent-label input{margin:2px 0}.monthly-demo-form .button{font-size:10px}
.location-section{background:#e7e5da}.location-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:8%;align-items:center}.location-copy h2{font-size:clamp(37px,3.8vw,52px)}.address-line{font-size:12px;line-height:1.8;color:#626e63;margin:22px 0 7px}.coordinates{font-size:10px;letter-spacing:.1em;color:#899081;margin:0 0 24px}.key-handover{display:flex;gap:12px;padding:14px 0;border-top:1px solid #c7c9bc;border-bottom:1px solid #c7c9bc;margin-bottom:17px}.key-icon{font-family:var(--serif);font-size:22px;color:var(--terracotta)}.key-handover p{font-size:10px;color:#697468;line-height:1.7;margin:0}.key-handover strong{font-size:11px;color:var(--ink)}.map-frame{position:relative;height:420px;background:#d4d8cb;overflow:hidden}.map-frame iframe{border:0;width:100%;height:100%;filter:saturate(.72) sepia(.08)}.map-label{position:absolute;left:16px;bottom:16px;padding:8px 11px;background:var(--white);font-size:10px;color:var(--olive);box-shadow:0 3px 14px #1d2e271a}.map-dot{display:inline-block;width:7px;height:7px;background:var(--terracotta);border-radius:50%;margin-right:7px}
.contact-section{padding-top:90px;padding-bottom:55px}.contact-card{display:grid;grid-template-columns:1.15fr .85fr;gap:7%;align-items:center;background:var(--olive);color:#f8f5eb;padding:44px 50px}.contact-card .eyebrow{color:#d2d2c1}.contact-card h2{font-size:clamp(36px,3.4vw,48px)}.contact-card h2 em{color:#dfad91}.contact-card>div:first-child>p:last-child{color:#e0e4d9;font-size:11px;margin:17px 0 0}.contact-actions{display:grid;gap:10px}.contact-actions .button{justify-self:start}.contact-secondary{font-size:10px;color:#e2e2d5}.contact-secondary:hover{text-decoration:underline}.legal-placeholder{font-size:9px;color:#82877b;line-height:1.7;margin:15px 0 0;max-width:900px}.site-footer{background:#202f28;color:#d9dccf;padding:23px 0 80px}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:20px}.brand-footer{min-width:190px}.brand-footer .brand-copy,.brand-footer .brand-copy span{color:#d7dccf}.brand-footer img{width:38px;height:38px}.footer-inner>p{font-size:9px;color:#b9c0b6;line-height:1.7;margin:0}.footer-disclaimer{font-size:9px;color:#b9c0b6}.footer-top{width:34px;height:34px;border:1px solid #536158;border-radius:50%;display:grid;place-items:center}.mobile-cta{display:none}
:focus-visible{outline:3px solid #c57a61;outline-offset:3px}
@media(max-width:1100px){.primary-nav{gap:18px}.hero{gap:4%;grid-template-columns:1.05fr .95fr}.hero-photo-wrap,.hero-photo{min-height:500px;height:500px}.hero-stamp{width:82px;height:82px}.hero-stamp strong{font-size:25px}.section-space{padding-block:88px}.gallery-grid{grid-template-rows:210px 210px 210px}.villa-layout{gap:7%}.amenities-section{gap:5%}.rental-card{padding:30px}.location-layout{gap:5%}}
@media(max-width:800px){.section-shell{width:min(100% - 40px,var(--shell))}.site-header{height:72px;padding-inline:20px}.menu-toggle{display:flex;flex-direction:column;gap:6px;justify-content:center;width:42px;height:42px;border:1px solid var(--line);background:transparent;border-radius:50%;z-index:22}.menu-toggle span{height:1px;width:16px;background:var(--olive);margin-inline:auto}.primary-nav{display:none;position:absolute;left:0;right:0;top:71px;padding:20px;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:0 12px 20px #16241b13;flex-direction:column;align-items:stretch;gap:0}.primary-nav.is-open{display:flex}.primary-nav>a{padding:12px 6px;border-bottom:1px solid #deddd4}.primary-nav .button{margin-top:13px}.primary-nav .nav-phone{border-bottom:0}.hero{display:flex;flex-direction:column;gap:0;padding-top:22px;padding-bottom:40px;min-height:0}.hero-content{max-width:650px;padding:25px 0 34px}.hero-photo-wrap,.hero-photo{height:auto;min-height:0;aspect-ratio:1.22}.hero-photo{position:absolute;inset:0;height:100%}.hero-stamp{right:13px;top:13px;width:74px;height:74px}.photo-caption{left:12px;bottom:12px;font-size:8px;padding:8px 9px}.hero-facts{gap:13px}.hero-actions{flex-wrap:wrap}.fact-strip{width:100%;padding-inline:20px;grid-template-columns:1fr 1fr;gap:0;border-top:0}.fact-strip>div{padding:12px 8px;border-right:0;border-bottom:1px solid var(--line)}.fact-strip>div:nth-child(odd){border-right:1px solid var(--line)}.fact-strip>div:nth-child(n+3){border-bottom:0}.section-space{padding-block:68px}.heading-row{align-items:flex-start;flex-direction:column;gap:15px}.gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:repeat(5,185px);gap:8px}.gallery-card-large{grid-row:span 2;grid-column:span 2}.villa-layout{grid-template-columns:1fr;gap:35px}.villa-copy{max-width:none}.villa-image-stack{padding-right:42px;padding-bottom:40px}.villa-image-main{height:400px}.villa-image-small{height:150px;border-width:6px}.image-index{left:-12px}.amenities-section{grid-template-columns:1fr;gap:30px}.amenities-intro{max-width:620px}.amenity-card{min-height:340px}.amenity-card-photo img{min-height:340px}.rental-grid{gap:12px}.rental-card{padding:26px}.dates-section{grid-template-columns:1fr;gap:28px}.dates-copy{max-width:600px}.rules-layout{grid-template-columns:1fr;gap:30px}.rules-lead{max-width:500px}.monthly-section{grid-template-columns:1fr;gap:35px}.monthly-photo,.monthly-photo img{min-height:0;height:auto;aspect-ratio:1.4}.monthly-content{max-width:650px}.location-layout{grid-template-columns:1fr;gap:28px}.map-frame{height:360px}.contact-card{padding:34px;grid-template-columns:1fr;gap:25px}.contact-actions .button{justify-self:stretch}.footer-inner{flex-wrap:wrap}.footer-inner>p{flex:1;min-width:190px}.footer-disclaimer{flex:1}}
@media(max-width:560px){body{font-size:15px}.prototype-ribbon{font-size:8px;letter-spacing:.04em;padding:8px 10px}.section-shell{width:calc(100% - 32px)}.site-header{padding-inline:16px}.brand{min-width:0}.brand img{width:36px;height:36px}.brand-copy strong{font-size:12px}.brand-copy span{font-size:8px}.hero{padding-top:16px}.hero-content{padding:23px 0 28px}.hero h1{font-size:43px}.hero-intro{font-size:12px}.hero-facts{font-size:10px;gap:10px}.hero-price>strong{font-size:26px}.hero-actions{gap:16px}.hero-actions .button{padding:14px 15px}.hero-actions .text-link{font-size:10px}.hero-footnote{font-size:9px}.hero-photo-wrap{aspect-ratio:1.12}.hero-stamp{width:66px;height:66px}.hero-stamp strong{font-size:22px}.hero-stamp span{font-size:7px}.fact-strip{padding-inline:16px}.fact-strip>div{gap:7px}.fact-strip strong{font-size:13px}.fact-strip small{font-size:9px}.fact-icon{font-size:20px;width:24px}.section-space{padding-block:58px}h2{font-size:39px}.section-heading{margin-bottom:25px}.section-heading>p,.heading-row>p{font-size:11px}.gallery-filters{gap:6px;margin-bottom:14px}.filter-chip{font-size:9px;padding:8px 10px}.gallery-grid{grid-template-rows:repeat(5,145px);gap:6px}.gallery-label{left:7px;bottom:7px;font-size:8px;padding:6px 7px}.gallery-open{right:7px;top:7px;width:24px;height:24px}.villa-image-main{height:300px}.villa-image-small{width:39%;height:120px}.body-lead{font-size:17px}.floor-row{padding:16px 0}.floor-row h3{font-size:17px}.floor-row p{font-size:11px}.amenity-cards{grid-template-columns:1fr}.amenity-card,.amenity-card-photo img{min-height:280px}.amenity-card-text{min-height:260px;padding:23px}.rental-grid{grid-template-columns:1fr}.rental-card{padding:24px 21px}.rental-card h3{font-size:30px}.rental-card-month .button{margin-top:0}.rental-footnote{text-align:left;line-height:1.7}.date-widget{padding:16px}.date-fields{grid-template-columns:1fr 1fr}.date-fields label:last-child{grid-column:span 2}.demo-warning{padding:11px}.rules-grid{grid-template-columns:1fr;gap:18px}.rules-content{gap:24px}.rule-item p{font-size:10px}.faq-list summary{font-size:15px}.monthly-photo,.monthly-photo img{aspect-ratio:1.12}.monthly-demo-form{padding:14px}.form-row{grid-template-columns:1fr}.location-copy h2{font-size:40px}.map-frame{height:310px}.contact-card{padding:26px 21px}.contact-card h2{font-size:39px}.contact-actions .button{font-size:10px;padding:14px}.contact-secondary{font-size:9px}.footer-inner{align-items:flex-start;gap:13px}.footer-inner>p{order:3;flex-basis:100%}.footer-disclaimer{order:4;flex-basis:calc(100% - 50px)}.footer-top{margin-left:auto}.mobile-cta{position:fixed;display:grid;grid-template-columns:.75fr 1.25fr;gap:8px;left:0;right:0;bottom:0;padding:9px 12px calc(9px + env(safe-area-inset-bottom));background:#f5f2e9f2;backdrop-filter:blur(12px);border-top:1px solid #d4d2c6;z-index:30}.mobile-cta a{display:flex;justify-content:center;align-items:center;gap:7px;min-height:43px;border-radius:3px;font-size:10px;font-weight:600}.mobile-call{border:1px solid var(--olive);color:var(--olive)}.mobile-request{background:var(--terracotta);color:white}.site-footer{padding-bottom:90px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}


/* Visual and responsive refinement — 2026 */
:root {
  --ink: #25372f;
  --olive: #3d5545;
  --terracotta: #a34d39;
  --line: #d0d0c5;
  --accessible-muted: #59665c;
  --paper: #f5f2e9;
}

html {
  scroll-padding-top: 90px;
  text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}

body {
  color: var(--ink);
  font-size: 16px;
  line-height: 1.58;
}

h1,
h2,
h3 {
  line-height: 1.16;
  text-wrap: balance;
}

:focus-visible {
  outline: 3px solid #a34d39;
  outline-offset: 3px;
}

.hero {
  min-height: 0;
  align-items: center;
  gap: clamp(32px, 5vw, 72px);
  padding-block: 52px 64px;
}

.hero-photo-wrap {
  width: 100%;
  height: auto;
  min-height: 0;
  aspect-ratio: 1.2;
  border-radius: 3px;
  background: #d9ddd3;
}

.hero-photo {
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: cover;
  object-position: 36% 50%;
}

.hero-content {
  width: 100%;
  max-width: 560px;
  padding: 0;
}

.hero h1 {
  margin-block: 17px 11px;
  font-size: clamp(47px, 4.1vw, 62px);
  line-height: 1.04;
}

.hero-viewline {
  margin: 0 0 15px;
  color: var(--terracotta);
  font-family: var(--serif);
  font-size: clamp(21px, 2.1vw, 28px);
  font-style: italic;
  line-height: 1.26;
}

.hero-intro {
  max-width: 48ch;
  color: var(--accessible-muted);
  font-size: 16px;
  line-height: 1.62;
}

.hero-facts {
  color: var(--ink);
  font-size: 13px;
  line-height: 1.45;
}

.hero-price > span:first-child {
  color: var(--accessible-muted);
  font-size: 12px;
}

.price-subnote,
.hero-footnote {
  color: var(--accessible-muted);
  font-size: 12px;
  line-height: 1.5;
}

.hero-actions {
  flex-wrap: wrap;
  gap: 12px 20px;
}

.button {
  min-height: 48px;
  padding: 13px 19px;
  font-size: 14px;
  line-height: 1.3;
}

.button-small {
  min-height: 44px;
}

.text-link {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  padding-block: 6px;
  color: #46594c;
  font-size: 14px;
  line-height: 1.4;
}

.photo-caption,
.gallery-label,
.map-label {
  color: #25372f;
  font-size: 12px;
}

.eyebrow {
  color: var(--accessible-muted);
  font-size: 11px;
  line-height: 1.5;
}

.section-heading > p,
.heading-row > p,
.gallery-source-note,
.floor-row p,
.amenities-intro > p:not(.eyebrow),
.amenity-card-text p,
.body-lead,
.small-note,
.date-widget .demo-warning p,
.widget-caption,
.rule-item p,
.faq-list details p,
.monthly-content > p:not(.eyebrow):not(.monthly-callout),
.demo-form-note,
.address-line,
.coordinates,
.key-handover p,
.legal-placeholder {
  color: var(--accessible-muted);
  line-height: 1.6;
}

.section-heading > p,
.heading-row > p {
  font-size: 14px;
}

.gallery-source-note {
  font-size: 12px;
}

.body-lead,
.amenities-intro > p:not(.eyebrow),
.monthly-content > p:not(.eyebrow):not(.monthly-callout) {
  font-size: 16px;
}

.small-note,
.floor-row p,
.amenity-card-text p,
.rule-item p,
.faq-list details p,
.key-handover p {
  font-size: 14px;
}

.fact-strip small {
  color: var(--accessible-muted);
  font-size: 12px;
}

.gallery-grid {
  grid-template-rows: none;
  grid-auto-rows: clamp(205px, 17vw, 255px);
  gap: 13px;
}

.gallery-label {
  left: 12px;
  bottom: 12px;
  padding: 8px 10px;
  background: #f5f2e9f2;
  font-size: 12px;
  line-height: 1.35;
}

.gallery-filters {
  gap: 8px;
}

.filter-chip {
  min-height: 44px;
  padding: 10px 14px;
  color: #46594c;
  font-size: 12px;
  line-height: 1.3;
}

.filter-chip.is-active {
  background: var(--olive);
  color: #fff;
}

.view-feature {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(300px, 0.75fr);
  align-items: center;
  gap: clamp(28px, 5vw, 70px);
  padding-block: 34px 72px;
}

.view-feature-photo {
  position: relative;
  min-width: 0;
  margin: 0;
  aspect-ratio: 1.58;
  overflow: hidden;
  background: #d9ddd3;
}

.view-feature-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 25% 48%;
}

.view-feature-photo figcaption {
  position: absolute;
  left: 16px;
  bottom: 16px;
  max-width: calc(100% - 32px);
  padding: 9px 12px;
  background: #f5f2e9f2;
  color: #25372f;
  font-size: 12px;
  line-height: 1.45;
}

.view-feature-copy {
  max-width: 480px;
}

.view-feature-copy h2 {
  margin: 16px 0;
  font-size: clamp(38px, 4vw, 54px);
}

.view-feature-copy > p:not(.eyebrow) {
  max-width: 40ch;
  color: var(--accessible-muted);
  font-size: 16px;
  line-height: 1.62;
}

.plain-list li,
.season-note p,
.rental-footnote,
.monthly-subtitle,
.monthly-bath-note {
  font-size: 14px;
  line-height: 1.58;
}

.date-widget .demo-warning p,
.widget-caption,
.demo-form-note,
.address-line,
.coordinates,
.legal-placeholder {
  font-size: 13px;
}

.date-fields label,
.monthly-demo-form > label,
.consent-label {
  color: var(--accessible-muted);
  font-size: 12px;
  line-height: 1.5;
}

.date-fields input,
.monthly-demo-form input {
  min-width: 0;
  min-height: 44px;
  font-size: 14px;
}

.faq-list summary {
  min-height: 48px;
  align-items: center;
  font-size: 16px;
  line-height: 1.45;
}

.address-line {
  line-height: 1.65;
}

.contact-card > div:first-child > p:last-child {
  color: #e5e9df;
  font-size: 15px;
  line-height: 1.6;
}

.contact-secondary {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  color: #f0f0e8;
  font-size: 14px;
  line-height: 1.45;
}

.legal-placeholder {
  color: var(--accessible-muted);
}

.footer-inner > p,
.footer-disclaimer {
  color: #d5dbd1;
  font-size: 12px;
  line-height: 1.6;
}

.footer-top {
  width: 44px;
  height: 44px;
}

.lightbox-close,
.lightbox-arrow {
  min-width: 48px;
  min-height: 48px;
}

@media (max-width: 980px) {
  .site-header {
    padding-inline: 20px;
  }

  .menu-toggle {
    display: flex;
    width: 44px;
    height: 44px;
  }

  .primary-nav {
    display: none;
    position: absolute;
    top: 71px;
    left: 0;
    right: 0;
    padding: 16px 20px 20px;
    background: var(--paper);
    border-bottom: 1px solid var(--line);
    box-shadow: 0 12px 20px #16241b13;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
  }

  .primary-nav.is-open {
    display: flex;
  }

  .primary-nav > a:not(.button) {
    min-height: 48px;
    padding: 12px 6px;
    border-bottom: 1px solid #deddd4;
  }

  .primary-nav .button {
    margin-top: 13px;
  }
}

@media (max-width: 880px) {
  .hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: stretch;
    gap: 21px;
    padding-block: 20px 38px;
  }

  .hero-photo-wrap {
    width: 100%;
    min-width: 0;
    min-height: 0;
    aspect-ratio: 1.58;
  }

  .hero-photo {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-position: 24% 49%;
  }

  .hero-content {
    max-width: 720px;
    padding: 0;
  }

  .hero h1 {
    max-width: 17ch;
    font-size: clamp(42px, 7vw, 58px);
  }

  .view-feature {
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
    padding-block: 20px 56px;
  }

  .view-feature-photo {
    aspect-ratio: 1.58;
  }

  .view-feature-copy {
    max-width: 680px;
  }
}

@media (max-width: 800px) {
  .section-shell {
    width: min(100% - 40px, var(--shell));
  }

  .hero-photo-wrap {
    aspect-ratio: 1.52;
  }

  .villa-layout,
  .amenities-section,
  .dates-section,
  .rules-layout,
  .monthly-section,
  .location-layout {
    min-width: 0;
  }

  .gallery-grid {
    grid-template-rows: none;
    grid-auto-rows: minmax(175px, 1fr);
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .gallery-card-large {
    grid-row: span 2;
    grid-column: span 2;
  }

  .view-feature {
    width: min(100% - 40px, var(--shell));
  }
}

@media (max-width: 560px) {
  body {
    font-size: 16px;
    line-height: 1.58;
  }

  .prototype-ribbon {
    font-size: 10px;
    letter-spacing: 0.04em;
  }

  .section-shell,
  .view-feature {
    width: calc(100% - 32px);
  }

  .site-header {
    padding-inline: 16px;
  }

  .hero {
    align-items: stretch;
    gap: 18px;
    padding-top: 14px;
    padding-bottom: 30px;
  }

  .hero-photo-wrap {
    display: block;
    width: 100%;
    flex: 0 0 auto;
    aspect-ratio: 1.22;
    min-height: 0;
  }

  .hero-photo {
    object-position: 22% 48%;
  }

  .hero-content {
    width: 100%;
    padding: 0;
  }

  .hero h1 {
    max-width: none;
    margin-block: 11px 8px;
    font-size: clamp(36px, 9.3vw, 42px);
    line-height: 1.06;
  }

  .hero-viewline {
    margin-bottom: 11px;
    font-size: 22px;
    line-height: 1.25;
  }

  .hero-intro {
    margin-bottom: 18px;
    font-size: 16px;
    line-height: 1.55;
  }

  .hero-facts {
    flex-wrap: wrap;
    gap: 8px 12px;
    font-size: 13px;
  }

  .hero-price {
    margin-top: 18px;
  }

  .hero-price > strong {
    font-size: 29px;
  }

  .price-subnote,
  .hero-footnote {
    font-size: 12px;
  }

  .hero-actions {
    gap: 8px 14px;
  }

  .hero-actions .button {
    min-height: 48px;
    padding: 12px 16px;
  }

  .hero-actions .text-link {
    font-size: 13px;
  }

  .photo-caption {
    left: 10px;
    bottom: 10px;
    max-width: calc(100% - 90px);
    padding: 8px 10px;
    font-size: 11px;
  }

  .hero-stamp {
    top: 12px;
    right: 12px;
    width: 68px;
    height: 68px;
  }

  .section-space {
    padding-block: 58px;
  }

  h2 {
    font-size: clamp(32px, 8.5vw, 40px);
    line-height: 1.14;
  }

  .section-heading > p,
  .heading-row > p {
    font-size: 14px;
  }

  .gallery-filters {
    gap: 7px;
    margin-bottom: 16px;
  }

  .filter-chip {
    min-height: 44px;
    padding: 9px 11px;
    font-size: 12px;
  }

  .gallery-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: none;
    grid-auto-rows: minmax(148px, 42vw);
    gap: 8px;
  }

  .gallery-card-large {
    grid-row: span 2;
    grid-column: span 2;
  }

  .gallery-label {
    left: 7px;
    bottom: 7px;
    max-width: calc(100% - 14px);
    padding: 7px 8px;
    font-size: 11px;
  }

  .view-feature {
    gap: 17px;
    padding-block: 10px 48px;
  }

  .view-feature-photo {
    aspect-ratio: 1.22;
  }

  .view-feature-copy h2 {
    margin-block: 11px;
    font-size: clamp(34px, 8.5vw, 40px);
  }

  .view-feature-copy > p:not(.eyebrow) {
    font-size: 16px;
  }

  .floor-row p,
  .amenity-card-text p,
  .rule-item p,
  .faq-list details p,
  .key-handover p {
    font-size: 14px;
    line-height: 1.6;
  }

  .plain-list li,
  .season-note p,
  .monthly-subtitle,
  .monthly-bath-note {
    font-size: 14px;
    line-height: 1.6;
  }

  .rental-grid {
    grid-template-columns: 1fr;
  }

  .date-fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .date-fields label:last-child {
    grid-column: span 2;
  }

  .monthly-demo-form {
    gap: 14px;
  }

  .monthly-demo-form .button {
    font-size: 14px;
  }

  .consent-label,
  .demo-form-note {
    font-size: 12px !important;
    line-height: 1.55;
  }

  .address-line {
    font-size: 15px;
  }

  .coordinates {
    font-size: 12px;
  }

  .map-frame {
    height: 310px;
  }

  .contact-card > div:first-child > p:last-child {
    font-size: 15px;
  }

  .contact-secondary {
    min-height: 44px;
    font-size: 14px;
  }

  .legal-placeholder {
    font-size: 12px;
  }

  .footer-inner > p,
  .footer-disclaimer {
    font-size: 12px;
  }

  .mobile-cta {
    grid-template-columns: 0.85fr 1.15fr;
    gap: 8px;
    padding: 8px 12px calc(8px + env(safe-area-inset-bottom));
  }

  .mobile-cta a {
    min-width: 0;
    min-height: 48px;
    padding-inline: 6px;
    font-size: 12px;
    line-height: 1.25;
    text-align: center;
  }

  .site-footer {
    padding-bottom: 100px;
  }
}

@media (max-width: 380px) {
  .section-shell,
  .view-feature {
    width: calc(100% - 28px);
  }

  .hero h1 {
    font-size: 36px;
  }

  .hero-viewline {
    font-size: 20px;
  }

  .gallery-grid {
    grid-auto-rows: minmax(142px, 44vw);
  }

  .mobile-cta {
    grid-template-columns: 0.8fr 1.2fr;
    padding-inline: 8px;
  }
}

@media (max-width: 980px) and (orientation: landscape) and (max-height: 520px) {
  .hero {
    padding-block: 12px 26px;
  }

  .hero-photo-wrap,
  .view-feature-photo {
    aspect-ratio: 2.25;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

@media (max-width: 560px) {
  .prototype-ribbon {
    padding: 8px 10px;
    font-size: 8px;
    line-height: 1.25;
  }

  .hero-photo-wrap {
    aspect-ratio: 1.5;
  }
}


/* Accessibility contrast and narrow-viewport safeguards */
:root {
  --accessible-muted: #505c53;
}

.brand-copy span {
  color: #4f5b52;
  font-size: 9px;
}

.image-index {
  padding: 8px 6px;
  border-left: 2px solid var(--terracotta);
  background: var(--paper);
  color: var(--ink);
  letter-spacing: 0.12em;
}

.amenity-card-text p {
  color: #f5f2e9;
}

.rental-kicker,
.rental-price span,
.monthly-price span,
.monthly-subtitle,
.monthly-bath-note,
.season-note p,
.dates-copy > p:not(.eyebrow),
.rules-lead > p:last-child,
.monthly-callout span,
.date-fields label,
.monthly-demo-form label,
.monthly-demo-form .form-row label,
#monthly-demo-note {
  color: var(--accessible-muted);
}

@media (max-width: 560px) {
  .hero-photo-wrap {
    aspect-ratio: 1.6;
  }
}

@media (max-width: 380px) {
  .fact-strip,
  .amenities-section,
  .rental-grid,
  .dates-section,
  .rules-layout,
  .monthly-section,
  .location-layout,
  .contact-card {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .fact-strip > div,
  .amenities-intro,
  .amenity-cards,
  .amenity-card,
  .rental-card,
  .dates-copy,
  .date-widget,
  .rules-lead,
  .rules-content,
  .monthly-photo,
  .monthly-content,
  .location-copy,
  .map-frame,
  .contact-card > div {
    min-width: 0;
    max-width: 100%;
  }

  .fact-strip > div {
    padding-inline: 0;
  }

  .map-frame iframe {
    width: 100%;
    min-width: 0;
  }
}


@media (max-width: 380px) {
  h1,
  h2,
  h3,
  p,
  li,
  a,
  span,
  strong,
  small,
  label,
  button {
    overflow-wrap: anywhere;
    hyphens: auto;
  }

  .section-heading > div,
  .location-copy,
  .location-copy > *,
  .contact-card > *,
  .monthly-demo-form,
  .form-row > label {
    min-width: 0;
    max-width: 100%;
  }
}


@media (max-width: 380px) {
  .photo-caption {
    left: 8px;
    right: 8px;
    max-width: calc(100% - 24px);
    overflow-wrap: anywhere;
  }

  .date-fields {
    grid-template-columns: minmax(0, 1fr);
  }

  .date-fields label:last-child {
    grid-column: auto;
  }

  .footer-inner > p {
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
  }
}


@media (max-width: 560px) {
  .mobile-cta {
    position: static;
    inset: auto;
    z-index: auto;
    width: calc(100% - 32px);
    margin: 0 auto 24px;
    padding: 12px 0 4px;
    border: 0;
    background: transparent;
    box-shadow: none;
  }

  .site-footer {
    padding-bottom: 28px;
  }
}


/* Body-copy scale for content-bearing paragraphs and rental rules */
.section-heading > p,
.floor-row p,
.contact-card > div > p:not(.eyebrow) {
  font-size: 16px;
  line-height: 1.5;
}

.amenity-card-text p,
.plain-list li,
.season-note p,
.monthly-subtitle,
.monthly-bath-note,
.dates-copy > p:not(.eyebrow),
.demo-warning p,
.rules-lead > p:last-child,
.rule-item p,
.key-handover p {
  font-size: 15px;
  line-height: 1.5;
}


/* PR #4 follow-up: compact facts, legible notice and contained desktop stamp */
.prototype-ribbon {
  min-height: 36px;
  padding: 8px 12px;
  background: #243a31;
  color: #f7f4ec;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.01em;
  line-height: 1.35;
  text-align: center;
}

.prototype-dot {
  width: 8px;
  height: 8px;
  background: #ddb778;
}

.hero-stamp {
  box-sizing: border-box;
  width: 96px;
  height: 96px;
  padding: 9px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  border-radius: 50%;
  text-align: center;
}

.hero-stamp span {
  display: block;
  max-width: 100%;
  font-size: 9px;
  line-height: 1.15;
  text-align: center;
  text-wrap: balance;
  white-space: normal;
  overflow-wrap: normal;
}

.hero-stamp strong {
  font-size: 27px;
  line-height: 1;
}

.hero-stamp small {
  font-size: 10px;
  line-height: 1.1;
}

@media (max-width: 880px) {
  .hero-stamp {
    display: none;
  }

  .hero-photo {
    object-position: 50% 84%;
  }

  .view-feature-photo img {
    object-position: 25% 82%;
  }
}

@media (min-width: 881px) {
  .hero-photo {
    object-position: 25% 50%;
  }
}


/* Guest-facing availability contacts and readability polish */
.date-contact-card {
  display: grid;
  align-content: start;
  justify-items: start;
  gap: 14px;
}

.date-contact-mark {
  display: inline-grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border: 1px solid currentColor;
  border-radius: 50%;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.06em;
}

.date-contact-card h3 {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(25px, 2.5vw, 32px);
  line-height: 1.2;
}

.date-contact-card > p:not(.widget-caption) {
  margin: 0;
  max-width: 42ch;
  color: inherit;
  font-size: 16px;
  line-height: 1.6;
}

.date-contact-card .button {
  width: 100%;
  min-height: 50px;
  font-size: 15px;
}

.date-contact-email,
.monthly-contact-email {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  color: inherit;
  font-size: 14px;
  line-height: 1.45;
  overflow-wrap: anywhere;
  text-underline-offset: 0.2em;
}

.date-contact-card .widget-caption {
  margin: 2px 0 0;
  font-size: 14px;
  line-height: 1.5;
}

.monthly-contact {
  display: grid;
  gap: 12px;
  margin-top: 20px;
  padding: 18px;
  border: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.38);
}

.monthly-contact > p {
  margin: 0;
  color: var(--accessible-muted);
  font-size: 16px;
  line-height: 1.6;
}

.monthly-contact .button {
  min-height: 50px;
  font-size: 15px;
}

.monthly-contact-email {
  color: var(--ink);
}

body {
  font-size: 16px;
  line-height: 1.62;
}

.hero-facts {
  font-size: 14px;
}

.price-subnote,
.rental-footnote,
.monthly-subtitle,
.season-note p,
.fact-strip small,
.gallery-label,
.filter-chip,
.plain-list li,
.small-note,
.floor-row p,
.amenity-card-text p,
.rule-item p,
.faq-list details p,
.address-line,
.coordinates,
.key-handover p,
.footer-inner > p,
.footer-disclaimer,
.contact-secondary {
  font-size: 14px;
  line-height: 1.55;
}

.button,
.contact-actions .button,
.mobile-cta a {
  min-height: 48px;
  font-size: 15px;
  line-height: 1.3;
}

.filter-chip {
  padding: 10px 13px;
}

.gallery-label {
  padding: 8px 11px;
}

:focus-visible {
  outline-offset: 4px;
}

@media (max-width: 520px) {
  .hero-photo-wrap {
    width: 100%;
    flex: 0 0 auto;
  }

  .filter-chip {
    min-height: 44px;
  }

  .date-contact-card,
  .monthly-contact {
    padding: 18px;
  }

  .date-contact-card > p:not(.widget-caption),
  .monthly-contact > p {
    font-size: 16px;
  }

  .date-contact-email,
  .monthly-contact-email {
    font-size: 14px;
  }

  .mobile-cta a {
    min-height: 50px;
    padding-inline: 8px;
    font-size: 14px;
  }
}


@media (max-width: 520px) {
  .mobile-cta {
    position: fixed;
    display: grid;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 50;
    padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
    border-top: 1px solid var(--line);
    background: rgba(245, 242, 233, 0.96);
    backdrop-filter: blur(12px);
  }

  .site-footer {
    padding-bottom: calc(96px + env(safe-area-inset-bottom));
  }
}


@media (max-width: 520px) {
  .mobile-cta {
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transform: translateY(calc(100% + 8px));
    transition: opacity 160ms ease, transform 160ms ease, visibility 160ms ease;
  }

  .mobile-cta.is-visible {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
  }
}


/* Small-label sizing: keep supporting copy legible on narrow screens. */
.eyebrow {
  font-size: 12px;
  line-height: 1.45;
}

.primary-nav a,
.nav-phone {
  font-size: 14px;
}

.hero-price > span:first-child,
.hero-price strong small,
.rental-price span,
.monthly-price span,
.monthly-callout span,
.text-link,
.view-feature-photo figcaption,
.map-label {
  font-size: 14px;
}

.hero-stamp span {
  font-size: 10px;
}

.hero-stamp small {
  font-size: 12px;
}

.amenity-number,
.rental-kicker,
.month-seal {
  font-size: 12px;
}

.amenity-card > p,
.monthly-photo > span {
  font-size: 14px;
  line-height: 1.45;
}

.brand-copy {
  font-size: 12px;
}

@media (max-width: 520px) {
  .primary-nav a,
  .nav-phone {
    font-size: 15px;
  }

  .hero-price > span:first-child,
  .hero-price strong small,
  .rental-price span,
  .monthly-price span,
  .monthly-callout span,
  .text-link,
  .view-feature-photo figcaption,
  .map-label {
    font-size: 14px;
  }

  .hero-stamp span {
    font-size: 10px;
  }
}


.amenity-card-caption > span,
.amenity-card-text > .amenity-number {
  font-size: 12px;
}

.amenity-card-caption > p,
.amenity-card-text > p {
  font-size: 14px;
  line-height: 1.55;
}

.brand-copy > span {
  font-size: 12px;
}
