/* ==========================================================================================================
   TrufTerra — design du site vitrine (thème enfant d'Astra)

   Elementor porte le contenu et la structure (conteneurs, nombre de colonnes) ; ce fichier porte le style.
   On applique une classe dans Avancé → Classes CSS. Un widget SANS classe prend les styles globaux du kit
   Elementor (déjà réglés sur la charte) : les classes ne servent qu'aux composants de la charte.
   Mode d'emploi, avec exemples : doc/guide-des-blocs.md

   SECTIONS (conteneur de premier niveau)
     tt-section (+ --ample)          marges intérieures, contenu limité à 1240 px
     tt-sombre / tt-vert / tt-creme / tt-blanc     fond et couleurs du texte (se combinent avec tout)
     tt-plein-ecran                  section haute (88 % de l'écran), contenu centré verticalement
     tt-photo-fond (+ --moyenne, --claire)   l'image de fond du conteneur, assombrie
     tt-voile-lateral / tt-voile-central     dégradé sombre par-dessus la photo
     tt-deux-colonnes                grille texte + photo pleine largeur ; colonnes tt-colonne-texte / tt-colonne-photo
     tt-entete                       en-tête en deux colonnes (titre | texte), aligné en bas

   TEXTE
     tt-intro     widget Texte : surtitre (le paragraphe juste avant un titre), titre H1/H2, paragraphe.
                  <em> dans un titre = italique doré ; <strong> dans un paragraphe = mise en valeur dorée
     tt-intro--grand   titre plus grand       tt-etroit : lignes limitées à 760 px       tt-centre : centré
     tt-chiffres  widget Texte : un paragraphe par chiffre, <strong>chiffre</strong> puis la légende
     tt-phrase    widget Titre : phrase centrée précédée d'un trait doré
     tt-note      widget Texte : encadré doré ; <strong> = pastille
     tt-mention   widget Titre : petite mention grise
     tt-signature widget Titre : signature en italique dorée

   PASTILLES ET BOUTONS
     tt-pastille (+ --bandeau)       widget Titre : étiquette arrondie ; --bandeau = centrée sur le haut d'une carte
     tt-saison                       avec tt-pastille, dans une carte : ses mois s'allument dans le calendrier
     tt-etiquette                    widget Titre : étiquette sur une photo, en bas à gauche
     tt-bouton (+ --fantome, --vert, --lien)   widget Bouton

   CARTES ET GRILLES
     tt-cartes                       grille de cartes (écarts)
     tt-cartes--par-trois            avec tt-cartes, sur un conteneur en ligne : 3 cartes par ligne, dernière ligne centrée
     tt-grille                       grille à deux colonnes aérée, contenu centré verticalement
     tt-carte (+ --vedette)          conteneur carte ; son widget Texte : <h3>, paragraphes, <strong> = grand
                                     chiffre (prix), liste à puces cochées
     tt-medaillon                    widget Boîte d'image dans une carte : photo ronde en haut à droite, titre,
                                     texte (<em> = nom latin)
     tt-numerotes                    grille de Boîtes d'icône numérotées automatiquement 01, 02, 03…
     tt-icone                        widget Boîte d'icône : icône ronde dorée à gauche, titre, texte
     tt-relie / tt-vignette          grille de Boîtes d'image reliées par un trait doré ; vignette encadrée

   DÉCORS PROPRES À L'ACCUEIL
     tt-hero, tt-telephone, tt-incrustation, tt-legende (couleurs de la carte, dans l'ordre : bon producteur,
     peu productif, jamais produit, malade, mort), tt-calendrier (12 mois), tt-nuage

   EFFET
     tt-apparait                     apparition douce au défilement
   ========================================================================================================== */

/* ---------- Polices, hébergées sur le site (aucun appel à Google) ---------- */
@font-face { font-family: "Newsreader"; font-style: normal; font-weight: 200 800; font-display: swap;
  src: url(fonts/newsreader-latin-opsz-normal.woff2) format("woff2"); }
@font-face { font-family: "Newsreader"; font-style: italic; font-weight: 200 800; font-display: swap;
  src: url(fonts/newsreader-latin-opsz-italic.woff2) format("woff2"); }
@font-face { font-family: "Sora"; font-style: normal; font-weight: 100 800; font-display: swap;
  src: url(fonts/sora-latin-wght-normal.woff2) format("woff2"); }

:root {
  --tt-noir: #1A1714; --tt-vert: #2A3D2E; --tt-or: #CDAA4A; --tt-or-clair: #E3CD8A; --tt-or-fonce: #a9853a;
  --tt-creme: #F7F3EA; --tt-blanc: #FDFCF9; --tt-brun: #6B6358; --tt-arbre: #4A7C59; --tt-ecran: #0e0c0a;
  --tt-carte-sombre: #221E19;
  --tt-serif: "Newsreader", Georgia, serif; --tt-sans: "Sora", system-ui, sans-serif;
  --tt-doux: cubic-bezier(.2, .8, .2, 1);
}

/* ---------- Conteneurs de la charte : aucune marge par défaut, chaque classe fixe les siennes ---------- */
body .e-con[class*="tt-"] {
  --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px;
  --gap: 0px 0px; --row-gap: 0px; --column-gap: 0px; --container-max-width: 1160px;
  font-family: var(--tt-sans);
}

/* ==========================================================================================================
   SECTIONS ET FONDS
   ========================================================================================================== */
body .e-con.tt-section { --padding-top: 110px; --padding-bottom: 110px; --padding-left: 40px; --padding-right: 40px; }
body .e-con.tt-section--ample { --padding-top: 130px; --padding-bottom: 130px; overflow: hidden; }

body .elementor-element.tt-sombre { background-color: var(--tt-noir); color: rgba(247,243,234,.65); }
body .elementor-element.tt-vert { background-color: var(--tt-vert); color: rgba(247,243,234,.78); }
body .elementor-element.tt-creme { background-color: var(--tt-creme); color: var(--tt-brun); }
body .elementor-element.tt-blanc { background-color: var(--tt-blanc); color: var(--tt-brun); }
body .elementor-element.tt-sombre :is(h1, h2, h3), body .elementor-element.tt-vert :is(h1, h2, h3) { color: var(--tt-blanc); }
body .elementor-element.tt-creme :is(h1, h2, h3), body .elementor-element.tt-blanc :is(h1, h2, h3) { color: var(--tt-noir); }

body .e-con.tt-plein-ecran { min-height: 88vh; justify-content: center; --padding-left: 40px; --padding-right: 40px; }

/* Photo de fond : l'image est celle du fond du conteneur (réglée dans Elementor), reprise par un calque qui
   l'assombrit et la fait lentement respirer ; un second calque pose le voile. */
body .elementor-element.tt-photo-fond { position: relative; overflow: hidden; isolation: isolate; }
body .elementor-element.tt-photo-fond::before {
  content: ""; position: absolute; inset: 0; z-index: -2;
  background-image: inherit; background-size: cover; background-position: inherit;
  filter: brightness(.42) saturate(.85); transform: scale(1.06);
  animation: tt-respire 22s ease-in-out infinite alternate;
}
body .elementor-element.tt-photo-fond::after { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--tt-voile, none); }
body .elementor-element.tt-photo-fond--moyenne::before { filter: brightness(.5) saturate(.9); background-position: center 30%;
  animation: none; transform: scale(1.05); }
body .elementor-element.tt-photo-fond--claire::before { filter: brightness(.82) saturate(.95); animation: none; transform: none;
  transition: transform 1.2s var(--tt-doux), filter .6s; }
body .elementor-element.tt-photo-fond--claire:hover::before { transform: scale(1.06); filter: brightness(.95) saturate(1); }
@keyframes tt-respire { from { transform: scale(1.06); } to { transform: scale(1.14); } }

body .elementor-element.tt-voile-lateral { --tt-voile: linear-gradient(100deg, rgba(26,23,20,.92) 0%, rgba(26,23,20,.72) 42%, rgba(26,23,20,.25) 100%); }
body .elementor-element.tt-voile-central { --tt-voile: radial-gradient(ellipse at center, rgba(26,23,20,.25) 0%, rgba(26,23,20,.78) 100%);
  text-align: center; align-items: center; --padding-top: 120px; --padding-bottom: 120px; }

/* Deux colonnes texte / photo */
body .e-con.tt-deux-colonnes { min-height: 640px; }
body .e-con.tt-colonne-texte { justify-content: center; --padding-top: 90px; --padding-bottom: 90px; --padding-left: 7vw; --padding-right: 7vw; }
body .elementor-element.tt-colonne-texte .tt-intro h2 { font-size: clamp(30px, 3.2vw, 46px); line-height: 1.14; margin: 20px 0 22px; }
body .elementor-element.tt-colonne-texte .tt-intro p:not(:first-child) { line-height: 1.8; max-width: 480px; }
body .e-con.tt-colonne-photo { min-height: 420px; }

body .e-con.tt-entete { --column-gap: 60px; --row-gap: 20px; align-items: end; margin-bottom: 64px; }

/* ==========================================================================================================
   TEXTES
   ========================================================================================================== */
