/* ========================
   Pension Anahata - Styles
   ======================== */

:root {
    --color-primary: #2c3e50;
    --color-secondary: #3498db;
    --color-accent: #e67e22;
    --color-bg: #f8f9fa;
    --color-text: #333;
    --color-light: #fff;
    --font-body: 'Montserrat', sans-serif;
    --font-title: 'Playfair Display', serif;
    --container-width: 1200px;
    --radius: 8px;
    --shadow: 0 4px 12px rgba(0,0,0,0.1);
}

/* ========================================================================== */
/* Identité visuelle inspirée du site historique WordPress / thème Ona        */
/* ========================================================================== */

@font-face { font-family: 'Gilda Display'; src: url('../fonts/GildaDisplay-Regular.woff') format('woff'); font-display: swap; }
@font-face { font-family: 'Nunito Sans'; src: url('../fonts/NunitoSans-Regular.woff') format('woff'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'Nunito Sans'; src: url('../fonts/NunitoSans-SemiBold.woff') format('woff'); font-weight: 600; font-display: swap; }
@font-face { font-family: 'Nunito Sans'; src: url('../fonts/NunitoSans-Bold.woff') format('woff'); font-weight: 700; font-display: swap; }
@font-face { font-family: 'Bestermind'; src: url('../fonts/BestermindRegular.woff') format('woff'); font-display: swap; }

:root {
    --ana-ink: #010101;
    --ana-text: #606060;
    --ana-muted: #767676;
    --ana-sand: #f2f0ec;
    --ana-blush: #f9f3f0;
    --ana-white: #fff;
    --ana-line: #e2ddd6;
    --ana-serif: 'Gilda Display', Georgia, serif;
    --ana-sans: 'Nunito Sans', Arial, sans-serif;
}

html { scroll-behavior: smooth; }
body { font-family: var(--ana-sans); color: var(--ana-text); background: var(--ana-white); line-height: 1.7; }
h1, h2, h3, h4, h5, h6 { font-family: var(--ana-serif); color: var(--ana-ink); font-weight: 400; line-height: 1.18; }
h1 { font-size: clamp(3rem, 7vw, 6.8rem); }
h2 { font-size: clamp(2.15rem, 4vw, 4rem); }
h3 { font-size: clamp(1.45rem, 2.2vw, 2rem); }
.container { width: min(1180px, calc(100% - 48px)); }
.narrow-container { max-width: 850px; }
.section { padding: clamp(76px, 9vw, 132px) 0; }
.section-title { margin: 0 0 55px; text-align: center; }
.eyebrow { margin: 0 0 18px; color: var(--ana-muted); font-size: .72rem; font-weight: 700; letter-spacing: .28em; text-transform: uppercase; }
.eyebrow-light { color: rgba(255,255,255,.86); }
.lead { color: var(--ana-text); font-family: var(--ana-serif); font-size: clamp(1.35rem, 2.2vw, 1.8rem); line-height: 1.55; }
.text-link { display: inline-flex; color: var(--ana-ink); font-size: .76rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; border-bottom: 1px solid var(--ana-ink); padding-bottom: 4px; }

.site-header { position: relative; z-index: 100; background: rgba(255,255,255,.98); border-bottom: 1px solid rgba(0,0,0,.07); }
.site-header .container { max-width: 1280px; }
.header-top-bar { min-height: 38px; }
.header-brand { padding: 18px 0 12px; }
.site-title { font-family: var(--ana-serif); font-size: clamp(1.8rem, 3vw, 2.65rem); font-weight: 400; letter-spacing: .14em; }
.site-tagline { font-size: .62rem; letter-spacing: .32em; color: var(--ana-muted); }
.main-nav { gap: clamp(16px, 2.5vw, 35px); padding: 12px 0 18px; }
.main-nav a { font-size: .7rem; letter-spacing: .12em; }
.main-nav .btn-book { padding: 12px 21px; border: 1px solid var(--ana-ink); background: var(--ana-ink); color: #fff; }
.lang-switch a { font-size: .68rem; letter-spacing: .08em; }

.hero { min-height: min(820px, 84vh); background-position: center; }
.hero-home { min-height: min(860px, 88vh); }
.hero-content { width: min(920px, calc(100% - 40px)); }
.hero h1 { margin: 8px 0 20px; color: #fff; text-shadow: 0 2px 24px rgba(0,0,0,.18); }
.hero-text { max-width: 780px; margin: 0 auto 34px; font-size: clamp(1rem, 1.7vw, 1.25rem); line-height: 1.7; }
.hero-buttons { gap: 14px; }
.btn { min-height: 48px; padding: 14px 27px; border-radius: 0; font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.btn-primary { background: var(--ana-ink); border-color: var(--ana-ink); }
.btn-light { background: #fff; color: var(--ana-ink); border-color: #fff; }
.btn-outline { color: var(--ana-ink); border-color: var(--ana-ink); }

.editorial-intro { background: var(--ana-white); padding-bottom: 0; }
.editorial-intro h2 { margin-bottom: 28px; }
.discovery-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-top: 70px; }
.discovery-card { min-height: 460px; padding: 36px 24px; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; background-size: cover; background-position: center; color: #fff; text-align: center; overflow: hidden; transition: transform .35s ease, filter .35s ease; }
.discovery-card:hover { transform: translateY(-7px); filter: saturate(1.06); text-decoration: none; }
.discovery-card strong { font-family: var(--ana-serif); font-size: clamp(1.5rem, 2.2vw, 2.25rem); font-weight: 400; }

.bungalows-preview { background: var(--ana-sand); }
.bungalow-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 44px 22px; }
.bungalow-card { background: transparent; box-shadow: none; }
.bungalow-card:hover { transform: none; }
.bungalow-image { display: block; height: 330px; background-position: center; transition: transform .4s ease; }
.bungalow-card:hover .bungalow-image { transform: scale(1.015); }
.bungalow-info { padding: 24px 0 0; text-align: left; }
.bungalow-info h3 { margin-bottom: 4px; font-size: 1.7rem; }
.bungalow-type { color: var(--ana-muted); font-size: .69rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.bungalow-info .price { color: var(--ana-ink); font-family: var(--ana-serif); font-size: 1.3rem; }

.welcome { min-height: 610px; display: flex; align-items: center; color: #fff; }
.welcome h2 { color: #fff; }
.welcome p { max-width: 720px; margin-left: auto; margin-right: auto; }
.signature { font-family: 'Bestermind', cursive; font-size: clamp(2rem, 4vw, 3.4rem); font-weight: 400; }

.gallery-preview-grid { gap: 8px; }
.gallery-preview-item { min-height: 300px; }

.page-header { min-height: clamp(400px, 58vw, 650px); display: flex; align-items: flex-end; padding: 0 0 clamp(55px, 8vw, 100px); background-color: #292929; background-size: cover; background-position: center; }
.page-header::before { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.08), rgba(0,0,0,.52)); }
.page-header .container { position: relative; z-index: 1; }
.page-header h1 { color: #fff; margin: 0; text-align: left; }
.content-text { max-width: 900px; font-size: 1.03rem; }
.content-text h2 { margin: 72px 0 22px; }
.content-text h3 { margin: 48px 0 18px; }
.content-text ul { padding-left: 1.2em; }
.content-text li { margin-bottom: 9px; }

.bungalow-list { display: grid; gap: 90px; }
.bungalow-detail { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr); gap: 0; background: var(--ana-sand); }
.bungalow-detail:nth-child(even) .bungalow-detail-image { order: 2; }
.bungalow-detail-image { min-height: 540px; }
.bungalow-detail-content { display: flex; flex-direction: column; justify-content: center; padding: clamp(40px, 7vw, 90px); }
.bungalow-detail-content h2 { margin-top: 0; }
.features { border-top: 1px solid var(--ana-line); border-bottom: 1px solid var(--ana-line); padding: 22px 0; list-style: none; }

.blog-grid { gap: 34px; }
.blog-card { box-shadow: none; border: 1px solid var(--ana-line); }
.blog-content { padding: 30px; }
.gallery-grid { columns: 3 300px; display: block; column-gap: 14px; }
.gallery-item { break-inside: avoid; margin: 0 0 14px; }
.gallery-item img { width: 100%; display: block; }
.gallery-item p { margin: 8px 0 24px; font-size: .78rem; color: var(--ana-muted); }

.contact-grid { gap: clamp(50px, 10vw, 130px); }
.form-group input, .form-group textarea, .form-group select { border: 0; border-bottom: 1px solid #aaa; border-radius: 0; background: transparent; padding: 14px 2px; }
.site-footer { background: var(--ana-ink); padding-top: 82px; }
.footer-brand img { width: min(260px, 100%); height: auto; margin-bottom: 20px; }
.site-footer a { color: rgba(255,255,255,.82); }
.footer-bottom { margin-top: 55px; }

@media (max-width: 1050px) {
    .discovery-grid, .bungalow-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 900px) {
    .header-brand { padding-top: 10px; }
    .main-nav { padding: 28px; align-items: stretch; }
    .main-nav a { text-align: center; }
    .dropdown-menu { position: static; box-shadow: none; border: 0; text-align: center; }
    .bungalow-detail, .bungalow-detail:nth-child(even) { grid-template-columns: 1fr; }
    .bungalow-detail:nth-child(even) .bungalow-detail-image { order: 0; }
}

@media (max-width: 620px) {
    .container { width: min(100% - 30px, 1180px); }
    .section { padding: 68px 0; }
    .hero, .hero-home { min-height: 690px; }
    .discovery-grid, .bungalow-grid { grid-template-columns: 1fr; }
    .discovery-card { min-height: 430px; }
    .bungalow-image { height: 390px; }
    .page-header { min-height: 440px; }
    .bungalow-detail-image { min-height: 400px; }
    .bungalow-detail-content { padding: 38px 24px 46px; }
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: var(--font-body);
    color: var(--color-text);
    background: var(--color-bg);
    line-height: 1.6;
}

a {
    color: var(--color-secondary);
    text-decoration: none;
}

a:hover {
    text-decoration: underline;
}

img {
    max-width: 100%;
    height: auto;
}

.container {
    max-width: var(--container-width);
    margin: 0 auto;
    padding: 0 20px;
}

/* Header */
.site-header {
    background: #fff;
    color: #111;
    position: sticky;
    top: 0;
    z-index: 100;
    box-shadow: 0 1px 0 rgba(0,0,0,0.08);
    padding: 20px 0;
}

.header-top-bar {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    margin-bottom: 15px;
}

.header-brand {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    margin-bottom: 22px;
    text-align: center;
}

.site-title {
    font-family: var(--font-title);
    font-size: clamp(24px, 4vw, 38px);
    font-weight: 600;
    color: #111;
    text-transform: uppercase;
    letter-spacing: 0.35em;
    text-decoration: none;
    line-height: 1.1;
}

.site-title:hover {
    text-decoration: none;
}

.site-tagline {
    display: block;
    font-size: 11px;
    font-weight: 500;
    color: #555;
    text-transform: uppercase;
    letter-spacing: 0.2em;
    margin-top: 6px;
}

.main-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 35px;
    flex-wrap: wrap;
    padding: 8px 0;
}

.main-nav a {
    color: #111;
    font-size: 13px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 6px 0;
    border-bottom: 1px solid transparent;
    transition: border-color 0.3s;
}

.main-nav a:hover,
.main-nav a.active {
    border-bottom-color: #111;
    text-decoration: none;
}

.dropdown {
    position: relative;
}

.dropdown-toggle {
    cursor: pointer;
}

.dropdown-menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    background: #fff;
    min-width: 200px;
    border-radius: var(--radius);
    box-shadow: 0 4px 12px rgba(0,0,0,0.12);
    padding: 10px 0;
    z-index: 200;
    border: 1px solid #eee;
}

.dropdown-menu a {
    display: block;
    padding: 10px 20px;
    white-space: nowrap;
    border-bottom: none;
    color: #111;
    text-transform: none;
    font-weight: 400;
    font-size: 14px;
    letter-spacing: 0;
}

.dropdown:hover .dropdown-menu,
.dropdown.open .dropdown-menu,
.dropdown-toggle:focus + .dropdown-menu,
.dropdown-menu:hover {
    display: block;
}

.btn-book {
    background: #111;
    color: #fff !important;
    padding: 10px 22px !important;
    border-radius: 0;
    border-bottom: none !important;
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.btn-book:hover {
    background: #333;
}

.header-actions {
    display: flex;
    align-items: center;
    gap: 18px;
}

.lang-switch a {
    color: #111;
    opacity: 0.6;
    margin: 0 5px;
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
}

.lang-switch a.active {
    opacity: 1;
    border-bottom: 1px solid #111;
}

.mobile-menu-toggle {
    display: none;
    background: none;
    border: none;
    color: #111;
    font-size: 24px;
    cursor: pointer;
}

/* Hero */
.hero {
    min-height: 80vh;
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: var(--color-light);
    padding: 60px 20px;
}

.hero h1 {
    font-family: var(--font-title);
    font-size: clamp(40px, 6vw, 72px);
    margin-bottom: 20px;
    text-shadow: 0 2px 10px rgba(0,0,0,0.5);
}

.hero-text {
    font-size: clamp(16px, 2.5vw, 22px);
    max-width: 800px;
    margin: 0 auto 30px;
    text-shadow: 0 1px 4px rgba(0,0,0,0.5);
}

.hero-buttons {
    display: flex;
    gap: 15px;
    justify-content: center;
    flex-wrap: wrap;
}

/* Buttons */
.btn {
    display: inline-block;
    padding: 14px 28px;
    border-radius: var(--radius);
    font-weight: 600;
    transition: all 0.3s;
    border: 2px solid transparent;
    cursor: pointer;
    font-family: inherit;
    font-size: 15px;
}

.btn-primary {
    background: var(--color-secondary);
    color: var(--color-light);
}

.btn-primary:hover {
    background: #2980b9;
    text-decoration: none;
}

.btn-light {
    background: var(--color-light);
    color: var(--color-primary);
}

.btn-light:hover {
    background: #ecf0f1;
    text-decoration: none;
}

.btn-outline {
    background: transparent;
    color: var(--color-secondary);
    border-color: var(--color-secondary);
}

.btn-outline:hover {
    background: var(--color-secondary);
    color: var(--color-light);
    text-decoration: none;
}

/* Sections */
.section {
    padding: 80px 20px;
}

.section-title {
    font-family: var(--font-title);
    font-size: 36px;
    text-align: center;
    margin-bottom: 50px;
    color: var(--color-primary);
}

.page-header {
    background: var(--color-primary);
    background-size: cover;
    background-position: center;
    color: var(--color-light);
    padding: 80px 20px;
    text-align: center;
}

.page-header h1 {
    font-family: var(--font-title);
    font-size: 42px;
}

.text-center {
    text-align: center;
}

.lead {
    font-size: 20px;
    text-align: center;
    max-width: 800px;
    margin: 0 auto 40px;
    color: #555;
}

.intro-links {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 20px;
    max-width: 900px;
    margin: 0 auto;
}

.card-link {
    background: var(--color-light);
    padding: 30px;
    border-radius: var(--radius);
    text-align: center;
    font-weight: 600;
    color: var(--color-primary);
    box-shadow: var(--shadow);
    transition: transform 0.3s, box-shadow 0.3s;
}

.card-link:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.12);
    text-decoration: none;
}

/* Bungalows */
.bungalow-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 30px;
}

.bungalow-card {
    background: var(--color-light);
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow);
}

.bungalow-image {
    height: 200px;
    display: flex;
    align-items: flex-end;
    justify-content: flex-start;
    color: var(--color-light);
    font-size: 22px;
    font-weight: 700;
    text-shadow: 0 2px 6px rgba(0,0,0,0.5);
    background-size: cover;
    background-position: center;
    padding: 15px 20px;
}

.bungalow-info {
    padding: 25px;
}

.bungalow-info h3 {
    font-family: var(--font-title);
    margin-bottom: 10px;
}

.price {
    font-size: 20px;
    font-weight: 700;
    color: var(--color-primary);
    margin: 15px 0;
}

.bungalow-list {
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.bungalow-detail {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    background: var(--color-light);
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow);
}

.bungalow-type {
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--color-secondary);
    margin-bottom: 5px;
}

.bungalow-detail-image {
    min-height: 300px;
    display: flex;
    align-items: flex-end;
    justify-content: flex-start;
    color: var(--color-light);
    padding: 30px;
    text-align: center;
    background-size: cover;
    background-position: center;
}

.bungalow-detail-image h2 {
    font-family: var(--font-title);
    font-size: 32px;
    text-shadow: 0 2px 6px rgba(0,0,0,0.3);
}

.bungalow-detail-content {
    padding: 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.features {
    list-style: none;
    margin: 20px 0;
}

.features li {
    padding: 8px 0;
    border-bottom: 1px solid #eee;
}

/* Welcome */
.welcome {
    background: var(--color-primary);
    color: var(--color-light);
}

.welcome h2 {
    font-family: var(--font-title);
    font-size: 36px;
    margin-bottom: 20px;
}

.welcome p {
    max-width: 700px;
    margin: 0 auto 20px;
    font-size: 18px;
    opacity: 0.9;
}

.signature {
    font-style: italic;
    opacity: 0.8;
}

/* Gallery */
.gallery-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 20px;
}

.gallery-item {
    overflow: hidden;
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    background: var(--color-light);
}

.gallery-item img {
    width: 100%;
    height: 250px;
    object-fit: cover;
    transition: transform 0.3s;
}

.gallery-item img:hover {
    transform: scale(1.05);
}

.gallery-item p {
    padding: 10px 15px;
    font-size: 14px;
    color: #555;
}

.gallery-preview-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 15px;
}

