:root{--paper:#f7f3eb;--ink:#293b32;--muted:#697367;--olive:#52664b;--line:#d7dbce;--gold:#b48c50}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.7 Arial,sans-serif}a{color:inherit}button,input,select{font:inherit}button,.button{display:inline-block;border:0;border-radius:3px;padding:13px 22px;background:var(--olive);color:white;text-decoration:none;cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:4px}header{display:flex;align-items:center;justify-content:space-between;padding:20px 6vw;border-bottom:1px solid var(--line);gap:24px}.brand{text-decoration:none;font:24px/1.1 Georgia,serif}.brand small{display:block;font:9px Arial;letter-spacing:3px;margin-bottom:7px}nav{display:flex;gap:25px;align-items:center}nav a{text-decoration:none;font-size:14px}.hero{min-height:620px;display:grid;grid-template-columns:1fr 1fr;align-items:stretch}.hero-copy{padding:80px 6vw 65px}.eyebrow{text-transform:uppercase;font-size:11px;letter-spacing:3px;color:var(--olive);font-weight:bold}h1,h2,h3{font-family:Georgia,serif;font-weight:400;line-height:1.13}h1{font-size:clamp(45px,5vw,76px);letter-spacing:-2px;margin:26px 0}h1 em{color:var(--olive)}h2{font-size:clamp(34px,4vw,52px);margin:14px 0 25px}h3{font-size:26px}p{max-width:650px}.hero-copy p{color:var(--muted);margin-bottom:30px}.hero-photo{background:linear-gradient(160deg,#e1d8bd,#859483 45%,#344f40);position:relative;min-height:380px;overflow:hidden}.hero-photo img{width:100%;height:100%;position:absolute;object-fit:cover}.photo-note{position:absolute;bottom:25px;left:30px;right:30px;color:white;font-size:13px}.ribbon{display:grid;grid-template-columns:repeat(4,1fr);padding:28px 6vw;border-block:1px solid var(--line);text-align:center}.ribbon strong{display:block;font:30px Georgia}.ribbon span{font-size:12px;color:var(--muted)}section{padding:80px 6vw;scroll-margin-top:25px}.two{display:grid;grid-template-columns:1fr 1fr;gap:65px}.muted{color:var(--muted)}.amenities{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.amenities span{border-bottom:1px solid var(--line);padding:12px 0;font-size:14px}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.gallery figure{margin:0}.gallery img{width:100%;height:270px;object-fit:cover;border-radius:3px}.gallery figcaption{font:20px Georgia;padding:15px 0}.placeholder{height:270px;background:#dedfce;display:flex;align-items:center;justify-content:center;color:var(--muted);padding:30px;text-align:center}.booking{background:#e8ecdf}.panel{background:#fffdf9;padding:30px;border:1px solid var(--line);border-radius:5px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:18px}label{display:block;font-size:13px}input,select{width:100%;padding:12px;border:1px solid #b9c1b3;border-radius:3px;background:white;color:var(--ink);margin-top:6px}.full{grid-column:1/-1}.amount{font:38px Georgia}.summary{padding:20px 0;border-block:1px solid var(--line);margin:22px 0}.summary div{display:flex;justify-content:space-between}.notice{padding:12px 16px;background:#f1e4c9;color:#66522f;font-size:13px;border-radius:3px}.error{color:#922b22}.status{white-space:pre-line;margin-top:18px}.rules{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.rules article{border-top:1px solid var(--line)}footer{background:var(--ink);color:var(--paper);padding:45px 6vw;display:flex;justify-content:space-between;gap:30px;font-size:12px}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin:15px 0}.calendar span{padding:8px 2px;text-align:center;font-size:12px;background:white}.calendar .busy{background:#cbbd9e;text-decoration:line-through}.calendar .past{opacity:.35}.calhead{display:flex;justify-content:space-between;align-items:center;gap:10px}.calhead button{padding:5px 14px}.admin-list article{margin:15px 0}.admin-list button{margin:10px 12px 0 0}dialog{max-width:90vw;border:0;padding:12px;background:var(--paper)}dialog::backdrop{background:#000b}dialog img{max-width:85vw;max-height:80vh}dialog button{display:block;margin:8px 0} [hidden]{display:none!important}@media(max-width:780px){header{padding:20px}.brand{font-size:20px}nav a:not(.button){display:none}nav .button{padding:9px 12px}.hero,.two{grid-template-columns:1fr}.hero-copy{padding:45px 24px}.hero-photo{min-height:350px}.ribbon{grid-template-columns:repeat(2,1fr);gap:20px}section{padding:50px 24px}.two{gap:30px}.gallery,.rules{grid-template-columns:1fr}.formgrid{grid-template-columns:1fr}.panel{padding:22px}footer{flex-direction:column}.gallery img{height:300px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.hero-photo img{object-position:65% center}.villa-logo{display:block;width:170px;height:auto}.brand-logo{display:flex;align-items:center;gap:16px}.footer-logo{width:210px;height:auto;border-radius:3px}header:has(.villa-logo){padding-block:10px}@media(max-width:780px){.villa-logo{width:118px}.brand-logo{gap:8px}.brand-logo .brand-name{display:none}}

/* Gallery */
#gallery{background:#efede4}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.photo-grid figure{margin:0;min-width:0}.photo-grid img{width:100%;height:260px;object-fit:cover;border-radius:3px;display:block}.photo-button{display:block;padding:0;background:none;width:100%}.photo-grid figcaption{padding:14px 0}.photo-grid button:focus-visible{outline:3px solid #916831;outline-offset:4px}#uploadPhotos{display:grid;gap:18px;max-width:650px}#uploadPhotos input{max-width:100%}#managePhotos button{font-size:14px}header nav{flex-wrap:wrap} @media(max-width:800px){.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.photo-grid{grid-template-columns:1fr}.photo-grid img{height:300px}}

.language-picker{min-width:112px;flex-shrink:0}.language-picker span{font-size:10px;letter-spacing:.5px}.language-picker select{padding:7px 9px;margin-top:2px}.villa-logo{width:180px;height:auto}.footer-logo{width:260px;height:auto;object-fit:contain;align-self:flex-start}header{gap:20px}header nav{gap:20px}@media(max-width:1000px){header{flex-wrap:wrap}header nav{order:3;width:100%;justify-content:center}.language-picker{margin-left:auto}}@media(max-width:780px){nav a:not(.button){display:block}header nav{flex-wrap:wrap;gap:12px}header nav a{font-size:13px}.villa-logo{width:150px}}
