/* ==========================================================================
   Maison du Vivier — design system
   Palette   : pierre calcaire, chêne, bleu "vivier", sauge, terracotta
   Display   : Fraunces (chaleureuse, empattements doux — esprit longère)
   Texte/UI  : Work Sans
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;1,9..144,500&family=Work+Sans:wght@400;500;600;700&display=swap');

:root{
  --stone-50:#F8F4EC;
  --stone-100:#F0E9DA;
  --stone-200:#E4D9C3;
  --ink:#2B2620;
  --ink-soft:#5B5445;
  --oak:#A97B4A;
  --oak-dark:#7C5A34;
  --blue:#2E4A63;
  --blue-dark:#1F3446;
  --sage:#6C7457;
  --terracotta:#C1704A;
  --blush:#C77B72;
  --white:#FFFFFF;
  --line:rgba(43,38,32,.14);
  --shadow:0 24px 48px -24px rgba(43,38,32,.35);
  --radius-s:6px;
  --radius-m:14px;
  --radius-l:26px;
  --maxw:1180px;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:'Work Sans',sans-serif;
  color:var(--ink);
  background:var(--stone-50);
  -webkit-font-smoothing:antialiased;
  line-height:1.5;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3,h4{
  font-family:'Fraunces',serif;
  font-weight:600;
  line-height:1.08;
  margin:0 0 .4em;
  letter-spacing:-.01em;
}
h1{font-size:clamp(2.4rem,5vw,4.2rem); font-weight:500;}
h2{font-size:clamp(1.8rem,3.4vw,2.6rem);}
h3{font-size:1.35rem;}
p{margin:0 0 1em;color:var(--ink-soft);}
.eyebrow{
  display:inline-flex;align-items:center;gap:.5em;
  font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--oak-dark);font-weight:600;margin-bottom:.9em;
}
.eyebrow::before{content:'';width:22px;height:1px;background:var(--oak);display:inline-block;}
.container{max-width:var(--maxw);margin:0 auto;padding:0 28px;}
.section{padding:88px 0;}
.section--tight{padding:56px 0;}
.section--stone{background:var(--stone-100);}
.section--ink{background:var(--blue-dark);color:var(--stone-50);}
.section--ink p{color:#C9D3DB;}
.section--ink h2,.section--ink h3{color:var(--white);}
.center{text-align:center;}
.lede{font-size:1.12rem;max-width:620px;}
.center .lede{margin-left:auto;margin-right:auto;}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.55em;
  font-family:'Work Sans',sans-serif;font-weight:600;font-size:.95rem;
  padding:14px 26px;border-radius:100px;border:1px solid transparent;
  cursor:pointer;transition:transform .18s ease,background .18s ease,color .18s ease,border-color .18s ease;
  white-space:nowrap;
}
.btn:active{transform:scale(.97);}
.btn-primary{background:var(--terracotta);color:var(--white);}
.btn-primary:hover{background:#a85c39;}
.btn-dark{background:var(--blue-dark);color:var(--white);}
.btn-dark:hover{background:#16242f;}
.btn-outline{background:transparent;border-color:currentColor;color:var(--ink);}
.btn-outline:hover{background:var(--ink);color:var(--white);}
.section--ink .btn-outline{color:var(--white);}
.section--ink .btn-outline:hover{background:var(--white);color:var(--blue-dark);}
.btn-ghost{background:transparent;color:var(--ink);padding:14px 6px;}
.btn-ghost::after{content:'→';margin-left:.3em;transition:transform .18s ease;}
.btn-ghost:hover::after{transform:translateX(4px);}
.btn-block{width:100%;}
.btn[disabled]{opacity:.45;cursor:not-allowed;}
.btn-sm{padding:9px 16px;font-size:.82rem;border-radius:100px;}

/* ---------- nav ---------- */
.site-nav{
  position:sticky;top:0;z-index:50;
  background:rgba(248,244,236,.92);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.site-nav .container{display:flex;align-items:center;justify-content:space-between;height:78px;}
.brand{display:flex;align-items:center;gap:.6em;font-family:'Fraunces',serif;font-size:1.28rem;font-weight:600;color:var(--ink);}
.brand svg{width:30px;height:30px;flex-shrink:0;}
.nav-links{display:flex;align-items:center;gap:30px;}
.nav-links a{font-size:.92rem;font-weight:500;color:var(--ink-soft);padding:6px 0;border-bottom:2px solid transparent;transition:color .15s,border-color .15s;}
.nav-links a:hover,.nav-links a.active{color:var(--ink);border-color:var(--oak);}
.nav-cta{display:flex;align-items:center;gap:14px;}
.nav-burger{display:none;background:none;border:none;cursor:pointer;padding:8px;}
.nav-burger span{display:block;width:22px;height:2px;background:var(--ink);margin:4px 0;}
.lang-switch{
  appearance:none;-webkit-appearance:none;
  background:var(--stone-100);border:1px solid var(--line);border-radius:100px;
  padding:8px 28px 8px 14px;font-size:.8rem;font-weight:600;color:var(--ink);cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235B5445' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 8px center;background-size:14px;
}
.lang-switch:focus{outline:2px solid var(--blue);}

/* ---------- hero ---------- */
.hero{position:relative;min-height:92vh;display:flex;align-items:flex-end;overflow:hidden;color:var(--white);}
.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.hero::before{
  content:'';position:absolute;inset:0;
  background:
    linear-gradient(100deg,rgba(10,10,8,.72) 0%,rgba(10,10,8,.5) 30%,rgba(10,10,8,.12) 58%,transparent 72%),
    linear-gradient(180deg,rgba(15,15,12,.25) 0%,rgba(15,15,12,.3) 30%,rgba(15,15,12,.55) 55%,rgba(15,15,12,.95) 100%);
}
.hero-content h1,.hero-content p,.hero-fact b,.hero-fact span{text-shadow:0 2px 4px rgba(0,0,0,.55),0 8px 24px rgba(0,0,0,.4);}
.hero-ripples{position:absolute;right:-120px;top:-120px;width:520px;height:520px;opacity:.5;pointer-events:none;animation:ripple-pulse 10s ease-in-out infinite;}
@keyframes ripple-pulse{
  0%,100%{transform:scale(1);opacity:.35;}
  50%{transform:scale(1.06);opacity:.55;}
}
@media (prefers-reduced-motion: reduce){
  .hero-ripples{animation:none;}
  html{scroll-behavior:auto;}
}
.hero-content{position:relative;z-index:2;padding:0 28px 72px;max-width:var(--maxw);margin:0 auto;width:100%;}
.hero-content .eyebrow{color:#E9D9C3;}
.hero-content .eyebrow::before{background:#E9D9C3;}
.hero h1{color:var(--white);max-width:820px;}
.hero p.lede{color:#EFE9DC;font-size:1.15rem;}
.hero-actions{display:flex;gap:14px;margin-top:26px;flex-wrap:wrap;}
.hero-facts{display:flex;gap:34px;margin-top:52px;flex-wrap:wrap;}
.hero-fact b{display:block;font-family:'Fraunces',serif;font-size:1.6rem;font-weight:500;}
.hero-fact span{font-size:.78rem;letter-spacing:.06em;color:#D9CFBE;text-transform:uppercase;}

/* small page header for interior pages */
.page-header{position:relative;padding:190px 0 70px;overflow:hidden;color:var(--white);}
.page-header img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;}
.page-header::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,20,15,.35) 0%,rgba(20,20,15,.55) 40%,rgba(20,20,15,.92) 100%);}
.page-header .container{position:relative;z-index:1;}
.page-header h1{color:var(--white);text-shadow:0 2px 18px rgba(0,0,0,.35);}
.page-header p{color:#EFEAE0;text-shadow:0 2px 14px rgba(0,0,0,.3);}
.spec-row{display:flex;gap:28px;margin-top:28px;flex-wrap:wrap;}
.spec-pill{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.28);padding:9px 18px;border-radius:100px;font-size:.86rem;display:flex;align-items:center;gap:8px;}
.spec-pill svg{width:16px;height:16px;}

/* ---------- diptych choice cards ---------- */
.diptych{display:grid;grid-template-columns:1fr 1fr;gap:26px;}
.house-card{position:relative;border-radius:var(--radius-l);overflow:hidden;background:var(--white);border:1px solid var(--line);transition:transform .25s ease,box-shadow .25s ease;}
.house-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);}
.house-card .media{position:relative;aspect-ratio:4/3;overflow:hidden;}
.house-card .media img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.house-card:hover .media img{transform:scale(1.05);}
.house-card .tag{position:absolute;top:16px;left:16px;background:rgba(255,255,255,.92);padding:6px 14px;border-radius:100px;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;font-weight:600;color:var(--blue-dark);}
.house-card .body{padding:28px;}
.house-card .meta{display:flex;gap:18px;margin:14px 0 18px;flex-wrap:wrap;}
.house-card .meta span{font-size:.84rem;color:var(--ink-soft);display:flex;align-items:center;gap:6px;}
.house-card .meta svg{width:15px;height:15px;color:var(--oak);}
.house-card .price{font-family:'Fraunces',serif;font-size:1.3rem;color:var(--terracotta);}
.house-card .price small{font-family:'Work Sans',sans-serif;font-size:.72rem;color:var(--ink-soft);font-weight:500;}
.house-card .foot{display:flex;align-items:center;justify-content:space-between;margin-top:20px;}

