:root{--ink:#173f46;--deep:#0f3b43;--cream:#f4f0e8;--sand:#e8ddca;--muted:#6f8584;--white:#fff;--accent:#d87d5b;--line:rgba(23,63,70,.15);font-family:'DM Sans',sans-serif;color:var(--ink);background:var(--cream)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream)}img{display:block;width:100%;height:100%;object-fit:cover}.container{width:min(1160px,calc(100% - 64px));margin:0 auto}.site-header{background:var(--cream);overflow:hidden}.nav{height:84px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:11px;color:var(--ink);font-weight:700;font-size:18px;text-decoration:none;letter-spacing:-.03em}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--deep);color:#e8c99a;font:600 13px 'Fraunces',serif;letter-spacing:-1px}.nav-links{display:flex;gap:30px;font-size:13px}.nav-links a{color:var(--ink);text-decoration:none}.nav-links a:hover{color:var(--accent)}.hero{min-height:650px;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;padding:70px 0 85px}.eyebrow,.section-kicker{color:var(--accent);text-transform:uppercase;letter-spacing:.17em;font-size:11px;font-weight:700}.hero h1{font:600 clamp(42px,5.2vw,76px)/.99 'Fraunces',serif;letter-spacing:-.055em;margin:22px 0 25px;max-width:600px}.hero-lead{color:#547170;font-size:17px;line-height:1.65;max-width:480px}.booking-actions{display:flex;flex-wrap:wrap;gap:12px;margin:34px 0 25px}.btn{border:0;display:inline-flex;align-items:center;justify-content:space-between;gap:22px;border-radius:3px;padding:15px 18px;font:600 13px 'DM Sans',sans-serif;text-decoration:none;cursor:pointer;transition:transform .2s,box-shadow .2s}.btn:hover{transform:translateY(-2px);box-shadow:0 8px 18px #123b4325}.btn-airbnb{background:#e85757;color:#fff}.btn-booking{background:#1769a7;color:#fff}.btn-whatsapp{background:#20b45b;color:#fff;margin-top:25px;width:max-content}.btn-light{background:#f5eee3;color:var(--deep);margin-top:10px}.hero-note{font-size:12px;color:var(--muted)}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#d67b5d;margin-right:8px}.hero-art{height:520px;position:relative}.hero-image{border-radius:2px;box-shadow:22px 22px 0 var(--sand)}.hero-stamp{position:absolute;bottom:-26px;left:-40px;width:115px;height:115px;border-radius:50%;background:var(--accent);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(-10deg);text-align:center}.hero-stamp strong{font:600 27px 'Fraunces',serif}.hero-stamp span{font-size:10px;text-transform:uppercase;letter-spacing:.12em}.hero-caption{position:absolute;right:-20px;bottom:-5px;background:var(--deep);color:#f5eee3;padding:15px 19px;display:flex;gap:18px;font-size:11px;line-height:1.4}.hero-caption span:first-child{color:#e8c99a;font-size:14px}.section{padding:115px 0}.intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px;padding-top:25px}.section h2{font:500 clamp(39px,4.6vw,62px)/1.03 'Fraunces',serif;letter-spacing:-.05em;margin:20px 0}.section h2 em{color:var(--accent);font-style:italic}.intro-text{font-size:16px;line-height:1.75;color:#547170;padding-top:4px}.intro-text p{margin:0 0 20px}.distance-note{border-left:2px solid var(--accent);padding-left:18px;font-size:13px;line-height:1.6}.distance-note strong{color:var(--ink);font-weight:600}.amenities-band{background:var(--deep);color:#fff;padding:72px 0}.section-kicker.light{color:#e9c696}.section-kicker span{color:inherit;opacity:.7;margin-left:12px}.amenities-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:35px;border-top:1px solid #ffffff2e;border-left:1px solid #ffffff2e}.amenity{padding:24px 18px;border-right:1px solid #ffffff2e;border-bottom:1px solid #ffffff2e;display:flex;align-items:center;gap:13px;font-size:13px}.amenity-icon{color:#e9c696;font-size:22px;width:25px}.gallery-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:40px}.gallery-heading p{color:var(--muted);font-size:13px;line-height:1.7;margin-bottom:25px}.galerie-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:210px;gap:10px}.gallery-item{border:0;padding:0;overflow:hidden;background:var(--sand);cursor:zoom-in}.gallery-item img{transition:transform .5s}.gallery-item:hover img{transform:scale(1.06)}.gallery-item--wide{grid-column:span 2}.gallery-item--tall{grid-row:span 2}.location{background:#ece4d7;max-width:none}.location-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:85px;align-items:center}.location p{color:#547170;line-height:1.7;font-size:15px;max-width:370px}.location address{font-style:normal;color:var(--ink);font-weight:600;line-height:1.7;margin-top:28px}.map-wrap{height:450px;box-shadow:18px 18px 0 var(--sand);background:#d9d1c3}.contact{padding-top:100px;padding-bottom:100px}.contact-card{background:var(--deep);color:#fff;padding:60px;display:grid;grid-template-columns:1fr 1fr;gap:80px}.contact-card h2{margin-top:18px}.contact-copy p{color:#b7ceca;line-height:1.7;max-width:360px}.email-link{display:block;color:#f1cb9b;text-decoration:none;margin-top:24px;font-size:14px}.contact-form{display:flex;flex-direction:column}.contact-form label{font-size:11px;color:#b7ceca;margin:0 0 7px}.contact-form input,.contact-form textarea{background:transparent;border:0;border-bottom:1px solid #ffffff4a;color:#fff;padding:9px 0;margin-bottom:21px;font:14px 'DM Sans',sans-serif;outline:0;resize:vertical}.contact-form input:focus,.contact-form textarea:focus{border-color:#e9c696}.form-status{font-size:12px;color:#e9c696;min-height:18px}.site-footer{background:#092d35;color:#b7ceca;padding:26px 0}.footer-inner{display:flex;align-items:center;justify-content:space-between;font-size:11px}.footer-inner .brand{color:#fff}.lightbox{display:none;position:fixed;inset:0;z-index:10;background:#071d20eF;align-items:center;justify-content:center;padding:5vh 6vw}.lightbox.is-open{display:flex}.lightbox img{max-width:100%;max-height:90vh;width:auto;height:auto;object-fit:contain;box-shadow:0 20px 60px #0008}.lightbox-close{position:absolute;right:28px;top:18px;background:none;border:0;color:#fff;font-size:40px;line-height:1;cursor:pointer}
@media(max-width:760px){.container{width:min(100% - 36px,560px)}.nav{height:70px}.nav-links{display:none}.hero{display:flex;flex-direction:column;gap:48px;align-items:stretch;padding:55px 0 75px}.hero h1{font-size:48px}.hero-lead{font-size:15px}.hero-art{height:390px;margin:0 12px}.hero-stamp{left:-28px}.hero-caption{right:-12px}.booking-actions{align-items:stretch;flex-direction:column}.booking-actions .btn{width:max-content;max-width:100%}.section{padding:75px 0}.intro-grid,.location-grid,.contact-card{grid-template-columns:1fr;gap:38px}.intro-grid{padding-top:4px}.amenities-band{padding:55px 0}.amenities-grid{grid-template-columns:repeat(2,1fr)}.amenity{padding:17px 10px;font-size:12px}.gallery-heading{display:block}.gallery-heading p{margin-top:0}.galerie-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:145px}.gallery-item--wide{grid-column:span 2}.location-grid{gap:45px}.map-wrap{height:360px;box-shadow:10px 10px 0 var(--sand)}.map-wrap iframe{height:360px}.contact-card{padding:35px 24px;gap:28px}.footer-inner{flex-direction:column;gap:14px;align-items:flex-start}}

