/* sections accueil */

/* titres serif */
.cv-home .main h2,
.cv-home .main h3{
    font-family:'Playfair Display', Georgia, 'Times New Roman', serif;
    color:#2e353e;
    font-weight:700;
    letter-spacing:0;
}

/* texte courant */
.cv-home .main p{
    color:#57616b;
    line-height:1.75;
}
.cv-home .main strong{ color:#2e353e; }

/* boutons primaires */
.cv-home .main .btn-primary{
    border-radius:50px;
    box-shadow:0 4px 12px rgba(117, 110, 98,.18);
    transition:transform .2s ease, box-shadow .2s ease;
}
.cv-home .main .btn-primary:hover{
    transform:translateY(-2px);
    box-shadow:0 8px 20px rgba(117, 110, 98,.28);
}

/* dividers */
.cv-home .main .divider-primary i,
.cv-home .main .divider-primary .fa{ color:#756e62; }

/* logos partenaires */
.cv-home .owl-carousel img{
    filter:grayscale(100%);
    opacity:.6;
    transition:filter .3s ease, opacity .3s ease, transform .3s ease;
}
.cv-home .owl-carousel img:hover{
    filter:grayscale(0);
    opacity:1;
    transform:scale(1.06);
}

/* videos youtube */
.cv-home .main iframe[src*="youtube"]{
    border-radius:12px;
    box-shadow:0 10px 30px rgba(0,0,0,.12);
    margin:8px 0;
}

/* bande devis */
.cv-home .call-to-action.call-to-action-in-footer{
    background:
        linear-gradient(135deg, rgba(40,70,33,.80) 0%, rgba(18,38,16,.88) 100%),
        url('../img/slides/village-vacances-les-chenes-verts-charente-maritime.jpg') center/cover no-repeat !important;
    border:none !important;
    border-radius:18px;
    margin:30px 15px 60px;
    padding:52px 45px;
    box-shadow:0 18px 44px rgba(0,0,0,.25);
}
.cv-home .call-to-action.call-to-action-in-footer h2{
    color:#fff !important;
    font-family:'Playfair Display', Georgia, serif;
    font-size:32px;
}
.cv-home .call-to-action.call-to-action-in-footer p,
.cv-home .call-to-action.call-to-action-in-footer .lead,
.cv-home .call-to-action.call-to-action-in-footer .couleur-bleu,
.cv-home .call-to-action.call-to-action-in-footer i,
.cv-home .call-to-action.call-to-action-in-footer strong{ color:#fff !important; }
.cv-home .call-to-action.call-to-action-in-footer .btn-primary{
    background:#5b8c3e !important;
    color:#fff !important;
    border:none !important;
    border-radius:50px;
    font-weight:700;
    padding:14px 34px;
    box-shadow:0 8px 20px rgba(0,0,0,.25);
}
.cv-home .call-to-action.call-to-action-in-footer .btn-primary:hover{
    background:#41672c !important;
    color:#fff !important;
    transform:translateY(-2px);
}

/* nos partenaires */
.cv-home .main .owl-carousel{ padding:10px 0; }

/* widget elloha */
.cv-home #ConstellationWidgetContainer27db9e4b-7626-41eb-945d-7b4bdfb18d12{
    background:#fff;
    border-radius:16px;
    box-shadow:0 10px 30px rgba(0,0,0,.08);
    padding:18px;
}

/* accueil : ambiance */

/* fond crème */
.cv-home .main{ background:#f7f4ef; }

/* bande de chiffres clés */
.cv-stats{
    background:linear-gradient(135deg,#5b8c3e 0%,#3f6a2a 100%);
    padding:44px 0;
    box-shadow:inset 0 8px 20px rgba(0,0,0,.08);
}
.cv-stats-grid{
    display:flex;
    flex-wrap:wrap;
    justify-content:space-around;
    align-items:flex-start;
    text-align:center;
    color:#fff;
    gap:24px;
}
.cv-stat{ flex:1 1 180px; }
.cv-stat i{
    display:block;
    font-size:30px;
    color:#ffe082;
    margin-bottom:12px;
}
.cv-stat-num{
    display:block;
    font-family:'Playfair Display', Georgia, serif;
    font-size:42px;
    font-weight:800;
    line-height:1;
}
.cv-stat-label{
    display:block;
    margin-top:8px;
    font-size:13px;
    text-transform:uppercase;
    letter-spacing:.1em;
    opacity:.92;
}

/* cartes : hover */
.cv-home .card{ transition:transform .28s ease, box-shadow .28s ease; }
.cv-home .card:hover{ transform:translateY(-8px); box-shadow:0 22px 46px rgba(0,0,0,.18); }
.cv-home .card .card-img-top{ transition:transform .6s ease; }
.cv-home .card:hover .card-img-top{ transform:scale(1.08); }

/* meteo sidebar */
.cv-weather{
    margin-top:24px;
    background:#fff;
    border:1px solid #ececec;
    border-radius:14px;
    padding:18px 16px;
    text-align:center;
    box-shadow:0 6px 18px rgba(0,0,0,.06);
}
.cv-weather h4{
    font-size:16px;
    margin:0 0 12px;
    color:#2e353e;
}
.cv-weather h4 i{ color:#f0a30a; margin-right:7px; }
.cv-weather a{ display:inline-block; text-decoration:none; }
.cv-weather img{
    display:inline-block;
    max-width:100%;
    height:auto;
    border-radius:10px;
}

/* carrousel cottage */
.cv-gallery .owl-stage-outer{ border-radius:14px; overflow:hidden; }
.cv-gallery img{
    width:100%;
    height:460px;
    object-fit:cover;
    border-radius:14px;
}
.cv-gallery .owl-dots{ margin-top:14px; text-align:center; }
.cv-gallery .owl-dots .owl-dot span{
    width:11px; height:11px; margin:4px; background:#cfd6cb; border-radius:50%; display:inline-block; transition:background .2s ease;
}
.cv-gallery .owl-dots .owl-dot.active span{ background:#5b8c3e; }
.cv-gallery .owl-nav .owl-prev,
.cv-gallery .owl-nav .owl-next{
    position:absolute; top:50%; transform:translateY(-50%);
    width:44px; height:44px; line-height:44px; text-align:center;
    background:rgba(0,0,0,.45); color:#fff !important; border-radius:50%;
    font-size:22px; transition:background .2s ease;
}
.cv-gallery .owl-nav .owl-prev{ left:14px; }
.cv-gallery .owl-nav .owl-next{ right:14px; }
.cv-gallery .owl-nav .owl-prev:hover,
.cv-gallery .owl-nav .owl-next:hover{ background:#756e62; }
@media (max-width:767px){
    .cv-gallery img{ height:240px; }
}

/* titres section */
.cv-home .main section h3.text-uppercase:after{
    content:"";
    display:block;
    width:60px;
    height:3px;
    margin:14px auto 0;
    border-radius:3px;
    background:#5b8c3e;
}


/* page village vacances */
.cv-equip{ list-style:none; padding:0; margin:0 0 10px; display:flex; flex-wrap:wrap; gap:10px; }
.cv-equip li{ background:#f4f1ea; border:1px solid #e8e3d8; border-radius:50px; padding:8px 16px; font-size:14px; color:#5a564e; }
.cv-equip li i{ color:#5b8c3e; margin-right:7px; }

.cv-formule{ background:#f7f4ef; border-left:4px solid #5b8c3e; border-radius:12px; padding:22px 26px; margin:26px 0; }
.cv-formule h3{ margin-top:0; }
.cv-formule h3 i{ color:#5b8c3e; margin-right:8px; }

.cv-actions-row{ display:flex; flex-wrap:wrap; gap:12px; margin:22px 0 6px; }
.cv-actions-row .btn{ border-radius:50px; }

.gite-grid{ margin-top:4px; }
.gite-card{ background:#fff; border:1px solid #ececec; border-radius:16px; padding:22px; height:100%; margin-bottom:24px; box-shadow:0 6px 18px rgba(0,0,0,.05); transition:transform .2s ease, box-shadow .2s ease; display:flex; flex-direction:column; }
.gite-card:hover{ transform:translateY(-5px); box-shadow:0 18px 36px rgba(0,0,0,.12); }
.gite-card-top{ display:flex; justify-content:space-between; align-items:center; margin-bottom:10px; }
.gite-badge{ background:#756e62; color:#fff; font-weight:700; font-size:13px; padding:5px 14px; border-radius:50px; letter-spacing:.06em; }
.gite-area{ color:#5b8c3e; font-weight:700; font-size:15px; }
.gite-name{ margin:0 0 2px; font-size:19px; color:#2e353e; }
.gite-sub{ margin:0 0 14px; font-size:12.5px; text-transform:uppercase; letter-spacing:.05em; color:#a7a297; }
.gite-specs{ list-style:none; padding:0; margin:0 0 18px; flex:1; }
.gite-specs li{ position:relative; padding:8px 0 8px 26px; font-size:13.5px; color:#57616b; border-bottom:1px solid #f2f2f2; line-height:1.5; }
.gite-specs li:last-child{ border-bottom:none; }
.gite-specs li i{ position:absolute; left:0; top:10px; color:#5b8c3e; }
.gite-plan{ align-self:flex-start; display:inline-block; background:#756e62; color:#fff !important; border-radius:50px; padding:9px 20px; font-size:12.5px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; transition:background .2s ease, transform .2s ease; cursor:pointer; }
.gite-plan:hover{ background:#5c564c; color:#fff !important; transform:translateY(-2px); }
.gite-plan i{ margin-right:6px; }


/* gîtes : grille */
.gite-section{ background:#f7f4ef; padding:48px 0 28px; margin-top:46px; }
.gite-section-inner{ width:80vw; max-width:80vw; margin:0 auto; }
.gite-section-title{ text-align:center; margin-bottom:32px; }
.gite-grid{ display:flex; flex-wrap:wrap; }
.gite-grid > [class*="col-"]{ display:flex; margin-bottom:24px; }
.gite-grid .gite-card{ width:100%; margin-bottom:0; }
@media (max-width:991px){ .gite-section-inner{ width:92vw; max-width:92vw; } }
@media (max-width:767px){ .gite-section-inner{ width:auto; max-width:none; padding:0 15px; } }


/* tarifs hotel */
.cv-table-wrap{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
.cv-table{ width:100%; border-collapse:separate; border-spacing:0; margin:16px 0 22px; border-radius:12px; overflow:hidden; box-shadow:0 6px 18px rgba(0,0,0,.06); background:#fff; }
.cv-table thead th{ background:#756e62; color:#fff; padding:13px 16px; font-size:12.5px; text-transform:uppercase; letter-spacing:.04em; font-weight:700; text-align:left; white-space:nowrap; }
.cv-table td{ padding:12px 16px; border-bottom:1px solid #eee; font-size:14px; color:#4a4a4a; vertical-align:top; }
.cv-table tbody tr:nth-child(even){ background:#faf8f5; }
.cv-table tbody tr:last-child td{ border-bottom:none; }
.cv-table .price{ font-weight:700; color:#5b8c3e; white-space:nowrap; }
.cv-table small{ color:#999; }
.cv-tag{ display:inline-block; background:#5b8c3e; color:#fff; font-size:10px; font-weight:700; padding:2px 8px; border-radius:50px; vertical-align:middle; text-transform:uppercase; letter-spacing:.04em; }

.cv-highlight{ background:#fff; border:1px solid #ececec; border-left:4px solid #756e62; border-radius:12px; padding:18px 22px; margin:22px 0; box-shadow:0 6px 18px rgba(0,0,0,.05); }
.cv-highlight h4{ margin:0 0 6px; color:#2e353e; }
.cv-highlight h4 i{ color:#756e62; margin-right:8px; }
.cv-highlight-price{ font-size:26px; font-weight:800; color:#5b8c3e; margin:0 0 8px; font-family:'Playfair Display', Georgia, serif; }
.cv-highlight-price span{ font-size:14px; font-weight:600; color:#9a958a; }

.cv-note{ background:#f7f4ef; border-left:4px solid #5b8c3e; border-radius:10px; padding:13px 18px; margin:14px 0; font-size:13.5px; color:#57616b; }
.cv-note i{ color:#5b8c3e; margin-right:7px; }

.cv-tarifs{ padding:14px 0 44px; }
.cv-tarifs h4 small{ color:#9a958a; font-weight:400; }
.cv-tarifs h4{ margin-top:22px; }

.cv-weather iframe{ display:block; margin:0 auto; border:0; max-width:100%; border-radius:8px; }


/* page cgv */
.cgv{ font-size:15px; line-height:1.75; color:#4a4f55; }
.cgv h2{ font-family:'Playfair Display', Georgia, serif; font-size:24px; color:#2e353e; margin:36px 0 12px; padding-bottom:8px; border-bottom:2px solid #ece8e0; }
.cgv h3{ font-size:17px; color:#5b8c3e; margin:22px 0 8px; }
.cgv p{ margin:0 0 14px; }
.cgv .cgv-meta{ color:#9a958a; text-transform:uppercase; letter-spacing:.1em; font-size:12px; font-weight:700; margin-bottom:4px; }
.cgv .cgv-intro{ background:#f7f4ef; border-left:4px solid #5b8c3e; border-radius:10px; padding:16px 20px; font-size:14px; }
.cgv .cgv-coord{ background:#fff; border:1px solid #ececec; border-radius:12px; padding:16px 20px; margin:8px 0 16px; box-shadow:0 6px 18px rgba(0,0,0,.05); }
.cgv .cgv-coord p{ margin:0; }
.cgv .cgv-code{ background:#faf8f5; border-radius:12px; padding:6px 24px 16px; margin:16px 0; }
.cgv .cgv-code h3{ color:#756e62; }
.cgv .cgv-foot{ margin-top:32px; padding-top:18px; border-top:1px solid #ece8e0; color:#57616b; font-size:13.5px; }
.cgv .cgv-foot i{ color:#5b8c3e; margin-right:6px; }
.cgv a{ color:#5b8c3e; }
.cgv ul.gite-specs li{ border-bottom:none; }

/* ancre réservation */
#reservation{ scroll-margin-top:150px; }


/* page contact */
.contact-cards{ display:flex; flex-wrap:wrap; gap:16px; margin:22px 0 30px; }
.contact-card{ flex:1 1 200px; background:#fff; border:1px solid #ececec; border-radius:14px; padding:22px 18px; text-align:center; box-shadow:0 6px 18px rgba(0,0,0,.05); transition:transform .2s ease, box-shadow .2s ease; }
.contact-card:hover{ transform:translateY(-5px); box-shadow:0 16px 32px rgba(0,0,0,.10); }
.contact-card i{ font-size:26px; color:#5b8c3e; margin-bottom:12px; display:block; }
.contact-card .cc-label{ font-size:11.5px; text-transform:uppercase; letter-spacing:.08em; color:#a7a297; margin-bottom:5px; font-weight:700; }
.contact-card .cc-value{ font-weight:600; color:#2e353e; font-size:14px; line-height:1.5; }
.contact-card a{ color:#756e62; text-decoration:none; }
.contact-card a:hover{ color:#5b8c3e; }

.contact-map{ border-radius:16px; overflow:hidden; box-shadow:0 10px 30px rgba(0,0,0,.10); margin:14px 0 6px; }
.contact-map iframe{ display:block; width:100%; border:0; }

.contact-form-card{ background:#fff; border:1px solid #ececec; border-radius:16px; padding:30px; box-shadow:0 10px 30px rgba(0,0,0,.06); margin-top:6px; }
.contact-form-card label{ font-weight:600; color:#2e353e; font-size:13px; margin-bottom:6px; }
.contact-form-card label i{ margin-right:5px; color:#5b8c3e !important; }
.contact-form-card .form-control{ border-radius:10px; border:1px solid #e2e0da; padding:10px 14px; box-shadow:none; height:auto; transition:border-color .2s ease, box-shadow .2s ease; }
.contact-form-card .form-control:focus{ border-color:#5b8c3e; box-shadow:0 0 0 3px rgba(91,140,62,.12); }
.contact-form-card textarea.form-control{ min-height:150px; resize:vertical; }
.contact-form-card .btn-primary{ border-radius:50px; padding:13px 38px; }
.contact-rgpd{ font-size:12.5px; color:#8a8a8a; margin-top:18px; line-height:1.6; }
.contact-rgpd i{ color:#5b8c3e; margin-right:5px; }
.alert-success, .alert-danger{ border-radius:12px; padding:14px 18px; }

/* contact cards mobile */
.contact-card .cc-value{ word-break:break-word; overflow-wrap:break-word; }
@media (max-width:600px){ .contact-card{ flex:1 1 100%; } }


/* anti-overflow */
html, body{ overflow-x:hidden; max-width:100%; }
/* th wrap */
.cv-table thead th{ white-space:nowrap; }
/* widget elloha largeur */
aside [id^="ConstellationWidget"]{ max-width:100% !important; overflow-x:hidden; }
aside .co-widget, aside .co-widget-vertical{ max-width:100%; box-sizing:border-box; }
/* iframes max-width */
.main iframe, aside iframe{ max-width:100%; }


/* tables mobile */
@media (max-width:600px){
  .cv-table-wrap{ overflow:visible; }
  .cv-table{ min-width:0; box-shadow:none; border-radius:0; background:transparent; }
  .cv-table thead{ display:none; }
  .cv-table, .cv-table tbody{ display:block; width:100%; }
  .cv-table tr{ display:block; background:#fff; border:1px solid #ececec; border-radius:12px; margin-bottom:14px; box-shadow:0 5px 16px rgba(0,0,0,.06); overflow:hidden; }
  .cv-table tbody tr:nth-child(even){ background:#fff; }
  .cv-table td{ display:flex; justify-content:space-between; align-items:baseline; gap:16px; padding:10px 14px; border:none; border-top:1px solid #f2f2f2; text-align:right; font-size:13.5px; white-space:normal; }
  .cv-table td::before{ content:attr(data-label); font-weight:700; color:#756e62; text-align:left; text-transform:uppercase; font-size:11px; letter-spacing:.03em; flex:0 0 auto; }
  .cv-table td:first-child{ display:block; background:#756e62; color:#fff; font-weight:700; font-size:14px; text-align:left; padding:11px 14px; border-top:none; }
  .cv-table td:first-child::before{ display:none; }
  .cv-table td:first-child strong, .cv-table td:first-child small, .cv-table td:first-child .gite-badge{ color:#fff; }
  .cv-table td.price{ color:#5b8c3e; font-weight:700; }
}

/* widget Elloha sidebar : champs empiles, rien coupe (colonne etroite) */
.sidebar .thumb-info.p-md{ padding:14px !important; }
.sidebar [id^="ConstellationWidget"]{ max-width:100% !important; }
.sidebar .co-widget, .sidebar .co-widget *{ box-sizing:border-box !important; }
.sidebar .co-widget-trip,
.sidebar .co-widget-trip > div,
.sidebar .co-widget-occupancy,
.sidebar .co-widget-search{ width:100% !important; float:none !important; margin-left:0 !important; margin-right:0 !important; }
.sidebar .co-widget-trip > div{ margin-bottom:8px !important; }
.sidebar .co-widget-date,
.sidebar .co-widget-duration,
.sidebar .co-widget-styled,
.sidebar .co-widget input,
.sidebar .co-widget select{ width:100% !important; }
.sidebar .co-widget-styled{ display:block !important; }
.sidebar .co-widget-duration{ padding:0 !important; }
.sidebar .co-widget-div-resume-capa{ display:block !important; }
.sidebar .co-widget-tb-resume-capa{ width:100% !important; margin-bottom:6px !important; }
.sidebar .co-widget-btn-resume-capa{ width:100% !important; }
.sidebar .co-widget-search button{ width:100% !important; }
