/* TechHome — Composants du site vitrine. Traduction fidèle des composants
   React du design system en classes CSS. Uniquement des var(--…).
   Tonalité : ajouter .th-tone-{teal|coral|mustard|mauve} à un composant
   pour recolorer icône, filet, puces et lien d'un coup. */

.th-tone-teal{--tone:var(--teal);--tone-wash:var(--teal-wash);--tone-ring:var(--teal-ring);--tone-ring-soft:var(--teal-ring-soft)}
.th-tone-coral{--tone:var(--coral);--tone-wash:var(--coral-wash);--tone-ring:var(--coral-ring);--tone-ring-soft:var(--coral-ring-soft)}
.th-tone-mustard{--tone:var(--mustard);--tone-wash:var(--mustard-wash);--tone-ring:var(--mustard-ring);--tone-ring-soft:var(--mustard-ring-soft)}
.th-tone-mauve{--tone:var(--mauve);--tone-wash:var(--mauve-wash);--tone-ring:var(--mauve-ring);--tone-ring-soft:var(--mauve-ring-soft)}

/* ---------- Marque ---------- */
.th-brand{display:inline-flex;align-items:center;gap:calc(var(--logo-header-mobile) * .28);flex:none;border-bottom:0}
.th-brand:hover{border-bottom-color:transparent}
.th-brand__mark{height:var(--logo-header-mobile);width:auto;flex:none}
.th-brand__text{display:grid;gap:calc(var(--logo-footer) * .08)}
.th-brand__word{font-family:var(--font-display);font-weight:var(--fw-black);font-size:calc(var(--logo-header-mobile) * .5);letter-spacing:var(--ls-display);line-height:1;color:var(--wordmark-tech)}
.th-brand__home{color:var(--wordmark-home)}
.th-brand__tagline{font-family:var(--font-body);font-size:var(--fs-4xs);letter-spacing:var(--ls-tagline);text-transform:uppercase;color:var(--teal)}
.th-brand--footer{gap:calc(var(--logo-footer) * .28)}
.th-brand--footer .th-brand__mark{height:var(--logo-footer)}
.th-brand--footer .th-brand__word{font-size:calc(var(--logo-footer) * .5)}

/* ---------- Boutons ---------- */
.th-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);font-family:var(--font-body);font-size:var(--fs-sm);line-height:var(--lh-normal);letter-spacing:var(--ls-label);padding:var(--btn-pad-md);border-radius:var(--r-md);border:var(--bw-hairline) solid transparent;cursor:pointer;text-decoration:none;transition:background var(--dur) var(--ease),color var(--dur) var(--ease),border-color var(--dur) var(--ease),transform var(--dur-fast) var(--ease),box-shadow var(--dur) var(--ease)}
.th-btn:active{transform:translateY(var(--press))}
.th-btn--sm{font-size:var(--fs-xs);padding:var(--btn-pad-sm)}
.th-btn--lg{font-size:var(--fs-base);padding:var(--btn-pad-lg)}
.th-btn--block{width:100%}
.th-btn--primary{background:var(--teal);color:var(--navy-950);font-weight:var(--fw-medium);box-shadow:var(--sh-1)}
.th-btn--primary:hover{background:var(--teal-bright);color:var(--navy-950);border-color:transparent;box-shadow:var(--glow-teal)}
.th-btn--secondary{background:transparent;color:var(--text-primary);border-color:var(--border-hairline)}
.th-btn--secondary:hover{background:var(--surface-raised);color:var(--text-primary);border-color:var(--border-strong)}
.th-btn--ghost{background:transparent;color:var(--text-secondary)}
.th-btn--ghost:hover{background:var(--veil-hover);color:var(--text-secondary);border-color:transparent}
.th-btn--accent{background:var(--action-accent);color:var(--action-accent-text);font-weight:var(--fw-medium);box-shadow:var(--sh-1)}
.th-btn--accent:hover{background:var(--action-accent-hover);color:var(--action-accent-text);border-color:transparent;box-shadow:var(--glow-coral)}
.th-btn--link{background:none;padding:0;border-radius:0;border:0;border-bottom:var(--bw-hairline) solid transparent;color:var(--text-link)}
.th-btn--link:hover{color:var(--text-link-hover);border-bottom-color:currentColor}
.th-icon-btn{width:var(--icon-box-sm);height:var(--icon-box-sm);display:inline-grid;place-items:center;border-radius:var(--r-md);border:var(--bw-hairline) solid var(--border-hairline);background:transparent;color:var(--text-primary);cursor:pointer;transition:all var(--dur) var(--ease)}
.th-icon-btn:hover{border-color:var(--border-strong);color:var(--text-primary)}
.th-icon-btn--sm{width:var(--icon-btn-sm);height:var(--icon-btn-sm)}