body .elementor-element.tt-intro { font-family: var(--tt-sans); }
body .elementor-element.tt-intro > *:last-child { margin-bottom: 0; }
/* le paragraphe juste avant un titre est le surtitre */
body .elementor-element.tt-intro p:has(+ :is(h1, h2)) {
  font-size: 12px; line-height: 1.75; letter-spacing: .28em; text-transform: uppercase; font-weight: 600; color: var(--tt-or); margin: 0;
}
body .elementor-element:is(.tt-creme, .tt-blanc) .tt-intro p:has(+ h2) { color: var(--tt-or-fonce); }
body .elementor-element.tt-intro h1 {
  font-family: var(--tt-serif); font-size: clamp(40px, 5.2vw, 68px); line-height: 1.06; font-weight: 500; margin: 26px 0;
}
body .elementor-element.tt-intro h2 {
  font-family: var(--tt-serif); font-size: clamp(30px, 3.4vw, 48px); line-height: 1.12; font-weight: 500; margin: 18px 0 14px;
}
body .elementor-element.tt-intro--grand h2 { font-size: clamp(32px, 3.8vw, 54px); line-height: 1.1; }
body .elementor-element :is(.tt-intro h1, .tt-intro h2, .tt-phrase) em { font-style: italic; color: var(--tt-or-clair); }
body .elementor-element:is(.tt-creme, .tt-blanc) .tt-intro h2 em, body .elementor-element.tt-intro h1 em { color: var(--tt-or); }
body .elementor-element.tt-intro p { font-size: 15.5px; line-height: 1.75; font-weight: 300; margin: 0 0 1.75em; }
body .elementor-element.tt-intro h1 + p { font-size: 17px; color: rgba(247,243,234,.82); max-width: 520px; }
body .elementor-element.tt-intro p strong {
  font-family: var(--tt-serif); font-style: italic; font-weight: 600; color: var(--tt-or-clair); font-size: 1.12em;
  white-space: nowrap; border-bottom: 1px solid rgba(205,170,74,.45);
}
body .elementor-element.tt-etroit > * { max-width: 760px; }
body .elementor-element.tt-centre { text-align: center; padding-bottom: 64px; }
body .elementor-element.tt-centre > * { max-width: 640px; margin-left: auto; margin-right: auto; }
body .elementor-element.tt-centre h2 { line-height: 1.3; margin: 18px auto 12px; }
body .elementor-element.tt-centre p:not(:first-child) { line-height: 1.7; margin-bottom: 0; }
body .elementor-element.tt-voile-central .tt-intro > * { max-width: 820px; margin-left: auto; margin-right: auto; }
body .elementor-element.tt-voile-central .tt-intro h2 { font-size: clamp(30px, 4vw, 54px); line-height: 1.2; margin: 24px 0; }
body .elementor-element.tt-voile-central .tt-intro p:not(:first-child) { font-size: 16.5px; line-height: 1.8; color: rgba(247,243,234,.8);
  max-width: 640px; margin: 0 auto; }

body .elementor-element.tt-chiffres { display: flex; flex-wrap: wrap; gap: 44px; margin-top: 54px; padding-top: 26px;
  border-top: 1px solid rgba(247,243,234,.16); }
body .elementor-element.tt-chiffres p { margin: 0; font-size: 12.5px; line-height: 1.75; letter-spacing: .04em; color: rgba(247,243,234,.6); }
body .elementor-element.tt-chiffres strong { display: block; font-family: var(--tt-serif); font-size: 26px; font-weight: 500;
  color: var(--tt-or-clair); letter-spacing: 0; }

body .elementor-element.tt-phrase { margin-top: 70px; text-align: center; }
body .elementor-element.tt-phrase .elementor-heading-title {
  font-family: var(--tt-serif); font-weight: 500; font-size: clamp(22px, 2.5vw, 32px); line-height: 1.4; color: var(--tt-blanc);
}
body .elementor-element.tt-phrase .elementor-heading-title::before {
  content: ""; display: block; width: 54px; height: 2px; background: var(--tt-or); margin: 0 auto 26px;
}

body .elementor-element.tt-note { margin: 0 0 52px; padding: 14px 20px;
  background: rgba(205,170,74,.08); border: 1px solid rgba(205,170,74,.3); border-radius: 14px; }
body .elementor-element.tt-note p { margin: 0; font-size: 13.5px; line-height: 1.6; font-weight: 300; color: rgba(247,243,234,.85); }
body .elementor-element.tt-note strong { display: inline-block; margin-right: 14px; background: var(--tt-or); color: var(--tt-noir);
  font-size: 10.5px; font-weight: 700; letter-spacing: .08em; padding: 5px 12px; border-radius: 100px; white-space: nowrap; }

body .elementor-element.tt-mention .elementor-heading-title { font-family: var(--tt-sans); font-size: 12.5px; line-height: 1.75;
  font-weight: 400; color: var(--tt-brun); margin-top: 14px; }
body .elementor-element.tt-signature .elementor-heading-title { font-family: var(--tt-serif); font-style: italic; font-weight: 400;
  color: var(--tt-or); font-size: 15px; line-height: 1.75; letter-spacing: .04em; margin-top: 36px; }

/* ==========================================================================================================
   PASTILLES, ÉTIQUETTES, BOUTONS
   ========================================================================================================== */
body .elementor-element.tt-pastille { width: auto; z-index: 2; }
body .elementor-element.tt-pastille .elementor-heading-title {
  display: inline-block; font-family: var(--tt-sans); font-size: 11px; font-weight: 600; line-height: 1.75;
  background: var(--tt-vert); color: var(--tt-or-clair); padding: 6px 14px; border-radius: 100px;
}
/* dans une carte : posée de biais sur le coin haut gauche */
body .elementor-element.tt-carte > .tt-pastille { position: absolute; top: -13px; left: -9px; transform: rotate(-4deg); transition: transform .3s ease; }
body .elementor-element.tt-carte > .tt-pastille .elementor-heading-title { box-shadow: 0 8px 18px rgba(0,0,0,.4); }
body .elementor-element.tt-carte:hover > .tt-pastille { transform: rotate(-4deg) scale(1.1); }
body .elementor-element.tt-carte > .tt-pastille--bandeau { top: -13px; left: 50%; transform: translateX(-50%); }
body .elementor-element.tt-carte:hover > .tt-pastille--bandeau { transform: translateX(-50%); }
body .elementor-element.tt-pastille--bandeau .elementor-heading-title { background: var(--tt-or); color: var(--tt-noir); font-weight: 700;
  letter-spacing: .08em; padding: 6px 16px; white-space: nowrap; box-shadow: none !important; }

body .elementor-element.tt-etiquette { position: absolute !important; left: 34px; bottom: 30px; z-index: 2; width: auto !important; }
body .elementor-element.tt-etiquette .elementor-heading-title {
  font-family: var(--tt-sans); font-size: 13px; letter-spacing: .05em; line-height: 1.75; font-weight: 400; color: var(--tt-blanc);
  background: rgba(26,23,20,.55); backdrop-filter: blur(8px); padding: 10px 18px; border-radius: 100px; border: 1px solid rgba(255,255,255,.14);
}

body .elementor-element.tt-bouton .elementor-button {
  font-family: var(--tt-sans); font-size: 14px; font-weight: 600; letter-spacing: .03em; line-height: 1.75;
  padding: 15px 30px; border-radius: 100px; border: 0; background: var(--tt-or); color: var(--tt-noir); transition: all .35s ease;
}
body .elementor-element.tt-bouton .elementor-button:is(:hover, :focus) {
  background: var(--tt-or-clair); color: var(--tt-noir); transform: translateY(-2px); box-shadow: 0 14px 30px rgba(205,170,74,.35);
}
body .elementor-element.tt-bouton--fantome .elementor-button { background: transparent; color: var(--tt-creme); border: 1px solid rgba(247,243,234,.45); }
body .elementor-element.tt-bouton--fantome .elementor-button:is(:hover, :focus) {
  background: transparent; color: var(--tt-or-clair); border-color: var(--tt-or); transform: none; box-shadow: none;
}
body .elementor-element.tt-bouton--vert .elementor-button { background: var(--tt-vert); color: var(--tt-creme); }
body .elementor-element.tt-bouton--vert .elementor-button:is(:hover, :focus) { background: var(--tt-noir); color: var(--tt-creme); box-shadow: none; }
body .elementor-element.tt-bouton--lien { margin-top: 30px; }
body .elementor-element.tt-bouton--lien .elementor-button {
  background: transparent; color: var(--tt-or-clair); padding: 0 0 8px; border-radius: 0;
  border-bottom: 1px solid rgba(205,170,74,.4); font-size: 13.5px; letter-spacing: .12em; text-transform: uppercase;
}
body .elementor-element.tt-bouton--lien .elementor-button:is(:hover, :focus) {
  background: transparent; color: var(--tt-or-clair); transform: none; box-shadow: none; letter-spacing: .16em;
}
body .e-con.tt-boutons { flex-wrap: wrap; --column-gap: 16px; --row-gap: 16px; margin-top: 38px; }

