:root{--ink:#233d42;--paper:#f8f6f0;--sea:#284c52;--muted:#586b69;--line:#d5dad1}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.6 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}a{color:inherit}button,input,select,textarea{font:inherit;color:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #b66d34;outline-offset:4px}header{max-width:1500px;margin:auto;padding:26px 6%;display:flex;justify-content:space-between;align-items:center;gap:20px}.brand{font-size:14px;letter-spacing:2px;text-decoration:none}.brand small{display:block;font-size:9px;letter-spacing:2px;margin-top:5px}nav{display:flex;gap:24px;align-items:center}nav a{text-decoration:none;font-size:14px}button{border:1px solid var(--line);background:transparent;border-radius:3px;padding:11px 16px}h1,h2,h3{font-family:Georgia,serif;font-weight:400;line-height:1.1;margin:0}h1{font-size:clamp(42px,6vw,82px);letter-spacing:-2px;max-width:700px}h2{font-size:clamp(34px,4vw,54px);letter-spacing:-1px}h3{font-size:27px}.eyebrow{font-size:10px;letter-spacing:2px;margin:0 0 20px}.hero{margin:0 24px;min-height:560px;background:linear-gradient(90deg,#153139aa,#15313933),var(--hero) center/cover;color:white;display:flex;align-items:center}.hero-content{padding:70px 6%;max-width:900px}.hero-content>p:not(.eyebrow){max-width:450px;margin:26px 0}.button{display:inline-block;border:0;background:var(--sea);color:white;padding:16px 23px;border-radius:3px;text-decoration:none}.button.light{background:var(--paper);color:var(--ink)}.catalog{padding:70px 7%;background:#efeee6}.filters{display:grid;grid-template-columns:1.5fr repeat(4,1fr) auto;gap:12px;align-items:end;margin:35px 0 12px}label{display:block;font-size:12px}input,select,textarea{width:100%;background:#faf9f4;border:1px solid var(--line);padding:12px;border-radius:3px;margin-top:7px;min-width:0}select{height:49px}.filters button{min-height:49px}.muted{font-size:13px;color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 24px}.group-title{grid-column:1/-1;margin:28px 0 0}.group-title p{font-size:14px;max-width:850px}.card{text-align:left;border:0;padding:0;width:100%}.visual{height:240px;background:var(--tone);position:relative;display:grid;place-items:center;overflow:hidden}.visual img{width:100%;height:100%;object-fit:cover}.placeholder{padding:24px;color:white;text-align:center;font-size:14px}.card h3{margin-top:16px}.card .beds{font-size:13px;margin:8px 0}.card .cta{font-size:12px;text-decoration:underline}.card:hover img{transform:scale(1.025);transition:transform .2s}.map-section{background:var(--paper)}#map{height:510px;background:#dbe4e1;border:1px solid var(--line);z-index:0}.map-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.map-list button{text-align:left;padding:12px}.map-list small{display:block}.pin{display:grid;place-items:center;border:2px solid white;background:var(--sea);color:white;border-radius:50%;width:32px!important;height:32px!important;box-shadow:0 1px 7px #0006;font-size:12px;font-weight:bold}.map-popup img{width:240px;height:150px;object-fit:cover;display:block;border-radius:4px;margin-bottom:10px}.map-popup button{display:block;width:100%;text-align:left;margin-top:8px}.map-popup a{display:block;margin-top:9px}.map-popup strong{font-size:16px}.request{padding:75px 8%;display:grid;grid-template-columns:1fr 1fr;gap:10%}.request>div p{max-width:460px}form>label,form>.formrow{margin-bottom:20px}.formrow{display:grid;grid-template-columns:1fr 1fr;gap:15px}form>.button{width:100%}#summary{margin-top:25px}#summary button{margin-top:12px}footer{padding:25px 7%;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;font-size:11px}dialog{width:min(900px,94vw);max-height:90vh;overflow:auto;border:0;background:var(--paper);color:var(--ink);padding:44px}dialog::backdrop{background:#153139bb}.close{position:sticky;top:0;float:right;background:var(--paper);font-size:26px;line-height:1;z-index:1}.photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:25px 0}.photo-grid img{width:100%;height:240px;object-fit:cover;display:block;border-radius:4px}.photo-grid a:focus-visible{outline-offset:1px}#description{line-height:1.8;margin:25px 0}dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;border-block:1px solid var(--line);padding:18px 0}dl div{min-width:0}dt{font-size:11px;color:var(--muted)}dd{margin:5px 0 0;font-size:14px}video{width:100%;max-height:440px;background:#172f34;display:block}figure{margin:18px 0}figcaption{font-size:12px;margin:5px 0}body:has(dialog[open]){overflow:hidden}[hidden]{display:none!important}@media(max-width:1000px){.filters{grid-template-columns:repeat(3,minmax(0,1fr))}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.map-list{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:600px){header{padding:20px 5%;gap:12px}nav{gap:12px}nav a{font-size:12px}.brand{font-size:10px;letter-spacing:1px}.brand small{font-size:7px}.hero{margin:0 12px;min-height:460px}.hero-content{padding:50px 8%}.catalog{padding:45px 5%}.filters{grid-template-columns:repeat(2,minmax(0,1fr))}.grid{gap:25px 14px}.visual{height:170px}.card h3{font-size:23px}.card .beds{font-size:11px}.map-list{grid-template-columns:1fr 1fr}#map{height:390px}.request{display:block;padding:45px 6%}.request form{margin-top:30px}dialog{padding:25px}dl{grid-template-columns:1fr 1fr}.photo-grid img{height:150px}footer{flex-direction:column;gap:8px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.pin.photo-pin{width:48px!important;height:48px!important;padding:0;position:relative;background:#fff;border:3px solid #fff}.photo-pin img{width:100%;height:100%;border-radius:50%;object-fit:cover}.photo-pin span{position:absolute;right:-7px;bottom:-5px;background:var(--sea);border:1px solid white;border-radius:50%;font-size:10px;line-height:20px;min-width:20px;text-align:center}.map-popup .map-photo-button{border:0;padding:0;margin:0;background:none}.map-photo-button img{margin:0 0 10px}.structure-photo{width:100%;max-height:300px;object-fit:cover;margin-top:25px}.structure-choices{display:grid;gap:12px}.structure-choices button{text-align:left;min-height:48px}

.availability{margin:24px 0;padding:24px;border:1px solid #cbd3ca;border-radius:16px;background:#f8f8f1;max-width:520px}.availability h3{margin-top:0}.calendar-controls{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.calendar-controls button{padding:10px 18px;border:1px solid #cbd3ca;background:white;border-radius:8px;cursor:pointer}.calendar-controls button:disabled{opacity:.35;cursor:default}.calendar-controls strong{text-transform:capitalize}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;text-align:center}.calendar-grid>strong{font-size:.75rem;padding-bottom:8px}.calendar-day{padding:10px 2px;border-radius:6px;border:1px solid #cbd3ca}.calendar-day.busy{background:#803e32;color:white}.calendar-day.request{background:#fff;color:#123e35}.calendar-day.unknown{background:repeating-linear-gradient(135deg,#eee 0,#eee 4px,#fafafa 4px,#fafafa 8px);color:#686868}.calendar-legend{font-size:.8rem}.availability .muted{font-size:.85rem;line-height:1.5}@media(max-width:480px){.availability{padding:14px}.calendar-day{padding:8px 1px}}

#map .leaflet-marker-pane .photo-pin {position:absolute;}
#map .leaflet-marker-pane .photo-pin > img {position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}
