/* ==========================================================================
   Thème Sérénya : styles des sections.
   Les couleurs, tailles de texte et arrondis de la charte sont dans theme.json ;
   ce fichier les réutilise (variables --wp--preset--… et --wp--custom--…).
   Chargé sur le site et dans l'éditeur.
   ========================================================================== */

body {
  --vert: var(--wp--preset--color--vert);
  --orange: var(--wp--preset--color--orange);
  --gris-texte: var(--wp--preset--color--gris-texte);
  --noir: var(--wp--preset--color--noir);
  --blanc: var(--wp--preset--color--blanc);
  --creme: var(--wp--preset--color--creme);
  --sable: var(--wp--preset--color--sable);
  --vert-pale: var(--wp--preset--color--vert-pale);
  --bleu-clair: var(--wp--preset--color--bleu-clair);
  --gris-clair: var(--wp--preset--color--gris-clair);
  --filet: var(--wp--preset--color--filet);
  --r-bouton: var(--wp--custom--rayon--bouton);
  --r-diapo: var(--wp--custom--rayon--diapo);
  --r-pilule-s: var(--wp--custom--rayon--pilule-s);
  --r-encart: var(--wp--custom--rayon--encart);
  --r-carte: var(--wp--custom--rayon--carte);
  --ombre: var(--wp--preset--shadow--carte);
  --marge-page: 20px;
  --haut-entete: 96px;
  --img: url('../images');
}

/* ---------- Base ---------- */
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 16px; }
html:not(.wp-admin) { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { overflow-x: hidden; }
.wp-site-blocks > * + * { margin-block-start: 0 !important; }
.wp-block-image { margin: 0; }
.wp-block-image img { height: auto; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.screen-reader-text:focus { clip: auto; width: auto; height: auto; margin: 0; padding: 10px 16px; background: var(--blanc); color: var(--noir); z-index: 100; }
:where(.wp-site-blocks) :focus-visible { outline: 3px solid var(--orange); outline-offset: 3px; border-radius: 4px; }
.wp-block-button__link:focus-visible { outline-color: var(--noir); }
.wp-block-heading, .wp-block-paragraph { margin-top: 0; }
p { margin-top: 0; margin-bottom: 0; }
.serenya-titre-gras { font-weight: 700; }
strong, b { font-weight: 700; }
/* Aperçu de l'éditeur : le contenu garde sa largeur */
.editor-styles-wrapper .alignfull { max-width: none; }

/* Sections : espacement latéral commun */
.serenya-villages, .serenya-concept, .serenya-vous-etes, .serenya-temoignages, .serenya-article, .serenya-erreur, .serenya-texte-long, .serenya-liste-blog, .serenya-formulaire, .serenya-carte, .serenya-recents-section, .serenya-diaporama-seul { padding-left: var(--marge-page); padding-right: var(--marge-page); }

/* Marges internes des blocs « flux » à l'intérieur des sections en grille ou en flex */
.serenya-villages__liste > *, .serenya-ville__panneau > *, .serenya-concept__grille > *, .serenya-services__corps > *, .serenya-services__gauche > *, .serenya-services__grille > *, .serenya-service > *,
.serenya-role > *, .serenya-temoignages__grille > *, .serenya-avis__tete > *, .serenya-sejour__corps > *, .serenya-sejour__encart > *, .serenya-bandeau-village__carte > *, .serenya-bandeau-village__ligne > *, .serenya-bandeau-village__bas > *,
.serenya-carte__grille > *, .serenya-carte__texte > *, .serenya-vp__corps > *, .serenya-vp__gauche > *, .serenya-vp__carte > *, .serenya-valmer__corps > *, .serenya-valmer__carte > *, .serenya-aide__corps > *, .serenya-aide__haut > *, .serenya-aide__entete > *, .serenya-vequip > *, .serenya-vnav > *, .serenya-visite > *, .serenya-visite__corps > *, .serenya-apercu-visite__cadre > *, .serenya-modele > *, .serenya-modele__carac > *, .serenya-pied__grille > *, .serenya-pied__colonne > *, .serenya-entete > * { margin-block-start: 0; margin-block-end: 0; }

/* ---------- Boutons : formes et tailles de la charte ---------- */
.wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; min-height: 51px; text-align: center; text-decoration: none; font-family: inherit; cursor: pointer; }
.wp-block-button__link:hover { filter: brightness(0.9); color: var(--blanc); }
.wp-block-button.is-style-arrondi .wp-block-button__link { border-radius: var(--r-pilule-s); }
.wp-block-button.is-style-pilule .wp-block-button__link { border-radius: var(--r-carte); }
.wp-block-button.is-style-contour .wp-block-button__link { border: 2px solid var(--blanc); font-weight: 700; font-size: 16px; min-height: 47px; }
.wp-block-button.bouton-tres-petit .wp-block-button__link { min-height: 43px; font-size: 12px; padding: 8px 16px; }
.wp-block-button.bouton-petit .wp-block-button__link { min-height: 43px; font-size: 15.6px; padding: 8px 16px; }
.wp-block-button.bouton-moyen .wp-block-button__link { min-height: 59px; font-size: 17px; font-weight: 700; padding: 8px 28px; }
.wp-block-button.bouton-grand .wp-block-button__link { min-height: 66px; font-size: 20px; padding: 8px 32px; }

/* Téléphone : cibles tactiles de 44 px et texte de 16 px au moins */
@media (max-width: 750px) {
  .wp-block-button__link { font-size: 16px; }
  .wp-block-button.bouton-tres-petit .wp-block-button__link, .wp-block-button.bouton-petit .wp-block-button__link { min-height: 44px; font-size: 16px; }
  .wp-block-button.is-style-contour .wp-block-button__link { min-height: 48px; }
}

/* ---------- Volets (bloc Détails) : FAQ et modèles de maison ---------- */
.wp-block-details { border-bottom: 1px solid var(--filet); }
.wp-block-details summary {
  display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 14px 0; cursor: pointer; list-style: none;
  font-size: var(--wp--preset--font-size--question); line-height: 1.3; color: var(--gris-texte);
}
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::marker { content: ''; }
.wp-block-details summary:hover { color: var(--vert); }
.wp-block-details summary::after {
  content: ''; flex: none; width: 30px; height: 30px; background: currentColor; transition: transform 0.2s;
  -webkit-mask: url('../images/chevron.svg') center / contain no-repeat; mask: url('../images/chevron.svg') center / contain no-repeat;
}
.wp-block-details[open] summary::after { transform: rotate(180deg); }
.wp-block-details > :not(summary) { margin-block-start: 0; margin-block-end: 0; }
.wp-block-details[open] { padding-bottom: 18px; }
@media (prefers-reduced-motion: reduce) { .wp-block-details summary::after { transition: none; } }

/* ---------- Vagues (masques SVG, couleur de la section voisine) ---------- */
.serenya-accroche::after, .serenya-villages::after, .serenya-services::before, .serenya-services::after, .serenya-sejour::before, .serenya-sejour::after,
.serenya-entete-page__photo::after, .serenya-entete-page::after {
  content: ''; position: absolute; left: 0; width: 100%; display: block; pointer-events: none;
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-size: 100% 100%; mask-size: 100% 100%;
}

/* ---------- En-tête ---------- */
.serenya-entete { min-height: 95px; padding: 0 8px 0 33px; position: relative; z-index: 20; gap: 10px 24px; flex-wrap: nowrap; }
.serenya-entete .serenya-logo { flex: none; width: 97px; padding: 6px 0; }
.serenya-logo .wp-block-image, .serenya-logo img { display: block; width: 97px; height: auto; }
.serenya-menu { flex: 1 1 auto; justify-content: center; }
.serenya-menu .wp-block-navigation__container { gap: 4px 28px; }
.serenya-menu .wp-block-navigation-item__content { padding: 8px 6px; line-height: 1.6; }
.serenya-menu .current-menu-item > .wp-block-navigation-item__content { color: var(--noir); border-bottom: 2px solid var(--vert); }
.serenya-menu .wp-block-navigation__submenu-container {
  min-width: 260px; padding: 14px 24px; background: var(--blanc); border: 0; border-radius: var(--r-pilule-s); box-shadow: var(--ombre);
}
.serenya-menu .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 7px 0; white-space: nowrap; }
.serenya-menu .wp-block-navigation__submenu-icon { margin-left: 2px; }
.serenya-menu .wp-block-navigation__submenu-icon, .serenya-menu .wp-block-navigation__submenu-icon svg { width: 14px; height: 14px; }
.serenya-menu .wp-block-navigation-submenu__toggle { min-width: 24px; min-height: 24px; }
.serenya-entete__contact { flex: none; margin: 0; }
.serenya-entete__contact .wp-block-button__link { min-width: 217px; min-height: 51px; font-size: 18px; }

