/* ============================================================
   KERBOINET — Palette Vert Sauge + Bleu Bébé
   ============================================================ */
:root {
  --bois:       #1A2E2A;
  --lin:        #F2EDE4;
  --lin-fonce:  #E8E0D0;
  --sauge:      #7A9E8E;
  --sauge-f:    #4A7A6A;
  --bleu:       #A8C4D4;
  --bleu-f:     #6A9AB0;
  --bleu-pale:  #D4E8F0;
  --granit:     #6B8880;
  --granit-l:   #A0B8B0;
  --blanc:      #FDFAF6;
  --texte:      #1A2E2A;
  --texte-soft: #4A6860;
  --fonte-titre: 'Libre Baskerville', Georgia, serif;
  --fonte-corps: 'Inter', system-ui, sans-serif;
  --radius: 6px;
  --shadow: 0 2px 16px rgba(26,46,42,0.10);
  --shadow-lg: 0 8px 40px rgba(26,46,42,0.16);
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: var(--fonte-corps); background: var(--lin); color: var(--texte); line-height: 1.7; -webkit-font-smoothing: antialiased; }

/* NAV */
#nav { position:fixed; top:0; left:0; right:0; z-index:200; background:rgba(26,46,42,0.97); backdrop-filter:blur(8px); border-bottom:1px solid rgba(122,158,142,0.3); }
.nav-inner { max-width:1200px; margin:0 auto; padding:0 2rem; height:60px; display:flex; align-items:center; justify-content:space-between; }
.nav-logo { font-family:var(--fonte-titre); font-size:1.2rem; color:var(--lin); text-decoration:none; font-style:italic; letter-spacing:0.06em; }
.nav-links { display:flex; gap:1.6rem; list-style:none; }
.nav-links a { font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase; color:rgba(242,237,228,0.55); text-decoration:none; transition:color 0.2s; font-weight:500; }
.nav-links a:hover, .nav-links a.active { color:var(--lin); }
.nav-burger { display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:8px; }
.nav-burger span { display:block; width:24px; height:2px; background:var(--lin); pointer-events:none; }

/* STONE DIVIDER */
.stone-divider { height:14px; background:repeating-linear-gradient(90deg,transparent,transparent 40px,rgba(122,158,142,0.08) 40px,rgba(122,158,142,0.08) 41px),linear-gradient(180deg,var(--lin-fonce),var(--lin)); border-top:1px solid rgba(122,158,142,0.2); border-bottom:1px solid rgba(122,158,142,0.2); }

/* HERO */
.hero { min-height:100svh; background:linear-gradient(160deg,rgba(26,46,42,0.75) 0%,rgba(26,46,42,0.45) 100%),url('../img/hero.jpg') center/cover no-repeat; background-color:var(--bois); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:6rem 2rem 4rem; position:relative; }
.hero-content { max-width:700px; }
.hero-eyebrow { font-size:0.72rem; letter-spacing:0.28em; text-transform:uppercase; color:var(--bleu); margin-bottom:1.4rem; font-weight:500; }
.hero h1 { font-family:var(--fonte-titre); font-size:clamp(2.4rem,6vw,4.5rem); font-weight:400; color:var(--lin); line-height:1.12; margin-bottom:1.4rem; }
.hero h1 em { font-style:italic; color:rgba(242,237,228,0.72); }
.hero-sub { font-size:1.05rem; color:rgba(242,237,228,0.65); font-weight:300; max-width:460px; margin:0 auto 2.4rem; line-height:1.75; }
.hero-scroll { position:absolute; bottom:2rem; left:50%; transform:translateX(-50%); color:rgba(242,237,228,0.35); font-size:1.2rem; animation:bob 2s ease-in-out infinite; }
@keyframes bob { 0%,100%{transform:translateX(-50%) translateY(0)} 50%{transform:translateX(-50%) translateY(6px)} }

