/*
Theme Name: Centre La Licorne
Description: Thème à blocs pour le Centre La Licorne (bien-être et développement personnel) : cadre centré (boxed), bandeau d'orchidées sous le menu, en-tête avec logo, pied de page et motifs prêts à l'emploi pour les pages Accueil, Bien-être, Evénements, Développement personnel, Tarifs, Boutique et Contact.
Author: Création Monnet IT
Version: 1.0.0
Requires at least: 6.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: centre-la-licorne
Tags: full-site-editing, block-patterns, custom-colors, custom-logo, one-column, wide-blocks
*/

:root {
  --l-prune: #2B1D4A;
  --l-violet: #4B2E83;
  --l-perle: #FBF9FD;
  --l-encre: #241B33;
  --l-gris: #5E5470;
  --l-lilas: #F1EBFB;
  --l-lilas-fort: #E6DDF7;
  --l-menthe: #E7F3EE;
  --l-rose: #F6ECF4;
}

/* ---------- Mise en page encadrée (boxed) ----------
   Tout le site (en-tête, pages, pied de page) tient dans un cadre centré
   de 1280 px, avec un fond lilas de chaque côté.
   Pour revenir à des bandes pleine largeur : supprimez ce bloc, jusqu'à
   la ligne « Fin de la mise en page encadrée ». */
body { background: var(--l-lilas-fort); }
.wp-site-blocks,
#page {
  width: min(1280px, calc(100% - 32px));
  max-width: none;
  margin: 24px auto;
  background: var(--l-perle);
  border-radius: 32px;
  overflow: hidden;
  box-shadow: 0 24px 60px rgba(43, 29, 74, 0.18);
}
/* Fin de la mise en page encadrée */


