/*
Theme Name: Les Petits Tournesols
Theme URI: https://garderiesportive.mahyass.com
Author: Garderie Sportive Les Petits Tournesols
Description: Thème bloc sur mesure de la Garderie Sportive Les Petits Tournesols. À l'activation, il crée les 10 pages du site (en blocs natifs, modifiables dans l'éditeur), importe les images dans la médiathèque, règle la page d'accueil et le logo. Inclut le calculateur de coût net [ptt_calculateur] et les formulaires [ptt_formulaire].
Version: 1.0.0
Requires at least: 6.6
Tested up to: 7.1
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: petits-tournesols
*/

:root {
	--ptt-vert: #17402F;
	--ptt-vert-moyen: #24563F;
	--ptt-vert-fonce: #0E2A1E;
	--ptt-jaune: #F6B90E;
	--ptt-jaune-pale: #FDF0C4;
	--ptt-creme: #F7F9F4;
	--ptt-texte: #1B2620;
	--ptt-texte-doux: #3A4A41;
	--ptt-gris: #4F5E55;
	--ptt-brun: #8A5A00;
	--ptt-ombre: 0 1px 2px rgba(23, 64, 47, 0.08);
}

body { margin: 0; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; }

/* ---------- En-tête ---------- */
.ptt-entete { background: #fff; border-bottom: 1px solid #E3E8DF; padding-top: 14px; padding-bottom: 14px; }
.ptt-entete-int { gap: 16px; }
.ptt-marque { gap: 0 !important; }
.ptt-marque .wp-block-site-title { margin: 0; font-family: 'Fredoka', sans-serif; font-weight: 700; font-size: 22px; line-height: 1.1; }
.ptt-marque .wp-block-site-title a { text-decoration: none; color: var(--ptt-vert); }
.ptt-sous-logo { margin: 0; font-size: 13px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: #4F6B5C; line-height: 1.2; }
.ptt-nav { font-weight: 700; font-size: 15px; gap: 6px 20px; }
.ptt-nav a { text-decoration: none; color: var(--ptt-vert); }
.ptt-nav .current-menu-item > a, .ptt-nav a[aria-current="page"] { text-decoration: underline; text-decoration-thickness: 3px; text-decoration-color: var(--ptt-jaune); text-underline-offset: 6px; }
.ptt-nav .ptt-nav-cta > a { background: var(--ptt-vert); color: #fff !important; padding: 12px 22px; border-radius: 999px; min-height: 44px; box-sizing: border-box; display: inline-flex; align-items: center; text-decoration: none !important; }
.ptt-nav .wp-block-navigation__responsive-container.is-menu-open { background: var(--ptt-creme); }

/* ---------- Pied de page ---------- */
.ptt-pied { background: var(--ptt-vert-fonce); color: #C9D8CF; font-size: 15px; padding-top: 56px; padding-bottom: 32px; }
.ptt-pied a { color: #C9D8CF; }
.ptt-pied p { margin: 0; }
.ptt-pied-titre { font-family: 'Fredoka', sans-serif; font-weight: 700; font-size: 22px; color: #fff; }
.ptt-pied-sous { font-weight: 800; color: #fff; }
.ptt-pied-bas { border-top: 1px solid var(--ptt-vert-moyen); padding-top: 20px; font-size: 14px; }

/* ---------- Sections ---------- */
.ptt-section { padding-top: clamp(56px, 8vw, 88px); padding-bottom: clamp(56px, 8vw, 88px); }
.ptt-section--serre { padding-top: 24px; }
.ptt-fond-creme { background: var(--ptt-creme); }
.ptt-fond-blanc { background: #fff; }
.ptt-fond-jaune { background: var(--ptt-jaune); color: var(--ptt-vert); }
.ptt-fond-vert { background: var(--ptt-vert); color: #fff; }
.ptt-fond-vert :is(h1, h2, h3, h4) { color: #fff; }
.ptt-hero { padding-top: clamp(56px, 8vw, 80px); padding-bottom: clamp(56px, 8vw, 80px); }
.ptt-bandeau { padding-top: 56px; padding-bottom: 56px; }
.ptt-cols-centre { align-items: center !important; }
.ptt-col-texte { flex-grow: 1.4 !important; }
.ptt-col-large { flex-grow: 1.5 !important; }
.ptt-col-tarif { flex-grow: 0.8 !important; }
.ptt-intro > * { max-width: 760px; }
.ptt-intro > :first-child { margin-top: 0; }
.ptt-intro > .ptt-eyebrow + * { margin-top: 8px; }

.ptt-eyebrow { margin: 0; font-weight: 800; font-size: 14px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ptt-brun); }
.ptt-fond-vert .ptt-eyebrow { color: var(--ptt-jaune); }
.ptt-pastille { display: inline-block; width: fit-content; margin: 0; background: var(--ptt-jaune); color: var(--ptt-vert); font-weight: 800; font-size: 14px; letter-spacing: 0.06em; text-transform: uppercase; padding: 6px 14px; border-radius: 999px; line-height: 1.4; }
.ptt-pastille--vert { background: var(--ptt-vert); color: #fff; }
.ptt-fil { margin: 0; font-size: 14px; font-weight: 700; color: #B9D2C3; }
.ptt-fil a { color: #B9D2C3; }
.ptt-sous-titre { font-size: 1.2rem; color: #DCE8E0; max-width: 560px; }
.ptt-accent { font-size: 1.15rem; color: var(--ptt-vert); max-width: 760px; }
.ptt-note { font-size: 14px; color: var(--ptt-gris); }
.ptt-a-completer { color: var(--ptt-gris); }
.ptt-coords { font-weight: 700; }
.ptt-gros { font-size: 1.3rem; font-weight: 800; color: var(--ptt-jaune) !important; }
.ptt-prix { margin: 0; font-family: 'Fredoka', sans-serif; font-weight: 700; font-size: 52px; line-height: 1; color: var(--ptt-vert); }
.ptt-prix span { font-size: 22px; font-weight: 600; }
.ptt-carte .ptt-prix { color: var(--ptt-vert); }

/* ---------- Cartes ---------- */
.ptt-carte { background: #fff; border-radius: 24px; padding: 28px; box-shadow: var(--ptt-ombre); color: var(--ptt-texte); }
.ptt-carte > :first-child { margin-top: 0; }
.ptt-carte > * + * { margin-top: 10px; }
.ptt-carte p { color: var(--ptt-texte-doux); }
.ptt-carte :is(h2, h3) { margin-bottom: 0; }
.ptt-carte--creme { background: var(--ptt-creme); box-shadow: none; }
.ptt-carte--jaune { background: var(--ptt-jaune-pale); box-shadow: none; }
.ptt-carte--jaune-fort { background: var(--ptt-jaune); box-shadow: none; }
.ptt-carte--jaune-fort p { color: var(--ptt-vert); }
.ptt-carte--vert { background: var(--ptt-vert); color: #fff; box-shadow: none; }
.ptt-carte--vert :is(h3, p) { color: #fff; }
.ptt-carte--image { padding: 0; overflow: hidden; }
.ptt-carte--image .ptt-photo img { border-radius: 0; }
.ptt-carte--image > .wp-block-image { margin: 0; }
.ptt-carte-corps { padding: 0 28px 28px; }
.ptt-carte-corps > * + * { margin-top: 10px; }
.ptt-fond-jaune .ptt-carte { color: var(--ptt-texte); }
.ptt-etiquette { display: inline-block; width: fit-content; background: var(--ptt-jaune-pale); color: #6B4A00 !important; font-weight: 800; font-size: 13px; padding: 4px 12px; border-radius: 999px; margin: 0; }
.ptt-membre > * + * { margin-top: 6px; }
.ptt-nom { margin: 8px 0 0; font-family: 'Fredoka', sans-serif; font-size: 20px; color: var(--ptt-vert); }
.ptt-role { margin: 0; color: var(--ptt-gris); }

/* ---------- Étapes et horaire ---------- */
.ptt-etape > * + * { margin-top: 10px; }
.ptt-etape .ptt-numero { margin: 0; }
.ptt-numero { width: 44px; height: 44px; border-radius: 999px; background: var(--ptt-vert); color: #fff !important; font-family: 'Fredoka', sans-serif; font-weight: 700; font-size: 20px; display: flex; align-items: center; justify-content: center; }
.ptt-etapes-jaunes .ptt-numero { background: var(--ptt-jaune); color: var(--ptt-vert) !important; }
.ptt-carte .ptt-etape + .ptt-etape { margin-top: 18px; }
.ptt-horaire { background: #fff; border-radius: 18px; padding: 16px 22px; gap: 20px !important; align-items: baseline !important; }
.ptt-horaire + .ptt-horaire { margin-top: 12px !important; }
.ptt-horaire p { margin: 0; }
.ptt-horaire--sport { background: var(--ptt-jaune-pale); }
.ptt-heure { flex: none; width: 96px; font-family: 'Fredoka', sans-serif; font-weight: 700; font-size: 20px; color: var(--ptt-vert); }

/* ---------- Images ---------- */
.ptt-banniere, .ptt-photo { margin: 0; }
.ptt-banniere img { display: block; width: 100%; height: auto; border-radius: 32px; }
.ptt-photo img { display: block; width: 100%; height: auto; border-radius: 24px; }
.ptt-photo figcaption { margin-top: 8px; font-size: 14px; color: var(--ptt-gris); text-align: left; }

/* ---------- Boutons ---------- */
.wp-block-button__link { min-height: 44px; box-sizing: border-box; display: inline-flex; align-items: center; }
.ptt-btn-vert .wp-block-button__link { background: var(--ptt-vert); color: #fff; }
.ptt-btn-vert .wp-block-button__link:hover { background: var(--ptt-vert-fonce); color: #fff; }
.ptt-btn-lien .wp-block-button__link { background: transparent; color: inherit; text-decoration: underline; text-underline-offset: 4px; padding-left: 0; padding-right: 0; font-weight: 700; }
.ptt-btn-lien .wp-block-button__link:hover { background: transparent; color: inherit; }
.ptt-cta { gap: 24px !important; }
.ptt-cta h2 { margin: 0 0 8px; font-size: clamp(1.8rem, 3vw, 2.4rem); }
.ptt-cta p { margin: 0; font-size: 1.1rem; }

/* ---------- Galerie ---------- */
.ptt-filtres { gap: 10px; }
.ptt-filtre .wp-block-button__link { background: #fff; color: var(--ptt-vert); border: 1.5px solid #B8C4BC; font-size: 15px; font-weight: 700; padding: 10px 20px; }
.ptt-filtre.is-actif .wp-block-button__link { background: var(--ptt-vert); color: #fff; border-color: var(--ptt-vert); }
.ptt-galerie .is-cache { display: none !important; }

/* ---------- FAQ ---------- */
.ptt-faq { max-width: 900px; margin-left: auto !important; margin-right: auto !important; }
.ptt-faq .wp-block-details { background: #fff; border-radius: 20px; padding: 22px 26px; box-shadow: var(--ptt-ombre); margin-top: 14px; }
.ptt-faq summary { cursor: pointer; font-family: 'Fredoka', sans-serif; font-size: 21px; font-weight: 600; color: var(--ptt-vert); }
.ptt-faq details p { margin: 14px 0 0; color: var(--ptt-texte-doux); }

/* ---------- Formulaires [ptt_formulaire] ---------- */
.ptt-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; margin-top: 16px; }
.ptt-form label { display: flex; flex-direction: column; gap: 6px; font-weight: 700; font-size: 15px; color: var(--ptt-texte); }
.ptt-form .ptt-plein { grid-column: 1 / -1; }
.ptt-form input:not([type="checkbox"]), .ptt-form select, .ptt-form textarea { font: inherit; font-weight: 400; padding: 12px 14px; border: 1.5px solid #B8C4BC; border-radius: 12px; min-height: 44px; box-sizing: border-box; background: #fff; color: var(--ptt-texte); width: 100%; }
.ptt-form input[type="file"] { border-style: dashed; }
.ptt-form label.ptt-case { flex-direction: row; align-items: flex-start; gap: 12px; font-weight: 400; }
.ptt-form label.ptt-case input { width: 22px; height: 22px; margin-top: 2px; flex: none; }
.ptt-form button { justify-self: start; font: inherit; font-weight: 800; font-size: 18px; background: var(--ptt-vert); color: #fff; border: 0; border-radius: 999px; padding: 16px 36px; min-height: 44px; cursor: pointer; }
.ptt-form button:hover { background: var(--ptt-vert-fonce); }
.ptt-form .ptt-pot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ptt-message { border-radius: 12px; padding: 12px 16px; font-weight: 700; margin-top: 12px; }
.ptt-message--ok { background: #E1F2E6; color: var(--ptt-vert); }
.ptt-message--erreur { background: #FBE3DF; color: #8A1F11; }

/* ---------- Calculateur [ptt_calculateur] ---------- */
.ptt-calc { background: var(--ptt-vert); color: #fff; border-radius: 32px; padding: clamp(24px, 4vw, 48px); display: flex; flex-wrap: wrap; gap: 40px; align-items: flex-start; }
.ptt-calc-entrees { flex: 1 1 320px; min-width: 0; display: flex; flex-direction: column; gap: 18px; }
.ptt-calc-entrees h2 { margin: 0; color: #fff; font-size: clamp(1.8rem, 3vw, 2.4rem); }
.ptt-calc-entrees p { margin: 0; color: #DCE8E0; }
.ptt-calc-entrees .ptt-eyebrow { color: var(--ptt-jaune); }
.ptt-calc label { display: flex; flex-direction: column; gap: 6px; font-weight: 700; font-size: 15px; }
.ptt-calc label small { font-weight: 400; font-size: 14px; color: #B9D2C3; }
.ptt-calc input, .ptt-calc select { font: inherit; font-weight: 700; font-size: 18px; padding: 12px 14px; border: 0; border-radius: 12px; min-height: 48px; box-sizing: border-box; color: var(--ptt-vert); background: #fff; width: 100%; }
.ptt-calc-resultats { flex: 999 1 420px; min-width: 0; background: #fff; color: var(--ptt-texte); border-radius: 24px; padding: clamp(20px, 3vw, 32px); display: flex; flex-direction: column; gap: 20px; }
.ptt-calc-tuiles { display: flex; flex-wrap: wrap; gap: 16px; }
.ptt-calc-tuile { flex: 1 1 200px; border-radius: 18px; padding: 20px; display: flex; flex-direction: column; gap: 4px; background: var(--ptt-creme); }
.ptt-calc-tuile--net { background: var(--ptt-jaune-pale); }
.ptt-calc-tuile > span:first-child { font-weight: 700; font-size: 15px; color: var(--ptt-gris); }
.ptt-calc-tuile--net > span:first-child { color: #6B4A00; }
.ptt-calc-tuile strong { font-family: 'Fredoka', sans-serif; font-weight: 700; font-size: 44px; line-height: 1.1; color: var(--ptt-gris); }
.ptt-calc-tuile--net strong { color: var(--ptt-vert); }
.ptt-calc-ecart { margin: 0; font-weight: 700; color: var(--ptt-vert); }
.ptt-calc dl { margin: 0; }
.ptt-calc dl div { display: flex; justify-content: space-between; gap: 16px; padding: 12px 0; border-bottom: 1px solid #E3E8DF; }
.ptt-calc dl div:last-child { border-bottom: 0; }
.ptt-calc dd { margin: 0; font-weight: 800; white-space: nowrap; }
.ptt-calc .ptt-credit { color: var(--ptt-vert-moyen); }
.ptt-calc .ptt-total dt, .ptt-calc .ptt-total dd { font-weight: 800; color: var(--ptt-vert); }
.ptt-calc-plafond { margin: 0; font-size: 14px; color: #6B4A00; background: var(--ptt-jaune-pale); border-radius: 12px; padding: 10px 14px; }

/* ---------- Mobile ---------- */
@media (max-width: 781px) {
	.ptt-col-visuel { order: 2; }
	.ptt-heure { width: 72px; font-size: 18px; }
	.ptt-calc-tuile strong { font-size: 36px; }
}

/* ---------- Raccords entre les grandes zones (pas d'espace entre les bandes pleine largeur) ---------- */
.wp-site-blocks > * { margin-block-start: 0 !important; }
.wp-block-post-content > .alignfull { margin-block-start: 0 !important; margin-block-end: 0 !important; }
