/* ================================================================
   JAYA THERA'PET — main.css v5
   Correctifs : mobile, gap blanc, contact lisible, hero animé
   Par Elimboo — https://elimboo.com
   ================================================================ */

/* ---------------------------------------------------------------
   RESET ASTRA COMPLET
   --------------------------------------------------------------- */
.ast-header-wrap,.ast-main-header-wrap,.main-header-bar,
#masthead,#ast-fixed-header,.ast-mobile-header-wrap,
#ast-hf-header-area,.ast-above-header-wrap,.ast-below-header-wrap,
.astra-header,.ast-desktop-header { display:none!important; }
.site-footer,#colophon,.ast-footer-overlay,
.ast-above-footer-wrap,.ast-below-footer-wrap,
footer.ast-small-footer { display:none!important; }
/* SUPPRIME LE PADDING-TOP ASTRA (cause du gap blanc) */
body, html { padding-top:0!important; margin-top:0!important; }
body.admin-bar { padding-top:32px!important; }
.ast-container,#content,.site-content,.ast-article-post,
.content-area,#primary,.ast-page-builder-template,
.entry-content,.hentry,body.page .entry-content,
body.home .entry-content { padding:0!important; margin:0!important; max-width:100%!important; width:100%!important; }
/* Astra injecte souvent ce padding via JS — on le bloque aussi */
#page { padding-top:0!important; }

/* ---------------------------------------------------------------
   VARIABLES
   --------------------------------------------------------------- */
:root {
  --p:     #5B2D82;
  --pd:    #3d1d59;
  --pl:    #7B4DA8;
  --pp:    #F0E8F8;
  --pxp:   #FAF5FF;
  --t:     #C4734A;
  --tl:    #E8A07A;
  --tp:    #FDF0E8;
  --sable: #F5EDD8;
  --creme: #FDFAF5;
  --dark:  #1E1125;
  --mid:   #4A3558;
  --soft:  #7A6B88;
  --white: #FFFFFF;
  --r1:10px; --r2:18px; --r3:28px; --r4:40px;
  --s1:0 4px 24px rgba(91,45,130,.10);
  --s2:0 8px 40px rgba(91,45,130,.15);
  --s3:0 16px 60px rgba(91,45,130,.22);
  --tr:all .35s cubic-bezier(.4,0,.2,1);
  --hh:72px; /* header height */
}

/* ---------------------------------------------------------------
   BASE
   --------------------------------------------------------------- */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
body { font-family:'DM Sans',sans-serif!important; color:var(--dark)!important; background:var(--creme)!important; line-height:1.65; overflow-x:hidden; }
img  { display:block; max-width:100%; height:auto; }
a    { color:inherit; text-decoration:none; transition:var(--tr); }
h1,h2,h3,h4 { font-family:'Playfair Display',serif!important; line-height:1.2; }
h1 { font-size:clamp(2.2rem,5vw,4rem)!important; font-weight:700!important; color:var(--dark)!important; }
h2 { font-size:clamp(1.8rem,3.5vw,2.6rem)!important; font-weight:700!important; color:var(--pd)!important; }
h3 { font-size:clamp(1.1rem,2.2vw,1.5rem)!important; font-weight:600!important; color:var(--dark)!important; }
h4 { font-size:1rem!important; font-weight:600!important; }
p  { font-size:1rem; color:var(--soft); line-height:1.75; }
strong { color:var(--dark); }
.jtp-container { max-width:1180px; margin:0 auto; padding:0 clamp(1.2rem,4vw,2.8rem); }
.jtp-tc { text-align:center; }

/* Skip link */
.jtp-skip { position:absolute; left:-9999px; top:1rem; z-index:99999; padding:.5rem 1.2rem; background:var(--p); color:#fff; border-radius:var(--r1); font-weight:600; font-size:.9rem; }
.jtp-skip:focus { left:1rem; }

/* ---------------------------------------------------------------
   LABEL / CHIP
   --------------------------------------------------------------- */
.jtp-label { display:block; font-size:.75rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--t); margin-bottom:.6rem; }
.jtp-label--light { color:var(--tl); }

/* ---------------------------------------------------------------
   BOUTONS
   --------------------------------------------------------------- */
.jtp-btn { display:inline-flex; align-items:center; justify-content:center; gap:.5rem; padding:.82rem 1.9rem; border-radius:var(--r4); font-family:'DM Sans',sans-serif!important; font-weight:600!important; font-size:.92rem; cursor:pointer; border:none; transition:var(--tr); text-decoration:none!important; white-space:nowrap; }
.jtp-btn--primary { background:var(--p); color:#fff!important; box-shadow:0 4px 18px rgba(91,45,130,.35); }
.jtp-btn--primary:hover { background:var(--pd); transform:translateY(-2px); box-shadow:0 8px 28px rgba(91,45,130,.45); }
.jtp-btn--outline  { background:transparent; color:var(--p)!important; border:2px solid var(--p); }
.jtp-btn--outline:hover  { background:var(--pp); transform:translateY(-2px); }
/* Section contact — tous les textes en blanc lisible */
.jtp-s--contact h2,
.jtp-s--contact .jtp-sh h2 {
  color:#fff !important;
  text-shadow:0 2px 12px rgba(0,0,0,.3);
}
.jtp-s--contact .jtp-label { color:var(--tl) !important; }
.jtp-s--contact .jtp-sh__lead { color:rgba(255,255,255,.82) !important; }
  background:#fff !important;
  color:var(--pd) !important;
  box-shadow:0 4px 18px rgba(255,255,255,.2) !important;
}
.jtp-s--contact .jtp-btn--terra:hover {
  background:var(--pp) !important;
  color:var(--pd) !important;
  transform:translateY(-2px);
}
.jtp-btn--full     { width:100%; }

/* ---------------------------------------------------------------
   HEADER
   --------------------------------------------------------------- */
.jtp-header {
  position:fixed; top:0; left:0; right:0; z-index:9999;
  height:var(--hh);
  background:rgba(253,250,245,.97);
  backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(91,45,130,.08);
  transition:box-shadow .3s, height .3s;
}
.jtp-header.is-scrolled { box-shadow:var(--s1); height:62px; }
.jtp-header-inner {
  height:100%; max-width:1180px; margin:0 auto;
  padding:0 clamp(1.2rem,3vw,2.5rem);
  display:flex; align-items:center; justify-content:space-between; gap:1.2rem;
}

/* Logo */
.jtp-logo { display:flex; align-items:center; gap:.75rem; text-decoration:none!important; flex-shrink:0; }
.jtp-logo__img { height:50px!important; width:auto!important; border-radius:8px; display:block!important; flex-shrink:0; }
.jtp-logo__txt { display:flex; flex-direction:column; line-height:1.2; }
.jtp-logo__name { font-family:'Playfair Display',serif; font-size:1.1rem; font-weight:700; color:var(--p); white-space:nowrap; }
.jtp-logo__tag  { font-size:.65rem; color:var(--soft); white-space:nowrap; }

