/* Les Colos du Bonheur – habillage du nouveau site : en-tête, menu, pied de page. */

/* L'habillage d'origine du thème est masqué sur les pages concernées, et la page passe en pleine largeur. */
body.lcdb-habillage #top-header,
body.lcdb-habillage #main-header,
body.lcdb-habillage #main-footer { display: none !important; }
body.lcdb-habillage #page-container { padding-top: 0 !important; margin-top: 0 !important; width: 100% !important; max-width: 100% !important; box-shadow: none !important; }

/* Fiches séjour (gabarit « article » du thème) : pas de bande blanche entre la dernière section et le pied de page. */
body.lcdb-nouvelle.single .et_pb_post { margin-bottom: 0 !important; padding-bottom: 0 !important; }
body.lcdb-nouvelle.single .et_post_meta_wrapper { display: none; }

.lcdb-barre, .lcdb-header, .lcdb-pied-site { font-family: 'Nunito', Arial, sans-serif; font-size: 16px; line-height: 1.5; box-sizing: border-box; }
.lcdb-barre *, .lcdb-header *, .lcdb-pied-site * { box-sizing: border-box; }
.lcdb-conteneur { width: 90%; max-width: 1160px; margin: 0 auto; }

/* Bandeau du haut */
.lcdb-barre { background: #007171; color: #fff; font-size: 14px; font-weight: 600; }
.lcdb-barre .lcdb-conteneur { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding: 8px 0; }
body.lcdb-habillage .lcdb-barre a { color: #fff; text-decoration: none; }
.lcdb-barre a:hover { text-decoration: underline; }

/* En-tête et menu */
.lcdb-header { background: #fff; position: sticky; top: 0; z-index: 9990; box-shadow: 0 2px 10px rgba(0, 0, 0, .06); }
body.admin-bar .lcdb-header { top: 32px; }
.lcdb-header .lcdb-conteneur { display: flex; align-items: center; gap: 28px; padding: 10px 0; position: relative; }
.lcdb-logo img { display: block; height: 62px; width: auto; }
.lcdb-nav { display: flex; align-items: center; gap: 24px; flex: 1; }
.lcdb-menu { display: flex; gap: 26px; flex: 1; list-style: none; margin: 0; padding: 0; }
.lcdb-menu li { position: relative; list-style: none; margin: 0; padding: 0; }
body.lcdb-habillage .lcdb-menu a { display: block; padding: 10px 0; color: #2b2b2b; font-weight: 700; text-decoration: none; }
body.lcdb-habillage .lcdb-menu a:hover, body.lcdb-habillage .lcdb-menu .current-menu-item > a, body.lcdb-habillage .lcdb-menu .current-menu-ancestor > a { color: #007171; }
.lcdb-menu .menu-item-has-children > a::after { content: "\25BE"; margin-left: 6px; font-size: 12px; }
.lcdb-menu .sub-menu { display: none; position: absolute; left: -16px; top: 100%; min-width: 260px; background: #fff; border-radius: 14px; box-shadow: 0 12px 30px rgba(0, 79, 79, .16); padding: 10px 16px; margin: 0; list-style: none; z-index: 5; }
.lcdb-menu li:hover > .sub-menu, .lcdb-menu li:focus-within > .sub-menu { display: block; }
body.lcdb-habillage .lcdb-menu .sub-menu a { padding: 8px 0; font-weight: 600; }
body.lcdb-habillage .lcdb-header a.lcdb-compte { background: #007171; color: #fff; padding: 10px 20px; border-radius: 999px; font-weight: 800; text-decoration: none; white-space: nowrap; }
body.lcdb-habillage .lcdb-header a.lcdb-compte:hover { background: #004f4f; }
.lcdb-burger { display: none; margin-left: auto; width: 46px; height: 46px; border: 0; background: #fff3dc; border-radius: 12px; cursor: pointer; padding: 12px 11px; }
.lcdb-burger span { display: block; height: 3px; background: #004f4f; border-radius: 2px; margin-bottom: 5px; }
.lcdb-burger span:last-child { margin-bottom: 0; }

/* Pied de page */
.lcdb-pied-site { background: #004f4f; color: #d7efef; padding: 56px 0 24px; font-size: 15px; }
body.lcdb-habillage .lcdb-pied-site a { color: #d7efef; text-decoration: none; }
body.lcdb-habillage .lcdb-pied-site a:hover { color: #fff; text-decoration: underline; }
.lcdb-pied-colonnes { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: 36px; }
.lcdb-pied-site h2 { font-family: 'Acme', sans-serif; font-weight: 400; font-size: 19px; line-height: 1.2; color: #ff9f00; margin: 0 0 12px; padding: 0; text-transform: none; }
.lcdb-pied-site ul { list-style: none; margin: 0; padding: 0; }
.lcdb-pied-site li { margin: 0 0 6px; padding: 0; list-style: none; }
.lcdb-pied-logo { display: block; width: 130px; height: auto; margin-bottom: 14px; }
.lcdb-pied-site p { margin: 0 0 10px; padding: 0; color: #d7efef; }
.lcdb-pied-labels { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin-top: 30px; }
.lcdb-pied-labels img { height: 64px; width: auto; background: #fff; border-radius: 10px; padding: 5px; display: block; }
.lcdb-pied-legal { margin-top: 26px; padding-top: 16px; border-top: 1px solid rgba(255, 255, 255, .18); font-size: 13px; display: flex; justify-content: space-between; gap: 14px; flex-wrap: wrap; }

@media (max-width: 980px) {
	.lcdb-barre-droite { display: none; }
	.lcdb-burger { display: block; }
	.lcdb-nav { display: none; position: absolute; left: -5.5%; right: -5.5%; top: 100%; background: #fff; flex-direction: column; align-items: stretch; gap: 0; padding: 10px 6% 20px; box-shadow: 0 14px 24px rgba(0, 0, 0, .12); max-height: calc(100vh - 130px); overflow-y: auto; }
	.lcdb-header.lcdb-ouvert .lcdb-nav { display: flex; }
	.lcdb-menu { flex-direction: column; gap: 0; }
	.lcdb-menu > li { border-bottom: 1px solid #eee; }
	.lcdb-menu .sub-menu { display: block; position: static; box-shadow: none; padding: 0 0 8px 14px; min-width: 0; }
	body.lcdb-habillage .lcdb-header a.lcdb-compte { margin-top: 14px; text-align: center; }
	.lcdb-pied-colonnes { grid-template-columns: 1fr 1fr; }
	body.admin-bar .lcdb-header { top: 46px; }
}

@media (max-width: 600px) {
	body.admin-bar .lcdb-header { top: 0; }
}

@media (max-width: 560px) {
	.lcdb-pied-colonnes { grid-template-columns: 1fr; }
}

/* Liens de texte des pages du nouveau site : la couleur du theme (orange) est remplacee par le vert de la charte. */
body.lcdb-habillage .lcdb a:not(.lcdb-btn):not(.lcdb-aide) { color: #007171; font-weight: 700; }
body.lcdb-habillage .lcdb a:not(.lcdb-btn):not(.lcdb-aide):hover { text-decoration: underline; }

/* Tableau des tarifs par ville de depart (code court lcdb_tarifs). */
.lcdb-tarifs { margin: 6px 0 0; }
.lcdb-tarifs-defile { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid #eadfc8; border-radius: 16px; background: #fff; }
.lcdb .lcdb-tarifs table.lcdb-tarifs-table { width: 100%; border-collapse: collapse; border: 0; margin: 0; font-size: 16px; line-height: 1.3; }
.lcdb .lcdb-tarifs-table th, .lcdb .lcdb-tarifs-table td { padding: 12px 8px; border: 0; border-bottom: 1px solid #f1eadb; text-align: center; white-space: nowrap; max-width: none; }
.lcdb .lcdb-tarifs-table thead th { background: #fff3dc; color: #004f4f; font-weight: 800; vertical-align: bottom; }
.lcdb .lcdb-tarifs-table th small { display: block; font-size: 13px; font-weight: 600; color: #5c5c5c; }
.lcdb .lcdb-tarifs-table tbody th { background: #fff; color: #2b2b2b; font-weight: 700; }
.lcdb .lcdb-tarifs-table th:first-child { text-align: left; padding-left: 14px; position: sticky; left: 0; z-index: 1; }
.lcdb .lcdb-tarifs-table tbody tr:last-child th, .lcdb .lcdb-tarifs-table tbody tr:last-child td { border-bottom: 0; }
body .lcdb .lcdb-tarifs-table td a:not(.lcdb-btn):not(.lcdb-aide) { display: inline-block; padding: 6px 12px; border-radius: 999px; background: #e3f1f1; color: #004f4f; font-weight: 800; text-decoration: none; }
body .lcdb .lcdb-tarifs-table td a:not(.lcdb-btn):not(.lcdb-aide):hover, body .lcdb .lcdb-tarifs-table td a:not(.lcdb-btn):not(.lcdb-aide):focus { background: #007171; color: #fff; text-decoration: none; }
.lcdb .lcdb-tarifs-table td.lcdb-vide { color: #b8ae99; }
.lcdb .lcdb-tarifs p.lcdb-tarifs-note { margin-top: 10px; padding-bottom: 0; }
.lcdb p.lcdb-tarifs-attente { background: #fff3dc; border-radius: 14px; padding: 14px 18px; font-weight: 700; color: #004f4f; }

/* Etapes de la reservation (code court lcdb_etapes). */
.lcdb .lcdb-resa-etapes { margin-top: 28px; background: #fffaf1; border-radius: 16px; padding: 22px 24px 18px; }
.lcdb .lcdb-resa-etapes h3 { font-size: 24px; margin: 0 0 16px; padding: 0; }
.lcdb .lcdb-resa-etapes ol { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 16px 28px; counter-reset: lcdb-resa-etape; }
.lcdb .lcdb-resa-etapes ol li { position: relative; list-style: none; margin: 0; padding: 0 0 0 46px; min-height: 34px; counter-increment: lcdb-resa-etape; font-size: 16px; line-height: 1.4; }
.lcdb .lcdb-resa-etapes ol li::before { content: counter(lcdb-resa-etape); position: absolute; left: 0; top: 0; width: 34px; height: 34px; border-radius: 50%; background: #007171; color: #fff; font-weight: 800; text-align: center; line-height: 34px; }
.lcdb .lcdb-resa-etapes ol li strong { display: block; color: #004f4f; font-weight: 800; }
.lcdb .lcdb-resa-etapes ol li span { color: #5c5c5c; font-size: 15px; }
.lcdb .lcdb-resa-etapes p.lcdb-resa-note { margin: 16px 0 0; padding: 0; }
@media (max-width: 600px) {
	.lcdb .lcdb-resa-etapes { padding: 18px 16px 14px; }
	.lcdb .lcdb-resa-etapes ol { grid-template-columns: 1fr; }
}

/* Boutons : la couleur du texte ne doit pas etre remplacee par celle des liens. */
body.lcdb-habillage .lcdb a.lcdb-btn.lcdb-plein { color: #004f4f; }
body.lcdb-habillage .lcdb a.lcdb-btn.lcdb-sarcelle { color: #fff; }

/* Champ piege des formulaires de contact : invisible pour les personnes, rempli par les robots. */
.lcdb-piege { position: absolute !important; left: -9999px !important; top: auto !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }

/* Liste des sejours et des dates posee au-dessus du champ libre d'un formulaire ([lcdb_choix_sejour]). */
.lcdb .et_pb_contact select.lcdb-choix { display: block; margin: 0; cursor: pointer; }
.lcdb .et_pb_contact select.lcdb-choix.et_contact_error { border-color: #c0392b; }
.lcdb .et_pb_contact p input.lcdb-choix-libre { margin-top: 10px; }
.lcdb .et_pb_contact p input.lcdb-choix-libre::placeholder { color: #7a7468; }

/* Enfants participants : une ligne par enfant ([lcdb_participants]). */
.lcdb .lcdb-enfant { display: grid; grid-template-columns: 1fr 1fr 1fr auto; gap: 10px; align-items: end; margin-bottom: 10px; }
.lcdb .lcdb-enfant label { display: block; margin: 0; min-width: 0; }
.lcdb .lcdb-enfant label span { display: block; margin-bottom: 4px; font-size: 13px; font-weight: 700; color: #5c5c5c; }
.lcdb .et_pb_contact p .lcdb-enfant input { width: 100%; min-width: 0; padding: 12px; box-sizing: border-box; }
.lcdb .lcdb-enfant-retirer { width: 42px; height: 46px; border: 1px solid #d8cfbd; border-radius: 10px; background: #fff; color: #7a7468; font-size: 22px; line-height: 1; cursor: pointer; }
.lcdb .lcdb-enfant-retirer:hover { border-color: #c0392b; color: #c0392b; }
.lcdb .lcdb-enfant-retirer[hidden], .lcdb .lcdb-enfant-ajouter[hidden], .lcdb .lcdb-enfants-aide[hidden], .lcdb-choix-sejour[hidden], .lcdb-participants[hidden] { display: none !important; }
.lcdb .lcdb-enfant-ajouter { border: 0; background: none; padding: 4px 0; color: #007171; font-family: inherit; font-size: 15px; font-weight: 800; cursor: pointer; }
.lcdb .lcdb-enfant-ajouter:hover { text-decoration: underline; }
.lcdb .et_pb_contact p.lcdb-enfants-aide, .lcdb p.lcdb-enfants-aide { padding: 0 0 6px; font-size: 14px; color: #c0392b; }
.lcdb .et_pb_contact p .lcdb-enfants.lcdb-erreur input { border-color: #c0392b; }
.lcdb .et_pb_contact p.lcdb-enfants-age, .lcdb p.lcdb-enfants-age { padding: 0 0 6px; font-size: 14px; font-weight: 700; color: #7a4a00; }
.lcdb .lcdb-enfants-age[hidden] { display: none !important; }
.lcdb .et_pb_contact p .lcdb-enfant input { height: 46px; }
.lcdb .et_pb_contact select.lcdb-choix { height: 52px; padding: 0 16px; }
/* Sur grand ecran, les libelles ne s'affichent que sur la premiere ligne (ils restent lus par les lecteurs d'ecran). */
@media (min-width: 601px) {
	.lcdb .lcdb-enfant:not(:first-child) label span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}
@media (max-width: 600px) {
	.lcdb .lcdb-enfant { grid-template-columns: 1fr 1fr; }
	.lcdb .lcdb-enfant-retirer { justify-self: start; }
}

/* Encadre de reservation : le bouton mene au tableau des tarifs ; une fois le tableau a l'ecran
   (classe lcdb-sur-tarifs posee sur body par le script), l'aide a l'inscription le remplace. */
.lcdb .lcdb-tarifs { scroll-margin-top: 190px; }
.lcdb .lcdb-assistant { display: none; }
body.lcdb-sur-tarifs .lcdb .lcdb-assistant { display: block; }
body.lcdb-sur-tarifs .lcdb a.lcdb-vers-tarifs, body.lcdb-sur-tarifs .lcdb p.lcdb-vers-note { display: none; }
.lcdb .lcdb-assistant p.lcdb-assistant-titre { margin: 0 0 10px; padding: 0; font-weight: 800; color: #004f4f; }
.lcdb .lcdb-assistant label { display: block; margin: 0 0 10px; font-size: 14px; font-weight: 700; color: #2b2b2b; }
.lcdb .lcdb-assistant select { display: block; width: 100%; margin: 4px 0 0; padding: 10px 12px; border: 1px solid #d8cfbd; border-radius: 10px; background-color: #fff; font-family: inherit; font-size: 16px; font-weight: 600; color: #2b2b2b; }
.lcdb .lcdb-assistant select:disabled { background-color: #f6f2e9; color: #8a8372; }
.lcdb .lcdb-assistant select:focus { outline: 0; border-color: #007171; box-shadow: 0 0 0 3px rgba(0, 113, 113, .15); }
.lcdb .lcdb-assistant a.lcdb-as-go { display: block; margin-top: 6px; text-align: center; }
body .lcdb .lcdb-assistant a.lcdb-as-go[aria-disabled="true"] { background: #f0e9da !important; color: #8a8372 !important; box-shadow: none; cursor: default; pointer-events: none; }
.lcdb .lcdb-assistant p.lcdb-as-prix { min-height: 1.4em; margin: 10px 0 0; padding: 0; text-align: center; font-weight: 800; color: #004f4f; }
.lcdb .lcdb-tarifs-table tbody tr.lcdb-choisi th, .lcdb .lcdb-tarifs-table tbody tr.lcdb-choisi td { background: #fff3dc; }
.lcdb-mobile-cta .lcdb-cta-aide { display: none; }
body.lcdb-sur-tarifs .lcdb-mobile-cta .lcdb-cta-aide { display: inline; }
body.lcdb-sur-tarifs .lcdb-mobile-cta .lcdb-cta-prix, body.lcdb-sur-tarifs .lcdb-mobile-cta a.lcdb-btn { display: none; }