/* CAROUSEL */
.carousel { position:relative; width:100%; max-width:900px; margin:2.5rem auto 0; border-radius:12px; overflow:hidden; box-shadow:var(--shadow-lg); }
.carousel-track { display:flex; transition:transform 0.5s ease; }
.carousel-slide { min-width:100%; height:420px; object-fit:cover; display:block; }
.carousel-slide-placeholder { min-width:100%; height:420px; background:rgba(26,46,42,0.6); display:flex; align-items:center; justify-content:center; flex-direction:column; gap:1rem; color:rgba(242,237,228,0.7); font-size:0.9rem; }
.carousel-btn { position:absolute; top:50%; transform:translateY(-50%); background:rgba(26,46,42,0.6); color:white; border:none; width:44px; height:44px; border-radius:50%; cursor:pointer; font-size:1.2rem; transition:background 0.2s; }
.carousel-btn:hover { background:rgba(26,46,42,0.9); }
.carousel-btn.prev { left:1rem; }
.carousel-btn.next { right:1rem; }
.carousel-dots { display:flex; justify-content:center; gap:6px; margin-top:0.8rem; }
.carousel-dot { width:8px; height:8px; border-radius:50%; background:rgba(122,158,142,0.3); border:none; cursor:pointer; padding:0; transition:background 0.2s; }
.carousel-dot.active { background:var(--sauge); }

/* PAGE HEADER */
.page-header { background:var(--bois); padding:7rem 2rem 3rem; text-align:center; }
.page-header .section-eyebrow { color:var(--bleu); }
.page-header h1 { font-family:var(--fonte-titre); font-size:clamp(2rem,5vw,3.5rem); font-weight:400; color:var(--lin); line-height:1.15; }
.page-header p { color:rgba(242,237,228,0.6); font-weight:300; font-size:0.95rem; max-width:500px; margin:0.8rem auto 0; }

/* SECTIONS */
.section { padding:4.5rem 2rem; }
.section-dark { background:var(--bois); color:var(--lin); }
.section-dark .section-eyebrow { color:var(--bleu); }
.section-dark .section-title { color:var(--lin); }
.section-dark .section-sub { color:rgba(242,237,228,0.6); }
.container { max-width:1100px; margin:0 auto; }
.container-narrow { max-width:700px; margin:0 auto; }
.section-eyebrow { font-size:0.68rem; letter-spacing:0.28em; text-transform:uppercase; color:var(--bleu-f); font-weight:500; margin-bottom:0.8rem; }
.section-title { font-family:var(--fonte-titre); font-size:clamp(1.8rem,4vw,2.8rem); font-weight:400; line-height:1.15; margin-bottom:1rem; }
.section-sub { font-size:0.95rem; color:var(--texte-soft); font-weight:300; max-width:540px; line-height:1.75; margin-bottom:2.8rem; }

/* BOUTONS */
.btn { display:inline-flex; align-items:center; gap:0.5rem; padding:0.85rem 2rem; border:none; border-radius:var(--radius); font-family:var(--fonte-corps); font-size:0.78rem; letter-spacing:0.14em; text-transform:uppercase; font-weight:500; cursor:pointer; text-decoration:none; transition:all 0.2s; }
.btn-hero { background:var(--sauge); color:white; box-shadow:0 4px 20px rgba(122,158,142,0.4); }
.btn-hero:hover { background:var(--sauge-f); transform:translateY(-2px); }
.btn-primary { background:var(--sauge); color:white; }
.btn-primary:hover { background:var(--sauge-f); transform:translateY(-1px); }
.btn-outline { background:transparent; color:var(--lin); border:1px solid rgba(242,237,228,0.3); }
.btn-outline:hover { background:rgba(242,237,228,0.08); }
.section-dark .btn-primary { background:var(--bleu-f); }
.section-dark .btn-primary:hover { background:var(--bleu-f); filter:brightness(0.9); }

