*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f7f4ee;color:#1e3435;font-family:Arial,Helvetica,sans-serif;line-height:1.6}a{color:inherit}.topbar{height:86px;padding:0 5.5%;display:flex;align-items:center;justify-content:space-between;background:rgba(248,246,241,.96);position:sticky;top:0;z-index:20;border-bottom:1px solid #e2ddd3}.logo{display:flex;align-items:center;gap:12px;text-decoration:none;font-weight:700;letter-spacing:2px}.logo small{display:block;font-size:9px;letter-spacing:3px;font-weight:500}.mark{width:42px;height:42px;border:1px solid #1e3435;display:grid;place-items:center;font-family:Georgia,serif}.topbar nav{display:flex;gap:26px;align-items:center}.topbar nav a{text-decoration:none;font-size:14px}.outline{border:1px solid #1e3435;padding:11px 18px}.hero{height:calc(100vh - 86px);min-height:650px;background:url('assets/ouessant-01.jpg') center/cover;position:relative;color:#fff;display:flex;align-items:center}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,30,34,.7) 0%,rgba(7,30,34,.28) 55%,rgba(7,30,34,.16) 100%)}.hero-copy{position:relative;z-index:1;margin-left:8%;max-width:720px}.kicker{font-size:11px;letter-spacing:3px;font-weight:700;margin:0 0 16px}.hero h1,.section-head h2,.copy h2,.booking h2,.contact h2,.availability-strip h2{font-family:Georgia,serif;font-weight:400;line-height:1.02}.hero h1{font-size:clamp(72px,11vw,145px);margin:0}.hero-copy>p:not(.kicker){font:26px/1.4 Georgia,serif;max-width:610px}.cta{display:inline-block;background:#b8a082;color:#fff;border:0;padding:15px 25px;text-transform:uppercase;letter-spacing:1.4px;font-size:12px;text-decoration:none;cursor:pointer}.cta.light{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.7)}.hero-facts{position:absolute;right:5%;bottom:5%;z-index:1;text-align:right;display:grid;gap:9px;text-transform:uppercase;letter-spacing:1.5px;font-size:11px;font-weight:700}.availability-strip{max-width:1080px;margin:-46px auto 70px;position:relative;z-index:4;background:#fff;box-shadow:0 8px 30px rgba(20,30,30,.13);padding:32px 40px;display:flex;align-items:center;justify-content:space-between;gap:25px}.availability-strip h2{font-size:36px;margin:0}.availability-strip p{margin:5px 0}.split{max-width:1180px;margin:auto;padding:80px 5%;display:grid;grid-template-columns:1fr 1fr;gap:75px;align-items:center}.photo.tall{height:680px;background-size:cover;background-position:center}.copy h2,.section-head h2,.booking h2,.contact h2{font-size:clamp(40px,5vw,64px);margin:0 0 28px}.notice{border-left:3px solid #b8a082;padding:14px 0 14px 20px}.mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:30px}.mini-grid span{background:#fff;padding:17px;border:1px solid #e1ddd5}.mini-grid b{font:26px Georgia,serif}.quote-band{background:#173c3c;color:#fff;text-align:center;padding:85px 8%}.quote-band p{font:clamp(28px,4vw,48px)/1.3 Georgia,serif;max-width:900px;margin:0 auto 12px}.quote-band span{font-size:11px;letter-spacing:2px}.island,.gallery-wrap,.reviews,.contact{max-width:1200px;margin:auto;padding:95px 5%}.section-head{max-width:740px;margin-bottom:45px}.section-head p:last-child{max-width:600px}.island-grid{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:300px 300px;gap:12px}.island-grid img{width:100%;height:100%;object-fit:cover}.island-grid img:first-child{grid-row:span 2}.island-grid img:nth-child(2){grid-column:span 2}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.gallery figure{height:330px;margin:0}.gallery figure.wide{grid-column:span 2}.gallery img{width:100%;height:100%;object-fit:cover}.reviews{text-align:center}.score{display:flex;justify-content:center;align-items:center;gap:20px;margin:25px 0}.score strong{font:80px Georgia,serif}.quote-photo{height:520px;background-size:cover;background-position:center;display:grid;place-items:center;color:#fff;text-align:center;padding:40px}.quote-photo blockquote{font:clamp(34px,5vw,64px)/1.2 Georgia,serif;max-width:900px}.booking{background:#e8dfd2;padding:95px 8%;display:grid;grid-template-columns:1fr 1fr;gap:80px}.booking-copy ol{padding:0;list-style:none}.booking-copy li{display:grid;gap:2px;border-top:1px solid rgba(30,52,53,.25);padding:17px 0}.booking-copy li span{font-size:14px}.booking-form{background:#fff;padding:35px;display:grid;gap:15px}.booking-form .row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.booking-form label{font-size:13px;font-weight:700}.booking-form input,.booking-form select,.booking-form textarea{display:block;width:100%;margin-top:5px;padding:13px;border:1px solid #d3cdc2;background:#fff;font:inherit}.price-box{background:#f6f2eb;padding:18px}.summary-line{display:flex;justify-content:space-between;gap:15px}.muted{font-size:13px;color:#677}.small{font-size:12px;color:#677}.form-message{font-weight:700}.error{color:#912f2f}.success{color:#28674a}.contact{text-align:center}footer{background:#173c3c;color:white;padding:28px 6%;display:flex;justify-content:space-between;font-size:12px;letter-spacing:1px}footer a{color:white}@media(max-width:850px){.topbar nav a:not(.outline){display:none}.hero{min-height:580px}.hero-copy{margin:0 7%}.hero-facts{display:none}.availability-strip{margin:-25px 5% 40px;display:block}.availability-strip .cta{margin-top:14px}.split,.booking{grid-template-columns:1fr}.photo.tall{height:480px}.island-grid{grid-template-columns:1fr 1fr;grid-template-rows:280px 230px 230px}.island-grid img:first-child{grid-column:span 2;grid-row:auto}.island-grid img:nth-child(2){grid-column:auto}.gallery{grid-template-columns:1fr 1fr}.gallery figure.wide{grid-column:span 2}.booking{padding:70px 5%}}
.availability-calendar-section{max-width:1200px;margin:auto;padding:90px 5%}.calendar-toolbar{display:flex;align-items:center;justify-content:center;gap:24px;margin-bottom:20px}.calendar-nav{border:1px solid #cfc7ba;background:#fff;padding:10px 16px;cursor:pointer;font-size:18px}.public-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;background:#fff;padding:16px;border:1px solid #ddd5c8}.cal-head{font-size:11px;letter-spacing:1px;text-transform:uppercase;text-align:center;padding:8px;color:#6b7474}.cal-day{aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;border:1px solid #eee7dc;background:#faf8f4;font-size:14px}.cal-day.muted{opacity:.25}.cal-day.unavailable{background:#e6e1da;color:#8d8d8d;text-decoration:line-through}.cal-day.today{outline:2px solid #b8a082}.calendar-legend{display:flex;gap:20px;margin-top:14px;font-size:13px}.dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px}.dot.free{background:#f8f5ef;border:1px solid #b8a082}.dot.unavailable{background:#b8b0a5}.legal-note{font-size:12px;color:#6d7777;max-width:700px;margin:20px auto 0}
.admin-shell{min-height:100vh;background:#efe6d9;padding:45px 5%}.admin-header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:30px}.admin-grid{display:grid;grid-template-columns:1.4fr .8fr;gap:22px}.admin-panel{background:#fff;padding:26px;border:1px solid #dfd6c9}.booking-card{padding:18px 0;border-top:1px solid #eee5d8}.booking-card:first-child{border-top:0}.status-pill{display:inline-block;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:700;margin-left:8px}.status-demande_recue{background:#fff3c4;color:#7b6112}.status-contrat_envoye{background:#dbeafe;color:#1e4f91}.status-acompte_recu{background:#eadcf8;color:#6f3aa5}.status-confirmee{background:#d9f2df;color:#25683b}.status-refusee{background:#ffdede;color:#8b2222}.status-annulee{background:#f4caca;color:#8b2222}.admin-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.admin-cal-head,.admin-cal-day{padding:8px;text-align:center;font-size:12px}.admin-cal-day{min-height:52px;background:#faf7f2;border:1px solid #eee6db;position:relative}.event-bar{display:block;margin-top:4px;padding:3px 4px;border-radius:3px;font-size:10px;line-height:1.2}.ev-demande_recue{background:#fff3c4}.ev-contrat_envoye{background:#dbeafe}.ev-acompte_recu{background:#eadcf8}.ev-confirmee{background:#d9f2df}.ev-refusee,.ev-annulee{background:#f4caca}.ev-blocked{background:#d7d2ca}.status-legend{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0 18px}.status-legend span{font-size:12px}.status-legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px}
@media(max-width:850px){.admin-grid{grid-template-columns:1fr}.public-calendar{gap:3px;padding:8px}.cal-day{font-size:12px}.admin-cal-day{min-height:45px;padding:4px}}