/* ---------- amenities ---------- */
.amenities-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius-m);overflow:hidden;}
.amenity{background:var(--stone-50);padding:30px 22px;text-align:center;}
.amenity svg{width:32px;height:32px;color:var(--oak);margin-bottom:14px;}
.amenity h4{font-family:'Fraunces',serif;font-size:1.02rem;margin-bottom:4px;font-weight:600;}
.amenity p{font-size:.84rem;margin:0;}

/* ---------- gallery ---------- */
.room-tabs{
  display:flex;gap:10px;flex-wrap:wrap;margin-bottom:34px;
  position:sticky;top:79px;z-index:20;background:var(--stone-50);
  padding:14px 0;border-bottom:1px solid var(--line);
}
.section--stone .room-tabs{background:var(--stone-100);}
.room-tab{padding:10px 20px;border-radius:100px;border:1px solid var(--line);background:var(--white);font-size:.88rem;font-weight:500;cursor:pointer;transition:all .15s;}
.room-tab.active,.room-tab:hover{background:var(--blue-dark);color:var(--white);border-color:var(--blue-dark);}
.room-section{margin-bottom:64px;}
.room-section h3{display:flex;align-items:center;gap:12px;}
.room-section h3::after{content:'';flex:1;height:1px;background:var(--line);}
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:20px;}
.gallery-grid a{border-radius:var(--radius-s);overflow:hidden;aspect-ratio:4/3;cursor:zoom-in;}
.gallery-grid img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease;}
.gallery-grid a:hover img{transform:scale(1.06);}
.gallery-grid a.big{grid-column:span 2;grid-row:span 2;aspect-ratio:auto;}