/* ==========================================================================================================
   CARTES ET GRILLES
   ========================================================================================================== */
body .e-con.tt-cartes { --column-gap: 24px; --row-gap: 24px; width: 100%; align-items: stretch; }
body .tt-creme .e-con.tt-cartes, body .tt-blanc .e-con.tt-cartes { --column-gap: 20px; --row-gap: 20px; }
body .e-con.tt-grille { --column-gap: 40px; --row-gap: 40px; align-items: center; }
/* rangée souple : 3 cartes par ligne (2 sur tablette, 1 sur mobile), la dernière ligne centrée */
body .e-con.tt-cartes--par-trois { flex-direction: row; flex-wrap: wrap; justify-content: center; }
body .e-con.tt-cartes--par-trois > .e-con { flex: 0 1 calc((100% - 48px) / 3); width: auto; }  /* 2 écarts de 24 px */
@media (max-width: 1024px) { body .e-con.tt-cartes--par-trois > .e-con { flex-basis: calc((100% - 24px) / 2); } }
@media (max-width: 767px) { body .e-con.tt-cartes--par-trois > .e-con { flex-basis: 100%; } }

body .e-con.tt-carte { position: relative; --padding-top: 34px; --padding-bottom: 34px; --padding-left: 26px; --padding-right: 26px;
  background: var(--tt-blanc); border: 1px solid #E5DDD0; border-radius: 22px; color: var(--tt-noir);
  transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease; }
body .e-con.tt-carte:hover { transform: translateY(-8px); box-shadow: 0 26px 46px rgba(26,23,20,.13); }
/* carte sur fond sombre */
body .tt-sombre .e-con.tt-carte { background: var(--tt-carte-sombre); border-color: rgba(255,255,255,.07); border-radius: 20px;
  color: rgba(247,243,234,.6); margin-top: 14px; --padding-top: 58px; --padding-left: 22px; --padding-right: 22px; --padding-bottom: 26px; }
body .tt-sombre .e-con.tt-carte:hover { border-color: rgba(205,170,74,.5); box-shadow: 0 26px 48px rgba(0,0,0,.45); }
body .e-con.tt-carte--vedette { background: var(--tt-vert); border-color: var(--tt-vert); color: var(--tt-creme); box-shadow: 0 20px 44px rgba(42,61,46,.35); }

/* texte d'une carte */
body .elementor-element.tt-carte .elementor-widget-text-editor { flex-grow: 1; font-family: var(--tt-sans); }
body .elementor-element.tt-carte h3 { font-family: var(--tt-sans); font-size: 21px; font-weight: 600; line-height: 1.3; margin: 0; color: inherit; }
body .elementor-element.tt-carte .elementor-widget-text-editor p { font-size: 12.5px; line-height: 1.75; color: var(--tt-brun); margin: 4px 0 20px; }
body .elementor-element.tt-carte--vedette .elementor-widget-text-editor p { color: rgba(247,243,234,.6); }
body .elementor-element.tt-carte .elementor-widget-text-editor p:has(strong) { font-size: 13px; font-weight: 300; margin: 0; }
body .elementor-element.tt-carte .elementor-widget-text-editor strong { font-family: var(--tt-serif); font-size: 30px; font-weight: 500;
  color: var(--tt-noir); margin-right: 4px; }
body .elementor-element.tt-carte--vedette .elementor-widget-text-editor strong { color: var(--tt-creme); }
body .elementor-element.tt-carte ul { list-style: none; margin: 22px 0 28px; padding: 0; }
body .elementor-element.tt-carte li { display: flex; gap: 9px; align-items: baseline; font-size: 13px; line-height: 1.75; font-weight: 300; padding: 7px 0; color: #2D2419; }
body .elementor-element.tt-carte li::before { content: "✓"; color: var(--tt-arbre); font-weight: 700; }
body .elementor-element.tt-carte--vedette li { color: rgba(247,243,234,.85); }
body .elementor-element.tt-carte--vedette li::before { color: var(--tt-or-clair); }
body .elementor-element.tt-carte .tt-bouton .elementor-button { width: 100%; justify-content: center; }

/* médaillon : photo ronde en haut à droite de la carte, titre, nom latin en <em>, texte */
body .elementor-element.tt-medaillon { position: static; }
body .elementor-element.tt-medaillon .elementor-image-box-wrapper { text-align: left; }
body .elementor-element.tt-medaillon .elementor-image-box-img { position: absolute; top: -6px; right: 16px; width: 64px !important; height: 64px;
  margin: 0 !important; border-radius: 50%; overflow: hidden; border: 2px solid rgba(205,170,74,.4); z-index: 2; }
body .elementor-element.tt-medaillon .elementor-image-box-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
body .elementor-element.tt-carte:hover .tt-medaillon .elementor-image-box-img img { transform: scale(1.15); }
body .elementor-element.tt-medaillon .elementor-image-box-title { font-family: "Fraunces", var(--tt-serif); font-size: 19px; font-weight: 600;
  line-height: 1.3; color: inherit; margin: 0; }
body .tt-sombre .elementor-element.tt-medaillon .elementor-image-box-title { color: var(--tt-blanc); }
body .elementor-element.tt-medaillon .elementor-image-box-description { font-size: 12.5px; line-height: 1.65; font-weight: 300; margin: 0; }
body .elementor-element.tt-medaillon .elementor-image-box-description em { display: block; font-family: var(--tt-serif); font-style: italic;
  font-size: 13px; line-height: 1.75; opacity: .85; margin: 4px 0 12px; }

/* boîtes d'icône numérotées 01, 02, 03 */
body .e-con.tt-numerotes { --column-gap: 44px; --row-gap: 44px; margin-top: 60px; counter-reset: tt-numero; }
body .elementor-element.tt-numerotes .elementor-widget-icon-box { counter-increment: tt-numero; border-top: 1px solid rgba(205,170,74,.35);
  padding-top: 22px; transition: transform .35s ease; }
body .elementor-element.tt-numerotes .elementor-widget-icon-box:hover { transform: translateY(-5px); }
body .elementor-element.tt-numerotes .elementor-icon-box-wrapper { text-align: left; }
body .elementor-element.tt-numerotes .elementor-icon-box-content::before {
  content: counter(tt-numero, decimal-leading-zero); display: block; font-family: var(--tt-serif); color: var(--tt-or);
  font-size: 14px; letter-spacing: .18em; line-height: 1.75;
}
body .elementor-element.tt-numerotes .elementor-icon-box-title { font-family: var(--tt-sans); font-size: 19px; font-weight: 600; line-height: 1.3;
  color: var(--tt-blanc); margin: 12px 0 10px; }
body .elementor-element.tt-numerotes .elementor-icon-box-description { font-size: 14px; line-height: 1.7; font-weight: 300; color: rgba(247,243,234,.62); margin: 0; }

/* boîte d'icône : icône ronde dorée à gauche */
body .elementor-element.tt-icone { margin: 20px 0 0; }
body .elementor-element.tt-icone .elementor-icon-box-wrapper { display: flex; flex-direction: row; gap: 14px; align-items: flex-start; text-align: left; }
body .elementor-element.tt-icone .elementor-icon-box-icon { margin: 0 !important; flex: 0 0 auto; }
body .elementor-element.tt-icone .elementor-icon { width: 36px; height: 36px; display: flex; align-items: center; justify-content: center;
  border-radius: 50%; background: rgba(205,170,74,.12); border: 1px solid rgba(205,170,74,.45); font-size: 15px;
  color: var(--tt-or-clair); fill: var(--tt-or-clair); }
body .elementor-element.tt-icone .elementor-icon svg { width: 15px; height: 15px; }
body .elementor-element.tt-icone .elementor-icon-box-title { font-family: var(--tt-sans); font-size: 15px; font-weight: 600; line-height: 1.75;
  color: inherit; margin: 0 0 3px; }
body .tt-sombre .elementor-element.tt-icone .elementor-icon-box-title { color: var(--tt-blanc); }
body .elementor-element.tt-icone .elementor-icon-box-description { font-size: 13.5px; line-height: 1.65; font-weight: 300; margin: 0; }

/* vignettes reliées par un trait doré */
body .e-con.tt-relie { --column-gap: 34px; --row-gap: 34px; margin-top: 70px; position: relative; }
body .e-con.tt-relie::before { content: ""; position: absolute; top: 56px; left: 4%; right: 4%; height: 1.5px;
  background: linear-gradient(90deg, transparent, var(--tt-or) 12%, var(--tt-or) 88%, transparent); }
body .elementor-element.tt-vignette { position: relative; text-align: center; }
body .elementor-element.tt-vignette .elementor-image-box-wrapper { text-align: center; }
body .elementor-element.tt-vignette .elementor-image-box-img { width: 160px !important; margin: 0 auto 20px !important; display: block; }
body .elementor-element.tt-vignette .elementor-image-box-img img { display: block; width: 160px; height: 112px; border: 1px solid #E5DDD0;
  border-radius: 16px; box-shadow: 0 12px 26px rgba(26,23,20,.10); transition: transform .35s ease, box-shadow .35s ease; }
body .elementor-element.tt-vignette:hover .elementor-image-box-img img { transform: translateY(-6px) scale(1.05); box-shadow: 0 22px 38px rgba(26,23,20,.18); }
body .elementor-element.tt-vignette .elementor-image-box-title { font-family: var(--tt-sans); font-size: 19px; font-weight: 600; line-height: 1.3;
  color: var(--tt-noir); margin: 0 0 8px; }
body .elementor-element.tt-vignette .elementor-image-box-description { font-size: 13.5px; line-height: 1.6; font-weight: 300; color: var(--tt-brun);
  max-width: 250px; margin: 0 auto; }

/* ==========================================================================================================
   DÉCORS PROPRES À L'ACCUEIL
   ========================================================================================================== */
body .e-con.tt-hero { --padding-top: 70px; --padding-bottom: 70px; --column-gap: 60px; --row-gap: 60px; align-items: center; }

/* téléphone : cadre, écran, inclinaison, légende de l'image en pastille */
body .elementor-element.tt-telephone { display: flex; justify-content: center; align-items: center; align-self: center; }
body .elementor-element.tt-telephone figure.wp-caption { position: relative; display: inline-block; width: auto; max-width: 100%; margin: 0; }
body .elementor-element.tt-telephone img {
  display: block; box-sizing: border-box; width: 300px; max-width: 100%; height: auto; aspect-ratio: 300 / 609; object-fit: contain;
  background: #F2ECE0; border: 11px solid var(--tt-ecran); border-radius: 46px;
  box-shadow: 0 50px 100px rgba(0,0,0,.6), 0 0 0 2px rgba(255,255,255,.06);
  transform: rotate(2.5deg); transition: transform .8s var(--tt-doux);
}
body .elementor-element.tt-telephone:hover img { transform: rotate(0deg) translateY(-10px); }
body .elementor-element.tt-telephone figcaption {
  position: absolute; bottom: -14px; left: 50%; transform: translateX(-50%); margin: 0;
  background: var(--tt-vert); color: var(--tt-creme); font-size: 11.5px; letter-spacing: .06em; line-height: 1.75;
  padding: 8px 18px; border-radius: 100px; white-space: nowrap; box-shadow: 0 10px 24px rgba(0,0,0,.35);
}

/* petit téléphone posé sur une photo ; légende de l'image = étiquette dorée */
body .elementor-element.tt-incrustation { position: absolute !important; right: 28px; bottom: 78px; z-index: 3; width: 168px !important;
  transform: rotate(2.5deg); transition: transform .5s ease; }
body .elementor-element.tt-colonne-photo:hover .tt-incrustation { transform: rotate(0deg) translateY(-8px); }
body .elementor-element.tt-incrustation figure { margin: 0; position: relative; }
body .elementor-element.tt-incrustation img { display: block; width: 100%; height: 214px; object-fit: cover; object-position: top;
  border: 6px solid var(--tt-ecran); border-radius: 24px; background: var(--tt-ecran); box-shadow: 0 26px 52px rgba(0,0,0,.55); }
body .elementor-element.tt-incrustation figcaption { position: absolute; top: -12px; left: -10px; margin: 0; transform: rotate(-4deg);
  background: var(--tt-or); color: var(--tt-noir); font-size: 10.5px; font-weight: 700; letter-spacing: .06em; line-height: 1.75;
  padding: 5px 12px; border-radius: 100px; }

/* légende des couleurs de la carte (l'ordre des éléments fixe la couleur) */
body .elementor-element.tt-legende { margin-top: 28px; }
body .elementor-element.tt-legende .elementor-icon-list-items { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; }
body .elementor-element.tt-legende .elementor-icon-list-item { margin: 0 !important; padding: 8px 14px !important; display: flex; align-items: center; gap: 8px;
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1); border-radius: 100px; }
body .elementor-element.tt-legende .elementor-icon-list-item::after { display: none !important; }
body .elementor-element.tt-legende .elementor-icon-list-icon { display: none; }
body .elementor-element.tt-legende .elementor-icon-list-item::before { content: ""; width: 10px; height: 10px; border-radius: 50%; flex: 0 0 auto;
  box-sizing: content-box; background: var(--tt-arbre); }
