:root{--ink:#18342f;--ink-soft:#4f625d;--cream:#f7f2e8;--paper:#fffdf8;--accent:#09698d;--accent-dark:#074a64;--line:#18342f33}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:96px}body{color:var(--ink);background:var(--paper);text-rendering:optimizelegibility;margin:0;font:1rem/1.65 Arial,Helvetica,sans-serif}img{max-width:100%;height:auto;display:block}picture{display:block}a{color:inherit;text-underline-offset:4px}button{font:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.4}a,button{-webkit-tap-highlight-color:transparent}:focus-visible{outline-offset:4px;outline:3px solid #bc670d}h1,h2,h3,p{margin-top:0}h1,h2,h3,.brand{letter-spacing:-.035em;font-family:Georgia,Times New Roman,serif;font-weight:400}h1{font-size:clamp(2.4rem,6vw,5rem);line-height:1.08}h2{margin-bottom:0;font-size:clamp(2.25rem,4.3vw,4rem);line-height:1.08}h3{font-size:1.75rem;line-height:1.2}.page-width{width:min(1180px,100% - 48px);margin-inline:auto}.section{padding-block:clamp(64px,7vw,104px)}.eyebrow{color:var(--accent-dark);letter-spacing:.12em;text-transform:uppercase;margin-bottom:16px;font-size:.875rem;font-weight:700}.eyebrow.light{color:#f3d49d}.skip-link{z-index:100;background:#fff;padding:10px 14px;position:fixed;top:-80px;left:16px}.skip-link:focus{top:16px}.site-header{border-bottom:1px solid var(--line);z-index:20;background:#fffdf8f7;align-items:center;gap:24px;min-height:76px;padding:12px max(24px,50vw - 590px);display:flex;position:sticky;top:0}.brand{white-space:nowrap;font-size:1.4rem;text-decoration:none}.brand span{color:var(--accent);font-style:italic}.main-nav{align-items:center;gap:20px;margin-left:auto;display:flex}.main-nav a,.nav-cta{white-space:nowrap;justify-content:center;align-items:center;min-height:44px;font-size:.875rem;font-weight:700;text-decoration:none;display:inline-flex}.main-nav a:hover{color:var(--accent)}.nav-cta{border:1px solid var(--accent);color:var(--accent-dark);padding:8px 14px}.nav-cta:hover{color:#fff;background:var(--accent)}.main-nav .nav-cta:hover{color:#fff}.menu-toggle,.mobile-booking{display:none}.hero{color:#fff;position:relative;overflow:hidden}.hero-image,.hero-shade{width:100%;height:100%;position:absolute;inset:0}.hero-image img{object-fit:cover;object-position:50% 35%;width:100%;height:100%}.hero-shade{background:linear-gradient(90deg,#081a19b8,#081a191a),linear-gradient(#0000 45%,#081a1999)}.hero-content{z-index:2;flex-direction:column;justify-content:center;min-height:clamp(560px,47.45vw,900px);padding-block:72px 170px;display:flex;position:relative}.hero h1{max-width:780px;margin-bottom:24px;font-size:clamp(4rem,8vw,7.2rem);line-height:1}.hero-lead{max-width:580px;font-size:clamp(1.1rem,1.7vw,1.3rem);line-height:1.5}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:12px;display:flex}.button{border:1px solid #0000;justify-content:center;align-items:center;min-height:48px;padding:12px 20px;font-size:.875rem;font-weight:700;text-decoration:none;transition:background .16s,color .16s;display:inline-flex}.button-primary{background:var(--accent);color:#fff}.button-primary:hover{background:var(--accent-dark)}.button-ghost{color:#fff;border-color:#ffffffbf}.button-ghost:hover{color:var(--ink);background:#fff}.hero-facts{z-index:3;grid-template-columns:repeat(4,1fr);display:grid;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.hero-facts span{border-top:1px solid #ffffff80;padding:20px 16px}.hero-facts strong{font-size:1.25rem;display:block}.intro{grid-template-columns:.85fr 1.15fr;gap:64px;display:grid}.intro-copy{max-width:690px}.lead-copy{font:clamp(1.35rem,2.2vw,1.8rem)/1.5 Georgia,serif}.text-link{color:var(--accent-dark);border-bottom:1px solid;margin-top:14px;font-weight:700;text-decoration:none;display:inline-block}.image-break{background:var(--cream);padding-bottom:32px}.image-break img{object-fit:cover;object-position:50% 68%;width:100%;height:min(55vw,560px)}.image-break p{width:min(1180px,100% - 48px);margin:24px auto 0;font:clamp(1.3rem,2.5vw,2rem)/1.4 Georgia,serif}.split-heading{grid-template-columns:1.3fr .7fr;align-items:end;gap:48px;margin-bottom:40px;display:grid}.split-heading>p{color:var(--ink-soft);margin:0}.amenities-grid{border-top:1px solid var(--line);grid-template-columns:repeat(3,1fr);margin:0;padding:0;list-style:none;display:grid}.amenities-grid li{border-bottom:1px solid var(--line);align-items:center;min-height:72px;padding:14px 16px 14px 0;display:flex}.amenities-grid li span{color:var(--accent);flex-shrink:0;width:36px;font-size:.875rem}.gallery-section{background:var(--cream)}.gallery-heading{justify-content:space-between;align-items:end;gap:36px;margin-bottom:36px;display:flex}.gallery-heading>p{color:var(--ink-soft);max-width:280px;margin:0}.gallery-grid{grid-template-columns:repeat(12,1fr);grid-auto-rows:280px;gap:16px;display:grid}.gallery-grid figure{grid-column:span 4;margin:0;position:relative;overflow:hidden}.gallery-grid figure.gallery-feature{grid-area:span 2/span 8}.gallery-grid a,.gallery-grid picture{height:100%;display:block}.gallery-grid img{object-fit:cover;width:100%;height:100%;transition:transform .3s}.gallery-grid img[src="/images/main-bedroom-garden.jpg"],.gallery-grid img[src="/images/villa-evening.jpg"]{object-position:50% 65%}.gallery-grid a:hover img{transform:scale(1.025)}.gallery-grid a:focus-visible{outline-offset:-5px}.gallery-grid figcaption{color:#fff;pointer-events:none;background:#091e1be6;max-width:calc(100% - 24px);padding:6px 10px;font-size:.875rem;line-height:1.4;position:absolute;bottom:12px;left:12px}.reviews-section{background:var(--paper)}.review-heading{margin-bottom:40px}.review-ratings{border-top:1px solid var(--line);flex-wrap:wrap;gap:24px 56px;margin:40px 0 24px;padding-top:32px;display:flex}.review-rating{align-items:center;gap:16px;text-decoration:none;display:flex}.review-rating>strong{color:var(--accent-dark);white-space:nowrap;font:3rem/1 Georgia,serif}.review-rating>strong>span{font:1.25rem Arial,sans-serif}.review-rating>span>span{color:var(--ink-soft);font-size:.875rem;display:block}.review-rating:hover b{text-decoration:underline}.review-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;display:grid}.review-card{border-left:2px solid var(--accent);flex-direction:column;min-width:0;margin:0;padding:0 0 0 24px;display:flex}.review-card blockquote{color:var(--ink);margin:0 0 28px;font:clamp(1.4rem,2.2vw,1.9rem)/1.4 Georgia,serif}.review-card blockquote p{margin:0}.review-author{margin-top:auto}.review-author strong{font-size:1rem}.review-author p{color:var(--ink-soft);margin:4px 0;font-size:.875rem}.review-translation{color:var(--ink-soft);font-size:.875rem}.review-check-date{color:var(--ink-soft);margin:0;font-size:.875rem}.location{background:var(--ink);color:#fff}.location-grid{grid-template-columns:.9fr 1.1fr;align-items:center;gap:64px;display:grid}.location-copy h2{margin-bottom:28px}.location-copy>p:not(.eyebrow){color:#ffffffd9}.location-copy dl{border-top:1px solid #ffffff4d;margin:28px 0}.location-copy dl div{border-bottom:1px solid #ffffff4d;justify-content:space-between;gap:12px;padding:12px 0;display:flex}.location-copy dd{white-space:nowrap;margin:0}.privacy-note{margin-top:14px;font-size:.875rem}.location-image{width:100%;max-width:480px;margin:0 auto;position:relative}.location-image img{aspect-ratio:3/4;object-fit:contain;width:100%;height:auto}.location-image figcaption{color:#fff;background:#091e1be6;padding:6px 10px;font-size:.875rem;line-height:1.4;position:absolute;bottom:12px;left:12px}.booking-grid{grid-template-columns:.75fr 1.5fr;align-items:start;gap:24px;display:grid}.booking-contact{background:var(--cream);border-left:3px solid var(--accent);margin-bottom:28px;padding:20px 24px}.booking-contact a{color:var(--accent-dark);overflow-wrap:anywhere;font-weight:700}.rates-card,.calendar{border:1px solid var(--line);min-width:0;padding:24px}.rates-card table{border-collapse:collapse;width:100%}.rates-card th,.rates-card td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:14px 8px 14px 0}.rates-card th:last-child,.rates-card td:last-child{text-align:right;white-space:nowrap}.rates-card th{color:var(--ink-soft);font-size:.875rem}.card-note{color:var(--ink-soft);margin:18px 0 0;font-size:.875rem}.calendar-toolbar,.calendar-controls{justify-content:space-between;align-items:center;gap:8px;display:flex}.calendar-toolbar{flex-wrap:wrap}.calendar-toolbar h3{margin:0}.calendar-controls button{background:var(--paper);border:1px solid var(--line);color:var(--ink);min-width:44px;min-height:44px;font-size:1.1rem}.calendar-controls .today-button{padding-inline:10px;font-size:.875rem}.calendar-controls button:not(:disabled):hover{background:var(--cream)}.calendar-status{background:var(--cream);margin:20px 0;padding:12px;font-size:.875rem}.calendar-months{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}.calendar-month{border-collapse:separate;border-spacing:2px;table-layout:fixed;width:100%;font-size:.875rem}.calendar-month caption{text-align:left;margin-bottom:12px;font-size:1rem;font-weight:700}.calendar-month th{color:var(--ink-soft);padding-bottom:8px;font-weight:400}.calendar-month td{padding:0}.calendar-day{border-radius:3px;justify-content:center;align-items:center;width:100%;min-height:36px;display:flex}.calendar-day[aria-current]{outline:2px solid var(--ink);outline-offset:-2px;font-weight:700}.available{color:#254b2c;background:#dcebdd}.reserved{color:#73351c;background:#f4ded4}.unavailable{color:#263a48;background:#d4dce1}.unknown{color:#46504b;background:repeating-linear-gradient(135deg,#f0efea,#f0efea 5px,#e3e1d9 5px 6px)}.past{color:#767c78}.calendar-legend{flex-wrap:wrap;gap:10px 18px;margin:20px 0 0;padding:0;font-size:.875rem;list-style:none;display:flex}.calendar-legend li{align-items:center;gap:7px;display:inline-flex}.legend-swatch{border:1px solid var(--line);width:14px;height:14px}.site-footer{color:#fffc;background:#102723;padding:48px 0 24px}.footer-grid{grid-template-columns:1.2fr 1fr auto;gap:32px;display:grid}.footer-brand{color:#fff;margin-bottom:10px}.site-footer a{color:#fff}.footer-links{flex-direction:column;gap:8px;display:flex}.test-notice{border-top:1px solid #ffffff40;margin-top:28px;padding-top:20px;font-size:.875rem}.legal-main{background:var(--cream);min-height:70vh;padding-block:64px 96px}.legal-main h1{overflow-wrap:anywhere}.legal-sheet{background:#fff;max-width:820px;margin-top:36px;padding:clamp(24px,5vw,56px)}.legal-sheet h2{margin:32px 0 14px;font-size:1.65rem}.legal-status{background:#fff2c9;border-left:4px solid #a76e0b;margin-bottom:28px;padding:16px}@media (width<=1000px){.site-header,.main-nav{gap:12px}.booking-grid{grid-template-columns:1fr}.hero{color:var(--ink);background:var(--cream)}.hero-image{aspect-ratio:1820/864;height:auto;position:relative}.hero-image img{object-fit:contain;height:auto}.hero-shade{display:none}.hero-content{min-height:0;padding-block:32px}.hero h1{margin-bottom:16px;font-size:clamp(2.7rem,8vw,4.2rem)}.hero .eyebrow.light{color:var(--accent-dark)}.hero .button-ghost{border-color:var(--accent);color:var(--accent-dark)}.hero-facts{padding-bottom:12px;position:static;transform:none}.hero-facts span{border-color:var(--line)}}@media (width<=820px){.site-header{min-height:72px}.mobile-booking{display:inline-flex}.menu-toggle{min-width:54px;min-height:44px;color:var(--ink);border:1px solid var(--line);background:0 0;margin-left:auto;font-size:.875rem;display:block}.main-nav{background:var(--paper);border-bottom:1px solid var(--line);margin:0;padding:12px 24px 20px;display:none;position:absolute;top:100%;left:0;right:0}.main-nav.is-open{grid-template-columns:1fr 1fr;display:grid}.main-nav a{justify-content:flex-start;min-height:48px;padding:8px 12px}.intro,.split-heading,.location-grid{grid-template-columns:1fr;gap:28px}.amenities-grid{grid-template-columns:repeat(2,1fr)}.review-grid{gap:12px}.review-card{padding-left:16px}.gallery-grid{grid-auto-rows:260px}.gallery-grid figure,.gallery-grid figure.gallery-feature{grid-area:span 1/span 6}.gallery-grid figure.gallery-feature{grid-column:span 12}.footer-grid{grid-template-columns:1fr 1fr}}@media (width<=620px){html{scroll-padding-top:90px}.page-width{width:calc(100% - 32px)}.site-header{gap:8px;padding:10px 16px}.site-header .brand{font-size:1.12rem}.nav-cta{padding:8px 12px}.hero-content{padding-block:28px}.hero h1{margin-bottom:16px;font-size:clamp(2.7rem,12vw,4.2rem)}.hero-lead{font-size:1rem}.hero-actions{gap:8px;margin-top:0}.hero-actions .button{flex:1;padding-inline:10px}.hero-facts{grid-template-columns:1fr 1fr}.hero-facts span{border-color:var(--line);padding:12px 8px;font-size:.875rem}.hero-facts strong{font-size:1.05rem}.section{padding-block:56px}.image-break p{width:calc(100% - 32px)}.amenities-grid{grid-template-columns:1fr}.review-grid{grid-template-columns:1fr;gap:32px}.review-card blockquote{margin-bottom:16px}.gallery-heading{flex-direction:column;align-items:flex-start;gap:20px}.gallery-grid{grid-auto-rows:240px;gap:12px}.gallery-grid figure,.gallery-grid figure.gallery-feature{grid-column:span 12}.rates-card,.calendar{padding:16px}.calendar-months{grid-template-columns:1fr}.calendar-month+.calendar-month{display:none}.calendar-day{min-height:40px}.footer-grid{grid-template-columns:1fr;gap:20px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