/* ---------- Badges & tags ---------- */
.th-badge{display:inline-flex;align-items:center;gap:var(--sp-2);font-family:var(--font-body);font-size:var(--fs-2xs);letter-spacing:var(--ls-label);padding:var(--badge-pad);border-radius:var(--r-full);white-space:nowrap;background:var(--tone-wash,var(--teal-wash));color:var(--tone,var(--teal));border:var(--bw-hairline) solid var(--tone-ring,var(--teal-ring))}
.th-badge--solid{background:var(--tone,var(--teal));color:var(--navy-950);border-color:var(--tone,var(--teal))}
.th-badge__dot{width:var(--dot);height:var(--dot);border-radius:var(--r-full);background:currentColor;flex:none}
.th-tag{display:inline-flex;align-items:center;gap:var(--sp-2);font-family:var(--font-body);font-size:var(--fs-2xs);letter-spacing:var(--ls-tag);text-transform:uppercase;padding:var(--tag-pad);border-radius:var(--r-full);border:var(--bw-hairline) solid var(--border-hairline);color:var(--text-secondary);background:transparent;cursor:pointer;transition:all var(--dur) var(--ease)}
.th-tag:hover{border-color:var(--border-strong)}
.th-tag[aria-pressed="true"],.th-tag.is-active{border-color:var(--teal);color:var(--teal);background:var(--teal-wash)}

/* ---------- Filets ---------- */
.th-accent-rule{display:block;flex:none;width:var(--rule-w);height:var(--bw-rule);background:var(--grad-signal);border-radius:var(--r-rule)}
.th-flag{height:var(--flag-h);width:var(--flag-w)}

/* ---------- Pastille d'icône ---------- */
.th-icon-box{width:var(--icon-box);height:var(--icon-box);flex:none;border-radius:var(--r-md);display:grid;place-items:center;background:var(--tone-wash,var(--teal-wash));color:var(--tone,var(--teal));border:var(--bw-hairline) solid var(--tone-ring-soft,var(--teal-ring-soft))}
.th-icon-box--sm{width:var(--icon-box-sm);height:var(--icon-box-sm)}

/* ---------- Cartes ---------- */
.th-card{position:relative;overflow:hidden;border-radius:var(--r-lg);padding:var(--sp-6);background:var(--surface-card);border:var(--bw-hairline) solid var(--border-hairline);box-shadow:var(--sh-card);transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease),border-color var(--dur) var(--ease)}
.th-card>*{position:relative}
.th-card--flat{box-shadow:none}
.th-card--outline{background:transparent;box-shadow:none}
.th-card--glass{background:var(--glass-bg);backdrop-filter:var(--blur-panel);-webkit-backdrop-filter:var(--blur-panel);border-color:var(--glass-border);box-shadow:var(--sh-3)}
.th-card--accent{border-top:var(--bw-rule) solid var(--tone,var(--teal))}
.th-card--interactive:hover{transform:translateY(var(--lift));box-shadow:var(--sh-card-hover)}
.th-card--outline.th-card--interactive:hover{box-shadow:none;border-color:var(--border-strong)}
.th-card--roomy{padding:var(--sp-5)}
.th-card--grid::before,.th-card--traces::before{content:"";position:absolute;inset:0;pointer-events:none;-webkit-mask-image:var(--mask-card);mask-image:var(--mask-card)}
.th-card--grid::before{background-image:linear-gradient(to right,var(--pattern-line) 1px,transparent 1px),linear-gradient(to bottom,var(--pattern-line) 1px,transparent 1px);background-size:var(--pattern-size) var(--pattern-size)}
.th-card--traces::before{background-image:repeating-linear-gradient(45deg,var(--pattern-line) 0 1px,transparent 1px var(--trace-step))}
@media (min-width:768px){.th-card--roomy{padding:var(--sp-8)}}

/* Liste à coches */
.th-checklist{list-style:none;margin:0;padding:0;display:grid;gap:var(--sp-2)}
.th-checklist--roomy{gap:var(--sp-3)}
.th-checklist>li{display:flex;gap:var(--sp-2);align-items:flex-start;font-family:var(--font-body);font-size:var(--fs-xs);color:var(--text-secondary)}
.th-checklist--roomy>li{gap:var(--sp-3)}
.th-checklist>li::before{content:"";flex:none;width:var(--icon-14);height:var(--icon-14);margin-top:var(--bw-hairline);background:var(--tone,var(--teal));-webkit-mask:url("../assets/icons/check.svg") center/contain no-repeat;mask:url("../assets/icons/check.svg") center/contain no-repeat}

