/* =====================================================================
   Jack's Bootcamp — Prestations (front)
   ===================================================================== */
:root{
  --jbt-org:#F39237; --jbt-red:#AE1F00; --jbt-crm:#F5ECE0; --jbt-g1:#8A7C6D; --jbt-g2:#B7A99A;
  --jbt-brd:#2A2018; --jbt-blk:#0E0D0C; --jbt-ant:#1A1715; --jbt-brs:#241B15; --jbt-pan:#141210;
}

/* Neutralise le conteneur "boxed" / blanc d'Astra sur la fiche prestation */
body.single-jbt_prestation{ background:var(--jbt-blk); overflow-x:hidden; }
/* FULL-BLEED : le bloc prend toute la largeur de l'écran quel que soit le conteneur du thème */
.jbt-single{ width:100vw!important; max-width:100vw!important; position:relative; left:50%; margin-left:-50vw!important; margin-right:-50vw!important; }
body.single-jbt_prestation .site-content,
body.single-jbt_prestation #content,
body.single-jbt_prestation #primary,
body.single-jbt_prestation .ast-container,
body.single-jbt_prestation .ast-page-builder-template .ast-container{ max-width:100%!important; width:100%!important; padding-left:0!important; padding-right:0!important; margin:0!important; }
body.single-jbt_prestation #secondary,
body.single-jbt_prestation .widget-area{ display:none!important; }
body.single-jbt_prestation #primary,
body.single-jbt_prestation .entry-content,
body.single-jbt_prestation .ast-article-single{ margin:0!important; padding:0!important; border:0!important; background:transparent!important; float:none!important; }
body.single-jbt_prestation .entry-header,
body.single-jbt_prestation .ast-single-related-posts-container{ display:none!important; }

/* Archive de catégorie : mêmes neutralisations Astra */
body.tax-jbt_categorie{ background:var(--jbt-blk); overflow-x:hidden; }
body.tax-jbt_categorie #secondary,
body.tax-jbt_categorie .widget-area{ display:none!important; }
body.tax-jbt_categorie .site-content,
body.tax-jbt_categorie #content,
body.tax-jbt_categorie #primary,
body.tax-jbt_categorie .ast-container{ max-width:100%!important; width:100%!important; padding-left:0!important; padding-right:0!important; margin:0!important; float:none!important; }
body.tax-jbt_categorie .page-header,
body.tax-jbt_categorie .ast-archive-description{ display:none!important; }

