/*
Theme Name: Les Jardins de la Sudrie
Theme URI: https://lesjardinsdelasudrie.fr
Author: Les Jardins de la Sudrie
Description: Thème sur-mesure pour la ferme florale Les Jardins de la Sudrie, à La Dornac. Aucune extension requise.
Version: 1.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: les-jardins-de-la-sudrie
*/

/* ============================================================
   POLICES AUTO-HÉBERGÉES (aucune requête vers Google Fonts)
   ============================================================ */
@font-face{
  font-family:'Cormorant Garamond';
  src:url('assets/fonts/CormorantGaramond-Variable.woff2') format('woff2-variations'), url('assets/fonts/CormorantGaramond-Variable.woff2') format('woff2');
  font-weight:400 700; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Cormorant Garamond';
  src:url('assets/fonts/CormorantGaramond-Italic-Variable.woff2') format('woff2-variations'), url('assets/fonts/CormorantGaramond-Italic-Variable.woff2') format('woff2');
  font-weight:400 700; font-style:italic; font-display:swap;
}
@font-face{
  font-family:'Jost';
  src:url('assets/fonts/Jost-Variable.woff2') format('woff2-variations'), url('assets/fonts/Jost-Variable.woff2') format('woff2');
  font-weight:300 600; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Alex Brush';
  src:url('assets/fonts/AlexBrush-Regular.woff2') format('woff2');
  font-weight:400; font-style:normal; font-display:swap;
}

/* ============================================================
   RESET DE BASE
   ============================================================ */
:root{
  --coral:#E67A6E;
  --coral-dark:#C05244;
  --gold:#E6B428;
  --gold-light:#F0C850;
  --sage:#7C9082;
  --sage-dark:#516153;
  --olive:#828C5A;
  --cream:#FBF7EC;
  --cream-dark:#F1E9D6;
  --ink:#2E2B1F;
  --white:#FFFFFF;
  /* Largeur de référence utilisée par le système de mise en page natif de
     WordPress pour les blocs "Groupe" — sans cette ligne, WordPress applique
     sa propre largeur par défaut (souvent bien plus étroite que notre
     maquette), ce qui écrasait tout le contenu en colonne étroite. */
  --wp--style--global--content-size: 1400px;
  --wp--style--global--wide-size: 1400px;
}
*, *::before, *::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0; background:var(--cream); color:var(--ink);
  font-family:'Jost',Arial,sans-serif; font-weight:300; font-size:16px; line-height:1.65;
}
img{ max-width:100%; display:block; }
a{ color:inherit; }
h1,h2,h3{ font-family:'Cormorant Garamond',Georgia,serif; font-weight:600; color:var(--ink); margin:0 0 16px; }
p{ margin:0 0 16px; }
.screen-reader-text{ position:absolute!important; clip:rect(1px,1px,1px,1px); width:1px; height:1px; overflow:hidden; }
.script{ font-family:'Alex Brush',cursive; line-height:1; }

/* ============================================================
   STRUCTURE COMMUNE
   ============================================================ */