/* ---------- Carte de service ---------- */
.th-service{display:grid;gap:var(--sp-4);align-content:start}
.th-service__head{display:grid;gap:var(--sp-2)}
.th-service__title{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--fs-lg);letter-spacing:var(--ls-heading);color:var(--text-primary)}
.th-service__text{font-family:var(--font-body);font-size:var(--fs-sm);line-height:var(--lh-normal);color:var(--text-secondary)}
.th-service__foot{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3);padding-top:var(--sp-3);border-top:var(--bw-hairline) solid var(--border-hairline)}
.th-service__price{font-family:var(--font-display);font-weight:var(--fw-extrabold);font-size:var(--fs-md);letter-spacing:var(--ls-heading);color:var(--text-primary)}
.th-more{display:inline-flex;align-items:center;gap:var(--gap-link);font-size:var(--fs-xs);color:var(--tone,var(--teal));border-bottom:0}
.th-more:hover{color:var(--tone,var(--teal));border-bottom-color:transparent}
.th-service-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-5)}
.th-service-grid>[hidden]{display:none}
@media (min-width:768px){.th-service-grid{grid-template-columns:repeat(auto-fit,minmax(var(--grid-card-min),1fr))}}

/* ---------- En-tête de section ---------- */
.th-heading{display:grid;gap:var(--sp-3);justify-items:start}
.th-heading--center{justify-items:center;justify-self:center;text-align:center}
.th-heading__eyebrow{font-family:var(--font-body);font-size:var(--fs-2xs);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--tone,var(--teal))}
.th-heading__title{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--fs-xl);line-height:var(--lh-snug);letter-spacing:var(--ls-heading);color:var(--text-primary);max-width:var(--measure-heading)}
.th-heading__rule{display:block;width:var(--rule-w);height:var(--bw-rule);margin-top:var(--sp-1);background:var(--grad-signal);border-radius:var(--r-rule)}
.th-heading__lead{font-family:var(--font-body);font-size:var(--fs-sm);line-height:var(--lh-normal);color:var(--text-secondary);margin-top:var(--sp-2);max-width:var(--measure-section-lead)}
@media (min-width:768px){.th-heading__title{font-size:var(--fs-2xl)}.th-heading__lead{font-size:var(--fs-md)}}

/* ---------- En-tête du site ---------- */
.th-header{position:sticky;top:0;z-index:40;background:var(--header-bg-solid);border-bottom:var(--bw-hairline) solid var(--border-hairline);transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease)}
/* Solide dès le chargement (pas seulement une fois .is-scrolled ajouté par le
   JS) : un fond transparent ferait lire le contenu scrollé par-dessous le
   menu, illisible si le script tarde, échoue ou est bloqué. */
.th-header.is-scrolled,.th-header.is-open{backdrop-filter:var(--blur-panel);-webkit-backdrop-filter:var(--blur-panel)}
/* Barre d'administration WordPress (visiteur connecté) : la variable
   --wp-admin--admin-bar--height n'existe que pour les thèmes à blocs,
   jamais injectée ici — décalage fixe aux mêmes seuils que le cœur WP. */