body .elementor-element.tt-legende .elementor-icon-list-item:nth-child(2)::before { opacity: .4; }
body .elementor-element.tt-legende .elementor-icon-list-item:nth-child(3)::before { background: transparent; border: 1.5px solid var(--tt-arbre); }
body .elementor-element.tt-legende .elementor-icon-list-item:nth-child(4)::before { background: #FBEAD3; border: 1.5px solid #E8962B; }
body .elementor-element.tt-legende .elementor-icon-list-item:nth-child(5)::before { background: #FDEEEE; border: 1.5px solid #D64545; }
body .elementor-element.tt-legende .elementor-icon-list-text { font-size: 12.5px; line-height: 1.75; color: rgba(247,243,234,.85); padding: 0 !important; }

/* calendrier des 12 mois : le mois en cours s'allume ; au survol d'une carte, les mois de sa pastille tt-saison */
body .elementor-element.tt-calendrier { margin-bottom: 34px; }
body .elementor-element.tt-calendrier .elementor-icon-list-items { display: grid; grid-template-columns: repeat(12, 1fr); gap: 0 5px; margin: 0; padding: 0; }
body .elementor-element.tt-calendrier .elementor-icon-list-item { margin: 0 !important; padding: 0 0 12px !important; display: block; text-align: center; }
body .elementor-element.tt-calendrier .elementor-icon-list-item::after { content: ""; display: block !important; position: static; height: 3px; width: auto;
  border: 0 !important; border-radius: 2px; background: rgba(247,243,234,.12); margin-top: 9px; transition: background .35s ease, transform .35s ease; }
body .elementor-element.tt-calendrier .elementor-icon-list-icon { display: none; }
body .elementor-element.tt-calendrier .elementor-icon-list-text { font-size: 10.5px; line-height: 1.75; letter-spacing: .1em; color: rgba(247,243,234,.45);
  padding: 0 !important; transition: color .35s ease; }
body .elementor-element.tt-calendrier .tt-allume::after { background: var(--tt-or); transform: scaleY(1.7); }
body .elementor-element.tt-calendrier .tt-allume .elementor-icon-list-text { color: var(--tt-or-clair); }

/* truffes qui flottent : l'image a 40 px de marge à gauche et à droite et 80 px en bas (sur 560) pour que
   l'ombre se fonde ; on l'élargit d'autant pour garder les truffes à leur taille */
body .elementor-element.tt-nuage img { display: block; max-width: none; width: 114.29%; height: auto; margin: 0 0 -14.29% -7.14%;
  animation: tt-flotte 7s ease-in-out infinite; }
@keyframes tt-flotte { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-12px); } }

/* ==========================================================================================================
   EN-TÊTE ET PIED DE PAGE SOMBRES (Astra) — repris du « CSS additionnel » du personnaliseur, qui est lié au
   thème actif et ne suivrait pas le passage au thème enfant.
   ========================================================================================================== */
