/*
 Theme Name:   Bricks Child Theme
 Theme URI:    https://bricksbuilder.io/
 Description:  Use this child theme to extend Bricks.
 Author:       Bricks
 Author URI:   https://bricksbuilder.io/
 Template:     bricks
 Version:      1.1
 Text Domain:  bricks
*/


/* Header width */
@media (min-width:1441px) {
  .breakout--xl {
    inline-size:90vw!important;
    max-inline-size:90vw!important;
    margin:0 calc(-45vw + 50%)!important
  }
}
.breakout--full {
  inline-size:100vw!important;
  max-inline-size:100vw!important;
  margin-inline:calc(-50vw + 50%)!important;
  align-self:flex-start
}
@media (max-width:1440px) {
  [class*="breakout--"]:not(.breakout--full) {
    inline-size:100%!important;
    max-inline-size:100%!important;
    margin:0!important
  }
}

/**
 * Style pour les espacements Gutenberg
 * Articles uniquement
 */

/* Espacements du contenu des articles uniquement */
.single-post .single-post-content__content {
  --article-space: 1.25em;
  --article-section-space: 2.5em;
}

/* Espacement de base entre les blocs de premier niveau */
.single-post .single-post-content__content > * {
  margin-block-start: 0;
  margin-block-end: var(--article-space);
}

/* Davantage d’espace avant les titres */
.single-post .single-post-content__content > :is(h2, h3, h4) {
  margin-block-start: var(--article-section-space);
  margin-block-end: 0.75em;
}

/* Aérer les images et galeries par rapport au texte */
.single-post .single-post-content__content > :is(
  .wp-block-image,
  .wp-block-gallery
) {
  margin-block-start: 2em;
  margin-block-end: 2em;
}

/* Aucun espace superflu au début et à la fin */
.single-post .single-post-content__content > :first-child {
  margin-block-start: 0;
}

.single-post .single-post-content__content > :last-child {
  margin-block-end: 0;
}

/**
 * Menu burger dès 1279px : en dessous, les liens du menu passent sur plusieurs lignes.
 * Reprend les réglages tablet_portrait du template Header.
 */
@media (max-width: 1279px) {
  #brx-header .header__menu,
  #brx-header #brxe-aaljyy {
    display: none;
  }

  #brx-header #brxe-fizbfv {
    display: flex;
    flex-direction: row;
    align-items: center;
    flex-shrink: 0;
    width: auto;
  }

  #brx-header .dbv-offcanvas__toggle-menu {
    display: block;
  }
}

/**
 * Onglets du programme d'un séjour : défilement dans leur propre zone,
 * sinon les séjours à nombreux jours élargissent la page. Sous 768px, Bricks les passe à la ligne.
 */
@media (min-width: 768px) and (max-width: 1279px) {
  .brxe-tabs-nested.sejour-programme__tab .sejour-programme__tab-menu {
    justify-content: flex-start;
    max-width: 100%;
    overflow-x: auto;
  }

  .brxe-tabs-nested.sejour-programme__tab .sejour-programme__tab-title {
    flex: 0 0 auto;
    padding-left: var(--space-l);
    padding-right: var(--space-l);
  }
}

/**
 * Le conteneur en pleine largeur (100vw) inclut la barre de défilement :
 * on coupe ce dépassement pour éviter un défilement horizontal de la page.
 */
.brxe-section.hcta {
  overflow-x: clip;
}

/* Recherche : bouton de validation et couleurs natives d'iOS */
.brxe-search button,
.brxe-search .bricks-search-overlay .close {
  color: var(--dark);
  -webkit-tap-highlight-color: transparent;
}

.brxe-search .bricks-search-overlay .bricks-search-form {
  display: flex;
  align-items: stretch;
  gap: var(--space-xs);
  width: 100%;
  max-width: 60rem;
}

.brxe-search .bricks-search-overlay .bricks-search-form input[type="search"] {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 16px;
}

.brxe-search .bricks-search-overlay .bricks-search-form button[type="submit"] {
  position: static;
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: auto;
  padding: 0;
  border-radius: var(--radius);
  background: var(--primary);
  color: var(--dark);
  font-size: 16px;
}

/* Sur mobile, le formulaire reste au-dessus du clavier */
@media (max-width: 767px) {
  .brxe-search .bricks-search-overlay {
    justify-content: flex-start;
    align-items: center;
    height: 100dvh;
    padding-top: 14vh;
  }

  .brxe-search .bricks-search-overlay .bricks-search-inner {
    justify-content: flex-start;
    width: 100%;
    height: auto;
    padding-inline: var(--space-m);
  }
}

/* Cartes équipe : présentation ouverte au clic */
.card-dbv-team .card-dbv-team__content-info {
  visibility: hidden;
  transition: transform .5s cubic-bezier(.04, .7, .55, 1), visibility 0s linear .5s;
}

.card-dbv-team.is-open .card-dbv-team__content-info {
  transform: translateX(0);
  visibility: visible;
  transition-delay: 0s;
}

.card-dbv-team__link-wrapper {
  padding-right: 52px;
}

.card-dbv-team__toggle {
  position: absolute;
  right: var(--space-s);
  bottom: var(--space-s);
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 50%;
  background: var(--primary);
  color: var(--dark);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.card-dbv-team__toggle i {
  font-size: 14px;
  line-height: 1;
  transition: transform .3s ease;
}

.card-dbv-team.is-open .card-dbv-team__toggle i {
  transform: rotate(45deg);
}

/* Pages légales */
.legal-page h2 {
  margin-block: var(--space-l) var(--space-xs);
  font-size: var(--text-l);
}

.legal-page p,
.legal-page ul {
  margin-block-end: var(--space-s);
}

.legal-page ul {
  padding-inline-start: var(--space-m);
}