body.admin-bar .th-header{top:32px}
@media screen and (max-width:782px){body.admin-bar .th-header{top:46px}}
.th-header__bar{display:flex;align-items:center;gap:var(--sp-8);padding-block:var(--sp-3)}
.th-nav{display:none;margin-left:auto}
.th-nav__list{list-style:none;margin:0;padding:0;display:flex;gap:var(--sp-6)}
.th-nav__list a{font-family:var(--font-body);font-size:var(--fs-sm);color:var(--text-secondary);border-bottom:var(--bw-strong) solid transparent;padding-bottom:var(--gap-hair)}
.th-nav__list a:hover{color:var(--text-primary);border-bottom-color:transparent}
.th-nav__list .current-menu-item>a,.th-nav__list a[aria-current="page"]{color:var(--teal);border-bottom-color:var(--teal)}
.th-header__actions{display:none;align-items:center;gap:var(--sp-3);flex:none}
.th-burger{margin-left:auto;flex:none;width:var(--touch-min);height:var(--touch-min);display:grid;place-items:center;background:none;border:var(--bw-hairline) solid var(--border-hairline);border-radius:var(--r-md);color:var(--text-primary);cursor:pointer}
.th-burger[aria-expanded="true"] .th-burger__open,.th-burger[aria-expanded="false"] .th-burger__close{display:none}
.th-drawer{display:grid;grid-template-rows:0fr;border-top:var(--bw-hairline) solid transparent;transition:grid-template-rows var(--dur-slow) var(--ease-out)}
.th-drawer__inner{overflow:hidden;visibility:hidden}
.th-header.is-open .th-drawer{grid-template-rows:1fr;border-top-color:var(--border-hairline)}
.th-header.is-open .th-drawer__inner{visibility:visible}
.th-drawer__nav{padding:var(--sp-4) var(--gutter-mobile) var(--sp-6);display:grid;gap:var(--sp-1)}
.th-drawer__list{list-style:none;margin:0;padding:0;display:grid;gap:var(--sp-1)}
.th-drawer__list a{display:flex;align-items:center;justify-content:space-between;min-height:var(--touch-min);padding:0 var(--sp-1);font-family:var(--font-display);font-weight:var(--fw-medium);font-size:var(--fs-md);letter-spacing:var(--ls-heading);color:var(--text-primary);border-bottom:var(--bw-hairline) solid var(--border-hairline)}
.th-drawer__list a:hover{border-bottom-color:var(--border-hairline)}
.th-drawer__list a::after{content:"";flex:none;width:var(--icon-16);height:var(--icon-16);background:currentColor;-webkit-mask:url("../assets/icons/arrow-right.svg") center/contain no-repeat;mask:url("../assets/icons/arrow-right.svg") center/contain no-repeat}
.th-drawer__list .current-menu-item>a,.th-drawer__list a[aria-current="page"]{color:var(--teal)}
.th-drawer__actions{display:grid;gap:var(--sp-3);margin-top:var(--sp-4)}
.th-drawer__flag{width:100%;margin-top:var(--sp-4)}
@media (min-width:768px){
.th-brand{gap:calc(var(--logo-header) * .28)}
.th-brand__mark{height:var(--logo-header)}
.th-brand__word{font-size:calc(var(--logo-header) * .5)}
.th-brand--footer .th-brand__mark{height:var(--logo-footer)}
.th-brand--footer .th-brand__word{font-size:calc(var(--logo-footer) * .5)}
.th-header__bar{padding-block:var(--sp-4)}
.th-nav{display:block}
.th-header__actions{display:flex}
.th-burger,.th-drawer{display:none}
}

/* ---------- Héros ---------- */
.th-hero{position:relative;overflow:hidden;isolation:isolate;background:var(--navy-900)}
.th-hero::before{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(to right,var(--pattern-line) 1px,transparent 1px),linear-gradient(to bottom,var(--pattern-line) 1px,transparent 1px);background-size:var(--pattern-size-mobile) var(--pattern-size-mobile)}
.th-hero::after{content:"";position:absolute;inset:0;z-index:-1;background:var(--glow-signal),var(--fade-hero-mobile)}
.th-hero__inner{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-8);align-items:center;padding-block:var(--sp-10) var(--sp-12)}
.th-hero__content{display:grid;gap:var(--sp-5);justify-items:start}
.th-hero__title{font-family:var(--font-display);font-weight:var(--fw-black);font-size:var(--fs-hero-mobile);line-height:var(--lh-hero);letter-spacing:var(--ls-hero);color:var(--paper);max-width:var(--measure-hero)}
.th-hero__rule{display:block;width:var(--rule-w-hero-mobile);height:var(--bw-rule);background:var(--grad-signal);border-radius:var(--r-rule)}
.th-hero__lead{font-family:var(--font-body);font-size:var(--fs-sm);line-height:var(--lh-normal);color:var(--text-secondary);max-width:var(--measure-lead)}
.th-hero__actions{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin-top:var(--sp-2);width:100%}
.th-hero__actions .th-btn{width:100%}
.th-hero__stats{list-style:none;margin:var(--sp-5) 0 0;padding:var(--sp-5) 0 0;width:100%;border-top:var(--bw-hairline) solid var(--border-hairline);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-4)}
.th-hero__media{display:grid;place-items:center;order:-1}
.th-hero__mark{width:var(--mark-hero-mobile-w);max-width:var(--mark-hero-mobile);height:auto;filter:var(--drop-mark-sm)}
@media (min-width:768px){
.th-hero::before{background-size:var(--pattern-size) var(--pattern-size)}
.th-hero::after{background:var(--glow-signal),var(--fade-hero)}
.th-hero__inner{grid-template-columns:1.15fr .85fr;gap:var(--sp-16);padding-block:var(--hero-pad-top) var(--hero-pad-bottom)}
.th-hero__content{gap:var(--sp-6)}
.th-hero__title{font-size:var(--fs-hero)}
.th-hero__rule{width:var(--rule-w-hero)}
.th-hero__lead{font-size:var(--fs-md)}
.th-hero__actions{width:auto}
.th-hero__actions .th-btn{width:auto}
.th-hero__stats{grid-template-columns:none;grid-auto-flow:column;justify-content:start;gap:var(--sp-12)}
.th-hero__media{order:0}
.th-hero__mark{width:100%;max-width:var(--mark-hero);filter:var(--drop-mark)}
}