.lightbox{position:fixed;inset:0;background:rgba(20,17,13,.94);z-index:200;display:none;align-items:center;justify-content:center;padding:40px;}
.lightbox.open{display:flex;}
.lightbox img{max-width:100%;max-height:86vh;border-radius:8px;}
.lightbox-close,.lightbox-prev,.lightbox-next{position:absolute;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.3);color:#fff;border-radius:50%;width:44px;height:44px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.1rem;}
.lightbox-close{top:24px;right:24px;}
.lightbox-prev{left:24px;top:50%;transform:translateY(-50%);}
.lightbox-next{right:24px;top:50%;transform:translateY(-50%);}

/* ---------- sticky booking bar ---------- */
.sticky-bar{position:sticky;bottom:0;z-index:40;background:var(--white);border-top:1px solid var(--line);box-shadow:0 -12px 24px -20px rgba(0,0,0,.25);}
.sticky-bar .container{display:flex;align-items:center;justify-content:space-between;padding:18px 28px;}
.sticky-bar .price{font-family:'Fraunces',serif;font-size:1.25rem;}
.sticky-bar .price small{font-family:'Work Sans',sans-serif;font-size:.75rem;color:var(--ink-soft);}

/* ---------- cards generic ---------- */
.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-m);padding:26px;}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:22px;}