.wrap{ max-width:1400px !important; margin-left:auto !important; margin-right:auto !important; padding-left:40px !important; padding-right:40px !important; }
.block{ padding:90px 0; }
.block-tight{ padding:60px 0; }
.block-tight:has(.contact-list){ padding-top:20px; }
.eyebrow{ text-transform:uppercase; letter-spacing:2.5px; font-size:12px; color:var(--coral-dark); font-weight:500; margin-bottom:14px; display:block; }
.lead{ max-width:620px; color:#5A5646; font-size:15.5px; margin-bottom:50px; }
.center .lead, .page-hero .lead{ margin-left:auto; margin-right:auto; }
.center{ text-align:center; }
.arch{ border-radius:16px; aspect-ratio:1/1; overflow:hidden; }
.arch-sm{ border-radius:16px; aspect-ratio:1/1; overflow:hidden; }
.arch img, .arch-sm img{ width:100%; height:100%; object-fit:cover; }
/* Photos rondes réservées à la page "Nos fleurs" uniquement */
.page-slug-nos-fleurs .arch,
.page-slug-nos-fleurs .arch-sm{ border-radius:50%; aspect-ratio:1/1; }
/* Compatibilité avec le vrai bloc "Image" natif de WordPress (figure.wp-block-image) */
.wp-block-image{ margin:0; }
.arch .wp-block-image, .arch-sm .wp-block-image{ height:100%; width:100%; }
.wp-block-group{ margin:0; }
/* WordPress insère parfois une division technique supplémentaire à
   l'intérieur de chaque bloc "Groupe" (.wp-block-group__inner-container).
   On la rend invisible pour la mise en page : ses enfants se comportent
   alors comme des enfants directs du groupe, ce qui restaure nos grilles
   et colonnes (.split, .trend-grid, etc.) exactement comme prévu. */
.split > .wp-block-group__inner-container,
.trend-grid > .wp-block-group__inner-container,
.flower-grid > .wp-block-group__inner-container,
.principle-grid > .wp-block-group__inner-container,
.season-grid > .wp-block-group__inner-container,
.cert-callout > .wp-block-group__inner-container,
.bio-inner > .wp-block-group__inner-container,
.bouquet-row > .wp-block-group__inner-container,
.contact-list > .wp-block-group__inner-container{ display:contents !important; }
.timeline > .wp-block-group__inner-container{ display:flex !important; gap:20px !important; flex-wrap:wrap !important; }
.cert-callout > figure{ flex-shrink:0; }
.cert-callout > .wp-block-group{ flex:1 1 auto; min-width:0; }
.bio-inner > figure{ flex-shrink:0; }
.bio-inner > .wp-block-group{ flex:1 1 auto; min-width:0; }
.btn{ display:inline-block; padding:14px 30px; border-radius:30px; font-size:14.5px; font-weight:500; letter-spacing:0.3px; text-decoration:none; font-family:'Jost',sans-serif; border:none; cursor:pointer; }
.btn-primary{ background:var(--coral); color:var(--white); }
.btn-ghost{ border:1px solid var(--ink); color:var(--ink); background:none; }
.split{ display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; }
.hero-photo{ aspect-ratio:4/5 !important; }
.list{ list-style:none; margin:22px 0; padding:0; }
.list li{ padding-left:26px; position:relative; margin-bottom:12px; color:#5A5646; font-size:15px; }
.list li::before{ content:''; position:absolute; left:0; top:9px; width:14px; height:1px; background:var(--coral); }
.page-hero{ padding-top:70px; padding-bottom:20px; text-align:center; }
.page-hero h1{ font-size:38px; font-style:italic; }
.page-hero p{ max-width:560px; margin:0 auto; color:#5A5646; font-size:15.5px; }

/* ============================================================
   EN-TÊTE / NAVIGATION
   ============================================================ */
.site-header{ display:flex; align-items:center; justify-content:space-between; padding:16px 40px; background:var(--cream); border-bottom:1px solid var(--cream-dark); position:relative; z-index:10; }
.site-header .logo img{ height:70px; width:auto; }
.main-nav{ display:flex; align-items:center; gap:34px; list-style:none; margin:0; padding:0; }
.main-nav li{ list-style:none; }
.footer-menu{ list-style:none; margin:0; padding:0; }
.main-nav a{ text-decoration:none; color:var(--ink); font-size:14.5px; font-weight:400; position:relative; padding-bottom:4px; }
.main-nav a::after{ content:''; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--coral); transition:width .25s ease; }
.main-nav a:hover::after{ width:100%; }
.main-nav a.nav-contact{ border:1px solid var(--ink); padding:9px 22px; border-radius:30px; }
.main-nav a.nav-contact::after{ display:none; }
.main-nav a.nav-contact:hover{ background:var(--ink); color:var(--cream); }
.menu-toggle{ display:none; }
.menu-toggle-label{ display:none; }

/* ============================================================
   PIED DE PAGE
   ============================================================ */
.site-footer{ background:var(--ink); padding:70px 0 30px; }
.foot-grid{ display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:50px; padding-bottom:40px; border-bottom:1px solid rgba(251,247,236,0.15); }
.foot-grid h4{ color:var(--cream); font-family:'Cormorant Garamond',serif; font-weight:600; font-size:17px; margin-bottom:16px; }
.foot-grid p, .foot-grid a{ color:rgba(251,247,236,0.7); font-size:14px; text-decoration:none; display:block; margin-bottom:10px; }
.foot-logo{ font-family:'Cormorant Garamond',serif; color:var(--cream); font-size:24px; font-weight:600; margin-bottom:6px; }
.foot-bottom{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; padding-top:24px; }
.copyright{ color:rgba(251,247,236,0.4); font-size:12.5px; margin:0; }
.foot-legal-link{ color:rgba(251,247,236,0.6); font-size:12.5px; text-decoration:none; }
.foot-legal-link:hover{ color:var(--cream); }
.foot-social{ display:flex; gap:14px; margin-top:6px; }
.foot-social a{ display:inline-flex; color:rgba(251,247,236,0.7); margin-bottom:0; }
.foot-social a:hover{ color:var(--cream); }

/* ============================================================
   ACCUEIL
   ============================================================ */
.hero{ padding:50px 0 0; position:relative; overflow:hidden; }
.hero-arc{ position:absolute; top:-120px; right:-180px; width:640px; opacity:0.5; z-index:0; }
.hero-inner{ position:relative; z-index:1; }
.hero-script{ font-size:26px; color:var(--coral-dark); display:block; margin-bottom:-6px; }
.hero h1{ font-size:42px; line-height:1.25; font-style:italic; max-width:520px; }
.hero p{ max-width:420px; }
.trend-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:26px; }
.trend-item figure{ margin:0; }
.trend-item figcaption{ margin-top:14px; font-family:'Cormorant Garamond',serif; font-size:17px; font-weight:600; text-align:center; color:var(--sage-dark); }
.bio-band{ background:var(--sage-dark); padding:50px 0; }
.bio-inner{ display:flex; align-items:center; gap:34px; }
.bio-badge{ width:84px; height:84px; border-radius:50%; overflow:hidden; flex-shrink:0; border:3px solid var(--cream); }
.bio-badge img{ width:100%; height:100%; object-fit:cover; }
.bio-band h3{ color:var(--cream); font-size:24px; margin-bottom:8px; }
.bio-band p{ color:rgba(251,247,236,0.8); font-size:14.5px; max-width:560px; margin:0; }
.season-grid{ display:grid; grid-template-columns:1fr 1fr; gap:18px 28px; margin-top:26px; }
.season-grid b{ font-family:'Cormorant Garamond',serif; font-size:15.5px; }
.season-grid span{ font-size:12.5px; color:#5A5646; }

/* ============================================================
   NOS FLEURS
   ============================================================ */
.flower-grid{ display:flex; justify-content:center; flex-wrap:wrap; gap:30px; }
.flower-card{ width:160px; text-align:center; }
.flower-card .arch-sm{ width:150px; height:150px; aspect-ratio:1/1; border-radius:50%; margin:0 auto 12px; }
.flower-card .name{ font-family:'Cormorant Garamond',serif; font-weight:600; font-size:16px; }
.flower-card .season{ font-size:11px; letter-spacing:1px; text-transform:uppercase; color:var(--sage-dark); }
.bouquet-row{ display:flex; justify-content:center; flex-wrap:wrap; gap:26px; }
.bouquet-row .arch, .bouquet-row .arch-sm{ width:150px; height:150px; flex:0 0 150px; }

/* ============================================================
   NOTRE HISTOIRE
   ============================================================ */
.story-hero{ padding:60px 0 0; text-align:center; }
.story-hero img{ width:340px; height:340px; max-width:70%; aspect-ratio:1/1; object-fit:cover; object-position:50% 22%; border-radius:50%; margin:0 auto; display:block; box-shadow:0 0 0 8px var(--white); }
.story-col{ max-width:680px; margin:0 auto; font-size:17px; line-height:1.85; color:#4A453E; }
.story-quote{ font-family:'Alex Brush', cursive; font-size:38px; color:var(--coral-dark); text-align:center; max-width:600px; margin:24px auto 50px; line-height:1.3; background:var(--cream-dark); border-radius:16px; padding:22px 30px; }
.timeline{ margin-top:0; padding-top:50px; }
.timeline .step{ flex:1 1 0; }
.timeline .step{ text-align:center; border-top:3px solid var(--coral); padding-top:16px; }
.timeline .step:nth-child(2){ border-top-color:var(--gold); }
.timeline .step:nth-child(3){ border-top-color:var(--olive); }
.timeline .step:nth-child(4){ border-top-color:var(--sage); }
.timeline .year{ font-family:'Cormorant Garamond',serif; font-size:22px; font-weight:600; color:var(--coral-dark); }
.timeline .step:nth-child(2) .year{ color:var(--gold); }
.timeline .step:nth-child(3) .year{ color:var(--olive); }
.timeline .step:nth-child(4) .year{ color:var(--sage-dark); }
.timeline .desc{ font-size:13.5px; color:#5A5646; margin-top:4px; }

/* ============================================================
   NOTRE ENGAGEMENT
   ============================================================ */
.manifesto h1{ font-size:40px; font-style:italic; max-width:760px; }
.principle-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:30px; margin-top:20px; }
.principle-card{ background:var(--white); border:1px solid var(--cream-dark); border-radius:12px; padding:32px 26px; }
.principle-card .num{ font-family:'Cormorant Garamond',serif; font-size:34px; color:var(--gold); font-weight:600; }
.principle-card h3{ font-size:19px; margin:10px 0 8px; }
.principle-card p{ font-size:14px; color:#5A5646; margin:0; }
.cert-callout{ display:flex; align-items:center; gap:30px; background:var(--cream-dark); border-radius:12px; padding:36px; margin-top:50px; }
.cert-callout img{ width:110px; height:110px; object-fit:cover; border-radius:50%; flex-shrink:0; }
.cert-callout h3{ margin-bottom:6px; }
.cert-callout p{ margin:0; color:#5A5646; font-size:14.5px; }

/* ============================================================
   CONTACT
   ============================================================ */
.contact-list{ display:flex; flex-wrap:wrap; gap:22px; justify-content:center; text-align:center; list-style:none; padding:0; margin:0; }
.contact-list > *,
.contact-list > .wp-block-group__inner-container > *{ padding:26px 30px; border-radius:14px; min-width:190px; list-style:none; }
.contact-list > *:nth-child(1),
.contact-list > .wp-block-group__inner-container > *:nth-child(1){ background:#F6DEDA; }
.contact-list > *:nth-child(2),
.contact-list > .wp-block-group__inner-container > *:nth-child(2){ background:#FAEACB; }
.contact-list > *:nth-child(3),
.contact-list > .wp-block-group__inner-container > *:nth-child(3){ background:#E3E9E1; }
.contact-list > *:nth-child(4),
.contact-list > .wp-block-group__inner-container > *:nth-child(4){ background:#E9EBDD; }
.contact-list .label{ display:block; font-size:12px; text-transform:uppercase; letter-spacing:1.5px; margin-bottom:6px; }
.contact-list > *:nth-child(1) .label,
.contact-list > .wp-block-group__inner-container > *:nth-child(1) .label{ color:var(--coral-dark); }
.contact-list > *:nth-child(2) .label,
.contact-list > .wp-block-group__inner-container > *:nth-child(2) .label{ color:#8A6A16; }
.contact-list > *:nth-child(3) .label,
.contact-list > .wp-block-group__inner-container > *:nth-child(3) .label{ color:var(--sage-dark); }
.contact-list > *:nth-child(4) .label,
.contact-list > .wp-block-group__inner-container > *:nth-child(4) .label{ color:#5C6440; }
.contact-list a{ text-decoration:none; font-size:16px; font-family:'Cormorant Garamond',serif; font-weight:600; color:var(--ink); }

.form-box{ background:var(--white); border:1px solid var(--cream-dark); border-radius:12px; padding:36px; max-width:640px; margin:0 auto; }
.form-box p{ margin-bottom:16px; }
.form-box label{ display:block; font-size:13px; color:var(--sage-dark); margin-bottom:6px; text-transform:uppercase; letter-spacing:1px; }
.form-box input[type="text"], .form-box input[type="email"], .form-box input[type="tel"], .form-box textarea{
  width:100%; border:1px solid var(--cream-dark); border-radius:8px; padding:12px 14px;
  font-family:'Jost',sans-serif; font-size:15px; background:var(--cream);
}
.form-box textarea{ resize:vertical; min-height:120px; }
.form-box input[type="submit"]{ background:var(--coral); color:var(--white); border:none; border-radius:30px; padding:14px 34px; font-size:14.5px; font-weight:500; font-family:'Jost',sans-serif; cursor:pointer; }
.form-box input[type="submit"]:hover{ background:var(--coral-dark); }
.form-honeypot{ position:absolute; left:-9999px; }
.form-success{ background:var(--sage-dark); color:var(--cream); padding:16px 20px; border-radius:8px; margin-bottom:20px; }
.form-error{ background:#F7DCD8; color:#7A2E22; padding:16px 20px; border-radius:8px; margin-bottom:20px; }

/* ============================================================
   MENTIONS LÉGALES
   ============================================================ */
.legal{ max-width:760px; margin:0 auto; font-size:15.5px; color:#4A453E; }
.legal h1{ font-size:32px; font-style:italic; }
.legal h2{ font-size:21px; margin-top:44px; }
.legal .note{ background:var(--cream-dark); border-radius:8px; padding:16px 20px; font-size:14px; margin:20px 0; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:860px){
  .hero-inner .split, .split, .contact-list{ grid-template-columns:1fr!important; }
  .trend-grid{ grid-template-columns:repeat(2,1fr); }
  .principle-grid{ grid-template-columns:1fr 1fr; }
.timeline{ flex-wrap:wrap; }
.timeline .step{ flex:1 1 40%; }
  .bio-inner, .cert-callout{ flex-direction:column; text-align:center; }
  .wrap{ padding:0 20px; }
  .site-header{ padding:14px 20px; flex-wrap:wrap; position:relative; }

  .menu-toggle-label{ display:block; cursor:pointer; font-size:26px; line-height:1; padding:6px; margin-left:auto; }
.main-nav{
    display:none; position:absolute; top:100%; left:0; right:0; background:var(--cream);
    flex-direction:column; align-items:flex-start; gap:20px; border-bottom:1px solid var(--cream-dark);
  }
  .main-nav a{ padding:33px 25px; width:100%; -webkit-tap-highlight-color:transparent; -webkit-user-select:none; user-select:none; outline:none; }
  .main-nav a:focus-visible{ outline:2px solid var(--coral); outline-offset:-4px; }
  .menu-toggle:checked ~ nav .main-nav{ display:flex; }
}
@media(min-width:861px){
  .menu-toggle-label{ display:none; }
}

/* ============================================================
   ÉVÉNEMENTS — agenda et fiche événement
   ============================================================ */
.event-list{ display:flex; flex-direction:column; gap:0; max-width:820px; margin:0 auto; }
.event-card{
  display:flex; gap:28px; align-items:center; padding:26px 24px;
  text-decoration:none; color:inherit; border-radius:12px;
}
.event-card:nth-child(odd){ background:var(--cream-dark); }
.event-card:nth-child(even){ background:var(--white); }
.event-card-photo{ width:120px; height:120px; flex-shrink:0; }
.event-card-photo img{ width:100%; height:100%; object-fit:cover; }
.event-card-info{ flex:1 1 auto; min-width:0; }
.event-date{ display:block; font-size:12px; text-transform:uppercase; letter-spacing:1.5px; color:var(--coral-dark); font-weight:500; margin-bottom:6px; }
.event-card-info h2{ font-size:21px; margin:0 0 6px; }
.event-location{ font-size:13.5px; color:#5A5646; margin:0 0 8px; }
.event-link{ font-size:13px; color:var(--sage-dark); font-weight:500; }
.event-card:hover .event-link{ color:var(--coral-dark); }
.event-empty{ text-align:center; color:#8A8574; padding:60px 0; }

.event-single-photo{ aspect-ratio:16/10; max-width:820px; margin:0 auto; }
.event-content{ font-size:16.5px; line-height:1.85; color:#4A453E; max-width:720px; margin:0 auto 40px; }
.event-content p{ margin-bottom:20px; }
.event-practical{
  max-width:720px; margin:0 auto 40px; background:var(--cream-dark);
  border-radius:14px; padding:28px 32px;
}
.event-practical h3{ font-size:18px; margin-bottom:14px; }
.event-practical p{ margin:0 0 8px; font-size:15px; color:#4A453E; }
.event-back{ display:block; max-width:720px; margin:0 auto; }

@media(max-width:640px){
  .event-card{ flex-direction:column; align-items:flex-start; text-align:left; }
  .event-card-photo{ width:100%; height:200px; }
}

/* ============================================================
   GALERIE PHOTOS — carrousel par album + visionneuse plein écran
   ============================================================ */
.gallery-album{ margin-bottom:80px; }
.gallery-album:last-child{ margin-bottom:0; }
.gallery-album h2{ margin-bottom:24px; }

.gallery-album{ margin-bottom:0; }
.gallery-albums-row{ display:flex; gap:26px; align-items:flex-start; }
.gallery-albums-row > .wp-block-group__inner-container{ display:contents !important; }
.gallery-albums-row .gallery-album{ flex:1 1 0; min-width:0; }
.gallery-albums-row .gallery-album h2{ font-size:19px; }

.lds-carousel{ position:relative; max-width:100%; margin:0 auto; }
.carousel-viewport{
  position:relative; width:100%; aspect-ratio:1/1; border-radius:12px;
  overflow:hidden; background:var(--cream-dark);
  display:block !important;
}
.carousel-viewport .wp-block-image{
  position:absolute !important; top:0 !important; left:0 !important;
  width:100% !important; height:100% !important;
  opacity:0; visibility:hidden; transition:opacity .3s ease; margin:0 !important;
}
.carousel-viewport .wp-block-image img{ width:100% !important; height:100% !important; max-width:none !important; object-fit:cover !important; display:block; cursor:zoom-in; }
.carousel-viewport .wp-block-image.is-active{ opacity:1; visibility:visible; }

.carousel-arrow{
  position:absolute; top:50%; transform:translateY(-50%); z-index:2;
  width:34px; height:34px; border-radius:50%; border:none;
  background:rgba(46,43,31,0.55); color:var(--white); font-size:17px;
  cursor:pointer; display:flex; align-items:center; justify-content:center;
  line-height:1;
}
.carousel-arrow:hover{ background:rgba(46,43,31,0.8); }
.carousel-arrow.prev{ left:8px; }
.carousel-arrow.next{ right:8px; }
.carousel-counter{
  text-align:center; margin-top:10px; font-size:11.5px; letter-spacing:1px;
  color:var(--sage-dark); text-transform:uppercase;
}

.lds-lightbox{
  display:none; position:fixed; inset:0; z-index:9999;
  background:rgba(20,18,13,0.94); align-items:center; justify-content:center;
}
.lds-lightbox.is-open{ display:flex; }
.lightbox-image{ max-width:88vw; max-height:82vh; object-fit:contain; border-radius:6px; }
.lightbox-close{
  position:absolute; top:24px; right:28px; background:none; border:none;
  color:var(--cream); font-size:34px; line-height:1; cursor:pointer;
}
.lightbox-arrow{
  position:absolute; top:50%; transform:translateY(-50%);
  width:54px; height:54px; border-radius:50%; border:none;
  background:rgba(251,247,236,0.12); color:var(--cream); font-size:26px;
  cursor:pointer; display:flex; align-items:center; justify-content:center;
}
.lightbox-arrow:hover{ background:rgba(251,247,236,0.25); }
.lightbox-arrow.prev{ left:24px; }
.lightbox-arrow.next{ right:24px; }
.lightbox-counter{
  position:absolute; bottom:26px; left:0; right:0; text-align:center;
  color:rgba(251,247,236,0.7); font-size:13px; letter-spacing:1px;
}

@media(max-width:780px){
  .gallery-albums-row{ flex-direction:column; }
  .carousel-viewport{ aspect-ratio:4/3; }
  .carousel-arrow{ width:38px; height:38px; font-size:18px; }
  .lightbox-arrow{ width:44px; height:44px; }
  .lightbox-close{ top:14px; right:16px; }
}