/* ---------- Chiffre-clé ---------- */
.th-stat{display:grid;gap:var(--sp-2);align-content:start}
.th-stat__value{display:flex;align-items:baseline;gap:var(--gap-unit);font-family:var(--font-display);font-weight:var(--fw-extrabold);font-size:var(--fs-2xl);line-height:1;letter-spacing:var(--ls-numeric);font-variant-numeric:tabular-nums;color:var(--tone,var(--teal))}
.th-stat__unit{font-weight:var(--fw-bold);font-size:var(--fs-lg);letter-spacing:var(--ls-body)}
.th-stat__label{font-family:var(--font-body);font-size:var(--fs-xs);color:var(--text-secondary);max-width:var(--measure-stat)}

/* ---------- Étapes ---------- */
.th-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-8)}
.th-step{position:relative;display:grid;gap:var(--sp-3);align-content:start;padding-top:var(--sp-5)}
.th-step::before{content:"";position:absolute;top:0;left:0;right:0;height:var(--bw-strong);background:var(--border-hairline)}
.th-step:first-child::before{background:var(--grad-signal)}
.th-step__head{display:flex;align-items:center;gap:var(--sp-3)}
.th-step__num{font-family:var(--font-display);font-weight:var(--fw-extrabold);font-size:var(--fs-lg);letter-spacing:var(--ls-numeric);font-variant-numeric:tabular-nums;color:var(--teal)}
.th-step__icon{color:var(--text-tertiary)}
.th-step__title{font-family:var(--font-display);font-weight:var(--fw-medium);font-size:var(--fs-md);letter-spacing:var(--ls-heading);color:var(--text-primary)}
.th-step__text{font-family:var(--font-body);font-size:var(--fs-xs);line-height:var(--lh-normal);color:var(--text-secondary)}
@media (min-width:768px){.th-steps{grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);grid-template-columns:none;gap:var(--sp-6)}.th-step::before{right:calc(-1 * var(--sp-6))}}

/* ---------- Témoignages ---------- */
.th-testimonials{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-10);padding-top:var(--sp-8);border-top:var(--bw-hairline) solid var(--border-hairline)}
.th-quote{margin:0;display:grid;gap:var(--sp-4);align-content:start}
.th-quote__icon{color:var(--tone,var(--coral))}
.th-quote__text{margin:0;font-family:var(--font-display);font-weight:var(--fw-medium);font-size:var(--fs-md);line-height:var(--lh-quote);letter-spacing:var(--ls-heading);color:var(--text-primary);max-width:var(--measure-quote)}
.th-quote--lg .th-quote__text{font-size:var(--fs-xl)}
.th-quote__cite{display:grid;gap:var(--gap-hair);padding-left:var(--sp-4);border-left:var(--bw-strong) solid var(--tone,var(--coral))}
.th-quote__author{font-family:var(--font-body);font-size:var(--fs-xs);color:var(--text-primary)}
.th-quote__meta{font-family:var(--font-body);font-size:var(--fs-2xs);color:var(--text-tertiary)}
@media (min-width:768px){.th-testimonials{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-8)}}