/* Nav desktop */
.jtp-nav { flex:1; min-width:0; display:flex; justify-content:center; }
.jtp-nav__list { list-style:none; display:flex; align-items:center; gap:.05rem; margin:0; padding:0; flex-wrap:nowrap; }
.jtp-nav__list li { margin:0; padding:0; }
.jtp-nav__list li a { display:block; padding:.45rem .75rem; border-radius:var(--r1); font-size:.83rem; font-weight:500; color:var(--mid); transition:var(--tr); text-decoration:none!important; white-space:nowrap; }
.jtp-nav__list li a:hover,
.jtp-nav__list li.current-menu-item > a { color:var(--p); background:var(--pp); }

/* CTA header */
.jtp-header__cta { display:flex; align-items:center; gap:.7rem; flex-shrink:0; }
.jtp-tel { display:flex; align-items:center; gap:.35rem; font-size:.82rem; font-weight:600; color:var(--p)!important; padding:.4rem .8rem; border-radius:var(--r1); border:1.5px solid var(--pp); transition:var(--tr); text-decoration:none!important; white-space:nowrap; }
.jtp-tel:hover { background:var(--pp); }
.jtp-tel svg { flex-shrink:0; }
.jtp-hd-cta { font-size:.82rem!important; padding:.65rem 1.3rem!important; }

/* BURGER */
.jtp-burger { display:none; flex-direction:column; justify-content:space-between; width:24px; height:17px; background:none; border:none; cursor:pointer; padding:0; flex-shrink:0; z-index:10000; }
.jtp-burger__b { display:block; width:100%; height:2px; background:var(--p); border-radius:2px; transition:var(--tr); transform-origin:center; }
.jtp-burger.is-open .jtp-burger__b:nth-child(1) { transform:translateY(7.5px) rotate(45deg); }
.jtp-burger.is-open .jtp-burger__b:nth-child(2) { opacity:0; transform:scaleX(0); }
.jtp-burger.is-open .jtp-burger__b:nth-child(3) { transform:translateY(-7.5px) rotate(-45deg); }

/* ---------------------------------------------------------------
   SECTIONS
   --------------------------------------------------------------- */
.jtp-s   { padding:clamp(4rem,8vw,7rem) 0; }
.jtp-s--white { background:var(--white); }
.jtp-s--pale  { background:var(--pxp); }
.jtp-s--dark  { background:var(--pd); }
.jtp-s--terra { background:var(--tp); }
.jtp-s--sable { background:var(--sable); }
/* SECTION CONTACT — remplace le noir par dégradé violet élégant */
.jtp-s--contact {
  background:linear-gradient(135deg, var(--pd) 0%, #2a1045 40%, #4a1f6e 70%, var(--pl) 100%);
  position:relative; overflow:hidden;
}
.jtp-s--contact::before {
  content:''; position:absolute; inset:0;
  background:radial-gradient(ellipse at 70% 50%, rgba(196,115,74,.15) 0%, transparent 60%);
  pointer-events:none;
}
.jtp-sh       { text-align:center; margin-bottom:3.5rem; }
.jtp-sh h2    { margin:.35rem 0 .75rem; }
.jtp-sh__lead { font-size:1.05rem; color:var(--mid); max-width:540px; margin:0 auto; }

/* ---------------------------------------------------------------
   HERO — avec animations en boucle
   --------------------------------------------------------------- */
.jtp-hero {
  min-height:100vh;
  display:grid; grid-template-columns:1fr 1fr;
  align-items:stretch;
  /* PAS de margin/padding-top ici — le header est fixe et overlay le hero */
}
.jtp-hero__cnt {
  display:flex; flex-direction:column; justify-content:center;
  padding:calc(var(--hh) + 2.5rem) clamp(1.5rem,4vw,4rem) clamp(3rem,5vw,5rem);
}
/* Titre */
.jtp-hero__h1 { font-size:clamp(2.3rem,4.5vw,3.9rem)!important; font-weight:700!important; line-height:1.17!important; color:var(--dark)!important; margin:.5rem 0 1.4rem; }
.jtp-hero__h1 em { color:var(--p); font-style:italic; }
/* Animation entrée */
.jtp-hero__cnt { animation:heroFadeIn .9s ease both; }
.jtp-hero__h1  { animation:heroSlideUp 1s ease both .15s; }
.jtp-hero__lead { animation:heroSlideUp 1s ease both .3s; font-size:1.08rem; color:var(--mid); max-width:460px; margin-bottom:2.2rem; }
.jtp-hero__btns { display:flex; gap:1rem; flex-wrap:wrap; margin-bottom:3rem; animation:heroSlideUp 1s ease both .45s; }
.jtp-hero__stats { display:flex; gap:2.5rem; padding-top:2rem; border-top:1px solid rgba(91,45,130,.12); animation:heroSlideUp 1s ease both .6s; }
.jtp-stat strong { display:block; font-family:'Playfair Display',serif; font-size:2rem; font-weight:700; color:var(--p); }
.jtp-stat span   { font-size:.8rem; color:var(--soft); line-height:1.3; text-align:center; display:block; }

/* Visual */
.jtp-hero__vis { position:relative; overflow:hidden; min-height:500px; }
.jtp-hero__img { width:100%; height:100%; object-fit:cover; object-position:center top; display:block!important; animation:heroImgZoom 18s ease-in-out infinite alternate; }
.jtp-hero__ov  { position:absolute; inset:0; background:linear-gradient(to right,var(--creme) 0%,transparent 18%),linear-gradient(to top,rgba(30,17,37,.45) 0%,transparent 50%); pointer-events:none; }
.jtp-hero__badge {
  position:absolute; bottom:2.5rem; right:2rem;
  background:rgba(253,250,245,.97); backdrop-filter:blur(12px);
  border-radius:var(--r2); padding:1.1rem 1.4rem;
  box-shadow:var(--s3); max-width:230px;
  display:flex; gap:.75rem; align-items:flex-start;
  font-size:.81rem; color:var(--mid); line-height:1.45;
  animation:badgePop 1s cubic-bezier(.34,1.56,.64,1) both .8s;
}
.jtp-hero__badge > span { font-size:1.5rem; flex-shrink:0; }
.jtp-hero__badge strong { display:block; color:var(--p); font-size:.86rem; margin-bottom:.1rem; }

/* Floating particles dans le hero */
.jtp-hero__cnt::before {
  content:'🐾';
  position:absolute; font-size:1.4rem; opacity:.06;
  top:20%; right:5%; animation:floatA 6s ease-in-out infinite;
  pointer-events:none;
}
.jtp-hero__cnt::after {
  content:'🐾';
  position:absolute; font-size:1rem; opacity:.05;
  bottom:25%; right:12%; animation:floatB 8s ease-in-out infinite 2s;
  pointer-events:none;
}

/* Stats animés au scroll */
.jtp-stat { animation:none; }
.jtp-stat.is-visible strong { animation:countPulse .6s ease both; }

/* ---------------------------------------------------------------
   ANIMATIONS KEYFRAMES
   --------------------------------------------------------------- */
@keyframes heroFadeIn    { from{opacity:0} to{opacity:1} }
@keyframes heroSlideUp   { from{opacity:0;transform:translateY(32px)} to{opacity:1;transform:none} }
@keyframes heroImgZoom   { from{transform:scale(1)} to{transform:scale(1.06)} }
@keyframes badgePop      { from{opacity:0;transform:translateY(20px) scale(.9)} to{opacity:1;transform:none} }
@keyframes floatA        { 0%,100%{transform:translateY(0) rotate(0deg)} 50%{transform:translateY(-18px) rotate(15deg)} }
@keyframes floatB        { 0%,100%{transform:translateY(0) rotate(0deg)} 50%{transform:translateY(14px) rotate(-12deg)} }
@keyframes countPulse    { 0%{transform:scale(1)} 50%{transform:scale(1.15)} 100%{transform:scale(1)} }
@keyframes fadeInUp      { from{opacity:0;transform:translateY(24px)} to{opacity:1;transform:none} }
@keyframes shimmer       { 0%{background-position:-200% center} 100%{background-position:200% center} }

/* Reveal au scroll */
.jtp-reveal { opacity:0; transform:translateY(22px); transition:opacity .7s ease,transform .7s ease; }
.jtp-reveal.is-visible { opacity:1; transform:none; }

/* ---------------------------------------------------------------
   PLACEHOLDER
   --------------------------------------------------------------- */
.jtp-ph { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.5rem; background:var(--pp); border-radius:var(--r2); min-height:200px; }
.jtp-ph span { font-size:2.5rem; }

/* ---------------------------------------------------------------
   SPLIT
   --------------------------------------------------------------- */
.jtp-split { display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,5rem); align-items:center; }

