/**
 * Gîtes & Chambres — Réservation : styles front.
 * Les couleurs de marque sont injectées via les variables CSS --gresa-primary / --gresa-text.
 */

.gresa-wrap {
	--gresa-primary: #8b405e;
	--gresa-primary-dark: #6f3149;
	--gresa-accent: #c39cae;
	--gresa-text: #6e6e6e;
	--gresa-font-title: 'Playfair Display', Georgia, serif;
	--gresa-font-body: 'Open Sans', 'Helvetica Neue', Arial, sans-serif;
	--gresa-btn-transform: uppercase;
	--gresa-border: #e4e4e4;
	--gresa-bg-soft: #faf7f8;
	--gresa-libre: #e9f6ec;
	--gresa-libre-b: #46b566;
	--gresa-complet: #fdeaea;
	--gresa-complet-b: #d9534f;
	--gresa-ferme: #eeeeee;
	--gresa-ferme-b: #9b9b9b;
	max-width: 1140px;
	margin: 0 auto;
	color: var(--gresa-text);
	font-family: var(--gresa-font-body);
	font-size: 16px;
	line-height: 1.55;
	box-sizing: border-box;
}
.gresa-wrap *, .gresa-wrap *::before, .gresa-wrap *::after { box-sizing: border-box; }
.gresa-wrap a { color: var(--gresa-accent); text-decoration: none; }
.gresa-wrap a:hover { color: var(--gresa-primary); }

/* Titres : police du thème (Playfair Display sur Divi) */
.gresa-title, .gresa-block > legend, .gresa-block > h4,
.gresa-card-head h3, .gresa-resa-recap-head h3, .gresa-recap h4,
.gresa-cal-heading, .gresa-cal-title, .gresa-confirmation h3,
.gresa-pres-head h2, .gresa-suppl-title { font-family: var(--gresa-font-title); }

.gresa-title { color: var(--gresa-primary); margin: 0 0 .5em; }
.gresa-intro { margin-bottom: 1.2em; }