.gallery-preview-item {
    display: block;
    height: 180px;
    background-size: cover;
    background-position: center;
    border-radius: var(--radius);
    transition: transform 0.3s, box-shadow 0.3s;
}

.gallery-preview-item:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 20px rgba(0,0,0,0.15);
}

/* Activities */
.activities-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 30px;
}

.activity-card {
    background: var(--color-light);
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow);
}

.activity-card img {
    width: 100%;
    height: 200px;
    object-fit: cover;
}

.activity-card h3 {
    font-family: var(--font-title);
    padding: 15px 20px 5px;
    color: var(--color-primary);
}

.activity-card p {
    padding: 0 20px 20px;
    color: #555;
}

/* Restaurant */
.restaurant-content {
    text-align: center;
}

.restaurant-images {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 15px;
    margin-bottom: 30px;
}

.restaurant-images img {
    width: 100%;
    height: 160px;
    object-fit: cover;
    border-radius: var(--radius);
}

.restaurant-content p {
    max-width: 700px;
    margin: 0 auto 15px;
    text-align: left;
}

/* Story */
.story-content {
    max-width: 800px;
    margin: 0 auto;
}

.story-image {
    width: 100%;
    max-height: 400px;
    object-fit: cover;
    border-radius: var(--radius);
    margin-bottom: 30px;
}