/* Téléphone et tablette (moins de 1000 px) : menu replié derrière le bouton « hamburger ».
   Le bloc Navigation passe seul en mode replié sous 600 px ; on l'impose jusqu'à 999 px. */
@media (max-width: 999px) {
  .serenya-menu .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
  .serenya-menu .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
  .serenya-menu { order: 3; flex: none; }
  .serenya-entete__contact { order: 2; margin-left: auto; }
  .serenya-entete { min-height: var(--haut-entete); padding: 8px 4px 8px 16px; gap: 8px; }
  .serenya-entete .serenya-logo { width: 104px; padding: 0; }
  .serenya-logo .wp-block-image, .serenya-logo img { width: 104px; }
  .serenya-entete__contact .wp-block-button__link { min-width: 0; min-height: 44px; font-size: 16px; padding: 8px 14px; }
  .serenya-menu .wp-block-navigation__responsive-container-open, .serenya-menu .wp-block-navigation__responsive-container-close { width: 48px; height: 48px; padding: 9px; display: flex; align-items: center; justify-content: center; }
  .serenya-menu .wp-block-navigation__responsive-container-open svg, .serenya-menu .wp-block-navigation__responsive-container-close svg { width: 30px; height: 30px; }
  .serenya-menu .wp-block-navigation__responsive-container.is-menu-open { padding: 70px 24px 32px; font-size: 18px; }
  .serenya-menu .is-menu-open .wp-block-navigation__container { align-items: center; text-align: center; gap: 4px; width: 100%; }
  .serenya-menu .is-menu-open .wp-block-navigation-item { align-items: center; }
  .serenya-menu .is-menu-open .wp-block-navigation-item__content { padding: 12px 6px; min-height: 44px; display: inline-flex; align-items: center; }
  .serenya-menu .is-menu-open .wp-block-navigation__submenu-container { min-width: 0; padding: 0 0 8px; box-shadow: none; background: none; align-items: center; }
  .serenya-menu .is-menu-open .wp-block-navigation__submenu-icon { display: none; }
}
@media (min-width: 1000px) and (max-width: 1199px) {
  .serenya-menu .wp-block-navigation__container { gap: 4px 16px; }
}

/* ---------- Accroche ---------- */
.serenya-accroche { position: relative; background: var(--creme); }
.serenya-accroche__photo img { display: block; width: 100%; height: 612px; object-fit: cover; }
.serenya-accroche::after { bottom: 0; height: 200px; background: var(--creme); -webkit-mask-image: url('../images/vague-accroche.svg'); mask-image: url('../images/vague-accroche.svg'); }
.serenya-accroche__encart {
  position: absolute; z-index: 2; left: 50%; transform: translateX(-50%); top: 408px; width: min(1058px, calc(100% - 32px));
  background: rgba(255, 250, 245, 0.93); border-radius: 24px; padding: 32px 40px; text-align: center;
}
@media (max-width: 750px) {
  .serenya-accroche__photo img { height: 300px; }
  .serenya-accroche::after { height: 70px; }
  .serenya-accroche__encart { position: relative; left: auto; top: auto; transform: none; margin: -40px 16px 0; width: auto; padding: 20px 16px; }
}

/* ---------- Villages ---------- */
.serenya-villages { position: relative; padding-top: 72px; padding-bottom: 140px; scroll-margin-top: 0; }
.serenya-villages::after { bottom: 0; height: 20px; background: var(--sable); -webkit-mask-image: url('../images/vague-villages.svg'); mask-image: url('../images/vague-villages.svg'); }
.serenya-villages__liste { max-width: 1240px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, 518px); justify-content: center; gap: 48px 40px; }
.serenya-ville { position: relative; width: 100%; height: 470px; }
.serenya-ville__photo img { display: block; width: 100%; height: auto; aspect-ratio: 518 / 345; object-fit: cover; border-radius: var(--r-pilule-s); }
.serenya-ville__panneau { position: absolute; top: 20px; width: 215px; height: 428px; border-radius: var(--r-carte); color: var(--blanc); display: flex; flex-direction: column; align-items: center; padding-top: 71px; text-align: center; }
.serenya-ville--vert .serenya-ville__panneau { left: 45.6%; background: rgba(104, 136, 22, 0.67); }
.serenya-ville--orange .serenya-ville__panneau { left: 41%; background: rgba(243, 146, 0, 0.67); padding-top: 73px; }
.serenya-ville__epingle, .serenya-ville__epingle img { display: block; width: 46px; height: 46px; }
.serenya-ville__nom { margin: 25px 0 0; font-size: var(--wp--preset--font-size--ville); font-weight: 700; }
.serenya-ville--orange .serenya-ville__nom { margin-top: 39px; }
.serenya-ville__panneau .wp-block-separator { width: 160px; max-width: 160px; height: 1px; border: 0; background: var(--blanc); color: var(--blanc); opacity: 1; margin: 14px 0; }
.serenya-ville--orange .wp-block-separator { margin: 18px 0 14px; }
.serenya-ville__panneau p { font-size: 18px; font-weight: 700; }
.serenya-ville__bouton { margin-top: 34px; }
.serenya-ville__bouton .wp-block-button__link { width: 160px; padding: 0; }
.serenya-ville__maisons, .serenya-ville__maisons img { margin-top: 4px; width: 160px; height: 90px; object-fit: contain; }
.serenya-villages__visite { justify-content: center; margin: 48px auto 0; }
.serenya-villages__visite .wp-block-button__link { width: 223px; }
@media (min-width: 1000px) { .serenya-villages__liste { grid-template-columns: repeat(2, minmax(0, 518px)); justify-content: space-between; } }
@media (min-width: 1300px) { .serenya-villages__visite { position: absolute; left: 50%; top: 462px; transform: translateX(-50%); margin: 0; } }
@media (max-width: 750px) {
  .serenya-villages { padding-top: 40px; padding-bottom: 56px; }
  .serenya-villages__liste { gap: 32px; }
  .serenya-ville { height: auto; }
  .serenya-ville__photo img { height: 220px; aspect-ratio: auto; }
  .serenya-ville__panneau { position: relative; top: auto; left: auto !important; width: calc(100% - 32px); height: auto; margin: -48px auto 0; padding: 28px 16px 16px !important; }
  .serenya-ville--vert .serenya-ville__panneau { background: var(--vert); }
  .serenya-ville--orange .serenya-ville__panneau { background: var(--orange); }
  .serenya-ville__nom { margin-top: 12px !important; }
  .serenya-ville__bouton { margin-top: 20px; }
  .serenya-ville__bouton .wp-block-button__link { min-height: 48px; }
  .serenya-villages__visite { margin-top: 36px; }
}

/* ---------- Diaporama (bloc Galerie, style « Diaporama ») ---------- */
.wp-block-gallery.is-style-diaporama {
  display: flex; flex-wrap: nowrap; gap: 0; margin: 0; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: thin;
  aspect-ratio: 4 / 3; background: var(--sable); border-radius: var(--r-diapo);
}
.wp-block-gallery.is-style-diaporama.has-nested-images figure.wp-block-image:not(#individual-image) {
  flex: 0 0 100% !important; width: 100% !important; max-width: 100%; margin: 0 !important; height: 100%; scroll-snap-align: start; display: block;
}
.wp-block-gallery.is-style-diaporama figure.wp-block-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.wp-block-gallery.is-style-diaporama figcaption { display: none; }
.js .wp-block-gallery.is-style-diaporama { scrollbar-width: none; }
.js .wp-block-gallery.is-style-diaporama::-webkit-scrollbar { display: none; }
.serenya-diapo { position: relative; width: 100%; }
.serenya-diapo__fleche {
  position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; display: flex; align-items: center; justify-content: center;
  width: 59px; height: 59px; padding: 0; border: 0; border-radius: 999px; background: rgba(255, 255, 255, 0.9); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); color: var(--noir); cursor: pointer;
}
.serenya-diapo__fleche:hover { background: var(--blanc); }
.serenya-diapo__fleche--prec { left: 14px; }
.serenya-diapo__fleche--suiv { right: 14px; }
@media (max-width: 750px) {
  .serenya-diapo__fleche { width: 48px; height: 48px; }
  .serenya-diapo__fleche--prec { left: 8px; }
  .serenya-diapo__fleche--suiv { right: 8px; }
}