/* ---------- Tarifs ---------- */
.th-pricing{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-5);align-items:start}
.th-price{display:grid;gap:var(--sp-5);align-content:start}
.th-price--featured{background:var(--surface-card);border-top:var(--bw-rule) solid var(--teal);box-shadow:var(--glow-teal)}
.th-price__head{display:grid;gap:var(--sp-3)}
.th-price__top{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}
.th-price__name{font-family:var(--font-body);font-weight:var(--fw-regular);font-size:var(--fs-2xs);line-height:1.2;letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--text-secondary)}
.th-price__amount{display:flex;align-items:baseline;gap:var(--sp-1)}
.th-price__value{font-family:var(--font-display);font-weight:var(--fw-extrabold);font-size:var(--fs-3xl);line-height:1;letter-spacing:var(--ls-numeric);color:var(--text-primary)}
.th-price__unit{font-family:var(--font-body);font-size:var(--fs-sm);color:var(--text-secondary)}
.th-price__note{font-family:var(--font-body);font-size:var(--fs-2xs);color:var(--text-tertiary)}
@media (min-width:768px){.th-pricing{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* ---------- Alertes ---------- */
.th-alert{--tone:var(--mauve);--tone-wash:var(--mauve-wash);--tone-ring:var(--mauve-ring);display:flex;gap:var(--sp-3);padding:var(--sp-4);border-radius:var(--r-md);background:var(--tone-wash);border:var(--bw-hairline) solid var(--tone-ring)}
.th-alert--success{--tone:var(--teal);--tone-wash:var(--teal-wash);--tone-ring:var(--teal-ring)}
.th-alert--warning{--tone:var(--mustard);--tone-wash:var(--mustard-wash);--tone-ring:var(--mustard-ring)}
.th-alert--danger{--tone:var(--coral);--tone-wash:var(--coral-wash);--tone-ring:var(--coral-ring)}
.th-alert__icon{color:var(--tone);margin-top:var(--bw-hairline)}
.th-alert__body{display:grid;gap:var(--sp-1);flex:1}
.th-alert__title{display:block;font-family:var(--font-display);font-weight:var(--fw-medium);font-size:var(--fs-sm);color:var(--tone)}
.th-alert__text{font-family:var(--font-body);font-size:var(--fs-xs);line-height:var(--lh-normal);color:var(--text-secondary)}

/* ---------- FAQ (details/summary, exclusif via name="…") ---------- */
.th-faq{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-6);padding-top:var(--sp-8)}
.th-accordion{display:grid}
.th-accordion__item{border-top:var(--bw-hairline) solid var(--border-hairline)}
.th-accordion__item:last-child{border-bottom:var(--bw-hairline) solid var(--border-hairline)}
.th-accordion__q{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-5) 0;cursor:pointer;list-style:none;font-family:var(--font-display);font-weight:var(--fw-medium);font-size:var(--fs-md);letter-spacing:var(--ls-heading);color:var(--text-primary);transition:color var(--dur) var(--ease)}
.th-accordion__q::-webkit-details-marker{display:none}
.th-accordion__q::after{content:"";flex:none;width:var(--icon-18);height:var(--icon-18);background:currentColor;-webkit-mask:url("../assets/icons/chevron-down.svg") center/contain no-repeat;mask:url("../assets/icons/chevron-down.svg") center/contain no-repeat;transition:transform var(--dur) var(--ease)}
.th-accordion__q:focus-visible{outline:none;box-shadow:var(--glow-focus);border-radius:var(--r-xs)}
.th-accordion__item[open]>.th-accordion__q{color:var(--teal)}
.th-accordion__item[open]>.th-accordion__q::after{transform:rotate(180deg)}
.th-accordion__a{padding-bottom:var(--sp-5);font-family:var(--font-body);font-size:var(--fs-sm);line-height:var(--lh-loose);color:var(--text-secondary);max-width:var(--measure)}
@media (min-width:768px){.th-faq{grid-template-columns:.8fr 1.2fr;gap:var(--sp-12)}}

/* ---------- Bandeau d'appel ---------- */
.th-cta{position:relative;overflow:hidden;isolation:isolate;background:var(--navy-950);border-radius:var(--r-lg);padding:var(--sp-8) var(--sp-5)}
.th-cta::before{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(to right,var(--pattern-line) 1px,transparent 1px),linear-gradient(to bottom,var(--pattern-line) 1px,transparent 1px);background-size:var(--pattern-size) var(--pattern-size);-webkit-mask-image:var(--mask-band);mask-image:var(--mask-band)}
.th-cta::after{content:"";position:absolute;inset:0;z-index:-1;background:var(--glow-signal)}
.th-cta__inner{display:flex;flex-wrap:wrap;gap:var(--sp-8);align-items:flex-end;justify-content:space-between}
.th-cta__text{display:grid;gap:var(--sp-3)}
.th-cta__title{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--fs-xl);line-height:var(--lh-snug);letter-spacing:var(--ls-heading);color:var(--text-primary)}
.th-cta__lead{font-family:var(--font-body);font-size:var(--fs-sm);line-height:var(--lh-normal);color:var(--text-secondary)}
.th-cta__actions{display:flex;flex-wrap:wrap;gap:var(--sp-3);width:100%}
.th-cta__actions .th-btn{width:100%}
@media (min-width:768px){.th-cta{padding:var(--sp-12) var(--sp-10)}.th-cta__text{max-width:var(--measure-cta)}.th-cta__title{font-size:var(--fs-2xl)}.th-cta__actions,.th-cta__actions .th-btn{width:auto}}