/* CHAMBRES */
.rooms-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:1.5rem; }
.rooms-grid-full { display:grid; grid-template-columns:repeat(auto-fill,minmax(340px,1fr)); gap:1.8rem; }
.room-card { background:var(--blanc); border-radius:10px; overflow:hidden; border:1px solid rgba(122,158,142,0.2); transition:transform 0.25s,box-shadow 0.25s; text-decoration:none; color:var(--texte); display:block; }
.room-card:hover { transform:translateY(-5px); box-shadow:var(--shadow-lg); }
.room-card.selected { border-color:var(--sauge); box-shadow:0 0 0 2px var(--sauge); }
.room-photo { height:200px; background:var(--lin-fonce); position:relative; overflow:hidden; display:flex; align-items:center; justify-content:center; font-size:3rem; }
.room-photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.room-body { padding:1.3rem 1.4rem 1.5rem; }
.room-name { font-family:var(--fonte-titre); font-size:1.15rem; font-weight:400; margin-bottom:0.4rem; }
.room-desc { font-size:0.83rem; color:var(--texte-soft); line-height:1.6; margin-bottom:0.8rem; font-weight:300; }
.room-meta { display:flex; gap:1rem; font-size:0.72rem; color:var(--granit); font-weight:500; letter-spacing:0.06em; text-transform:uppercase; }
.room-selected-tag { display:none; margin-top:0.8rem; background:var(--sauge); color:white; font-size:0.68rem; padding:3px 10px; border-radius:20px; letter-spacing:0.08em; text-transform:uppercase; font-weight:500; }
.room-card.selected .room-selected-tag { display:inline-block; }

/* ROOM CAROUSEL — défilement au survol uniquement */
.room-carousel { position:relative; height:260px; overflow:hidden; background:var(--lin-fonce); }
.room-carousel-track { display:flex; height:100%; transition:transform 0.4s ease; }
.room-carousel-slide { min-width:100%; height:100%; object-fit:cover; flex-shrink:0; }
.room-carousel-slide-placeholder { min-width:100%; height:100%; display:flex; align-items:center; justify-content:center; font-size:3rem; background:var(--lin-fonce); flex-shrink:0; }
.room-carousel-btn { position:absolute; top:50%; transform:translateY(-50%); background:rgba(26,46,42,0.55); color:white; border:none; width:34px; height:34px; border-radius:50%; cursor:pointer; font-size:1rem; display:flex; align-items:center; justify-content:center; transition:all 0.2s; opacity:0; }
.room-carousel:hover .room-carousel-btn { opacity:1; }
.room-carousel-btn:hover { background:rgba(26,46,42,0.9); }
.room-carousel-btn.prev { left:0.6rem; }
.room-carousel-btn.next { right:0.6rem; }
.room-carousel-dots { position:absolute; bottom:0.5rem; left:50%; transform:translateX(-50%); display:flex; gap:5px; opacity:0; transition:opacity 0.2s; }
.room-carousel:hover .room-carousel-dots { opacity:1; }
.room-carousel-dot { width:6px; height:6px; border-radius:50%; background:rgba(255,255,255,0.45); border:none; cursor:pointer; padding:0; transition:background 0.2s; }
.room-carousel-dot.active { background:white; }