/* ---------- Texte + diaporama (concept) ---------- */
.serenya-concept { padding-top: 37px; padding-bottom: 60px; }
.serenya-concept__grille { max-width: 1340px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, 660px); justify-content: center; align-items: center; gap: 40px; }
.serenya-concept__texte { background: var(--blanc); border-radius: var(--r-carte); box-shadow: 0 0 20px rgba(0, 0, 0, 0.08); padding: 27px clamp(24px, 4.2vw, 61px) 40px; }
.serenya-concept__texte h2 { margin: 0 0 56px; }
.serenya-concept__texte p { text-align: justify; margin: 0 0 29px; }
.serenya-concept__texte p:last-child { margin-bottom: 0; }
.serenya-concept__photos .wp-block-gallery.is-style-diaporama { aspect-ratio: 660 / 499; }
@media (min-width: 1000px) { .serenya-concept__grille { grid-template-columns: minmax(0, 578fr) minmax(0, 660fr); justify-content: stretch; } }
@media (max-width: 750px) {
  .serenya-concept { padding-top: 28px; padding-bottom: 40px; }
  .serenya-concept__grille { gap: 24px; }
  .serenya-concept__texte { padding: 24px 20px 28px; }
  .serenya-concept__texte h2 { margin-bottom: 24px; }
  .serenya-concept__texte p { text-align: left; margin-bottom: 18px; }
}

/* ---------- Services ---------- */
.serenya-services { position: relative; padding: 63px 0 67px; }
.serenya-services::before { top: 0; height: 63px; background: var(--sable); -webkit-mask-image: url('../images/vague-services-haut.svg'); mask-image: url('../images/vague-services-haut.svg'); }
.serenya-services::after { bottom: 0; height: 67px; background: var(--creme); -webkit-mask-image: url('../images/vague-services-bas.svg'); mask-image: url('../images/vague-services-bas.svg'); }
.serenya-services__corps { max-width: 1440px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1fr); align-items: center; gap: 30px 0; padding: 0 0 70px; }
.serenya-services__gauche { display: flex; flex-direction: column; align-items: center; gap: 33px; }
.serenya-services__gauche .wp-block-image, .serenya-services__gauche .wp-block-image img { width: 389px; max-width: 90%; height: auto; }
.serenya-services__gauche .wp-block-buttons { justify-content: center; }
.serenya-services__gauche .bouton-grand .wp-block-button__link { min-width: 296px; }
.serenya-services__gauche .bouton-moyen .wp-block-button__link { min-width: 266px; min-height: 69px; font-weight: 400; }
.serenya-services__droite { padding: 0 var(--marge-page); }
.serenya-services__grille { margin: 0 auto; padding: 50px clamp(24px, 4vw, 56px); max-width: 783px; background: var(--blanc); border-radius: var(--r-encart); display: grid; grid-template-columns: repeat(2, 1fr); gap: 50px clamp(16px, 2.1vw, 30px); line-height: 1.3; }
.serenya-service { display: flex; flex-wrap: nowrap; gap: clamp(14px, 1.7vw, 24px); align-items: center; }
.serenya-service .wp-block-image { flex: none; width: 39px; height: 39px; }
.serenya-service img { display: block; width: 39px; height: 39px; }
@media (min-width: 1000px) {
  .serenya-services__corps { grid-template-columns: minmax(0, 556fr) minmax(0, 855fr); }
  .serenya-services__droite { padding: 0 36px; }
  .serenya-services__grille { margin: 0; }
}
@media (min-width: 1200px) { .serenya-services__grille { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 750px) {
  .serenya-services__corps { padding-bottom: 40px; }
  .serenya-services__gauche { gap: 20px; }
  .serenya-services__grille { grid-template-columns: 1fr; padding: 28px 20px; gap: 22px; }
  .serenya-service { gap: 16px; }
  .serenya-services__gauche .wp-block-button__link { max-width: calc(100vw - 40px); }
}

/* ---------- Vous êtes ---------- */
.serenya-vous-etes { padding-top: 28px; padding-bottom: 64px; text-align: center; }
.serenya-vous-etes h2 { margin: 0 0 34px; }
.serenya-vous-etes__cartes { display: flex; justify-content: center; gap: 30px 149px; flex-wrap: wrap; }
.serenya-role { position: relative; width: 372px; max-width: 100%; height: 236px; border-radius: 36px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 55px; }
.serenya-role--vert { background: var(--vert); color: var(--vert-pale); }
.serenya-role--orange { background: var(--orange); color: var(--sable); }
.serenya-role .wp-block-image, .serenya-role img { display: block; width: 46px; height: 46px; }
.serenya-role h3 { margin: 0; font-weight: 400; color: inherit; }
.serenya-role a { color: inherit; text-decoration: none; }
.serenya-role a:hover { color: inherit; text-decoration: underline; }
.serenya-role a::after { content: ''; position: absolute; inset: 0; border-radius: inherit; }
.serenya-role a:focus-visible { outline: none; }
.serenya-role:has(a:focus-visible) { outline: 3px solid var(--noir); outline-offset: 3px; }
@media (max-width: 750px) {
  .serenya-vous-etes { padding: 20px 12px 40px; }
  .serenya-vous-etes__cartes { flex-wrap: nowrap; gap: 12px; }
  .serenya-role { flex: 1 1 0; min-width: 0; height: 170px; gap: 24px; border-radius: 28px; }
  .serenya-role h3 { font-size: 22px; }
  .serenya-role .wp-block-image, .serenya-role img { width: 40px; height: 40px; }
}

/* ---------- Témoignages ---------- */
.serenya-temoignages { padding-top: 0; padding-bottom: 24px; }
.serenya-temoignages__grille { max-width: 1385px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, 560px); justify-content: center; gap: 24px 54px; }
@media (min-width: 1000px) { .serenya-temoignages__grille { grid-template-columns: repeat(3, minmax(0, 1fr)); justify-content: stretch; gap: 24px clamp(24px, 3.75vw, 54px); } }
.serenya-avis { border-radius: var(--r-carte); background: var(--vert); padding: 6px 0 0 5px; min-height: 670px; }
.serenya-avis__carte { height: 100%; background: var(--blanc); border-radius: var(--r-carte); box-shadow: var(--ombre); padding: 25px 22px 30px; }
.serenya-avis__tete { display: flex; flex-wrap: nowrap; justify-content: space-between; align-items: flex-start; gap: 12px; }
.serenya-avis__identite { min-width: 0; }
.serenya-avis__prenom { font-size: 21px; max-width: 180px; line-height: 1.3; }
.serenya-avis__etoiles { margin-top: 12px; font-size: 27px; line-height: 1; letter-spacing: 4px; }
.serenya-avis__lieu { margin: 20px 0 0; font-size: 18px; }
.serenya-avis__photo { flex: none; width: min(187px, 40%); }
.serenya-avis__photo img { display: block; width: 100%; height: auto; aspect-ratio: 187 / 185; object-fit: cover; border-radius: 6px; }
.serenya-avis__texte { margin: 0 0 1em; padding: 0 clamp(8px, 1.7vw, 24px) 0 clamp(8px, 1.5vw, 22px); text-align: justify; color: var(--noir); font-size: 16.7px; line-height: 1.6; }
.serenya-avis__tete + .serenya-avis__texte { margin-top: 34px; }
.serenya-avis__texte:last-child { margin-bottom: 0; }
@media (max-width: 1199px) { .serenya-avis__texte { text-align: left; } }
@media (max-width: 750px) {
  .serenya-avis { min-height: 0; }
  .serenya-avis__carte { padding: 20px 16px 24px; }
  .serenya-avis__photo { width: 130px; }
  .serenya-avis__photo img { width: 130px; height: 130px; aspect-ratio: auto; }
  .serenya-avis__texte { padding: 0; margin-top: 20px; }
}

/* ---------- Séjour test ---------- */
.serenya-sejour { position: relative; padding-top: 75px; }
.serenya-sejour::before { top: 0; height: 75px; background: var(--creme); -webkit-mask-image: url('../images/vague-sejour-haut.svg'); mask-image: url('../images/vague-sejour-haut.svg'); }
.serenya-sejour::after { bottom: 0; height: 100px; background: var(--gris-clair); -webkit-mask-image: url('../images/vague-sejour-bas.svg'); mask-image: url('../images/vague-sejour-bas.svg'); }
.serenya-sejour__corps { max-width: 1328px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, 681px); justify-content: center; align-items: start; gap: 40px 30px; padding: 0 var(--marge-page) 120px; }
@media (min-width: 1000px) { .serenya-sejour__corps { grid-template-columns: minmax(0, 547fr) minmax(0, 681fr); justify-content: stretch; } }
.serenya-sejour__encart { position: relative; min-height: 355px; border-radius: var(--r-carte); padding: 69px 40px 24px; display: flex; flex-direction: column; align-items: center; text-align: center; }
.serenya-sejour__illustration { position: absolute; right: -23px; top: -104px; width: 159px; }
.serenya-sejour__illustration img { width: 159px; height: 175px; object-fit: contain; }
.serenya-sejour__encart h2 { line-height: 1.3; }
.serenya-sejour__titre-2 { margin-top: 43px !important; }
.serenya-sejour__bouton { margin-top: 72px; width: 100%; justify-content: center; }
.serenya-sejour__bouton .wp-block-button__link { width: 378px; max-width: 100%; min-height: 55px; border-radius: 15px; font-size: 21px; }
.serenya-sejour__photos .wp-block-gallery.is-style-diaporama { aspect-ratio: 681 / 417; }
@media (max-width: 750px) {
  .serenya-sejour { padding-top: 40px; }
  .serenya-sejour::before { height: 40px; }
  .serenya-sejour::after { height: 50px; }
  .serenya-sejour__corps { padding-bottom: 70px; gap: 24px; }
  .serenya-sejour__encart { margin-top: 56px; padding: 44px 20px 24px; }
  .serenya-sejour__illustration { right: 8px; top: -56px; width: 80px; }
  .serenya-sejour__illustration img { width: 80px; height: 88px; }
  .serenya-sejour__titre-2 { margin-top: 24px !important; }
  .serenya-sejour__bouton { margin-top: 28px; }
  .serenya-sejour__bouton .wp-block-button__link { font-size: 18px; min-height: 56px; width: 100%; }
  .serenya-sejour__photos .wp-block-gallery.is-style-diaporama { aspect-ratio: 4 / 3; }
}

