/*
Theme Name: Divi Enfant
Description: Theme enfant de Divi. Vous pouvez maintenant effectuer vos modifications en toute sécurité.
Author: WPMarmite
Author URI: https://wpmarmite.com
Template: Divi
Version: 1.0
*/

body > *{
  font-size:16px;
}

body {
  font-family: "Open Sans", sans-serif;
  font-weight: 400 !important;
}

/* Empêche le scroll du body quand le menu mobile est ouvert */
body.no-scroll{
  overflow: hidden;
}


/* style.css du child theme */
#main-header,
#et-top-navigation,
.et-fixed-header {
    display: none !important;
}

#page-container {
    padding-top: 0 !important;
}



/*--------------------
        FONTS
--------------------*/
/* Open Sans - local (woff2) */


@font-face{
  font-family: "Open Sans";
  src: url("./assets/fonts/OpenSans-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}


@font-face{
  font-family: "Open Sans";
  src: url("./assets/fonts/OpenSans-SemiBold.woff2") format("woff2");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face{
  font-family: "Open Sans";
  src: url("./assets/fonts/OpenSans-Bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face{
  font-family: "Open Sans";
  src: url("./assets/fonts/OpenSans-ExtraBold.woff2") format("woff2");
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}


/*--------------------
        HEADER
--------------------*/
#header{
  position: relative; /* référence pour le sub-menu en absolute */
}

.header-inner-desktop{
  display:flex;
  justify-content:center;
  gap:80px;
  padding:40px 30px;
  align-items:stretch;
}

.logo-inner {
  display:flex;
  align-items:center;
  flex-shrink:0; /* Empêche le logo de rétrécir */
}

.nav-inner{
  display:flex;
  align-items:center;

  nav{
    display:flex;
    height:100%;
  }

  /* UL principal */
  nav > ul{
    display:flex;
    align-items:stretch;
    gap:20px;
    height:100%;
    margin:0;
    padding:0;
    list-style:none;
    flex-wrap: wrap;
    justify-content: center;
  }

  /* Items */
  nav > ul > li{
    display:flex;
    align-items:center;
  }

  /* Liens (top + sub-menu) */
  nav a{
    color:#000;
    padding:5px 10px;
    text-decoration:none;
  }

  /* Bouton contact */
  .btn-contact-nav > a{
    background-color:#007770;
    color:#fff;
    font-weight:600;
    border-radius:5px;
  }

  /*=====================
        SUB-MENU (clic)
  =====================*/
  nav > ul > li > ul.sub-menu{
    position:absolute;
    left:0;
    top:100%;
    width:100%;

    display:flex;
    justify-content:center;
    gap:150px;

    margin:0;
    padding:20px 0;
    list-style:none;

    background:#FEB601;
    z-index:9999;

    opacity:0;
    visibility:hidden;
    pointer-events:none;

    box-shadow: inset 0 5px 5px rgba(0,0,0,.13);

    & a{
      color:#fff;
      font-weight:700;
      padding:12px 10px;
    }
  }

  /* Ouvert via JS */
  nav > ul > li.is-open > ul.sub-menu{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
  }
}



/* Flèche sur le menu Tarif */
.nav-inner nav > ul > li.tarif-sub > a{
  display:inline-flex;
  align-items:center;
  gap:10px;
}

/* Flèche */
.nav-inner nav > ul > li.tarif-sub > a::after{
  content:"";
  position: relative;
  width:6px;
  height:6px;
  border-right:1px solid currentColor;
  border-bottom:1px solid currentColor;
  transform: rotate(45deg);
  transition: transform .2s ease;
  top:-2px;
}

/* Rotation quand le sub-menu est ouvert */
.nav-inner nav > ul > li.tarif-sub.is-open > a::after{
  transform: rotate(-135deg);
  top:2px;
}




/* =========================
   Indicateur page active (MENU PRINCIPAL UNIQUEMENT)
   ========================= */

/* repère pour positionner les pseudo-elements */
.nav-inner nav > ul.nav-menu > li > a{
  position: relative;
  display: inline-flex;
  align-items: center;
}

/* Pas d’indicateur sur le bouton Contact */
.nav-inner nav > ul.nav-menu > li.btn-contact-nav > a::before{
  content: none !important;
}

/* Ligne active : on utilise ::before (comme ça ::after reste dispo pour la flèche de Tarif) */
.nav-inner nav > ul.nav-menu > li.current-menu-item > a::before,
.nav-inner nav > ul.nav-menu > li.current_page_item > a::before,
.nav-inner nav > ul.nav-menu > li.current-menu-ancestor > a::before,
.nav-inner nav > ul.nav-menu > li.current_page_ancestor > a::before{
  content:"";
  position:absolute;
  left:10px;          /* aligné au début du texte (car padding horizontal = 10px) */
  bottom:-8px;        /* sous le lien */
  width:30px;
  height:3px;
  background:#FEB602;
  border-radius:2px;
  pointer-events:none;
}






/*--------------------
        MENU MOBILE
--------------------*/
.header-inner-mobile {
  padding: 30px 0px 30px 0px;
  position: relative;
}
.mobile-bar {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.btn-burger {
  display:flex;
  flex-direction:column;
  justify-content: space-between;
  gap:5px;
  width:35px;
  cursor:pointer;
  padding: 0;
  background: none;
  border: none;
  margin-top: 30px;

  .line-burger{
    width:100%;
    height:5px;
    border-radius:5px;
    background-color:#007770;
    transition: transform .25s ease, opacity .2s ease;
    transform-origin: center;
  }

  &.is-open {
    justify-content: center; /* centre les lignes */
    gap: 0;

    /*Première ligne*/
    .line-burger:nth-child(1) {
      transform: translateY(5px) rotate(45deg);
    }
    /* Deuxième ligne */
    .line-burger:nth-child(2) {      
      opacity: 0;
      transform: scaleX(0);
  }
    /* Troisième ligne */
    .line-burger:nth-child(3) {
      transform: translateY(-5px) rotate(-45deg);
    }
  }
}
.mobile-nav {
  padding: 5px 30px 35px 30px;
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  background-color: #fff;
  z-index: 9999;

  & ul {
    display:flex;
    flex-direction:column;
    align-items: center;
    gap:15px;
    list-style:none;
  }
  & ul li a {
    color: #000;
    font-size: 16px;
  }
  & .li-tarif-mobile {
    font-weight: 700;
    text-transform: uppercase;
    margin-top:20px;
  }
  & .btn-contact-nav.mobile {
    margin-top: 20px;
    & a {
        background-color: #007770;
        color: #fff;
        font-weight: 700;
        border-radius: 10px;
        padding: 8px 15px;
        font-size: 14px;
    }
  }
}

/* Cache réellement le menu quand l'attribut hidden est présent */
.header-inner-mobile #mobile-menu[hidden]{
  display: none !important;
}



/*-----------------------------------------------
        AFFICHER ET MASQUER LE MENU MOBILE
-----------------------------------------------*/
/* Par défaut (desktop) */
.header-inner-mobile{
  display:none;
}

/* Breakpoint mobile */
@media (max-width: 980px){

  .header-inner-desktop{
    display:none;
  }

  .header-inner-mobile{
    display:block;
  }

}




/*--------------------
        CORPS
--------------------*/
.highlight-title {
  background-color: #82BCB9;
  font-weight: 800;
  padding: 5px 10px;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  line-height: 2em !important;
}
.highlight-title.fam {
  background-color: #007770 !important;
  color: white;
}

.svg-after-h1 {
  position: relative;
  display: inline-block;
}


.svg-after-h1::after{
  content: "";
  display: inline-block;
  margin-left: 100px;
  background: url("/wp-content/themes/Divi-child/assets/svg/coeur-bleu.svg") no-repeat center;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  vertical-align: middle;
  width: 30px;
  height: 39px;
}

.svg-after-h3 {
  position: relative;

}

.svg-after-h3::after {
  content: "";
  display: inline-block;
  margin-left: 10px;
  background: url("/wp-content/themes/Divi-child/assets/svg/coeur-orange.svg") no-repeat center;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  vertical-align: middle;
  width: 25px;
  height: 25px;
  position: relative;
  top:-3px;
}


/*Coeur orange gauche du h3*/
.txt-with-icon-yellow{
  display:flex;
  align-items:flex-start;
  gap:10px;
}

.txt-with-icon-yellow::before{
  content:"";
  flex:0 0 25px;
  height:25px;
  background:url("/wp-content/themes/Divi-child/assets/svg/coeur-orange.svg") no-repeat center;
  background-size:contain;
}

/*Page pension canine*/
.trait-blanc-after {
  position: relative;

}
.trait-blanc-after::after {
  content: "";
  display: block;
  position: relative;
  margin-left: -100px;
  top: -110px;
  background: url("/wp-content/themes/Divi-child/assets/svg/trait-blanc.svg") no-repeat center;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  width: 250px;
  height: 230px;
}

.h2-after-guide {
  position: relative;
}

.h2-after-guide::after{
  content: "";
  position: absolute;
  top: -90px;
  width: 250px;
  height: 200px;
  right:-600px;
  background: url(/wp-content/themes/Divi-child/assets/svg/trait-blanc.svg) no-repeat center;
  background-size: contain;
  transform: rotate(180deg);
  transform-origin: center;
  pointer-events: none;
}


@media (max-width: 980px){
  .trait-blanc-after::after {
    margin-left: 30px;
    top: -20px;
    width: 80px;
    height: 75px;
  }
  /*Cacher trait en mobile*/
  .h2-after-guide::after{
    content: none; /* le plus propre */
  }
}


.highlight-yellow{
  background:#feb602 !important;
  padding:2px 10px;
}


/* PAGE TARIFS TABLEAUX*/
/*Tab fond bleu */
.tab-tarif-fd-bleu {
  border:none !important;
  border-collapse: separate !important;
  border-spacing: 12px !important;
  & thead {
    border: none !important;
    & td:first-child {
      visibility: hidden;
    }
    & th {
      background-color: white;
      color: black;
      text-align: center !important;
      padding: 20px;
    }
  }
  td {
    padding: 20px !important;
  }
  tbody {
    & tr .column-1 {
      background-color: white;
      text-align: center;
      color: black;
      font-weight: bold;
      border: none !important;
      font-size: 16px;

    }
    &  tr td {
      background-color: #83BDB9;
      color: white;
      text-align: center;
      border: none !important;
      font-weight: bold;
      font-size: 22px;
      text-align: center;
      vertical-align: middle;
    }
  }
}

/*Tarif tableau fond blanc*/
.tab-tarif-fd-bleu.fd-blanc {
  & thead {
    & th {
      background-color: #007770;
      color: white;
    }
  }
  & tbody {
    & tr .column-1 {
      background-color: #007770;
      color: white;
    }
  }
}

@media (max-width: 980px){
  .tab-tarif-fd-bleu thead th {
    padding: 10px;
    font-size: 12px;
    line-height: 1.2em;
  }
  .tab-tarif-fd-bleu tbody tr .column-1 {
    font-size: 12px;
    padding: 10px !important;
    line-height: 1.2em;
  }
  .tab-tarif-fd-bleu tbody tr td {
    padding: 10px !important;
    font-size: 16px;
  }
}



/*Garde en pension*/
.tablepress.tab-tarif-fd-bleu.pens tbody tr.row-2 td.column-1,
.tablepress.tab-tarif-fd-bleu.pens tbody tr.row-6 td.column-1,
.tablepress.tab-tarif-fd-bleu.pens tbody tr.row-10 td.column-1{
  background:#FEB602 !important;
  color:white !important;
}

.tab-tarif-fd-bleu.pens tbody tr.row-5 td,
.tab-tarif-fd-bleu.pens tbody tr.row-9 td{
  border-bottom:30px solid #007770 !important;
}

.tab-tarif-fd-bleu.pens.fd-blanc tbody tr.row-5 td {
  border-bottom:30px solid white !important;
}
.tab-tarif-fd-bleu.pens.fd-blanc tbody tr.row-9 td {
  border:none !important;
}

#tablepress-8 tbody .row-10 .column-3 {
  visibility:hidden;
}


/*Blog*/
.coeur-orange-carte {
  width:25px !important;
  height:25px !important;
}

/*--------------------
        Responsive
--------------------*/
@media (max-width: 980px){
  .highlight-title {
    background-color: #007770;
    color: white;
  }
  .svg-after-h1::after{
    margin-left: 20px;
    width: 20px;
    height: 29px;
  }
	.box-picto-network {
		display:flex;
		justify-content:center;
	}

}

/*-----------------------------------------
      PAGES PUBLICATIONS DES FAMILLES
-----------------------------------------*/
.famille-animaux{
  display:flex;
  flex-wrap:wrap;
  gap:14px 18px; /* vertical / horizontal */
  margin:0;
  padding:0 !important;
  list-style:none;
  align-items:center;
}

.famille-animal{
  display:inline-flex;
  align-items:center;
  gap:8px;
}

.famille-animal__icon svg{
  width:25px !important;
  height:25px !important;
  display:block;
}
.famille-animal__label{
  color: black;
}

.highlight-title.fam.title {
  position: relative;
  width: fit-content;
}
.highlight-title.fam.title::after{
  content: "";
  position: absolute;
  background: url("/wp-content/themes/Divi-child/assets/svg/coeur-bleu.svg") no-repeat center;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  width: 30px;
  height: 39px;
  right: -80px;
  top: 50%;
  transform: translateY(-50%);
}

.box-famille-picto{
  display: flex;
  align-items: center;
  gap:10px;
}


.city-location{
  display: flex;
  align-items: center;
  gap: 8px;
}

.city-location::before{
  content: "";
  width: 25px;
  height: 25px;
  background: url("/wp-content/themes/Divi-child/assets/svg/localisation-svg.svg") no-repeat center;
  background-size: contain;
  display: inline-block;
}

.logo-adn-famille img {
  width:60px;
  height: 60px;;
}


/*Picto wp grid*/
.famille-card__picto{
  display:block;
  width:40px;
  height:40px;
  object-fit:contain;

}

.famille-garde-domicile {
  display: flex;
  align-items: center;
  gap: 8px;
  & span {
    color: black;

  }
}
.famille-garde-domicile .famille-home-picto {
  width: 25px;
  height: 25px;
}

.famille-home-picto-card svg {
  width: 25px !important;
  height: 25px !important;
}
/* =========================
   Carousel Famille
   ========================= */

.famille-carousel{
  position: relative;
  width: 100%;
}

/* viewport avec taille uniforme */
.famille-carousel__viewport{
  overflow: hidden;
  border-radius: 18px;
  width: 100%;

  aspect-ratio: 4 / 3; /* ratio uniforme */
  cursor: grab;
}

.famille-carousel__viewport:active{
  cursor: grabbing;
}

.famille-carousel__track{
  display: flex;
  transition: transform .35s ease;
  will-change: transform;
  height: 100%;
}

.famille-carousel__slide{
  flex: 0 0 100%;
  margin: 0;
  height: 100%;
}

/* image uniforme */
.famille-carousel__img{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover; /* coupe proprement pour garder un format identique */
}

/* Flèches */
.famille-carousel__nav{
  position: absolute;
  top: 50%;
  transform: translateY(-50%);

  width: 46px;
  height: 46px;

  border-radius: 999px;
  border: 2px solid #007770;
  background: #fff;
  color: #007770;

  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;

  z-index: 2;
  padding: 0;
}

.famille-carousel__nav:hover{
  background: rgba(0, 119, 112, 0.10);
}

.famille-carousel__nav:disabled{
  opacity: .35;
  cursor: not-allowed;
}

/* Accessibilité focus */
.famille-carousel__nav:focus-visible{
  outline: 2px solid #007770;
  outline-offset: 3px;
}

/* position flèches */
.famille-carousel__prev{
  left: -60px;
}

.famille-carousel__next{
  right: -60px;
}

/* flèches CSS */
.famille-carousel__nav::before{
  content:"";
  width: 10px;
  height: 10px;
  border-right: 3px solid currentColor;
  border-bottom: 3px solid currentColor;
  display: block;
}

.famille-carousel__prev::before{
  transform: rotate(135deg);
  margin-left: 3px;
}

.famille-carousel__next::before{
  transform: rotate(-45deg);
  margin-right: 3px;
}

/* évite les caractères dans les boutons */
.famille-carousel__nav{
  font-size: 0;
}

/* Mobile */
@media (max-width: 980px){

  .famille-carousel__prev{
    left: -10px;
  }

  .famille-carousel__next{
    right: -10px;
  }

  .famille-carousel__viewport{
    aspect-ratio: 1 / 1; /* carré sur mobile */
  }
}


/* =========================
          Footer
========================= */
.link-footer {
  color: black !important;
  text-decoration: none !important;
}
.link-footer:hover {
  color: #007770 !important;
}
.box-picto-network {
  display:flex;
  gap:5px;
  align-items: center;
}
.picto-network {
  width:30px;
  height: 30px;
}

/**Bannière cookie*/
.cmplz-link.privacy-statement {
  display: none !important;
}