/* FORMULAIRES */
.form-card { background:rgba(255,255,255,0.04); border:1px solid rgba(242,237,228,0.1); border-radius:10px; padding:2rem; margin-bottom:2rem; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; }
.form-group { margin-bottom:1.3rem; }
.form-group label { display:block; font-size:0.68rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--granit-l); margin-bottom:0.45rem; font-weight:500; }
.section-dark .form-group label { color:rgba(242,237,228,0.5); }
.form-group input,.form-group select,.form-group textarea { width:100%; padding:0.8rem 1rem; border:1px solid rgba(122,158,142,0.3); border-radius:var(--radius); background:var(--blanc); font-family:var(--fonte-corps); font-size:0.93rem; color:var(--texte); font-weight:300; outline:none; transition:border-color 0.2s; }
.section-dark .form-group input,.section-dark .form-group select,.section-dark .form-group textarea { background:#1e3830; color:var(--lin); border-color:rgba(242,237,228,0.15); }
.section-dark .form-group select option { background:#1e3830; color:var(--lin); }
.form-group input:focus,.form-group select:focus,.form-group textarea:focus { border-color:var(--sauge); }
.form-group textarea { resize:vertical; }
.nights-badge { background:rgba(122,158,142,0.15); color:var(--sauge-f); font-size:0.8rem; padding:6px 14px; border-radius:20px; display:inline-block; font-weight:500; margin-bottom:1.2rem; }
.confirm-box { text-align:center; padding:3rem 2rem; background:rgba(122,158,142,0.1); border:1px solid rgba(122,158,142,0.3); border-radius:12px; }
.confirm-icon { font-size:3rem; margin-bottom:1rem; }
.confirm-box h3 { font-family:var(--fonte-titre); font-size:1.8rem; font-weight:400; color:var(--lin); margin-bottom:0.6rem; }
.confirm-box p { color:rgba(242,237,228,0.65); font-weight:300; line-height:1.7; }

/* DISPONIBILITÉS */
.dispo-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:1.2rem; }
.dispo-card { background:var(--blanc); border:1px solid rgba(122,158,142,0.2); border-radius:8px; padding:1.4rem; }
.dispo-card h3 { font-family:var(--fonte-titre); font-size:1rem; margin-bottom:1rem; padding-bottom:0.6rem; border-bottom:1px solid var(--lin-fonce); }
.dispo-item { display:flex; align-items:center; gap:0.6rem; font-size:0.82rem; color:var(--texte-soft); margin-bottom:0.5rem; font-weight:300; }
.dispo-dot { width:8px; height:8px; border-radius:50%; flex-shrink:0; }
.dispo-dot.occupee { background:#C08060; }
.dispo-dot.libre { background:var(--sauge); }
.dispo-empty { font-size:0.82rem; color:var(--granit-l); font-style:italic; }

/* CALENDRIER */
.cal-wrap { background:var(--blanc); border:1px solid rgba(122,158,142,0.2); border-radius:10px; padding:1.5rem; margin-bottom:1.5rem; }
.cal-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:1.2rem; }
.cal-header h3 { font-family:var(--fonte-titre); font-size:1.1rem; font-weight:400; }
.cal-nav { background:none; border:1px solid rgba(122,158,142,0.3); border-radius:4px; padding:4px 10px; cursor:pointer; font-size:0.9rem; color:var(--texte); transition:background 0.2s; }
.cal-nav:hover { background:var(--lin-fonce); }
.cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; }
.cal-day-name { text-align:center; font-size:0.65rem; font-weight:500; letter-spacing:0.1em; text-transform:uppercase; color:var(--granit-l); padding:6px 0; }
.cal-day { text-align:center; padding:8px 4px; font-size:0.82rem; border-radius:4px; }
.cal-day.today { font-weight:700; color:var(--sauge-f); }
.cal-day.occupee { background:rgba(168,196,212,0.25); color:var(--bleu-f); font-weight:500; border-radius:4px; }
.cal-legend { display:flex; gap:1.5rem; margin-top:1rem; font-size:0.75rem; color:var(--texte-soft); flex-wrap:wrap; }
.cal-legend span { display:flex; align-items:center; gap:0.4rem; }
.cal-legend-dot { width:10px; height:10px; border-radius:50%; flex-shrink:0; }

