/*
Theme Name: Date Love Renouveau
Author: Date-Love
Description: Thème sur mesure fidèle à la maquette validée de Date-Love.
Version: 1.1.12
Text Domain: date-love
*/

:root { --date-love-paragraph-size: 17px; --date-love-small-size: 15px; }
html { scroll-padding-top: 96px; }
body { overflow-x: hidden; }
body.admin-bar .main-nav { top: 32px; }
.screen-reader-text { position: absolute!important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.screen-reader-text:focus { clip: auto!important; width: auto; height: auto; margin: 0; padding: 12px; background: #fff; z-index: 9999; }
.dl-menu-toggle { display: none; width: 44px; height: 44px; border: 0; background: transparent; cursor: pointer; padding: 9px; }
.dl-menu-toggle > span:not(.screen-reader-text) { display: block; height: 2px; margin: 5px 0; background: #3b1c28; }
.main-nav a, .main-nav summary, .home-button, .event-action a { transition: color .18s, background .18s, transform .18s, box-shadow .18s; }
.home-button:hover, .main-cta:hover, .event-action a:hover { text-decoration: none; transform: translateY(-2px); }
.hero-couple { background-position: center; background-size: cover; background-repeat: no-repeat; }
.home-page .hero-couple .love-note { width: auto; max-width: none; min-height: 0; margin: 0; flex-direction: row; justify-content: flex-start; align-items: center; padding: 18px 22px; position: absolute; bottom: 30px; left: -50px; border: 0; border-radius: 18px; }
.home-page .hero-couple .love-note > span { flex: 0 0 42px; width: 42px; height: 42px; }
.home-page .hero-couple .love-note p { align-items: flex-start; }
.home-page .hero-couple .love-note small { color: #b22755; letter-spacing: .12em; font-size: 9px; }
.home-page .hero-couple .love-note strong { margin-top: 4px; font: 600 16px Playfair Display; }
.home-how { text-align: center; padding: 105px 7vw; }
.home-how .home-link { display: inline-block; margin-top: 12px; }
.home-press > p { color: #765e68; max-width: 780px; margin: 0 auto 50px; font-size: var(--date-love-paragraph-size); line-height: 1.8; }
.event-results article[hidden], .event-empty[hidden] { display: none!important; }
.home-final .home-button { margin: 0 auto; }
.footer-links a:hover { color: #fff; }
.main-footer a { color: inherit; }
.main-footer small a { text-decoration: underline; text-underline-offset: 3px; }

.dl-page { --pink: #b22755; --dark: #3b1c28; --cream: #fffaf8; --blush: #f8e7ed; color: var(--dark); background: var(--cream); }
.dl-page-hero { text-align: center; background: linear-gradient(135deg,#fffaf8 54%,#f8e7ed); padding: 100px 7vw 90px; }
.dl-page-kicker { color: var(--pink); letter-spacing: .18em; font-size: 14px; font-weight: 800; }
.dl-page-hero h1 { max-width: 1000px; margin: 16px auto 18px; font: 600 clamp(48px,6vw,78px)/1.05 Playfair Display; }
.dl-page-hero p { color: #765e68; margin: 0 auto; font-size: 18px; }
.dl-page-content { width: min(1040px, calc(100% - 40px)); margin: 0 auto; padding: 85px 0 110px; font-size: 17px; line-height: 1.8; }
.dl-page-content > h2 { margin: 0 0 25px; font: 600 clamp(35px,4vw,54px)/1.12 Playfair Display; }
.dl-page-content > h2:not(:first-child) { margin-top: 70px; }
.dl-page-content h3 { font: 600 25px/1.25 Playfair Display; }
.dl-page-content p { color: #765e68; }
.dl-page-content a { color: var(--pink); font-weight: 700; }
.dl-content-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; margin: 46px 0; }
.dl-content-grid article { background: #fff; border: 1px solid #ecdce1; border-radius: 22px; padding: 31px; box-shadow: 0 18px 40px rgba(97,21,46,.07); }
.dl-content-grid article > span { color: var(--pink); letter-spacing: .14em; font-size: 12px; font-weight: 800; }
.dl-content-grid article p { font-size: 15px; }
.dl-page-content details { background: #fff; border: 1px solid #ead8de; border-radius: 15px; margin: 14px 0; padding: 21px 24px; }
.dl-page-content summary { color: var(--dark); cursor: pointer; font-weight: 800; }
.dl-page-content blockquote { background: #fff; border-left: 4px solid var(--pink); margin: 25px 0; padding: 30px; border-radius: 0 18px 18px 0; font: italic 600 24px/1.55 Playfair Display; }
.dl-page-content blockquote cite { display: block; color: var(--pink); margin-top: 14px; font: 700 14px DM Sans; }
.dl-content-button { display: inline-flex; color: #fff!important; background: var(--pink); border-radius: 99px; padding: 16px 24px; }
.dl-contact-box { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; margin-top: 38px; }
.dl-contact-box p { background: #fff; border: 1px solid #ead8de; border-radius: 18px; margin: 0; padding: 24px; }

@media (max-width: 1020px) {
  .dl-menu-toggle { display: block; }
  .main-nav nav { max-height: calc(100vh - 82px); overflow: auto; }
  .main-nav nav.open { display: flex; }
}
@media (max-width: 782px) { body.admin-bar .main-nav { top: 46px; } }
@media (max-width: 760px) {
  .dl-content-grid, .dl-contact-box { grid-template-columns: 1fr; }
  .dl-page-content { width: min(100% - 30px, 1040px); font-size: 16px; padding: 65px 0 85px; }
  .dl-page-hero { padding: 70px 6vw; }
  .home-video .home-button, .home-cities .home-button { margin-top: 28px!important; }
}
@media (max-width: 560px) {
  body.admin-bar .main-nav { top: 0; }
  .home-hero { min-height: auto; }
  .hero-message > p { font-size: 17px; }
  .home-intro, .home-how, .home-press, .home-finder { padding-left: 6vw; padding-right: 6vw; }
  .home-page .hero-couple .love-note { left: 15px; }
}


/* Synchronisation finale de la maquette Date-Love */
.mobile-signup-sticky { display: none; }
.main-nav .nav-dropdown { position: relative; }
.main-nav .nav-dropdown > summary { cursor: pointer; list-style: none; }
.main-nav .nav-dropdown > summary::-webkit-details-marker { display: none; }
.main-nav .nav-dropdown > div { z-index: 120; min-width: 220px; }
.main-nav .nav-signup > div { right: 0; left: auto; }
@media (hover:hover) and (min-width:1021px) {
  .main-nav .nav-dropdown:hover > div { display: flex; }
}
@media (max-width:1020px) {
  .main-nav .nav-dropdown { width: 100%; }
  .main-nav .nav-dropdown > summary { width: 100%; }
  .main-nav .nav-dropdown[open] > div { display: flex; position: static; box-shadow: none; width: 100%; }
  .mobile-signup-sticky { display: inline-flex; position: fixed; left: 50%; bottom: 16px; transform: translateX(-50%); z-index: 999; align-items: center; justify-content: center; padding: 14px 23px; border-radius: 999px; color: #fff; background: #b22755; box-shadow: 0 10px 30px rgba(59,28,40,.28); font-weight: 800; text-decoration: none; white-space: nowrap; }
  body.admin-bar .mobile-signup-sticky { bottom: 16px; }
}

/* Conseils pratiques : contenu détaillé et ancres sans lien cassé. */
.advice-guides { padding-top: 30px; }
.advice-guides .content-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.advice-guides .content-grid article,
.advice-page .advice-guides .content-grid article:nth-last-child(-n+2),
.advice-page .advice-guides .content-grid article:last-child { grid-column: auto; }
.advice-guides .content-grid article { scroll-margin-top: 110px; }
.advice-guides .content-grid p { font-size: 16px; }
.advice-guides .content-grid p + p { margin-top: 14px; }
@media (max-width: 700px) {
  .advice-guides .content-grid { grid-template-columns: 1fr; }
}

/* Le CTA fixe s’efface pendant l’ouverture du menu mobile. */
@media (max-width: 1020px) {
  body:has(#date-love-navigation.open) .mobile-signup-sticky { display: none; }
}


/* Page Lieux — restauration fidèle à la maquette validée */
.places-page {
  --places-wine: #9d214a;
  --places-rose: #b22755;
  --places-pink: #f5c7d3;
  --places-blush: #fff2f5;
  --places-cream: #fffaf8;
  --places-dark: #3b1c28;
  --places-muted: #765e68;
  color: var(--places-dark);
  background: var(--places-cream);
}
.places-page * { box-sizing: border-box; }
.places-page em { color: var(--places-rose); font-style: normal; }
.places-kicker {
  display: block;
  color: var(--places-rose);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .18em;
}
.places-hero {
  width: min(1240px, calc(100% - 48px));
  min-height: 610px;
  margin: 0 auto;
  padding: 72px 0 76px;
  display: grid;
  grid-template-columns: .88fr 1.12fr;
  gap: 58px;
  align-items: center;
}
.places-hero-copy h1 {
  margin: 18px 0 24px;
  color: var(--places-dark);
  font: 600 clamp(50px, 5.2vw, 76px)/1.02 Playfair Display, serif;
  letter-spacing: -.035em;
}
.places-hero-copy > p {
  max-width: 530px;
  margin: 0 0 30px;
  color: var(--places-muted);
  font-size: 19px !important;
  line-height: 1.75 !important;
}
.places-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 52px;
  padding: 14px 23px;
  border: 2px solid var(--places-rose);
  border-radius: 12px;
  color: #fff;
  background: var(--places-rose);
  font-size: 15px;
  font-weight: 800;
  text-decoration: none;
  box-shadow: 0 12px 28px rgba(157,33,74,.2);
  transition: transform .18s ease, box-shadow .18s ease;
}
.places-button:hover {
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 16px 34px rgba(157,33,74,.28);
}
.places-hero-visual {
  min-height: 470px;
  position: relative;
  isolation: isolate;
}
.places-hero-visual img {
  width: 100%;
  height: 470px;
  display: block;
  object-fit: cover;
  object-position: center;
  border-radius: 150px 24px 150px 24px;
  box-shadow: 0 28px 60px rgba(59,28,40,.18);
}
.places-hero-visual:after {
  content: "";
  position: absolute;
  z-index: -1;
  right: -24px;
  bottom: -24px;
  width: 45%;
  height: 45%;
  border-radius: 90px 0 90px 0;
  background: rgba(245,199,211,.58);
}
.places-hero-heart {
  width: 54px;
  height: 54px;
  position: absolute;
  top: 26px;
  right: 28px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: var(--places-rose);
  background: rgba(255,255,255,.94);
  font-size: 25px;
  box-shadow: 0 10px 25px rgba(59,28,40,.18);
}
.places-heart-line {
  width: 150px;
  height: 90px;
  position: absolute;
  left: -52px;
  bottom: 38px;
  border: 3px dashed #e85d87;
  border-color: #e85d87 transparent transparent #e85d87;
  border-radius: 70% 0 0 0;
  transform: rotate(-18deg);
  opacity: .75;
}
.places-map-section,
.places-venues {
  padding: 84px 24px;
}
.places-map-section {
  border-top: 1px solid #f1e3e7;
  background: #fff;
}
.places-section-heading {
  max-width: 760px;
  margin: 0 auto 42px;
  text-align: center;
}
.places-section-heading > span {
  display: block;
  color: #ef9eb2;
  font-size: 22px;
}
.places-section-heading h2 {
  margin: 8px 0 10px;
  color: var(--places-dark);
  font: 600 clamp(38px, 4.2vw, 58px)/1.08 Playfair Display, serif;
}
.places-section-heading p {
  margin: 0;
  color: var(--places-muted);
  font-size: 18px !important;
  line-height: 1.65 !important;
}
.places-map {
  width: min(1120px, 100%);
  height: 520px;
  margin: 0 auto;
  position: relative;
  overflow: hidden;
  border: 1px solid #f0dce2;
  border-radius: 28px;
  background:
    radial-gradient(circle at 50% 45%, rgba(255,255,255,.1), rgba(255,255,255,.88) 66%),
    radial-gradient(#ecd7dd 1px, transparent 1px),
    #fff8fa;
  background-size: auto, 18px 18px, auto;
  box-shadow: 0 24px 55px rgba(91,24,47,.1);
}
.places-belgium {
  width: 68%;
  height: 66%;
  position: absolute;
  top: 9%;
  left: 16%;
  clip-path: polygon(5% 32%, 15% 23%, 25% 26%, 34% 14%, 44% 18%, 52% 8%, 62% 17%, 72% 12%, 79% 24%, 95% 30%, 98% 47%, 86% 55%, 81% 71%, 66% 67%, 58% 90%, 43% 79%, 31% 85%, 22% 70%, 9% 65%, 2% 50%);
  background: linear-gradient(145deg,#feeef2,#f6dbe3);
  filter: drop-shadow(0 18px 12px rgba(89,36,54,.18));
}
.places-belgium:after {
  content: "";
  position: absolute;
  inset: 7%;
  clip-path: inherit;
  border: 2px solid rgba(255,255,255,.78);
  background:
    linear-gradient(54deg, transparent 47%, rgba(255,255,255,.85) 48% 49%, transparent 50%),
    linear-gradient(-28deg, transparent 53%, rgba(255,255,255,.75) 54% 55%, transparent 56%);
}
.places-country {
  position: absolute;
  color: #baa7ad;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .12em;
}
.places-country-north { top: 9%; right: 12%; }
.places-country-west { top: 48%; left: 5%; }
.places-country-east { top: 55%; right: 4%; }
.places-country-south { bottom: 8%; left: 9%; color: #a98c95; }
.places-route {
  width: 2px;
  height: 122px;
  position: absolute;
  left: 28%;
  bottom: 10%;
  border-left: 2px dashed #d7a0b2;
  transform: rotate(15deg);
  transform-origin: bottom;
}
.places-pin {
  position: absolute;
  z-index: 3;
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--places-dark);
  text-decoration: none;
  transform: translate(-50%,-50%);
}
.places-pin span {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  flex: 0 0 46px;
  border: 4px solid #fff;
  border-radius: 50% 50% 50% 0;
  color: #fff;
  background: var(--places-rose);
  font-size: 20px;
  transform: rotate(-45deg);
  box-shadow: 0 9px 18px rgba(98,24,51,.28);
  transition: transform .18s ease;
}
.places-pin span::first-letter { transform: rotate(45deg); }
.places-pin strong {
  padding: 6px 11px;
  border-radius: 99px;
  color: #fff;
  background: var(--places-rose);
  font-size: 13px;
  box-shadow: 0 7px 15px rgba(98,24,51,.18);
}
.places-pin:hover { color: var(--places-dark); }
.places-pin:hover span { transform: rotate(-45deg) scale(1.12); }
.places-pin-brussels { top: 30%; left: 44%; }
.places-pin-liege { top: 39%; left: 70%; }
.places-pin-namur { top: 49%; left: 55%; }
.places-pin-paris { top: 84%; left: 27%; }

.places-venues {
  background: var(--places-cream);
}
.places-grid {
  width: min(1180px, 100%);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(6,minmax(0,1fr));
  gap: 24px;
}
.place-card {
  grid-column: span 2;
  min-width: 0;
  overflow: hidden;
  scroll-margin-top: 105px;
  border: 1px solid #eddce1;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 16px 38px rgba(91,24,47,.08);
  transition: transform .18s ease, box-shadow .18s ease;
}
.place-card:nth-child(4) { grid-column: 2 / span 2; }
.place-card:nth-child(5) { grid-column: 4 / span 2; }
.place-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 22px 46px rgba(91,24,47,.14);
}
.place-photo {
  height: 220px;
  position: relative;
  overflow: hidden;
  background: #eadce0;
}
.place-photo img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transition: transform .3s ease;
}
.place-card:hover .place-photo img { transform: scale(1.035); }
.place-photo span {
  position: absolute;
  top: 14px;
  left: 14px;
  padding: 7px 11px;
  border-radius: 8px;
  color: #fff;
  background: var(--places-rose);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
}
.place-content {
  padding: 25px 25px 27px;
}
.place-content h3 {
  margin: 0 0 9px;
  color: var(--places-wine);
  font: 600 27px/1.15 Playfair Display, serif;
}
.places-page .place-card p {
  margin: 0 0 14px;
  color: var(--places-muted);
  font-size: 17px !important;
  line-height: 1.65 !important;
}
.places-page .place-card .place-address {
  min-height: 48px;
  color: #6b4250;
  font-size: 14px !important;
  font-weight: 700;
}
.place-content a {
  display: inline-flex;
  margin-top: 4px;
  color: var(--places-rose);
  font-size: 14px;
  font-weight: 800;
  text-decoration: none;
}
.place-content a:hover { text-decoration: underline; text-underline-offset: 4px; }

.places-benefits {
  width: min(1180px, calc(100% - 48px));
  margin: 0 auto 88px;
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  overflow: hidden;
  border: 1px solid #f0dce2;
  border-radius: 22px;
  background: linear-gradient(135deg,#fff0f4,#fff9fa);
}
.places-benefits article {
  padding: 34px 24px;
  text-align: center;
}
.places-benefits article + article { border-left: 1px solid #ead4db; }
.places-benefits article > span {
  width: 64px;
  height: 64px;
  margin: 0 auto 15px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: var(--places-rose);
  background: #f6cbd6;
  font-size: 26px;
}
.places-benefits h3 {
  margin: 0 0 8px;
  font: 600 20px/1.2 Playfair Display, serif;
}
.places-page .places-benefits p {
  margin: 0;
  color: var(--places-muted);
  font-size: 15px !important;
  line-height: 1.55 !important;
}
.places-cta {
  padding: 54px max(6vw,24px);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(45px,8vw,120px);
  color: #fff;
  background:
    radial-gradient(circle at 12% 30%,rgba(255,255,255,.12),transparent 24%),
    linear-gradient(120deg,#8d153e,#b22755);
}
.places-cta .places-kicker { color: #ffd7e1; }
.places-cta h2 {
  margin: 8px 0 8px;
  color: #fff;
  font: 600 clamp(30px,3vw,44px)/1.12 Playfair Display, serif;
}
.places-page .places-cta p {
  margin: 0;
  color: #f8dce4;
  font-size: 17px !important;
}
.places-cta-actions {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
}
.places-button-light {
  color: var(--places-wine);
  background: #fff;
  border-color: #fff;
}
.places-button-light:hover { color: var(--places-wine); }
.places-button-outline {
  color: #fff;
  background: transparent;
  border-color: rgba(255,255,255,.8);
  box-shadow: none;
}

@media (max-width: 1000px) {
  .places-hero {
    min-height: 0;
    padding: 62px 0 70px;
    grid-template-columns: 1fr;
    gap: 42px;
  }
  .places-hero-copy { text-align: center; }
  .places-hero-copy > p { margin-left: auto; margin-right: auto; }
  .places-hero-visual { min-height: 430px; }
  .places-hero-visual img { height: 430px; }
  .places-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .place-card,
  .place-card:nth-child(4),
  .place-card:nth-child(5) { grid-column: auto; }
  .place-card:last-child { grid-column: 1 / -1; width: calc(50% - 12px); justify-self: center; }
  .places-benefits { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .places-benefits article + article { border-left: 0; }
  .places-benefits article:nth-child(even) { border-left: 1px solid #ead4db; }
  .places-benefits article:nth-child(n+3) { border-top: 1px solid #ead4db; }
  .places-cta { flex-direction: column; text-align: center; gap: 28px; }
  .places-cta-actions { justify-content: center; }
}
@media (max-width: 680px) {
  .places-hero {
    width: min(100% - 32px,1240px);
    padding: 46px 0 54px;
  }
  .places-hero-copy h1 { font-size: clamp(42px,13vw,58px); }
  .places-hero-copy > p { font-size: 17px !important; }
  .places-hero-visual,
  .places-hero-visual img { min-height: 0; height: 340px; }
  .places-hero-visual img { border-radius: 88px 18px 88px 18px; }
  .places-heart-line { display: none; }
  .places-map-section,
  .places-venues { padding: 62px 16px; }
  .places-section-heading { margin-bottom: 30px; }
  .places-section-heading p { font-size: 16px !important; }
  .places-map { height: 430px; border-radius: 20px; }
  .places-belgium { width: 92%; height: 58%; top: 10%; left: 4%; }
  .places-country { display: none; }
  .places-route { left: 26%; height: 105px; }
  .places-pin { gap: 4px; }
  .places-pin span { width: 39px; height: 39px; flex-basis: 39px; border-width: 3px; font-size: 17px; }
  .places-pin strong { padding: 5px 8px; font-size: 11px; }
  .places-pin-brussels { top: 28%; left: 34%; }
  .places-pin-liege { top: 38%; left: 73%; }
  .places-pin-namur { top: 49%; left: 53%; }
  .places-pin-paris { top: 84%; left: 27%; }
  .places-grid { grid-template-columns: 1fr; }
  .place-card:last-child { grid-column: auto; width: 100%; }
  .place-photo { height: 210px; }
  .places-benefits {
    width: min(100% - 32px,1180px);
    margin-bottom: 62px;
    grid-template-columns: 1fr;
  }
  .places-benefits article:nth-child(even) { border-left: 0; }
  .places-benefits article:nth-child(n+2) { border-top: 1px solid #ead4db; }
  .places-cta { padding-top: 48px; padding-bottom: 70px; }
  .places-cta-actions { width: 100%; flex-direction: column; }
  .places-cta-actions .places-button { width: 100%; }
}

/* Date-Love: text and external link colours. */
:root {
  --dl-text-link: #a61f4d;
  --dl-text-link-hover: #781536;
  --dl-text-link-decoration: rgba(166, 31, 77, .46);
}

body :where(main, .site-main, #primary, .entry-content, .page-content, .dl-page-content)
  :is(p, li, blockquote, figcaption, td, th, dd, address)
  a:not(.button):not(.btn):not(.wp-element-button):not(.wp-block-button__link):not([class*="button"]):not([class*="cta"]):not([role="button"]),
body :where(main, .site-main, #primary, .entry-content, .page-content, .dl-page-content)
  a:is([href^="http://"], [href^="https://"]):not([href*="date-love.be"]):not(.button):not(.btn):not(.wp-element-button):not(.wp-block-button__link):not([class*="button"]):not([class*="cta"]):not([role="button"]) {
  color: var(--dl-text-link) !important;
  text-decoration-line: underline !important;
  text-decoration-color: var(--dl-text-link-decoration) !important;
  text-decoration-thickness: .08em;
  text-underline-offset: .18em;
  transition: color .18s ease, text-decoration-color .18s ease;
}

body :where(main, .site-main, #primary, .entry-content, .page-content, .dl-page-content)
  :is(p, li, blockquote, figcaption, td, th, dd, address)
  a:not(.button):not(.btn):not(.wp-element-button):not(.wp-block-button__link):not([class*="button"]):not([class*="cta"]):not([role="button"]):hover,
body :where(main, .site-main, #primary, .entry-content, .page-content, .dl-page-content)
  a:is([href^="http://"], [href^="https://"]):not([href*="date-love.be"]):not(.button):not(.btn):not(.wp-element-button):not(.wp-block-button__link):not([class*="button"]):not([class*="cta"]):not([role="button"]):hover {
  color: var(--dl-text-link-hover) !important;
  text-decoration-color: currentColor !important;
}

body :where(main, .site-main, #primary, .entry-content, .page-content, .dl-page-content)
  :is(p, li, blockquote, figcaption, td, th, dd, address)
  a:not(.button):not(.btn):not(.wp-element-button):not(.wp-block-button__link):not([class*="button"]):not([class*="cta"]):not([role="button"]):focus-visible {
  outline: 2px solid #b22755;
  outline-offset: 3px;
  border-radius: 2px;
}

body main :is([class$="-cta"], .places-cta) :is(p, li, address) a:not(.button):not(.btn):not([class*="button"]):not([class*="cta"]) {
  color: #fff !important;
  text-decoration-color: rgba(255, 255, 255, .72) !important;
}


/* Audit SEO 03/09/2026 : lisibilité validée sur ordinateur et mobile. */
main p,
main li,
main blockquote,
main details,
main summary {
  font-size: 22px !important;
  line-height: 1.68 !important;
}
main .dl-page-kicker,
main .places-kicker,
main .event-meta,
main .event-location,
main .event-availability,
main .form-note,
main figcaption,
main small {
  font-size: 18px !important;
}
.dl-seo-emotional-subtitle {
  max-width: 920px;
  margin: 18px auto 0 !important;
  color: #765e68;
  font-size: 22px !important;
  line-height: 1.55 !important;
  text-align: center;
}
.dl-cta-heading {
  margin: 8px 0 18px;
  color: #3b1c28 !important;
  font: 600 clamp(30px, 3.7vw, 50px)/1.15 Playfair Display, serif !important;
}
@media (max-width: 760px) {
  main p,
  main li,
  main blockquote,
  main details,
  main summary,
  .dl-seo-emotional-subtitle {
    font-size: 19px !important;
    line-height: 1.62 !important;
  }
  main .dl-page-kicker,
  main .places-kicker,
  main .event-meta,
  main .event-location,
  main .event-availability,
  main .form-note,
  main figcaption,
  main small {
    font-size: 18px !important;
  }
}


/* Sections éditoriales ajoutées après l’audit SEO. */
.calendar-local-links,
.registration-local-copy,
.places-selection {
  width: min(1180px, calc(100% - 48px));
  margin: 72px auto;
}
.calendar-local-links {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 24px;
}
.calendar-local-links article,
.registration-local-copy {
  padding: 34px;
  border: 1px solid #ead8de;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 16px 38px rgba(91,24,47,.08);
}
.calendar-local-links h2,
.registration-local-copy h2 {
  margin: 0 0 14px;
  font: 600 clamp(28px,3vw,40px)/1.16 Playfair Display, serif;
}
.registration-local-copy h2:not(:first-child) { margin-top: 42px; }
.registration-local-copy h3,
.faq-topic > h2 { color: #b22755; }
.registration-calendar-link,
.calendar-local-links a {
  display: inline-flex;
  margin-top: 12px;
  color: #b22755;
  font-weight: 800;
}
.faq-topic { margin-bottom: 54px; }
.faq-topic > h2 {
  margin: 0 0 24px;
  font: 600 clamp(31px,3.5vw,46px)/1.12 Playfair Display, serif;
}
.faq-question { margin: 0; font: inherit; }
.faq-question > button { width: 100%; }
.press-list-heading p { max-width: 820px; margin: 12px auto 34px; }
.press-cta-title,
.testimonial-emotional {
  margin: 8px auto 18px !important;
  color: inherit !important;
  font: 600 clamp(30px,3.6vw,48px)/1.14 Playfair Display, serif !important;
}
.places-city-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-width: 900px;
  margin-bottom: 76px;
}
.places-city-grid .place-card,
.places-city-grid .place-card:nth-child(4),
.places-city-grid .place-card:nth-child(5),
.places-city-grid .place-card:last-child {
  grid-column: auto;
  width: 100%;
}
.places-city-grid:has(.place-card:only-child) {
  grid-template-columns: minmax(0, 620px);
  justify-content: center;
}
.testimonial-card > h3 {
  margin: 0 0 18px;
  color: #b22755;
  font: 600 28px/1.25 Playfair Display, serif;
}
@media (max-width:760px) {
  .calendar-local-links,
  .places-city-grid { grid-template-columns: 1fr; }
  .calendar-local-links,
  .registration-local-copy,
  .places-selection { width: min(100% - 30px,1180px); margin: 48px auto; }
  .calendar-local-links article,
  .registration-local-copy { padding: 25px; }
}


/* Priorité sur les anciens sélecteurs très spécifiques du thème. */
:root body main[class][class][class][class] p,
:root body main[class][class][class][class] li,
:root body main[class][class][class][class] dd,
:root body main[class][class][class][class] blockquote,
:root body main[class][class][class][class] details,
:root body main[class][class][class][class] summary {
  font-size: 22px !important;
  line-height: 1.68 !important;
}
@media (max-width:760px) {
  :root body main[class][class][class][class] p,
  :root body main[class][class][class][class] li,
  :root body main[class][class][class][class] dd,
  :root body main[class][class][class][class] blockquote,
  :root body main[class][class][class][class] details,
  :root body main[class][class][class][class] summary {
    font-size: 19px !important;
    line-height: 1.62 !important;
  }
}


/* Audit SEO 03/09/2026 : les informations utiles des cartes restent lisibles. */
:root body main[class][class][class][class] small,
:root body main[class][class][class][class] .event-price,
:root body main[class][class][class][class] .event-meta,
:root body main[class][class][class][class] .event-location,
:root body main[class][class][class][class] .event-availability,
:root body main[class][class][class][class] .form-note,
:root body main[class][class][class][class] figcaption {
  font-size: 18px !important;
  line-height: 1.5 !important;
}


/* Articles Conseils importés : structure, lisibilité et cartes. */
.advice-article-list { scroll-margin-top: 110px; }
.advice-post-grid { align-items: stretch; }
.advice-post-card { overflow: hidden; padding: 0 !important; }
.advice-post-link {
  display: flex;
  height: 100%;
  flex-direction: column;
  color: inherit;
  text-decoration: none;
}
.advice-post-link img {
  display: block;
  width: 100%;
  height: 230px;
  object-fit: cover;
}
.advice-post-copy { display: flex; flex: 1; flex-direction: column; padding: 28px; }
.advice-post-copy h3 { margin: 0 0 14px; color: #b22755; font: 600 28px/1.25 "Playfair Display", serif; }
.advice-post-copy p { margin: 0 0 20px; }
.advice-post-copy strong { margin-top: auto; color: #b22755; font-size: 18px; }

.article-detail { padding: 64px 20px 90px; background: #fffafc; }
.article-detail-inner {
  width: min(100%, 960px);
  margin: 0 auto;
  padding: 46px;
  border-radius: 26px;
  background: #fff;
  box-shadow: 0 18px 48px rgba(103, 36, 62, .10);
}
.article-detail-inner > .wp-block-image:first-child { margin: 0 0 38px; }
.article-detail-inner img { display: block; max-width: 100%; height: auto; margin: 0 auto; border-radius: 20px; }
.article-detail-inner h2 { margin: 44px 0 18px; color: #842342; font: 600 clamp(30px, 3.4vw, 43px)/1.2 "Playfair Display", serif; }
.article-detail-inner h3 { margin: 30px 0 14px; color: #b22755; font: 600 clamp(24px, 2.7vw, 32px)/1.25 "Playfair Display", serif; }
.article-detail-inner a { color: #a31e4d; }
.article-detail-inner .article-cta {
  margin: 46px 0 18px;
  padding: 26px;
  border-radius: 18px;
  background: #fbe5ec;
  text-align: center;
}
.article-detail-inner .article-cta a { font-weight: 700; text-decoration: none; }
.article-back-links { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 18px; margin-top: 46px; padding-top: 26px; border-top: 1px solid #ecd2dc; }
.article-back-links a { font-size: 18px; font-weight: 700; text-decoration: none; }
.global-signup-cta .cta-title { margin: 10px 0 18px; font: 600 clamp(34px,4.2vw,56px)/1.12 "Playfair Display", serif; }

@media (max-width:760px) {
  .advice-post-link img { height: 205px; }
  .advice-post-copy { padding: 22px; }
  .article-detail { padding: 34px 15px 64px; }
  .article-detail-inner { padding: 25px 20px; border-radius: 19px; }
  .article-back-links { flex-direction: column; }
}


/* Page Conseils : cartes de catégories professionnelles. */
.advice-categories .content-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: min(100%, 1180px);
  margin-inline: auto;
}
.advice-category-card {
  overflow: hidden;
  padding: 0 !important;
  border: 1px solid rgba(178, 39, 85, .12);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 16px 42px rgba(103, 36, 62, .10);
  transition: transform .22s ease, box-shadow .22s ease;
}
.advice-category-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 22px 50px rgba(103, 36, 62, .16);
}
.advice-category-card .category-card-link {
  display: flex;
  height: 100%;
  flex-direction: column;
  color: inherit;
  text-decoration: none;
}
.advice-category-card img {
  display: block;
  width: 100%;
  height: 250px;
  object-fit: cover;
}
.advice-category-copy {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: flex-start;
  padding: 30px;
}
.advice-category-copy .card-icon {
  display: inline-flex;
  width: 48px;
  height: 48px;
  margin: -55px 0 22px;
  align-items: center;
  justify-content: center;
  border: 4px solid #fff;
  border-radius: 50%;
  background: #b22755;
  color: #fff;
  font-size: 18px;
  font-weight: 800;
  box-shadow: 0 8px 20px rgba(103, 36, 62, .18);
}
.advice-category-copy h3 {
  margin: 0 0 14px;
  color: #842342;
  font: 600 clamp(28px, 3vw, 38px)/1.18 "Playfair Display", serif;
}
.advice-category-copy .category-description {
  margin: 0 0 20px;
  font-size: 20px !important;
  line-height: 1.55 !important;
}
.advice-category-copy .article-count {
  margin: auto 0 18px;
  color: #842342;
  font-size: 18px !important;
  font-weight: 800;
}
.advice-category-copy strong {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  padding: 11px 19px;
  border-radius: 999px;
  background: #b22755;
  color: #fff;
  font-size: 18px;
  line-height: 1.2;
}
.advice-post-category {
  display: inline-block;
  margin-bottom: 12px;
  color: #842342;
  font-size: 18px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.advice-article-list {
  padding-top: 68px;
  padding-bottom: 68px;
}
.advice-article-list + .advice-article-list {
  border-top: 1px solid rgba(178, 39, 85, .12);
}

@media (max-width:760px) {
  .advice-categories .content-grid { grid-template-columns: 1fr; }
  .advice-category-card img { height: 215px; }
  .advice-category-copy { padding: 24px; }
  .advice-category-copy .category-description { font-size: 19px !important; }
  .advice-article-list { padding-top: 46px; padding-bottom: 46px; }
}


/* Neutralisation des anciens placements de grille sur les cartes Conseils. */
.advice-page .advice-categories .content-grid > .advice-category-card {
  grid-column: auto !important;
  width: auto !important;
}
.advice-page .advice-post-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}
.advice-page .advice-post-grid > .advice-post-card {
  grid-column: auto !important;
  width: auto !important;
}
.advice-page .advice-post-grid:has(.advice-post-card:only-child) {
  grid-template-columns: minmax(0, 620px) !important;
  justify-content: center;
}
@media (max-width:1000px) {
  .advice-page .advice-categories .content-grid,
  .advice-page .advice-post-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  .advice-page .advice-post-grid:has(.advice-post-card:only-child) {
    grid-template-columns: minmax(0, 620px) !important;
  }
}
@media (max-width:760px) {
  .advice-page .advice-categories .content-grid,
  .advice-page .advice-post-grid,
  .advice-page .advice-post-grid:has(.advice-post-card:only-child) {
    grid-template-columns: 1fr !important;
  }
}


/* Lot Conseils du 6 septembre 2026 : lisibilité des quatre nouveaux articles. */
.article-detail-inner .dl-advice-editorial p,
.article-detail-inner .dl-advice-editorial li { font-size: 22px !important; line-height: 1.65; }
.article-detail-inner .dl-advice-editorial .dl-editorial-credit,
.article-detail-inner .dl-advice-editorial figcaption { font-size: 18px !important; line-height: 1.5; color: #6b4050; }
.dl-advice-editorial figure { margin: 28px 0; }
.dl-advice-editorial figcaption { margin-top: 14px; }
.dl-advice-editorial ul, .dl-advice-editorial ol { padding-left: 1.4em; }
.dl-advice-editorial li { margin-bottom: 12px; }
.dl-advice-editorial table { width: 100%; table-layout: fixed; border-collapse: collapse; margin: 22px 0; }
.article-detail-inner .dl-advice-editorial th,
.article-detail-inner .dl-advice-editorial td { font-size: 18px !important; line-height: 1.5; padding: 14px; text-align: left; vertical-align: top; border: 1px solid #ecd2dc; overflow-wrap: anywhere; }
.dl-advice-editorial th { background: #fbe5ec; color: #842342; }
.advice-category-copy .category-description { font-size: 22px !important; }
@media (max-width: 760px) {
  .article-detail-inner .dl-advice-editorial p,
  .article-detail-inner .dl-advice-editorial li,
  .advice-category-copy .category-description { font-size: 19px !important; }
  .article-detail-inner .dl-advice-editorial .dl-editorial-credit,
  .article-detail-inner .dl-advice-editorial figcaption { font-size: 18px !important; }
  .article-detail-inner .dl-advice-editorial th,
  .article-detail-inner .dl-advice-editorial td { padding: 8px; }
}

/* Activités gratuites : page native 139, espaces compacts et typo Date-Love. */
body.page-id-139 .dl-page-hero{padding:48px 20px 26px}
body.page-id-139 .dl-page-hero h1{font-size:clamp(38px,4.7vw,64px);max-width:1050px;margin:12px auto 0}
body.page-id-139 .dl-page-hero>p{display:none}
body.page-id-139 .dl-page-content{width:min(1180px,calc(100% - 40px));padding:26px 0 42px}
body.page-id-139 .global-signup-cta{display:none}
.dl-walks{--walk-rose:#b22755;--walk-ink:#542338}
.dl-walks *{box-sizing:border-box}
.dl-walks h2{color:var(--walk-ink);font:600 clamp(29px,3.2vw,42px)/1.18 "Playfair Display",serif;margin:0 0 16px}
.dl-walks p{margin:0 0 16px}
.dl-walks strong{color:#542338}
.dl-walks figure{margin:0;min-width:0}
.dl-walks img{display:block;width:100%;max-width:100%;object-fit:cover;border-radius:18px}
.dl-walks figcaption{padding:10px 2px 0;color:#765e68;line-height:1.45}
.dl-walks .walk-eyebrow{display:block;color:#a31e4d;font-size:18px;font-weight:800;letter-spacing:.075em;margin-bottom:12px;line-height:1.4}
.dl-walks .walk-intro{display:grid;grid-template-columns:1.1fr 1fr;gap:30px;align-items:center}
.dl-walks .walk-intro img{height:480px}
.dl-walks .walk-button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;border-radius:28px;padding:13px 22px;background:#b22755;color:#fff!important;text-decoration:none!important;font:700 19px/1.3 "DM Sans",sans-serif}
.dl-walks .walk-button:hover{background:#842342}
.dl-walks a:focus-visible{outline:3px solid #842342;outline-offset:4px}
.dl-walks .walk-promise{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:18px 20px;margin:24px 0;background:#f7e7ed;border-radius:16px}
.dl-walks .walk-promise span{font-size:18px;line-height:1.4;font-weight:700;color:#842342;text-align:center}
.dl-walks .walk-section{margin:28px 0;scroll-margin-top:115px}
.dl-walks .walk-regions{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 24px}
.dl-walks .walk-regions a{padding:9px 19px;border:1px solid #dfbbc8;border-radius:24px;text-decoration:none;color:#842342;font-size:19px;background:#fff}
.dl-walks .walk-regions a:hover{background:#f7e7ed}
.dl-walks .walk-card{display:grid;grid-template-columns:minmax(0,.83fr) minmax(0,1.3fr);gap:28px;align-items:start;padding:26px;margin:0 0 24px;border:1px solid #ecd5de;background:#fff;border-radius:22px;scroll-margin-top:110px}
.dl-walks .walk-card figure{position:sticky;top:115px}
.dl-walks .walk-card img{height:380px}
.dl-walks .walk-card h2{font-size:clamp(28px,3vw,38px)}
.dl-walks .walk-stats{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.dl-walks .walk-stats span{background:#f9eaf0;padding:6px 11px;border-radius:10px;color:#842342;font-size:18px;font-weight:700;line-height:1.35}
.dl-walks .walk-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;margin:20px 0 10px}
.dl-walks .walk-actions>a:not(.walk-button){font-size:18px}
:root body.page-id-139 main.dl-page .dl-walks p.walk-source,
:root body.page-id-139 main.dl-page .dl-walks p.walk-credit,
:root body.page-id-139 main.dl-page .dl-walks figcaption{font-size:18px!important;line-height:1.45!important}
.dl-walks .walk-source{margin:10px 0 0}
.dl-walks .walk-social{padding:24px 28px;background:#f9edf1;border-radius:20px}
.dl-walks details{padding:17px 22px;margin:10px 0}
.dl-walks details p{margin:14px 0 0}
.dl-walks .walk-contact{padding:30px;margin:26px 0 18px;text-align:center;background:#f5dfe8;border-radius:22px;scroll-margin-top:110px}
.dl-walks .walk-contact p{max-width:850px;margin-left:auto;margin-right:auto}
.dl-walks .walk-credit{color:#765e68}
@media(max-width:900px){.dl-walks .walk-intro{grid-template-columns:1fr}.dl-walks .walk-intro img{height:360px}.dl-walks .walk-card{grid-template-columns:1fr}.dl-walks .walk-card figure{position:static}.dl-walks .walk-card img{height:340px}}
@media(max-width:760px){body.page-id-139 .dl-page-hero{padding:30px 16px 18px}body.page-id-139 .dl-page-content{width:calc(100% - 28px);padding:16px 0 30px}.dl-walks .walk-intro{gap:20px}.dl-walks .walk-intro img{height:280px}.dl-walks .walk-promise{grid-template-columns:1fr;gap:10px;margin:20px 0;padding:16px}.dl-walks .walk-card{padding:18px;gap:18px;margin-bottom:20px}.dl-walks .walk-card img{height:250px}.dl-walks .walk-section{margin:24px 0}.dl-walks .walk-contact,.dl-walks .walk-social{padding:22px 18px}.dl-walks .walk-actions{align-items:flex-start;flex-direction:column}.dl-walks .walk-button{font-size:18px}.dl-walks .walk-eyebrow{font-size:17px}:root body.page-id-139 main.dl-page .dl-walks p{font-size:19px!important}}

/* Bouton de la balade : place réservée au contact WhatsApp sur mobile. */
@media(max-width:760px){body.page-id-139 .mobile-signup-sticky{left:auto;right:16px;transform:none;max-width:calc(100% - 96px);padding:14px 16px;font-size:15px;}}