#masthead, #masthead .ast-builder-grid-row, .ast-primary-header-bar, .ast-above-header-bar,
.ast-mobile-header-wrap .ast-primary-header-bar { background: #1A1714 !important; }
#masthead { border-bottom: 1px solid rgba(205,170,74,.18); }
#masthead .site-title, #masthead .site-title a { color: #FDFCF9 !important; font-family: Newsreader, Georgia, serif !important; white-space: nowrap !important; }
#masthead .site-branding { min-width: max-content !important; }
#masthead .main-header-menu .menu-link { color: rgba(247,243,234,.85) !important; }
#masthead .main-header-menu .menu-link:hover, #masthead .main-header-menu .current-menu-item > .menu-link { color: #E3CD8A !important; }
#masthead .ast-custom-button { background: #CDAA4A !important; color: #1A1714 !important; border: none !important; border-radius: 100px !important; }
#masthead .ast-custom-button:hover { background: #E3CD8A !important; color: #1A1714 !important; }
#masthead .ast-mobile-menu-trigger-minimal, #masthead .mobile-menu-toggle { color: #F7F3EA !important; }
.ast-mobile-popup-drawer .ast-mobile-popup-inner { background: #221E19 !important; }
.ast-mobile-popup-drawer .menu-link { color: #F7F3EA !important; }
/* menu déroulant du téléphone (Astra « dropdown ») : fond sombre, liens clairs — il était blanc, liens illisibles */
#ast-hf-mobile-menu, #ast-hf-mobile-menu .main-header-menu, .ast-mobile-header-content { background: #1A1714 !important; }
#ast-hf-mobile-menu .main-header-menu { border-top: 1px solid rgba(205,170,74,.18) !important; }
#ast-hf-mobile-menu .menu-item { border-color: rgba(247,243,234,.08) !important; }
#ast-hf-mobile-menu .menu-link { color: rgba(247,243,234,.85) !important; background: transparent !important;
  border-color: rgba(247,243,234,.08) !important; }
#ast-hf-mobile-menu .menu-link:hover, #ast-hf-mobile-menu .current-menu-item > .menu-link { color: #E3CD8A !important; }
#ast-hf-mobile-menu .ast-menu-toggle, #ast-hf-mobile-menu .sub-menu { color: #F7F3EA !important; background: #221E19 !important; }

.site-footer, .site-footer .ast-builder-grid-row, .site-footer [data-section] { background: #1A1714 !important; }
.site-footer { border-top: 1px solid rgba(205,170,74,.15); }
.site-footer .widget-title, .site-footer strong { font-family: Newsreader, Georgia, serif !important; font-weight: 600 !important; font-size: 19px !important; color: #FDFCF9 !important; }
.site-footer, .site-footer a { color: rgba(247,243,234,.65) !important; }
.site-footer a:hover { color: #E3CD8A !important; }

/* ==========================================================================================================
   APPARITION AU DÉFILEMENT (le script ajoute .tt-js au <html> ; sans script, tout reste visible)
   ========================================================================================================== */
.tt-js .tt-apparait { opacity: 0; transform: translateY(28px); transition: opacity .9s ease, transform .9s ease; }
.tt-js .tt-apparait.tt-visible { opacity: 1; transform: none; }
/* dans l'éditeur Elementor, tout reste visible : il dessine les blocs après le script, qui ne les verrait jamais */
.elementor-editor-active .tt-apparait { opacity: 1 !important; transform: none !important; }

/* ==========================================================================================================
   TABLETTE (≤ 1024 px)
   ========================================================================================================== */
@media (max-width: 1024px) {
  body .e-con.tt-section { --padding-top: 80px; --padding-bottom: 80px; }
  body .e-con.tt-section--ample { --padding-top: 90px; --padding-bottom: 90px; }
  body .e-con.tt-hero { --row-gap: 56px; --padding-top: 56px; }
  body .elementor-element.tt-telephone img { width: 260px; }
  body .e-con.tt-numerotes { --row-gap: 30px; }
  body .e-con.tt-deux-colonnes { min-height: 0; }
  body .e-con.tt-colonne-photo { min-height: 360px; }
  body .e-con.tt-colonne-texte { --padding-top: 70px; --padding-bottom: 70px; --padding-left: 24px; --padding-right: 24px; }
  body .elementor-element.tt-incrustation { width: 132px !important; bottom: 70px; right: 18px; }
  body .elementor-element.tt-incrustation img { height: 168px; }
  body .e-con.tt-relie { --row-gap: 44px; --column-gap: 24px; }
  body .e-con.tt-relie::before { display: none; }
  body .elementor-element.tt-nuage { max-width: 440px; margin: 0 auto; }
}

/* ==========================================================================================================
   MOBILE (≤ 767 px)
   ========================================================================================================== */
@media (max-width: 767px) {
  body .e-con:is(.tt-section, .tt-plein-ecran) { --padding-left: 22px; --padding-right: 22px; }
  body .elementor-element.tt-voile-central { --padding-top: 90px; --padding-bottom: 90px; }
  body .elementor-element.tt-chiffres { gap: 24px; }
  body .elementor-element.tt-vignette:not(:last-child)::after { content: ""; display: block; width: 2px; height: 34px; background: var(--tt-or); margin: 22px auto 0; }
  body .e-con.tt-relie { --row-gap: 0px; }
  body .elementor-element.tt-calendrier .elementor-icon-list-items { grid-template-columns: repeat(6, 1fr); row-gap: 14px; }
  body .elementor-element.tt-note strong { display: table; margin: 0 0 10px; }
}

@media (prefers-reduced-motion: reduce) {
  body .elementor-element.tt-photo-fond::before, body .elementor-element.tt-nuage img { animation: none; }
  .tt-js .tt-apparait { opacity: 1; transform: none; }
}

/* ==========================================================================================================
   FORMULAIRES (codes courts [tt_inscription] et [tt_contact], inc/formulaires.php) — clairs ou sombres selon
   la section qui les porte
   ========================================================================================================== */
.tt-formulaire { --tt-champ: #FDFCF9; --tt-champ-bord: #E2D9C8; --tt-champ-texte: var(--tt-noir); --tt-mention: var(--tt-brun);
  max-width: 560px; font-family: var(--tt-sans); scroll-margin-top: 110px; }
.tt-sombre .tt-formulaire, .tt-vert .tt-formulaire { --tt-champ: rgba(247,243,234,.07); --tt-champ-bord: rgba(247,243,234,.22);
  --tt-champ-texte: #F7F3EA; --tt-mention: rgba(247,243,234,.6); }
.tt-formulaire input, .tt-formulaire select, .tt-formulaire textarea {
  width: 100%; box-sizing: border-box; font: 300 16px/1.4 var(--tt-sans); color: var(--tt-champ-texte);
  background: var(--tt-champ); border: 1px solid var(--tt-champ-bord); border-radius: 12px; padding: 13px 16px; margin: 0; }
.tt-formulaire input:focus-visible, .tt-formulaire select:focus-visible, .tt-formulaire textarea:focus-visible {
  outline: 2px solid var(--tt-or); outline-offset: 2px; border-color: var(--tt-or); }
.tt-formulaire input:user-invalid, .tt-formulaire textarea:user-invalid { border-color: #C0563D; }
.tt-formulaire button { font: 600 15px/1 var(--tt-sans); color: var(--tt-noir); background: var(--tt-or); border: 0; border-radius: 100px;
  padding: 15px 26px; cursor: pointer; white-space: nowrap; transition: background .2s; }
.tt-formulaire button:hover { background: var(--tt-or-clair); }
.tt-formulaire__ligne { display: flex; gap: 10px; flex-wrap: wrap; }
.tt-formulaire__ligne input { flex: 1 1 240px; }
.tt-formulaire__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.tt-formulaire__grille { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.tt-formulaire__grille label { display: grid; gap: 6px; font-size: 13.5px; font-weight: 600; color: var(--tt-champ-texte); }
.tt-formulaire__large { grid-column: 1 / -1; }
.tt-formulaire__grille button { justify-self: start; }
.tt-formulaire__mention { margin: 12px 0 0; font-size: 12.5px; line-height: 1.6; color: var(--tt-mention); }
.tt-formulaire__message { margin: 0 0 14px; padding: 12px 16px; border-radius: 12px; font-size: 14.5px; line-height: 1.6; }
.tt-formulaire__message--ok { background: rgba(74,124,89,.16); color: inherit; border: 1px solid rgba(74,124,89,.4); }
.tt-formulaire__message--erreur { background: rgba(192,86,61,.12); color: inherit; border: 1px solid rgba(192,86,61,.4); }
.tt-formulaire__piege { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
@media (max-width: 600px) { .tt-formulaire__grille { grid-template-columns: 1fr; } .tt-formulaire button { width: 100%; } }

/* Barre d'inscription, téléphone seulement ; rangée quand le formulaire est visible */
.tt-barre { display: none; }
@media (max-width: 767px) {
  .tt-barre { position: fixed; inset: auto 0 0 0; z-index: 90; display: flex; align-items: center; gap: 12px;
    padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px)); background: #221E19; border-top: 1px solid rgba(205,170,74,.3);
    box-shadow: 0 -10px 30px rgba(0,0,0,.35); transition: transform .3s ease; font-family: var(--tt-sans); }
  .tt-barre span { flex: 1; font-size: 12.5px; line-height: 1.35; color: rgba(247,243,234,.75); }
  .tt-barre a { flex: none; background: var(--tt-or); color: var(--tt-noir) !important; border-radius: 100px; padding: 10px 16px;
    font-size: 13px; font-weight: 600; text-decoration: none; }
  .tt-barre--rangee { transform: translateY(110%); }
  body.tt-avec-barre { padding-bottom: 72px; }
}
@media (prefers-reduced-motion: reduce) { .tt-barre { transition: none; } }

/* Questions repliables : widget Texte « tt-faq », un <details><summary>question</summary><p>réponse</p></details> par question */
body .elementor-element.tt-faq details { border-top: 1px solid rgba(205,170,74,.3); padding: 4px 0; }
body .elementor-element.tt-faq details:last-child { border-bottom: 1px solid rgba(205,170,74,.3); }
body .elementor-element.tt-faq summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 20px;
  padding: 18px 0; font: 400 21px/1.35 var(--tt-serif); color: inherit; }
body .elementor-element.tt-faq summary::-webkit-details-marker { display: none; }
body .elementor-element.tt-faq summary::after { content: "+"; font: 300 26px/1 var(--tt-sans); color: var(--tt-or); transition: transform .25s; }
body .elementor-element.tt-faq details[open] summary::after { transform: rotate(45deg); }
body .elementor-element.tt-faq details p { margin: 0 0 20px; max-width: 70ch; line-height: 1.75; }
body .elementor-element.tt-vert.tt-faq summary, body .elementor-element.tt-vert .tt-faq summary,
body .elementor-element.tt-sombre .tt-faq summary { color: var(--tt-blanc); }
.tt-formulaire select { height: auto !important; min-height: 50px; line-height: 1.4 !important; padding-top: 12px !important; padding-bottom: 12px !important; }


/* ==========================================================
   Onglets « Au quotidien dans l'appli » (accueil)
   Widget Onglets imbriqués + classe tt-onglets
   ========================================================== */
/* titre de fonctionnalité (h3) et son surtitre dans un bloc tt-intro */
body .elementor-element.tt-intro h3 { font-family: var(--tt-serif); font-weight: 500; font-size: clamp(26px, 2.6vw, 36px); line-height: 1.12; margin: 14px 0 18px; }
body .elementor-element.tt-intro h3 em { font-style: italic; color: var(--tt-or-clair); }
body .elementor-element.tt-intro p:has(+ h3) { font-size: 12px; line-height: 1.75; letter-spacing: .28em; text-transform: uppercase; font-weight: 600; color: var(--tt-or); margin: 0; }
body .elementor-element.tt-onglets .e-n-tab-title { font-family: var(--tt-sans); letter-spacing: .01em; transition: background-color .3s, border-color .3s, color .3s; }
body .elementor-element.tt-onglets .e-n-tabs-heading { scrollbar-width: none; }
body .elementor-element.tt-onglets .e-n-tabs-heading::-webkit-scrollbar { display: none; }
body .elementor-element.tt-onglets .e-n-tabs-content > .e-con.e-active { animation: tt-onglet .6s var(--tt-doux); }
@keyframes tt-onglet { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
body .elementor-element.tt-onglets .tt-telephone { flex-shrink: 0; }
body .elementor-element.tt-onglets .tt-telephone img { width: 270px; }
/* numéros 01, 02… devant les titres d'onglets (compteur CSS, aucun HTML) */
body .elementor-element.tt-onglets .e-n-tabs-heading { counter-reset: tt-onglet; }
body .elementor-element.tt-onglets .e-n-tab-title::before { counter-increment: tt-onglet; content: counter(tt-onglet, decimal-leading-zero); font-family: var(--tt-serif); font-style: italic; font-weight: 500; font-size: 1.06em; color: rgba(205,170,74,.7); min-width: 1.6em; }
body .elementor-element.tt-onglets .e-n-tab-title[aria-selected="true"]::before { color: var(--tt-or); }
/* surtitre avant un h3 sur fond clair */
body .elementor-element:is(.tt-creme, .tt-blanc) .tt-intro p:has(+ h3) { color: var(--tt-or-fonce); }
body .elementor-element:is(.tt-creme, .tt-blanc) .tt-intro h3 em { color: var(--tt-or-fonce); }
/* atouts : pastilles cochées */
body .elementor-element.tt-atouts .elementor-icon-list-item { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); border-radius: 100px; padding: 7px 14px; font-size: 12.5px; }
@media (max-width: 767px) {
  body .elementor-element.tt-onglets .tt-intro p:has(+ h3) { display: none; }
  body .elementor-element.tt-intro h3 { font-size: 24px; margin: 0 0 10px; }
  body .elementor-element.tt-onglets .tt-intro p { font-size: 14.5px; line-height: 1.6; }
  body .elementor-element.tt-onglets .tt-telephone img { width: 150px; border-width: 7px; border-radius: 26px; }
}
@media (prefers-reduced-motion: reduce) {
  body .elementor-element.tt-onglets .e-n-tabs-content > .e-con.e-active { animation: none; }
}


/* ==========================================================
   Tarifs : le nombre d'arbres fait le prix
   Carte : Éditeur de texte classe tt-tarif (h3 nom, p.tt-tarif__arbres, p.tt-tarif__prix,
   p.tt-tarif__unite, p.tt-tarif__pour). Curseur : widget HTML classe tt-curseur (tt.js).
   ========================================================== */
body #tarifs .e-con.tt-carte { transition: transform .3s, box-shadow .3s, background-color .35s, border-color .35s, color .35s; cursor: pointer; }
body #tarifs .elementor-element.tt-carte .tt-tarif h3 { font-size: 11px; line-height: 1.6; letter-spacing: .22em; text-transform: uppercase; font-weight: 600; color: var(--tt-or-fonce); }
body #tarifs .elementor-element.tt-carte .tt-tarif p.tt-tarif__arbres { font-family: var(--tt-serif); font-weight: 500; font-size: clamp(26px, 2.2vw, 32px); line-height: 1.08; color: var(--tt-noir); margin: 8px 0 18px; padding-bottom: 18px; border-bottom: 1px solid #E5DDD0; }
body #tarifs .elementor-element.tt-carte .tt-tarif p.tt-tarif__arbres em { display: block; font-size: .5em; font-style: italic; margin-top: 4px; }
body #tarifs .elementor-element.tt-intro p:not(:first-child) { margin-left: auto; margin-right: auto; }
body #tarifs .elementor-element.tt-carte .tt-tarif p.tt-tarif__prix { margin: 0; }
body #tarifs .elementor-element.tt-carte .tt-tarif p.tt-tarif__unite { font-size: 12.5px; margin: 2px 0 14px; }
body #tarifs .elementor-element.tt-carte .tt-tarif p.tt-tarif__pour { font-size: 13.5px; line-height: 1.55; color: var(--tt-noir); margin: 0 0 22px; }
body #tarifs .e-con.tt-carte--vedette .tt-tarif h3 { color: var(--tt-or-clair); }
body #tarifs .e-con.tt-carte--vedette .tt-tarif p.tt-tarif__arbres { color: var(--tt-blanc); border-color: rgba(247,243,234,.16); }
body #tarifs .e-con.tt-carte--vedette .tt-tarif p.tt-tarif__unite { color: rgba(247,243,234,.7); }
body #tarifs .e-con.tt-carte--vedette .tt-tarif p.tt-tarif__pour { color: rgba(247,243,234,.88); }
body #tarifs .e-con.tt-carte--vedette .tt-bouton--vert .elementor-button { background: var(--tt-or); color: var(--tt-noir); }
body #tarifs .e-con.tt-carte--vedette .tt-bouton--vert .elementor-button:is(:hover, :focus) { background: var(--tt-or-clair); color: var(--tt-noir); }
body #tarifs .e-con.tt-carte--vedette:not(:has(.tt-pastille--bandeau))::after { content: "Votre formule"; position: absolute; top: -13px; left: 50%; transform: translateX(-50%); white-space: nowrap; font-family: var(--tt-sans); font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; line-height: 1.75; background: var(--tt-or); color: var(--tt-noir); padding: 6px 14px; border-radius: 100px; }
/* curseur « Combien d'arbres ? » */
body .elementor-element.tt-curseur { width: 100%; }
body .elementor-element.tt-curseur .tt-curseur__boite { display: flex; align-items: center; gap: 32px; background: var(--tt-blanc); border: 1px solid #E5DDD0; border-radius: 20px; padding: 20px 30px; font-family: var(--tt-sans); }
body .elementor-element.tt-curseur label { font-size: 14px; font-weight: 600; white-space: nowrap; color: var(--tt-noir); }
body .elementor-element.tt-curseur output { min-width: 230px; text-align: right; font-size: 14px; color: var(--tt-brun); }
body .elementor-element.tt-curseur output strong { font-family: var(--tt-serif); font-size: 26px; font-weight: 500; color: var(--tt-noir); }
body .elementor-element.tt-curseur input[type=range] { -webkit-appearance: none; appearance: none; flex: 1; height: 4px; border-radius: 4px; background: #E5DDD0; margin: 0; cursor: pointer; }
body .elementor-element.tt-curseur input[type=range]::-webkit-slider-thumb { -webkit-appearance: none; width: 26px; height: 26px; border-radius: 50%; background: var(--tt-vert); border: 3px solid var(--tt-or); }
body .elementor-element.tt-curseur input[type=range]::-moz-range-thumb { width: 22px; height: 22px; border-radius: 50%; background: var(--tt-vert); border: 3px solid var(--tt-or); }
body .elementor-element.tt-curseur input[type=range]:focus-visible { outline: 2px solid var(--tt-or-fonce); outline-offset: 8px; }
@media (max-width: 767px) {
  body .elementor-element.tt-curseur .tt-curseur__boite { flex-wrap: wrap; gap: 12px 16px; padding: 16px 18px; }
  body .elementor-element.tt-curseur label { width: 100%; }
  body .elementor-element.tt-curseur input[type=range] { flex: 1 1 100%; height: 6px; margin: 10px 0; }
  body .elementor-element.tt-curseur output { min-width: 0; text-align: left; }
  body .elementor-element.tt-curseur output strong { font-size: 21px; }
  /* cartes compactes : arbres à gauche, prix à droite ; détail et bouton pour la formule choisie */
  body #tarifs .e-con.tt-carte { --padding-top: 14px; --padding-bottom: 14px; --padding-left: 18px; --padding-right: 18px; }
  body #tarifs .e-con.tt-carte:hover { transform: none; }
  body #tarifs .elementor-element.tt-carte .tt-tarif .elementor-widget-container, body #tarifs .elementor-element.tt-carte .elementor-widget-text-editor.tt-tarif { display: grid; grid-template-columns: 1fr auto; column-gap: 12px; align-items: baseline; }
  body #tarifs .elementor-element.tt-carte .tt-tarif h3 { grid-column: 1; grid-row: 1; }
  body #tarifs .elementor-element.tt-carte .tt-tarif p.tt-tarif__arbres { grid-column: 1; grid-row: 2; font-size: 21px; margin: 0; padding: 0; border: 0; }
  body #tarifs .elementor-element.tt-carte .tt-tarif p.tt-tarif__arbres em { display: inline; font-size: .6em; }
  body #tarifs .elementor-element.tt-carte .tt-tarif p.tt-tarif__prix { grid-column: 2; grid-row: 1 / span 2; text-align: right; }
  body #tarifs .elementor-element.tt-carte .tt-tarif p.tt-tarif__prix strong { font-size: 21px; }
  body #tarifs .elementor-element.tt-carte .tt-tarif p.tt-tarif__unite { grid-column: 1 / -1; grid-row: 3; margin: 6px 0 0; }
  body #tarifs .elementor-element.tt-carte .tt-tarif p.tt-tarif__pour { grid-column: 1 / -1; grid-row: 4; margin: 8px 0 14px; }
  body #tarifs .e-con.tt-carte:not(.tt-carte--vedette) .tt-tarif p:is(.tt-tarif__unite, .tt-tarif__pour), body #tarifs .e-con.tt-carte:not(.tt-carte--vedette) .tt-bouton { display: none; }
}


/* ==========================================================
   Bloc TrufTia (#truftia) : conversation animée au clavier
   Widgets : Éditeur de texte tt-ia-atouts (ol), HTML tt-ia-centre
   (téléphone + dl.tt-ia-qr), HTML tt-ia-droite (questions + prix). Script : tt.js
   ========================================================== */
body #truftia .e-con.tt-ia-rangee { align-items: center; justify-content: space-between; }
body #truftia .elementor-element.tt-ia-atouts, body #truftia .elementor-element.tt-ia-droite { flex: 0 0 320px; max-width: 320px; }
body #truftia .tt-ia-atouts ol { list-style: none; margin: 0; padding: 0; counter-reset: ttia; }
body #truftia .tt-ia-atouts li { counter-increment: ttia; display: flex; flex-direction: column; gap: 6px; padding: 22px 0; border-top: 1px solid rgba(205,170,74,.35); }
body #truftia .tt-ia-atouts li:last-child { border-bottom: 1px solid rgba(205,170,74,.35); }
body #truftia .tt-ia-atouts li::before { content: counter(ttia, decimal-leading-zero); font-family: var(--tt-serif); font-style: italic; font-size: 16px; color: var(--tt-or); }
body #truftia .tt-ia-atouts li strong { font-family: var(--tt-serif); font-size: 24px; font-weight: 500; line-height: 1.2; color: var(--tt-blanc); }
body #truftia .tt-ia-atouts li span { font-size: 14px; line-height: 1.6; color: rgba(247,243,234,.72); }
/* scène et téléphone */
body #truftia .tt-ia-scene { position: relative; width: 420px; height: 690px; margin: 0 auto; display: flex; align-items: center; justify-content: center; }
body #truftia .tt-ia-scene::before { content: ""; position: absolute; width: 420px; height: 420px; border-radius: 50%; background: var(--tt-vert); opacity: .9; }
body #truftia .tt-ia-scene::after { content: ""; position: absolute; width: 520px; height: 520px; border-radius: 50%; border: 1px solid rgba(205,170,74,.25); animation: tt-ia-halo 6s ease-in-out infinite; }
@keyframes tt-ia-halo { 0%, 100% { transform: scale(1); opacity: .55; } 50% { transform: scale(1.06); opacity: .9; } }
body #truftia .tt-ia-tel { position: relative; z-index: 1; width: 330px; height: 680px; box-sizing: border-box; padding: 10px; background: var(--tt-ecran); border-radius: 46px; box-shadow: 0 60px 120px rgba(0,0,0,.6), 0 0 0 1px rgba(205,170,74,.25); }
body #truftia .tt-ia-tel__ecran { height: 100%; border-radius: 37px; overflow: hidden; background: var(--tt-creme); display: flex; flex-direction: column; font-family: var(--tt-sans); color: var(--tt-noir); }
body #truftia .tt-ia-tel__encoche { height: 30px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; }
body #truftia .tt-ia-tel__encoche::after { content: ""; width: 96px; height: 22px; border-radius: 100px; background: var(--tt-ecran); }
body #truftia .tt-ia-tel__tete { flex-shrink: 0; display: flex; align-items: center; gap: 10px; padding: 6px 16px 12px; border-bottom: 1px solid #E5DDD0; }
body #truftia .tt-ia-tel__avatar { width: 34px; height: 34px; border-radius: 50%; background: var(--tt-vert); color: var(--tt-or-clair); font-family: var(--tt-serif); font-style: italic; font-size: 17px; display: flex; align-items: center; justify-content: center; }
body #truftia .tt-ia-tel__nom { display: flex; flex-direction: column; flex-grow: 1; font-size: 13.5px; line-height: 1.3; }
body #truftia .tt-ia-tel__nom strong { font-weight: 600; }
body #truftia .tt-ia-tel__statut { font-size: 10.5px; color: var(--tt-arbre); }
body #truftia .tt-ia-tel__parcelle { font-size: 10px; color: var(--tt-brun); border: 1px solid #E5DDD0; border-radius: 100px; padding: 3px 9px; }
body #truftia .tt-ia-tel__fil { flex-grow: 1; padding: 14px 14px 10px; display: flex; flex-direction: column; justify-content: flex-end; gap: 10px; overflow: hidden; }
body #truftia .tt-ia-bulle { max-width: 88%; padding: 10px 14px; font-size: 13px; line-height: 1.55; animation: tt-ia-bulle .35s ease; }
body #truftia .tt-ia-bulle--q { align-self: flex-end; max-width: 84%; background: var(--tt-vert); color: var(--tt-creme); border-radius: 18px 18px 5px 18px; }
body #truftia .tt-ia-bulle--r { align-self: flex-start; background: var(--tt-blanc); border: 1px solid #E5DDD0; border-radius: 18px 18px 18px 5px; color: var(--tt-noir); }
body #truftia .tt-ia-points { align-self: flex-start; display: flex; gap: 5px; padding: 12px 16px; background: var(--tt-blanc); border: 1px solid #E5DDD0; border-radius: 18px 18px 18px 5px; animation: tt-ia-bulle .3s ease; }
body #truftia .tt-ia-points i { width: 7px; height: 7px; border-radius: 50%; background: var(--tt-or-fonce); animation: tt-ia-point 1s infinite; }
body #truftia .tt-ia-points i:nth-child(2) { animation-delay: .15s; }
body #truftia .tt-ia-points i:nth-child(3) { animation-delay: .3s; }
@keyframes tt-ia-bulle { from { opacity: 0; transform: translateY(10px) scale(.97); } to { opacity: 1; transform: none; } }
@keyframes tt-ia-point { 0%, 80%, 100% { opacity: .25; transform: none; } 40% { opacity: 1; transform: translateY(-3px); } }
body #truftia .tt-ia-tel__saisie { flex-shrink: 0; display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-top: 1px solid #E5DDD0; background: var(--tt-blanc); }
body #truftia .tt-ia-tel__champ { flex-grow: 1; min-width: 0; height: 34px; box-sizing: border-box; border: 1px solid #E5DDD0; border-radius: 100px; padding: 0 12px; font-size: 12.5px; display: flex; align-items: center; overflow: hidden; white-space: nowrap; }
body #truftia .tt-ia-tel__champ.est-long { justify-content: flex-end; }
body #truftia .tt-ia-tel__curseur { display: inline-block; flex-shrink: 0; width: 1.5px; height: 14px; margin-left: 1px; background: var(--tt-or-fonce); animation: tt-ia-caret 1s steps(1) infinite; }
@keyframes tt-ia-caret { 50% { opacity: 0; } }
body #truftia .tt-ia-tel__indice { color: #9A907F; margin-left: 4px; }
body #truftia .tt-ia-tel__champ.a-texte .tt-ia-tel__indice { display: none; }
body #truftia .tt-ia-tel__envoi { width: 34px; height: 34px; flex-shrink: 0; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: #E5DDD0; color: #9A907F; transition: background .2s, color .2s; }
body #truftia .tt-ia-tel__envoi.est-actif { background: var(--tt-vert); color: var(--tt-or-clair); }
body #truftia .tt-ia-tel__clavier { flex-shrink: 0; background: #E9E2D3; padding: 8px 4px 14px; display: flex; flex-direction: column; gap: 7px; }
body #truftia .tt-ia-rang { display: flex; justify-content: center; gap: 4px; }
body #truftia .tt-ia-touche { display: flex; align-items: center; justify-content: center; width: 25px; height: 34px; border-radius: 6px; font-size: 14px; background: var(--tt-blanc); color: var(--tt-noir); box-shadow: 0 1px 0 #CFC5B2; transition: background .08s, transform .08s, box-shadow .08s; }
body #truftia .tt-ia-touche.est-large { width: 40px; font-size: 10.5px; }
body #truftia .tt-ia-touche.est-espace { width: 150px; font-size: 10.5px; }
body #truftia .tt-ia-touche.est-chaude { background: var(--tt-or); transform: translateY(-3px); box-shadow: 0 4px 0 var(--tt-or-fonce); }
body #truftia .tt-ia-qr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
/* questions et prix */
body #truftia .tt-ia-droite .tt-ia__titre { font-size: 12px; letter-spacing: .22em; text-transform: uppercase; font-weight: 600; color: var(--tt-or); margin: 0 0 8px; }
body #truftia .tt-ia__questions { display: flex; flex-direction: column; border-bottom: 1px solid rgba(247,243,234,.12); }
body #truftia .tt-ia-q { all: unset; box-sizing: border-box; cursor: pointer; position: relative; display: block; padding: 16px 0 16px 17px; border-top: 1px solid rgba(247,243,234,.12); font-family: var(--tt-serif); font-style: italic; font-size: 19px; line-height: 1.35; color: rgba(247,243,234,.5); transition: color .3s; }
body #truftia .tt-ia-q::before { content: ""; position: absolute; left: 0; top: 16px; bottom: 16px; width: 3px; border-radius: 3px; background: transparent; transition: background .3s; }
body #truftia .tt-ia-q:hover, body #truftia .tt-ia-q[aria-selected="true"] { color: var(--tt-blanc); }
body #truftia .tt-ia-q[aria-selected="true"]::before { background: var(--tt-or); }
body #truftia .tt-ia-q:focus-visible { outline: 2px solid var(--tt-or); outline-offset: 4px; }
body #truftia .tt-ia-q__court { display: none; }
body #truftia .tt-ia__prix { margin-top: 28px; display: flex; flex-direction: column; gap: 8px; }
body #truftia .tt-ia__prix p { margin: 0; font-size: 14px; color: rgba(247,243,234,.72); }
body #truftia .tt-ia__prix strong { font-family: var(--tt-serif); font-size: 40px; font-weight: 500; color: var(--tt-blanc); margin-right: 6px; }
body #truftia .tt-ia__prix .tt-ia__prix-mois { font-size: 12.5px; color: rgba(247,243,234,.5); }
body #truftia .tt-ia__lien { align-self: flex-start; margin-top: 6px; font-size: 13px; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; color: var(--tt-or-clair); border-bottom: 1px solid rgba(205,170,74,.45); padding-bottom: 6px; }
@media (max-width: 1100px) {
  body #truftia .elementor-element.tt-ia-atouts { display: none; }
}
@media (max-width: 767px) {
  body #truftia .elementor-element.tt-ia-droite { flex: 1 1 auto; max-width: 100%; width: 100%; }
  body #truftia .tt-ia-scene { width: 100%; height: 590px; }
  body #truftia .tt-ia-scene::before { width: 320px; height: 320px; }
  body #truftia .tt-ia-scene::after { width: 380px; height: 380px; }
  body #truftia .tt-ia-tel { transform: scale(.85); }
  body #truftia .tt-ia-droite .tt-ia__titre { display: none; }
  body #truftia .tt-ia__questions { flex-direction: row; gap: 8px; overflow-x: auto; border: 0; margin: 0 -20px; padding: 0 20px; scrollbar-width: none; }
  body #truftia .tt-ia-q { flex-shrink: 0; min-height: 44px; display: flex; align-items: center; padding: 0 16px; border: 1px solid rgba(247,243,234,.2); border-radius: 100px; font-family: var(--tt-sans); font-style: normal; font-size: 13px; font-weight: 600; color: rgba(247,243,234,.8); }
  body #truftia .tt-ia-q::before { display: none; }
  body #truftia .tt-ia-q[aria-selected="true"] { background: var(--tt-or); border-color: var(--tt-or); color: var(--tt-noir); }
  body #truftia .tt-ia-q__long { display: none; }
  body #truftia .tt-ia-q__court { display: inline; }
  body #truftia .tt-ia__prix { margin-top: 20px; padding-top: 16px; border-top: 1px solid rgba(205,170,74,.35); flex-direction: row; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; }
  body #truftia .tt-ia__prix .tt-ia__prix-intro { width: 100%; font-size: 13px; }
  body #truftia .tt-ia__prix strong { font-size: 26px; }
  body #truftia .tt-ia__lien { margin: 0 0 0 auto; font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  body #truftia .tt-ia-scene::after, body #truftia .tt-ia-bulle, body #truftia .tt-ia-points i { animation: none; }
}

/* Tarifs : interrupteur TrufTia et total */
body #tarifs .tt-curseur__cadre { background: var(--tt-blanc); border: 1px solid #E5DDD0; border-radius: 20px; }
body #tarifs .tt-curseur__cadre .tt-curseur__boite { background: transparent; border: 0; border-radius: 0; }
body #tarifs .tt-curseur__ia { display: flex; align-items: center; gap: 16px; padding: 14px 30px; border-top: 1px solid #EBE3D3; font-family: var(--tt-sans); font-size: 14px; color: var(--tt-noir); }
body #tarifs .tt-interrupteur { all: unset; box-sizing: border-box; flex-shrink: 0; width: 46px; height: 26px; padding: 3px; border-radius: 100px; cursor: pointer; background: #D8CDB8; transition: background .25s; }
body #tarifs .tt-interrupteur span { display: block; width: 20px; height: 20px; border-radius: 50%; background: var(--tt-blanc); transition: transform .25s, background .25s; }
body #tarifs .tt-interrupteur[aria-checked="true"] { background: var(--tt-vert); }
body #tarifs .tt-interrupteur[aria-checked="true"] span { transform: translateX(20px); background: var(--tt-or); }
body #tarifs .tt-interrupteur:focus-visible { outline: 2px solid var(--tt-or-fonce); outline-offset: 4px; }
body #tarifs .tt-curseur__ialib { flex-grow: 1; }
body #tarifs .tt-curseur__ialib small { font-size: 14px; color: var(--tt-brun); }
body #tarifs .tt-curseur__ialib a { color: var(--tt-or-fonce); font-size: 13px; margin-left: 6px; }
body #tarifs .tt-curseur__total { color: var(--tt-brun); white-space: nowrap; }
body #tarifs .tt-curseur__total strong { font-family: var(--tt-serif); font-size: 22px; font-weight: 500; color: var(--tt-noir); }
body #tarifs .elementor-element.tt-carte .tt-tarif p.tt-tarif__unite { font-size: 13px; font-weight: 600; color: var(--tt-or-fonce); }
body #tarifs .e-con.tt-carte--vedette .tt-tarif p.tt-tarif__unite { color: var(--tt-or-clair); }
body #tarifs .elementor-element.tt-carte .tt-tarif p.tt-tarif__ia { display: none; align-self: flex-start; margin: 0 0 12px; font-size: 12px; padding: 5px 11px; border-radius: 100px; background: rgba(205,170,74,.14); color: #7d6327; }
body #tarifs.tt-avec-ia .elementor-element.tt-carte .tt-tarif p.tt-tarif__ia { display: inline-block; animation: tt-ia-bulle .3s ease; }
body #tarifs.tt-avec-ia .e-con.tt-carte--vedette .tt-tarif p.tt-tarif__ia { background: rgba(205,170,74,.18); color: var(--tt-or-clair); }
/* bandeau « Inclus » : filets et numéros au lieu des ronds */
body #tarifs .tt-inclus .e-grid, body #tarifs .tt-inclus .e-con-inner { counter-reset: ttinc; }
body #tarifs .tt-inclus .elementor-element.tt-icone { counter-increment: ttinc; margin: 0; padding-top: 18px; border-top: 1px solid var(--tt-or); }
body #tarifs .tt-inclus .tt-icone .elementor-icon-box-icon { display: none; }
body #tarifs .tt-inclus .tt-icone .elementor-icon-box-wrapper { flex-direction: column; gap: 8px; }
body #tarifs .tt-inclus .tt-icone .elementor-icon-box-wrapper::before { content: counter(ttinc, decimal-leading-zero); font-family: var(--tt-serif); font-style: italic; font-size: 16px; color: var(--tt-or-fonce); }
@media (max-width: 767px) {
  body #tarifs .tt-curseur__ia { flex-wrap: wrap; padding: 14px 18px; gap: 10px 12px; }
  body #tarifs .tt-curseur__ialib { flex: 1 1 60%; font-size: 13px; }
  body #tarifs .tt-curseur__ialib small, body #tarifs .tt-curseur__ialib a { font-size: 12px; }
  body #tarifs .tt-curseur__total { width: 100%; white-space: normal; font-size: 13px; }
  body #tarifs .elementor-element.tt-carte .tt-tarif p.tt-tarif__ia { grid-column: 1 / -1; grid-row: 5; }
  body #tarifs .e-con.tt-carte:not(.tt-carte--vedette) .tt-tarif p.tt-tarif__ia { display: none !important; }
}
