:root {
    --creme: #f7f2e8;
    --papier: #fffdf8;
    --vert: #315d49;
    --vert-fonce: #203f33;
    --brique: #a94f2d;
    --ocre: #cf873b;
    --texte: #252821;
    --doux: #ebe2d3;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    font-family: "Segoe UI", Arial, sans-serif;
    background: var(--creme);
    color: var(--texte);
    font-size: 19px;
    line-height: 1.72;
}

.site-header {
    min-height: 390px;
    color: white;
    text-align: center;
    background-image:
        linear-gradient(rgba(19, 38, 31, .36), rgba(15, 31, 25, .72)),
        url("images/bandeau-village.jpg");
    background-size: cover;
    background-position: center 43%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    box-shadow: 0 5px 18px rgba(0,0,0,.18);
}

.brand { padding: 42px 20px 28px; text-shadow: 0 3px 12px rgba(0,0,0,.75); }
.place-name { font-size: 27px; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; }
.logo { margin-top: 2px; font-size: 82px; line-height: 1; font-weight: 900; letter-spacing: .12em; }
.tagline { margin-top: 17px; font-size: 27px; font-weight: 600; }

nav {
    padding: 17px 15px;
    background: rgba(27, 55, 44, .88);
    backdrop-filter: blur(3px);
}
nav a {
    display: inline-block;
    margin: 4px 15px;
    color: white;
    text-decoration: none;
    font-weight: 700;
    font-size: 18px;
}
nav a:hover, nav a.active { color: #ffd7a3; }

main { display: block; }
section {
    max-width: 1120px;
    margin: 54px auto;
    padding: 45px 48px;
    background: var(--papier);
    border-radius: 3px;
    box-shadow: 0 6px 24px rgba(60, 42, 21, .09);
}
.hero { text-align: center; padding-top: 38px; }
h1, h2, h3 { line-height: 1.18; }
h1 { font-size: 52px; margin: 18px 0 25px; color: var(--vert-fonce); }
h2 {
    font-size: 40px;
    color: var(--vert-fonce);
    border-left: 9px solid var(--brique);
    padding-left: 17px;
    margin-top: 0;
}
h3 { font-size: 25px; color: var(--vert-fonce); }
.intro { font-size: 24px; line-height: 1.55; }
.lead { max-width: 850px; margin-left: auto; margin-right: auto; }

.full-photo, .gallery-photo {
    width: 100%;
    display: block;
    object-fit: cover;
    border-radius: 2px;
}
.full-photo { max-height: 650px; margin: 0 0 28px; }
.hero-photo { max-height: 680px; }
figure { margin: 0; }
figcaption {
    padding: 11px 14px 18px;
    color: #5c5b52;
    font-size: 16px;
    font-style: italic;
}

.cards, .gallery-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
    gap: 27px;
}
.card {
    background: #f1eadf;
    padding: 27px;
    border-top: 6px solid var(--ocre);
    border-radius: 3px;
}
.card h3 { margin-top: 0; }
.gallery-card {
    overflow: hidden;
    background: white;
    border: 1px solid #ddd2c1;
    box-shadow: 0 4px 14px rgba(0,0,0,.07);
}
.gallery-photo { height: 280px; }
.gallery-card figcaption { min-height: 66px; }

