/* ============================================================
   site.css — Feuille de style partagée des pages publiques
   Chalets du Suffin — Montgenèvre
   Extrait et généralisé de la maquette de direction artistique.
   ============================================================ */

  :root{
    --pine:#1B2E23;
    --dusk:#243B4E;
    --amber:#E8A33D;
    --clay:#B15A2F;
    --cream:#F6F1E7;
    --ink:#201D18;
    --ink-soft:#5B564C;
    --line:#DFD6C3;
    --radius:2px;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--cream);
    color:var(--ink);
    font-family:'Inter', sans-serif;
    -webkit-font-smoothing:antialiased;
    line-height:1.5;
  }
  h1,h2,h3{
    font-family:'Fraunces', serif;
    font-weight:600;
    letter-spacing:-0.01em;
    color:var(--ink);
  }
  .mono{
    font-family:'JetBrains Mono', monospace;
  }
  a{color:inherit; text-decoration:none;}
  img{max-width:100%; display:block;}
  .wrap{max-width:1180px; margin:0 auto; padding:0 32px;}

  /* --- signature : puce "fenêtre allumée" --- */
  .glow-dot{
    display:inline-block;
    width:7px; height:7px;
    border-radius:50%;
    background:var(--amber);
    box-shadow:0 0 6px 1px rgba(232,163,61,0.7);
    margin-right:10px;
    flex-shrink:0;
  }

  /* --- header --- */
  .site-header{
    position:sticky; top:0; z-index:50;
    background:rgba(246,241,231,0.92);
    backdrop-filter:blur(6px);
    border-bottom:1px solid var(--line);
  }
  .nav{
    display:flex; align-items:center; justify-content:space-between;
    padding:18px 32px;
    max-width:1180px; margin:0 auto;
  }
  .brand{
    font-family:'Fraunces', serif;
    font-size:19px; font-weight:600;
    letter-spacing:0.01em;
  }
  .brand span{color:var(--clay);}
  .nav-links{display:flex; gap:34px; align-items:center; font-size:14px; font-weight:500;}
  .nav-links a{padding:6px 0; border-bottom:1px solid transparent; transition:border-color .2s;}
  .nav-links a:hover, .nav-links a:focus-visible{border-color:var(--amber); outline:none;}
  .btn{
    display:inline-flex; align-items:center; gap:8px;
    background:var(--pine); color:#fff;
    padding:11px 22px;
    font-size:14px; font-weight:500;
    border-radius:var(--radius);
    border:1px solid var(--pine);
    transition:background .2s, transform .15s;
    cursor:pointer;
  }
  .btn:hover{background:#132018;}
  .btn:active{transform:translateY(1px);}
  .btn-ghost{
    background:transparent; color:var(--cream); border:1px solid rgba(246,241,231,0.5);
  }
  .btn-ghost:hover{background:rgba(246,241,231,0.12);}
  @media (max-width:780px){ .nav-links{display:none;} }

  /* --- hero : illustration crépuscule --- */
  .hero{
    position:relative;
    min-height:92vh;
    display:flex; flex-direction:column; justify-content:flex-end;
    overflow:hidden;
    background:linear-gradient(180deg,#0f1c26 0%, #1c3247 42%, #2c4a5e 68%, #3c5f6d 100%);
  }
  .hero-svg{position:absolute; inset:0; width:100%; height:100%;}
  .hero-content{
    position:relative; z-index:5;
    max-width:1180px; margin:0 auto; width:100%;
    padding:0 32px 88px;
    color:#fff;
  }
  .eyebrow{
    font-size:12px; letter-spacing:0.14em; text-transform:uppercase;
    color:var(--amber); font-weight:500; margin-bottom:18px;
    display:flex; align-items:center;
  }
  .hero h1{
    font-size:clamp(34px, 5.4vw, 62px);
    line-height:1.06;
    color:#fdfbf6;
    max-width:15ch;
    margin-bottom:22px;
  }
  .hero p{
    font-size:17px; color:#d9dfd9; max-width:46ch; margin-bottom:34px;
  }
  .hero-actions{display:flex; gap:14px; flex-wrap:wrap;}

  /* --- bandeau repères --- */
  .stats{
    background:var(--pine); color:var(--cream);
  }
  .stats-inner{
    display:grid; grid-template-columns:repeat(4,1fr);
    max-width:1180px; margin:0 auto;
  }
  .stat{
    padding:26px 28px; border-left:1px solid rgba(246,241,231,0.14);
    font-size:14px;
  }
  .stat:first-child{border-left:none;}
  .stat b{display:block; font-family:'Fraunces',serif; font-size:20px; font-weight:500; margin-bottom:4px;}
  @media (max-width:780px){
    .stats-inner{grid-template-columns:repeat(2,1fr);}
    .stat:nth-child(3){border-left:none;}
  }

  /* --- section générique --- */
  section{padding:96px 0;}
  .section-head{max-width:640px; margin-bottom:52px;}
  .section-head .eyebrow{color:var(--clay);}
  .section-head h2{font-size:clamp(26px,3.4vw,36px); margin-bottom:14px;}
  .section-head p{color:var(--ink-soft); font-size:15.5px; max-width:52ch;}

  /* --- cards hébergements --- */
  .cards{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
  @media (max-width:900px){ .cards{grid-template-columns:1fr;} }
  .card{
    background:#fff; border:1px solid var(--line);
    display:flex; flex-direction:column;
    transition:transform .25s, box-shadow .25s;
  }
  .card:hover{transform:translateY(-4px); box-shadow:0 18px 34px -18px rgba(27,46,35,0.28);}
  .card-photo{
    height:200px; position:relative; overflow:hidden;
    background:linear-gradient(135deg,#2c4a5e,#1B2E23 65%);
  }
  .card-photo span{
    position:absolute; bottom:12px; left:14px;
    font-size:11px; color:rgba(255,255,255,0.55); letter-spacing:0.04em;
  }
  .card-body{padding:26px 24px 28px; display:flex; flex-direction:column; gap:14px; flex:1;}
  .card-body h3{font-size:20px;}
  .card-facts{display:flex; gap:14px; flex-wrap:wrap; font-size:12.5px; color:var(--ink-soft);}
  .card-facts span{display:flex; align-items:center; gap:5px;}
  .card-desc{font-size:14px; color:var(--ink-soft); flex:1;}
  .card-foot{
    display:flex; align-items:center; justify-content:space-between;
    padding-top:14px; border-top:1px solid var(--line);
  }
  .price-from{font-size:12px; color:var(--ink-soft);}
  .price-from b{font-family:'JetBrains Mono', monospace; font-size:16px; color:var(--ink); font-weight:500;}
  .card-link{font-size:13px; font-weight:600; color:var(--clay); display:flex; align-items:center; gap:6px;}
  .card-link:hover{text-decoration:underline;}

  /* --- séparateur crête --- */
  .ridge{width:100%; display:block; margin-top:-1px;}

  /* --- atouts --- */
  .assets{background:#EFE8D8;}
  .asset-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
  @media (max-width:900px){ .asset-grid{grid-template-columns:repeat(2,1fr);} }
  .asset{background:#F6F1E7; padding:32px 26px;}
  .asset svg{width:26px; height:26px; margin-bottom:16px; stroke:var(--clay);}
  .asset h4{font-family:'Fraunces',serif; font-size:16.5px; font-weight:500; margin-bottom:8px;}
  .asset p{font-size:13.5px; color:var(--ink-soft);}

  /* --- ledger tarifs --- */
  .ledger{background:var(--pine); color:var(--cream);}
  .ledger .section-head p{color:#c7cfc7;}
  .ledger .section-head .eyebrow{color:var(--amber);}
  .ledger-box{
    background:#16241C; border:1px solid rgba(246,241,231,0.14);
    padding:8px 0;
  }
  .ledger-row{
    display:flex; align-items:baseline; justify-content:space-between;
    padding:15px 30px;
    font-size:14.5px;
    border-bottom:1px dashed rgba(246,241,231,0.16);
  }
  .ledger-row:last-child{border-bottom:none;}
  .ledger-row .who{display:flex; align-items:center; color:#e7e2d5;}
  .ledger-row .fill{flex:1; border-bottom:1px dotted rgba(246,241,231,0.28); margin:0 12px; transform:translateY(-4px);}
  .ledger-row .price{font-family:'JetBrains Mono', monospace; font-size:15px; color:var(--amber);}
  .ledger-cta{padding:26px 30px 6px; display:flex; justify-content:flex-end;}

  /* --- citation --- */
  .quote{
    max-width:760px; margin:0 auto; text-align:center; padding:100px 32px;
  }
  .quote p{
    font-family:'Fraunces', serif; font-size:clamp(20px,2.6vw,27px); font-weight:400;
    line-height:1.5; color:var(--pine); font-style:italic;
  }
  .quote cite{display:block; margin-top:22px; font-style:normal; font-size:13px; color:var(--ink-soft); font-family:'Inter';}

  /* --- footer --- */
  .site-footer{background:#12201A; color:#c7cfc7; padding:64px 0 32px;}
  .foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; padding-bottom:44px; border-bottom:1px solid rgba(246,241,231,0.1);}
  @media (max-width:780px){ .foot-grid{grid-template-columns:1fr;} }
  .foot-grid h5{color:#fff; font-family:'Fraunces',serif; font-weight:500; font-size:15px; margin-bottom:16px;}
  .foot-grid p, .foot-grid a{font-size:13.5px; color:#a9b2a6; display:block; margin-bottom:8px;}
  .foot-grid a:hover{color:var(--amber);}
  .foot-bottom{padding-top:24px; display:flex; justify-content:space-between; font-size:12px; color:#7c877c; flex-wrap:wrap; gap:10px;}

/* ------------------------------------------------------------
   Pages internes (tarifs, accès, contact, mentions légales)
   ------------------------------------------------------------ */
.page-hero{
  background: var(--pine); color: var(--cream);
  padding: 64px 0 46px;
}
.page-hero .eyebrow{color: var(--amber);}
.page-hero h1{color:#fdfbf6; font-size:clamp(28px,4vw,42px); max-width:20ch;}
.page-hero p{color:#d9dfd9; max-width:56ch; margin-top:12px; font-size:15.5px;}

.content-section{padding:72px 0;}
.content-section .prose{max-width:720px; font-size:15.5px; color:var(--ink-soft); line-height:1.7;}
.content-section .prose p{margin-bottom:16px;}
.content-section .prose a{color:var(--clay); text-decoration:underline;}

/* Tableau tarifs public (par bien) */
.tarifs-bien{margin-bottom:56px;}
.tarifs-bien h2{font-size:22px; margin-bottom:18px;}
.tarifs-table{width:100%; border-collapse:collapse; background:#fff; border:1px solid var(--line);}
.tarifs-table th{
  text-align:left; font-size:11.5px; text-transform:uppercase; letter-spacing:.05em;
  color:var(--ink-soft); font-weight:600; background:#EFE9DA; padding:12px 18px; border-bottom:1px solid var(--line);
}
.tarifs-table td{padding:13px 18px; border-bottom:1px solid var(--line); font-size:14.5px;}
.tarifs-table tr:last-child td{border-bottom:none;}
.tarifs-table .prix{font-family:'JetBrains Mono',monospace;}
.statut-pill{display:inline-block; padding:4px 12px; border-radius:20px; font-size:12px; font-weight:600;}
.statut-pill.disponible{background:#E7F2E8; color:#3E7A4B;}
.statut-pill.option{background:#FBF0DC; color:#C58A1F;}
.statut-pill.complet{background:#F5E4DB; color:#B4522C;}

/* Fiche bien (chalet.php) */
.bien-hero{background:linear-gradient(135deg,#2c4a5e,#1B2E23 70%); color:#fff; padding:70px 0;}
.bien-hero .eyebrow{color:var(--amber);}
.bien-hero h1{color:#fff; font-size:clamp(28px,4vw,40px);}
.bien-facts{display:flex; gap:22px; margin-top:18px; flex-wrap:wrap; font-size:14px; color:#d9dfd9;}
.bien-gallery{display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:14px; margin:44px 0;}
.bien-gallery img{width:100%; height:190px; object-fit:cover; border-radius:2px;}
.bien-amenities{display:flex; flex-wrap:wrap; gap:10px; margin:24px 0;}
.bien-amenities span{
  background:#EFE9DA; border:1px solid var(--line); padding:7px 14px; border-radius:20px; font-size:13px;
}

/* Formulaire de contact */
.contact-form{max-width:560px; display:flex; flex-direction:column; gap:16px;}
.contact-form label{font-size:12px; font-weight:600; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.03em; margin-bottom:6px; display:block;}
.contact-form input, .contact-form textarea, .contact-form select{
  width:100%; border:1px solid var(--line); border-radius:4px; padding:11px 13px; font-size:14.5px; font-family:'Inter'; background:#fff;
}
.contact-form textarea{min-height:130px; resize:vertical;}
.alert-success{background:#E7F2E8; color:#3E7A4B; padding:14px 18px; border-radius:4px; margin-bottom:24px; font-size:14px;}
.alert-error{background:#F5E4DB; color:#B4522C; padding:14px 18px; border-radius:4px; margin-bottom:24px; font-size:14px;}

.empty-note{color:var(--ink-soft); font-size:14.5px; padding:30px 0;}

/* ============================================================
   Lightbox (galerie photo, page chalet)
   ============================================================ */
.gallery-thumb{cursor:pointer; transition:transform .2s, box-shadow .2s;}
.gallery-thumb:hover{transform:scale(1.03); box-shadow:0 8px 24px -8px rgba(27,46,35,0.3);}

.lightbox{
  position:fixed; inset:0; z-index:200;
  background:rgba(10,14,10,0.92);
  display:none; align-items:center; justify-content:center;
  flex-direction:column;
  backdrop-filter:blur(4px);
}
.lightbox.open{display:flex;}

.lightbox-img{
  max-width:90vw; max-height:78vh;
  object-fit:contain;
  border-radius:2px;
  box-shadow:0 12px 48px -12px rgba(0,0,0,0.6);
  animation:lb-fadein .2s ease;
}
@keyframes lb-fadein{from{opacity:0;transform:scale(0.96)} to{opacity:1;transform:scale(1)}}

.lightbox-close{
  position:absolute; top:18px; right:22px;
  background:none; border:none; color:#e0ddd4; font-size:36px;
  cursor:pointer; line-height:1; padding:8px;
  transition:color .2s;
}
.lightbox-close:hover{color:#fff;}

.lightbox-prev, .lightbox-next{
  position:absolute; top:50%; transform:translateY(-50%);
  background:rgba(246,241,231,0.1); border:1px solid rgba(246,241,231,0.2);
  color:#e0ddd4; font-size:32px; width:48px; height:48px;
  border-radius:50%; cursor:pointer; line-height:1;
  display:flex; align-items:center; justify-content:center;
  transition:background .2s, color .2s;
}
.lightbox-prev{left:18px;}
.lightbox-next{right:18px;}
.lightbox-prev:hover, .lightbox-next:hover{background:rgba(246,241,231,0.2); color:#fff;}

.lightbox-caption{
  color:#c7c4bb; font-size:13.5px; margin-top:14px;
  text-align:center; max-width:60ch;
}
.lightbox-counter{
  color:#8b8880; font-size:12px; margin-top:6px;
  font-family:'JetBrains Mono', monospace;
}