/* ---------- Fil d'étapes ---------- */
.gresa-steps {
	display: flex; flex-wrap: wrap; gap: 6px;
	list-style: none; margin: 0 0 24px; padding: 0;
	counter-reset: step;
}
.gresa-steps li {
	flex: 1 1 0; min-width: 130px;
	display: flex; align-items: center; gap: 8px;
	padding: 10px 12px; border-radius: 6px;
	background: var(--gresa-bg-soft); color: #999;
	font-size: 14px; font-weight: 600;
}
.gresa-steps li span {
	display: inline-flex; align-items: center; justify-content: center;
	width: 24px; height: 24px; border-radius: 50%;
	background: #ccc; color: #fff; font-size: 13px;
}
.gresa-steps li.is-active { color: var(--gresa-primary); background: #f3ecef; }
.gresa-steps li.is-active span { background: var(--gresa-primary); }
.gresa-steps li.is-done span { background: var(--gresa-libre-b); }

/* ---------- Blocs / champs ---------- */
.gresa-block { border: 0; border-top: 2px solid var(--gresa-primary); margin: 0 0 22px; padding: 14px 0 0; }
.gresa-block > legend, .gresa-block > h4 {
	color: #8b405e; font-size: 30px; font-weight: 600;
	padding: 0; margin: 0 0 12px;
}
.gresa-fields { display: flex; flex-wrap: wrap; gap: 18px; }
.gresa-field { flex: 1 1 200px; display: flex; flex-direction: column; }
.gresa-field label { font-weight: 600; margin-bottom: 6px; font-size: 14px; }
.gresa-field input, .gresa-field select, .gresa-field textarea {
	width: 100%; padding: 10px 12px; border: 1px solid var(--gresa-border);
	border-radius: 5px; font-size: 15px; background: #fff; color: var(--gresa-text);
}
.gresa-field input:focus, .gresa-field select:focus, .gresa-field textarea:focus {
	outline: none; border-color: var(--gresa-primary); box-shadow: 0 0 0 3px rgba(139,64,94,.12);
}
.gresa-req { color: var(--gresa-complet-b); }

/* Catégories (radios) */
.gresa-radios { display: flex; flex-wrap: wrap; gap: 22px; }
.gresa-radio { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; cursor: pointer; }
.gresa-radio input { accent-color: var(--gresa-primary); width: 18px; height: 18px; }

/* ---------- Boutons ---------- */
.gresa-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 6px;
	padding: 12px 24px; border: 1px solid transparent; border-radius: 2px;
	font-size: 14px; font-weight: 600; cursor: pointer; text-decoration: none;
	text-transform: var(--gresa-btn-transform); letter-spacing: .03em;
	transition: background .15s, color .15s, box-shadow .15s; line-height: 1.2;
}
.gresa-btn.gresa-btn-primary { color: #fff; }
.gresa-wrap a.gresa-btn-primary:hover { color: #fff; }
.gresa-btn .dashicons { font-size: 18px; width: 18px; height: 18px; }
.gresa-btn-primary { background: var(--gresa-primary); color: #fff; }
.gresa-btn-primary:hover { background: var(--gresa-primary-dark); color: #fff; }
.gresa-btn-ghost { background: #fff; color: var(--gresa-text); border-color: var(--gresa-border); }
.gresa-btn-ghost:hover { background: var(--gresa-bg-soft); }
.gresa-btn[disabled] { opacity: .6; cursor: not-allowed; }
.gresa-actions { margin-top: 8px; }
.gresa-actions-center { text-align: center; margin: 22px 0; }
.gresa-actions-stack { display: flex; flex-direction: column; gap: 10px; }
.gresa-actions-stack .gresa-btn { width: 100%; }

/* ---------- Alertes / loader ---------- */
.gresa-alert {
	padding: 12px 16px; border-radius: 6px; margin-bottom: 18px;
	background: var(--gresa-complet); border: 1px solid var(--gresa-complet-b); color: #a12622;
}
.gresa-empty {
	padding: 22px; text-align: center; background: var(--gresa-bg-soft);
	border: 1px dashed var(--gresa-border); border-radius: 8px;
}
.gresa-loader { text-align: center; padding: 24px; }
.gresa-spinner {
	display: inline-block; width: 34px; height: 34px; border-radius: 50%;
	border: 3px solid #e6dde1; border-top-color: var(--gresa-primary);
	animation: gresa-spin .8s linear infinite;
}
@keyframes gresa-spin { to { transform: rotate(360deg); } }

/* ---------- Cartes de résultats ---------- */
.gresa-results { display: flex; flex-direction: column; gap: 22px; }
.gresa-card { border: 1px solid var(--gresa-border); border-radius: 10px; overflow: hidden; box-shadow: 0 2px 10px rgba(0,0,0,.04); background: #fff; }
.gresa-card-head {
	display: flex; align-items: center; justify-content: space-between;
	background: var(--gresa-primary); color: #fff; padding: 14px 18px;
}
.gresa-card-head h3 { margin: 0; color: #fff; font-size: 20px; }
.gresa-badge {
	display: inline-flex; align-items: center; gap: 5px; background: #fff;
	color: var(--gresa-primary); font-weight: 700; padding: 3px 10px; border-radius: 5px; font-size: 15px;
}
.gresa-badge .dashicons { font-size: 18px; width: 18px; height: 18px; }
/* .gresa-card-body { display: grid; grid-template-columns: 300px 1fr; gap: 22px; padding: 18px; } */
.gresa-card-body {
  display: grid;
  grid-template-columns: 230px 1fr;
  gap: 25px;
  padding: 10px;
}
.gresa-equip {
  padding: 0 !important;
}
.gresa-card-media img, .gresa-card-img { width: 100%; height: auto; border-radius: 8px; display: block; }
.gresa-card-noimg { width: 100%; padding-top: 66%; background: var(--gresa-bg-soft); border-radius: 8px; }
.gresa-equip { list-style: none; margin: 14px 0 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 6px 10px; }
.gresa-equip li { display: flex; align-items: center; gap: 9px; font-size: 12px; }
.gresa-equip .dashicons { color: var(--gresa-primary); font-size: 18px; width: 18px; height: 18px; }
.gresa-ico { width: 20px; height: 20px; flex: 0 0 auto; color: var(--gresa-primary); display: inline-block; vertical-align: middle; }
.gresa-equip .gresa-ico { color: var(--gresa-primary); }
.gresa-card-desc { font-size: 14.5px; }
.gresa-card-desc p { margin: 0 0 .5em; }

/* Tableau de prix */
.gresa-price { width: 100%; border-collapse: collapse; margin-top: 14px; }
.gresa-price td { padding: 9px 12px; border-bottom: 1px solid var(--gresa-border); font-size: 15px; }
.gresa-price td.ar { text-align: right; white-space: nowrap; }
.gresa-price-total td { background: #eef7e9; border-bottom: none; font-size: 16px; }
.gresa-price-arrhes td { color: var(--gresa-primary); }
.gresa-price-info { font-size: 13px; color: #888; margin: 8px 0 0; }
.gresa-card-actions { margin-top: 16px; text-align: right; }

/* ---------- Étape réservation ---------- */
.gresa-resa-recap-head { border-left: 4px solid var(--gresa-primary); padding: 4px 0 4px 14px; margin-bottom: 20px; }
.gresa-resa-recap-head h3 { margin: 0 0 4px; color: var(--gresa-primary); }
.gresa-resa-recap-head p { margin: 0; font-size: 14.5px; }
.gresa-resa-recap-head .dashicons { color: var(--gresa-primary); vertical-align: middle; }
.gresa-resa-grid { display: grid; grid-template-columns: 1fr 340px; gap: 26px; align-items: start; }

.gresa-suppl-title { }
.gresa-options-list { list-style: none; margin: 0; padding: 0; }
.gresa-option { display: flex; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--gresa-border); }
.gresa-option-check { display: flex; align-items: center; gap: 12px; width: 100%; cursor: pointer; margin: 0; }
.gresa-option-check input { width: 20px; height: 20px; accent-color: var(--gresa-primary); flex: 0 0 auto; }
.gresa-option-info { display: flex; flex-direction: column; flex: 1 1 auto; }
.gresa-option-name { font-weight: 600; }
.gresa-oblig { color: var(--gresa-libre-b); font-style: normal; font-size: 13px; }
.gresa-option-desc { font-size: 13px; color: #888; }
.gresa-option-price { white-space: nowrap; font-weight: 600; text-align: right; }
.gresa-option-price small { display: block; font-weight: 400; color: #999; font-size: 12px; }
.gresa-option-qty input { width: 68px; padding: 8px; border: 1px solid var(--gresa-border); border-radius: 5px; text-align: center; }

/* Formulaire coordonnées */
.gresa-form-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.gresa-form-grid .gresa-field { flex: initial; }
.gresa-col-2 { grid-column: span 2; }
.gresa-col-full { grid-column: 1 / -1; }
.gresa-accomp input { margin-bottom: 8px; }
.gresa-cgv { margin: 18px 0; }
.gresa-cgv label { display: flex; align-items: flex-start; gap: 10px; font-size: 14.5px; }
.gresa-cgv input { margin-top: 3px; width: 18px; height: 18px; accent-color: var(--gresa-primary); }
.gresa-recaptcha { margin: 14px 0; }

/* Récapitulatif latéral */
.gresa-resa-aside { position: sticky; top: 20px; }
.gresa-recap { border: 1px solid var(--gresa-border); border-radius: 10px; padding: 16px 18px; background: var(--gresa-bg-soft); }
.gresa-recap h4 { margin: 0 0 10px; color: var(--gresa-primary); }
.gresa-recap-note { font-size: 12.5px; color: #888; margin: 12px 0 0; }

/* ---------- Confirmation ---------- */
.gresa-confirmation { text-align: center; padding: 24px; border: 1px solid var(--gresa-libre-b); background: var(--gresa-libre); border-radius: 12px; }
.gresa-confirm-icon .dashicons { font-size: 60px; width: 60px; height: 60px; color: var(--gresa-libre-b); }
.gresa-confirmation h3 { color: #2f7a45; margin: 8px 0; }
.gresa-confirm-ref { font-size: 17px; }
.gresa-confirm-recap { max-width: 460px; margin: 18px auto; background: #fff; border-radius: 8px; }
.gresa-confirm-mail { font-size: 14px; color: #555; }

/* ---------- Calendrier ---------- */
.gresa-calendar { max-width: 900px; }
.gresa-cal-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.gresa-cal-heading { color: var(--gresa-primary); font-size: 20px; font-weight: 600; }
.gresa-cal-nav { background: var(--gresa-primary); color: #fff; border: 0; width: 38px; height: 38px; border-radius: 5px; font-size: 18px; cursor: pointer; }
.gresa-cal-nav:hover { background: var(--gresa-primary-dark); }
.gresa-cal-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; }
.gresa-cal-month { }
.gresa-cal-title { text-align: center; font-weight: 700; margin-bottom: 8px; text-transform: capitalize; }
.gresa-cal-table { width: 100%; border-collapse: collapse; }
.gresa-cal-table th { padding: 6px 0; font-size: 12px; color: #999; font-weight: 600; }
.gresa-cal-day, .gresa-cal-empty { text-align: center; padding: 8px 0; font-size: 14px; border-radius: 4px; }
.gresa-cal-day { border: 1px solid transparent; }
.gresa-cal-day.is-libre { background: var(--gresa-libre); color: #2f7a45; }
.gresa-cal-day.is-complet { background: var(--gresa-complet); color: #a12622; }
.gresa-cal-day.is-ferme { background: var(--gresa-ferme); color: var(--gresa-ferme-b); }
.gresa-cal-day.is-passe { color: #ccc; }
.gresa-cal-legend { display: flex; gap: 20px; justify-content: center; margin: 18px 0; flex-wrap: wrap; }
.gresa-cal-lg { display: inline-flex; align-items: center; gap: 7px; font-size: 14px; }
.gresa-cal-lg i { width: 16px; height: 16px; border-radius: 3px; display: inline-block; }
.gresa-cal-lg.is-libre i { background: var(--gresa-libre-b); }
.gresa-cal-lg.is-complet i { background: var(--gresa-complet-b); }
.gresa-cal-lg.is-ferme i { background: var(--gresa-ferme-b); }

/* ---------- Date picker (tunnel) ---------- */
.gresa-dp { position: relative; z-index: 5; margin-top: 6px; display: none; }
.gresa-dp.is-open { display: block; }
/************modifier 22-07-2026******/
/*.gresa-dp-inner {
	background: #fff; border: 1px solid var(--gresa-border); border-radius: 8px;
	box-shadow: 0 8px 26px rgba(0,0,0,.14); padding: 12px; width: 280px;
}*/

.gresa-dp-inner {
	border: 1px solid var(--gresa-border);
}
/******************fin modif**********************/
.gresa-dp-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.gresa-dp-head button { background: none; border: 0; cursor: pointer; font-size: 18px; color: var(--gresa-primary); padding: 2px 8px; }
.gresa-dp-title { font-weight: 700; text-transform: capitalize; }
.gresa-dp-table { width: 100%; border-collapse: collapse; }
.gresa-dp-table th { font-size: 11px; color: #999; padding: 4px 0; }
.gresa-dp-table td { text-align: center; padding: 2px; }
.gresa-dp-table td button {
	width: 34px; height: 32px; border: 0; background: none; border-radius: 5px; cursor: pointer; font-size: 13px; color: var(--gresa-text);
}
.gresa-dp-table td button:hover:not([disabled]) { background: #f3ecef; }
.gresa-dp-table td button.is-selected { background: var(--gresa-primary); color: #fff; }
.gresa-dp-table td button[disabled] { color: #d0d0d0; cursor: not-allowed; }

/* ---------- Présentation ---------- */
.gresa-pres-head { display: flex; align-items: center; gap: 14px; margin-bottom: 16px; }
.gresa-pres-head h2 { color: var(--gresa-primary); margin: 0; }
.gresa-pres-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 10px; margin-bottom: 18px; }
.gresa-pres-main { grid-column: 1 / -1; margin: 0; }
.gresa-pres-main img, .gresa-pres-figure img { width: 100%; height: 100%; object-fit: cover; border-radius: 8px; display: block; }
.gresa-pres-figure { display: block; aspect-ratio: 4/3; overflow: hidden; border-radius: 8px; }
.gresa-equip-pres { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); margin: 0 0 20px; }

/* ---------- Responsive ---------- */
@media (max-width: 860px) {
	.gresa-card-body { grid-template-columns: 1fr; }
	.gresa-resa-grid { grid-template-columns: 1fr; }
	.gresa-resa-aside { position: static; }
	.gresa-form-grid { grid-template-columns: repeat(2, 1fr); }
	.gresa-col-2 { grid-column: span 1; }
}
@media (max-width: 520px) {
	.gresa-form-grid { grid-template-columns: 1fr; }
	.gresa-col-2, .gresa-col-full { grid-column: 1 / -1; }
	.gresa-equip { grid-template-columns: 1fr; }
	.gresa-steps li { min-width: 0; font-size: 12px; }
}




/* --- Conteneur principal --- */
.gresa-calendar {
    width: 100%;
   /* max-width: 380px;*/ /* Limite la largeur max sur PC pour garder le rendu de la capture */
    margin: 0 auto;
    font-family: Arial, sans-serif;
    box-sizing: border-box;
}

.gresa-calendar *, 
.gresa-calendar *::before, 
.gresa-calendar *::after {
    box-sizing: border-box;
}

/* --- En-tête Responsive (Flexbox) --- */
.gresa-cal-header-nav {
    display: flex;
    align-items: stretch;
    width: 100%;
    margin-bottom: 8px;
}

.gresa-cal-title {
    flex: 1;
    background-color: #3f3f3f;
    color: #ffffff;
    text-align: center;
    padding: 12px 5px;
    font-size: 16px;
    font-weight: bold;
    text-transform: capitalize;
    white-space: nowrap;
}

/* .gresa-cal-title { */
    /* flex: 1; Occupe tout l'espace central disponible */
/*    background-color: #3f3f3f;
    color: #ffffff;*/
    /* text-align: center;
    padding: 12px 5px;
    font-size: 16px;
    font-weight: bold;
    text-transform: capitalize;
    white-space: nowrap;
} */

.gresa-cal-nav {
    background-color: #3f3f3f;
    border: none;
    color: #ffffff;
    padding: 0 15px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.2s;
    min-width: 45px;
}

.gresa-cal-nav:hover {
    background-color: #555555;
}

/* Flèches en pur CSS */
.gresa-cal-prev::before {
    content: "";
    border-style: solid;
    border-width: 6px 8px 6px 0;
    border-color: transparent #ffffff transparent transparent;
}

.gresa-cal-next::before {
    content: "";
    border-style: solid;
    border-width: 6px 0 6px 8px;
    border-color: transparent transparent transparent #ffffff;
}

/* --- Tableau du calendrier (Fluide et Responsive) --- */
.gresa-cal-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 4px; /* Espace entre les cases comme sur la capture */
    table-layout: fixed; /* Force toutes les colonnes à avoir EXACTEMENT la même largeur */
}

.gresa-cal-table th,
.gresa-cal-table td {
    width: 14.28%; /* 100% / 7 jours */
    text-align: center;
    padding: 0;
    vertical-align: middle;
    font-size: 14px;
}

.gresa-cal-table th {
    color: #6e6e6e;
    font-weight: 600;
    padding-bottom: 8px;
}

/* .gresa-cal-table th {
    color: #4a75a0; Couleur bleutée des jours (D, L, M...)
    font-weight: normal;
    padding-bottom: 8px;
} */

/* --- Style des cases de jour --- */
.gresa-cal-day, 
.gresa-cal-empty {
    height: 40px; /* Hauteur par défaut */
    line-height: 40px;
    color: #555555;
}

.gresa-cal-day.is-libre {
    background-color: #27a24b;
    color: #ffffff;
    font-weight: bold;
    border-radius: 4px;
    cursor: pointer;
}

/* Case disponible (Vert) */
/* .gresa-cal-day.is-libre {
    background-color: #27a24b;
    color: #ffffff;
    font-weight: bold;
    border-radius: 4px;
    text-decoration: underline; /* Les chiffres sont soulignés sur votre capture */
    /* cursor: pointer; */
/* } */ */

/* Case occupée / fermée (Exemple) */
.gresa-cal-day.is-complet {
    background-color: #e54d42;
    color: #ffffff;
    border-radius: 4px;
}

/* --- Adaptations Mobiles (Écrans < 400px) --- */
@media screen and (max-width: 400px) {
    .gresa-cal-table border-spacing {
        border-spacing: 2px; /* Réduit l'espace sur petit écran */
    }
    .gresa-cal-day, 
    .gresa-cal-empty {
        height: 35px; /* Réduit légèrement la hauteur sur petit mobile */
        line-height: 35px;
        font-size: 12px;
    }
    .gresa-cal-title {
        font-size: 14px;
        padding: 10px 2px;
    }
}
.gresa-cal-table thead th {
  font-size: 12px;
}


/* 23_07_2026 Arimalala changement de table calendrier et mise en page de reservation */


.gresa-cal-header-nav .gresa-cal-title {
    font-family: Arial, sans-serif !important;
    font-style: normal !important;
    color: #ffffff !important;
    font-weight: bold !important;
}

.gresa-cal-table thead th {
    color: #6e6e6e !important;
    font-weight: 600 !important;
}


.gresa-cal-header-nav {
    background-color: #3f3f3f !important;
}

.gresa-cal-header-nav .gresa-cal-title {
    font-family: Arial, sans-serif !important;
    font-style: normal !important;
    background-color: transparent !important;
    color: #ffffff !important;
    font-weight: bold !important;
}

.gresa-cal-nav {
    background-color: transparent !important;
}

.gresa-cal-table thead th {
    color: #6e6e6e !important;
    font-weight: 600 !important;
}

/* Bouton "JE RÉSERVE" */
.gresa-calendar .gresa-btn-ghost,
.gresa-calendar .gresa-btn {
    background-color: #8b405e !important;
    color: #ffffff !important;
    border-color: #8b405e !important;
}

/* Titre "Disponibilités" au-dessus du calendrier */
.gresa-cal-heading {
    font-weight: 400 !important;
    color: #6e6e6e !important;
    font-size: 26px !important;
    text-align: center !important;
    padding-bottom: 14px !important;
    margin-bottom: 18px !important;
    border-bottom: 1px solid #e4e4e4 !important;
}

/* Fond blanc du calendrier */
.gresa-calendar,
.gresa-cal-month,
.gresa-cal-table {
    background-color: #ffffff !important;
}

/* Taille du calendrier  */
.gresa-calendar {
    max-width: 3200px !important;
    width: 100% !important;
    margin: 0 auto !important;
}

.gresa-cal-table {
    border-spacing: 3px !important;
}

.gresa-cal-table th {
    font-size: 12px !important;
    padding-bottom: 6px !important;
}

.gresa-cal-day,
.gresa-cal-empty {
    height: 34px !important;
    line-height: 34px !important;
    width: 34px !important;
    font-size: 13px !important;
}

.gresa-cal-header-nav {
    height: 40px !important;
}

.gresa-cal-title {
    font-size: 15px !important;
    padding: 10px 5px !important;
}

.gresa-cal-nav {
    min-width: 38px !important;
}


/* Bouton "JE RÉSERVE" */
.gresa-calendar .gresa-btn,
.gresa-calendar .gresa-btn-ghost {
    background-color: #ffffff !important;
    color: #8b405e !important;
    border: 1px solid #8b405e !important;
}

.gresa-calendar .gresa-btn:hover,
.gresa-calendar .gresa-btn-ghost:hover {
    background-color: #8b405e !important;
    color: #ffffff !important;
}

/* Couleur des chiffres du calendrier en gris sombre */
.gresa-cal-day {
    color: #333333 !important;
}

.gresa-cal-day.is-passe {
    color: #333333 !important;
}

/* On garde le blanc pour les chiffres sur fond coloré (vert/rouge) */
.gresa-cal-day.is-libre,
.gresa-cal-day.is-complet,
.gresa-cal-day.is-ferme {
    color: #ffffff !important;
}

/* Jours "Fermé"  */
.gresa-cal-day.is-ferme {
    background-color: #999999 !important;
    color: #ffffff !important;
    border-radius: 3px !important;
}

/* Correctif : garder le calendrier  */
/*.gresa-calendar,
.gresa-cal-month {
    max-width: 320px !important;
    width: 320px !important;
    margin: 0 !important;
}*/

.gresa-cal-day,
.gresa-cal-empty {
    height: 32px !important;
    line-height: 32px !important;
    width: auto !important;
    font-size: 13px !important;
    white-space: nowrap !important;
}

.gresa-cal-table th {
    font-size: 11px !important;
    padding-bottom: 4px !important;
    white-space: nowrap !important;
}

.gresa-cal-title {
    font-size: 14px !important;
}

.gresa-cal-nav {
    min-width: 32px !important;
    padding: 0 10px !important;
}

.gresa-calendar-chaBro {
    position: relative;
    left: 320px; 

}

/* Le conteneur des âges reste à côté de Enfant(s)*/
#gresa-ages-enfants-container {
    margin-top: 0 !important;
    flex: 1 1 auto !important;
}

.gresa-ages-title {
    display: block !important;
    font-weight: 700 !important;
    font-size: 14px !important;
    color: var(--gresa-text, #6e6e6e) !important;
    margin-bottom: 8px !important;
}

.gresa-ages-title small {
    font-weight: 400 !important;
    color: #999 !important;
}

.gresa-ages-grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 10px 16px !important;
    max-width: 320px;
}

.gresa-ages-grid .gresa-field.gresa-age-field {
    margin-bottom: 0 !important;
}

.gresa-ages-grid select {
    width: 100% !important;
    padding: 8px 10px !important;
    font-size: 14px !important;
    border: 1px solid var(--gresa-border, #e4e4e4) !important;
    border-radius: 5px !important;
    color: var(--gresa-text, #6e6e6e) !important;
    background-color: #fff !important;
}


/* Ligne fine collée directement sous le texte du titre */
.gresa-block > legend {
    display: block !important;
    width: 100% !important;
    border-bottom: 2px solid #722d46 !important;
    padding-bottom: 4px !important;
    margin-bottom: 16px !important;
}

.gresa-block {
    border-top: none !important;
}

/* resp */
@media (max-width: 768px) {
    .gresa-steps {
        flex-direction: column;
    }
}


/* ===== Barre de recherche horizontale/page acceuil*/
.gresa-barre-seule {
    max-width: 100%;
}

.gresa-search-barre-horizontale {
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
  background: #ffffff !important;
  border: 1px solid #e4d4da !important;
  border-radius: 6px !important;
  padding: 14px 18px !important;
  box-shadow: 0 2px 8px rgba(0,0,0,.05) !important;
  justify-content: space-evenly;
}

/* Label "Je réserve" */
.gresa-barre-label {
    font-weight: 700 !important;
    text-transform: uppercase !important;
    color: var(--gresa-primary, #8b405e) !important;
    font-size: 20px !important;
    letter-spacing: .03em !important;
    white-space: nowrap !important;
    margin-right: 4px !important;
}

/* Tous les champs de la barre : même style, alignés en ligne */
.gresa-barre-field {
    display: flex !important;
    align-items: center !important;
    position: relative !important;
    flex: 0 1 auto !important;
}

.gresa-barre-field select,
.gresa-barre-field input[type="text"] {
    border: 1px solid #e4e4e4 !important;
    border-radius: 4px !important;
    padding: 9px 12px !important;
    font-size: 14px !important;
    color: var(--gresa-text, #6e6e6e) !important;
    background: #fff !important;
    min-width: 130px !important;
}

/* Champs dates : espace pour l'icône calendrier */
.gresa-field-date {
    position: relative !important;
}
.gresa-field-date input {
    padding-right: 34px !important;
}
.gresa-field-date .gresa-input-icon {
    position: absolute !important;
    right: 10px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    pointer-events: none !important;
    font-size: 14px !important;
}

/* Adultes / Enfants avec préfixe texte à l'intérieur du champ */
.gresa-field-combined {
    border: 1px solid #e4e4e4 !important;
    border-radius: 4px !important;
    overflow: hidden !important;
    background: #fff !important;
}
.gresa-field-combined .gresa-prefix-text {
    background: #eee;
    padding: 9px 8px 9px 12px !important;
    font-size: 13px !important;
    color: var(--gresa-text, #6e6e6e) !important;
    white-space: nowrap !important;
}
.gresa-field-combined select {
    border: none !important;
    padding: 9px 10px 9px 4px !important;
    min-width: 55px !important;
}

/* Bouton OK */
.gresa-search-barre-horizontale button[type="submit"] {
    background: var(--gresa-primary, #8b405e) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 4px !important;
    padding: 10px 22px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    font-size: 13px !important;
    cursor: pointer !important;
    letter-spacing: .03em !important;
    
}
.gresa-search-barre-horizontale button[type="submit"]:hover {
    background: var(--gresa-primary-dark, #6c213f) !important;
}

/* Le conteneur select de catégorie */
.gresa-field-select select {
    min-width: 150px !important;
}

/* Responsive : repasse en colonne sur mobile */
@media (max-width: 700px) {
    .gresa-search-barre-horizontale {
        flex-direction: column !important;
        align-items: stretch !important;
    }
    .gresa-search-barre-horizontale button[type="submit"] {
    background: var(--gresa-primary, #8b405e) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 4px !important;
    padding: 10px 22px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    font-size: 13px !important;
    cursor: pointer !important;
    letter-spacing: .03em !important;
    margin-left: 0 !important; /* était: auto */
}
}


/* Le champ date doit être le point de référence pour le calendrier flottant */
.gresa-field-date {
    position: relative !important;
}

/* Le calendrier flotte par-dessus, ne pousse plus les autres champs */
.gresa-field-date .gresa-dp {
    position: absolute !important;
    top: calc(100% + 8px) !important;
    left: 0 !important;
    z-index: 100 !important;
    margin-top: 0 !important;
    /* width: 300px !important; */
}

.gresa-dp-inner {
    background: #ffffff !important;
    border: 1px solid #e4e4e4 !important;
    border-radius: 6px !important;
    box-shadow: 0 8px 26px rgba(0,0,0,.15) !important;
    padding: 12px !important;
}

.gresa-dp-table td button {

    height: 30px !important;
}




/* modificarion par arimalala le 24 juillet 2026 */








/* "JE RÉSERVE" en gras/majuscule, sur la même ligne que les radios,
   sans la ligne de séparation */
.gresa-cat {
    border-top: none !important;
    padding-top: 0 !important;
    margin-bottom: 30px !important;
    overflow: hidden !important; /* pour contenir le float */
}

.gresa-cat > legend {
    float: left !important;
    font-family: var(--gresa-font-body) !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    font-size: 14px !important;
    color: #3f3f3f !important;
    border-bottom: none !important;
    padding: 0 !important;
    margin: 6px 20px 0 0 !important;
    width: auto !important;
}

.gresa-cat .gresa-radios {
    float: left !important;
    display: flex !important;
    align-items: center !important;
    gap: 18px !important;
    margin: 0 !important;
}
.gresa-radios .gresa-radio:nth-child(1) {
    order: 2 !important;
}

.gresa-radios .gresa-radio:nth-child(2) {
    order: 1 !important;
}

/* Bouton "RECHERCHER"  */
#gresa-search-btn {
    text-transform: capitalize !important;
}


.gresa-step-1 .gresa-field:has(#gresa-start),
.gresa-step-1 .gresa-field:has(#gresa-end) {
    position: relative !important;
}

.gresa-step-1 .gresa-field:has(#gresa-start)::after,
.gresa-step-1 .gresa-field:has(#gresa-end)::after {
    content: "\1F4C5"; /* emoji calendrier */
    position: absolute;
    right: 12px;
    bottom: 12px;
    font-size: 14px;
    pointer-events: none;
}

.gresa-step-1 #gresa-start,
.gresa-step-1 #gresa-end {
    padding-right: 34px !important;
}


#gresa-tunnel .gresa-step-1 fieldset.gresa-cat {
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 20px !important;
    border-top: none !important;
    padding-top: 0 !important;
    margin-bottom: 30px !important;
}

#gresa-tunnel .gresa-step-1 fieldset.gresa-cat > legend {
    display: inline-block !important;
    font-family: var(--gresa-font-body) !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    font-size: 20px !important;
    color: #3f3f3f !important;
    border-bottom: none !important;
    padding: 0 !important;
    margin: 0 !important;
    width: auto !important;
}

#gresa-tunnel .gresa-step-1 fieldset.gresa-cat .gresa-radios {
    display: flex !important;
    margin: 0 !important;
    gap: 18px !important;
}

/* ===================================================
   Adulte(s) / Enfant(s) — version stable et alignée
   (remplace les deux anciennes versions précédentes)
   =================================================== */

.gresa-fields .gresa-field:has(#gresa-adultes),
.gresa-fields .gresa-field:has(#gresa-enfants) {
    position: relative !important;
    height: 68px !important;
    padding-top: 26px !important;
    background: transparent !important;
    border: none !important;
}

.gresa-fields .gresa-field:has(#gresa-adultes) label,
.gresa-fields .gresa-field:has(#gresa-enfants) label {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    color: #3f3f3f !important;
    margin: 0 !important;
}

.gresa-fields .gresa-field:has(#gresa-adultes)::before,
.gresa-fields .gresa-field:has(#gresa-enfants)::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 42px;
    background: #f4f4f4;
    border: 1px solid var(--gresa-border, #e4e4e4);
    border-radius: 4px;
    z-index: 0;
}

.gresa-fields .gresa-field:has(#gresa-adultes)::after {
    content: "Nombre d'adultes";
    position: absolute;
    left: 12px;
    bottom: 13px;
    font-size: 14px;
    color: #888;
    pointer-events: none;
    z-index: 1;
}

.gresa-fields .gresa-field:has(#gresa-enfants)::after {
    content: "Nombre d'enfants";
    position: absolute;
    left: 12px;
    bottom: 13px;
    font-size: 14px;
    color: #888;
    pointer-events: none;
    z-index: 1;
}

.gresa-fields .gresa-field:has(#gresa-adultes) select,
.gresa-fields .gresa-field:has(#gresa-enfants) select {
    position: absolute !important;
    right: 6px !important;
    bottom: 0 !important;
    width: 60px !important;
    height: 42px !important;
    margin: 0 !important;
    background: transparent !important;
    border: none !important;
    padding: 10px 6px 10px 0 !important;
    color: var(--gresa-text, #6e6e6e) !important;
    text-align: right !important;
    z-index: 2;
}




.gresa-nights-badge {
    display: none;
    align-items: center;
    justify-content: center;
    gap: 6px;
    background: var(--gresa-primary, #8b405e);
    color: #fff;
    font-weight: 600;
    font-size: 13px;
    padding: 10px 16px;
    border-radius: 20px;
    white-space: nowrap;
    align-self: flex-end;
    margin-bottom: 1px;
}

.gresa-nights-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    color: var(--gresa-primary, #8b405e);
    width: 20px;
    height: 20px;
    border-radius: 50%;
    font-size: 12px;
    font-weight: 700;
}


.gresa-results {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 22px;
}

@media (max-width: 780px) {
    .gresa-results {
        grid-template-columns: 1fr !important;
    }
}


/* modification le 03 auôt 2026 par arimalala */
/* manao resp anle calendrier */

@media (max-width: 767px) {
    /* Le calendrier prend toute la largeur de l'écran (avec un peu de marge) */
    .gresa-dp {
        position: absolute !important;
        left: 15px !important;
        right: 15px !important;
        top: 50% !important;
        width: auto !important;
        max-width: none !important;
        z-index: 9999 !important;
    }

    .gresa-dp-inner {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    .gresa-dp-table {
        width: 100% !important;
        table-layout: fixed !important;
    }

    .gresa-dp-table th,
    .gresa-dp-table td {
        width: 14.28% !important;
        text-align: center !important;
        padding: 2px !important;
    }

    .gresa-dp-table td button {
        width: 100% !important;
        height: 38px !important;
        font-size: 13px !important;
    }
}

@media (max-width: 767px) {
    /* Neutralise le décalage de 320px qui pousse le calendrier hors écran mobile */
    .gresa-calendar-chaBro {
        position: static !important;
        left: 0 !important;
    }

    /* Le calendrier de disponibilités passe en 1 seule colonne sur mobile */
    .gresa-cal-grid {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
    }

    .gresa-cal-month {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 auto !important;
    }

    .gresa-calendar {
        max-width: 100% !important;
        width: 100% !important;
        padding: 0 10px !important;
        box-sizing: border-box !important;
    }

    .gresa-calendar,
    .gresa-cal-month {
        overflow-x: hidden !important;
    }

    /* border-spacing pousse hors du cadre en table-layout:fixed —
       on le supprime et on simule l'espacement avec du padding sur les cellules */
    .gresa-cal-table {
        border-spacing: 0 !important;
        border-collapse: collapse !important;
        width: 100% !important;
        table-layout: fixed !important;
    }

    .gresa-cal-table th,
    .gresa-cal-table td {
        width: 14.28% !important;
        padding: 2px !important;
        box-sizing: border-box !important;
    }

    .gresa-cal-day,
    .gresa-cal-empty {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
}


/* modification le 11 août par Ary */

@media (max-width: 767px) {

    /* Le conteneur principal reste bien padded*/
    .gresa-search-barre-horizontale {
        padding: 16px !important;
        gap: 12px !important;
    }

    /* TOUS les champs  prennent
       toute la largeur disponible */
    .gresa-search-barre-horizontale .gresa-barre-field,
    .gresa-search-barre-horizontale .gresa-field-date,
    .gresa-search-barre-horizontale .gresa-field-combined,
    .gresa-search-barre-horizontale .gresa-field-select {
        width: 100% !important;
        margin: 0 !important;
        box-sizing: border-box !important;
    }

    /*Champ catégorie  */
    .gresa-field-select select {
        width: 100% !important;
        min-width: 0 !important;
        height: 44px !important;
        box-sizing: border-box !important;
    }

    /*Champs date  */
    .gresa-field-date {
        position: relative !important;
    }
    .gresa-field-date input[type="text"] {
        width: 100% !important;
        height: 44px !important;
        min-width: 0 !important;
        padding-right: 40px !important;
        box-sizing: border-box !important;
    }
    .gresa-field-date .gresa-input-icon {
        position: absolute !important;
        right: 12px !important;
        top: 50% !important;
        transform: translateY(-50%) !important;
        pointer-events: none !important;
        background: transparent !important;
        border: none !important;
        margin: 0 !important;
        padding: 0 !important;
        font-size: 16px !important;
        z-index: 2 !important;
    }

    /*Champs Adultes / Enfants  */
    .gresa-field-combined {
        width: 100% !important;
        height: 44px !important;
        display: flex !important;
        box-sizing: border-box !important;
    }
    .gresa-field-combined .gresa-prefix-text {
        display: flex !important;
        align-items: center !important;
        flex: 0 0 auto !important;
    }
    .gresa-field-combined select {
        flex: 1 1 auto !important;
        width: 100% !important;
        min-width: 0 !important;
        text-align: left !important;
    }

    /* Bouton OK pleine */
    .gresa-search-barre-horizontale button[type="submit"] {
        width: 100% !important;
        height: 44px !important;
        box-sizing: border-box !important;
    }
}