/* ----- base ----- */
.jbt-single,.jbt-archive{ font-family:'Barlow',sans-serif; color:var(--jbt-g2); }
.jbt-single *,.jbt-archive *{ box-sizing:border-box; }
.jbt-wrap{ max-width:1180px; margin:0 auto; }
.jbt-sec{ padding:clamp(48px,8vw,110px) 6%; background:var(--jbt-blk); }
.jbt-sec-alt{ background:linear-gradient(160deg,#15110D,#0C0B0A); border-top:1px solid var(--jbt-brd); border-bottom:1px solid var(--jbt-brd); }
.jbt-center{ text-align:center; }
.jbt-eyebrow{ display:inline-flex; align-items:center; font-family:'Playfair Display',serif; font-style:italic; color:var(--jbt-g2); font-size:18px; margin:0 0 10px; }
.jbt-eyebrow::before{ content:""; width:34px; height:1px; background:var(--jbt-org); margin-right:12px; flex:0 0 auto; }
.jbt-h2{ font-family:'Oswald',sans-serif; text-transform:uppercase; color:var(--jbt-crm); font-size:clamp(24px,3.2vw,34px); font-weight:700; letter-spacing:1px; margin:0 0 18px; line-height:1.15; }
.jbt-lead{ max-width:620px; margin:0 auto 24px; font-size:16px; line-height:1.7; }
.jbt-prose{ max-width:820px; font-size:16px; line-height:1.85; }
.jbt-prose p{ margin:0 0 14px; } .jbt-prose strong{ color:var(--jbt-crm); }

/* ----- badge / chips / prix / bouton ----- */
.jbt-badge{ display:inline-block; font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:1.5px; font-size:11px; font-weight:600; color:#fff; background:var(--jbt-org); border-radius:20px; padding:6px 14px; margin-bottom:12px; }
.jbt-btn{ display:inline-flex; align-items:center; gap:9px; font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:1.5px; font-size:13px; font-weight:600; color:#fff; background:linear-gradient(95deg,var(--jbt-org),var(--jbt-red)); border:0; border-radius:9px; padding:16px 30px; cursor:pointer; text-decoration:none; box-shadow:0 10px 30px rgba(243,146,55,.28); transition:transform .25s,box-shadow .25s; }
.jbt-btn:hover{ transform:translateY(-2px); box-shadow:0 14px 36px rgba(174,31,0,.35); color:#fff; }
.jbt-btn-lg{ padding:18px 38px; font-size:14px; }

/* ----- HERO ----- */
.jbt-hero-grid{ display:grid; grid-template-columns:45% 55%; gap:40px; align-items:center; }
.jbt-hero-img img{ width:100%; border-radius:14px; display:block; }
.jbt-title{ font-family:'Oswald',sans-serif; text-transform:uppercase; color:var(--jbt-crm); font-size:clamp(30px,4.5vw,46px); font-weight:700; line-height:1.08; margin:0 0 14px; }
.jbt-accroche{ font-size:17px; line-height:1.7; margin:0 0 22px; }
.jbt-chips{ display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-bottom:22px; }
.jbt-chip{ background:var(--jbt-pan); border:1px solid var(--jbt-brd); border-radius:10px; padding:14px 8px; text-align:center; }
.jbt-chip i{ color:var(--jbt-org); font-size:18px; }
.jbt-chip-val{ display:block; font-family:'Oswald',sans-serif; color:var(--jbt-crm); font-weight:600; font-size:15px; margin-top:4px; }
.jbt-chip-lbl{ display:block; font-size:11px; text-transform:uppercase; letter-spacing:.5px; color:var(--jbt-g1); }
.jbt-price{ font-family:'Oswald',sans-serif; color:var(--jbt-org); font-weight:700; font-size:30px; margin:0 0 20px; }
.jbt-price span{ font-size:15px; color:var(--jbt-g1); font-weight:400; }

/* ----- INCLUS ----- */
.jbt-inclus{ list-style:none; padding:0; margin:0; display:grid; grid-template-columns:1fr 1fr; gap:6px 30px; max-width:820px; }
.jbt-inclus li{ display:flex; align-items:flex-start; gap:10px; padding:7px 0; color:var(--jbt-crm); font-size:15px; }
.jbt-inclus i{ color:var(--jbt-org); font-size:17px; margin-top:1px; }

/* ----- GALERIE ----- */
.jbt-gallery{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.jbt-gitem span{ display:block; padding-bottom:75%; background-size:cover; background-position:center; border-radius:12px; border:1px solid var(--jbt-brd); transition:transform .5s; }
.jbt-gitem:hover span{ transform:scale(1.04); }

/* ----- FAQ ----- */
.jbt-faq{ max-width:860px; }
.jbt-faq-item{ border:1px solid var(--jbt-brd); border-radius:10px; background:var(--jbt-pan); margin-bottom:10px; overflow:hidden; }
.jbt-faq-q{ width:100%; display:flex; justify-content:space-between; align-items:center; gap:12px; background:none; border:0; cursor:pointer; padding:16px 18px; text-align:left; font-family:'Oswald',sans-serif; text-transform:uppercase; color:var(--jbt-crm); font-weight:600; font-size:15px; }
.jbt-faq-q i{ color:var(--jbt-org); transition:transform .3s; }
.jbt-faq-item.is-open .jbt-faq-q i{ transform:rotate(45deg); }
.jbt-faq-a{ max-height:0; overflow:hidden; transition:max-height .35s ease; }
.jbt-faq-a p{ margin:0; padding:0 18px 16px; color:var(--jbt-g2); font-size:15px; line-height:1.6; }

/* ----- RESERVATION ----- */
.jbt-reserve{ background:radial-gradient(ellipse at center, rgba(243,146,55,.16), rgba(14,13,12,.85) 78%), #1A1410; }

/* ----- GRILLE / CARTES ----- */
.jbt-filters{ display:flex; flex-wrap:wrap; gap:10px; justify-content:center; margin-bottom:30px; }
.jbt-filter{ font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:1px; font-size:12px; color:var(--jbt-g2); background:none; border:1px solid var(--jbt-brd); border-radius:20px; padding:8px 18px; cursor:pointer; transition:.25s; }
.jbt-filter:hover{ border-color:var(--jbt-org); color:var(--jbt-crm); }
.jbt-filter.is-active{ background:var(--jbt-org); border-color:var(--jbt-org); color:#fff; }
.jbt-grid{ display:grid; gap:20px; }
.jbt-cols-3{ grid-template-columns:repeat(3,1fr); }
.jbt-cols-2{ grid-template-columns:repeat(2,1fr); }
.jbt-card{ display:flex; flex-direction:column; background:var(--jbt-pan); border:1px solid var(--jbt-brd); border-radius:14px; overflow:hidden; text-decoration:none; transition:transform .3s,border-color .3s,box-shadow .3s; }
.jbt-card:hover{ transform:translateY(-5px); border-color:var(--jbt-org); box-shadow:0 16px 40px rgba(174,31,0,.22); }
.jbt-card-img{ display:block; padding-bottom:62%; background-size:cover; background-position:center; }
.jbt-card-body{ padding:20px; display:flex; flex-direction:column; align-items:flex-start; }
.jbt-card-title{ font-family:'Oswald',sans-serif; text-transform:uppercase; color:var(--jbt-crm); font-weight:600; font-size:19px; margin:0 0 8px; }
.jbt-card-desc{ color:var(--jbt-g2); font-size:14px; line-height:1.6; margin-bottom:14px; }
.jbt-card-meta{ color:var(--jbt-g1); font-size:15px; margin-bottom:14px; }
.jbt-card-meta strong{ color:var(--jbt-org); font-size:18px; }
.jbt-card-btn{ font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:1.5px; font-size:12px; font-weight:600; color:var(--jbt-org); display:inline-flex; align-items:center; gap:6px; }
.jbt-empty{ color:var(--jbt-g1); }

/* ----- RESPONSIVE ----- */
@media(max-width:900px){
  .jbt-hero-grid{ grid-template-columns:1fr; }
  .jbt-cols-3{ grid-template-columns:1fr 1fr; }
  .jbt-gallery{ grid-template-columns:1fr 1fr; }
}
@media(max-width:600px){
  .jbt-chips{ grid-template-columns:1fr 1fr; }
  .jbt-cols-3,.jbt-cols-2{ grid-template-columns:1fr; }
  .jbt-inclus{ grid-template-columns:1fr; }
}

/* ----- LISTE COMPACTE (accueil) ----- */
.jbt-list{ display:flex; flex-direction:column; gap:14px; font-family:'Barlow',sans-serif; }
.jbt-list-row{ display:flex; align-items:center; gap:16px; background:linear-gradient(120deg,#1A1410,#120F0C); border:1px solid var(--jbt-brd); border-radius:14px; padding:16px 22px; text-decoration:none; transition:border-color .25s,transform .25s; }
.jbt-list-row:hover{ border-color:var(--jbt-org); transform:translateX(4px); }
.jbt-list-ic{ flex:0 0 auto; width:46px; height:46px; border-radius:50%; background:var(--jbt-pan) center/cover no-repeat; border:1px solid var(--jbt-brd); display:flex; align-items:center; justify-content:center; color:var(--jbt-org); font-size:20px; }
.jbt-list-main{ flex:1; display:flex; flex-direction:column; gap:3px; }
.jbt-list-title{ font-family:'Oswald',sans-serif; text-transform:uppercase; color:var(--jbt-crm); font-weight:600; font-size:17px; letter-spacing:.5px; }
.jbt-list-specs{ color:var(--jbt-g1); font-size:13px; }
.jbt-list-price{ font-family:'Oswald',sans-serif; color:var(--jbt-org); font-weight:700; font-size:26px; flex:0 0 auto; }
@media(max-width:600px){ .jbt-list-price{ font-size:20px; } .jbt-list-row{ padding:14px 16px; gap:12px; } }

/* ============ Vidéo de la prestation ============ */
.jbt-video{ position:relative; width:100%; border:1px solid var(--jbt-brd); border-radius:14px; overflow:hidden; background:#000; box-shadow:0 18px 40px rgba(0,0,0,.45); }
.jbt-video::before{ content:""; display:block; padding-top:56.25%; } /* ratio 16:9 */
.jbt-video iframe,
.jbt-video video{ position:absolute; inset:0; width:100%; height:100%; border:0; display:block; }

/* ============ Document PDF (dans le hero, au-dessus du prix) ============ */
.jbt-pdf-card{ display:flex; align-items:center; gap:14px; width:100%; margin:0 0 18px; padding:12px 16px; background:var(--jbt-pan); border:1px solid var(--jbt-brd); border-radius:12px; text-decoration:none; transition:.2s; }
.jbt-pdf-card:hover{ border-color:var(--jbt-org); background:rgba(243,146,55,.07); }
.jbt-pdf-ico{ flex:0 0 auto; width:40px; height:40px; display:grid; place-items:center; border-radius:9px; background:rgba(243,146,55,.12); border:1px solid rgba(243,146,55,.35); }
.jbt-pdf-ico .ti{ font-size:21px; color:var(--jbt-org); }
.jbt-pdf-txt{ flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.jbt-pdf-name{ font-family:'Oswald',sans-serif; font-weight:600; text-transform:uppercase; letter-spacing:.4px; color:var(--jbt-crm); font-size:13.5px; line-height:1.3; }
.jbt-pdf-meta{ font-family:'Barlow',sans-serif; font-size:11.5px; color:var(--jbt-g1); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.jbt-pdf-dl{ flex:0 0 auto; color:var(--jbt-org); display:flex; }
.jbt-pdf-dl .ti{ font-size:20px; }
.jbt-pdf-card:hover .jbt-pdf-dl{ transform:translateY(2px); transition:transform .2s; }
@media(max-width:520px){ .jbt-pdf-card{ padding:11px 13px; gap:11px; } .jbt-pdf-name{ font-size:12.5px; } }