.button {
    display: inline-block;
    margin-top: 22px;
    padding: 15px 31px;
    background: var(--brique);
    color: white;
    text-decoration: none;
    font-weight: 800;
    border-radius: 2px;
}
.button:hover { background: #81391f; }

.dark {
    background: var(--vert-fonce);
    color: white;
}
.dark h2 { color: white; border-color: var(--ocre); }
.contact-box { text-align: center; }
.email { font-size: 25px; font-weight: 800; }
.email a { color: #ffe0b6; }

footer {
    padding: 36px 20px;
    text-align: center;
    background: #182d25;
    color: #e8e3d8;
    font-size: 17px;
}
footer a { color: #ffd7a3; }

@media (max-width: 720px) {
    body { font-size: 18px; }
    .site-header { min-height: 345px; }
    .place-name { font-size: 20px; }
    .logo { font-size: 55px; }
    .tagline { font-size: 21px; }
    nav a { margin: 5px 8px; font-size: 16px; }
    section { margin: 24px 12px; padding: 29px 22px; }
    h1 { font-size: 38px; }
    h2 { font-size: 31px; }
    .intro { font-size: 21px; }
    .gallery-photo { height: 230px; }
}

/* Formulaire de contact */
.contact-form {
    max-width: 900px;
    margin: 0 auto;
}
.form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px 28px;
}
.field { margin-bottom: 24px; }
.field label {
    display: block;
    margin-bottom: 7px;
    color: var(--vert-fonce);
    font-weight: 800;
}
.field input,
.field select,
.field textarea {
    width: 100%;
    border: 2px solid #cdbfae;
    border-radius: 3px;
    background: #fff;
    color: var(--texte);
    font: inherit;
    padding: 13px 14px;
}
.field textarea { resize: vertical; }
.field input:focus,
.field select:focus,
.field textarea:focus {
    outline: 3px solid rgba(207, 135, 59, .28);
    border-color: var(--ocre);
}
.consent {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    font-size: 17px;
    cursor: pointer;
}
.consent input {
    width: 20px;
    height: 20px;
    margin-top: 4px;
    flex: 0 0 auto;
}
.required-note {
    margin: 12px 0 0;
    color: #68655d;
    font-size: 15px;
}
.form-button {
    border: 0;
    cursor: pointer;
    font-size: 18px;
}
.form-message {
    margin: 0 0 28px;
    padding: 18px 20px;
    border-left: 7px solid;
    border-radius: 3px;
    font-size: 18px;
}
.form-message.success {
    border-color: var(--vert);
    background: #e5f2e9;
    color: #173b29;
}
.form-message.error {
    border-color: var(--brique);
    background: #f9e8e1;
    color: #692510;
}
.honeypot {
    position: absolute !important;
    left: -10000px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

@media (max-width: 720px) {
    .form-grid { grid-template-columns: 1fr; gap: 0; }
}

/* Agrandissement des photographies */
.zoomable {
    cursor: zoom-in;
    transition: transform .18s ease, filter .18s ease;
}
.zoomable:hover,
.zoomable:focus {
    filter: brightness(.94);
}
.zoomable:focus {
    outline: 4px solid rgba(207, 135, 59, .7);
    outline-offset: 3px;
}
body.lightbox-open { overflow: hidden; }
.lightbox {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 52px 76px;
    background: rgba(0, 0, 0, .91);
}
.lightbox.open { display: flex; }
.lightbox-content {
    max-width: min(1400px, 92vw);
    max-height: 90vh;
    margin: 0;
    text-align: center;
}
.lightbox-image {
    display: block;
    max-width: 100%;
    max-height: 80vh;
    margin: 0 auto;
    object-fit: contain;
    box-shadow: 0 10px 42px rgba(0, 0, 0, .55);
}
.lightbox-caption {
    max-width: 950px;
    min-height: 34px;
    margin: 11px auto 0;
    padding: 0 12px;
    color: #fff;
    font-size: 17px;
    font-style: normal;
}
.lightbox-close,
.lightbox-prev,
.lightbox-next {
    position: fixed;
    z-index: 10001;
    border: 0;
    background: rgba(0, 0, 0, .25);
    color: #fff;
    cursor: pointer;
    line-height: 1;
}
.lightbox-close {
    top: 12px;
    right: 20px;
    padding: 5px 13px 10px;
    font-size: 52px;
}
.lightbox-prev,
.lightbox-next {
    top: 50%;
    transform: translateY(-50%);
    padding: 18px 16px;
    font-size: 48px;
}
.lightbox-prev { left: 12px; }
.lightbox-next { right: 12px; }
.lightbox-close:hover,
.lightbox-prev:hover,
.lightbox-next:hover,
.lightbox-close:focus,
.lightbox-prev:focus,
.lightbox-next:focus {
    background: rgba(255, 255, 255, .18);
    outline: 2px solid #fff;
}

@media (max-width: 720px) {
    .lightbox { padding: 58px 12px 42px; }
    .lightbox-image { max-height: 74vh; }
    .lightbox-prev,
    .lightbox-next {
        top: auto;
        bottom: 8px;
        padding: 9px 18px;
        font-size: 34px;
    }
    .lightbox-prev { left: 20px; }
    .lightbox-next { right: 20px; }
    .lightbox-caption { font-size: 15px; }
}

/* Page Entreprendre */
.idea-groups {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 27px;
    margin-top: 30px;
}
.idea-group {
    padding: 28px 30px;
    background: #f1eadf;
    border-top: 6px solid var(--ocre);
    border-radius: 3px;
}
.idea-group h3 { margin: 0 0 16px; }
.idea-group ul { margin: 0; padding-left: 23px; }
.idea-group li { margin: 8px 0; }
.open-list {
    margin: 32px 0 0;
    padding: 20px 24px;
    background: #f7efe3;
    border-left: 7px solid var(--brique);
}
@media (max-width: 720px) {
    .idea-groups { grid-template-columns: 1fr; }
    .idea-group { padding: 24px 22px; }
}


/* V11 — actualités, suppression et version */
.brand-mark { width: 92px; height: 92px; object-fit: contain; display: block; margin: 0 auto 8px; filter: drop-shadow(0 3px 7px rgba(0,0,0,.45)); }
.news-search label { display:block; font-weight:800; margin-bottom:8px; }
.news-search div { display:flex; gap:12px; }
.news-search input { flex:1; min-width:0; border:2px solid #cdbfae; padding:13px 14px; font:inherit; }
.news-search .button { margin-top:0; border:0; }
.news-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:28px; }
.news-card { overflow:hidden; background:#fff; border:1px solid #ddd2c1; box-shadow:0 4px 14px rgba(0,0,0,.07); }
.news-card img { width:100%; height:260px; object-fit:cover; display:block; }
.news-card-body { padding:24px; }
.news-card h2 { border:0; padding:0; font-size:29px; margin:8px 0 14px; }
.news-card h2 a { color:var(--vert-fonce); text-decoration:none; }
.news-card time,.news-article time { color:#6b665d; font-weight:700; }
.read-more { font-weight:800; color:var(--brique); }
.news-article { max-width:920px; margin:54px auto; padding:45px 48px; background:var(--papier); box-shadow:0 6px 24px rgba(60,42,21,.09); }
.article-text { font-size:20px; }
.admin-login { max-width:620px; }
.admin-top,.admin-row { display:flex; justify-content:space-between; align-items:center; gap:20px; }
.admin-row { padding:16px 0; border-bottom:1px solid #ddd2c1; }
.admin-row form { display:inline; margin-left:14px; }
.link-danger { border:0; background:none; color:#9b2e17; text-decoration:underline; cursor:pointer; font:inherit; }
.button-secondary { background:#69736c; }
small { color:#666; }
@media(max-width:720px){ .brand-mark{width:72px;height:72px}.news-search div{display:block}.news-search .button{margin-top:12px}.news-article{margin:24px 12px;padding:29px 22px}.admin-top,.admin-row{align-items:flex-start;flex-direction:column}.news-card img{height:220px} }

/* Version V18 */
footer small { opacity: .72; font-size: .78rem; }

/* V12 — modification des actualités */
.current-news-image {
  margin: 1rem 0;
  padding: 1rem;
  border: 1px solid rgba(0, 0, 0, .15);
  border-radius: .5rem;
  background: rgba(255, 255, 255, .45);
}
.current-news-image img {
  display: block;
  width: min(100%, 420px);
  max-height: 260px;
  object-fit: cover;
  margin: .5rem 0 1rem;
  border-radius: .35rem;
}
.current-news-image label {
  display: inline-flex;
  gap: .5rem;
  align-items: center;
}


/* V13 — actualité épinglée et compteur de visites */
.pin-field label { display: inline-flex; align-items: center; gap: .65rem; font-weight: 800; }
.pin-field input { width: auto; }
.pin-field small { display: block; margin-top: .35rem; }
.pin-badge {
    display: inline-block;
    margin: 0 .45rem .35rem 0;
    padding: .2rem .55rem;
    border-radius: 999px;
    background: var(--ocre);
    color: #fff;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .02em;
    vertical-align: middle;
}
footer [data-visit-count] { white-space: nowrap; }


/* V14 — bandeau simplifié et actualité mise à la une */
.featured-news-section {
    padding-top: 34px;
}
.featured-heading {
    margin: 0 0 18px;
    color: var(--brique);
    font-size: 27px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.featured-heading::before {
    content: "★";
    margin-right: .55rem;
    color: var(--ocre);
}
.featured-news {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr);
    border-top: 8px solid var(--ocre);
    box-shadow: 0 10px 26px rgba(60,42,21,.14);
}
.featured-news .featured-image,
.featured-news .featured-image img {
    height: 100%;
    min-height: 340px;
}
.featured-news .featured-image img {
    object-fit: cover;
}
.featured-news .news-card-body {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 38px;
}
.featured-news h2 {
    font-size: 40px;
    margin: 12px 0 18px;
}
.other-news-title {
    margin-bottom: 28px;
}
@media (max-width: 720px) {
    .featured-news {
        grid-template-columns: 1fr;
    }
    .featured-news .featured-image,
    .featured-news .featured-image img {
        min-height: 0;
        height: 230px;
    }
    .featured-news .news-card-body {
        padding: 25px 22px;
    }
    .featured-news h2 {
        font-size: 31px;
    }
}

/* Page Box & Garages */
ul { padding-left: 1.25em; }
.price-card { display:flex; flex-direction:column; justify-content:center; text-align:center; }
.price { margin:0; }
.price strong { display:block; color:var(--brique); font-size:48px; line-height:1.1; }
.price span { display:block; margin-top:8px; font-size:18px; line-height:1.4; }
.tarif-inline { color:var(--brique); font-size:28px; }
.table-wrap { margin-top:30px; overflow-x:auto; }
table.tarifs { width:100%; border-collapse:collapse; background:#fff; }
.tarifs th, .tarifs td { padding:16px 18px; border:1px solid #d8cdbd; text-align:left; }
.tarifs th { background:var(--vert-fonce); color:#fff; }
.tarifs tbody tr:nth-child(even) { background:#f4eee4; }
.tarifs td:last-child, .tarifs th:last-child { text-align:right; white-space:nowrap; }
@media (max-width:720px) { .price strong { font-size:40px; } .tarifs th, .tarifs td { padding:12px 10px; } }


/* Colocations V16 */
.coloc-poster { max-width: 860px; width:100%; margin: 8px auto 30px; display:block; border-radius:8px; box-shadow:0 8px 24px rgba(0,0,0,.16); }
.coloc-highlight { font-size: 1.18em; font-weight: 700; color: var(--brique); }
.coloc-contact { text-align:center; }
.coloc-contact .phone { font-size: 1.6em; font-weight:700; margin:12px 0; }
.amenity-list { columns:2; column-gap:36px; }
@media (max-width:720px){ .amenity-list{columns:1}.coloc-contact .phone{font-size:1.35em} }