/* CALENDRIER PAR CHAMBRE */
.cal-chambre-tabs { display:flex; gap:0.5rem; flex-wrap:wrap; margin-bottom:1.5rem; }
.cal-chambre-tab { padding:0.5rem 1.1rem; border:1px solid rgba(122,158,142,0.3); border-radius:20px; background:transparent; font-family:var(--fonte-corps); font-size:0.75rem; cursor:pointer; color:var(--texte-soft); transition:all 0.2s; font-weight:500; }
.cal-chambre-tab:hover { border-color:var(--sauge); color:var(--sauge-f); }
.cal-chambre-tab.active { background:var(--sauge); color:white; border-color:var(--sauge); }
.cal-chambre-content { display:none; }
.cal-chambre-content.active { display:block; }

/* GALERIE */
.galerie-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:1rem; }
.galerie-img { border-radius:6px; overflow:hidden; aspect-ratio:4/3; }
.galerie-img img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.4s; }
.galerie-img:hover img { transform:scale(1.04); }
.galerie-empty { text-align:center; padding:4rem 2rem; color:rgba(242,237,228,0.4); }
.galerie-empty span { font-size:3rem; display:block; margin-bottom:1rem; }

/* BONS PLANS */
.bonsplans-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:1.4rem; }
.bp-card { background:var(--blanc); border:1px solid rgba(122,158,142,0.2); border-radius:8px; padding:1.6rem; transition:box-shadow 0.2s; }
.bp-card:hover { box-shadow:var(--shadow); }
.bp-icon { font-size:1.8rem; margin-bottom:0.8rem; }
.bp-card h3 { font-family:var(--fonte-titre); font-size:1.05rem; font-weight:400; margin-bottom:0.2rem; }
.bp-lieu { font-size:0.72rem; color:var(--bleu-f); font-weight:500; letter-spacing:0.08em; text-transform:uppercase; margin-bottom:0.7rem; }
.bp-card p:last-child { font-size:0.85rem; color:var(--texte-soft); line-height:1.65; font-weight:300; }

/* LIVRE D'OR */
.livreor-tabs { display:flex; border-bottom:1px solid rgba(242,237,228,0.15); margin-bottom:2.5rem; }
.lo-tab { padding:0.8rem 1.8rem; background:none; border:none; font-family:var(--fonte-corps); font-size:0.75rem; letter-spacing:0.14em; text-transform:uppercase; color:rgba(242,237,228,0.4); cursor:pointer; border-bottom:2px solid transparent; margin-bottom:-1px; font-weight:500; transition:all 0.2s; }
.lo-tab.active { color:var(--lin); border-bottom-color:var(--bleu); }
.tab-content { display:none; }
.tab-content.active { display:block; }
.leave-form { background:rgba(255,255,255,0.04); border:1px solid rgba(242,237,228,0.1); border-radius:8px; padding:2rem; margin-bottom:2.5rem; }
.leave-form h3 { font-family:var(--fonte-titre); font-size:1.2rem; font-weight:400; color:var(--lin); margin-bottom:1.5rem; }
.star-row { display:flex; gap:6px; margin-bottom:1rem; }
.star { font-size:1.6rem; background:none; border:none; color:rgba(242,237,228,0.2); cursor:pointer; transition:color 0.15s,transform 0.15s; padding:0; line-height:1; }
.star.active { color:var(--bleu); }
.star:hover { transform:scale(1.15); }
.avis-list,.recettes-list { display:flex; flex-direction:column; gap:1.2rem; }
.avis-card,.recette-card { background:rgba(255,255,255,0.04); border:1px solid rgba(242,237,228,0.1); border-radius:8px; padding:1.4rem 1.6rem; }
.avis-header { display:flex; align-items:center; gap:1rem; margin-bottom:0.7rem; }
.avatar { width:42px; height:42px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:0.85rem; font-weight:500; color:white; flex-shrink:0; }
.avis-meta-name { font-weight:500; font-size:0.92rem; color:var(--lin); }
.avis-meta-date { font-size:0.72rem; color:rgba(242,237,228,0.4); font-weight:300; }
.avis-stars { color:var(--bleu); font-size:0.9rem; letter-spacing:2px; margin-left:auto; }
.avis-chambre { display:inline-block; background:rgba(122,158,142,0.15); color:var(--sauge); font-size:0.68rem; padding:2px 10px; border-radius:20px; font-weight:500; letter-spacing:0.08em; text-transform:uppercase; margin-bottom:0.6rem; }
.avis-texte { font-size:0.87rem; color:rgba(242,237,228,0.6); line-height:1.65; font-weight:300; }
.avis-photo { width:100%; max-height:220px; object-fit:cover; border-radius:6px; margin-top:0.8rem; }
.recette-card h4 { font-family:var(--fonte-titre); font-size:1rem; font-weight:400; color:var(--lin); margin-bottom:0.3rem; }
.recette-auteur { font-size:0.72rem; color:var(--bleu); font-weight:500; letter-spacing:0.08em; text-transform:uppercase; margin-bottom:0.8rem; }
.recette-section { font-size:0.7rem; letter-spacing:0.1em; text-transform:uppercase; color:rgba(242,237,228,0.35); font-weight:500; margin:0.6rem 0 0.3rem; }
.recette-texte { font-size:0.84rem; color:rgba(242,237,228,0.55); line-height:1.65; font-weight:300; white-space:pre-line; }