/* Calendrier de disponibilité — ajouté pour La Casa */
.availability{border-top:1px solid var(--line)} .availability-heading{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:40px}.availability-intro{max-width:350px;color:var(--muted);font-size:13px;line-height:1.7}.calendar-legend{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-top:24px!important;color:var(--ink)}.legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.legend-free{background:var(--accent)}.legend-busy{background:#b7b9b1}.calendar-shell{background:#fffdf8;border:1px solid var(--line);padding:28px;box-shadow:12px 12px 0 var(--sand);max-width:760px}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.calendar-toolbar h3{font:500 26px 'Fraunces',serif;margin:0;text-transform:capitalize}.calendar-nav{border:1px solid var(--line);background:transparent;color:var(--deep);width:38px;height:38px;cursor:pointer;font-size:20px}.calendar-nav:hover{background:var(--deep);color:#fff}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.calendar-weekdays{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.12em;text-align:center;margin-bottom:8px}.calendar-grid button{border:0;background:#f2eee7;color:var(--ink);aspect-ratio:1.2;padding:5px;font:500 13px 'DM Sans',sans-serif;cursor:default}.calendar-grid button.is-empty{background:transparent} .calendar-grid button.is-free{background:rgba(216,125,91,.12);color:var(--deep)} .calendar-grid button.is-in-range{background:rgba(216,125,91,.18);color:var(--deep);border:0}.calendar-grid button.is-past{color:var(--muted);background:#f8f3eb}.calendar-grid button.is-booked{background:rgba(23,63,70,.18);color:var(--muted);text-decoration:line-through}.calendar-grid button.is-today{outline:2px solid var(--accent);outline-offset:-2px}.calendar-status{color:var(--muted);font-size:12px;margin:20px 0 0}.calendar-status.is-error{color:#b34f43}.calendar-status.is-demo{color:#9a6e45}@media(max-width:760px){.availability-heading{display:block}.availability-intro{margin-top:20px}.calendar-shell{padding:18px 12px;box-shadow:7px 7px 0 var(--sand)}.calendar-toolbar h3{font-size:21px}.calendar-grid{gap:3px}.calendar-grid button{font-size:12px}}

.booking-request{padding-top:0}.booking-heading{display:flex;justify-content:space-between;margin:14px 0 28px}.booking-heading h2{font:500 clamp(38px,5vw,62px)/1.05 Fraunces,serif;letter-spacing:-.04em;margin:0}.booking-heading em{color:var(--accent)}.booking-heading p{color:var(--muted);max-width:520px}.booking-form{background:#fffdf8;border:1px solid var(--line);padding:30px;display:grid;gap:20px;box-shadow:12px 12px 0 var(--sand)}.booking-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.booking-form label{display:grid;gap:8px;color:var(--muted);font-size:12px}.booking-form input,.booking-form textarea{width:100%;box-sizing:border-box;border:1px solid var(--line);background:transparent;padding:13px;font:14px 'DM Sans',sans-serif;color:var(--ink)}.booking-form textarea{resize:vertical}.booking-status{min-height:20px;margin:0;color:var(--accent);font-size:13px}.booking-status.is-error{color:#b64040}@media(max-width:760px){.booking-fields{grid-template-columns:1fr}.booking-form{padding:20px;box-shadow:7px 7px 0 var(--sand)}}
.calendar-grid button.is-selected {
  background: var(--deep);
  color: #fff;
  outline: 2px solid var(--accent);
  outline-offset: -2px;
}
