/* =====================================================================
   Toki Gourmandises - site public
   ===================================================================== */
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{background:var(--tg-creme);overflow-x:hidden}
/* Pied de page toujours en bas : le contenu prend la hauteur restante */
body{min-height:100vh;min-height:100svh;display:flex;flex-direction:column}
main{flex:1 0 auto}
.tg-footer{flex-shrink:0}
body:not(.page-accueil) main{padding-top:88px}

/* ------------------------------ En-tête ------------------------------ */
.tg-header{position:fixed;inset:0 0 auto 0;z-index:1030;transition:background .4s var(--tg-ease),box-shadow .4s var(--tg-ease),padding .4s var(--tg-ease);padding:18px 0}
.tg-header.solide,body:not(.page-accueil) .tg-header{background:rgba(251,246,242,.92);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 4px 20px rgba(74,52,40,.25);padding:10px 0}
.tg-nav{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-inline:16px}
.tg-brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--tg-choco)}
.tg-brand .tg-macaron{transition:transform .5s var(--tg-ease)}
.tg-brand:hover .tg-macaron{transform:rotate(-8deg) scale(1.05)}
.tg-brand-texte{display:flex;flex-direction:column;line-height:1}
.tg-brand-nom{font-family:var(--tg-serif);font-style:italic;font-weight:700;font-size:2rem;display:flex;align-items:baseline;gap:3px}
.tg-perle{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--tg-rose)}
.tg-brand-sous{font-size:.55rem;letter-spacing:.42em;margin-top:3px;color:var(--tg-texte-doux)}

.tg-menu{list-style:none;margin:0;padding:0;gap:40px}
.tg-menu a{position:relative;color:var(--tg-choco);text-decoration:none;font-size:.82rem;letter-spacing:.2em;text-transform:uppercase;padding:6px 0}
.tg-menu a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--tg-rose);transform:scaleX(0);transform-origin:right;transition:transform .45s var(--tg-ease)}
.tg-menu a:hover::after,.tg-menu a.actif::after{transform:scaleX(1);transform-origin:left}

.tg-actions{display:flex;align-items:center;gap:6px}
.tg-icone-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;border:0;background:transparent;color:var(--tg-choco);font-size:1.25rem;text-decoration:none;transition:background .4s var(--tg-ease),border-radius .4s var(--tg-ease),transform .4s var(--tg-ease)}
.tg-icone-btn:hover{background:var(--tg-choco);color:var(--tg-creme);border-radius:4px;transform:rotate(45deg) scale(.88)}
.tg-icone-btn:hover>i,.tg-icone-btn:hover>.tg-badge-panier{transform:rotate(-45deg)}
.tg-badge-panier{position:absolute;top:4px;right:2px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--tg-choco);color:var(--tg-creme);font-size:.66rem;font-weight:500;display:flex;align-items:center;justify-content:center}
.tg-badge-panier.pulse{animation:tgPulse .6s var(--tg-ease)}
@keyframes tgPulse{0%{transform:scale(1)}40%{transform:scale(1.35)}100%{transform:scale(1)}}

/* Menu mobile */
.tg-offcanvas{background:var(--tg-creme);max-width:86vw}
.tg-menu-mobile{list-style:none;padding:0;margin:0}
.tg-menu-mobile li{border-bottom:1px solid var(--tg-trait)}
.tg-menu-mobile a{display:block;padding:16px 4px;font-family:var(--tg-serif);font-size:1.6rem;color:var(--tg-choco);text-decoration:none}
.tg-offcanvas-sceau{display:flex;justify-content:center;margin-top:40px;opacity:.9}

/* -------------------------------- Hero ------------------------------- */
.tg-hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;
  background:radial-gradient(ellipse at 50% 40%,var(--tg-creme-50) 0%,var(--tg-creme) 70%)}