/* Concept */
.jtp-conc__imgs  { position:relative; height:480px; }
.jtp-conc__back  { position:absolute; top:0; left:0; width:72%; height:74%; border-radius:var(--r3); object-fit:cover; box-shadow:var(--s2); display:block!important; }
.jtp-conc__front { position:absolute; bottom:0; right:0; width:58%; height:62%; border-radius:var(--r3); object-fit:cover; box-shadow:var(--s3); border:4px solid #fff; display:block!important; }
.jtp-conc__paw   { position:absolute; top:46%; left:59%; transform:translate(-50%,-50%); width:54px; height:54px; border-radius:50%; background:var(--p); color:#fff; display:flex; align-items:center; justify-content:center; font-size:1.4rem; box-shadow:var(--s2); border:3px solid #fff; z-index:5; }
.jtp-conc__txt h2 { margin:.4rem 0 1.2rem; }
.jtp-conc__txt p  { margin-bottom:1.2rem; }

/* Quote */
.jtp-quote { background:var(--pp); border-left:4px solid var(--p); border-radius:0 var(--r2) var(--r2) 0; padding:1.1rem 1.4rem; margin:1.5rem 0; font-family:'Playfair Display',serif; font-style:italic; font-size:1rem; color:var(--pd); line-height:1.6; }
.jtp-quote p    { color:var(--pd); font-style:italic; margin:0; }
.jtp-quote cite { display:block; margin-top:.5rem; font-size:.8rem; font-style:normal; font-family:'DM Sans',sans-serif; color:var(--soft); }

/* Equipe */
.jtp-eq__photo-w { position:relative; }
.jtp-eq__photo   { width:100%; border-radius:var(--r4); object-fit:cover; aspect-ratio:3/4; box-shadow:var(--s3); display:block!important; }
.jtp-eq__photo.jtp-ph { aspect-ratio:3/4; min-height:auto; border-radius:var(--r4); }
.jtp-eq__badges  { position:absolute; bottom:-1rem; left:-1.5rem; display:flex; flex-direction:column; gap:.55rem; }
.jtp-eq__badge   { background:#fff; border-radius:var(--r2); padding:.6rem 1rem; box-shadow:var(--s2); font-size:.77rem; font-weight:600; color:var(--mid); display:flex; align-items:center; gap:.5rem; white-space:nowrap; }
.jtp-eq__txt h2  { margin:.3rem 0 .3rem; }
.jtp-eq__sub     { font-size:1rem; color:var(--t); font-weight:600; margin-bottom:1.3rem; display:block; }
.jtp-cpts        { list-style:none; margin:1.2rem 0 1.5rem; }
.jtp-cpts li     { display:flex; align-items:flex-start; gap:.55rem; padding:.52rem 0; border-bottom:1px solid rgba(91,45,130,.07); font-size:.87rem; color:var(--mid); }
.jtp-cpts li::before { content:'✓'; color:var(--p); font-weight:700; flex-shrink:0; }
.jtp-zone-b      { background:var(--pp); border-radius:var(--r2); padding:.9rem 1.3rem; display:flex; align-items:center; gap:.7rem; font-size:.9rem; color:var(--pd); }
.jtp-zone-b > span { font-size:1.3rem; }

/* ---------------------------------------------------------------
   GRILLES
   --------------------------------------------------------------- */
.jtp-grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:1.8rem; }
.jtp-grid-2 { display:grid; grid-template-columns:repeat(2,1fr); gap:1.8rem; }
.jtp-grid-6 { display:grid; grid-template-columns:repeat(6,1fr); gap:1rem; }

/* CARDS PUBLICS */
.jtp-card { background:var(--white); border-radius:var(--r3); overflow:hidden; box-shadow:var(--s1); transition:var(--tr); }
.jtp-card:hover { transform:translateY(-7px); box-shadow:var(--s3); }
.jtp-card__img  { width:100%; height:auto !important; display:block!important; }
.jtp-card .jtp-ph { height:215px; border-radius:0; }
.jtp-card__body { padding:1.7rem; }
.jtp-card__ico  { font-size:2rem; margin-bottom:.7rem; }
.jtp-card__ttl  { font-size:1.15rem!important; margin-bottom:.6rem; color:var(--pd)!important; }
.jtp-card__dsc  { font-size:.88rem; margin-bottom:1rem; }
.jtp-tags       { display:flex; flex-wrap:wrap; gap:.35rem; }
.jtp-tag        { font-size:.72rem; padding:.2rem .7rem; border-radius:100px; background:var(--pp); color:var(--pl); font-weight:500; }

/* CARDS ANIMAUX */
.jtp-acard { border-radius:var(--r2); overflow:hidden; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.1); transition:var(--tr); }
.jtp-acard:hover { background:rgba(255,255,255,.13); transform:translateY(-4px); }
.jtp-acard img  { width:100%; height:auto !important; display:block!important; }
.jtp-acard__ph  { display:none; } /* masqué — pas de vide si image absente */
.jtp-acard__b   { padding:.8rem .9rem; }
.jtp-acard__b h3     { font-size:.82rem!important; font-weight:600!important; color:#fff!important; margin-bottom:.2rem; line-height:1.3; }
.jtp-acard__type     { font-size:.68rem; color:var(--tl); text-transform:uppercase; letter-spacing:.06em; margin-bottom:.35rem; }
.jtp-acard__b p      { font-size:.74rem; color:rgba(255,255,255,.58); line-height:1.45; }

/* CARDS SERVICES */
.jtp-scard { background:var(--white); border-radius:var(--r3); padding:2rem; box-shadow:var(--s1); border:1.5px solid transparent; transition:var(--tr); display:flex; gap:1.4rem; align-items:flex-start; }
.jtp-scard:hover { border-color:var(--pp); box-shadow:var(--s2); transform:translateY(-4px); }
.jtp-scard__ico { width:52px; height:52px; flex-shrink:0; border-radius:12px; background:var(--pp); display:flex; align-items:center; justify-content:center; font-size:1.5rem; }
.jtp-scard__cnt h3 { font-size:1.08rem!important; margin-bottom:.4rem; color:var(--pd)!important; }
.jtp-scard__cnt p  { font-size:.87rem; }
.jtp-dip { display:inline-flex; align-items:center; gap:.35rem; margin-top:.7rem; font-size:.76rem; font-weight:600; color:var(--t); background:var(--tp); padding:.22rem .7rem; border-radius:100px; }

/* ---------------------------------------------------------------
   ETAPES
   --------------------------------------------------------------- */
.jtp-steps { display:grid; grid-template-columns:repeat(4,1fr); gap:0; margin-top:3.5rem; position:relative; }
.jtp-steps::before { content:''; position:absolute; top:1.5rem; left:12.5%; right:12.5%; height:2px; background:linear-gradient(to right,var(--pp),var(--p),var(--pp)); z-index:0; }
.jtp-step { text-align:center; padding:0 1rem; position:relative; z-index:1; }
.jtp-step__n { width:48px; height:48px; border-radius:50%; background:var(--p); color:#fff; display:flex; align-items:center; justify-content:center; font-family:'Playfair Display',serif; font-size:1.2rem; font-weight:700; margin:0 auto 1rem; box-shadow:0 0 0 5px var(--white); }
.jtp-step h3 { font-size:.93rem!important; margin-bottom:.4rem; }
.jtp-step p  { font-size:.8rem; }

/* ---------------------------------------------------------------
   GALERIE
   --------------------------------------------------------------- */
.jtp-galerie { display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:200px; gap:1rem; margin-top:3rem; }
.jtp-galerie__item { border-radius:var(--r2); overflow:hidden; position:relative; cursor:pointer; }
.jtp-galerie__item img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; display:block!important; }
.jtp-galerie__item:hover img { transform:scale(1.06); }
.jtp-galerie__item--large { grid-column:span 2; grid-row:span 2; }
.jtp-galerie__item--tall  { grid-row:span 2; }
.jtp-galerie__cap { position:absolute; bottom:0; left:0; right:0; background:linear-gradient(transparent,rgba(30,17,37,.7)); color:#fff; padding:.7rem 1rem; font-size:.78rem; opacity:0; transition:opacity .35s; pointer-events:none; }
.jtp-galerie__item:hover .jtp-galerie__cap { opacity:1; }

/* ---------------------------------------------------------------
   TEMOIGNAGES
   --------------------------------------------------------------- */
.jtp-temo { background:var(--white); border-radius:var(--r3); padding:1.8rem; box-shadow:var(--s1); }
.jtp-stars { color:var(--t); font-size:.95rem; letter-spacing:.1em; display:block; margin-bottom:.8rem; }
.jtp-temo__txt   { font-size:.9rem; color:var(--mid); font-style:italic; line-height:1.7; margin-bottom:1.2rem; }
.jtp-temo__txt p { color:var(--mid); font-style:italic; margin:0; }
.jtp-temo__auth  { display:flex; align-items:center; gap:.7rem; }
.jtp-temo__av    { width:38px; height:38px; border-radius:50%; flex-shrink:0; background:var(--pp); color:var(--p); display:flex; align-items:center; justify-content:center; font-weight:700; font-size:.95rem; }
.jtp-temo__auth strong { font-size:.86rem; color:var(--dark); display:block; }
.jtp-temo__auth small  { font-size:.76rem; color:var(--soft); }

/* ---------------------------------------------------------------
   CONTACT — nouvelle section lisible sur fond violet dégradé
   --------------------------------------------------------------- */
.jtp-contact { display:grid; grid-template-columns:5fr 7fr; gap:clamp(2rem,5vw,4rem); margin-top:3.5rem; align-items:start; }

/* Infos contact — bien contrastées */
.jtp-ci h3 { font-family:'Playfair Display',serif!important; font-size:1.4rem!important; color:#fff!important; margin-bottom:1.4rem; }
.jtp-citem { display:flex; align-items:flex-start; gap:.9rem; padding:.9rem 0; border-bottom:1px solid rgba(255,255,255,.12); }
.jtp-citem > span { font-size:1.15rem; flex-shrink:0; margin-top:.1rem; }
.jtp-citem small { display:block; font-size:.72rem; text-transform:uppercase; letter-spacing:.09em; color:rgba(255,255,255,.5); margin-bottom:.2rem; font-weight:600; }
.jtp-citem a { font-size:.92rem; color:var(--tl)!important; font-weight:500; }
.jtp-citem a:hover { color:#fff!important; text-decoration:underline!important; }
.jtp-citem div > *:not(small) { font-size:.92rem; color:rgba(255,255,255,.9); }

/* Formulaire */
.jtp-fw { background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.2); border-radius:var(--r3); padding:2.2rem; backdrop-filter:blur(12px); }
.jtp-frow { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.jtp-ff   { margin-bottom:1.1rem; }
.jtp-ff label { display:block; font-size:.79rem; color:rgba(255,255,255,.8); margin-bottom:.35rem; font-weight:500; }
.jtp-ff label abbr { text-decoration:none; color:var(--tl); margin-left:.15rem; }
/* Inputs, selects, textarea */
.jtp-ff input,
.jtp-ff select,
.jtp-ff textarea {
  width:100%; padding:.82rem 1rem;
  background:rgba(255,255,255,.12); border:1.5px solid rgba(255,255,255,.2);
  border-radius:var(--r1); color:#fff;
  font-family:'DM Sans',sans-serif; font-size:.9rem;
  outline:none; transition:var(--tr);
  -webkit-appearance:none; appearance:none;
}
.jtp-ff input::placeholder, .jtp-ff textarea::placeholder { color:rgba(255,255,255,.4); }
.jtp-ff input:focus, .jtp-ff select:focus, .jtp-ff textarea:focus { border-color:var(--tl); background:rgba(255,255,255,.18); }
/* SELECT — flèche visible + options lisibles */
.jtp-ff select {
  cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' stroke='rgba(255,255,255,0.7)' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 1rem center;
  padding-right:2.8rem;
}
.jtp-ff select option { background:#3d1d59; color:#fff; padding:.5rem; }
.jtp-ff textarea { height:110px; resize:vertical; }
.jtp-fmsg { padding:.8rem 1.1rem; border-radius:var(--r1); font-size:.88rem; margin-bottom:1rem; }
.jtp-fmsg--ok    { background:rgba(80,200,120,.2); color:#6fcf97; border:1px solid rgba(80,200,120,.35); }
.jtp-fmsg--error { background:rgba(235,87,87,.2);  color:#eb9090; border:1px solid rgba(235,87,87,.35); }
.jtp-flegal { font-size:.74rem; color:rgba(255,255,255,.5); text-align:center; margin-top:.8rem; }
.jtp-flegal a { color:rgba(255,255,255,.65)!important; text-decoration:underline!important; }

/* ---------------------------------------------------------------
   FOOTER
   --------------------------------------------------------------- */
.jtp-footer { background:var(--dark)!important; color:#fff!important; padding:3.5rem 0 1.8rem; display:block!important; }
.jtp-footer__grid { display:grid; grid-template-columns:2.2fr 1fr 1fr 1fr; gap:2.5rem; padding-bottom:2.5rem; border-bottom:1px solid rgba(255,255,255,.08); }
.jtp-footer__logo { height:50px!important; width:auto!important; margin-bottom:.9rem; border-radius:6px; display:block!important; }
.jtp-footer__desc { font-size:.85rem; color:rgba(255,255,255,.45); line-height:1.7; }
.jtp-footer__contacts { margin-top:1.1rem; display:flex; flex-direction:column; gap:.38rem; }
.jtp-footer__cl { font-size:.84rem; color:var(--tl)!important; text-decoration:none!important; display:flex; align-items:center; gap:.4rem; }
.jtp-footer__cl:hover { color:#fff!important; }
.jtp-footer__ht { font-family:'DM Sans',sans-serif!important; font-size:.75rem!important; font-weight:600!important; text-transform:uppercase; letter-spacing:.1em; color:rgba(255,255,255,.4)!important; margin-bottom:1.1rem; }
.jtp-footer__nav { list-style:none; }
.jtp-footer__nav li { margin-bottom:.52rem; }
.jtp-footer__nav a { font-size:.85rem; color:rgba(255,255,255,.58)!important; text-decoration:none!important; }
.jtp-footer__nav a:hover { color:var(--tl)!important; }
.jtp-footer__info { list-style:none; }
.jtp-footer__info li { font-size:.83rem; color:rgba(255,255,255,.45); margin-bottom:.45rem; }
.jtp-footer__bottom { display:flex; align-items:center; justify-content:space-between; padding-top:1.4rem; font-size:.78rem; color:rgba(255,255,255,.3); flex-wrap:wrap; gap:.5rem; }
/* "Fait avec 🤍 par Elimboo" */
.jtp-footer__love { color:rgba(255,255,255,.45); }
.jtp-footer__love a { color:var(--tl)!important; font-weight:600; }
.jtp-footer__love a:hover { color:#fff!important; }
.jtp-heart { display:inline-block; animation:heartbeat 2s ease-in-out infinite; }
@keyframes heartbeat { 0%,100%{transform:scale(1)} 14%{transform:scale(1.25)} 28%{transform:scale(1)} 42%{transform:scale(1.15)} 56%{transform:scale(1)} }

/* ---------------------------------------------------------------
   PAGES LÉGALES
   --------------------------------------------------------------- */
.jtp-legal-wrap { padding-top:calc(var(--hh) + 2rem); padding-bottom:4rem; max-width:850px; }
.jtp-page-main  { min-height:60vh; }
.jtp-legal h1   { margin-bottom:1.5rem; }
.jtp-legal h2   { font-size:1.3rem!important; margin:2rem 0 .8rem; padding-bottom:.4rem; border-bottom:2px solid var(--pp); }
.jtp-legal p, .jtp-legal li { font-size:.95rem; color:var(--mid); line-height:1.75; }
.jtp-legal ul   { padding-left:1.5rem; margin:.5rem 0 1rem; }
.jtp-legal a    { color:var(--p)!important; text-decoration:underline!important; }

/* ---------------------------------------------------------------
   ACCESSIBILITÉ
   --------------------------------------------------------------- */
.jtp-a11y-bar { position:fixed; bottom:1.4rem; left:1.4rem; z-index:9998; display:flex; align-items:center; gap:.45rem; }
.jtp-a11y-btn { width:40px; height:40px; border-radius:50%; background:var(--p); color:#fff; border:none; display:flex; align-items:center; justify-content:center; cursor:pointer; box-shadow:var(--s2); font-size:.82rem; font-weight:700; font-family:'DM Sans',sans-serif; transition:var(--tr); }
.jtp-a11y-btn:hover { background:var(--pd); transform:scale(1.1); }
/* Bouton de masquage — petit, discret */
.jtp-a11y-toggle {
  width:22px; height:22px; border-radius:50%;
  background:rgba(91,45,130,.25); color:rgba(255,255,255,.8);
  border:none; cursor:pointer; font-size:.65rem; font-weight:700;
  display:flex; align-items:center; justify-content:center;
  transition:var(--tr); box-shadow:none;
  line-height:1; padding:0; flex-shrink:0;
}
.jtp-a11y-toggle:hover { background:var(--p); color:#fff; }
/* Boutons masqués quand barre réduite */
.jtp-a11y-bar.is-hidden .jtp-a11y-btn { display:none; }
.jtp-a11y-bar.is-hidden .jtp-a11y-toggle {
  width:30px; height:30px; font-size:.75rem;
  background:rgba(91,45,130,.45); color:#fff;
  box-shadow:var(--s1);
}
body.jtp-hc { filter:contrast(1.4); }

/* Tel link  */
.jtp-tel { display:inline-flex; align-items:center; gap:.4rem; font-size:.84rem; font-weight:600; color:var(--p)!important; padding:.42rem .85rem; border-radius:var(--r1); border:1.5px solid var(--pp); transition:var(--tr); text-decoration:none!important; }
.jtp-tel:hover { background:var(--pp); }

/* Blog */
.jtp-blog-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; margin-bottom:3rem; }
.jtp-blog-card { background:var(--white); border-radius:var(--r3); overflow:hidden; box-shadow:var(--s1); transition:var(--tr); }
.jtp-blog-card:hover { transform:translateY(-6px); box-shadow:var(--s3); }
.jtp-bc__img-w { display:block; position:relative; overflow:hidden; aspect-ratio:16/9; }
.jtp-bc__img-w img { width:100%; height:100%; object-fit:cover; transition:transform .5s; display:block!important; }
.jtp-blog-card:hover .jtp-bc__img-w img { transform:scale(1.05); }
.jtp-bc__cat { position:absolute; top:1rem; left:1rem; background:var(--p); color:#fff; font-size:.72rem; font-weight:600; padding:.25rem .75rem; border-radius:100px; letter-spacing:.06em; text-transform:uppercase; }
.jtp-bc__body { padding:1.5rem; }
.jtp-bc__meta { display:flex; gap:1rem; font-size:.76rem; color:var(--soft); margin-bottom:.75rem; }
.jtp-bc__ttl  { font-size:1.1rem!important; margin-bottom:.6rem; line-height:1.3!important; }
.jtp-bc__ttl a { color:var(--dark)!important; text-decoration:none!important; }
.jtp-bc__ttl a:hover { color:var(--p)!important; }
.jtp-bc__exc  { font-size:.87rem; margin-bottom:1rem; }
.jtp-bc__more { font-size:.85rem; font-weight:600; color:var(--p)!important; text-decoration:none!important; display:inline-flex; align-items:center; gap:.3rem; }
.jtp-bc__more:hover { gap:.6rem; }
.jtp-pagination { text-align:center; padding:2rem 0; }
.jtp-pagination ul { list-style:none; display:flex; justify-content:center; gap:.5rem; padding:0; margin:0; }
.jtp-pagination ul li a,.jtp-pagination ul li span { display:block; padding:.55rem .9rem; border-radius:var(--r1); font-size:.88rem; font-weight:600; text-decoration:none!important; background:var(--pp); color:var(--p); transition:var(--tr); }
.jtp-pagination ul li a:hover { background:var(--p); color:#fff!important; }
.jtp-pagination ul li span.current { background:var(--p); color:#fff; }

/* Breadcrumb */
.jtp-bc ol { list-style:none; display:flex; flex-wrap:wrap; gap:.4rem; align-items:center; padding:.8rem 0; margin:0; font-size:.8rem; color:var(--soft); }
.jtp-bc ol li { display:flex; align-items:center; gap:.4rem; }
.jtp-bc ol li:not(:last-child)::after { content:'/'; color:rgba(91,45,130,.3); }
.jtp-bc a { color:var(--p)!important; text-decoration:none!important; }

/* Single post */
.jtp-single-layout { display:grid; grid-template-columns:1fr 340px; gap:3rem; max-width:1180px; margin:0 auto; padding:0 clamp(1.2rem,4vw,2.8rem) 4rem; }
.jtp-article-body  { font-size:1.02rem; line-height:1.8; color:var(--mid); }
.jtp-article-body h2 { font-size:1.6rem!important; margin:2.5rem 0 1rem; color:var(--pd)!important; padding-bottom:.5rem; border-bottom:2px solid var(--pp); }
.jtp-article-body h3 { font-size:1.2rem!important; margin:2rem 0 .75rem; }
.jtp-article-body p  { margin-bottom:1.2rem; }
.jtp-article-body ul,.jtp-article-body ol { padding-left:1.5rem; margin-bottom:1.2rem; }
.jtp-article-body a { color:var(--p)!important; text-decoration:underline!important; }
.jtp-single-tags { display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; margin:2rem 0; padding-top:1.5rem; border-top:1px solid var(--pp); }
.jtp-single-tags__label { font-size:.82rem; font-weight:600; color:var(--soft); }
.jtp-single-nav { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-top:2.5rem; }
.jtp-single-nav__link { display:flex; flex-direction:column; gap:.35rem; padding:1.2rem 1.5rem; border-radius:var(--r2); background:var(--pp); transition:var(--tr); text-decoration:none!important; }
.jtp-single-nav__link--next { text-align:right; }
.jtp-single-nav__link:hover { background:var(--p); }
.jtp-single-nav__dir  { font-size:.74rem; font-weight:600; color:var(--p); text-transform:uppercase; letter-spacing:.08em; }
.jtp-single-nav__title { font-size:.88rem; font-weight:600; color:var(--dark); }
.jtp-single-nav__link:hover .jtp-single-nav__dir,
.jtp-single-nav__link:hover .jtp-single-nav__title { color:#fff; }
.jtp-sidebar-card { background:var(--white); border-radius:var(--r2); padding:1.5rem; box-shadow:var(--s1); margin-bottom:1.5rem; }
.jtp-sidebar-card h3 { font-size:1rem!important; margin-bottom:.8rem; color:var(--pd)!important; }
.jtp-sidebar-author { display:flex; gap:1rem; align-items:center; }
.jtp-sidebar-author__img { width:65px; height:65px; border-radius:50%; object-fit:cover; flex-shrink:0; display:block!important; }
.jtp-sidebar-author__name { display:block; font-weight:700; color:var(--dark); margin-bottom:.3rem; }
.jtp-sidebar-posts { list-style:none; }
.jtp-sidebar-posts li { margin-bottom:.8rem; padding-bottom:.8rem; border-bottom:1px solid var(--pp); }
.jtp-sidebar-posts li:last-child { border:none; margin:0; padding:0; }
.jtp-sidebar-posts a { display:flex; gap:.75rem; align-items:flex-start; text-decoration:none!important; }
.jtp-sidebar-posts__thumb { width:60px; height:60px; object-fit:cover; border-radius:var(--r1); flex-shrink:0; display:block!important; }
.jtp-sidebar-posts a strong { display:block; font-size:.84rem; color:var(--dark); line-height:1.3; margin-bottom:.15rem; }
.jtp-sidebar-posts a small  { font-size:.74rem; color:var(--soft); }
.jtp-sidebar-posts a:hover strong { color:var(--p); }

/* ---------------------------------------------------------------
   RESPONSIVE — MOBILE FIRST FIXES
   --------------------------------------------------------------- */
@media (max-width:1100px) {
  .jtp-hero { grid-template-columns:1fr; min-height:auto; }
  .jtp-hero__cnt { padding-top:calc(var(--hh) + 2rem); padding-bottom:2.5rem; }
  .jtp-hero__vis { height:55vw; min-height:280px; max-height:480px; }
  .jtp-hero__ov  { background:linear-gradient(to top,rgba(30,17,37,.55) 0%,transparent 55%); }
  .jtp-hero__cnt::before, .jtp-hero__cnt::after { display:none; }
  /* Badge hero mobile : remonté pour ne pas couvrir les visages */
  .jtp-hero__badge {
    bottom:auto;
    top:0.8rem;
    right:0.8rem;
    padding:.7rem 1rem;
    max-width:200px;
    font-size:.75rem;
  }
  .jtp-hero__badge > span { font-size:1.2rem; }
  .jtp-split { grid-template-columns:1fr; }
  .jtp-conc__imgs { height:300px; margin-bottom:2rem; }
  .jtp-eq__photo-w { max-width:380px; margin:0 auto; }
  .jtp-eq__badges { display:none; }
  .jtp-contact { grid-template-columns:1fr; }
  .jtp-footer__grid { grid-template-columns:1fr 1fr; }
  .jtp-galerie { grid-template-columns:repeat(2,1fr); grid-auto-rows:180px; }
  .jtp-galerie__item--large,.jtp-galerie__item--tall { grid-column:span 1; grid-row:span 1; }
  .jtp-single-layout { grid-template-columns:1fr; }
  /* Animaux : 3 par ligne sur tablette */
  .jtp-grid-6 { grid-template-columns:repeat(3,1fr); gap:1rem; }
}

@media (max-width:900px) {
  /* HEADER MOBILE */
  .jtp-header__cta .jtp-hd-cta { display:none; }
  .jtp-header__cta .jtp-tel .jtp-tel__txt { display:none; }
  .jtp-header__cta .jtp-tel { padding:.4rem .55rem; border-radius:50%; width:36px; height:36px; justify-content:center; }
  .jtp-header__cta .jtp-tel svg { width:16px; height:16px; }
}

@media (max-width:768px) {
  :root { --hh:60px; }
  /* ============================================================
     MENU MOBILE — slide-down professionnel
     ============================================================ */
  .jtp-nav {
    display:block;
    position:fixed;
    top:0; left:0; right:0;
    background:#fff;
    z-index:9980;
    /* Masqué par défaut : clip vers le haut */
    transform:translateY(-100%);
    transition:transform .35s cubic-bezier(.4,0,.2,1), box-shadow .35s;
    box-shadow:none;
    padding-top:60px; /* espace pour le header fixe par-dessus */
    overflow:hidden;
  }
  .jtp-nav.is-open {
    transform:translateY(0);
    box-shadow:0 8px 32px rgba(91,45,130,.18);
  }
  .jtp-nav__list {
    flex-direction:column;
    gap:0;
    align-items:stretch;
    width:100%;
    margin:0; padding:.5rem 1.2rem 1.2rem;
    list-style:none;
    display:flex;
  }
  .jtp-nav__list li { width:100%; }
  .jtp-nav__list li a {
    font-size:1rem!important;
    font-weight:600!important;
    padding:.85rem 1.2rem!important;
    text-align:left;
    border-radius:var(--r1)!important;
    display:flex!important;
    align-items:center;
    color:var(--mid)!important;
    border-bottom:1px solid rgba(91,45,130,.06);
    text-decoration:none!important;
    transition:var(--tr);
  }
  .jtp-nav__list li:last-child a { border-bottom:none; }
  .jtp-nav__list li a:hover,
  .jtp-nav__list li.current-menu-item > a {
    color:var(--p)!important;
    background:var(--pp)!important;
    padding-left:1.6rem!important;
  }
  /* CTA contact en bas du menu mobile */
  .jtp-nav::after {
    content:'';
    display:block;
    height:1px;
  }
  .jtp-burger { display:flex; }
  /* Afficher le devis sur mobile dans le CTA */
  .jtp-header__cta .jtp-hd-cta { display:none; }
  .jtp-header__cta { gap:.5rem; }
  /* Logo mobile */
  .jtp-logo__tag { display:none; }
  .jtp-logo__name { font-size:.95rem; }
  /* Grilles mobile */
  .jtp-grid-3 { grid-template-columns:1fr; }
  .jtp-grid-2 { grid-template-columns:1fr; }
  .jtp-steps  { grid-template-columns:1fr 1fr; }
  .jtp-steps::before { display:none; }
  .jtp-hero__stats  { flex-wrap:wrap; gap:1.2rem; justify-content:center; }
  .jtp-stat         { text-align:center; }
  .jtp-hero__btns   { flex-direction:column; align-items:flex-start; }
  .jtp-frow         { grid-template-columns:1fr; }
  .jtp-footer__grid { grid-template-columns:1fr; }
  .jtp-blog-grid    { grid-template-columns:1fr; }
  .jtp-single-nav   { grid-template-columns:1fr; }
  .jtp-galerie      { grid-template-columns:1fr 1fr; }
}

@media (max-width:480px) {
  .jtp-steps   { grid-template-columns:1fr; }
  .jtp-galerie { grid-template-columns:1fr; }
  .jtp-hero__btns .jtp-btn { width:100%; }
}

/* Admin bar */
@media (min-width:601px) {
  .admin-bar .jtp-header { top:32px; }
}
@media (max-width:600px) {
  .admin-bar .jtp-header { top:46px; }
}

/* ---------------------------------------------------------------
   SECTION ANIMAUX — grille adaptative, cartes libres
   --------------------------------------------------------------- */
/* Grille : max 3 colonnes desktop, 2 mobile — cartes hauteur libre */
.jtp-animals-grid {
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1.2rem;
  align-items:start; /* cartes de hauteurs différentes OK */
}

/* Image : ratio natif, image entière visible, aucun crop */
.jtp-acard img {
  width:100% !important;
  height:auto !important;
  display:block !important;
  object-fit:unset !important;
}

/* Carte hommage Chrystal */
.jtp-acard--tribute {
  border:1px solid rgba(224,208,240,.28) !important;
  background:rgba(255,255,255,.04) !important;
}
.jtp-acard--tribute img {
  filter:grayscale(30%) brightness(.9) !important;
}

/* Bulle ange */
.jtp-tribute-bubble {
  position:absolute; top:10px; right:10px;
  width:44px; height:44px; border-radius:50%;
  background:rgba(255,255,255,.2); backdrop-filter:blur(6px);
  border:1.5px solid rgba(255,255,255,.4);
  display:flex; align-items:center; justify-content:center;
  animation:angelFloat 3s ease-in-out infinite;
  z-index:2;
}
.jtp-tribute-angel { font-size:1.35rem; line-height:1; }
@keyframes angelFloat {
  0%,100%{ transform:translateY(0); opacity:.85; }
  50%    { transform:translateY(-5px); opacity:1; }
}
.jtp-acard--tribute .jtp-acard__b h3 {
  background:linear-gradient(135deg,#e0d0f0,#fff,#c8b8e8);
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
}

/* Responsive animaux */
@media(max-width:768px) {
  .jtp-animals-grid { grid-template-columns:repeat(2,1fr); gap:.9rem; }
}
@media(max-width:400px) {
  .jtp-animals-grid { grid-template-columns:1fr; }
}

/* ---------------------------------------------------------------
   GALERIE — images affichées en entier, ratio natif
   --------------------------------------------------------------- */
.jtp-galerie {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1rem;
  margin-top:3rem;
  align-items:start;
}
.jtp-galerie__item {
  border-radius:var(--r2); overflow:hidden; position:relative; cursor:pointer;
}
.jtp-galerie__item img {
  width:100%;
  height:auto !important;      /* image entière, ratio natif */
  display:block !important;
  transition:transform .4s ease;
}
.jtp-galerie__item:hover img { transform:scale(1.03); }
.jtp-galerie__item--large,
.jtp-galerie__item--tall { /* on enlève le span — toutes cartes libres */ }
.jtp-galerie__cap {
  position:absolute; bottom:0; left:0; right:0;
  background:linear-gradient(transparent,rgba(30,17,37,.65));
  color:#fff; padding:.6rem .9rem; font-size:.76rem;
  opacity:0; transition:opacity .3s;
}
.jtp-galerie__item:hover .jtp-galerie__cap { opacity:1; }

@media(max-width:900px) {
  .jtp-galerie { grid-template-columns:repeat(2,1fr); }
}
@media(max-width:480px) {
  .jtp-galerie { grid-template-columns:1fr; }
}

/* ================================================================
   V6 — GALERIE + LIGHTBOX + CARROUSEL TEMOIGNAGES
   ================================================================ */

/* ---------------------------------------------------------------
   GALERIE — reset complet, colonnes propres, légendes lisibles
   --------------------------------------------------------------- */
.jtp-galerie {
  display:grid !important;
  grid-template-columns:repeat(3,1fr) !important;
  grid-auto-rows:auto !important;
  gap:1rem !important;
  margin-top:2.5rem !important;
  align-items:start !important;
}
.jtp-galerie__item {
  border-radius:var(--r2);
  overflow:visible !important;   /* on sort le caption hors de l'item */
  position:relative;
  cursor:pointer;
  display:flex !important;
  flex-direction:column !important;
  background:var(--dark);
  border-radius:var(--r2);
}
.jtp-galerie__item-wrap {
  overflow:hidden;
  border-radius:var(--r2) var(--r2) 0 0;
  position:relative;
}
.jtp-galerie__item img {
  width:100% !important;
  height:auto !important;
  display:block !important;
  object-fit:fill !important;
  transition:transform .4s ease;
}
.jtp-galerie__item:hover img { transform:scale(1.03); }

/* Légende SOUS l'image — toujours visible, jamais masquée */
.jtp-galerie__cap {
  position:static !important;
  opacity:1 !important;
  background:var(--pd) !important;
  color:rgba(255,255,255,.75) !important;
  padding:.5rem .85rem !important;
  font-size:.72rem !important;
  line-height:1.35 !important;
  border-radius:0 0 var(--r2) var(--r2) !important;
  pointer-events:none;
}

/* Responsive galerie */
@media(max-width:900px) {
  .jtp-galerie { grid-template-columns:repeat(2,1fr) !important; }
}
@media(max-width:480px) {
  .jtp-galerie { grid-template-columns:1fr !important; }
}

/* ---------------------------------------------------------------
   LIGHTBOX — plein écran au clic
   --------------------------------------------------------------- */
.jtp-lightbox {
  display:none;
  position:fixed; inset:0; z-index:99999;
  background:rgba(0,0,0,.92);
  align-items:center; justify-content:center;
  padding:1.5rem;
  cursor:zoom-out;
}
.jtp-lightbox.is-open { display:flex; }
.jtp-lightbox img {
  max-width:92vw; max-height:90vh;
  object-fit:contain;
  border-radius:var(--r2);
  box-shadow:0 20px 80px rgba(0,0,0,.7);
  animation:lbIn .25s ease both;
}
.jtp-lb-close {
  position:fixed; top:1.2rem; right:1.5rem;
  background:rgba(255,255,255,.15); color:#fff;
  border:none; border-radius:50%; width:44px; height:44px;
  font-size:1.3rem; cursor:pointer; display:flex;
  align-items:center; justify-content:center;
  transition:background .2s;
}
.jtp-lb-close:hover { background:rgba(255,255,255,.3); }
.jtp-lb-prev, .jtp-lb-next {
  position:fixed; top:50%; transform:translateY(-50%);
  background:rgba(255,255,255,.15); color:#fff;
  border:none; border-radius:50%; width:50px; height:50px;
  font-size:1.4rem; cursor:pointer; display:flex;
  align-items:center; justify-content:center;
  transition:background .2s;
}
.jtp-lb-prev { left:1rem; }
.jtp-lb-next { right:1rem; }
.jtp-lb-prev:hover, .jtp-lb-next:hover { background:rgba(255,255,255,.3); }
@keyframes lbIn { from{opacity:0;transform:scale(.9)} to{opacity:1;transform:scale(1)} }

/* ---------------------------------------------------------------
   TÉMOIGNAGES — carrousel avec défilement automatique
   --------------------------------------------------------------- */
.jtp-s--sable { overflow:hidden; }

/* Wrapper carrousel */
.jtp-temo-carousel {
  position:relative;
  margin-top:2.5rem;
  overflow:hidden;
}
.jtp-temo-track {
  display:flex;
  gap:1.5rem;
  transition:transform .6s cubic-bezier(.4,0,.2,1);
  will-change:transform;
}
.jtp-temo-slide {
  flex:0 0 calc(33.333% - 1rem);
  min-width:0;
}

/* Boutons nav carrousel */
.jtp-temo-nav {
  display:flex; justify-content:center; align-items:center;
  gap:1rem; margin-top:2rem;
}
.jtp-temo-btn {
  width:42px; height:42px; border-radius:50%;
  background:var(--pp); color:var(--p); border:none;
  cursor:pointer; display:flex; align-items:center;
  justify-content:center; font-size:1rem;
  transition:var(--tr);
}
.jtp-temo-btn:hover { background:var(--p); color:#fff; }
.jtp-temo-dots {
  display:flex; gap:.5rem; align-items:center;
}
.jtp-temo-dot {
  width:8px; height:8px; border-radius:50%;
  background:var(--pp); border:none; cursor:pointer;
  transition:var(--tr); padding:0;
}
.jtp-temo-dot.is-active { background:var(--p); transform:scale(1.3); }

/* Responsive carrousel */
@media(max-width:900px) {
  .jtp-temo-slide { flex:0 0 calc(50% - .75rem); }
}
@media(max-width:600px) {
  .jtp-temo-slide { flex:0 0 100%; }
}
.jtp-btn--terra    { background:var(--t); color:#fff!important; box-shadow:0 4px 18px rgba(196,115,74,.35); }
.jtp-btn--terra:hover    { background:#a85d3a; transform:translateY(-2px); }

/* ---------------------------------------------------------------
   RÉSEAUX SOCIAUX — header
   --------------------------------------------------------------- */
.jtp-social {
  display:flex;
  align-items:center;
  gap:.4rem;
}
.jtp-social__btn {
  display:flex;
  align-items:center;
  justify-content:center;
  width:34px; height:34px;
  border-radius:50%;
  color:var(--p);
  background:var(--pp);
  transition:var(--tr);
  text-decoration:none !important;
  border:1.5px solid transparent;
}
.jtp-social__btn:hover {
  background:var(--p);
  color:#fff;
  transform:translateY(-2px);
  box-shadow:0 4px 12px rgba(91,45,130,.3);
}
/* Facebook — couleur au survol */
.jtp-social__btn:first-child:hover { background:#1877F2; border-color:#1877F2; }
/* Instagram — dégradé au survol */
.jtp-social__btn:last-child:hover  { background:linear-gradient(45deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888); border-color:transparent; }

/* Mobile — garder les icônes visibles */
@media (max-width:900px) {
  .jtp-social { gap:.3rem; }
  .jtp-social__btn { width:30px; height:30px; }
  .jtp-social__btn svg { width:15px; height:15px; }
}
@media (max-width:480px) {
  .jtp-social__btn { width:28px; height:28px; }
}