/* ---------- Bandeau d'une page village (bloc Couverture) ---------- */
.wp-block-cover.serenya-bandeau-village { min-height: 416px; padding: 56px clamp(20px, 10.6vw, 153px); justify-content: flex-start; align-items: center; }
.serenya-bandeau-village .wp-block-cover__inner-container { width: 100%; max-width: 1440px; }
.serenya-bandeau-village__carte { width: min(100%, 680px); padding: 32px clamp(20px, 3vw, 40px); background: rgba(255, 250, 245, 0.88); border-radius: var(--r-carte); display: flex; flex-direction: column; gap: 18px; text-align: left; color: var(--gris-texte); }
.serenya-bandeau-village h1 { font-size: clamp(28px, 3vw, 42.7px); font-weight: 400; line-height: 1.2; }
.serenya-bandeau-village__ligne, .serenya-bandeau-village__bas { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 28px; }
.serenya-adresse { display: flex; flex-wrap: nowrap; align-items: center; gap: 12px; font-weight: 700; font-size: 17.7px; line-height: 1.35; }
.serenya-adresse a, .serenya-tel a { color: var(--vert); }
.serenya-adresse a { text-decoration: none; }
.serenya-adresse a:hover { text-decoration: underline; }
.serenya-adresse .wp-block-image, .serenya-adresse img { flex: none; width: 31px; height: 41px; }
.serenya-prix p { line-height: 1.2; }
.serenya-prix__avant { font-size: 20px; }
.serenya-prix__montant { font-size: clamp(30px, 2.8vw, 40px); font-weight: 700; white-space: nowrap; }
.serenya-tel { display: inline-flex; flex-wrap: nowrap; align-items: center; gap: 12px; align-self: flex-start; min-height: 44px; font-weight: 700; font-size: 20px; }
.serenya-tel a { text-decoration: underline; display: inline-flex; align-items: center; min-height: 44px; }
.serenya-tel .wp-block-image, .serenya-tel img { flex: none; width: 24px; height: 24px; }
.serenya-caracteristiques { list-style: none; margin: 0; padding: 4px 0 4px 18px; border-left: 2px solid var(--gris-texte); font-size: 20px; line-height: 1.35; }
.serenya-bandeau-village .bouton-moyen .wp-block-button__link { min-width: 243px; font-size: 21.6px; font-weight: 400; }
@media (max-width: 750px) {
  .wp-block-cover.serenya-bandeau-village { min-height: 0; padding: 28px var(--marge-page); }
  .serenya-bandeau-village__carte { gap: 16px; padding: 24px 20px; }
  .serenya-caracteristiques { font-size: 18px; }
  .serenya-bandeau-village .wp-block-buttons, .serenya-bandeau-village .wp-block-button, .serenya-bandeau-village .wp-block-button__link { width: 100%; }
}

/* ---------- Modèle de maison ---------- */
.serenya-modele { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; padding: 28px 0 8px; }
.serenya-modele__media .wp-block-gallery.is-style-diaporama { aspect-ratio: 413 / 295; border-radius: 20px; }
.serenya-modele__media > p { margin: 12px 0 0; font-size: 18px; text-align: center; }
.serenya-modele__carte { border-radius: var(--r-encart); overflow: hidden; display: flex; flex-direction: column; }
.serenya-modele__carte h3 { padding: 26px 28px 8px; margin: 0; }
.serenya-modele__carte > p:not(.serenya-modele__prix) { padding: 0 28px 24px; font-size: 18px; line-height: 1.55; flex: 1; }
.serenya-modele__prix { margin: 0; padding: 12px 28px; border-radius: 0 0 var(--r-encart) var(--r-encart); font-size: 18px; }
.serenya-modele__prix strong { font-size: 28px; white-space: nowrap; margin-left: 8px; }
.serenya-modele__caracs { grid-column: 1 / -1; display: flex; flex-wrap: wrap; justify-content: center; gap: 24px 32px; margin-top: 8px; }
.serenya-modele__carac { display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center; font-size: 18px; line-height: 1.35; width: 190px; max-width: 240px; }
.serenya-modele__carac .wp-block-image, .serenya-modele__carac img { display: block; width: 36px; height: 36px; }
@media (min-width: 1000px) { .serenya-modele { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 28px clamp(32px, 5vw, 80px); align-items: start; } }
@media (max-width: 750px) {
  .serenya-modele__media > p, .serenya-modele__carac, .serenya-modele__carte > p:not(.serenya-modele__prix) { font-size: 16px; }
  .serenya-modele__carte h3 { padding: 22px 20px 8px; }
  .serenya-modele__carte > p:not(.serenya-modele__prix) { padding: 0 20px 20px; }
  .serenya-modele__prix { padding: 12px 20px; }
  .serenya-modele__prix strong { font-size: 26px; }
}

/* ---------- Bandeau de titre de page ---------- */
.serenya-entete-page { position: relative; background: var(--creme); padding-bottom: 40px; }
.serenya-entete-page::after { bottom: 0; height: 40px; background: var(--vert-pale); -webkit-mask-image: url('../images/vague-entete-bas.svg'); mask-image: url('../images/vague-entete-bas.svg'); }
.wp-block-cover.serenya-entete-page__photo, .serenya-entete-page .wp-block-post-featured-image { position: relative; min-height: clamp(220px, 33.5vw, 483px); height: clamp(220px, 33.5vw, 483px); padding: 0; margin: 0; width: 100%; max-width: none; line-height: 0; }
.serenya-entete-page .wp-block-post-featured-image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.serenya-entete-page__photo::after { bottom: -1px; height: 60px; background: var(--vert-pale); -webkit-mask-image: url('../images/vague-entete-haut.svg'); mask-image: url('../images/vague-entete-haut.svg'); z-index: 2; }
.serenya-entete-page__photo--creme::after { background: var(--creme); }
.serenya-entete-page__titre { background: var(--vert-pale); padding: 0 var(--marge-page) 8px; }
.serenya-h1-page { margin: 0; font-size: clamp(28px, 3vw, 43px); font-weight: 400; line-height: 1.2; }
.wp-block-cover.serenya-entete-page__photo--creme { margin-bottom: 0; }
@media (max-width: 750px) { .serenya-entete-page__photo::after { height: 36px; } }
/* Bandeau de blog : pas de bande de titre, donc pas de bas de page vert */
.serenya-principal > .wp-block-cover.serenya-entete-page__photo--creme { height: clamp(220px, 33.5vw, 483px); }

/* ---------- Texte long, formulaire, page standard ---------- */
.serenya-texte-long { padding-top: 40px; padding-bottom: 72px; overflow-wrap: anywhere; }
.serenya-texte-long .serenya-h1-page { margin-bottom: 24px; }
.serenya-texte-long h2 { margin: 36px 0 12px; font-size: clamp(20px, 2vw, 24px); }
.serenya-texte-long p, .serenya-texte-long ul { margin: 0 0 0.9em; }
.serenya-texte-long ul { padding-left: 1.4em; }
.serenya-texte-long li { margin-bottom: 0.4em; }
.serenya-texte-long a, .serenya-page-contenu a { color: var(--vert); text-decoration: underline; }
.serenya-formulaire { padding-top: 24px; padding-bottom: 24px; scroll-margin-top: var(--haut-entete); }
.serenya-formulaire__cadre iframe { display: block; width: 100%; max-width: var(--l-max, 800px); height: var(--h-mobile, 1100px); margin: 0 auto; border: 0; }
@media (min-width: 751px) { .serenya-formulaire__cadre iframe { height: var(--h, 900px); } }
.serenya-page-contenu { padding: 24px var(--marge-page) 56px; }
.serenya-page-contenu > .wp-block-post-content > * + * { margin-top: 1em; }
.serenya-page-contenu > .wp-block-post-content > .alignfull { margin-left: calc(-1 * var(--marge-page)); margin-right: calc(-1 * var(--marge-page)); max-width: none; width: auto; }
.serenya-diaporama-seul { padding-top: 24px; padding-bottom: 24px; }

