/* Généré depuis scss/laff-blocks.scss */
/* ---------- Styles de blocs ---------- */
.is-style-chapo {
  position: relative;
  text-align: center;
  font-family: "Archivo Narrow", sans-serif;
  font-size: 4.5vmin;
  line-height: 1.2em;
  margin: 30px 0;
  padding: 0 20%;
}
.wp-block-button.is-style-lien-infos .wp-block-button__link {
  background: transparent;
  color: inherit;
  border: 2px solid currentColor;
  border-radius: 0;
}
.wp-block-button.is-style-lien-infos .wp-block-button__link:hover {
  background: currentColor;
}
.wp-block-button.is-style-lien-infos .wp-block-button__link:hover span,
.wp-block-button.is-style-lien-infos .wp-block-button__link:hover {
  color: #fff;
  mix-blend-mode: difference;
}

/* ---------- laff/posts : grille de cartes ---------- */
.wp-block-laff-posts .laff-posts {
  display: grid;
  grid-template-columns: repeat(var(--laff-posts-cols, 3), minmax(0, 1fr));
  column-gap: var(--laff-posts-gap-x, 30px);
  row-gap: var(--laff-posts-gap-y, 35px);
}
.wp-block-laff-posts .laff-card {
  position: relative;
  display: block;
  overflow: hidden;
  color: #fff;
  text-decoration: none;
  transition: .5s;
}
.wp-block-laff-posts .laff-card__bg-wrapper {
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: hidden;
}
.wp-block-laff-posts .laff-card__bg,
.wp-block-laff-posts .laff-card__bg-overlay {
  position: absolute;
  inset: 0;
  transition: all var(--laff-posts-bg-transition, 1500ms);
}
.wp-block-laff-posts .laff-card__bg {
  z-index: 1;
  background-size: cover;
  background-position: 50%;
}
.wp-block-laff-posts .laff-card__bg-overlay {
  z-index: 2;
  background-color: var(--laff-posts-overlay, transparent);
}
.wp-block-laff-posts .laff-card:hover .laff-card__bg-overlay,
.wp-block-laff-posts .laff-card:focus-visible .laff-card__bg-overlay {
  background-color: var(--laff-posts-overlay-hover, rgba(0, 0, 0, .3));
}
.wp-block-laff-posts .laff-card:hover .laff-card__bg,
.wp-block-laff-posts .laff-card:focus-visible .laff-card__bg {
  filter: blur(var(--laff-posts-blur, 7.3px));
}
.wp-block-laff-posts .laff-card__content {
  position: relative;
  z-index: 2;
  display: flex;
  flex-wrap: wrap;
  align-content: flex-end;
  align-items: flex-end;
  width: 100%;
  min-height: var(--laff-posts-h, 80vh);
  padding: var(--laff-posts-padding, 40px);
  text-align: var(--laff-posts-align, start);
  overflow: hidden;
}
.wp-block-laff-posts .laff-card__item {
  position: relative;
  width: 100%;
  margin: 0;
  transition: all var(--laff-posts-content-transition, 500ms);
}
.wp-block-laff-posts .laff-card__item:not(:last-child) {
  margin-bottom: 15px;
}
.wp-block-laff-posts .laff-card:hover .laff-card__item,
.wp-block-laff-posts .laff-card:focus-visible .laff-card__item {
  transform: translateY(-30px);
}
.wp-block-laff-posts .laff-card__title {
  font-size: 23px;
  color: var(--laff-posts-title-color, #fff);
}
.wp-block-laff-posts .laff-card__description {
  color: var(--laff-posts-text-color, rgba(255, 255, 255, 0));
}
.wp-block-laff-posts .laff-card:hover .laff-card__description,
.wp-block-laff-posts .laff-card:focus-visible .laff-card__description {
  color: var(--laff-posts-text-color-hover, #fff);
}
.wp-block-laff-posts .laff-card__button {
  display: inline-block;
  padding: 12px 24px;
  line-height: 1;
  border: 2px solid var(--laff-posts-button-color, rgba(255, 255, 255, 0));
  border-radius: 0;
  background: transparent;
  color: var(--laff-posts-button-color, rgba(255, 255, 255, 0));
  transition: all .3s;
}
.wp-block-laff-posts .laff-card:hover .laff-card__button,
.wp-block-laff-posts .laff-card:focus-visible .laff-card__button {
  color: var(--laff-posts-button-color-hover, #fff);
  border-color: var(--laff-posts-button-color-hover, #fff);
}
.wp-block-laff-posts .laff-card .laff-card__button:hover {
  color: #0c0c0c;
}
.wp-block-laff-posts .laff-posts__empty {
  padding: 1em;
  border: 1px dashed currentColor;
}
@media (max-width: 1080px) {
  .wp-block-laff-posts .laff-posts {
    grid-template-columns: repeat(var(--laff-posts-cols-tablet, 2), minmax(0, 1fr));
  }
  .wp-block-laff-posts .laff-card__content {
    min-height: var(--laff-posts-h-tablet, 60vh);
  }
}
@media (max-width: 768px) {
  .wp-block-laff-posts .laff-posts {
    grid-template-columns: repeat(var(--laff-posts-cols-mobile, 1), minmax(0, 1fr));
  }
  .wp-block-laff-posts .laff-card__content {
    min-height: var(--laff-posts-h-mobile, 30vh);
  }
}
@media (prefers-reduced-motion: reduce) {
  .wp-block-laff-posts .laff-card,
  .wp-block-laff-posts .laff-card * {
    animation: none !important;
    transition: none !important;
  }
}

/* ---------- laff/menu-hero ---------- */
.wp-block-laff-menu-hero .btnSlideHero .icon::before {
  content: "\203A"; /* chevron, sans police d'icônes */
  font-style: normal;
}

/* ---------- laff/piwigo ---------- */
.wp-block-laff-piwigo .piwigo-title {
  margin: 0 0 1rem;
}

/* ---------- Éditeur : aperçus des blocs dynamiques ---------- */
.editor-styles-wrapper .laff-block-placeholder {
  padding: 1.5em;
  border: 1px dashed #949494;
  background: #f6f7f7;
  color: #1e1e1e;
  font-family: system-ui, sans-serif;
  font-size: 14px;
}
.editor-styles-wrapper .wp-block-laff-menu-hero a,
.editor-styles-wrapper .wp-block-laff-posts a {
  pointer-events: none; /* évite de quitter l'éditeur en cliquant dans l'aperçu */
}

/* ---------- Section commune des blocs laff/* ---------- */
.laff-section {
  position: relative;
  width: 100%;
  max-width: none;
  background-position: 50% 50%;
  background-repeat: no-repeat;
  background-size: cover;
}
.laff-section__inner {
  position: relative;
  width: 100%;
  max-width: var(--wp--style--global--content-size, 900px);
  margin-inline: auto;
}
.laff-section--wide > .laff-section__inner {
  max-width: var(--wp--style--global--wide-size, 1400px);
}
.laff-section--full > .laff-section__inner {
  max-width: none;
}
.editor-styles-wrapper .laff-section--content > * {
  max-width: var(--wp--style--global--content-size, 900px);
  margin-inline: auto;
}
.editor-styles-wrapper .laff-section--wide > * {
  max-width: var(--wp--style--global--wide-size, 1400px);
  margin-inline: auto;
}

/* ---------- laff/page-header : en-tête de page ---------- */
/* Image fixe derrière la page (flou et fondu au défilement, piloté par view.js via les variables --laff-ph-*), */
/* logo + titre centrés sur la hauteur de l'écran, bouton de défilement vers l'introduction qui remonte au défilement. */
.laff-page-header {
  position: relative;
  color: var(--laff-ph-color, #fff);
}
.laff-page-header__bg {
  position: fixed;
  inset: 0;
  z-index: -1;
  overflow: hidden;
  pointer-events: none;
  background: var(--laff-ph-bg-color, #000);
}
.laff-page-header__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: var(--laff-ph-bg-position, 50% 50%);
  filter: blur(var(--laff-ph-blur-now, 0px));
  opacity: var(--laff-ph-opacity-now, 1);
  transform: scale(var(--laff-ph-scale-now, 1));
  will-change: filter, opacity, transform;
}
.laff-page-header__hero {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1.5rem;
  min-height: var(--laff-ph-min-height, 100vh);
  padding: 2rem 1.5rem 6rem;
  text-align: center;
}
.laff-page-header__logo {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: .5rem;
  color: inherit;
  text-decoration: none;
}
.laff-page-header__logo img {
  display: block;
  width: auto;
  max-width: min(60vw, 260px);
  height: auto;
}
.laff-page-header__site {
  font-size: .875rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.laff-page-header__title {
  max-width: 1100px;
  margin: 0;
  color: inherit;
  font-family: "Archivo Black", sans-serif;
  font-size: clamp(2rem, 6vw, 4.5rem);
  line-height: 1.1;
  text-shadow: 0 2px 12px rgba(0, 0, 0, .45);
  word-wrap: break-word;
}
.laff-page-header__subtitle {
  display: block;
  margin-top: .5em;
  font-family: "Archivo Narrow", sans-serif;
  font-size: .4em;
  font-weight: 400;
  line-height: 1.3;
}
.laff-page-header__scroll {
  position: absolute;
  bottom: 2rem;
  left: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  margin-left: -1.5rem;
  border: 2px solid currentColor;
  border-radius: 50%;
  color: inherit;
  animation: laff-ph-scroll-in .8s ease-out 1s both, laff-ph-scroll-bob 2s ease-in-out 1.8s infinite;
}
.laff-page-header__scroll svg {
  width: 1.25rem;
  height: 1.25rem;
}
.laff-page-header__scroll:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 4px;
}
.laff-page-header__intro {
  display: flex;
  align-items: flex-end;
  min-height: var(--laff-ph-intro-min-height, 60vh);
  padding: 3rem 1.5rem;
}
.laff-page-header__intro-text {
  width: 100%;
  max-width: var(--wp--style--global--content-size, 900px);
  margin: 0 auto;
  font-family: "Archivo Narrow", sans-serif;
  font-size: clamp(1.25rem, 3vw, 2rem);
  line-height: 1.3;
  text-align: center;
  text-shadow: 0 2px 10px rgba(0, 0, 0, .5);
  transform: translateY(var(--laff-ph-intro-y, 0px));
  will-change: transform;
}
.laff-page-header__intro-text > :first-child {
  margin-top: 0;
}
.laff-page-header__intro-text > :last-child {
  margin-bottom: 0;
}
@keyframes laff-ph-scroll-in {
  from { opacity: 0; transform: translateY(-40px); }
  to { opacity: 1; transform: none; }
}
@keyframes laff-ph-scroll-bob {
  0%, 100% { transform: none; }
  50% { transform: translateY(6px); }
}
@media (max-width: 768px) {
  .laff-page-header__hero {
    min-height: var(--laff-ph-min-height-mobile, 85vh);
  }
}
@media (prefers-reduced-motion: reduce) {
  .laff-page-header__scroll {
    animation: none;
  }
  .laff-page-header__bg img,
  .laff-page-header__intro-text {
    filter: none;
    transform: none;
  }
}

/* Éditeur de blocs : l'image reste dans le bloc au lieu de couvrir l'écran */
.editor-styles-wrapper .laff-page-header {
  overflow: hidden;
  isolation: isolate;
}
.editor-styles-wrapper .laff-page-header__bg {
  position: absolute;
}
.editor-styles-wrapper .laff-page-header__hero {
  min-height: min(var(--laff-ph-min-height, 100vh), 80vh);
}
.editor-styles-wrapper .laff-page-header__intro {
  min-height: 0;
}
.editor-styles-wrapper .laff-page-header__intro-text {
  transform: none;
}