/* ---------- reviews ---------- */
.rating-summary{display:flex;align-items:center;gap:34px;flex-wrap:wrap;}
.rating-big{font-family:'Fraunces',serif;font-size:3.4rem;font-weight:500;line-height:1;}
.stars{color:var(--terracotta);letter-spacing:2px;}
.rating-bars{display:grid;gap:8px;flex:1;min-width:220px;}
.rating-bar-row{display:grid;grid-template-columns:110px 1fr 30px;align-items:center;gap:10px;font-size:.82rem;color:var(--ink-soft);}
.rating-bar-track{height:6px;background:var(--stone-200);border-radius:6px;overflow:hidden;}
.rating-bar-fill{height:100%;background:var(--terracotta);}
.review-card{border-top:1px solid var(--line);padding:26px 0;}
.review-head{display:flex;align-items:center;gap:12px;margin-bottom:10px;}
.avatar{width:42px;height:42px;border-radius:50%;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Fraunces',serif;font-weight:600;}
.review-meta b{display:block;font-size:.95rem;}
.review-meta span{font-size:.78rem;color:var(--ink-soft);}

/* ---------- FAQ accordion ---------- */
.faq-item{border-bottom:1px solid var(--line);}
.faq-q{display:flex;align-items:center;justify-content:space-between;padding:22px 0;cursor:pointer;font-family:'Fraunces',serif;font-size:1.08rem;font-weight:500;gap:20px;}
.faq-q svg{flex-shrink:0;width:18px;height:18px;transition:transform .25s;color:var(--oak);}
.faq-item.open .faq-q svg{transform:rotate(45deg);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .3s ease;}
.faq-item.open .faq-a{max-height:400px;}
.faq-a p{padding-bottom:22px;margin:0;}

/* ---------- forms ---------- */
.field{margin-bottom:18px;}
.field label{display:block;font-size:.82rem;font-weight:600;margin-bottom:7px;color:var(--ink);}
.field .hint{font-size:.76rem;color:var(--ink-soft);margin-top:5px;}
input[type=text],input[type=email],input[type=tel],input[type=number],input[type=date],select,textarea{
  width:100%;padding:13px 15px;border:1px solid var(--line);border-radius:var(--radius-s);
  font-family:'Work Sans',sans-serif;font-size:.95rem;background:var(--white);color:var(--ink);
}
input:focus,select:focus,textarea:focus{outline:2px solid var(--blue);outline-offset:1px;}
textarea{resize:vertical;min-height:100px;}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.choice-cards{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.choice-card{border:2px solid var(--line);border-radius:var(--radius-m);padding:20px;cursor:pointer;position:relative;background:var(--white);transition:border-color .15s,background .15s;}
.choice-card:hover{border-color:var(--oak);}
.choice-card.selected{border-color:var(--blue);background:#F1F5F8;}
.choice-card h4{margin-bottom:6px;}
.choice-card .price{color:var(--terracotta);font-weight:600;font-family:'Fraunces',serif;}
.choice-card .check{position:absolute;top:16px;right:16px;width:20px;height:20px;border-radius:50%;border:2px solid var(--line);}
.choice-card.selected .check{border-color:var(--blue);background:var(--blue);}
.choice-card.selected .check::after{content:'✓';color:#fff;font-size:.7rem;display:flex;align-items:center;justify-content:center;height:100%;}
.stepper{display:flex;align-items:center;gap:14px;}
.stepper button{width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:var(--white);font-size:1.1rem;cursor:pointer;}
.stepper span{min-width:24px;text-align:center;font-weight:600;}

/* ---------- calendar ---------- */
.calendar{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-m);padding:24px;}
.calendar-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;}
.calendar-head button{background:var(--stone-100);border:none;width:34px;height:34px;border-radius:50%;cursor:pointer;font-size:1rem;}
.calendar-months{display:grid;grid-template-columns:1fr 1fr;gap:36px;}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-top:10px;}
.cal-dow{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);text-align:center;padding-bottom:6px;}
.cal-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:.85rem;border-radius:8px;cursor:pointer;position:relative;}
.cal-day.disabled{color:#C9C2AF;cursor:not-allowed;text-decoration:line-through;}
.cal-day.blank{visibility:hidden;}
.cal-day:not(.disabled):not(.blank):hover{background:var(--stone-100);}
.cal-day.selected{background:var(--blue);color:#fff;}
.cal-day.in-range{background:#DCE6EC;}
.cal-day.today::after{content:'';position:absolute;bottom:4px;width:4px;height:4px;border-radius:50%;background:var(--terracotta);}
.cal-legend{display:flex;gap:20px;margin-top:18px;font-size:.78rem;color:var(--ink-soft);flex-wrap:wrap;}
.cal-legend span{display:flex;align-items:center;gap:6px;}
.dot{width:10px;height:10px;border-radius:3px;display:inline-block;}
.dot.avail{background:var(--stone-100);border:1px solid var(--line);}
.dot.selected{background:var(--blue);}
.dot.disabled{background:#C9C2AF;}

/* ---------- price summary ---------- */
.price-box{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-m);padding:26px;position:sticky;top:100px;}
.price-line{display:flex;justify-content:space-between;font-size:.92rem;padding:9px 0;color:var(--ink-soft);}
.price-line.total{border-top:1px solid var(--line);margin-top:8px;padding-top:16px;font-weight:600;color:var(--ink);font-size:1.05rem;}
.price-line.discount{color:var(--sage);}

/* ---------- payment ---------- */
.card-mock{background:linear-gradient(135deg,var(--blue),var(--blue-dark));color:#fff;border-radius:16px;padding:22px;margin-bottom:20px;font-family:'Fraunces',serif;letter-spacing:.06em;}
.card-mock .num{font-size:1.2rem;margin:22px 0 14px;}
.card-mock .row{display:flex;justify-content:space-between;font-size:.72rem;font-family:'Work Sans',sans-serif;letter-spacing:.04em;opacity:.85;}
.notice{background:#F1F5F8;border:1px solid #D5E1E8;border-radius:var(--radius-s);padding:14px 16px;font-size:.82rem;color:var(--blue-dark);display:flex;gap:10px;}
.notice svg{width:18px;flex-shrink:0;}

/* ---------- status pill ---------- */
.pill{display:inline-flex;align-items:center;gap:6px;font-size:.74rem;font-weight:600;padding:5px 12px;border-radius:100px;text-transform:uppercase;letter-spacing:.04em;}
.pill.pending{background:#FBF0DB;color:#8A6416;}
.pill.confirmed{background:#E1EFE2;color:#3C6B41;}
.pill.declined{background:#F6E1DE;color:#9C3B2C;}

/* ---------- table ---------- */
table{width:100%;border-collapse:collapse;font-size:.88rem;}
th,td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--line);}
th{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);font-weight:600;}
tr:hover td{background:var(--stone-100);}

/* ---------- backoffice layout ---------- */
.bo-shell{display:grid;grid-template-columns:230px 1fr;min-height:100vh;}
.bo-side{background:var(--blue-dark);color:#fff;padding:28px 18px;}
.bo-side .brand{color:#fff;margin-bottom:36px;padding:0 10px;}
.bo-nav a{display:block;padding:11px 14px;border-radius:8px;color:#C9D3DB;font-size:.9rem;margin-bottom:4px;}
.bo-nav a:hover,.bo-nav a.active{background:rgba(255,255,255,.1);color:#fff;}
.bo-main{padding:40px 44px;background:var(--stone-50);}
.bo-panel{display:none;}
.bo-panel.active{display:block;}
.bo-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:30px;}
.kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:32px;}
.kpi{background:#fff;border:1px solid var(--line);border-radius:var(--radius-m);padding:20px;}
.kpi span{font-size:.76rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em;}
.kpi b{display:block;font-family:'Fraunces',serif;font-size:1.7rem;font-weight:500;margin-top:6px;}
.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--blue-dark);}
.login-box{background:#fff;padding:44px;border-radius:var(--radius-l);width:380px;}
.file-warning{background:#FBF0DB;border:1px solid #E8D4A0;color:#8A6416;border-radius:var(--radius-s);padding:12px 14px;font-size:.8rem;margin-bottom:18px;line-height:1.5;}

/* ---------- modale d'authentification (mot de passe masqué) ---------- */
.auth-modal-overlay{
  position:fixed;inset:0;z-index:500;background:rgba(20,17,13,.55);
  display:flex;align-items:center;justify-content:center;padding:20px;
}
.auth-modal-box{
  background:#fff;border-radius:var(--radius-l);padding:32px;width:100%;max-width:380px;
  box-shadow:0 20px 60px rgba(0,0,0,.3);
}
.auth-modal-box h3{margin:0 0 8px;font-family:'Fraunces',serif;font-size:1.3rem;}
.auth-modal-box .hint{margin-bottom:16px;}
.auth-modal-box .field{margin-bottom:12px;}
.auth-modal-box input[type="password"]{
  width:100%;padding:11px 14px;border:1px solid var(--line);border-radius:var(--radius-s);font-size:.95rem;
}
.auth-modal-error{color:#B3413B;font-size:.82rem;margin:-4px 0 12px;}
.auth-modal-actions{margin-top:16px;}
.auth-modal-links{display:flex;justify-content:space-between;margin-top:16px;font-size:.82rem;}
.auth-modal-links a{color:var(--ink-soft);}

/* ---------- champ piège anti-robot (invisible pour un humain) ---------- */
.hp-field{position:absolute;left:-9999px;top:-9999px;width:1px;height:1px;overflow:hidden;}
.tag-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;}
.tag-chip{background:var(--stone-100);border:1px solid var(--line);padding:6px 12px;border-radius:100px;font-size:.78rem;display:flex;align-items:center;gap:8px;}
.tag-chip button{background:none;border:none;cursor:pointer;color:var(--ink-soft);font-size:.9rem;line-height:1;}

/* ---------- éditeur de textes du site (details/summary repliables) ---------- */
.i18n-section{background:#fff;border:1px solid var(--line);border-radius:var(--radius-m);margin-bottom:12px;padding:6px 22px;}
.i18n-section summary{cursor:pointer;padding:14px 0;font-family:'Fraunces',serif;font-size:1.05rem;font-weight:600;list-style:revert;}
.i18n-section summary::marker{color:var(--oak);}
.i18n-section-body{padding:6px 0 20px;}
.i18n-item-index{margin:18px 0 6px;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--oak-dark);font-weight:700;}
.mini-translate-btn{padding:6px 10px !important;font-size:.85rem;line-height:1;flex-shrink:0;}
.room-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:4px;}
.room-card-head h4{margin:0;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);font-weight:700;}
.site-footer{background:var(--blue-dark);color:#C9D3DB;padding:64px 0 30px;}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px;margin-bottom:48px;}
.site-footer h4{color:#fff;font-size:.85rem;text-transform:uppercase;letter-spacing:.06em;margin-bottom:16px;font-family:'Work Sans',sans-serif;font-weight:600;}
.site-footer a{display:block;color:#C9D3DB;font-size:.88rem;margin-bottom:10px;}
.site-footer a:hover{color:#fff;}
.site-footer .brand{color:#fff;margin-bottom:14px;}
.footer-bottom{border-top:1px solid rgba(255,255,255,.14);padding-top:24px;font-size:.78rem;display:flex;justify-content:space-between;color:#9FADB8;flex-wrap:wrap;gap:10px;}

/* ---------- toast ---------- */
.toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%) translateY(120%);background:var(--ink);color:#fff;padding:16px 26px;border-radius:100px;font-size:.9rem;z-index:300;transition:transform .3s ease;display:flex;align-items:center;gap:10px;}
.toast.show{transform:translateX(-50%) translateY(0);}

/* ---------- photo strip manager (back office + mode édition) ---------- */
.photo-strip{display:flex;flex-wrap:wrap;gap:10px;}
.photo-strip-item{position:relative;width:96px;height:72px;border-radius:8px;overflow:hidden;flex-shrink:0;border:1px solid var(--line);}
.photo-strip-item img{width:100%;height:100%;object-fit:cover;}
.photo-strip-controls{position:absolute;inset:0;background:rgba(20,17,13,.45);opacity:0;transition:opacity .15s;display:flex;align-items:center;justify-content:space-between;padding:4px;}
.photo-strip-item:hover .photo-strip-controls{opacity:1;}
.photo-strip-controls button{background:rgba(255,255,255,.9);border:none;border-radius:50%;width:22px;height:22px;font-size:.75rem;cursor:pointer;line-height:1;}
.photo-strip-controls button:disabled{opacity:.3;cursor:not-allowed;}
.photo-strip-controls button[data-act="remove"]{background:#fff;color:#9C3B2C;}
.photo-strip-add{width:96px;height:72px;border-radius:8px;border:2px dashed var(--line);display:flex;align-items:center;justify-content:center;font-size:1.6rem;color:var(--ink-soft);cursor:pointer;flex-shrink:0;transition:border-color .15s,color .15s;}
.photo-strip-add:hover{border-color:var(--oak);color:var(--oak);}

/* ---------- mode édition sur le site public ---------- */
.edit-toggle-btn{
  position:fixed;bottom:24px;right:24px;z-index:250;
  background:var(--blue-dark);color:#fff;border:none;border-radius:100px;
  padding:13px 22px;font-size:.85rem;font-weight:600;cursor:pointer;box-shadow:var(--shadow);
  display:flex;align-items:center;gap:8px;
}
.edit-toggle-btn.active{background:var(--terracotta);}
body.edit-mode-active [data-editable]{
  outline:1.5px dashed var(--oak);outline-offset:4px;border-radius:4px;cursor:text;
}
body.edit-mode-active [data-editable]:focus{outline-style:solid;background:#FFFBEF;}
body.edit-mode-active .gallery-editable-add{
  aspect-ratio:4/3;border:2px dashed var(--line);border-radius:var(--radius-s);
  display:flex;align-items:center;justify-content:center;font-size:2rem;color:var(--ink-soft);cursor:pointer;
}
body.edit-mode-active .gallery-editable-add:hover{border-color:var(--oak);color:var(--oak);}
body.edit-mode-active .gallery-grid a{position:relative;}
.gallery-remove-btn{
  position:absolute;top:6px;right:6px;z-index:5;background:#fff;color:#9C3B2C;border:none;
  border-radius:50%;width:26px;height:26px;font-size:.8rem;cursor:pointer;opacity:0;transition:opacity .15s;
}
.gallery-grid a:hover .gallery-remove-btn{opacity:1;}
.edit-mode-banner{
  position:fixed;top:88px;left:50%;transform:translateX(-50%);z-index:249;
  background:var(--ink);color:#fff;padding:9px 20px;border-radius:100px;font-size:.78rem;
  display:flex;align-items:center;gap:8px;box-shadow:var(--shadow);
}
.hero-photo-change-btn{
  position:absolute;top:100px;right:28px;z-index:5;
  background:rgba(20,17,13,.75);color:#fff;padding:11px 18px;border-radius:100px;
  font-size:.82rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:8px;
  border:1px solid rgba(255,255,255,.3);
}
.hero-photo-change-btn:hover{background:rgba(20,17,13,.92);}

/* ---------- misc ---------- */
.divider-line{height:1px;background:var(--line);margin:0;border:none;}
.two-col{display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:center;}
.badge-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px;}
.badge{font-size:.76rem;background:var(--stone-100);padding:6px 12px;border-radius:100px;border:1px solid var(--line);}

/* ---------- responsive ---------- */
@media (max-width:960px){
  .nav-links{display:none;}
  .nav-burger{display:block;}
  .diptych,.grid-3,.grid-2,.two-col,.amenities-grid,.field-row,.choice-cards{grid-template-columns:1fr;}
  .amenities-grid{grid-template-columns:repeat(2,1fr);}
  .gallery-grid{grid-template-columns:repeat(2,1fr);}
  .calendar-months{grid-template-columns:1fr;}
  .bo-shell{grid-template-columns:1fr;}
  .bo-side{display:flex;overflow-x:auto;padding:16px;}
  .bo-nav{display:flex;gap:6px;}
  .kpi-row{grid-template-columns:repeat(2,1fr);}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .rating-summary{flex-direction:column;align-items:flex-start;}
}
@media (max-width:600px){
  .hero-facts{gap:22px;}
  .amenities-grid{grid-template-columns:1fr 1fr;}
  .gallery-grid{grid-template-columns:1fr 1fr;}
  .footer-grid{grid-template-columns:1fr;}
  .kpi-row{grid-template-columns:1fr 1fr;}
}