/* AVIS ACCUEIL */
.mini-avis-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:1.2rem; margin-top:1rem; }
.avis-card-light { background:var(--blanc); border:1px solid rgba(122,158,142,0.15); border-radius:10px; padding:1.4rem 1.6rem; }
.avis-card-light .avis-meta-name { color:var(--texte); }
.avis-card-light .avis-meta-date { color:var(--granit-l); }
.avis-card-light .avis-texte { color:var(--texte-soft); }
.avis-card-light .avis-stars { color:var(--bleu-f); }

/* MÉDAILLON */
.medallion-wrap { display:flex; justify-content:center; margin-bottom:3.5rem; }
.medallion { width:220px; height:220px; border-radius:50%; background:radial-gradient(circle at 35% 35%,var(--sauge),var(--sauge-f)); box-shadow:0 0 0 8px rgba(122,158,142,0.12),0 0 0 16px rgba(122,158,142,0.06),var(--shadow-lg); display:flex; align-items:center; justify-content:center; position:relative; }
.medallion::before { content:''; position:absolute; inset:12px; border-radius:50%; border:1px solid rgba(255,255,255,0.2); }
.medallion-inner { text-align:center; }
.medallion-number { display:block; font-family:var(--fonte-titre); font-size:3rem; font-weight:700; color:white; line-height:1; margin-bottom:0.4rem; }
.medallion-label { display:block; font-size:0.65rem; letter-spacing:0.1em; text-transform:uppercase; color:rgba(255,255,255,0.75); font-weight:500; line-height:1.5; }

/* CHAMBRE POPULAIRE */
.chambre-pop { background:rgba(168,196,212,0.1); border:1px solid rgba(168,196,212,0.25); border-radius:10px; padding:1.5rem 2rem; margin-bottom:2.5rem; display:flex; align-items:center; gap:1.5rem; flex-wrap:wrap; }
.chambre-pop-icon { font-size:2.5rem; }
.chambre-pop-text h3 { font-family:var(--fonte-titre); font-size:1.1rem; font-weight:400; color:var(--texte); margin-bottom:0.2rem; }
.chambre-pop-text p { font-size:0.82rem; color:var(--texte-soft); font-weight:300; }