.story-content p {
    margin-bottom: 15px;
    font-size: 17px;
}

/* Blog */
.blog-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 30px;
}

.blog-card {
    background: var(--color-light);
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow);
}

.blog-image {
    height: 200px;
    background-size: cover;
    background-position: center;
}

.blog-content {
    padding: 25px;
}

.blog-content h3 {
    font-family: var(--font-title);
    margin-bottom: 10px;
    color: var(--color-primary);
}

.blog-content p {
    color: #555;
    margin-bottom: 15px;
}

/* Contact */
.contact-grid {
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: 40px;
}

.contact-grid h2 {
    font-family: var(--font-title);
    margin-bottom: 15px;
    color: var(--color-primary);
}

.contact-grid p {
    margin-bottom: 10px;
}

/* Booking */
.booking-form {
    max-width: 800px;
    margin: 0 auto;
    background: var(--color-light);
    padding: 30px;
    border-radius: var(--radius);
    box-shadow: var(--shadow);
}

.booking-summary {
    max-width: 600px;
    margin: 20px auto;
    background: var(--color-light);
    padding: 30px;
    border-radius: var(--radius);
    box-shadow: var(--shadow);
}

.booking-summary h4 {
    font-family: var(--font-title);
    margin-bottom: 20px;
    color: var(--color-primary);
}

.booking-summary p {
    margin-bottom: 8px;
}

/* Content text */
.content-text {
    max-width: 900px;
    margin: 0 auto;
    font-size: 17px;
    line-height: 1.8;
}

/* Footer */
.site-footer {
    background: #1a252f;
    color: var(--color-light);
    padding: 60px 20px 20px;
}

.footer-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 40px;
    margin-bottom: 40px;
}

.footer-grid h4 {
    font-family: var(--font-title);
    margin-bottom: 15px;
    color: var(--color-secondary);
}

.footer-grid a {
    color: #bdc3c7;
    display: block;
    margin: 6px 0;
}

.footer-grid a:hover {
    color: var(--color-light);
}

.footer-bottom {
    text-align: center;
    padding-top: 20px;
    border-top: 1px solid #34495e;
    font-size: 14px;
    color: #95a5a6;
}

/* Forms */
.form-group {
    margin-bottom: 20px;
}

.form-group label {
    display: block;
    margin-bottom: 6px;
    font-weight: 600;
}

.form-group input,
.form-group textarea,
.form-group select {
    width: 100%;
    padding: 12px;
    border: 1px solid #ddd;
    border-radius: var(--radius);
    font-family: inherit;
    font-size: 15px;
}

.form-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 20px;
}

/* Alertes */
.alert {
    padding: 15px 20px;
    border-radius: var(--radius);
    margin: 20px 0;
}

.alert-success {
    background: #d4edda;
    color: #155724;
    border: 1px solid #c3e6cb;
}

.alert-danger {
    background: #f8d7da;
    color: #721c24;
    border: 1px solid #f5c6cb;
}

/* Admin */
.admin-login {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-primary);
}

.login-box {
    background: var(--color-light);
    padding: 40px;
    border-radius: var(--radius);
    width: 100%;
    max-width: 400px;
    box-shadow: var(--shadow);
}

.login-box h1 {
    font-family: var(--font-title);
    margin-bottom: 25px;
    text-align: center;
}

/* Responsive */
@media (max-width: 900px) {
    .main-nav {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        background: #fff;
        color: #111;
        flex-direction: column;
        align-items: center;
        padding: 20px;
        gap: 18px;
        border-top: 1px solid #eee;
        box-shadow: 0 4px 12px rgba(0,0,0,0.08);
    }

    .main-nav.open {
        display: flex;
    }

    .main-nav a {
        color: #111;
    }

    .mobile-menu-toggle {
        display: block;
    }

    .bungalow-detail {
        grid-template-columns: 1fr;
    }

    .contact-grid {
        grid-template-columns: 1fr;
    }

    .header-top-bar {
        margin-bottom: 10px;
    }
}

@media (max-width: 600px) {
    .hero h1 {
        font-size: 36px;
    }

    .section {
        padding: 50px 20px;
    }

    .section-title {
        font-size: 28px;
    }
}