/* ---------- Contact ---------- */
.th-contact{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-10);align-items:start}
.th-contact__aside{display:grid;gap:var(--sp-8)}
.th-contact__list{list-style:none;margin:0;padding:0;display:grid;gap:var(--sp-4)}
.th-contact__item{display:flex;gap:var(--sp-4);align-items:flex-start}
.th-contact__text{display:grid;gap:var(--gap-hair)}
.th-contact__value{font-family:var(--font-display);font-weight:var(--fw-medium);font-size:var(--fs-md);color:var(--text-primary)}
a.th-contact__value:hover{color:var(--text-link-hover)}
.th-contact__sub{font-family:var(--font-body);font-size:var(--fs-2xs);color:var(--text-tertiary)}
.th-contact__flag{width:var(--flag-w-contact)}
@media (min-width:768px){.th-contact{grid-template-columns:.9fr 1.1fr;gap:var(--sp-16)}}

/* ---------- Formulaire ---------- */
.th-form{display:grid;gap:var(--sp-5)}
.th-form__grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-4)}
.th-form__error{font-family:var(--font-body);font-size:var(--fs-2xs);color:var(--coral)}
.th-field{display:grid;gap:var(--sp-2);align-content:start}
.th-field__label{font-family:var(--font-body);font-size:var(--fs-xs);letter-spacing:var(--ls-label);color:var(--text-secondary)}
.th-field__req{color:var(--coral)}
.th-field__hint{font-family:var(--font-body);font-size:var(--fs-2xs);color:var(--text-tertiary)}
.th-control{position:relative;display:block}
.th-control__icon{position:absolute;left:var(--input-icon-x);top:50%;transform:translateY(-50%);color:var(--text-tertiary);pointer-events:none;transition:color var(--dur) var(--ease)}
.th-control:focus-within .th-control__icon{color:var(--teal)}
.th-input,.th-select,.th-textarea{width:100%;font-family:var(--font-body);font-size:var(--fs-sm);line-height:var(--lh-normal);color:var(--text-primary);background:var(--surface-raised);border:var(--bw-hairline) solid var(--border-hairline);border-radius:var(--r-md);padding:var(--input-pad);outline:none;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
.th-input::placeholder,.th-textarea::placeholder{color:var(--text-tertiary)}
.th-input:focus,.th-select:focus,.th-textarea:focus{border-color:var(--teal);box-shadow:var(--glow-input)}
.th-input[aria-invalid="true"],.th-select[aria-invalid="true"],.th-textarea[aria-invalid="true"]{border-color:var(--coral)}
.th-control--icon .th-input{padding-left:var(--input-pad-icon)}
.th-select{appearance:none;-webkit-appearance:none;padding-right:var(--input-pad-select);cursor:pointer}
.th-control--select::after{content:"";position:absolute;right:var(--input-icon-x);top:50%;transform:translateY(-50%);width:var(--icon-16);height:var(--icon-16);background:var(--text-tertiary);pointer-events:none;-webkit-mask:url("../assets/icons/chevron-down.svg") center/contain no-repeat;mask:url("../assets/icons/chevron-down.svg") center/contain no-repeat}
.th-textarea{resize:vertical}
.th-check,.th-switch{position:relative;display:inline-flex;gap:var(--sp-3);cursor:pointer}
.th-check{align-items:flex-start}
.th-switch{align-items:center}
.th-check__input,.th-switch__input{position:absolute;opacity:0;width:0;height:0}
.th-check__box{width:var(--check-size);height:var(--check-size);flex:none;margin-top:var(--bw-hairline);border-radius:var(--r-xs);display:grid;place-items:center;background:var(--surface-raised);border:var(--bw-hairline) solid var(--border-strong);transition:all var(--dur) var(--ease)}
.th-check__box::after{content:"";width:var(--icon-13);height:var(--icon-13);background:var(--navy-950);opacity:0;-webkit-mask:url("../assets/icons/check.svg") center/contain no-repeat;mask:url("../assets/icons/check.svg") center/contain no-repeat}
.th-check__input:checked+.th-check__box{background:var(--teal);border-color:var(--teal)}
.th-check__input:checked+.th-check__box::after{opacity:1}
.th-check__input[aria-invalid="true"]+.th-check__box{border-color:var(--coral)}
.th-check__label,.th-switch__label{font-family:var(--font-body);font-size:var(--fs-xs);color:var(--text-secondary)}
.th-check__label{line-height:var(--lh-check)}
.th-switch__track{position:relative;width:var(--switch-w);height:var(--switch-h);flex:none;border-radius:var(--r-full);background:var(--surface-pressed);border:var(--bw-hairline) solid var(--border-strong);transition:all var(--dur) var(--ease)}
.th-switch__track::after{content:"";position:absolute;top:var(--switch-inset);left:var(--switch-inset);width:var(--switch-knob);height:var(--switch-knob);border-radius:var(--r-full);background:var(--slate);transition:left var(--dur) var(--ease)}
.th-switch__input:checked+.th-switch__track{background:var(--teal);border-color:var(--teal)}
.th-switch__input:checked+.th-switch__track::after{left:calc(var(--switch-w) - var(--switch-knob) - var(--switch-inset) - 2 * var(--bw-hairline));background:var(--navy-950)}
.th-check__input:focus-visible+.th-check__box,.th-switch__input:focus-visible+.th-switch__track{box-shadow:var(--glow-focus)}
@media (min-width:768px){.th-form__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ---------- Pied de page ---------- */
.th-footer{background:var(--navy-950)}
.th-footer::before{content:"";display:block;height:var(--bw-rule);background:var(--grad-spectrum)}
.th-footer__inner{display:grid;gap:var(--sp-10);padding-block:var(--sp-12) var(--sp-6)}
.th-footer__top{display:grid;gap:var(--sp-8)}
.th-footer__brand{display:grid;gap:var(--sp-4);max-width:var(--measure-footer);align-content:start}
.th-footer__about{font-family:var(--font-body);font-size:var(--fs-xs);line-height:var(--lh-normal);color:var(--text-secondary)}
.th-footer__nav{display:contents}
.th-footer__col{display:grid;gap:var(--sp-3);align-content:start}
.th-footer__title{font-family:var(--font-body);font-size:var(--fs-2xs);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--text-tertiary)}
.th-footer__list{list-style:none;margin:0;padding:0;display:grid;gap:var(--sp-3)}
.th-footer__list a,.th-footer__contact li{font-family:var(--font-body);font-size:var(--fs-xs);color:var(--text-secondary)}
.th-footer__list a:hover{color:var(--text-primary)}
.th-footer__contact li{display:flex;gap:var(--sp-2);align-items:center}
.th-footer__contact a{color:var(--text-secondary)}
.th-footer__contact a:hover{color:var(--text-primary)}
.th-footer__icon{color:var(--coral)}
.th-footer__bottom{padding-top:var(--sp-6);border-top:var(--bw-hairline) solid var(--border-hairline);display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-4);justify-content:space-between;font-family:var(--font-body);font-size:var(--fs-2xs);color:var(--text-tertiary)}
@media (min-width:768px){.th-footer__inner{gap:var(--sp-12);padding-block:var(--sp-16) var(--sp-8)}.th-footer__top{display:flex;flex-wrap:wrap;gap:var(--sp-16);justify-content:space-between}}