/* CLASSEMENT */
.classement-wrap { overflow-x:auto; }
.classement-table { width:100%; border-collapse:collapse; font-size:0.9rem; }
.classement-table thead tr { border-bottom:2px solid rgba(122,158,142,0.3); }
.classement-table th { padding:0.8rem 1rem; text-align:left; font-size:0.68rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--granit-l); font-weight:500; }
.classement-table td { padding:1rem; border-bottom:1px solid rgba(122,158,142,0.12); color:var(--texte); font-weight:300; }
.classement-table td:first-child { font-family:var(--fonte-titre); font-size:1.1rem; color:var(--granit-l); font-weight:700; width:48px; }
.classement-table tr:first-child td:first-child { color:var(--sauge-f); }
.classement-table tr:nth-child(2) td:first-child { color:var(--bleu-f); }
.classement-table td:last-child { font-weight:500; color:var(--sauge-f); }
.classement-table .loading { text-align:center; color:var(--granit-l); font-style:italic; padding:2rem; }

/* PHOTO UPLOAD */
.photo-upload-label { display:flex; align-items:center; gap:0.7rem; cursor:pointer; background:rgba(255,255,255,0.06); border:1.5px dashed rgba(242,237,228,0.2); border-radius:6px; padding:0.8rem 1rem; font-size:0.82rem; color:rgba(242,237,228,0.5); transition:border-color 0.2s; }
.photo-upload-label:hover { border-color:rgba(168,196,212,0.5); color:rgba(242,237,228,0.8); }
.photo-upload-label input { display:none; }
.photo-preview { width:80px; height:80px; object-fit:cover; border-radius:6px; display:none; margin-top:0.5rem; }

/* FOOTER */
footer { background:var(--bois); padding:3rem 2rem; text-align:center; border-top:1px solid rgba(122,158,142,0.2); }
.footer-logo { font-family:var(--fonte-titre); font-size:1.4rem; font-style:italic; color:var(--lin); margin-bottom:0.3rem; }
.footer-lieu { font-size:0.72rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--bleu); margin-bottom:0.4rem; font-weight:500; }
.footer-contact { font-size:0.82rem; color:rgba(242,237,228,0.5); font-weight:300; }
.footer-links { display:flex; justify-content:center; gap:2rem; margin-top:1.2rem; flex-wrap:wrap; }
.footer-links a { font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase; color:rgba(242,237,228,0.35); text-decoration:none; transition:color 0.2s; font-weight:500; }
.footer-links a:hover { color:var(--lin); }

/* ============================================================
   RESPONSIVE MOBILE — priorité téléphone
   ============================================================ */

/* Tablette */
@media (max-width:900px) {
  .rooms-grid { grid-template-columns:repeat(2,1fr); }
  .rooms-grid-full { grid-template-columns:repeat(2,1fr); }
  .bonsplans-grid { grid-template-columns:repeat(2,1fr); }
  .mini-avis-grid { grid-template-columns:repeat(2,1fr); }
}