/* Priorité finale du nouveau thème sur les règles historiques. */
body{font-family:var(--ana-sans);color:var(--ana-text);background:#fff;line-height:1.7}h1,h2,h3,h4,h5,h6{font-family:var(--ana-serif);color:var(--ana-ink);font-weight:400;line-height:1.18}.container{width:min(1180px,calc(100% - 48px));max-width:none}.section{padding:clamp(76px,9vw,132px) 0}.section-title{font-size:clamp(2.15rem,4vw,4rem);margin:0 0 55px}.eyebrow{margin:0 0 18px;color:var(--ana-muted);font-size:.72rem;font-weight:700;letter-spacing:.28em;text-transform:uppercase}.eyebrow-light{color:rgba(255,255,255,.86)}.lead{font-family:var(--ana-serif);font-size:clamp(1.35rem,2.2vw,1.8rem);line-height:1.55}.site-header{background:rgba(255,255,255,.98);border-bottom:1px solid rgba(0,0,0,.07);box-shadow:none}.header-brand{padding:18px 0 12px}.site-title{font-family:var(--ana-serif);font-size:clamp(1.8rem,3vw,2.65rem);font-weight:400;letter-spacing:.14em}.site-tagline{font-size:.62rem;letter-spacing:.32em;color:var(--ana-muted)}.main-nav{gap:clamp(16px,2.5vw,35px);padding:12px 0 18px}.main-nav a{font-size:.7rem;letter-spacing:.12em}.main-nav .btn-book{padding:12px 21px;border-radius:0;background:var(--ana-ink);color:#fff}.hero{min-height:min(820px,84vh);background-position:center}.hero-home{min-height:min(860px,88vh)}.hero h1{font-size:clamp(3rem,7vw,6.8rem);margin:8px 0 20px}.hero-text{max-width:780px;margin:0 auto 34px;font-size:clamp(1rem,1.7vw,1.25rem)}.btn{min-height:48px;padding:14px 27px;border-radius:0;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase}.editorial-intro{padding-bottom:0}.discovery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:70px}.discovery-card{min-height:460px;padding:36px 24px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;background-size:cover;background-position:center;color:#fff;text-align:center}.discovery-card strong{font-family:var(--ana-serif);font-size:clamp(1.5rem,2.2vw,2.25rem);font-weight:400}.bungalows-preview{background:var(--ana-sand)}.bungalow-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:44px 22px}.bungalow-card{background:transparent;box-shadow:none}.bungalow-image{display:block;height:330px;background-position:center}.bungalow-info{padding:24px 0 0;text-align:left}.welcome{min-height:610px;display:flex;align-items:center}.signature{font-family:'Bestermind',cursive;font-size:clamp(2rem,4vw,3.4rem)}.page-header{min-height:clamp(400px,58vw,650px);display:flex;align-items:flex-end;padding:0 0 clamp(55px,8vw,100px);background-size:cover;background-position:center;position:relative}.page-header h1{color:#fff;font-size:clamp(3rem,7vw,6.8rem);text-align:left}.bungalow-list{display:grid;gap:90px}.bungalow-detail{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);background:var(--ana-sand)}.bungalow-detail-image{min-height:540px}.bungalow-detail-content{padding:clamp(40px,7vw,90px)}.site-footer{background:var(--ana-ink);padding-top:82px}.footer-brand img{width:min(260px,100%);height:auto}
@media(max-width:1050px){.discovery-grid,.bungalow-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:900px){.bungalow-detail{grid-template-columns:1fr}}@media(max-width:620px){.container{width:min(100% - 30px,1180px)}.section{padding:68px 0}.hero,.hero-home{min-height:690px}.discovery-grid,.bungalow-grid{grid-template-columns:1fr}.discovery-card{min-height:430px}.bungalow-image{height:390px}}
.bungalow-detail-page{align-items:start;background:#fff}.bungalow-detail-gallery{display:grid;gap:12px}.bungalow-detail-gallery img{display:block;width:100%;min-height:360px;max-height:680px;object-fit:cover}.bungalow-sticky-info{position:sticky;top:24px;background:var(--ana-sand)}.stay-facts{margin:28px 0 34px;border-top:1px solid var(--ana-line)}.stay-facts>div{padding:18px 0;border-bottom:1px solid var(--ana-line)}.stay-facts span{display:block;margin-bottom:6px;color:var(--ana-ink);font-size:.68rem;font-weight:700;letter-spacing:.16em}.stay-facts p{margin:0;font-size:.94rem}.bungalow-detail-image{background-size:cover;background-position:center}
@media(max-width:900px){.bungalow-sticky-info{position:static}.bungalow-detail-gallery img{min-height:300px}}
.editorial-copy{margin:0 auto}.editorial-copy>h2{position:relative;padding-top:18px}.editorial-copy>h2:before{content:'';position:absolute;top:0;left:0;width:46px;height:1px;background:var(--ana-ink)}.editorial-copy>ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 36px;list-style:none;padding:28px;background:var(--ana-sand)}.editorial-copy>ul li{padding-bottom:8px;border-bottom:1px solid rgba(0,0,0,.08)}
@media(max-width:620px){.editorial-copy>ul{grid-template-columns:1fr;padding:22px}}
.booking-intro{max-width:720px;margin:0 auto 55px}.booking-form-editorial{max-width:980px;margin:0 auto;padding:clamp(28px,5vw,60px);background:var(--ana-sand);box-shadow:none}.booking-form-editorial .form-row{gap:28px}.booking-form-editorial label{font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.booking-form-editorial input,.booking-form-editorial select,.booking-form-editorial textarea{background:#fff;border:1px solid var(--ana-line);padding:15px}.booking-summary{border-radius:0;background:var(--ana-sand);border:0;padding:clamp(28px,5vw,55px)}

/* Accueil fidèle au gabarit WordPress Ona */
body{font-size:18px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}.site-header>.container{width:min(1320px,calc(100% - 48px))}.site-title{font-family:var(--ana-sans);font-size:1.875rem;line-height:1;font-weight:400;letter-spacing:0}.site-tagline{font-size:.75rem;letter-spacing:.16em}.hero-home{min-height:615px;background-attachment:fixed;background-size:cover}.hero-home .hero-content{max-width:720px}.hero-home h1{font-size:clamp(2.5rem,2.1966rem + 1.2945vw,3.75rem);line-height:1.15}.hero-home .hero-text{font-family:var(--ana-serif);font-size:1.125rem;line-height:1.4}.home-discover{padding:30px 0 20px;background:#fffdfc}.home-discover>.eyebrow{margin-bottom:24px;color:#020202}.home-discover .discovery-grid{margin-top:0;gap:24px}.home-discover .discovery-card{min-height:340px;padding:16px 12px}.home-discover .discovery-card strong{width:75%;padding:16px 8px;color:#fff;font-family:var(--ana-sans);font-size:1.125rem;font-weight:400;text-transform:uppercase}.home-welcome{display:grid;grid-template-columns:1fr 1fr;align-items:center;background:#fff}.home-welcome-copy{margin-right:-28px;padding:6% 15%;background:var(--ana-sand);position:relative;z-index:2}.home-welcome-copy h2{font-size:2.125rem;line-height:1.2}.home-welcome-copy p:not(.signature){font-family:var(--ana-serif);color:#000;line-height:1.6}.home-welcome-copy .signature{margin-bottom:0;font-size:2.25rem}.home-welcome-image{min-height:552px;background-size:cover;background-position:center}.discovery-card{overflow:hidden;transition:transform .4s cubic-bezier(.25,.46,.45,.94)}.discovery-card:hover{transform:scale(1.025)}.reveal-on-scroll{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s cubic-bezier(.25,.46,.45,.94)}.reveal-on-scroll.is-visible{opacity:1;transform:none}
@media(min-width:901px){.site-header>.container{display:grid;grid-template-columns:minmax(210px,280px) 1fr;grid-template-areas:'brand nav';align-items:center;padding:22px 0}.header-brand{grid-area:brand;align-items:flex-start;padding:0}.header-top-bar{position:absolute;right:24px;top:4px;min-height:0}.main-nav{grid-area:nav;justify-content:flex-end;padding:0}.site-tagline{text-align:left}}
@media(max-width:900px){.hero-home{background-attachment:scroll;min-height:400px}.home-welcome{grid-template-columns:1fr}.home-welcome-copy{margin-right:0;padding:70px 12%}.home-welcome-image{min-height:430px}.home-discover .discovery-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){body{font-size:16px}.hero-home{min-height:400px}.hero-home h1{font-size:2.5rem}.hero-home .hero-text{font-size:1rem}.home-discover{padding-top:24px}.home-discover .discovery-grid{grid-template-columns:1fr;gap:20px}.home-discover .discovery-card{min-height:340px}.home-welcome-copy{padding:58px 28px}.home-welcome-copy h2{font-size:1.75rem}.home-welcome-image{min-height:360px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal-on-scroll{opacity:1;transform:none;transition:none}.hero-home{background-attachment:scroll}}

/* Fidélité typographique et disposition du thème WordPress Ona */
html{font-size:16px;scroll-behavior:auto}
body{font-family:"Nunito Sans",sans-serif;font-size:1.125rem;line-height:1.6;color:#000}
h1,h2,h3,h4,h5,h6{font-family:"Gilda Display",serif;font-weight:400;color:#000}
h1{font-size:2.5rem;line-height:1.15}h2{font-size:2.125rem;line-height:1.2}h3{font-size:1.75rem;line-height:1.15}
.site-header{border-bottom:0;background:#fff}
.site-header>.container{display:block;width:100%;max-width:none;padding:30px 4%}
.header-top-bar{position:absolute;top:12px;right:4%;min-height:0}
.header-brand{display:flex;align-items:center;padding:0;text-align:center}
.site-title{font-family:"Nunito Sans",sans-serif;font-size:1.875rem;line-height:1.2;font-weight:400;letter-spacing:10px;text-transform:uppercase}
.site-tagline{margin-top:8px;font-family:"Nunito Sans",sans-serif;font-size:.75rem;line-height:1.2;letter-spacing:0;text-align:center}
.main-nav{justify-content:center;gap:28px;padding:28px 0 0}
.main-nav a{font-family:"Nunito Sans",sans-serif;font-size:1rem;line-height:1.5;font-weight:400;letter-spacing:0;text-transform:none}
.main-nav .btn-book{padding:8px 18px;font-size:1rem}
.hero-home h1{font-family:"Gilda Display",serif;font-size:clamp(2.5rem,2.1966rem + 1.2945vw,3.75rem);line-height:1.15;font-weight:400}
.hero-home .hero-text{font-family:"Gilda Display",serif;font-size:1.125rem;line-height:1.4}
.home-discover>.eyebrow{font-family:"Nunito Sans",sans-serif;font-size:.75rem;line-height:1.4;font-weight:400;letter-spacing:2px}
.home-discover .discovery-card{justify-content:center;align-items:center}
.home-discover .discovery-card strong{font-family:"Nunito Sans",sans-serif;font-size:1.125rem;line-height:1.5;font-weight:400;text-shadow:0 1px 8px rgba(0,0,0,.28)}
.home-welcome-copy h2{font-family:"Gilda Display",serif;font-size:2.125rem;line-height:1.2}
.home-welcome-copy p:not(.signature){font-family:"Gilda Display",serif;font-size:1.125rem;line-height:1.6}
.reveal-on-scroll,.reveal-on-scroll.is-visible{opacity:1;transform:none;transition:none}
@media(max-width:900px){.site-header>.container{padding:24px}.header-top-bar{position:static}.header-brand{padding:4px 44px 0}.site-title{font-size:1.5rem;letter-spacing:6px}.main-nav{padding:28px;justify-content:flex-start}.main-nav a{font-size:1rem}}
@media(max-width:620px){body{font-size:1rem}.site-title{font-size:1.25rem;letter-spacing:4px}.site-tagline{font-size:.7rem}.home-welcome-copy h2{font-size:1.75rem}}

/* Charte Ona commune à toutes les pages publiques, FR et EN */
main p,main li,main input,main select,main textarea,main button{font-family:"Nunito Sans",sans-serif}
.container{width:min(1170px,calc(100% - 48px))}
.section{padding:80px 0}
.page-header{min-height:615px;display:flex;align-items:center;padding:60px 0;background-position:center;background-size:cover;text-align:center}
.page-header>.container{display:flex;max-width:720px;flex-direction:column;align-items:center;justify-content:center}
.page-header .eyebrow{margin:0 0 18px;font-family:"Nunito Sans",sans-serif;font-size:.75rem;line-height:1.4;font-weight:400;letter-spacing:2px;text-align:center}
.page-header h1{max-width:720px;margin:0 auto;color:#fff;font-family:"Gilda Display",serif;font-size:clamp(2.5rem,2.1966rem + 1.2945vw,3.75rem);line-height:1.15;font-weight:400;text-align:center}
.section-title{margin:0 0 42px;font-family:"Gilda Display",serif;font-size:2.125rem;line-height:1.2;font-weight:400;text-align:center}
.editorial-copy{max-width:720px;font-size:1.125rem;line-height:1.6}
.editorial-copy .lead,.lead{font-family:"Gilda Display",serif;font-size:1.5rem;line-height:1.6;font-weight:400}
.editorial-copy>h2,.bungalow-detail-content h2,.contact-info h2,.booking-intro h2{margin-top:42px;margin-bottom:20px;font-family:"Gilda Display",serif;font-size:2.125rem;line-height:1.2;font-weight:400}
.editorial-copy>h3,.blog-card h3{font-family:"Gilda Display",serif;font-size:1.75rem;line-height:1.15;font-weight:400}
.editorial-copy>h2:before{display:none}
.eyebrow{font-family:"Nunito Sans",sans-serif;font-size:.75rem;line-height:1.4;font-weight:400;letter-spacing:2px}
.bungalow-detail-content,.bungalow-info,.blog-card-content,.contact-info,.booking-form-editorial{font-size:1.125rem;line-height:1.6}
.bungalow-detail-content h2,.bungalow-info h2{font-family:"Gilda Display",serif;font-size:2.125rem;line-height:1.2;font-weight:400}
.blog-card h3{font-size:1.75rem}
.btn,.btn-book,button,input[type=submit]{font-family:"Nunito Sans",sans-serif;font-size:1.125rem;line-height:1;font-weight:600;letter-spacing:0;text-transform:none;border-radius:0}
.form-group label,.booking-form-editorial label{font-family:"Nunito Sans",sans-serif;font-size:.875rem;line-height:1.4;font-weight:600;letter-spacing:0;text-transform:none}
.form-group input,.form-group select,.form-group textarea,.booking-form-editorial input,.booking-form-editorial select,.booking-form-editorial textarea{font-size:1.125rem;line-height:1.4;border-radius:0}
.site-footer,.site-footer p,.site-footer a{font-family:"Nunito Sans",sans-serif;font-size:1rem;line-height:1.6}
.site-footer h4{font-family:"Gilda Display",serif;font-size:1.5rem;line-height:1.2;font-weight:400;color:#fff}
@media(max-width:900px){.page-header{min-height:480px}.section{padding:68px 0}}
@media(max-width:620px){.container{width:min(100% - 30px,1170px)}.page-header{min-height:400px;padding:45px 0}.page-header h1{font-size:2.5rem}.section{padding:56px 0}.section-title,.editorial-copy>h2,.bungalow-detail-content h2,.contact-info h2,.booking-intro h2{font-size:1.75rem}.editorial-copy,.bungalow-detail-content,.bungalow-info,.blog-card-content,.contact-info,.booking-form-editorial{font-size:1rem}.editorial-copy .lead,.lead{font-size:1.25rem}}

/* Footer fidèle au modèle WordPress */
.site-footer{margin:0;padding:48px 0;background:#181818;color:#fff;text-align:center}
.footer-model{display:flex;flex-direction:column;align-items:center}
.footer-logo{display:block;margin:0 auto}
.footer-logo img{display:block;width:289px;max-width:80vw;height:auto;margin:0}
.footer-tagline{margin:8px 0 28px;font-family:"Nunito Sans",sans-serif;font-size:.75rem;line-height:1.2;letter-spacing:0;color:#fff}
.footer-socials{display:flex;justify-content:center;gap:10px;margin:0 0 25px}
.footer-socials a{display:flex;width:36px;height:36px;align-items:center;justify-content:center;margin:0;border-radius:50%;background:#000;color:#fff}
.footer-socials a:hover{transform:scale(1.1);color:#fff}
.footer-socials svg{width:24px;height:24px;fill:currentColor}
.site-footer .footer-contact{margin:0 0 20px;font-family:"Gilda Display",serif;font-size:.875rem;line-height:1;color:#fff}
.site-footer .footer-contact a{display:inline;margin:0;font-family:"Gilda Display",serif;font-size:.875rem;line-height:1;color:#fff}
.footer-legal{margin-top:14px;color:#b5b5b5}
.site-footer .footer-legal p{margin:0 0 8px;font-size:.75rem;line-height:1.4;color:#b5b5b5}
.footer-legal nav{display:flex;justify-content:center;gap:20px;flex-wrap:wrap}
.site-footer .footer-legal a{display:inline;margin:0;font-size:.75rem;line-height:1.4;color:#b5b5b5}
.site-footer .footer-legal a:hover{color:#fff}
@media(max-width:620px){.site-footer{padding:42px 0}.footer-logo img{width:260px}.footer-legal nav{gap:10px 18px}}

/* Footer compact */
.site-footer{padding:24px 0 20px}
.footer-logo img{width:205px}
.footer-tagline{margin:3px 0 14px}
.footer-socials{margin-bottom:13px}
.footer-socials a{width:32px;height:32px}
.footer-socials svg{width:20px;height:20px}
.site-footer .footer-contact{margin-bottom:10px}
.footer-legal{margin-top:7px}
.site-footer .footer-legal p{margin-bottom:4px}
@media(max-width:620px){.site-footer{padding:20px 0 16px}.footer-logo img{width:185px}.footer-tagline{margin-bottom:11px}.footer-socials{margin-bottom:11px}.footer-legal nav{gap:6px 14px}}

/* Recherche publique de disponibilités */
.availability-page{background:#fff}
.availability-search{display:grid;grid-template-columns:1.2fr repeat(3,minmax(150px,1fr)) auto;gap:18px;align-items:end;max-width:1170px;margin:0 auto 42px;padding:28px;background:var(--ana-sand)}
.availability-search .availability-mode{align-self:center;font-family:"Gilda Display",serif;font-size:1.35rem;line-height:1.25}
.availability-search .form-group{margin:0}
.availability-search label{display:block;margin-bottom:8px;font-size:.875rem;font-weight:600}
.availability-search input{width:100%;min-height:50px;padding:12px 14px;border:1px solid var(--ana-line);border-radius:0;background:#fff;font-size:1rem}
.availability-search .btn{min-height:50px;white-space:nowrap}
.availability-period{display:flex;align-items:center;justify-content:center;gap:14px;margin:0 0 34px;font-size:1rem}
.availability-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.availability-card{display:flex;min-width:0;flex-direction:column;border:1px solid var(--ana-line);background:#fff}
.availability-image{position:relative;min-height:260px;background-position:center;background-size:cover}
.availability-image span{position:absolute;top:16px;left:16px;padding:7px 11px;background:#fff;color:#111;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.availability-card.is-available .availability-image span{background:#233c32;color:#fff}
.availability-card.is-unavailable .availability-image{filter:grayscale(.82);opacity:.72}
.availability-card.is-unavailable .availability-image:after{content:"";position:absolute;top:50%;left:6%;width:88%;height:2px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.5);transform:rotate(-12deg)}
.availability-card-body{display:flex;flex:1;flex-direction:column;padding:25px}
.availability-card-body .eyebrow{margin-bottom:8px}
.availability-card-body h3{margin:0 0 15px;font-size:1.75rem}
.availability-card-body p{margin:0 0 12px;font-size:1rem}
.availability-price{margin-top:auto!important;padding-top:14px}
.availability-card-body .btn{align-self:flex-start;margin-top:8px}
.availability-disabled{display:inline-block;align-self:flex-start;margin-top:8px;padding:12px 18px;background:#ddd;color:#666;font-size:.875rem;text-decoration:line-through}
.availability-empty{margin:32px auto 0;padding:22px;max-width:720px;background:var(--ana-sand);text-align:center}
.availability-details{margin-top:64px;scroll-margin-top:30px}
.availability-details h2{margin-top:0}
.selected-stay{display:flex;justify-content:space-between;gap:20px;margin:0 0 30px;padding:18px 0;border-top:1px solid var(--ana-line);border-bottom:1px solid var(--ana-line)}
@media(max-width:1050px){.availability-search{grid-template-columns:repeat(3,1fr)}.availability-search .availability-mode{grid-column:1/-1}.availability-results{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.availability-search{grid-template-columns:1fr;padding:22px}.availability-search .availability-mode{grid-column:auto}.availability-results{grid-template-columns:1fr}.availability-image{min-height:300px}.availability-period{flex-wrap:wrap}.selected-stay{flex-direction:column}}

/* Équivalents monétaires indicatifs */
.price-main{display:inline-block;white-space:nowrap}
.price-converted{display:block;margin-top:3px;color:#6e6a64;font-size:.82em;font-weight:400;line-height:1.35;white-space:nowrap}
.availability-price .price-converted,.selected-stay .price-converted{font-size:.78em}

/* Page d'ensemble Services du modèle */
.services-header{min-height:364px;background-attachment:fixed}
.services-overview{background:#f8f7f5}
.services-links{display:flex;max-width:720px;align-items:center;justify-content:center;gap:18px 28px;flex-wrap:wrap;padding:48px 0}
.service-link{padding:13px 22px;border:1px solid #111;background:#111;color:#fff;font-family:"Gilda Display",serif;font-size:1.125rem;font-weight:400}
.service-link:hover{background:transparent;color:#111;text-decoration:none}
@media(max-width:700px){.services-header{min-height:320px;background-attachment:scroll}.services-links{flex-direction:column;padding:24px 0}.service-link{width:min(100%,320px);text-align:center}}

/* Pages de services */
.service-page-copy{width:min(1170px,calc(100% - 48px))}.service-page-copy>.lead{max-width:820px;margin:0 auto 60px}
.service-detail-grid{display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:0;background:var(--ana-sand)}
.service-detail-image{min-height:560px;background-position:center;background-size:cover}
.service-detail-copy{padding:clamp(42px,7vw,88px)}
.service-detail-copy h2{font-size:2.125rem}.service-detail-reverse .service-detail-image,.service-feature.service-detail-reverse img{order:2}
.service-prices{margin-top:26px;border-top:1px solid var(--ana-line)}
.service-prices>p{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin:0;padding:15px 0;border-bottom:1px solid var(--ana-line)}
.service-prices>p>span:first-child{font-weight:600}.service-prices small{display:block;margin-top:5px;font-size:.8rem;color:#6e6a64}.service-prices .price-converted{font-size:.75em;text-align:right}
.service-route-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.service-route-grid article{background:var(--ana-sand)}.service-route-grid article>img{display:block;width:100%;height:270px;object-fit:cover}.service-route-grid article>h2,.service-route-grid article>p,.service-route-grid article>.service-prices{margin-left:28px;margin-right:28px}.service-route-grid article>h2{margin-top:28px;font-size:1.75rem}.service-route-grid article>.service-prices{margin-bottom:28px}
.restaurant-sections{display:grid;gap:50px}.service-feature{display:grid;grid-template-columns:1fr 1fr;align-items:center;background:var(--ana-sand)}.service-feature>img{display:block;width:100%;height:100%;min-height:470px;object-fit:cover}.service-feature>div{padding:clamp(36px,6vw,75px)}.service-feature h2{font-size:2.125rem}
@media(max-width:900px){.service-route-grid{grid-template-columns:1fr 1fr}.service-detail-grid,.service-feature{grid-template-columns:1fr}.service-detail-reverse .service-detail-image,.service-feature.service-detail-reverse img{order:0}.service-detail-image{min-height:430px}.service-feature>img{min-height:390px}}
@media(max-width:620px){.service-page-copy{width:min(100% - 30px,1170px)}.service-page-copy>.lead{margin-bottom:38px}.service-route-grid{grid-template-columns:1fr}.service-route-grid article>img{height:250px}.service-detail-copy{padding:38px 26px}.service-detail-image{min-height:330px}.service-feature>img{min-height:300px}.service-feature>div{padding:34px 25px}.service-prices>p{flex-direction:column;gap:7px}.service-prices .price-converted{text-align:left}}
.activity-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:60px}.activity-cards article{position:relative;min-height:360px;overflow:hidden}.activity-cards img{position:absolute;width:100%;height:100%;object-fit:cover}.activity-cards article:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent,rgba(0,0,0,.55))}.activity-cards h2{position:absolute;z-index:1;right:20px;bottom:18px;left:20px;margin:0;color:#fff;font-family:"Nunito Sans",sans-serif;font-size:1.125rem;text-align:center;text-transform:uppercase}.activity-feature{margin-bottom:60px}.excursion-block{max-width:820px;margin:60px auto 0;padding:clamp(38px,7vw,72px);background:var(--ana-sand);text-align:center}.excursion-block ul{display:flex;justify-content:center;gap:10px 24px;flex-wrap:wrap;padding:0;list-style:none}.excursion-block .btn{margin-top:24px}.story-sections{display:grid;gap:50px}.story-sections>.excursion-block{margin-top:0}
@media(max-width:700px){.activity-cards{grid-template-columns:1fr}.activity-cards article{min-height:310px}.excursion-block{padding:36px 24px}.excursion-block ul{display:block}.excursion-block li{margin-bottom:8px}}
.shop-intro{max-width:820px;margin:0 auto 50px;text-align:center}.shop-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:60px}.shop-gallery img{width:100%;height:360px;object-fit:cover}.shop-feature{margin-bottom:50px}.shop-banner{display:flex;min-height:340px;align-items:flex-end;justify-content:center;margin-bottom:50px;padding:55px;background-position:center;background-size:cover}.shop-banner p{max-width:760px;margin:0;color:#fff;font-family:"Gilda Display",serif;font-size:1.5rem;line-height:1.5;text-align:center}
@media(max-width:800px){.shop-gallery{grid-template-columns:repeat(2,1fr)}.shop-gallery img{height:320px}}@media(max-width:500px){.shop-gallery{grid-template-columns:1fr}.shop-gallery img{height:340px}.shop-banner{min-height:300px;padding:35px 24px}.shop-banner p{font-size:1.25rem}}
.activities-hero{min-height:414px;background-attachment:fixed}
.activities-hero .activities-kicker{margin:0 0 18px;color:#fff;font-family:"Gilda Display",serif;font-size:1.25rem;line-height:1.2;letter-spacing:6px;text-transform:uppercase}
.activities-intro{padding:51px 0 5px;background:var(--ana-sand)}
.activities-content-width{max-width:900px;text-align:center}
.activities-content-width p{margin:0 0 22px;font-family:"Gilda Display",serif;font-size:1.125rem;line-height:1.5}
.activities-content-width p:last-child{margin-bottom:28px}
.activities-equipment{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.activities-equipment article{display:flex;min-height:315px;align-items:center;justify-content:center;background-position:center;background-size:cover;transition:transform .35s ease}
.activities-equipment article:hover{transform:scale(1.02)}
.activities-equipment strong{padding:20px;color:#fff;font-family:"Nunito Sans",sans-serif;font-size:1.5rem;line-height:1.2;text-align:center}
.activities-mamado{display:grid;grid-template-columns:1fr 1fr;align-items:center;background:var(--ana-sand)}
.activities-mamado-copy{padding:4%;text-align:center}
.activities-mamado-copy h2{font-size:2.125rem}.activities-mamado-copy p{font-family:"Gilda Display",serif;font-size:1.125rem;line-height:1.6}
.activities-mamado>img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}
.activities-excursions{padding:50px 0 79px;background:var(--ana-sand)}
.activities-excursion-grid{display:grid;grid-template-columns:45fr 55fr;gap:55px;align-items:start}
.activities-excursion-images{position:sticky;top:20px;display:grid;gap:28px}
.activities-excursion-images img{display:block;width:100%;aspect-ratio:16/9;border-radius:10px;object-fit:cover}
.activities-excursion-copy h2{font-size:2.5rem}.activities-excursion-copy p{font-family:"Gilda Display",serif;font-size:1.125rem;line-height:1.6}
.activities-excursion-copy ul{display:grid;gap:12px;margin:28px 0;padding:0;list-style:none}
.activities-excursion-copy li{position:relative;padding-left:28px}.activities-excursion-copy li:before{content:"✓";position:absolute;left:0;font-weight:700}
.activities-excursion-copy .activities-note{font-family:"Nunito Sans",sans-serif;font-size:.875rem}.activities-excursion-copy .btn{margin-top:22px}
@media(max-width:800px){.activities-hero{background-attachment:scroll}.activities-equipment{grid-template-columns:1fr}.activities-equipment article{min-height:315px}.activities-mamado{grid-template-columns:1fr}.activities-mamado-copy{padding:60px 9%}.activities-excursion-grid{grid-template-columns:1fr}.activities-excursion-images{position:static}.activities-excursion-copy h2{text-align:center}}
@media(max-width:620px){.activities-hero{min-height:360px}.activities-hero .activities-kicker{font-size:1rem;letter-spacing:4px}.activities-intro{padding-top:40px}.activities-content-width{width:min(100% - 30px,900px)}.activities-equipment{width:100%}.activities-mamado-copy{padding:48px 25px}.activities-excursions{padding:42px 0 58px}.activities-excursion-grid{width:min(100% - 30px,1170px);gap:36px}}


/* Calendrier public des disponibilités */
.public-calendar-launch{display:flex;justify-content:center;margin:30px 0}
.public-calendar{max-width:920px;margin:0 auto 44px;padding:30px;border:1px solid var(--ana-line);background:#fff;scroll-margin-top:24px}
.public-calendar-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:28px;margin-bottom:24px}
.public-calendar-heading p{margin:0}.public-calendar-heading .eyebrow{margin-bottom:8px}
.public-calendar-legend{display:flex;flex-direction:column;gap:7px;font-size:.82rem;white-space:nowrap}
.public-calendar-legend span:before{content:"";display:inline-block;width:11px;height:11px;margin-right:8px;border:1px solid #aaa}
.public-calendar-legend .is-free:before{background:#fff;border-color:#233c32}.public-calendar-legend .is-full:before{background:#eee}
.public-calendar-months{display:flex;gap:4px;margin-bottom:28px;padding-bottom:5px;overflow-x:auto}
.public-calendar-month-button{display:flex;flex:1 0 54px;min-width:54px;min-height:30px;align-items:center;justify-content:center;padding:4px;border:1px solid var(--ana-line);background:#fff;color:var(--ana-ink);font-size:.68rem;font-weight:700;text-decoration:none;white-space:nowrap}
.public-calendar-month-button:hover{text-decoration:none;border-color:var(--ana-ink)}
.public-calendar-month-button.active{background:var(--ana-ink);color:#fff;border-color:var(--ana-ink)}
.public-calendar-title{margin:0 0 18px;text-align:center;text-transform:capitalize}
.public-calendar-weekdays,.public-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.public-calendar-weekdays span{padding:8px;text-align:center;color:var(--ana-muted);font-size:.76rem;font-weight:700;text-transform:uppercase}
.public-calendar-day{position:relative;display:flex;min-height:74px;align-items:center;justify-content:center;border:0;border-top:1px solid var(--ana-line);border-left:1px solid var(--ana-line);background:#fff;color:var(--ana-ink);font:inherit}
.public-calendar-day:nth-child(7n){border-right:1px solid var(--ana-line)}.public-calendar-day:nth-last-child(-n+7){border-bottom:1px solid var(--ana-line)}
.public-calendar-day.is-empty{border:0;background:transparent}.public-calendar-day.is-free{font-weight:800;cursor:pointer}
.public-calendar-day.is-free:hover,.public-calendar-day.is-free:focus{z-index:4;background:var(--ana-sand);outline:2px solid #233c32;outline-offset:-2px}
.public-calendar-day.is-full{background:#f1f1f1;color:#999;text-decoration:line-through}.public-calendar-day.is-past{opacity:.55}
.public-calendar-tooltip{position:absolute;left:50%;bottom:calc(100% + 8px);display:none;width:max-content;max-width:310px;padding:12px 14px;transform:translateX(-50%);background:var(--ana-ink);color:#fff;text-align:left;font-size:.78rem;font-weight:400;line-height:1.5;box-shadow:0 8px 24px rgba(0,0,0,.2);z-index:10}
.public-calendar-tooltip:after{content:"";position:absolute;top:100%;left:50%;margin-left:-6px;border:6px solid transparent;border-top-color:var(--ana-ink)}
.public-calendar-tooltip>span{display:block;white-space:nowrap}.public-calendar-day:hover .public-calendar-tooltip,.public-calendar-day:focus .public-calendar-tooltip{display:block}
.public-calendar-close{margin-top:24px;text-align:center}
@media(max-width:700px){.public-calendar{padding:20px 10px}.public-calendar-heading{flex-direction:column}.public-calendar-day{min-height:52px}.public-calendar-tooltip{position:fixed;left:50%;bottom:20px;width:calc(100% - 30px);max-width:420px}.public-calendar-tooltip:after{display:none}.public-calendar-tooltip>span{white-space:normal}}

.public-calendar-tooltip>.public-calendar-one-night{width:280px;margin-top:9px;padding-top:9px;border-top:1px solid rgba(255,255,255,.32);color:#ff5b5b;font-weight:800;line-height:1.35;white-space:normal}
.one-night-fee{display:flex!important;flex-wrap:wrap;align-items:flex-start;column-gap:.35em}.one-night-fee-label,.one-night-fee-value{white-space:nowrap}.one-night-fee-value{flex:none}.availability-one-night{color:#a82020;font-weight:800}

/* Accès temporaire à la réservation pendant la construction */
.booking-gate{position:relative;display:flex;min-height:720px;align-items:center;justify-content:center;padding:70px 24px;background:url('../images/DJI_0447.jpg') center/cover no-repeat}
.booking-gate-overlay{position:absolute;inset:0;background:linear-gradient(135deg,rgba(16,27,23,.82),rgba(35,60,50,.55))}
.booking-gate-card{position:relative;width:min(100%,680px);padding:clamp(38px,6vw,68px);background:rgba(255,255,255,.97);box-shadow:0 24px 70px rgba(0,0,0,.3);text-align:center}
.booking-gate-card .eyebrow{margin-bottom:18px;color:#6d806f}.booking-gate-card h1{margin-bottom:22px;font-size:clamp(2rem,5vw,3.25rem);line-height:1.08}
.booking-gate-lead{max-width:560px;margin:0 auto 30px;font-size:1.05rem;line-height:1.75}.booking-gate-external{display:inline-flex;justify-content:center}
.booking-gate-divider{display:flex;align-items:center;gap:16px;margin:38px 0 24px;color:#777;font-size:.76rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.booking-gate-divider:before,.booking-gate-divider:after{content:"";height:1px;flex:1;background:var(--ana-line)}
.booking-gate-form{max-width:440px;margin:0 auto}.booking-gate-form label{display:block;margin-bottom:10px;font-size:.88rem;font-weight:700;text-align:left}
.booking-gate-code-row{display:grid;grid-template-columns:1fr auto;gap:10px}.booking-gate-code-row input{min-width:0;padding:13px 15px;border:1px solid var(--ana-line);font:inherit;letter-spacing:.18em}
.booking-gate-return{display:inline-block;margin-top:28px;color:var(--ana-ink);font-size:.9rem;font-weight:700}
@media(max-width:560px){.booking-gate{min-height:650px;padding:35px 15px}.booking-gate-card{padding:36px 23px}.booking-gate-code-row{grid-template-columns:1fr}.booking-gate-code-row .btn{width:100%}}

/* Documents légaux en fenêtre modale */
body.legal-modal-open{overflow:hidden}
.legal-modal{position:fixed;z-index:12000;inset:0;display:flex;align-items:center;justify-content:center;padding:28px}
.legal-modal[hidden]{display:none}.legal-modal-backdrop{position:absolute;inset:0;background:rgba(11,20,17,.78);backdrop-filter:blur(4px)}
.legal-modal-panel{position:relative;width:min(100%,980px);max-height:calc(100vh - 56px);overflow:auto;background:#fff;box-shadow:0 28px 90px rgba(0,0,0,.4);outline:0}
.legal-modal-close{position:sticky;z-index:2;top:14px;float:right;width:44px;height:44px;margin:14px 14px -58px 0;border:1px solid rgba(255,255,255,.5);border-radius:50%;background:rgba(17,33,27,.82);color:#fff;font-size:1.75rem;line-height:1;cursor:pointer}
.legal-modal-header{padding:64px clamp(28px,7vw,86px) 48px;background:linear-gradient(135deg,#172a23,#355b4b);color:#fff;text-align:center}
.legal-modal-header .eyebrow{color:#d5dfd8}.legal-modal-header h1{margin:10px 0 0;color:#fff;font-size:clamp(2rem,5vw,3.5rem)}
.legal-modal-language{margin:18px 0 0;color:#e1e9e4;font-size:.9rem}.legal-document{padding:clamp(35px,6vw,72px) clamp(26px,7vw,88px);color:#343b37}
.legal-document>p{margin:0 0 20px;line-height:1.78}.legal-document h2{margin:48px 0 18px;padding-bottom:12px;border-bottom:1px solid var(--ana-line);font-size:clamp(1.45rem,3vw,2rem)}
.legal-document h2:first-child{margin-top:0}.legal-document ul{display:grid;gap:12px;margin:0 0 24px;padding-left:22px}.legal-document li{padding-left:5px;line-height:1.7}
.legal-document a{font-weight:700;text-decoration:underline}.legal-modal-footer{padding:0 clamp(26px,7vw,88px) 55px;text-align:center}
.legal-facts{display:grid;margin:5px 0 36px;border-top:1px solid var(--ana-line)}.legal-facts>div{display:grid;grid-template-columns:minmax(190px,.8fr) 1.2fr;gap:25px;padding:15px 0;border-bottom:1px solid var(--ana-line)}
.legal-facts dt{font-weight:700;color:#233c32}.legal-facts dd{margin:0;line-height:1.6}
@media(max-width:620px){.legal-modal{padding:0}.legal-modal-panel{width:100%;max-height:100vh}.legal-modal-header{padding:58px 24px 38px}.legal-document{padding:34px 23px}.legal-document h2{margin-top:38px}.legal-modal-close{top:9px;margin:9px 9px -53px 0}}
@media(max-width:620px){.legal-facts>div{grid-template-columns:1fr;gap:5px}}

/* Galerie : miniatures carrées et visionneuse plein écran */
.gallery-item{box-shadow:none;background:transparent;border-radius:0}
.gallery-thumbnail{position:relative;display:block;width:100%;aspect-ratio:1/1;overflow:hidden;padding:0;border:0;background:#e8ece9;cursor:zoom-in}
.gallery-thumbnail img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s ease,filter .35s ease}
.gallery-thumbnail:hover img,.gallery-thumbnail:focus-visible img{transform:scale(1.045);filter:brightness(.82)}
.gallery-thumbnail>span{position:absolute;right:12px;bottom:12px;display:grid;width:38px;height:38px;place-items:center;border-radius:50%;background:rgba(17,33,27,.78);color:#fff;font-size:1.55rem;opacity:0;transform:translateY(5px);transition:.25s}
.gallery-thumbnail:hover>span,.gallery-thumbnail:focus-visible>span{opacity:1;transform:none}
.gallery-item p{margin:0;padding:11px 2px 22px;color:var(--ana-muted);font-size:.82rem}
body.gallery-lightbox-open{overflow:hidden}
.gallery-lightbox{position:fixed;z-index:13000;inset:0;display:grid;place-items:center;padding:28px}
.gallery-lightbox[hidden]{display:none}
.gallery-lightbox-backdrop{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;background:rgba(7,13,11,.92);cursor:zoom-out}
.gallery-lightbox-dialog{position:relative;z-index:1;display:flex;max-width:calc(100vw - 56px);max-height:calc(100vh - 56px);margin:0;flex-direction:column;align-items:center}
.gallery-lightbox-dialog img{display:block;width:auto;height:auto;max-width:100%;max-height:calc(100vh - 115px);object-fit:contain;box-shadow:0 18px 65px rgba(0,0,0,.5)}
.gallery-lightbox-dialog figcaption{max-width:900px;padding:14px 52px 0;color:#fff;font-size:.9rem;text-align:center}
.gallery-lightbox-close{position:absolute;z-index:2;top:-17px;right:-17px;width:46px;height:46px;padding:0;border:1px solid rgba(255,255,255,.55);border-radius:50%;background:#203c31;color:#fff;font-size:2rem;line-height:1;cursor:pointer}
@media(max-width:620px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.gallery-item p{font-size:.73rem}.gallery-lightbox{padding:12px}.gallery-lightbox-dialog{max-width:calc(100vw - 24px);max-height:calc(100vh - 24px)}.gallery-lightbox-dialog img{max-height:calc(100vh - 95px)}.gallery-lightbox-close{top:8px;right:8px}}
