/* ============================================================
   THERMOTEC — styles site (one-pager mono-produit TM5012)
   Base navy reprise d'Enerton + accent vert agricole.
   Tokens dans style.css (:root --tm-*).
   ============================================================ */

*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; background: var(--tm-bg); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
/* Neutralise toute contrainte de largeur du thème parent (Hello Elementor) */
.site-main, main#content, #content { max-width: none !important; width: 100%; margin: 0 !important; padding: 0 !important; }
.tm-header, .tm-footer, .tm-hero, .tm-section, .tm-cta-banner { width: 100%; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--tm-blue); text-decoration: none; }

.tm-container { width: 100%; max-width: 1240px; margin: 0 auto; padding-inline: 40px; }
@media (max-width: 768px) { .tm-container { padding-inline: 20px; } }

.tm-eyebrow { display:inline-block; color: var(--tm-green-dark); text-transform: uppercase; letter-spacing: .12em; font-weight: 600; font-size: .78rem; margin-bottom: 14px; }
.tm-eyebrow--light { color: var(--tm-accent); }
.tm-section { padding: 88px 0; }
.tm-section--soft { background: var(--tm-bg-soft); }
.tm-section--navy { background: var(--tm-navy); color: #fff; }
.tm-h2 { font-family:'Space Grotesk',sans-serif; font-size: clamp(1.7rem, 3.2vw, 2.6rem); line-height:1.12; letter-spacing:-.02em; margin:0 0 16px; color: var(--tm-ink); }
.tm-section--navy .tm-h2 { color:#fff; }
.tm-lead { color: var(--tm-muted); font-size:1.05rem; line-height:1.6; max-width: 60ch; }
.tm-section--navy .tm-lead { color: rgba(255,255,255,.78); }

/* ---------- Boutons ---------- */
.tm-btn { display:inline-flex; align-items:center; gap:.5rem; font-weight:600; font-size:.95rem;
  padding: 13px 22px; border-radius: var(--tm-radius); border:1px solid transparent; cursor:pointer; transition: all .18s ease; }
.tm-btn--primary { background: var(--tm-navy); color:#fff; }
.tm-btn--primary:hover { background: var(--tm-navy-dark); transform: translateY(-1px); }
.tm-btn--light { background:#fff; color: var(--tm-navy); }
.tm-btn--light:hover { background: var(--tm-green-soft); color: var(--tm-green-dark); }
.tm-btn--ghost { background: transparent; color:#fff; border-color: rgba(255,255,255,.4); }
.tm-btn--ghost:hover { background: rgba(255,255,255,.12); }
.tm-btn--outline { background:transparent; color: var(--tm-navy); border-color: var(--tm-border); }
.tm-btn--outline:hover { border-color: var(--tm-navy); }

/* ---------- Header ---------- */
.tm-header { position: sticky; top:0; z-index:50; background:#fff; border-bottom:1px solid var(--tm-border); }
.tm-header__inner { display:flex; align-items:center; gap:20px; height:72px; }
.tm-logo { display:flex; align-items:center; flex-shrink:0; }
.tm-logo img { height:26px; width:auto; }
.tm-nav { margin-left:auto; }
.tm-menu { list-style:none; display:flex; flex-wrap:nowrap; align-items:center; gap:4px; margin:0; padding:0; }
.tm-menu > li > a { display:inline-flex; align-items:center; padding:8px 12px; color:var(--tm-ink); font-size:.88rem; font-weight:500; white-space:nowrap; border-radius:8px; }
.tm-menu > li > a:hover { color:var(--tm-green-dark); }
.tm-menu__cta { display:none; }
.tm-header__cta { margin-left: 10px; flex-shrink:0; white-space:nowrap; padding:11px 18px; font-size:.85rem; }
.tm-burger { display:none; background:none; border:0; font-size:1.6rem; color:var(--tm-navy); cursor:pointer; margin-left:auto; }

/* ---------- Bandeau d'accent (haut de page) : navy → vert → rouge FR ---------- */
.tm-topbar { height:4px; width:100%;
  background: linear-gradient(90deg, var(--tm-navy) 0%, var(--tm-green) 60%, var(--tm-red) 80%, var(--tm-red) 100%); }

/* Offset d'ancrage sous le header sticky (72px) */
.tm-section[id], [id] { scroll-margin-top: 88px; }
html { scroll-behavior: smooth; }

/* ---------- Hero : fond navy animé « flux d'air » (+ nappe verte) ---------- */
.tm-hero { position:relative; overflow:hidden; color:#fff; padding: 110px 0 92px;
  background: linear-gradient(160deg, #1a2351 0%, #111a3e 100%); }
.tm-hero__fx { position:absolute; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
.tm-hero__fx::before, .tm-hero__fx::after { content:""; position:absolute; border-radius:50%;
  filter: blur(70px); will-change: transform, opacity; }
/* Nappe bleue (courant d'air) */
.tm-hero__fx::before {
  width:60vw; height:60vw; top:-28%; left:30%;
  background: radial-gradient(circle, rgba(64,150,255,.85) 0%, rgba(64,150,255,0) 62%);
  animation: tm-flow-a 12s ease-in-out infinite; }
/* Nappe bleu profond */
.tm-hero__fx::after {
  width:52vw; height:52vw; top:8%; left:-12%;
  background: radial-gradient(circle, rgba(45,120,235,.7) 0%, rgba(45,120,235,0) 64%);
  animation: tm-flow-b 15s ease-in-out infinite; }
/* Nappe VERTE subtile (végétation / serre) — signature THERMOTEC */
.tm-hero::after { content:""; position:absolute; z-index:0; pointer-events:none;
  width:46vw; height:46vw; bottom:-26%; right:4%; border-radius:50%;
  background: radial-gradient(circle, rgba(40,180,110,.5) 0%, rgba(40,180,110,0) 64%);
  filter: blur(80px); will-change: transform, opacity;
  animation: tm-flow-c 18s ease-in-out infinite; }
/* Grille pointillée qui dérive en diagonale */
.tm-hero::before { content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background-image: radial-gradient(rgba(255,255,255,.06) 1px, transparent 1.4px);
  background-size: 24px 24px;
  -webkit-mask-image: linear-gradient(180deg, #000 0%, transparent 92%);
  mask-image: linear-gradient(180deg, #000 0%, transparent 92%);
  animation: tm-dots-pan 26s linear infinite; }
.tm-hero > .tm-container { position:relative; z-index:2; }

@keyframes tm-flow-a {
  0%,100% { transform: translate3d(-16%, -10%, 0) scale(1);    opacity:.75; }
  50%     { transform: translate3d(18%, 16%, 0)   scale(1.3);  opacity:1; } }
@keyframes tm-flow-b {
  0%,100% { transform: translate3d(18%, 12%, 0)   scale(1.15); opacity:.65; }
  50%     { transform: translate3d(-18%, -12%, 0) scale(.8);   opacity:.95; } }
@keyframes tm-flow-c {
  0%,100% { transform: translate3d(10%, 8%, 0)   scale(1);    opacity:.45; }
  50%     { transform: translate3d(-12%, -10%, 0) scale(1.25); opacity:.7; } }
@keyframes tm-dots-pan { from { background-position: 0 0; } to { background-position: 96px 72px; } }

.tm-eyebrow--hero { display:inline-flex; align-items:center; gap:8px; color: var(--tm-accent);
  background: rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.18); padding:7px 14px; border-radius:999px; }
.tm-eyebrow--hero .tm-flag { font-size:1rem; line-height:1; }
.tm-hero h1 { font-family:'Space Grotesk',sans-serif; font-weight:700; font-size: clamp(2.3rem, 5vw, 3.7rem); line-height:1.05; letter-spacing:-.025em; margin:18px 0 20px; }
.tm-hero p { color: rgba(255,255,255,.84); font-size:1.1rem; line-height:1.6; max-width: 62ch; margin:0 0 28px; }
.tm-hero p strong { color:#fff; }
.tm-hero__actions { display:flex; flex-wrap:wrap; gap:14px; }
.tm-stats { display:flex; flex-wrap:wrap; gap:44px; margin-top:54px; padding-top:32px; border-top:1px solid rgba(255,255,255,.15); }
.tm-stat__num { font-family:'Space Grotesk',sans-serif; font-size:1.9rem; font-weight:700; }
.tm-stat__label { color: rgba(255,255,255,.62); font-size:.8rem; text-transform:uppercase; letter-spacing:.05em; margin-top:4px; }

/* ---------- Grilles, head, cards ---------- */
.tm-grid { display:grid; gap:24px; }
.tm-grid--3 { grid-template-columns: repeat(3, 1fr); }
.tm-grid--4 { grid-template-columns: repeat(4, 1fr); }
.tm-head { max-width:62ch; margin-bottom:40px; }

.tm-card { background:#fff; border:1px solid var(--tm-border); border-radius:14px; padding:28px; box-shadow: var(--tm-shadow-card); transition: transform .2s ease, box-shadow .2s ease; }
.tm-card:hover { transform: translateY(-4px); box-shadow: 0 14px 34px -16px rgba(22,33,90,.32); }
.tm-card h3 { font-family:'Space Grotesk',sans-serif; font-size:1.15rem; margin:0 0 10px; color:var(--tm-ink); }
.tm-card p { color:var(--tm-muted); font-size:.95rem; line-height:1.55; margin:0; }
.tm-card__icon { width:48px; height:48px; border-radius:12px; background:var(--tm-green-soft); display:flex; align-items:center; justify-content:center; margin-bottom:16px; font-size:1.4rem; }
.tm-card--pillar .tm-card__icon { background:#dbe9f8; }

/* ---------- Split (texte / media) ---------- */
.tm-split { display:grid; grid-template-columns: 1fr 1fr; gap:56px; align-items:center; }
.tm-split--form { grid-template-columns: 1fr 1.05fr; align-items:start; }

/* ---------- Media ---------- */
.tm-media { position:relative; }
.tm-media__img { border-radius:16px; aspect-ratio:4/3; object-fit:cover; width:100%; box-shadow:var(--tm-shadow-card); }
.tm-media__tag { position:absolute; left:16px; bottom:16px; background:rgba(14,23,64,.86); color:#fff; font-size:.78rem; font-weight:600; padding:7px 13px; border-radius:999px; backdrop-filter: blur(4px); }
.tm-media--gallery .tm-media__img { aspect-ratio:1/1; }

/* ---------- Points ---------- */
.tm-points { list-style:none; margin:20px 0 0; padding:0; }
.tm-points li { position:relative; padding-left:28px; margin-bottom:11px; color:var(--tm-ink); font-size:.98rem; }
.tm-points li::before { content:"✓"; position:absolute; left:0; top:-1px; width:19px; height:19px; border-radius:50%;
  background:var(--tm-green-soft); color:var(--tm-green-dark); font-size:.72rem; font-weight:700; display:flex; align-items:center; justify-content:center; }
.tm-section--navy .tm-points li { color:rgba(255,255,255,.9); }

/* ---------- Étapes numérotées ---------- */
.tm-steps { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:48px; }
.tm-step { background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14); border-radius:14px; padding:26px; }
.tm-step__n { display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; border-radius:10px;
  background:var(--tm-green); color:#fff; font-family:'Space Grotesk',sans-serif; font-weight:700; margin-bottom:14px; }
.tm-step h3 { font-family:'Space Grotesk',sans-serif; font-size:1.05rem; margin:0 0 8px; color:#fff; }
.tm-step p { color:rgba(255,255,255,.72); font-size:.92rem; line-height:1.5; margin:0; }

/* ============================================================
   SCÈNE ANIMÉE JOUR / NUIT (pièce maîtresse)
   Cycle CSS continu de 18s : jour (absorption) → nuit (restitution).
   ============================================================ */
.tm-cycle { position:relative; height:340px; border-radius:18px; overflow:hidden;
  border:1px solid rgba(255,255,255,.14); box-shadow: inset 0 0 60px rgba(0,0,0,.35); }
/* Ciel jour ↔ nuit */
.tm-cycle__sky { position:absolute; inset:0; animation: tm-sky 18s ease-in-out infinite; }
@keyframes tm-sky {
  0%, 38%   { background: linear-gradient(180deg, #6cb7f0 0%, #aedcff 55%, #dff0ff 100%); }
  50%       { background: linear-gradient(180deg, #20407a 0%, #355a9e 60%, #6f86b8 100%); }
  55%, 93%  { background: linear-gradient(180deg, #0a1230 0%, #16215a 60%, #2a3b73 100%); }
  100%      { background: linear-gradient(180deg, #6cb7f0 0%, #aedcff 55%, #dff0ff 100%); } }
/* Étoiles (visibles la nuit) */
.tm-cycle__stars { position:absolute; inset:0 0 38% 0; opacity:0; animation: tm-stars 18s ease-in-out infinite;
  background-image:
    radial-gradient(1.4px 1.4px at 12% 30%, #fff, transparent),
    radial-gradient(1.2px 1.2px at 28% 18%, #fff, transparent),
    radial-gradient(1.6px 1.6px at 46% 38%, #fff, transparent),
    radial-gradient(1.2px 1.2px at 63% 22%, #fff, transparent),
    radial-gradient(1.5px 1.5px at 78% 33%, #fff, transparent),
    radial-gradient(1.2px 1.2px at 90% 16%, #fff, transparent); }
@keyframes tm-stars { 0%,42%{opacity:0;} 58%,90%{opacity:.9;} 100%{opacity:0;} }
/* Soleil : arc gauche → droite pendant le jour */
.tm-cycle__sun { position:absolute; width:54px; height:54px; border-radius:50%;
  background: radial-gradient(circle, #fff3c4 0%, var(--tm-sun) 55%, #ffb02e 100%);
  box-shadow: 0 0 50px 14px rgba(255,206,77,.6); top:60px; left:8%;
  animation: tm-sun 18s ease-in-out infinite; }
@keyframes tm-sun {
  0%   { transform: translate(0,40px) scale(.9); opacity:0; }
  6%   { opacity:1; }
  20%  { transform: translate(120%, -28px) scale(1); }
  34%  { transform: translate(260%, 6px) scale(1); opacity:1; }
  42%  { transform: translate(340%, 70px) scale(.85); opacity:0; }
  100% { transform: translate(0,40px); opacity:0; } }
/* Lune : visible la nuit */
.tm-cycle__moon { position:absolute; width:38px; height:38px; border-radius:50%;
  background: radial-gradient(circle at 38% 38%, #fdfdf5 0%, #d9e0ee 70%, #b9c4dc 100%);
  box-shadow: 0 0 26px 6px rgba(220,230,255,.4); top:54px; right:14%; opacity:0;
  animation: tm-moon 18s ease-in-out infinite; }
@keyframes tm-moon { 0%,46%{opacity:0; transform:translateY(14px);} 60%,88%{opacity:1; transform:translateY(0);} 100%{opacity:0;} }
/* Rayons solaires vers le tube (jour) */
.tm-cycle__rays { position:absolute; left:0; right:0; top:80px; height:150px; opacity:0;
  background: repeating-linear-gradient(115deg, rgba(255,221,128,.0) 0 16px, rgba(255,221,128,.18) 16px 18px);
  -webkit-mask-image: linear-gradient(180deg,#000,transparent); mask-image: linear-gradient(180deg,#000,transparent);
  animation: tm-rays 18s ease-in-out infinite; }
@keyframes tm-rays { 0%{opacity:0;} 14%,32%{opacity:1;} 44%{opacity:0;} 100%{opacity:0;} }
/* Sol */
.tm-cycle__ground { position:absolute; left:0; right:0; bottom:0; height:38%;
  background: linear-gradient(180deg, #5a4632 0%, #3f3122 100%); }
.tm-cycle__plant { position:absolute; bottom:46px; font-size:1.5rem; filter: drop-shadow(0 2px 2px rgba(0,0,0,.3)); }
.tm-cycle__plant--1 { left:16%; } .tm-cycle__plant--2 { left:48%; font-size:1.8rem; } .tm-cycle__plant--3 { left:80%; }
/* Le tube : barre noire posée au sol, avec un halo de chaleur */
.tm-cycle__tube { position:absolute; left:8%; right:8%; bottom:22px; height:26px; border-radius:16px;
  background: linear-gradient(180deg,#2a2a2a 0%, #050505 100%); box-shadow: 0 4px 10px rgba(0,0,0,.5); }
.tm-cycle__heat { position:absolute; inset:-10px; border-radius:20px;
  background: radial-gradient(ellipse at center, rgba(255,138,61,.0) 0%, rgba(255,138,61,0) 60%);
  animation: tm-heat 18s ease-in-out infinite; }
/* Jour = absorption (le tube "chauffe" doucement) / Nuit = restitution (halo pulsant) */
@keyframes tm-heat {
  0%   { box-shadow: 0 0 0 0 rgba(255,138,61,0); }
  30%  { box-shadow: 0 0 24px 6px rgba(255,138,61,.35); }      /* fin de journée : chargé */
  58%  { box-shadow: 0 0 40px 12px rgba(255,138,61,.7); }      /* nuit : restitution forte */
  78%  { box-shadow: 0 0 30px 9px rgba(255,138,61,.45); }
  92%  { box-shadow: 0 0 14px 3px rgba(255,138,61,.15); }      /* chaleur presque épuisée */
  100% { box-shadow: 0 0 0 0 rgba(255,138,61,0); } }
/* Légende de phase */
.tm-cycle__phase { position:absolute; left:0; right:0; top:16px; text-align:center; font-size:.82rem; font-weight:600; }
.tm-cycle__phase span { position:absolute; left:0; right:0; padding:6px 0; color:#fff; text-shadow:0 1px 3px rgba(0,0,0,.5); }
.tm-cycle__phase-day { animation: tm-phase-day 18s ease-in-out infinite; }
.tm-cycle__phase-night { animation: tm-phase-night 18s ease-in-out infinite; }
@keyframes tm-phase-day { 0%,38%{opacity:1;} 46%,96%{opacity:0;} 100%{opacity:1;} }
@keyframes tm-phase-night { 0%,42%{opacity:0;} 54%,92%{opacity:1;} 100%{opacity:0;} }
/* Pause hors écran (classe posée par le JS) */
.tm-cycle.is-paused * { animation-play-state: paused; }

/* ---------- Chiffres (compteurs) ---------- */
.tm-figures { display:grid; grid-template-columns:repeat(4,1fr); gap:28px; margin:0 0 8px; padding:30px 0;
  border-top:1px solid var(--tm-border); border-bottom:1px solid var(--tm-border); }
.tm-figures .tm-stat__num { font-family:'Space Grotesk',sans-serif; font-size:2.3rem; font-weight:700; color:var(--tm-navy); }
.tm-figures .tm-stat__label { color:var(--tm-muted); font-size:.84rem; text-transform:uppercase; letter-spacing:.05em; margin-top:6px; }

/* ---------- Tableau de specs ---------- */
.tm-table-wrap { overflow-x:auto; margin-top:32px; border:1px solid var(--tm-border); border-radius:12px; }
.tm-table { width:100%; border-collapse:collapse; font-size:.92rem; min-width:480px; }
.tm-table th, .tm-table td { padding:13px 18px; text-align:left; border-bottom:1px solid var(--tm-border); }
.tm-table thead th { background:var(--tm-navy); color:#fff; font-weight:600; white-space:nowrap; }
.tm-table tbody tr:nth-child(even) { background:var(--tm-bg-soft); }
.tm-table tbody td:first-child { font-weight:600; color:var(--tm-ink); }
.tm-table tbody tr:last-child td { border-bottom:0; }
.tm-note { color:var(--tm-muted); font-size:.86rem; margin-top:16px; font-style:italic; }

/* ---------- Produit / gamme ---------- */
.tm-prod { background:#fff; border:1px solid var(--tm-border); border-radius:16px; overflow:hidden; box-shadow:var(--tm-shadow-card); display:flex; flex-direction:column; transition: transform .2s ease, box-shadow .2s ease; }
.tm-prod:hover { transform: translateY(-4px); box-shadow: 0 16px 36px -18px rgba(22,33,90,.34); }
.tm-prod img { aspect-ratio: 4/3; object-fit:cover; width:100%; }
.tm-prod--dark img { background:#0a0a0a; object-fit:contain; padding:14px; }
.tm-prod__body { padding:22px; }
.tm-prod__cee { display:inline-block; font-size:.72rem; font-weight:600; color:var(--tm-green-dark); background:var(--tm-green-soft); padding:4px 10px; border-radius:6px; margin-bottom:12px; }
.tm-prod h3 { font-family:'Space Grotesk',sans-serif; font-size:1.1rem; margin:0 0 8px; color:var(--tm-ink); }
.tm-prod p { color:var(--tm-muted); font-size:.92rem; line-height:1.5; margin:0; }

/* ---------- Tags (cultures) ---------- */
.tm-tags { display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
.tm-tag { background:var(--tm-green-soft); color:var(--tm-green-dark); font-weight:600; font-size:.9rem; padding:9px 16px; border-radius:999px; }
.tm-tag--alt { background:#dbe9f8; color:var(--tm-navy); }

/* ---------- Confiance ---------- */
.tm-trust { display:grid; grid-template-columns:repeat(5,1fr); gap:18px; }
.tm-trust__item { background:#fff; border:1px solid var(--tm-border); border-radius:14px; padding:24px 18px; text-align:center; box-shadow:var(--tm-shadow-card); }
.tm-trust__item strong { display:block; font-family:'Space Grotesk',sans-serif; color:var(--tm-navy); font-size:1rem; margin-bottom:6px; }
.tm-trust__item span { color:var(--tm-muted); font-size:.84rem; }

/* ---------- Bandeau CTA fiche ---------- */
.tm-cta-banner { background:
    radial-gradient(680px 300px at 88% 120%, rgba(40,180,110,.45), transparent 60%),
    linear-gradient(135deg, #1a2351, #0e1740); color:#fff; border-radius:20px; padding:56px; }
.tm-cta-banner .tm-h2 { color:#fff; }

/* ---------- Formulaire ---------- */
.tm-form-card { background:#fff; border:1px solid var(--tm-border); border-radius:18px; padding:32px; box-shadow:var(--tm-shadow-card); }
.tm-form label { display:block; font-weight:600; font-size:.9rem; color:var(--tm-ink); margin-bottom:16px; }
.tm-form__row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.tm-form input[type=text], .tm-form input[type=email], .tm-form input[type=tel], .tm-form select, .tm-form textarea {
  width:100%; margin-top:6px; padding:12px 14px; border:1px solid var(--tm-border); border-radius:9px;
  font:inherit; font-weight:400; color:var(--tm-ink); background:#fff; }
.tm-form textarea { min-height:120px; resize:vertical; }
.tm-form input:focus, .tm-form select:focus, .tm-form textarea:focus { outline:none; border-color:var(--tm-green); box-shadow:0 0 0 3px var(--tm-green-soft); }
.tm-form input[type=submit] { background:var(--tm-navy); color:#fff; border:0; border-radius:var(--tm-radius);
  padding:14px 26px; font-weight:600; cursor:pointer; width:100%; margin-top:6px; transition:background .18s; }
.tm-form input[type=submit]:hover { background:var(--tm-navy-dark); }
.wpcf7-not-valid-tip { color:var(--tm-red); font-size:.82rem; }
.wpcf7-response-output { border-radius:8px; margin:14px 0 0 !important; padding:12px 14px !important; }

/* ---------- Article (pages légales) ---------- */
.tm-article { color:var(--tm-ink); line-height:1.7; max-width:72ch; }
.tm-article h2, .tm-article h3 { font-family:'Space Grotesk',sans-serif; margin-top:28px; }
.tm-article p { margin:0 0 16px; }

/* ---------- Footer ---------- */
.tm-footer { background: var(--tm-navy); color: rgba(255,255,255,.72); padding:64px 0 28px; }
.tm-footer__grid { display:grid; grid-template-columns: 1.7fr 1fr 1fr; gap:40px; }
.tm-footer__logo { height:28px; width:auto; margin-bottom:18px; }
.tm-footer h4 { color:#fff; font-family:'Space Grotesk',sans-serif; font-size:.95rem; margin:0 0 14px; }
.tm-footer__brand p { color: rgba(255,255,255,.62); font-size:.92rem; line-height:1.6; max-width:46ch; }
.tm-footer__made { margin-top:14px !important; font-size:.82rem !important; }
.tm-footer ul { list-style:none; margin:0; padding:0; }
.tm-footer li { margin-bottom:9px; }
.tm-footer a { color: rgba(255,255,255,.72); font-size:.92rem; }
.tm-footer a:hover { color:#fff; }
.tm-footer__bottom { display:flex; flex-wrap:wrap; gap:16px; justify-content:space-between; margin-top:44px; padding-top:22px; border-top:1px solid rgba(255,255,255,.14); font-size:.84rem; }
.tm-footer__bottom a { margin-left:16px; }

/* ============================================================
   Reveal au scroll (activé seulement si le JS pose .tm-js sur <html>)
   Sans JS → tout reste visible.
   ============================================================ */
.tm-js .tm-reveal { opacity:0; transform: translateY(26px); transition: opacity .6s ease, transform .6s cubic-bezier(.2,.7,.2,1); }
.tm-js .tm-reveal.is-in { opacity:1; transform:none; }

/* ---------- Responsive ---------- */
@media (max-width: 980px) {
  .tm-grid--3, .tm-grid--4, .tm-figures, .tm-steps { grid-template-columns: repeat(2,1fr); }
  .tm-split, .tm-split--form { grid-template-columns:1fr; gap:36px; }
  .tm-trust { grid-template-columns: repeat(3,1fr); }
  .tm-footer__grid { grid-template-columns:1fr 1fr; }
  .tm-nav { display:none; }
  .tm-burger { display:block; margin-left:auto; }
  .tm-nav.is-open { display:block; position:absolute; top:calc(72px + 4px); left:0; right:0; background:#fff;
    border-bottom:1px solid var(--tm-border); box-shadow:var(--tm-shadow-card); padding:10px 24px 18px; }
  .tm-nav.is-open .tm-menu { flex-direction:column; align-items:stretch; gap:0; }
  .tm-nav.is-open .tm-menu > li { border-bottom:1px solid var(--tm-border); }
  .tm-nav.is-open .tm-menu > li:last-child { border-bottom:0; }
  .tm-nav.is-open .tm-menu > li > a { display:block; padding:14px 4px; font-size:.98rem; }
  .tm-header__cta { display:none; }
  .tm-nav.is-open .tm-menu__cta { display:block; padding:14px 0 4px; }
  .tm-nav.is-open .tm-menu__cta a { display:block; text-align:center; }
}
@media (max-width: 600px) {
  .tm-grid--3, .tm-grid--4, .tm-figures, .tm-steps, .tm-footer__grid, .tm-trust { grid-template-columns:1fr; }
  .tm-form__row { grid-template-columns:1fr; }
  .tm-stats { gap:24px; }
  .tm-cta-banner { padding:36px 24px; }
  .tm-cycle { height:280px; }
}

/* ---------- prefers-reduced-motion : tout figé ---------- */
@media (prefers-reduced-motion: reduce) {
  .tm-hero__fx::before, .tm-hero__fx::after, .tm-hero::before, .tm-hero::after,
  .tm-cycle *, .tm-cycle__sky { animation: none !important; }
  .tm-cycle__sun { opacity:1; transform: translate(160%, -20px); }   /* fige en plein jour */
  .tm-cycle__rays { opacity:1; }
  .tm-cycle__heat { box-shadow: 0 0 24px 6px rgba(255,138,61,.35); }
  .tm-cycle__phase-day { opacity:1; } .tm-cycle__phase-night { opacity:0; }
  .tm-js .tm-reveal { opacity:1; transform:none; transition:none; }
  html { scroll-behavior: auto; }
}