/* ---------- Carte au clic ---------- */
.serenya-carte { padding-top: 24px; padding-bottom: 24px; scroll-margin-top: var(--haut-entete); }
.serenya-carte__grille { max-width: var(--wp--style--global--content-size); margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; align-items: stretch; }
@media (min-width: 1000px) { .serenya-carte__grille { grid-template-columns: minmax(0, 340px) minmax(0, 1fr); gap: 32px; } }
.serenya-carte__texte { border-radius: var(--r-encart); padding: 28px; }
.serenya-carte__texte > * { margin-bottom: 12px; }
.serenya-carte__texte > *:last-child { margin-bottom: 0; }
.serenya-carte__nom { font-size: 20px; }
.serenya-carte__texte a { color: var(--vert); font-weight: 700; display: inline-flex; align-items: center; min-height: 44px; }
.serenya-carte__cadre { position: relative; min-height: 320px; border-radius: var(--r-encart); overflow: hidden; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px; padding: 24px; text-align: center; }
.serenya-carte__cadre iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.serenya-carte__info { font-size: 16px; max-width: 420px; }

/* ---------- FAQ et pied de page ---------- */
.serenya-faq { padding-top: 46px; padding-bottom: 48px; padding-left: var(--marge-page); padding-right: var(--marge-page); }
.serenya-faq > * { padding-left: 32px; padding-right: 32px; }
.serenya-faq h2 { margin: 0 0 8px; font-weight: 400; }
.serenya-faq__categorie { margin-top: 32px; }
.serenya-faq__titre-categorie { display: inline-block; font-size: 17px; font-weight: 400; border-bottom: 2px solid var(--orange); padding-bottom: 6px; margin: 0 0 8px; }
.serenya-faq .wp-block-details > :not(summary) { font-size: var(--wp--preset--font-size--reponse); line-height: 1.45; margin-bottom: 0.8em; }
.serenya-faq .wp-block-details > :not(summary):last-child { margin-bottom: 0; }
@media (max-width: 750px) { .serenya-faq > * { padding-left: 0; padding-right: 0; } }

.serenya-pied { padding: 24px 66px 40px 117px; }
.serenya-pied__grille { display: flex; flex-wrap: wrap; gap: 32px 120px; align-items: flex-start; }
.serenya-pied__titre { font-weight: 400; margin: 0 0 10px; }
.serenya-pied__colonne { display: flex; flex-direction: column; gap: 10px; }
.serenya-pied__colonne a { text-decoration: none; }
.serenya-pied__colonne a:hover { text-decoration: underline; }
.serenya-pied__partenaires { min-width: 167px; }
.serenya-pied__navigation { min-width: 296px; }
.serenya-pied__boutons { flex-direction: column; align-items: stretch; gap: 8px; padding-top: 1px; }
.serenya-pied__boutons .wp-block-button { width: 141px; }
.serenya-pied__boutons .wp-block-button__link { width: 100%; }
.serenya-pied__legal { margin-left: auto; align-items: flex-end; text-align: right; padding-top: 60px; gap: 4px; }
.serenya-pied__legal a { max-width: 130px; }
.serenya-pied__mention { margin: 36px 0 0; }
@media (max-width: 750px) {
  .serenya-pied { padding: 32px var(--marge-page) 40px; }
  .serenya-pied, .serenya-pied p, .serenya-pied a, .serenya-pied h2 { font-size: 16px; }
  .serenya-pied__grille { flex-direction: column; gap: 32px; }
  .serenya-pied__partenaires, .serenya-pied__navigation { min-width: 0; }
  .serenya-pied__legal { margin-left: 0; align-items: flex-start; text-align: left; padding-top: 0; }
  .serenya-pied__legal a { max-width: none; }
  .serenya-pied__mention { margin-top: 12px; }
  .serenya-pied__lien a { display: flex; align-items: center; min-height: 44px; }
  .serenya-pied__mention a { display: inline-flex; align-items: center; min-height: 44px; }
  .serenya-pied .wp-block-button.bouton-tres-petit .wp-block-button__link, .serenya-pied .wp-block-button.bouton-petit .wp-block-button__link { min-height: 44px; font-size: 16px; }
}