/* ---------- Sections ---------- */
.l-section,
.l-entete,
.l-pied {
  font-family: 'Hanken Grotesk', system-ui, sans-serif;
  color: var(--l-encre);
  font-size: 17px;
  line-height: 1.6;
}
.l-section { padding: 96px 24px; margin-block: 0 !important; box-sizing: border-box; }
.l-section .wp-block-group > *,
.l-section .wp-block-buttons > * { margin-block: 0; }
.l-fond-perle { background: var(--l-perle); }
.l-fond-blanc { background: #FFFFFF; }
.l-fond-lilas { background: var(--l-lilas); padding-block: 88px; }
.l-fond-prune { background: var(--l-prune); color: #F3EEFB; }
.l-hero { padding-block: 48px 96px; }
.l-contenu { max-width: 1200px; margin-inline: auto; display: flex; flex-direction: column; gap: 40px; }
.l-fond-perle + .l-fond-perle { padding-top: 0; }

/* ---------- Titres ---------- */
.l-section h1,
.l-section h2,
.l-section h3 {
  font-family: 'Bricolage Grotesque', system-ui, sans-serif;
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.1;
  margin: 0;
  color: inherit;
}
.l-section h1 { font-size: clamp(40px, 6.5vw, 80px); letter-spacing: -0.03em; line-height: 1.02; }
.l-section h2 { font-size: clamp(32px, 4vw, 52px); }
.l-section h3 { font-size: 24px; line-height: 1.15; }
.l-section .l-titre-carte { font-size: 24px; line-height: 1.15; }
.l-section .l-t28 { font-size: 28px; }
.l-section .l-t42 { font-size: clamp(30px, 3.5vw, 42px); }

/* ---------- Textes ---------- */
.l-pile-gauche { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; min-width: 0; }
.l-large { max-width: 720px; }
.l-intro { font-size: 20px; color: var(--l-gris); max-width: 640px; }
.l-hero .l-intro { max-width: 520px; }
.l-chapo { font-size: 19px; color: var(--l-gris); }
.l-note { font-size: 16px; color: var(--l-gris); max-width: 720px; }
.l-detail { font-size: 16px; color: #4A4058; }
.l-detail-fin { font-size: 15px; }
.l-c-prune .l-detail { color: #DCD2F1; }
.l-pastille {
  display: inline-block; width: fit-content;
  background: var(--l-lilas-fort); color: var(--l-violet);
  padding: 6px 16px; border-radius: 999px; font-size: 15px; font-weight: 600;
}
.l-pastille-blanche { background: #FFFFFF; }
.l-etiquette { font-size: 15px; font-weight: 600; color: var(--l-violet); }
.l-c-prune .l-etiquette { color: #C9B6EE; }
.l-nombre {
  font-family: 'Bricolage Grotesque', system-ui, sans-serif;
  font-size: 18px; font-weight: 700; color: var(--l-violet);
}
.l-c-prune .l-nombre { font-size: 48px; line-height: 1; color: #C9B6EE; }
.l-lien a { color: var(--l-violet); font-weight: 600; text-decoration: none; }
.l-lien a:hover { text-decoration: underline; }
.l-lien-souligne a { border-bottom: 2px solid var(--l-violet); }

/* ---------- Prix et puces ---------- */
.l-prix {
  font-family: 'Bricolage Grotesque', system-ui, sans-serif;
  font-size: 32px; font-weight: 700; color: var(--l-violet); line-height: 1.15;
}
.l-prix-xl { font-size: 40px; }
.l-c-prune .l-prix { color: var(--l-lilas-fort); }
.l-prix-note { font-family: 'Hanken Grotesk', system-ui, sans-serif; font-size: 15px; font-weight: 500; color: var(--l-gris); }
.l-prix-ligne { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; }
.l-carte .l-prix { margin-top: auto; padding-top: 8px; }
.l-puces { display: flex; flex-wrap: wrap; gap: 8px; }
.l-puce {
  display: inline-block; width: fit-content;
  background: rgba(75, 46, 131, 0.12); color: var(--l-violet);
  padding: 4px 14px; border-radius: 999px; font-size: 14px; font-weight: 600;
}
.l-puce-blanche { background: #FFFFFF; }
.l-c-prune .l-puce { background: rgba(255, 255, 255, 0.14); color: #F3EEFB; }

/* ---------- Cartes et grilles ---------- */
.l-grille { display: flex; flex-wrap: wrap; gap: 24px; }
.l-grille > * { flex: 1 1 300px; min-width: 0; }
.l-g260 > * { flex-basis: 260px; }
.l-g280 > * { flex-basis: 280px; }
.l-g340 > * { flex-basis: 340px; }
.l-g400 > * { flex-basis: 400px; }
.l-g440 > * { flex-basis: 440px; }
.l-carte {
  border-radius: 32px; padding: 36px; box-sizing: border-box;
  display: flex; flex-direction: column; align-items: flex-start; gap: 14px;
}
.l-c-lilas { background: var(--l-lilas); }
.l-c-menthe { background: var(--l-menthe); }
.l-c-rose { background: var(--l-rose); }
.l-c-prune { background: var(--l-prune); color: #F3EEFB; }
.l-carte-large { border-radius: 40px; padding: 48px; }
.l-explorer { display: flex; flex-direction: column; gap: 14px; }
.l-visuel { height: 220px; border-radius: 28px; }
.l-visuel-court { height: 140px; }
.l-d1 { background: linear-gradient(135deg, #D9CCF2, #F6ECF4); }
.l-d2 { background: linear-gradient(135deg, #CFE8DF, #E6DDF7); }
.l-d3 { background: linear-gradient(135deg, #F6ECF4, #CFE8DF); }
.l-d4 { background: linear-gradient(135deg, #E6DDF7, #CFE8DF); }
.l-d5 { background: linear-gradient(135deg, #CFE8DF, #F6ECF4); }
.l-d6 { background: linear-gradient(135deg, #D9CCF2, #CFE8DF); }
.l-d7 { background: linear-gradient(135deg, #F6ECF4, #D9CCF2); }
.l-d8 { background: linear-gradient(135deg, #E6DDF7, #F6ECF4); }
.l-d9 { background: linear-gradient(135deg, #CFE8DF, #D9CCF2); }

/* ---------- Accueil ---------- */
.l-hero-grille { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 56px; }
.l-hero-grille > * { flex: 1 1 400px; min-width: 0; }
.l-hero-grille > .l-pile-gauche { flex-basis: 460px; gap: 28px; }
.l-photo { margin: 0; }
.l-photo img {
  display: block; width: 100%; height: 520px; object-fit: cover;
  border-radius: 48px 48px 200px 48px;
}
.l-bande { padding-block: 120px; text-align: center; }
.l-centre { align-items: center; max-width: 900px; gap: 24px; }
.l-bande-titre {
  font-family: 'Bricolage Grotesque', system-ui, sans-serif;
  font-size: clamp(32px, 5vw, 64px); line-height: 1.1; letter-spacing: -0.025em; font-weight: 700;
}
.l-bande-sous { font-size: 19px; color: #CFC3EA; }

/* ---------- Bandeau d'appel ---------- */
.l-cta { padding-block: 0 96px; }
.l-cta-carte {
  background: var(--l-lilas-fort); border-radius: 48px; padding: 72px 48px; box-sizing: border-box;
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 32px;
}
.l-cta-texte { flex: 1 1 400px; min-width: 0; display: flex; flex-direction: column; gap: 12px; }
.l-cta-texte .l-chapo { color: #3E3350; }
.l-cta h2 { font-size: clamp(30px, 4vw, 48px); }

/* ---------- Boutons ---------- */
.l-section .wp-block-button__link {
  background: var(--l-violet); color: #FFFFFF; border-radius: 999px;
  padding: 16px 32px; font-weight: 600; font-size: 17px; text-decoration: none; border: 2px solid var(--l-violet);
}
.l-section .wp-block-button__link:hover { background: var(--l-prune); border-color: var(--l-prune); }
.l-section .is-style-outline .wp-block-button__link { background: transparent; color: var(--l-violet); }
.l-section .is-style-outline .wp-block-button__link:hover { background: var(--l-lilas-fort); color: var(--l-prune); }
.l-section .wp-block-buttons { gap: 12px; }

/* ---------- En-tête du site ---------- */
.l-entete {
  background: var(--l-prune); color: #F3EEFB; padding: 12px 24px; box-sizing: border-box;
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 32px;
  margin-block: 0 !important;
}
.l-entete a { color: #F3EEFB; text-decoration: none; }
.l-entete a:hover { color: #C9B6EE; }
.l-entete .wp-block-navigation { font-size: 16px; font-weight: 500; gap: 8px 28px; }
.l-entete .wp-block-site-logo img { display: block; height: auto; }
.l-entete .wp-block-button__link {
  background: var(--l-lilas-fort); color: var(--l-prune); border-radius: 999px;
  padding: 12px 24px; font-weight: 600; font-size: 16px;
}
.l-entete .wp-block-button__link:hover { background: #FFFFFF; color: var(--l-prune); }

/* ---------- Pied de page ---------- */
.l-pied {
  border-top: 1px solid #E4DCEF; padding: 40px 24px; box-sizing: border-box;
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 32px;
  font-size: 15px; color: var(--l-gris); margin-block: 0 !important;
}
.l-pied p { margin: 0; }

/* ---------- Bandeau d'image en haut de chaque page ---------- */
.l-banniere-bloc { padding: 0 !important; line-height: 0; background: var(--l-prune); }
.l-banniere { margin: 0 !important; width: 100%; max-width: none !important; }
.l-banniere img {
  display: block; width: 100%; max-width: none; height: clamp(160px, 22vw, 300px);
  object-fit: cover; object-position: center;
}

/* Supprime les espaces que le thème place entre l'en-tête, le contenu et le pied de page,
   pour que le bandeau soit collé au menu et les sections bord à bord. */
.wp-site-blocks > * { margin-block-start: 0 !important; margin-block-end: 0 !important; }
.wp-site-blocks > main,
.wp-site-blocks > .wp-block-group:not(.l-entete):not(.l-pied) { margin-top: 0 !important; padding-top: 0 !important; }
.wp-block-post-content { margin-top: 0 !important; padding-top: 0 !important; }


/* ---------- Page Contact ---------- */
.l-carte-form > .wp-block-jetpack-contact-form,
.l-carte-form form { width: 100%; }
.l-carte-form label,
.l-carte-form .grunion-field-label { font-weight: 600; font-size: 16px; color: var(--l-encre); }
.l-carte-form input[type="text"],
.l-carte-form input[type="email"],
.l-carte-form input[type="tel"],
.l-carte-form textarea {
  width: 100%; box-sizing: border-box; background: #FFFFFF; color: var(--l-encre);
  border: 1px solid #D5C9EC; border-radius: 16px; padding: 14px 16px;
  font-family: 'Hanken Grotesk', system-ui, sans-serif; font-size: 17px;
}
.l-carte-form input:focus,
.l-carte-form textarea:focus { outline: 3px solid #C9B6EE; border-color: var(--l-violet); }
.l-carte-form .wp-block-jetpack-button .wp-block-button__link,
.l-carte-form button[type="submit"] {
  background: var(--l-violet); color: #FFFFFF; border: 2px solid var(--l-violet); border-radius: 999px;
  padding: 16px 32px; font-weight: 600; font-size: 17px; cursor: pointer;
}
.l-carte-form button[type="submit"]:hover { background: var(--l-prune); border-color: var(--l-prune); }
.l-tel a { color: var(--l-violet); text-decoration: none; }
.l-plan iframe { display: block; width: 100%; height: 420px; border: 0; border-radius: 32px; }

/* ---------- Téléphones ---------- */
@media (max-width: 600px) {
  .l-section { padding-inline: 16px; }
  .l-carte { padding: 28px; }
  .l-carte-large { padding: 32px; }
  .l-cta-carte { padding: 40px 28px; }
  .l-photo img { height: 380px; }
}

/* ---------- Logo, menu mobile et articles ---------- */
.l-logo { margin: 0; }
.l-logo img { display: block; width: 220px; max-width: 100%; height: auto; }
.l-entete .wp-block-navigation__responsive-container.is-menu-open { background: var(--l-prune); color: #F3EEFB; }
.l-entete .wp-block-navigation__responsive-container-open,
.l-entete .wp-block-navigation__responsive-container-close { color: #F3EEFB; }
.l-article > * + * { margin-top: 24px; }
.l-article .wp-block-post-date { color: var(--l-gris); font-size: 15px; }
.l-article .wp-block-post-title a { color: inherit; text-decoration: none; }