/* ---------- Pages simples (contenu éditorial, légal, 404) ---------- */
.th-page-header{display:grid;gap:var(--sp-3)}
.th-page-title{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--fs-2xl);line-height:var(--lh-snug);letter-spacing:var(--ls-heading);color:var(--text-primary)}
@media (min-width:768px){.th-page-title{font-size:var(--fs-3xl)}}
.th-prose{max-width:var(--measure);font-size:var(--fs-base);line-height:var(--lh-loose);color:var(--text-secondary)}
.th-prose>*+*{margin-top:var(--sp-4)}
.th-prose h2{margin-top:var(--sp-10);font-size:var(--fs-xl);color:var(--text-primary)}
.th-prose h3{margin-top:var(--sp-8);font-size:var(--fs-lg);font-weight:var(--fw-medium);color:var(--text-primary)}
.th-prose ul,.th-prose ol{padding-left:var(--sp-5)}
.th-prose li+li{margin-top:var(--sp-2)}
.th-prose a{border-bottom-color:currentColor}
.th-prose strong{color:var(--text-primary)}
.th-prose table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}
.th-prose th,.th-prose td{text-align:left;padding:var(--sp-3);border-bottom:var(--bw-hairline) solid var(--border-hairline)}
.th-prose th{color:var(--text-primary);font-weight:var(--fw-medium)}
.th-entry{display:grid;gap:var(--sp-3);padding-block:var(--sp-6);border-bottom:var(--bw-hairline) solid var(--border-hairline)}
.th-entry__title{font-size:var(--fs-lg)}
.th-entry__title a{color:var(--text-primary)}
.th-entry__meta{font-size:var(--fs-2xs);color:var(--text-tertiary)}