/* Mobile */
@media (max-width:640px) {

  /* Nav burger */
  .nav-inner { padding:0 1rem; }
  .nav-burger { display:flex; }
  .nav-links {
    display:none;
    position:absolute;
    top:60px; left:0; right:0;
    background:rgba(26,46,42,0.98);
    flex-direction:column;
    gap:0;
    padding:1rem 0;
    border-bottom:1px solid rgba(122,158,142,0.2);
    z-index:999;
  }
  .nav-links.open { display:flex; }
  .nav-links li { list-style:none; }
  .nav-links li a {
    padding:0.8rem 2rem;
    display:block;
    font-size:0.9rem;
    letter-spacing:0.08em;
  }

  /* Hero */
  .hero { padding:5rem 1.2rem 3rem; min-height:90svh; }
  .hero h1 { font-size:2.2rem; }
  .hero-sub { font-size:0.95rem; margin-bottom:2rem; }
  .btn-hero { width:100%; justify-content:center; }

  /* Carousel accueil */
  .carousel-slide,.carousel-slide-placeholder { height:220px; }
  .carousel-btn { width:36px; height:36px; font-size:1rem; }

  /* Page header */
  .page-header { padding:5.5rem 1.2rem 2.5rem; }
  .page-header h1 { font-size:2rem; }

  /* Sections */
  .section { padding:2.5rem 1rem; }
  .container { padding:0 0.2rem; }
  .section-title { font-size:1.7rem; }
  .section-sub { font-size:0.88rem; margin-bottom:2rem; }

  /* Grilles → 1 colonne */
  .rooms-grid,
  .rooms-grid-full,
  .bonsplans-grid,
  .mini-avis-grid,
  .dispo-grid,
  .galerie-grid { grid-template-columns:1fr; }

  /* Présentation accueil 2 colonnes → 2x2 */
  .section > .container > div[style*="grid-template-columns:1fr 1fr"] {
    grid-template-columns:1fr !important;
    gap:2rem !important;
  }

  /* Stats accueil */
  div[style*="grid-template-columns:1fr 1fr"][style*="gap:1rem"] {
    grid-template-columns:1fr 1fr !important;
  }

  /* Formulaires */
  .form-row { grid-template-columns:1fr; gap:0; }
  .form-group input,
  .form-group select,
  .form-group textarea {
    font-size:16px; /* évite le zoom auto sur iOS */
    padding:0.9rem 1rem;
  }
  .btn { width:100%; justify-content:center; padding:1rem; font-size:0.82rem; }

  /* Chambres carousel */
  .room-carousel { height:220px; }
  .room-carousel-btn { opacity:1 !important; } /* toujours visible sur mobile */
  .room-carousel-dots { opacity:1 !important; }

  /* Disponibilités */
  .cal-chambre-tabs { gap:0.4rem; }
  .cal-chambre-tab { font-size:0.68rem; padding:0.4rem 0.8rem; }
  .cal-chambre-content.active { grid-template-columns:1fr !important; }
  .chambre-photo-preview { height:140px; }

  /* Calendrier */
  .cal-wrap { padding:1rem; }
  .cal-day { font-size:0.75rem; padding:6px 2px; }
  .cal-day-name { font-size:0.58rem; padding:4px 0; }

  /* Classement */
  .classement-table th,
  .classement-table td { padding:0.7rem 0.5rem; font-size:0.78rem; }
  .classement-table th { font-size:0.6rem; letter-spacing:0.06em; }

  /* Médaillon */
  .medallion { width:160px; height:160px; }
  .medallion-number { font-size:2rem; }
  .medallion-label { font-size:0.58rem; }
  .chambre-pop { flex-direction:column; gap:0.8rem; text-align:center; padding:1.2rem; }

  /* Livre d'or tabs */
  .lo-tab { padding:0.7rem 1rem; font-size:0.68rem; }
  .leave-form { padding:1.2rem; }
  .star { font-size:1.8rem; }

  /* Footer */
  footer { padding:2rem 1rem; }
  .footer-links { gap:1rem; }
  .footer-links a { font-size:0.65rem; }

  /* Confirm box */
  .confirm-box { padding:2rem 1rem; }
  .confirm-box h3 { font-size:1.4rem; }
}

/* Très petits écrans */
@media (max-width:360px) {
  .hero h1 { font-size:1.8rem; }
  .nav-links li a { font-size:0.9rem; padding:1rem 1.2rem; }
  .cal-day { font-size:0.68rem; padding:5px 1px; }
}

@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation:none !important; transition:none !important; }
}

/* Grille présentation accueil */
.presentation-grid { display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:center; }
@media(max-width:640px) {
  .presentation-grid { grid-template-columns:1fr !important; gap:2rem !important; }
}

/* Onglets chambres scrollables sur mobile */
@media(max-width:640px) {
  .cal-chambre-tabs {
    flex-wrap:nowrap !important;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    padding-bottom:0.5rem;
    scrollbar-width:none;
  }
  .cal-chambre-tabs::-webkit-scrollbar { display:none; }
  .cal-chambre-tab { white-space:nowrap; flex-shrink:0; }
}