/* ---------- Blog : liste, cartes, article ---------- */
.serenya-liste-blog { padding-top: 32px; padding-bottom: 72px; }
.serenya-liste-blog > *, .serenya-recents__conteneur { max-width: var(--wp--style--global--content-size); margin-left: auto; margin-right: auto; }
.serenya-liste-blog .wp-block-post-template.is-layout-grid, .serenya-recents .wp-block-post-template.is-layout-grid { gap: 24px; }
.serenya-fiche-article { position: relative; display: flex; flex-direction: column; background: var(--creme); border: 1px solid var(--vert); overflow: hidden; height: 100%; }
.serenya-fiche-article:hover, .serenya-fiche-article:focus-within { box-shadow: var(--ombre); }
.serenya-fiche-article__image { margin: 0; line-height: 0; background: var(--sable); }
.serenya-fiche-article__image img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.serenya-fiche-article__texte { padding: 16px 18px 20px; }
.serenya-fiche-article__titre { margin: 0; font-size: 20px; line-height: 1.3; font-weight: 700; }
.serenya-fiche-article__titre a { color: inherit; text-decoration: none; }
.serenya-fiche-article__titre a::after { content: ''; position: absolute; inset: 0; }
.serenya-fiche-article__titre a:focus-visible { outline: 3px solid var(--orange); outline-offset: -3px; }
.serenya-fiche-article__extrait { margin: 10px 0 0; font-size: 16px; line-height: 1.5; }
.serenya-fiche-article__extrait p { margin: 0; display: -webkit-box; -webkit-line-clamp: 3; line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.wp-block-query-pagination { margin-top: 32px; gap: 16px; }
.wp-block-query-pagination a, .wp-block-query-pagination-numbers .page-numbers { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; justify-content: center; }

.serenya-article { padding-top: 8px; padding-bottom: 40px; }
.serenya-article__cadre { max-width: 1045px; margin: 0 auto; border: 1px solid var(--vert); padding: 32px var(--marge-page) 48px; }
.serenya-article__colonne { max-width: 46rem; margin: 0 auto; overflow-wrap: anywhere; }
.serenya-article__signature { display: flex; flex-wrap: wrap; gap: 4px 16px; margin: 0 0 16px; font-size: 16px; }
.serenya-article__titre { margin: 0 0 24px; font-weight: 400; font-size: clamp(26px, 3vw, 40px); line-height: 1.3; color: var(--noir); }
.serenya-article__corps { color: var(--noir); }
.serenya-article__corps > * + * { margin-top: 1em; }
.serenya-article__corps h2 { margin: 1.6em 0 0.5em; font-size: clamp(22px, 2.2vw, 26px); color: var(--vert); }
.serenya-article__corps h3 { margin: 1.4em 0 0.5em; font-size: clamp(20px, 2vw, 22px); color: var(--vert); }
.serenya-article__corps ul, .serenya-article__corps ol { padding-left: 1.4em; }
.serenya-article__corps li { margin-bottom: 0.4em; }
.serenya-article__corps a { color: var(--orange); text-decoration: underline; }
.serenya-article__corps img { display: block; max-width: 100%; height: auto; margin-left: auto; margin-right: auto; }
.serenya-article__corps .wp-block-button__link { color: var(--blanc); text-decoration: none; }
.serenya-recents-section { padding-top: 40px; padding-bottom: 72px; }
.serenya-recents__tete { margin-bottom: 20px; }
.serenya-recents__titre { margin: 0; font-size: 24px; }
.serenya-recents__tout a { color: var(--vert); text-decoration: underline; display: inline-flex; align-items: center; min-height: 44px; }

/* ---------- Page 404 ---------- */
.serenya-erreur { padding-top: 72px; padding-bottom: 96px; }
.serenya-erreur__titre { margin: 0 0 16px; font-size: clamp(32px, 4vw, 50px); }
.serenya-erreur p { margin: 0 auto 32px; line-height: 1.5; }
@media (max-width: 750px) { .serenya-erreur__boutons { flex-direction: column; align-items: stretch; } }

/* ==========================================================================
   Pages villages (compositions serenya/village-… et serenya/apercu-visite)
   ========================================================================== */
.serenya-vnav, .serenya-vp, .serenya-vequip, .serenya-valmer, .serenya-visite, .serenya-apercu-visite { padding-left: var(--marge-page); padding-right: var(--marge-page); }

/* Les éléments de cette partie comptent le remplissage dans leur hauteur (comme le site d'origine) */
.serenya-vnav__liste a, .serenya-logements > .wp-block-details > summary, .serenya-vp__equip, .serenya-aide__corps .wp-block-button__link, .serenya-valmer__carte .wp-block-button__link, .serenya-apercu-visite__cadre .wp-block-button__link { box-sizing: border-box; }

/* Barre de 4 pilules qui défilent vers les sections */
.serenya-vnav { padding-top: 24px; padding-bottom: 24px; }
.serenya-vnav__liste { max-width: 1312px; margin: 0 auto; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.serenya-vnav__liste > p { margin: 0; }
.serenya-vnav__liste a { display: flex; align-items: center; justify-content: center; min-height: 48px; padding: 8px 12px; background: var(--blanc); border-radius: 20px; color: var(--noir); text-decoration: none; text-align: center; font-size: 18px; }
.serenya-vnav__liste a:hover { color: var(--vert); }
@media (min-width: 751px) { .serenya-vnav__liste { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; } }

/* Présentation : accroche, diaporama + aperçu de la visite à gauche, carte « Le village » à droite */
.serenya-vp { padding-top: 8px; padding-bottom: 72px; scroll-margin-top: 16px; }
.serenya-vp__accroche { max-width: 1240px; margin: 0 auto 40px; text-align: center; font-size: clamp(22px, 2.6vw, 32.7px); line-height: 1.3; }
.serenya-vp__corps { max-width: 1312px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1fr); gap: 40px; align-items: start; }
@media (min-width: 1000px) { .serenya-vp__corps { grid-template-columns: minmax(0, 679fr) minmax(0, 560fr); gap: clamp(28px, 3.5vw, 48px); } }
.serenya-vp__gauche { display: flex; flex-direction: column; gap: 24px; }
.serenya-vp__gauche .wp-block-gallery.is-style-diaporama { aspect-ratio: 679 / 475; border-radius: var(--r-carte); }
.serenya-vp__externe { align-self: center; margin: 0; text-align: center; font-size: 27px; font-weight: 700; }
.serenya-vp__externe a { display: inline-flex; align-items: center; min-height: 44px; color: var(--orange); text-decoration: none; }
.serenya-vp__externe a:hover { color: var(--vert); }
.serenya-vp__carte { position: relative; border-radius: var(--r-carte); padding: 36px clamp(22px, 3vw, 40px) 40px; margin-top: 48px; }
.serenya-vp__illustration, .serenya-vp__illustration img { display: block; }
.serenya-vp__illustration { position: absolute; right: 20px; top: -62px; width: 140px; margin: 0; }
.serenya-vp__illustration img { width: 100%; height: auto; }
.serenya-vp__carte h2 { margin: 0 0 14px; padding-right: 150px; }
.serenya-vp__carte > p { font-size: 18px; line-height: 1.55; margin: 0 0 1em; }
.serenya-vp__equipements { margin: 20px 0 22px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(3, auto); grid-auto-flow: column; gap: 18px 16px; }
.serenya-vp__equip { display: flex; flex-wrap: nowrap; align-items: center; gap: 12px; font-weight: 700; font-size: 18px; line-height: 1.25; }
.serenya-vp__equip .wp-block-image { flex: none; width: 33px; height: 33px; }
.serenya-vp__equip img { display: block; width: 33px; height: 33px; object-fit: contain; }
.serenya-vp__carte .wp-block-buttons { justify-content: center; margin-top: 8px; }
.serenya-vp__carte .wp-block-button { width: min(100%, 310px); }
.serenya-vp__carte .wp-block-button .wp-block-button__link { width: 100%; font-size: 21.6px; font-weight: 400; }
@media (max-width: 750px) {
  .serenya-vp { padding-bottom: 48px; }
  .serenya-vp__accroche { margin-bottom: 24px; }
  .serenya-vp__carte h2 { padding-right: 130px; }
  .serenya-vp__illustration { width: 110px; top: -50px; }
  .serenya-vp__carte > p, .serenya-vp__equip { font-size: 16px; }
  .serenya-vp__externe { font-size: 22px; }
}
@media (max-width: 420px) { .serenya-vp__equipements { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; grid-auto-flow: row; } }

/* Aperçu de la visite virtuelle : photo + bouton orange posé en bas (pages village, contact, merci, le concept) */
.serenya-apercu-visite__cadre { position: relative; border-radius: 40px; overflow: hidden; line-height: 0; }
.serenya-apercu-visite__cadre .wp-block-image { margin: 0; }
.serenya-apercu-visite__cadre img { display: block; width: 100%; height: auto; aspect-ratio: 679 / 461; object-fit: cover; }
.serenya-apercu-visite__cadre .wp-block-buttons { position: absolute; left: 50%; bottom: 20px; transform: translateX(-50%); max-width: calc(100% - 32px); margin: 0; }
.serenya-apercu-visite__cadre .wp-block-button__link { line-height: 1.2; white-space: nowrap; border-radius: 20px; font-size: 18px; }
@media (max-width: 750px) { .serenya-apercu-visite__cadre .wp-block-button__link { white-space: normal; } }
.serenya-apercu-visite { padding-top: 40px; padding-bottom: 56px; }
.serenya-apercu-visite > .serenya-apercu-visite__cadre { max-width: 726px; margin: 0 auto; border-radius: 28px; }
.serenya-apercu-visite > .serenya-apercu-visite__cadre img { aspect-ratio: auto; }
.serenya-apercu-visite > .serenya-apercu-visite__cadre .wp-block-buttons { bottom: 8%; width: min(374px, 80%); }
.serenya-apercu-visite > .serenya-apercu-visite__cadre .wp-block-button { width: 100%; }
.serenya-apercu-visite > .serenya-apercu-visite__cadre .wp-block-button__link { width: 100%; min-height: 48px; font-size: clamp(18px, 2.4vw, 28px); }
/* Visible seulement sur téléphone (comme sur le site d'origine) */
@media (min-width: 751px) { .serenya-mobile-seulement { display: none; } }

/* Équipements : 6 pictogrammes + vague sable */
.serenya-vequip { position: relative; padding-top: 48px; padding-bottom: 56px; }
.serenya-vequip::after { content: ''; position: absolute; left: 0; bottom: 0; width: 100%; height: 50px; background: var(--sable); pointer-events: none; -webkit-mask: url('../images/vague-equipements-bas.svg') 0 0 / 100% 100% no-repeat; mask: url('../images/vague-equipements-bas.svg') 0 0 / 100% 100% no-repeat; }
.serenya-vequip__liste { max-width: 1100px; margin: 0 auto; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px 16px; }
.serenya-vequip__item { display: flex; flex-direction: column; align-items: center; gap: 10px; text-align: center; font-weight: 700; font-size: 18px; line-height: 1.3; }
.serenya-vequip__item .wp-block-image, .serenya-vequip__item img { display: block; width: 38px; height: 38px; object-fit: contain; }
@media (min-width: 751px) { .serenya-vequip__liste { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
@media (max-width: 750px) { .serenya-vequip__item { font-size: 16px; } .serenya-vequip { padding-bottom: 48px; } }

/* Maisons Valmer : carte blanche + photo */
.serenya-valmer { padding-top: 32px; padding-bottom: 72px; scroll-margin-top: 16px; }
.serenya-valmer__corps { max-width: 1312px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px; align-items: stretch; }
@media (min-width: 1000px) { .serenya-valmer__corps { grid-template-columns: minmax(0, 1fr) minmax(0, 532px); gap: clamp(28px, 4vw, 56px); } }
.serenya-valmer__carte { border-radius: var(--r-carte); padding: 36px clamp(22px, 4vw, 56px) 40px; display: flex; flex-direction: column; align-items: stretch; }
.serenya-valmer__picto, .serenya-valmer__picto img { display: block; width: 39px; height: 33px; object-fit: contain; }
.serenya-valmer__picto { margin: 0 auto 10px; }
.serenya-valmer__carte h2 { margin: 0 0 18px; text-align: center; }
.serenya-valmer__carte p { font-size: 18px; line-height: 1.6; text-align: left; margin: 0 0 1em; }
.serenya-valmer__carte p.serenya-valmer__accroche { text-align: center; font-weight: 700; }
.serenya-valmer__carte .wp-block-buttons { justify-content: center; margin-top: 8px; }
.serenya-valmer__carte .wp-block-button { width: min(100%, 377px); }
.serenya-valmer__carte .wp-block-button .wp-block-button__link { width: 100%; font-size: 21.6px; font-weight: 400; }
.serenya-valmer__photo { margin: 0; height: 100%; min-height: 240px; }
.serenya-valmer__photo img { display: block; width: 100%; height: 100%; min-height: 240px; object-fit: cover; border-radius: var(--r-carte); }
@media (max-width: 750px) {
  .serenya-valmer { padding-bottom: 48px; }
  .serenya-valmer__carte p { font-size: 16px; }
  .serenya-valmer__photo { height: auto; min-height: 0; }
  .serenya-valmer__photo img { width: 100%; height: auto; aspect-ratio: 321 / 191; }
}

/* Logements : volets orange ; chaque volet ouvre une zone sable (introduction + modèles de maison) */
.serenya-logements { padding: 40px var(--marge-page) 56px; scroll-margin-top: 16px; }
.serenya-logements > .wp-block-details { max-width: 1312px; margin-block: 0 14px; padding: 0; border: 0; }
.serenya-logements > .wp-block-details:last-child { margin-bottom: 0; }
.serenya-logements > .wp-block-details > summary { min-height: 60px; padding: 12px 40px; background: var(--orange); color: var(--blanc); border-radius: 20px; font-size: 18px; font-weight: 700; line-height: 1.3; }
.serenya-logements > .wp-block-details > summary:hover { color: var(--blanc); filter: brightness(0.94); }
.serenya-logements > .wp-block-details[open] > summary { border-radius: 20px 20px 0 0; }
.serenya-volet__contenu { background: var(--sable); border-radius: 0 0 20px 20px; padding: 32px clamp(20px, 6vw, 80px) 40px; }
.serenya-volet__intro { max-width: 1100px; margin: 0 auto; }
.serenya-volet__intro p { font-size: 20px; line-height: 1.55; margin: 0 0 1em; }
.serenya-volet__contenu > .serenya-modele { max-width: 1100px; margin-left: auto; margin-right: auto; }
.serenya-volet__contenu > .serenya-modele + .serenya-modele { border-top: 2px solid var(--blanc); margin-top: 24px; padding-top: 40px; }
.serenya-volet__note { text-align: center; font-size: 18px; margin: 24px 0 0; }
.serenya-logements .serenya-modele__caracs { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 24px 16px; justify-items: center; margin-top: 8px; }
.serenya-logements .serenya-modele__carac { width: auto; }
@media (max-width: 750px) {
  .serenya-logements > .wp-block-details > summary { padding: 12px 20px; }
  .serenya-volet__contenu { padding: 24px 16px 28px; }
  .serenya-volet__intro p { font-size: 16px; }
}

/* Services d'aide à la personne : titre orange sur crème, puis bloc bleu clair (texte + photo, trois cartes, bouton) */
.serenya-aide { position: relative; }
.serenya-aide__entete { position: relative; padding: 24px var(--marge-page) 68px; }
.serenya-aide__entete::after { content: ''; position: absolute; left: 0; bottom: 0; width: 100%; height: 40px; background: var(--bleu-clair); pointer-events: none; -webkit-mask: url('../images/vague-aide-haut.svg') 0 0 / 100% 100% no-repeat; mask: url('../images/vague-aide-haut.svg') 0 0 / 100% 100% no-repeat; }
.serenya-aide__entete h2 { max-width: 1312px; margin: 0 auto; }
.serenya-aide__corps { max-width: 1312px; margin: 0 auto; padding: 20px var(--marge-page) 96px; display: flex; flex-direction: column; gap: 32px; align-items: center; }
.serenya-aide::after { content: ''; position: absolute; left: 0; bottom: 0; width: 100%; height: 67px; background: var(--creme); pointer-events: none; -webkit-mask: url('../images/vague-services-bas.svg') 0 0 / 100% 100% no-repeat; mask: url('../images/vague-services-bas.svg') 0 0 / 100% 100% no-repeat; }
.serenya-aide__haut { width: 100%; display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px; align-items: center; }
@media (min-width: 1000px) { .serenya-aide__haut { grid-template-columns: minmax(0, 1fr) minmax(0, 630px); gap: clamp(28px, 4vw, 56px); } }
.serenya-aide__texte { border-radius: var(--r-carte); padding: 32px clamp(22px, 3.5vw, 48px); }
.serenya-aide__texte p { margin: 0; font-size: 20px; line-height: 1.6; }
.serenya-aide__photo { margin: 0 auto; width: 100%; max-width: 630px; }
.serenya-aide__photo img { display: block; width: 100%; height: auto; aspect-ratio: 630 / 420; object-fit: cover; border-radius: 62% 38% 55% 45% / 52% 50% 50% 48%; }
.serenya-aide__cartes { width: 100%; display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; }
@media (min-width: 900px) { .serenya-aide__cartes { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; } }
.serenya-aide__carte { border-radius: var(--r-carte); padding: 28px 20px; text-wrap: balance; display: flex; flex-direction: column; align-items: center; gap: 14px; text-align: center; font-weight: 700; font-size: 18px; line-height: 1.4; }
.serenya-aide__carte .wp-block-image, .serenya-aide__carte img { display: block; width: 59px; height: 59px; object-fit: contain; }
.serenya-aide__corps .wp-block-buttons { justify-content: center; max-width: 100%; }
.serenya-aide__corps .wp-block-button .wp-block-button__link { font-size: 21.6px; font-weight: 400; padding: 12px 28px; }
@media (max-width: 750px) {
  .serenya-aide__corps { padding-bottom: 72px; }
  .serenya-aide__texte p { font-size: 16px; }
  .serenya-aide__carte { font-size: 16px; }
  .serenya-aide__corps .wp-block-buttons, .serenya-aide__corps .wp-block-button { width: 100%; }
  .serenya-aide__corps .wp-block-button .wp-block-button__link { font-size: 18px; width: 100%; }
}

/* Rendez-nous visite : titre + carte au clic */
.serenya-visite { padding-top: 40px; padding-bottom: 72px; scroll-margin-top: 16px; }
.serenya-visite__corps { max-width: 1312px; margin: 0 auto; }
.serenya-visite__corps > h2 { margin: 0 0 24px; }
.serenya-visite .serenya-carte { padding: 0; }
.serenya-visite .serenya-carte__grille { max-width: none; }

/* Page « Nos résidences » : accroche verte, titres orange fins, vague sable, bloc vert « Trouver votre village » */
.serenya-nr { position: relative; padding: 0 var(--marge-page) 120px; }
.serenya-nr::after { content: ''; position: absolute; left: 0; bottom: 0; width: 100%; height: 90px; background: var(--sable); pointer-events: none; -webkit-mask: url('../images/vague-texte-bas.svg') 0 0 / 100% 100% no-repeat; mask: url('../images/vague-texte-bas.svg') 0 0 / 100% 100% no-repeat; }
.serenya-nr__corps { max-width: 1076px; margin: 0 auto; }
.serenya-nr__accroche { margin: 0; padding: 24px 0 36px; text-align: center; font-size: clamp(19px, 2.2vw, 31.6px); font-weight: 700; line-height: 1.35; }
.serenya-nr__bloc { margin-bottom: 32px; }
.serenya-nr__bloc h3 { margin: 0 0 14px; font-size: clamp(19px, 1.6vw, 22px); font-weight: 400; }
.serenya-nr__bloc p, .serenya-nr__bloc li { line-height: 1.65; }
.serenya-nr__bloc p { margin: 0 0 0.9em; }
.serenya-nr__bloc ul { margin: 0 0 0.9em; padding-left: 1.4em; }
.serenya-nr__bloc a:not(.wp-block-button__link) { color: var(--orange); }
.serenya-nr__bloc .wp-block-buttons { justify-content: center; margin-top: 20px; }
.serenya-nr__bloc .wp-block-button__link { min-width: 312px; }
@media (max-width: 750px) {
  .serenya-nr { padding-bottom: 80px; }
  .serenya-nr::after { height: 50px; }
  .serenya-nr__bloc { margin-bottom: 28px; }
  .serenya-nr__bloc .wp-block-button, .serenya-nr__bloc .wp-block-button__link { width: 100%; min-width: 0; }
}
.serenya-trouver { padding: 0 var(--marge-page) 72px; }
.serenya-trouver__bloc { max-width: 1199px; margin: 0 auto; background: #b2c67e; border-radius: var(--r-carte); padding: 36px clamp(16px, 3vw, 40px) 40px; }
.serenya-trouver__bloc > h3 { margin: 0 0 28px; text-align: center; font-size: var(--wp--preset--font-size--section); font-weight: 400; }
.serenya-trouver__cartes { display: flex; flex-direction: column; gap: 28px; }
.serenya-trouver .serenya-carte { padding: 0; }
.serenya-trouver .serenya-carte__grille { max-width: none; }
.serenya-trouver .serenya-carte__nom { display: flex; align-items: center; gap: 10px; }
.serenya-trouver .serenya-carte__nom::before { content: ''; flex: none; width: 25px; height: 35px; background: var(--orange); -webkit-mask: url('../images/localisation-blanc.svg') center / contain no-repeat; mask: url('../images/localisation-blanc.svg') center / contain no-repeat; }
/* Cartes des villages de la page « Nos résidences » : fond sable, pas de vague, hauteur de l'original */
.serenya-villages--residences { padding-top: 24px; padding-bottom: 72px; }
.serenya-villages--residences::after { display: none; }
.serenya-villages--residences .serenya-ville { height: 440px; }
.serenya-villages--residences .serenya-ville__panneau { height: auto; min-height: 400px; padding-top: 64px; }
@media (max-width: 750px) { .serenya-villages--residences { padding-bottom: 48px; } .serenya-villages--residences .serenya-ville { height: auto; } .serenya-villages--residences .serenya-ville__panneau { min-height: 0; } }
@media (max-width: 750px) { .serenya-trouver { padding-bottom: 48px; } }

/* Coordonnées des villages (page Contact) : bandeau vert avec le nom, puis lignes étiquette / valeur */
.serenya-coord { padding: 24px var(--marge-page) 48px; }
.serenya-coord__grille { max-width: 1240px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, 560px); justify-content: center; gap: 40px; }
@media (min-width: 1000px) { .serenya-coord__grille { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px; justify-content: stretch; } }
.serenya-coord__grille > *, .serenya-coord__ville > *, .serenya-sec__grille > *, .serenya-sec__texte > *, .serenya-sec__media > * { margin-block-start: 0; margin-block-end: 0; }
.serenya-coord__nom { margin: 0; background: var(--vert); border-radius: var(--r-encart); font-size: clamp(20px, 2vw, 26px); text-align: center; }
.serenya-coord__nom a { display: block; padding: 18px 16px; color: var(--blanc); font-weight: 700; text-decoration: none; }
.serenya-coord__ville h3 { margin: 24px 0 12px; text-align: center; color: var(--vert); font-weight: 400; font-size: clamp(20px, 1.8vw, 22.6px); }
.serenya-coord__ligne { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 12px; padding: 8px 0; font-size: clamp(16px, 1.6vw, 20px); line-height: 1.4; }
.serenya-coord__ligne > * { margin: 0; }
.serenya-coord__ligne > p:first-child { color: var(--vert); font-style: italic; }
.serenya-coord__ligne > p:last-child { color: var(--orange); overflow-wrap: anywhere; }
.serenya-coord__ligne a { color: var(--orange); display: inline-flex; align-items: center; min-height: 44px; }
.serenya-coord__ligne a[href^='mailto:'] { text-decoration: underline; }
.serenya-coord__ligne a[href^='tel:'] { font-weight: 700; }

/* ==========================================================================
   Section « texte + image » (composition serenya/section-texte) : Le concept, Nos services, Maisons Valmer, Nous rejoindre
   ========================================================================== */
.serenya-sec { position: relative; padding: 36px var(--marge-page); }
.serenya-sec--vague { padding-bottom: 84px; }
.serenya-sec--carte { padding-top: 12px; padding-bottom: 12px; }
.serenya-sec--vague::after { content: ''; position: absolute; left: 0; bottom: -1px; width: 100%; height: 60px; pointer-events: none; -webkit-mask: url('../images/vague-section-bas.svg') 0 0 / 100% 100% no-repeat; mask: url('../images/vague-section-bas.svg') 0 0 / 100% 100% no-repeat; }
.serenya-sec--vague-creme::after { background: var(--creme); }
.serenya-sec--vague-sable::after { background: var(--sable); }
.serenya-sec--vague-gris-clair::after { background: var(--gris-clair); }
.serenya-sec--vague-vert-pale::after { background: var(--vert-pale); }
.serenya-sec__grille { max-width: 1240px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px; align-items: center; }
.serenya-sec__texte { min-width: 0; max-width: 100%; }
.serenya-sec__texte--carte { background: var(--blanc); border-radius: var(--r-carte); border-right: 5px solid var(--orange); border-bottom: 5px solid var(--orange); padding: clamp(24px, 3vw, 40px) clamp(20px, 4vw, 56px); box-shadow: var(--ombre); }
.serenya-sec__h1 { margin: 0 0 20px; font-weight: 700; line-height: 1.2; font-size: var(--wp--preset--font-size--section); }
.serenya-sec__h1--vert { font-weight: 400; font-size: clamp(28px, 3vw, 43px); }
.serenya-sec__h1--etiquette { display: block; width: fit-content; max-width: 100%; margin-bottom: 28px; color: var(--orange); background: var(--blanc); border-radius: 24px; border-right: 4px solid var(--orange); border-bottom: 4px solid var(--orange); padding: 18px 36px; font-size: clamp(24px, 2.4vw, 30px); }
.serenya-sec__titre { margin: 0 0 16px; font-weight: 700; line-height: 1.25; font-size: clamp(22px, 2.3vw, 28px); }
.serenya-sec--carte .serenya-sec__titre { font-weight: 400; font-size: clamp(24px, 2.6vw, 37px); }
.serenya-sec__texte p, .serenya-sec__texte li { line-height: 1.65; }
.serenya-sec__texte p { margin: 0 0 0.9em; }
.serenya-sec__texte ul { margin: 0 0 0.9em; padding-left: 1.4em; }
.serenya-sec__texte li { margin-bottom: 0.5em; }
.serenya-sec__texte p.serenya-sec__sous-titre { color: var(--orange); font-weight: 700; }
.serenya-sec__texte a:not(.wp-block-button__link) { color: inherit; font-weight: 700; text-decoration: underline; }
.serenya-sec .wp-block-buttons { flex-direction: column; align-items: flex-start; gap: 18px; margin-top: 8px; }
.serenya-sec__media { min-width: 0; display: flex; flex-direction: column; align-items: center; gap: 24px; }
.serenya-sec__media .wp-block-image { margin: 0; width: 100%; max-width: 440px; }
.serenya-sec__media img { display: block; width: 100%; height: auto; max-width: 440px; }
.serenya-sec__media--arrondi img { border-radius: 36px; }
.serenya-sec__media--blob img { border-radius: 58% 42% 55% 45% / 52% 47% 53% 48%; }
.serenya-sec__media--libre .wp-block-image, .serenya-sec__media--libre img { max-width: 360px; }
.serenya-sec .serenya-sec__media .wp-block-buttons { align-items: center; }
.serenya-sec--image-seule { padding: 0; }
.serenya-sec--image-seule .wp-block-image, .serenya-sec--image-seule img { max-width: 100%; border-radius: 0; }
@media (min-width: 1000px) {
  .serenya-sec { padding-top: 48px; padding-bottom: 48px; }
  .serenya-sec--vague { padding-bottom: 100px; }
  .serenya-sec--carte { padding-top: 14px; padding-bottom: 14px; }
  .serenya-sec__grille--duo { grid-template-columns: minmax(0, 1fr) minmax(0, 440px); gap: 56px; }
  .serenya-sec__grille--gauche.serenya-sec__grille--duo { grid-template-columns: minmax(0, 440px) minmax(0, 1fr); }
  .serenya-sec__grille--gauche .serenya-sec__media { order: -1; }
}
@media (min-width: 1200px) { .serenya-sec__texte p, .serenya-sec__texte li { text-align: justify; hyphens: auto; } }
@media (max-width: 750px) {
  .serenya-sec { padding-top: 28px; }
  .serenya-sec__h1--etiquette { padding: 14px 24px; }
  .serenya-sec .wp-block-buttons, .serenya-sec .wp-block-button, .serenya-sec .wp-block-button__link { width: 100%; }
  .serenya-sec--carte { padding-left: 12px; padding-right: 12px; }
  .serenya-sec--image-seule { padding: 0; }
}

/* Page « Merci » : photo floutée, voile crème, panneau blanc centré */
.wp-block-cover.serenya-merci { min-height: clamp(380px, 45vw, 656px); padding: 40px var(--marge-page); overflow: hidden; justify-content: center; align-items: center; }
.serenya-merci .wp-block-cover__image-background { filter: blur(6px); transform: scale(1.04); }
.serenya-merci::before { content: ''; position: absolute; inset: 0; background: rgba(255, 250, 245, 0.4); z-index: 1; }
.serenya-merci .wp-block-cover__inner-container { position: relative; z-index: 2; width: min(920px, 100%); }
.serenya-merci__panneau { background: rgba(255, 255, 255, 0.85); border-radius: var(--r-carte); padding: clamp(28px, 5vw, 64px) clamp(20px, 4vw, 56px); text-align: center; }
.serenya-merci__coche, .serenya-merci__coche img { display: inline-block; width: 75px; height: 75px; margin: 0; }
.serenya-merci__titre { margin: 20px 0 10px; font-weight: 400; font-size: clamp(40px, 5vw, 67px); line-height: 1.1; }
.serenya-merci__texte { margin: 0; font-weight: 400; font-size: clamp(20px, 2.2vw, 27px); line-height: 1.3; }