.tg-hero-deco{position:absolute;width:138%;aspect-ratio:1;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none;opacity:.7}
.tg-hero-deco svg{width:100%;height:100%;animation:tgRotation 120s linear infinite}
@keyframes tgRotation{to{transform:rotate(360deg)}}
.tg-hero-inner{position:relative;padding:120px 16px 100px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:40px;align-items:center;text-align:left}
.tg-hero-titre{font-size:clamp(3.2rem,8vw,6.6rem);font-weight:700;line-height:.95;margin:18px 0 26px}
.tg-hero-titre em{font-style:normal;color:var(--tg-rose-700,#A1686D)}
.tg-hero-texte{font-size:1.05rem;line-height:1.75;color:var(--tg-texte-doux);max-width:470px;margin:0 0 38px;font-weight:300}
.tg-hero-ctas{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center}

/* Entrées du haut de page : courbe très amortie et trajet court, pour un mouvement doux */
[data-aos][data-aos][data-aos-easing="tg-doux"]{transition-timing-function:cubic-bezier(.22,.61,.36,1)}
.tg-hero [data-aos="fade-down"]{transform:translate3d(0,-36px,0)}
.tg-hero [data-aos="fade-up"]{transform:translate3d(0,36px,0)}
.tg-hero [data-aos="fade-right"]{transform:translate3d(-60px,0,0)}
.tg-hero [data-aos="fade-left"]{transform:translate3d(60px,0,0)}
.tg-hero [data-aos].aos-animate{transform:translateZ(0)}

/* Scène de la pâtisserie */
.tg-scene{position:relative;aspect-ratio:1;width:100%;max-width:640px;justify-self:center;--rx:0deg;--ry:0deg;perspective:1200px}
.tg-scene-halo{position:absolute;inset:9%;border-radius:50%;overflow:hidden;background:var(--tg-rose-100);
  border:1px solid var(--tg-rose);animation:tgHaloEntree 2.2s cubic-bezier(.22,.61,.36,1) both}
/* Moulin à vent de jardin : 12 pales vieux rose qui tournent lentement derrière la pâtisserie */
.tg-scene-halo::before{content:"";position:absolute;inset:-2%;border-radius:50%;
  background:repeating-conic-gradient(from 0deg,var(--tg-rose) 0deg 30deg,var(--tg-rose-100) 30deg 60deg);
  animation:tgRotation 50s linear infinite}
/* Lumière au centre pour que la pâtisserie reste lisible */
.tg-scene-halo::after{content:"";position:absolute;inset:0;border-radius:50%;
  background:radial-gradient(circle closest-side,rgba(255,253,251,.92) 0%,rgba(255,253,251,.55) 45%,rgba(255,253,251,0) 100%)}
.tg-scene-anneau{position:absolute;inset:0;width:100%;height:100%;overflow:visible;animation:tgRotation 60s linear infinite reverse}
.tg-scene-anneau text{font-family:var(--tg-sans);font-size:11px;letter-spacing:.42em;text-transform:uppercase;fill:var(--tg-choco-700,#5E4236);opacity:.7}
.tg-scene-piece{position:absolute;left:2%;right:2%;top:50%;transform-style:preserve-3d;
  animation:tgPieceEntree 2.4s cubic-bezier(.22,.61,.36,1) .2s both}
.tg-scene-piece img{display:block;width:100%;height:auto;transform:translateY(-50%) rotateX(var(--rx)) rotateY(var(--ry));
  transition:transform .6s var(--tg-ease);filter:drop-shadow(0 18px 22px rgba(74,50,38,.22));animation:tgFlotte 7s ease-in-out 2.6s infinite}
.tg-scene-ombre{position:absolute;left:18%;right:18%;top:78%;height:7%;border-radius:50%;background:radial-gradient(closest-side,rgba(74,50,38,.32),rgba(74,50,38,0));
  filter:blur(6px);animation:tgOmbre 7s ease-in-out 2.6s infinite,tgFondu 1.8s ease 1.2s both}
.tg-scintille{position:absolute;left:var(--x);top:var(--y);width:10px;height:10px;margin:-5px 0 0 -5px;pointer-events:none;animation:tgScintille 3.2s ease-in-out var(--d) infinite;opacity:0}
.tg-scintille::before,.tg-scintille::after{content:"";position:absolute;inset:0;margin:auto;background:var(--tg-rose,#D8C3A5);border-radius:2px}
.tg-scintille::before{width:2px;height:10px}.tg-scintille::after{width:10px;height:2px}
@keyframes tgPieceEntree{from{opacity:0;transform:translateY(-40px) scale(.92) rotate(-4deg);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}
@keyframes tgHaloEntree{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}
@keyframes tgFlotte{0%,100%{translate:0 0}50%{translate:0 -14px}}
@keyframes tgOmbre{0%,100%{transform:scaleX(1);opacity:1}50%{transform:scaleX(.82);opacity:.6}}
@keyframes tgFondu{from{opacity:0}}
@keyframes tgScintille{0%,100%{opacity:0;transform:scale(.3) rotate(0)}50%{opacity:.9;transform:scale(1) rotate(45deg)}}
@media (max-width:991.98px){
  .tg-hero-inner{grid-template-columns:1fr;text-align:center;gap:8px;padding:96px 16px 90px}
  .tg-scene{order:-1;max-width:min(86vw,460px)}
  .tg-hero-texte{margin-inline:auto}
  .tg-hero-ctas{justify-content:center}
}
@media (prefers-reduced-motion:reduce){
  .tg-scene-anneau,.tg-scene-piece,.tg-scene-piece img,.tg-scene-ombre,.tg-scene-halo,.tg-scene-halo::before,.tg-scintille{animation:none!important;opacity:1}
  .tg-scintille{display:none}
}
.tg-lien-souligne{color:var(--tg-choco);text-decoration:none;letter-spacing:.12em;text-transform:uppercase;font-size:.82rem;position:relative}
.tg-lien-souligne::after{content:"";position:absolute;left:12px;right:12px;bottom:6px;height:1px;background:var(--tg-rose);transition:right .4s var(--tg-ease)}
.tg-lien-souligne:hover{color:var(--tg-choco-900)}
.tg-lien-souligne:hover::after{right:60%}
.tg-hero-scroll{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);width:26px;height:42px;border:1px solid var(--tg-rose);border-radius:14px;display:block}
.tg-hero-scroll span{position:absolute;left:50%;top:8px;width:3px;height:8px;margin-left:-1.5px;border-radius:2px;background:var(--tg-choco);animation:tgScroll 2s var(--tg-ease) infinite}
@keyframes tgScroll{0%{opacity:0;transform:translateY(0)}30%{opacity:1}100%{opacity:0;transform:translateY(14px)}}

/* ------------------------------ Sections ----------------------------- */
.tg-section{padding:110px 0}
.tg-section-entete{text-align:center;margin-bottom:46px}
.tg-section-titre{font-size:clamp(2.4rem,5vw,3.6rem);font-weight:400;margin:8px 0 18px}

.tg-filtres{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:56px}
.tg-filtre{border:1px solid var(--tg-trait);background:transparent;color:var(--tg-choco);border-radius:40px;padding:9px 22px;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;transition:all .35s var(--tg-ease)}
.tg-filtre:hover{border-color:var(--tg-rose);background:var(--tg-rose-100)}
.tg-filtre.actif{background:var(--tg-choco);border-color:var(--tg-choco);color:var(--tg-creme)}

/* ------------------------- Cartes de création ------------------------ */
.tg-grille{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px 28px}
.tg-grille-vedettes{grid-template-columns:repeat(3,minmax(0,1fr))}
.tg-carte-item{min-width:0}
.tg-carte-item.tg-disparait{animation:tgDisparait .26s var(--tg-ease) forwards}
.tg-carte-item.tg-reapparait{animation:tgReapparait .6s var(--tg-ease) both}
@keyframes tgDisparait{to{opacity:0;transform:scale(.96) translateY(8px)}}
@keyframes tgReapparait{from{opacity:0;transform:translateY(22px) scale(.98)}to{opacity:1;transform:none}}

.tg-carte{height:100%;display:flex;flex-direction:column;background:var(--tg-blanc);border-radius:var(--tg-radius-lg);overflow:hidden;
  box-shadow:var(--tg-ombre);transition:transform .6s var(--tg-ease),box-shadow .6s var(--tg-ease)}
.tg-carte:hover{transform:translateY(-8px);box-shadow:var(--tg-ombre-forte)}
.tg-carte-visuel{position:relative;aspect-ratio:4/5;max-width:100%;overflow:hidden;background:var(--tg-creme)}
/* Marbre : légère dérive au survol, lumière de vitrine par-dessus */
.tg-carte-marbre{position:absolute;inset:-4%;background-color:var(--tg-creme);background-size:160%;background-repeat:no-repeat;
  transition:transform 1.4s var(--tg-ease);will-change:transform}
.tg-carte:hover .tg-carte-marbre{transform:scale(1.05) translate(-1.2%,-1%)}
.tg-carte-visuel::after,.tg-galerie-scene::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(120% 70% at 50% 0%,rgba(255,255,255,.32),transparent 60%),linear-gradient(to top,rgba(46,31,23,.1),transparent 38%)}
.tg-carte-ombre{position:absolute;left:24%;right:24%;bottom:17%;height:8%;border-radius:50%;background:rgba(46,31,23,.38);filter:blur(11px);
  transition:transform .8s var(--tg-ease),opacity .8s var(--tg-ease)}
.tg-carte:hover .tg-carte-ombre{transform:scaleX(.8) translateY(6px);opacity:.55}
.tg-carte-produit{position:absolute;inset:13% 12% 15%;z-index:1;display:flex;align-items:flex-end;justify-content:center;transition:transform .8s var(--tg-ease)}
.tg-carte-produit img{max-width:100%;max-height:100%;object-fit:contain;filter:drop-shadow(0 6px 6px rgba(46,31,23,.22))}
.tg-carte-produit .tg-macaron{align-self:center;opacity:.35}
.tg-carte:hover .tg-carte-produit{transform:translateY(-14px) rotate(-2deg) scale(1.04)}
.tg-carte-tag{position:absolute;top:16px;left:16px;z-index:2;background:rgba(251,246,242,.9);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--tg-choco);border-radius:30px;padding:5px 14px;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase}
.tg-carte-ajout{position:absolute;left:16px;right:16px;bottom:16px;z-index:2;display:flex;align-items:center;justify-content:center;gap:8px;min-height:46px;border:0;border-radius:var(--tg-radius);
  background:var(--tg-choco);color:var(--tg-creme);padding:12px;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;
  transform:translateY(calc(100% + 20px));opacity:0;transition:transform .5s var(--tg-ease),opacity .5s var(--tg-ease),background .3s}
.tg-carte-ajout:hover{background:var(--tg-choco-900);color:var(--tg-creme)}
.tg-carte-ajout:focus-visible{outline:2px solid var(--tg-rose);outline-offset:2px}
.tg-carte-ajout.en-cours{opacity:.75!important}
.tg-carte:hover .tg-carte-ajout,.tg-carte:focus-within .tg-carte-ajout{transform:translateY(0);opacity:1}
.tg-carte-etat{position:absolute;left:16px;right:16px;bottom:16px;z-index:2;text-align:center;background:rgba(255,253,251,.92);color:var(--tg-texte-doux);
  border-radius:var(--tg-radius);padding:11px;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase}
.tg-carte.indisponible .tg-carte-produit img{filter:grayscale(.35) drop-shadow(0 6px 6px rgba(46,31,23,.18));opacity:.85}
.tg-carte-corps{padding:22px 22px 24px;text-align:center;display:flex;flex-direction:column;flex:1}
.tg-carte-nom{font-size:1.65rem;font-weight:500;margin:0 0 6px;line-height:1.1}
.tg-carte-nom a{color:inherit;text-decoration:none}
.tg-carte-nom a:hover{text-decoration:underline;text-decoration-color:var(--tg-rose);text-underline-offset:4px;text-decoration-thickness:1px}
.tg-carte-accroche{font-size:.9rem;color:var(--tg-texte-doux);font-weight:300;margin:0 0 14px;flex:1}
.tg-carte-prix{margin:auto 0 0;font-family:var(--tg-chiffres);font-size:1.35rem;font-weight:600;font-variant-numeric:tabular-nums}
.tg-carte-prix span{font-family:var(--tg-sans);font-size:.7rem;font-weight:400;letter-spacing:.12em;text-transform:uppercase;color:var(--tg-texte-leger);margin-right:4px}
/* Écrans tactiles : bouton toujours visible, pas d'effet de survol */
@media (hover:none){
  .tg-carte-ajout{transform:none;opacity:1}
  .tg-carte:hover{transform:none}
}
.tg-vedettes{padding-bottom:20px}
.tg-vide{text-align:center;padding:60px 20px;max-width:520px;margin:0 auto}

/* ---------------------------- Savoir-faire --------------------------- */
.tg-savoir{background:linear-gradient(135deg, #5a3e30 0%, #3a2418 30%, #1e120c 100%);color:var(--tg-creme);padding:90px 0}
.tg-savoir-ico{display:inline-flex;width:54px;height:54px;align-items:center;justify-content:center;border:none;border-radius:4px;font-size:1.3rem;color:var(--tg-choco);background:var(--tg-rose);margin-bottom:28px;transform:rotate(45deg);transition:background .5s var(--tg-ease),color .5s var(--tg-ease)}
.tg-savoir-ico>*{display:inline-block;transform:rotate(-45deg)}
.tg-savoir .col-12{transition:transform .5s var(--tg-ease)}
.tg-savoir .col-12:hover{transform:scale(1.08)}
.tg-savoir .col-12:hover .tg-savoir-ico{background:var(--tg-rose-300);color:#fff}
.tg-savoir .col-12:hover .tg-savoir-ico>*{color:#fff}
.tg-savoir-titre{font-size:1.9rem;font-weight:400;margin-bottom:8px}
.tg-savoir p{color:#E9DCD5;font-weight:300;max-width:300px;margin:0 auto}

/* ---------------------------- Pages simples -------------------------- */
.tg-page-simple{padding:100px 0 120px}
.tg-erreur-code{font-family:var(--tg-chiffres);font-style:italic;font-size:6rem;line-height:1;color:var(--tg-rose);margin:0}

/* -------------------------------- Pied ------------------------------- */
.tg-footer{background:var(--tg-choco-900);color:#E9DDD2;padding:80px 0 0}
.tg-footer-sceau{display:inline-block;margin-bottom:16px}
.tg-footer-baseline{font-family:var(--tg-serif);font-style:italic;font-size:1.25rem;color:var(--tg-creme)}
.tg-footer-titre{font-family:var(--tg-sans);font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;color:var(--tg-rose-300);margin-bottom:18px;font-weight:500}
.tg-footer-liens{list-style:none;padding:0;margin:0}
.tg-footer-liens li{margin-bottom:10px}
.tg-footer-liens a{position:relative;color:#E9DCD5;text-decoration:none;transition:color .3s;padding-bottom:2px}
.tg-footer-liens a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--tg-rose);transform:scaleX(0);transform-origin:right;transition:transform .45s var(--tg-ease)}
.tg-footer-liens a:hover{color:var(--tg-creme)}
.tg-footer-liens a:hover::after{transform:scaleX(1);transform-origin:left}
.tg-footer a{position:relative;color:#E9DCD5;text-decoration:none;transition:color .3s;padding-bottom:2px}
.tg-footer a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--tg-rose);transform:scaleX(0);transform-origin:right;transition:transform .45s var(--tg-ease)}
.tg-footer a:hover{color:var(--tg-creme)}
.tg-footer a:hover::after{transform:scaleX(1);transform-origin:left}
.tg-footer-adresse{font-style:normal;line-height:1.8}
.tg-footer-reseaux{display:flex;gap:10px;margin-top:14px}
.tg-footer-reseaux a{width:40px;height:40px;border:1px solid rgba(216,195,165,.4);border-radius:50%;display:inline-flex;align-items:center;justify-content:center}
.tg-footer-bas{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;border-top:1px solid rgba(216,195,165,.18);margin-top:60px;padding:24px 0;font-size:.8rem;color:#CDB8AE}

/* =========================== Fiche produit =========================== */
.tg-produit-page{padding-top:28px;padding-bottom:40px}
.tg-fil{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:.8rem;color:var(--tg-texte-leger);margin-bottom:28px}
.tg-fil a{color:var(--tg-texte-doux);text-decoration:none;min-height:32px;display:inline-flex;align-items:center}
.tg-fil a:hover{color:var(--tg-choco);text-decoration:underline;text-decoration-color:var(--tg-rose)}
.tg-fil .bi{font-size:.65rem}
.tg-produit{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:64px;align-items:start}
.tg-galerie{position:sticky;top:96px;min-width:0}
.tg-galerie-scene{position:relative;aspect-ratio:1;max-width:100%;border-radius:var(--tg-radius-lg);overflow:hidden;background:var(--tg-creme);box-shadow:var(--tg-ombre)}
.tg-galerie-scene .tg-carte-marbre{background-size:130%}
.tg-galerie-scene .tg-carte-ombre{bottom:15%}
.tg-galerie-photo{position:absolute;inset:14% 14% 15%;z-index:1;display:flex;align-items:flex-end;justify-content:center}
.tg-galerie-photo img{max-width:100%;max-height:100%;object-fit:contain;filter:drop-shadow(0 10px 10px rgba(46,31,23,.22));transition:opacity .22s ease,transform .5s var(--tg-ease)}
.tg-galerie-photo img.change{opacity:0;transform:translateY(8px)}
.tg-galerie-photo .tg-macaron{align-self:center;opacity:.35}
.tg-galerie-vignettes{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.tg-galerie-vignette{width:78px;height:78px;border-radius:10px;border:0;padding:6px;background-color:var(--tg-creme);background-size:300%;
  display:flex;align-items:center;justify-content:center;box-shadow:inset 0 0 0 1px rgba(74,50,38,.12);transition:box-shadow .25s,transform .25s var(--tg-ease)}
.tg-galerie-vignette img{max-width:100%;max-height:100%;object-fit:contain}
.tg-galerie-vignette:hover{transform:translateY(-2px)}
.tg-galerie-vignette.actif{box-shadow:0 0 0 2px var(--tg-creme),0 0 0 3px var(--tg-choco)}
.tg-galerie-vignette:focus-visible{outline:2px solid var(--tg-rose);outline-offset:3px}

.tg-produit-infos{min-width:0;padding-top:6px}
.tg-produit-nom{font-size:clamp(2.4rem,4.4vw,3.6rem);font-weight:400;line-height:1.02;margin:10px 0 12px}
.tg-produit-accroche{font-size:1.05rem;color:var(--tg-texte-doux);font-weight:300;margin:0 0 20px;max-width:52ch}
.tg-produit-prix{font-family:var(--tg-chiffres);font-size:2.1rem;font-weight:600;margin:0 0 26px;font-variant-numeric:tabular-nums}
.tg-produit-form{display:flex;flex-direction:column;gap:22px;padding:26px 0;border-top:1px solid var(--tg-trait);border-bottom:1px solid var(--tg-trait)}
.tg-option{border:0;padding:0;margin:0;min-width:0}
.tg-option legend,.tg-option-label{font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--tg-texte-doux);margin-bottom:10px;font-weight:500;float:none;width:auto;padding:0}
.tg-option legend small,.tg-option-label small{letter-spacing:.04em;text-transform:none;color:var(--tg-texte-leger);font-weight:400;margin-left:4px}
.tg-pastilles{display:flex;flex-wrap:wrap;gap:10px}
.tg-pastille{position:relative;cursor:pointer}
.tg-pastille input{position:absolute;opacity:0;width:1px;height:1px}
.tg-pastille span{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:48px;min-width:88px;padding:8px 18px;border:1px solid var(--tg-trait);
  border-radius:30px;background:var(--tg-blanc);font-size:.9rem;line-height:1.2;transition:all .25s var(--tg-ease)}
.tg-pastille small{font-size:.72rem;color:var(--tg-texte-leger);margin-top:2px}
.tg-pastille:hover span{border-color:var(--tg-rose)}
.tg-pastille input:checked+span{background:var(--tg-choco);border-color:var(--tg-choco);color:var(--tg-creme)}
.tg-pastille input:checked+span small{color:var(--tg-rose-300)}
.tg-pastille input:focus-visible+span{outline:2px solid var(--tg-rose);outline-offset:2px}
.tg-pastille-aucun span{min-width:70px;color:var(--tg-texte-doux)}
.tg-champ-compteur{position:relative}
.tg-champ-compteur .form-control{padding-right:64px}
.tg-compteur{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:.72rem;color:var(--tg-texte-leger);font-variant-numeric:tabular-nums}
.tg-achat{display:flex;flex-wrap:wrap;gap:12px;align-items:stretch}
.tg-btn-ajout{flex:1 1 220px;display:inline-flex;align-items:center;justify-content:center}
.tg-form-erreur{color:var(--tg-erreur);font-size:.9rem;min-height:0}
.tg-form-erreur:empty{display:none}

.tg-quantite{display:inline-flex;align-items:center;border:1px solid var(--tg-trait);border-radius:var(--tg-radius);background:var(--tg-blanc);overflow:hidden}
.tg-quantite input{width:46px;border:0;text-align:center;background:transparent;color:var(--tg-choco);font-size:1rem;font-variant-numeric:tabular-nums;-moz-appearance:textfield;appearance:textfield}
.tg-quantite input::-webkit-outer-spin-button,.tg-quantite input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.tg-quantite input:focus{outline:none}
.tg-quantite:focus-within{border-color:var(--tg-rose);box-shadow:0 0 0 .2rem rgba(216,195,165,.3)}
.tg-qte-btn{width:46px;min-height:52px;border:0;background:transparent;color:var(--tg-choco);font-size:1.1rem;transition:background .2s}
.tg-qte-btn:hover{background:var(--tg-rose-100)}
.tg-quantite-sm .tg-qte-btn{width:40px;min-height:44px}
.tg-quantite-sm input{width:38px}

.tg-produit-infos-pratiques{list-style:none;padding:0;margin:22px 0;display:flex;flex-direction:column;gap:10px;font-size:.92rem;color:var(--tg-texte-doux)}
.tg-produit-infos-pratiques li{display:flex;gap:12px;align-items:flex-start}
.tg-produit-infos-pratiques .bi{color:var(--tg-rose);font-size:1.05rem;margin-top:1px}
.tg-produit-infos-pratiques strong{color:var(--tg-choco);font-weight:500}
.tg-produit-description{line-height:1.8;font-weight:300;margin-bottom:18px;max-width:62ch}
.tg-details{border-top:1px solid var(--tg-trait)}
.tg-details:last-child{border-bottom:1px solid var(--tg-trait)}
.tg-details summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;min-height:56px;
  font-size:.76rem;letter-spacing:.2em;text-transform:uppercase;font-weight:500}
.tg-details summary::-webkit-details-marker{display:none}
.tg-details summary::after{content:"";width:9px;height:9px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg);transition:transform .3s var(--tg-ease);margin-right:4px}
.tg-details[open] summary::after{transform:rotate(-135deg)}
.tg-details summary:focus-visible{outline:2px solid var(--tg-rose);outline-offset:2px}
.tg-details>div{padding:0 0 18px;font-size:.92rem;color:var(--tg-texte-doux);line-height:1.7}
.tg-allergenes{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}
.tg-allergenes li{border:1px solid var(--tg-rose);border-radius:20px;padding:3px 12px;font-size:.84rem;color:var(--tg-choco)}
.tg-similaires{padding-top:70px}

/* =============================== Panier =============================== */
.tg-panier-page{padding-top:40px;padding-bottom:90px}
.tg-page-entete{text-align:center;margin-bottom:44px}
.tg-panier{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:40px;align-items:start}
.tg-panier-lignes{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:16px}
.tg-ligne{display:grid;grid-template-columns:120px minmax(0,1fr) auto;gap:22px;align-items:center;background:var(--tg-blanc);border-radius:var(--tg-radius-lg);
  padding:16px;box-shadow:var(--tg-ombre);transition:opacity .35s var(--tg-ease),transform .35s var(--tg-ease)}
.tg-ligne.retrait{opacity:0;transform:translateX(30px)}
.tg-ligne.maj [data-total]{opacity:.5}
.tg-ligne-visuel{position:relative;width:120px;height:120px;border-radius:10px;background-color:var(--tg-creme);background-size:260%;
  display:flex;align-items:center;justify-content:center;overflow:hidden}
.tg-ligne-visuel img{max-width:78%;max-height:78%;object-fit:contain;filter:drop-shadow(0 5px 5px rgba(46,31,23,.25))}
.tg-ligne-nom{font-size:1.55rem;margin:0 0 6px;line-height:1.1}
.tg-ligne-nom a{color:inherit;text-decoration:none}
.tg-ligne-nom a:hover{text-decoration:underline;text-decoration-color:var(--tg-rose);text-underline-offset:4px}
.tg-ligne-options{list-style:none;padding:0;margin:0 0 6px;font-size:.86rem;color:var(--tg-texte-doux)}
.tg-ligne-options span{color:var(--tg-texte-leger)}
.tg-ligne-pu{margin:0;font-size:.82rem;color:var(--tg-texte-leger)}
.tg-ligne-alerte{margin:4px 0;font-size:.84rem;color:var(--tg-alerte)}
.tg-ligne-actions{display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.tg-ligne-total{margin:0;font-family:var(--tg-chiffres);font-size:1.4rem;font-weight:600;font-variant-numeric:tabular-nums;transition:opacity .2s}
.tg-ligne-retirer{border:0;background:none;color:var(--tg-texte-leger);font-size:.8rem;text-decoration:underline;text-underline-offset:3px;padding:6px 0;min-height:36px}
.tg-ligne-retirer:hover{color:var(--tg-erreur)}
.tg-panier-resume{position:sticky;top:100px;background:var(--tg-blanc);border-radius:var(--tg-radius-lg);padding:28px;box-shadow:var(--tg-ombre);display:flex;flex-direction:column;gap:16px}
.tg-resume-titre{font-size:1.9rem;margin:0}
.tg-resume-lignes{margin:0;display:flex;flex-direction:column;gap:10px;padding-bottom:16px;border-bottom:1px solid var(--tg-trait)}
.tg-resume-lignes div{display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.tg-resume-lignes dt{font-weight:400;color:var(--tg-texte-doux)}
.tg-resume-lignes dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}
#sousTotal{font-family:var(--tg-chiffres);font-size:1.6rem;font-weight:600}
.tg-resume-delai{display:flex;gap:10px;margin:0;font-size:.86rem;color:var(--tg-texte-doux);background:var(--tg-creme-50);border-radius:10px;padding:12px 14px}
.tg-resume-delai .bi{color:var(--tg-rose);margin-top:2px}
.tg-lien-continuer{text-align:center;color:var(--tg-texte-doux);font-size:.88rem;text-decoration:underline;text-decoration-color:var(--tg-rose);text-underline-offset:4px;min-height:40px;display:flex;align-items:center;justify-content:center}
.tg-resume-paiement{margin:0;text-align:center;font-size:.8rem;color:var(--tg-texte-leger)}

/* ============================ Mini-panier ============================ */
.tg-mini-panier{--bs-offcanvas-width:400px;background:var(--tg-creme)}
.tg-mini-panier .offcanvas-header{border-bottom:1px solid var(--tg-trait);padding:20px 24px}
.tg-mini-titre{margin:0;font-family:var(--tg-serif);font-size:1.5rem;display:flex;gap:10px;align-items:center}
.tg-mini-titre .bi{color:var(--tg-succes);font-size:1.2rem}
.tg-mini-panier .offcanvas-body{padding:24px;display:flex;flex-direction:column;gap:22px}
.tg-mini-ligne{display:grid;grid-template-columns:96px minmax(0,1fr);gap:16px;align-items:center;animation:tgReapparait .5s var(--tg-ease) both}
.tg-mini-visuel{width:96px;height:96px;border-radius:10px;background-color:var(--tg-blanc);background-size:260%;display:flex;align-items:center;justify-content:center}
.tg-mini-visuel img{max-width:78%;max-height:78%;object-fit:contain;filter:drop-shadow(0 4px 4px rgba(46,31,23,.25))}
.tg-mini-nom{font-family:var(--tg-serif);font-size:1.4rem;line-height:1.1;margin:0 0 4px}
.tg-mini-options{font-size:.82rem;color:var(--tg-texte-doux);margin:0 0 4px}
.tg-mini-prix{margin:0;font-weight:500;font-variant-numeric:tabular-nums}
.tg-mini-total{display:flex;justify-content:space-between;align-items:baseline;margin:0;padding:16px 0;border-top:1px solid var(--tg-trait);border-bottom:1px solid var(--tg-trait)}
.tg-mini-total dt{font-weight:400;color:var(--tg-texte-doux)}
.tg-mini-total dd{margin:0;font-family:var(--tg-chiffres);font-size:1.5rem;font-weight:600}
.tg-mini-actions{display:flex;flex-direction:column;gap:10px}

/* =========================== Responsive (étape 3) =========================== */
@media (max-width:1199.98px){
  .tg-grille{grid-template-columns:repeat(3,minmax(0,1fr))}
  .tg-produit{gap:40px}
}
@media (max-width:991.98px){
  .tg-grille,.tg-grille-vedettes{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 18px}
  .tg-produit{grid-template-columns:minmax(0,1fr);gap:32px}
  .tg-galerie{position:static}
  .tg-panier{grid-template-columns:minmax(0,1fr)}
  .tg-panier-resume{position:static}
}
@media (max-width:575.98px){
  .tg-grille,.tg-grille-vedettes{grid-template-columns:minmax(0,1fr);gap:22px}
  .tg-produit-page{padding-top:16px}
  .tg-fil{margin-bottom:16px}
  .tg-produit-prix{font-size:1.8rem}
  .tg-achat .tg-quantite{flex:0 0 auto}
  .tg-btn-ajout{flex:1 1 0;padding-inline:1rem;font-size:.8rem}
  .tg-ligne{grid-template-columns:84px minmax(0,1fr);gap:14px;padding:14px}
  .tg-ligne-visuel{width:84px;height:84px}
  .tg-ligne-nom{font-size:1.3rem}
  .tg-ligne-actions{grid-column:1/-1;flex-direction:row;align-items:center;justify-content:space-between;border-top:1px dashed var(--tg-trait);padding-top:10px}
  .tg-ligne-retirer{order:3}
  .tg-panier-resume{padding:22px}
  .tg-mini-panier{--bs-offcanvas-width:100vw}
}

/* ===================== Étape 4 : comptes et commande ===================== */
.tg-facultatif{font-weight:400;letter-spacing:0;text-transform:none;color:var(--tg-texte-leger);font-size:.78rem;margin-left:4px}
.tg-champ:has(:required)>.form-label::after,.tg-form .mb-3:has(:required)>.form-label::after{content:" *";color:var(--tg-erreur);font-weight:700}
.tg-erreur-champ{margin-top:6px;font-size:.85rem;color:#a90e00}
.tg-form .form-control.is-invalid,.tg-form .form-select.is-invalid,.tg-form .form-check-input.is-invalid,.tg-commande .form-control.is-invalid{border-color:var(--tg-erreur);background-image:none;background-color:rgba(169,14,0,.02)}
.tg-champ{display:flex;flex-direction:column;gap:2px;margin-bottom:14px}
.tg-check{display:flex;gap:10px;align-items:flex-start;padding-left:0;margin-bottom:10px}
.tg-check .form-check-input{float:none;margin:3px 0 0;flex:0 0 auto;width:1.15em;height:1.15em}
.tg-check label{font-size:.92rem;color:var(--tg-texte-doux)}
.tg-check a{color:var(--tg-choco)}
.tg-mdp{position:relative}
.tg-mdp .form-control{padding-right:50px}
.tg-form .input-group-text{background:var(--tg-rose-100);border-color:var(--tg-trait);color:var(--tg-choco);font-size:1.3rem}
.tg-mdp-voir{border:0;background:var(--tg-rose-100);border-color:var(--tg-trait);color:var(--tg-choco);cursor:pointer;padding:0 10px}
.tg-mdp-voir:hover{color:var(--tg-rose-700)}
.tg-ig-top{align-self:stretch;display:flex;align-items:center;border-radius:var(--bs-border-radius) 0 0 var(--bs-border-radius)}
.tg-lien-discret{font-size:.8rem;color:var(--tg-texte-leger)}
.tg-retour{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin-bottom:16px;color:var(--tg-texte-doux);text-decoration:none;font-size:.9rem}
.tg-retour:hover{color:var(--tg-choco)}

/* Connexion / inscription */
.tg-auth{padding:40px 16px 90px;display:flex;justify-content:center}
.tg-auth-carte{width:100%;max-width:440px;background:var(--tg-blanc);border-radius:16px;padding:40px 34px 32px;box-shadow:var(--tg-ombre)}
.tg-auth-large{max-width:620px}
.tg-auth-logo{display:flex;justify-content:center;margin-bottom:12px}
.tg-auth-titre{text-align:center;font-size:clamp(2rem,4vw,2.6rem);font-weight:400;margin:6px 0 10px}
.tg-auth-intro{text-align:center;color:var(--tg-texte-doux);font-weight:300;margin:0 auto 24px;max-width:46ch}
.tg-auth-separateur{display:flex;align-items:center;gap:14px;margin:26px 0 16px;color:var(--tg-texte-leger);font-size:.82rem}
.tg-auth-separateur::before,.tg-auth-separateur::after{content:"";flex:1;height:1px;background:var(--tg-trait)}
.tg-auth-bas{text-align:center;margin:22px 0 0;font-size:.9rem;color:var(--tg-texte-doux)}
.tg-auth-bas a{color:var(--tg-choco)}
.tg-auth>.tg-auth-carte>.tg-erreur-champ{background:#F4E1DE;border-radius:8px;padding:10px 14px;margin-bottom:16px}
.tg-simulateur-bandeau{background:#F5EAD8;color:var(--tg-alerte);border-radius:20px;padding:6px 14px;font-size:.78rem;display:inline-block;margin-bottom:14px}

/* Espace client */
.tg-compte{padding-top:30px;padding-bottom:90px;max-width:980px}
.tg-compte-entete{text-align:center;margin-bottom:34px}
.tg-compte-entete .tg-section-titre{margin-bottom:20px}
.tg-compte-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.tg-compte-nav a,.tg-compte-nav button{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 18px;border:1px solid var(--tg-trait);border-radius:30px;
  background:transparent;color:var(--tg-choco);text-decoration:none;font-size:.86rem;transition:all .25s var(--tg-ease)}
.tg-compte-nav a:hover,.tg-compte-nav button:hover{border-color:var(--tg-rose);background:var(--tg-rose-100)}
.tg-compte-nav a.actif{background:var(--tg-choco);border-color:var(--tg-choco);color:var(--tg-creme)}
.tg-compte-nav form{margin:0}
.tg-bloc{background:var(--tg-blanc);border-radius:var(--tg-radius-lg);padding:28px;box-shadow:var(--tg-ombre);margin-bottom:22px}
.tg-bloc-titre{font-size:1.8rem;margin:0 0 18px}
.tg-bloc-sous-titre{font-family:var(--tg-sans);font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;font-weight:500;margin:26px 0 14px;padding-top:22px;border-top:1px solid var(--tg-trait)}
.tg-bloc-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:10px}
.tg-bloc-danger{border:1px solid #EBD3CF;box-shadow:none}
.tg-suppression{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
.tg-suppression .tg-champ{flex:1 1 220px;margin:0}
.tg-commandes{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}
.tg-commande-ligne{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.6fr) auto auto 20px;gap:18px;align-items:center;background:var(--tg-blanc);
  border-radius:var(--tg-radius-lg);padding:18px 22px;box-shadow:var(--tg-ombre);color:var(--tg-choco);text-decoration:none;transition:transform .35s var(--tg-ease),box-shadow .35s var(--tg-ease)}
.tg-commande-ligne:hover{transform:translateY(-3px);box-shadow:var(--tg-ombre-forte);color:var(--tg-choco)}
.tg-commande-num{font-family:var(--tg-chiffres);font-size:1.3rem;display:flex;flex-direction:column;line-height:1.15}
.tg-commande-num small,.tg-commande-total small{font-family:var(--tg-sans);font-size:.76rem;color:var(--tg-texte-leger)}
.tg-commande-date{font-size:.9rem;color:var(--tg-texte-doux)}
.tg-commande-date .bi{color:var(--tg-rose);margin-right:6px}
.tg-commande-total{font-family:var(--tg-chiffres);font-size:1.3rem;font-weight:600;display:flex;flex-direction:column;align-items:flex-end;line-height:1.15;font-variant-numeric:tabular-nums}
.tg-commande-fleche{color:var(--tg-texte-leger)}
.tg-statut{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:20px;font-size:.76rem;white-space:nowrap;font-family:var(--tg-sans)}
.tg-statut::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.tg-statut.ok{background:#E5EEE7;color:var(--tg-succes)}
.tg-statut.info{background:#E3EAF0;color:var(--tg-info)}
.tg-statut.alerte{background:#F5EAD8;color:var(--tg-alerte)}
.tg-statut.off{background:#EFE7E3;color:var(--tg-texte-leger)}
.tg-adresses{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin-bottom:22px}
.tg-adresse{background:var(--tg-blanc);border-radius:var(--tg-radius-lg);padding:20px;box-shadow:var(--tg-ombre);display:flex;flex-direction:column}
.tg-adresse.defaut{box-shadow:0 0 0 1px var(--tg-rose),var(--tg-ombre)}
.tg-adresse-libelle{font-family:var(--tg-serif);font-size:1.3rem;margin:0 0 8px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.tg-adresse address{font-size:.9rem;color:var(--tg-texte-doux);flex:1}
.tg-adresse-actions{display:flex;gap:16px;align-items:center;border-top:1px solid var(--tg-trait);padding-top:10px}
.tg-adresse-actions a,.tg-adresse-actions button{border:0;background:none;padding:6px 0;min-height:36px;color:var(--tg-choco);font-size:.86rem;text-decoration:underline;text-decoration-color:var(--tg-rose);text-underline-offset:3px}
.tg-adresse-actions form{margin:0}
.tg-adresse-actions button:hover{color:var(--tg-erreur)}

/* Détail / confirmation de commande */
.tg-commande-detail{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px;align-items:start}
.tg-commande-detail .tg-bloc{margin:0}
.tg-infos-commande{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px}
.tg-infos-commande dt{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--tg-texte-leger);font-weight:500;margin-bottom:4px}
.tg-infos-commande dd{margin:0;font-size:.95rem}
.tg-infos-large{grid-column:1/-1}
.tg-recap-lignes{list-style:none;padding:0;margin:0}
.tg-recap-lignes li{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--tg-trait)}
.tg-recap-nom{margin:0;font-weight:500}
.tg-recap-qte{color:var(--tg-texte-leger);font-weight:400}
.tg-recap-option{margin:0;font-size:.84rem;color:var(--tg-texte-doux)}
.tg-recap-prix{white-space:nowrap;font-variant-numeric:tabular-nums}
.tg-recap-totaux{margin:12px 0 0;display:flex;flex-direction:column;gap:6px}
.tg-recap-totaux div{display:flex;justify-content:space-between}
.tg-recap-totaux dt{font-weight:400;color:var(--tg-texte-doux)}
.tg-recap-totaux dd{margin:0;font-variant-numeric:tabular-nums}
.tg-recap-total{padding-top:8px;margin-top:4px;border-top:1px solid var(--tg-trait)}
.tg-recap-total dt,.tg-recap-total dd{font-family:var(--tg-chiffres);font-size:1.5rem;font-weight:600;color:var(--tg-choco)!important}
.tg-confirmation{padding-top:30px;padding-bottom:90px;max-width:1040px}
.tg-confirmation-entete{text-align:center;margin-bottom:36px}
.tg-confirmation-sceau{display:inline-block;margin-bottom:10px;animation:tgSceau 1.2s var(--tg-ease) both}
@keyframes tgSceau{from{opacity:0;transform:rotate(-40deg) scale(.7)}to{opacity:1;transform:none}}
.tg-confirmation-texte{max-width:56ch;margin:0 auto;color:var(--tg-texte-doux)}
.tg-confirmation-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:30px}

/* Page de commande */
.tg-commande-page{padding-top:30px;padding-bottom:90px}
.tg-commande{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:36px;align-items:start}
.tg-commande-etapes{display:flex;flex-direction:column;gap:20px;min-width:0}
.tg-etape{background:var(--tg-blanc);border-radius:var(--tg-radius-lg);padding:28px;box-shadow:var(--tg-ombre)}
.tg-etape-titre{display:flex;align-items:center;gap:14px;font-size:1.8rem;margin:0 0 20px}
.tg-etape-num{width:36px;height:36px;flex:0 0 36px;border-radius:50%;background:var(--tg-choco);color:var(--tg-creme);display:inline-flex;align-items:center;justify-content:center;font-size:1.15rem}
.tg-etape-aide{font-size:.88rem;color:var(--tg-texte-doux);margin:-6px 0 16px}
.tg-choix-cartes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.tg-choix-carte{position:relative;cursor:pointer}
.tg-choix-carte input{position:absolute;opacity:0;width:1px;height:1px}
.tg-choix-contenu{display:flex;flex-direction:column;gap:4px;height:100%;padding:20px;border:1px solid var(--tg-trait);border-radius:12px;transition:all .3s var(--tg-ease)}
.tg-choix-contenu .bi{font-size:1.5rem;color:var(--tg-rose);margin-bottom:4px}
.tg-choix-contenu strong{font-family:var(--tg-serif);font-size:1.35rem;font-weight:700}
.tg-choix-contenu small{color:var(--tg-texte-doux);font-size:.85rem}
.tg-choix-contenu em{font-style:normal;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--tg-texte-leger);margin-top:6px}
.tg-choix-carte:hover .tg-choix-contenu{border-color:var(--tg-rose)}
.tg-choix-carte input:checked+.tg-choix-contenu{border-color:var(--tg-choco);box-shadow:inset 0 0 0 1px var(--tg-choco);background:var(--tg-creme-50)}
.tg-choix-carte input:focus-visible+.tg-choix-contenu{outline:2px solid var(--tg-rose);outline-offset:2px}
.tg-adresses-choix{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-bottom:16px}
.tg-choix-adresse{position:relative;cursor:pointer}
.tg-choix-adresse input{position:absolute;opacity:0;width:1px;height:1px}
.tg-choix-adresse>span{display:block;height:100%;padding:14px 16px;border:1px solid var(--tg-trait);border-radius:12px;font-size:.88rem;color:var(--tg-texte-doux);transition:all .25s var(--tg-ease)}
.tg-choix-adresse strong{display:block;color:var(--tg-choco);font-weight:500;margin-bottom:2px}
.tg-choix-adresse input:checked+span{border-color:var(--tg-choco);box-shadow:inset 0 0 0 1px var(--tg-choco);background:var(--tg-creme-50)}
.tg-choix-adresse input:focus-visible+span{outline:2px solid var(--tg-rose);outline-offset:2px}
.tg-choix-nouvelle>span{display:flex;align-items:center;justify-content:center}
.tg-nouvelle-adresse{padding:18px;border-radius:12px;background:var(--tg-creme-50);margin-bottom:14px}
.tg-zone-info{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:10px;font-size:.9rem;margin-bottom:12px}
.tg-zone-info.ok{background:#E5EEE7;color:var(--tg-succes)}
.tg-zone-info.alerte{background:#F5EAD8;color:var(--tg-alerte)}
.tg-zones-liste{font-size:.86rem;color:var(--tg-texte-doux)}
.tg-zones-liste summary{cursor:pointer;color:var(--tg-choco);text-decoration:underline;text-decoration-color:var(--tg-rose);text-underline-offset:3px;min-height:36px;display:inline-flex;align-items:center}
.tg-zones-liste ul{padding-left:18px;margin:8px 0 0}
.tg-zones-liste li{margin-bottom:6px}
.tg-jours{display:flex;gap:10px;overflow-x:auto;padding:4px 2px 12px;scroll-snap-type:x proximity;scrollbar-width:thin}
.tg-jour{flex:0 0 74px;scroll-snap-align:start;display:flex;flex-direction:column;align-items:center;gap:2px;padding:12px 6px;border:1px solid var(--tg-trait);border-radius:12px;
  background:var(--tg-blanc);color:var(--tg-choco);transition:all .25s var(--tg-ease)}
.tg-jour:hover:not(:disabled){border-color:var(--tg-rose);transform:translateY(-2px)}
.tg-jour.actif{background:var(--tg-choco);border-color:var(--tg-choco);color:var(--tg-creme)}
.tg-jour:disabled{opacity:.4;cursor:not-allowed}
.tg-jour-nom,.tg-jour-mois{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase}
.tg-jour-num{font-family:var(--tg-chiffres);font-size:1.7rem;line-height:1}
.tg-jour:focus-visible{outline:2px solid var(--tg-rose);outline-offset:2px}
.tg-creneaux{margin-top:8px}
.tg-creneaux-date{font-family:var(--tg-serif);font-size:1.25rem;margin:0 0 10px}
.tg-pastille.complet span{opacity:.5;text-decoration:line-through}
.tg-chargement{color:var(--tg-texte-leger);font-size:.9rem;margin:0}
.tg-commande-resume{position:sticky;top:96px;background:var(--tg-blanc);border-radius:var(--tg-radius-lg);padding:26px;box-shadow:var(--tg-ombre);display:flex;flex-direction:column;gap:16px}
.tg-resume-articles{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px;max-height:340px;overflow-y:auto}
.tg-resume-articles li{display:grid;grid-template-columns:60px minmax(0,1fr) auto;gap:12px;align-items:center}
.tg-resume-visuel{position:relative;width:60px;height:60px;border-radius:10px;background-color:var(--tg-creme);background-size:300%;display:flex;align-items:center;justify-content:center}
.tg-resume-visuel img{max-width:80%;max-height:80%;object-fit:contain;filter:drop-shadow(0 3px 3px rgba(46,31,23,.25))}
.tg-resume-qte{position:absolute;top:-6px;right:-6px;min-width:22px;height:22px;border-radius:11px;background:var(--tg-choco);color:var(--tg-creme);font-size:.72rem;display:flex;align-items:center;justify-content:center;padding:0 6px}
.tg-resume-article{display:flex;flex-direction:column;min-width:0;font-size:.9rem}
.tg-resume-article strong{font-weight:500}
.tg-resume-article small{color:var(--tg-texte-leger);font-size:.78rem}
.tg-resume-prix{font-variant-numeric:tabular-nums;font-size:.92rem}
.tg-resume-total{padding-top:10px;border-top:1px solid var(--tg-trait)}
.tg-resume-total dt,.tg-resume-total dd{font-family:var(--tg-chiffres);font-size:1.6rem;font-weight:600;color:var(--tg-choco)!important}

@media (max-width:991.98px){
  .tg-commande{grid-template-columns:minmax(0,1fr)}
  .tg-commande-resume{position:static}
  .tg-commande-detail{grid-template-columns:minmax(0,1fr)}
  .tg-commande-ligne{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"num total" "date date" "statut fleche";gap:8px 14px}
  .tg-commande-num{grid-area:num}.tg-commande-total{grid-area:total}.tg-commande-date{grid-area:date}
  .tg-commande-ligne .tg-statut{grid-area:statut;justify-self:start}.tg-commande-fleche{grid-area:fleche;justify-self:end}
}
@media (max-width:575.98px){
  .tg-auth{padding:16px 0 70px;padding-inline:0}
  .tg-auth-carte{margin-inline:16px}
  .tg-auth-carte{padding:30px 20px 24px;border-radius:14px}
  .tg-bloc,.tg-etape{padding:20px 16px}
  .tg-etape-titre{font-size:1.5rem;gap:10px}
  .tg-etape-num{width:30px;height:30px;flex-basis:30px;font-size:1rem}
  .tg-choix-cartes{grid-template-columns:minmax(0,1fr)}
  .tg-choix-contenu{padding:16px}
  .tg-infos-commande{grid-template-columns:minmax(0,1fr)}
  .tg-compte-nav a,.tg-compte-nav button{padding:8px 14px;font-size:.8rem}
  .tg-commande-resume{padding:20px 16px}
}

/* ============================ Événements ============================ */
.tg-evt-hero{position:relative;padding:170px 0 90px;text-align:center;overflow:hidden;
  background:radial-gradient(ellipse at 50% 0%,var(--tg-creme-50) 0%,var(--tg-creme) 70%)}
.tg-evt-titre{font-size:clamp(3.2rem,8vw,6.2rem);line-height:.95;margin:14px 0 24px}
.tg-evt-titre em{font-style:normal;color:#A1686D}
.tg-evt-intro{max-width:620px;margin:0 auto 36px;font-size:1.05rem;line-height:1.8;color:var(--tg-texte-doux);font-weight:300}

/* Types d'événements */
.tg-evt-types{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}
.tg-evt-type{height:100%;background:#ffffff;border-radius:var(--tg-radius-lg);padding:34px 26px 30px;text-align:center;box-shadow:rgba(60,64,67,.3) 0 1px 2px 0,rgba(60,64,67,.15) 0 2px 6px 2px;
  transition:transform .6s var(--tg-ease),box-shadow .6s var(--tg-ease),background .5s var(--tg-ease)}
.tg-evt-type:hover{transform:translateY(-8px) scale(1.02);box-shadow:rgba(60,64,67,.3) 0 2px 6px 0,rgba(60,64,67,.15) 0 6px 16px 4px;background:var(--tg-choco);color:var(--tg-creme)}
.tg-evt-type:hover h3{color:var(--tg-creme)}
.tg-evt-type:hover p{color:var(--tg-rose-300)}
.tg-evt-type-ico{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;background:var(--tg-choco);color:var(--tg-creme);font-size:1.5rem;margin-bottom:16px;
  transition:background .5s var(--tg-ease),color .5s var(--tg-ease),transform .5s var(--tg-ease)}
.tg-evt-type:hover .tg-evt-type-ico{background:var(--tg-rose);color:var(--tg-blanc);transform:rotate(-8deg) scale(1.1)}
.tg-evt-type h3{font-size:2.2rem;margin:0 0 8px}
.tg-evt-type p{margin:0;font-size:.92rem;line-height:1.7;color:var(--tg-texte-doux)}

/* Process : fil qui se dessine, étapes qui apparaissent l'une après l'autre */
.tg-evt-process-section{background:var(--tg-creme-50)}
.tg-process{position:relative;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:24px;--duree:1.1s}
.tg-process-fil{position:absolute;left:10%;right:10%;top:44px;height:1px;background:var(--tg-trait)}
.tg-process-fil span{position:absolute;inset:0;background:var(--tg-rose);transform:scaleX(0);transform-origin:left;transition:transform calc(var(--duree) * 5) cubic-bezier(.45,.05,.35,1)}
.tg-process.visible .tg-process-fil span{transform:none}
.tg-process-etape{position:relative;text-align:center;opacity:0;transform:translateY(24px);
  transition:opacity var(--duree) var(--tg-ease),transform var(--duree) var(--tg-ease);transition-delay:calc(var(--i) * var(--duree))}
.tg-process.visible .tg-process-etape{opacity:1;transform:none}
.tg-process-pastille{position:relative;display:inline-flex;align-items:center;justify-content:center;width:88px;height:88px;border-radius:50%;background:var(--tg-creme);
  border:1px solid var(--tg-rose-300);color:var(--tg-choco);font-size:1.7rem;margin-bottom:20px;transition:background .8s var(--tg-ease),color .8s var(--tg-ease)}
.tg-process-etape:hover .tg-process-pastille{background:var(--tg-choco);color:var(--tg-creme)}
.tg-process-num{position:absolute;top:-6px;right:-6px;width:32px;height:32px;border-radius:50%;background:var(--tg-rose);color:var(--tg-blanc);font-family:var(--tg-sans);font-size:.85rem;font-weight:700;line-height:32px;
  display:flex;align-items:center;justify-content:center}
.tg-process-etape h3{font-size:2rem;margin:0 0 8px;transition:transform .4s var(--tg-ease)}
.tg-process-etape:hover h3{transform:scale(1.06)}
.tg-process-etape p{margin:0 auto;max-width:240px;font-size:.9rem;line-height:1.7;color:var(--tg-texte-doux)}

/* Galerie de réalisations */
.tg-galerie-evt{columns:3 280px;column-gap:22px}
.tg-galerie-item{break-inside:avoid;margin:0 0 22px;position:relative;border-radius:var(--tg-radius-lg);overflow:hidden;box-shadow:var(--tg-ombre);background:var(--tg-blanc)}
.tg-galerie-item.masque{display:none}
.tg-galerie-btn{display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in;overflow:hidden}
.tg-galerie-btn img{display:block;width:100%;height:auto;transition:transform 1.4s var(--tg-ease)}
.tg-galerie-item:hover img{transform:scale(1.05)}
.tg-galerie-item figcaption{position:absolute;left:0;right:0;bottom:0;padding:40px 18px 14px;color:var(--tg-creme);pointer-events:none;
  background:linear-gradient(to top,rgba(46,31,23,.72),rgba(46,31,23,0));display:flex;flex-direction:column;opacity:0;transform:translateY(10px);transition:opacity .8s var(--tg-ease),transform .8s var(--tg-ease)}
.tg-galerie-item:hover figcaption,.tg-galerie-btn:focus-visible+figcaption{opacity:1;transform:none}
.tg-galerie-item figcaption span{font-family:var(--tg-serif);font-weight:700;font-size:1.7rem;line-height:1.1}
.tg-galerie-item figcaption small{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;opacity:.85}
.tg-visionneuse .modal-content{background:transparent;border:0;align-items:center}
.tg-visionneuse img{max-width:100%;max-height:82vh;border-radius:var(--tg-radius-lg);box-shadow:0 30px 80px rgba(0,0,0,.4)}
.tg-visionneuse p{margin:14px 0 0;color:var(--tg-creme);font-family:var(--tg-serif);font-weight:700;font-size:2rem}
.tg-visionneuse .btn-close{position:absolute;top:-44px;right:0;opacity:.9}
.modal-backdrop.tg-sombre.show{opacity:.85;background:var(--tg-choco-900)}

/* Questions fréquentes */
.tg-evt-faq-section{background:var(--tg-blanc)}
.tg-faq{max-width:820px;margin:0 auto;--bs-accordion-bg:transparent;--bs-accordion-border-color:var(--tg-trait);--bs-accordion-active-bg:transparent;--bs-accordion-active-color:var(--tg-choco);
  --bs-accordion-btn-focus-box-shadow:0 0 0 2px rgba(216,195,165,.5);--bs-accordion-transition:all .5s var(--tg-ease)}
.tg-faq .accordion-item{border-left:0;border-right:0;border-radius:0!important}
.tg-faq .accordion-item:first-of-type{border-top:0}
.tg-faq .accordion-button{padding:22px 16px;font-family:var(--tg-sans);font-size:1.02rem;line-height:1.5;color:var(--tg-choco);background:transparent;box-shadow:none;border-radius:0!important;transition:background .3s var(--tg-ease),color .3s var(--tg-ease)}
.tg-faq .accordion-button:hover{background:var(--tg-rose-100);border-radius:0!important}
.tg-faq .accordion-button:not(.collapsed){font-weight:500;background:var(--tg-choco);color:var(--tg-creme);border-radius:0!important}
.tg-faq .accordion-item:first-child .accordion-button,.tg-faq .accordion-item:last-child .accordion-button{border-radius:0!important}
.tg-faq .accordion-button:not(.collapsed)::after{filter:brightness(10)}
.tg-faq .accordion-item:has(.accordion-button:not(.collapsed)){border-color:transparent}
.tg-faq .accordion-collapse.show .accordion-body,.tg-faq .accordion-collapse.collapsing .accordion-body{background:var(--tg-creme-50);margin-bottom:8px}
.tg-faq .accordion-body{padding:18px 16px 24px;color:var(--tg-texte-doux);line-height:1.8}

/* Formulaire de demande */
.tg-evt-demande{max-width:860px;margin:0 auto;background:var(--tg-blanc);border-radius:20px;padding:54px 54px 46px;box-shadow:var(--tg-ombre-forte)}
.tg-evt-demande-intro{color:var(--tg-texte-doux);margin:0}
.tg-evt-bloc{border:0;margin:0 0 34px;padding:0;min-width:0}
.tg-evt-bloc legend{font-size:.75rem;letter-spacing:.28em;text-transform:uppercase;color:var(--tg-texte-leger);margin-bottom:16px;display:flex;align-items:center;gap:14px;width:100%;float:none}
.tg-evt-bloc legend::after{content:"";flex:1;height:1px;background:var(--tg-trait)}
.tg-evt-choix{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;border-radius:4px}
.tg-evt-choix.is-invalid{outline:1px solid var(--tg-erreur);outline-offset:6px}
.tg-evt-choix-item{position:relative;cursor:pointer}
.tg-evt-choix-item input{position:absolute;opacity:0;width:1px;height:1px}
.tg-evt-choix-item span{display:flex;flex-direction:column;align-items:center;gap:8px;height:100%;padding:18px 8px;border:1px solid var(--tg-trait);border-radius:4px;text-align:center;font-size:.84rem;line-height:1.25;
  color:var(--tg-choco);background:var(--tg-rose-100);box-shadow:rgba(60,64,67,.3) 0 1px 2px 0,rgba(60,64,67,.15) 0 2px 6px 2px;transition:all .5s var(--tg-ease),transform .4s var(--tg-ease)}
.tg-evt-choix-item i{font-size:1.5rem;color:var(--tg-rose-700)}
.tg-evt-choix-item:hover span{border-color:var(--tg-rose);background:var(--tg-choco);color:var(--tg-creme);transform:translateY(-4px)}
.tg-evt-choix-item:hover i{color:var(--tg-rose)}
.tg-evt-choix-item input:checked+span{border-color:var(--tg-choco);box-shadow:inset 0 0 0 1px var(--tg-choco);background:var(--tg-choco);color:var(--tg-creme)}
.tg-evt-choix-item input:checked+span i{color:var(--tg-rose)}
.tg-evt-choix-item input:focus-visible+span{outline:2px solid var(--tg-rose);outline-offset:2px}
.tg-segment{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.tg-segment label{position:relative;cursor:pointer}
.tg-segment input{position:absolute;opacity:0;width:1px;height:1px}
.tg-segment span{display:flex;align-items:center;justify-content:center;gap:8px;height:100%;min-height:48px;padding:10px;border:1px solid var(--tg-trait);border-radius:var(--tg-radius);font-size:.86rem;text-align:center;transition:all .4s var(--tg-ease)}
.tg-segment input:checked+span{background:var(--tg-choco);border-color:var(--tg-choco);color:var(--tg-creme)}
.tg-segment span i{font-size:1.3rem}
.tg-segment input:focus-visible+span{outline:2px solid var(--tg-rose);outline-offset:2px}
.tg-depot{display:flex;align-items:center;gap:16px;padding:18px 20px;border:1px dashed var(--tg-rose-300);border-radius:12px;cursor:pointer;color:var(--tg-choco);transition:all .4s var(--tg-ease)}
.tg-depot:hover,.tg-depot.survol{border-color:var(--tg-choco);background:var(--tg-creme-50)}
.tg-depot.is-invalid{border-color:var(--tg-erreur)}
.tg-depot>i{font-size:1.6rem;color:var(--tg-rose)}
.tg-depot span{display:flex;flex-direction:column;font-size:.92rem;min-width:0;word-break:break-word}
.tg-depot small{color:var(--tg-texte-leger);font-size:.78rem}
.tg-depot-apercu{display:flex;gap:8px;flex:0 0 auto}
.tg-depot-apercu img,.tg-depot img{width:56px;height:56px;object-fit:cover;border-radius:8px;flex:0 0 56px}
.tg-depot-thumb{position:relative;flex:0 0 auto}
.tg-depot-thumb-suppr{position:absolute;top:-6px;right:-6px;border:0;background:var(--tg-choco);color:var(--tg-creme);width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.8rem;cursor:pointer;opacity:.7;transition:opacity .3s;padding:0;line-height:1}
.tg-depot-thumb-suppr:hover{opacity:1}
.tg-depot{position:relative}
.tg-pot{position:absolute!important;left:-10000px;width:1px;height:1px;overflow:hidden}

@media (max-width:991.98px){
  .tg-evt-types{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tg-process{grid-template-columns:1fr;gap:0;max-width:520px;margin:0 auto}
  .tg-process-fil{display:none}
  /* Sur mobile : un trait sous chaque pastille, qui se dessine avant l'étape suivante */
  .tg-process-etape:not(:last-child)::after{content:"";position:absolute;left:43px;top:92px;bottom:4px;width:1px;background:var(--tg-rose);
    transform:scaleY(0);transform-origin:top;transition:transform var(--duree) cubic-bezier(.45,.05,.35,1);transition-delay:calc(var(--i) * var(--duree) + var(--duree) * .5)}
  .tg-process.visible .tg-process-etape::after{transform:none}
  .tg-process-etape{display:grid;grid-template-columns:88px minmax(0,1fr);column-gap:22px;text-align:left;padding-bottom:34px}
  .tg-process-pastille{grid-row:1 / span 2;margin:0}
  .tg-process-etape h3{align-self:end;margin-top:8px}
  .tg-process-etape p{margin:0;max-width:none}
  .tg-evt-choix{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:575.98px){
  .tg-evt-hero{padding:130px 0 70px}
  .tg-evt-types{grid-template-columns:1fr}
  .tg-evt-demande{padding:34px 20px 28px;border-radius:16px}
  .tg-evt-choix{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tg-segment{grid-template-columns:1fr}
  .tg-galerie-item figcaption{opacity:1;transform:none}
}
@media (prefers-reduced-motion:reduce){
  .tg-process-etape{opacity:1;transform:none;transition:none}
  .tg-process-fil span{transform:none;transition:none}
}

/* ===================== Étape 6 : pages institutionnelles ===================== */

/* En-tête de page simple (à propos, contact, légales) */
.tg-page-hero{padding:150px 0 70px;text-align:center;
  background:radial-gradient(ellipse at 50% 0%,var(--tg-creme-50) 0%,var(--tg-creme) 70%)}

/* À propos */
.tg-apropos-bloc{max-width:720px;margin:0 auto;text-align:center}
.tg-apropos-bloc h2{font-size:clamp(2.2rem,4.5vw,3.2rem);font-weight:400;margin:0 0 20px}
.tg-apropos-bloc p{font-size:1.05rem;line-height:1.85;color:var(--tg-texte-doux);font-weight:300;margin:0 0 18px}
.tg-apropos-histoire{padding-bottom:40px}
.tg-apropos-promesse{padding-bottom:120px}

/* Contact */
.tg-contact-grille{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:48px;align-items:start;max-width:1040px;margin:0 auto}
.tg-contact-titre{font-size:clamp(2rem,4vw,2.8rem);font-weight:400;margin:0 0 12px}
.tg-contact-intro{font-size:.95rem;color:var(--tg-texte-doux);font-weight:300;margin:0 0 28px;max-width:50ch}
.tg-contact-carte{background:var(--tg-blanc);border-radius:var(--tg-radius-lg);padding:32px 28px;box-shadow:var(--tg-ombre)}
.tg-contact-adresse{font-style:normal;display:flex;flex-direction:column;gap:14px;margin-bottom:24px}
.tg-contact-ligne{display:flex;gap:14px;align-items:flex-start;line-height:1.7;font-size:.95rem}
.tg-contact-ligne .bi{color:var(--tg-rose);font-size:1.15rem;margin-top:3px}
.tg-contact-ligne a{color:var(--tg-choco);text-decoration:none}
.tg-contact-ligne a:hover{text-decoration:underline;text-decoration-color:var(--tg-rose);text-underline-offset:3px}
.tg-contact-horaires{padding-top:20px;border-top:1px solid var(--tg-trait);margin-bottom:20px}
.tg-contact-horaires h3{font-size:1.4rem;font-weight:400;margin:0 0 8px;display:flex;align-items:center;gap:10px}
.tg-contact-horaires h3 .bi{font-size:.95rem;color:var(--tg-rose)}
.tg-contact-horaires p{margin:0;font-size:.92rem;color:var(--tg-texte-doux);line-height:1.8}
.tg-contact-reseaux{padding-top:20px;border-top:1px solid var(--tg-trait)}
.tg-contact-reseaux h3{font-family:var(--tg-sans);font-size:.75rem;letter-spacing:.28em;text-transform:uppercase;color:var(--tg-texte-leger);font-weight:500;margin:0 0 12px}
.tg-contact-reseaux .tg-footer-reseaux a{border-color:var(--tg-trait);color:var(--tg-choco)}
.tg-contact-reseaux .tg-footer-reseaux a:hover{border-color:var(--tg-rose);color:var(--tg-choco-900)}

/* Pages légales */
.tg-legale{max-width:820px;margin:0 auto}
.tg-legale article{margin-bottom:40px}
.tg-legale h2{font-size:clamp(1.6rem,3vw,2rem);font-weight:400;margin:0 0 14px;color:var(--tg-choco)}
.tg-art-num{color:var(--tg-rose-700);font-weight:400}
.tg-legale p{font-size:.95rem;line-height:1.85;color:var(--tg-texte-doux);margin:0 0 12px}
.tg-legale ul{padding-left:20px;margin:0 0 14px}
.tg-legale li{font-size:.95rem;line-height:1.85;color:var(--tg-texte-doux);margin-bottom:6px}
.tg-legale li strong{color:var(--tg-choco);font-weight:500}
.tg-legale a{color:var(--tg-choco);text-decoration:underline;text-decoration-color:var(--tg-rose);text-underline-offset:3px}
.tg-legale a:hover{color:var(--tg-choco-900)}
.tg-legale-maj{font-size:.82rem;color:var(--tg-texte-leger);font-style:italic;margin-top:40px;padding-top:20px;border-top:1px solid var(--tg-trait)}

/* Contact : coordonnées sous le formulaire */
.tg-contact-infos-bas{display:flex;flex-direction:column;gap:12px;text-align:center}
.tg-contact-infos-bas .tg-contact-ligne{display:flex;align-items:center;justify-content:center;gap:10px;font-size:.92rem}
.tg-contact-infos-bas .tg-contact-ligne .bi{color:var(--tg-rose);font-size:1rem}
.tg-contact-infos-bas a{color:var(--tg-choco);text-decoration:none}
.tg-contact-infos-bas a:hover{text-decoration:underline;text-decoration-color:var(--tg-rose);text-underline-offset:3px}
.tg-contact-reseaux-inline{display:flex;justify-content:center;gap:10px;margin-top:4px}
.tg-contact-reseaux-inline a{width:40px;height:40px;border:1px solid var(--tg-trait);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--tg-choco);transition:all .3s var(--tg-ease)}
.tg-contact-reseaux-inline a:hover{border-color:var(--tg-rose);background:var(--tg-rose-100)}

/* Bouton retour en haut */
.tg-btn-top{position:fixed;bottom:24px;right:24px;z-index:1020;width:48px;height:48px;border:1px solid rgba(216,195,165,.3);border-radius:50%;
  background:var(--tg-choco);color:var(--tg-creme);font-size:1.2rem;display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 16px rgba(46,31,23,.25);opacity:0;visibility:hidden;transform:translateY(12px);
  transition:opacity .4s var(--tg-ease),transform .4s var(--tg-ease),visibility .4s,background .3s}
.tg-btn-top.visible{opacity:1;visibility:visible;transform:none}
.tg-btn-top:hover{background:var(--tg-choco-900)}
@media (max-width:575.98px){.tg-btn-top{bottom:16px;right:16px;width:42px;height:42px;font-size:1rem}}

/* FAQ générale du site */
.tg-site-faq-section{background:var(--tg-blanc)}

@media (max-width:991.98px){
  .tg-contact-grille{grid-template-columns:minmax(0,1fr);gap:32px}
}
@media (max-width:575.98px){
  .tg-page-hero{padding:120px 0 50px}
  .tg-contact-carte{padding:24px 20px}
  .tg-legale article{margin-bottom:30px}
}

/* ------------------------------ Mobile ------------------------------- */
@media (max-width:575.98px){
  .tg-header{padding:10px 0}
  .tg-brand .tg-macaron{width:38px;height:38px}
  .tg-brand-nom{font-size:1.65rem}
  .tg-hero-inner{padding:88px 16px 90px}
  .tg-section{padding:80px 0}
  .tg-filtres{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;padding-bottom:6px;margin-inline:-16px;padding-inline:16px;scrollbar-width:none}
  .tg-filtres::-webkit-scrollbar{display:none}
  .tg-filtre{flex:0 0 auto}
  .tg-footer-bas{justify-content:center;text-align:center}
}

/* =================== Galerie Nos réalisations =================== */
.tg-real-galerie{columns:4 280px;column-gap:16px}
.tg-real-item{break-inside:avoid;margin-bottom:16px;border-radius:var(--tg-radius);overflow:hidden;position:relative}
.tg-real-btn{display:block;width:100%;border:0;padding:0;background:none;cursor:pointer;overflow:hidden;border-radius:var(--tg-radius)}
.tg-real-btn img{display:block;width:100%;height:auto;transition:transform .6s var(--tg-ease),filter .6s var(--tg-ease)}
.tg-real-btn:hover img{transform:scale(1.05);filter:brightness(1.08)}
.tg-real-item figcaption{font-family:var(--tg-sans);font-size:.85rem;color:var(--tg-texte-leger);padding:8px 4px 0;text-align:center}
.tg-cta-section{background:var(--tg-creme-50);padding:60px 0;border-radius:var(--tg-radius-lg);margin:0 16px 40px}
.tg-cta-section .tg-section-titre{font-size:2rem;margin-bottom:10px}
.tg-cta-section p{color:var(--tg-texte-leger);margin-bottom:24px}
@media(max-width:575.98px){
  .tg-real-galerie{columns:2}
  .tg-cta-section{margin:0 0 20px;border-radius:0;padding:40px 16px}
}
