/*
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.1
Text Domain: date-love
*/

:root { --date-love-paragraph-size: 15px; --date-love-small-size: 14px; }
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; }
}
