/* tc-bateau — frontend.css
   Palette marine + turquoise, distincte des autres hubs (terracotta restaurants,
   vert/or activités, bordeaux agriturismo, bleu océan circuits). */

:root {
  --tcbat-marine:    #0B3C5D;
  --tcbat-marine-d:  #072A42;
  --tcbat-turq:      #1CA3A3;
  --tcbat-turq-l:    #5CC5C5;
  --tcbat-sand:      #F3F8F9;
  --tcbat-sand-d:    #E3F0F2;
  --tcbat-text:      #1b1b1b;
  --tcbat-muted:     #5a5a5a;
  --tcbat-border:    #dde6ea;
  --tcbat-radius:    12px;
  --tcbat-shadow:    0 2px 14px rgba(11,60,93,.10);
}

.tcbat-icon { flex-shrink: 0; vertical-align: -2px; color: var(--tcbat-turq); }

/* ── Grille ── */
.tcbat-cards-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 24px; margin: 24px 0; }

/* ── Card ── */
.tcbat-card { background: #fff; border-radius: var(--tcbat-radius); box-shadow: var(--tcbat-shadow); overflow: hidden; display: flex; flex-direction: column; transition: transform .18s ease, box-shadow .18s ease; position: relative; }
.tcbat-card:hover { transform: translateY(-3px); box-shadow: 0 6px 24px rgba(11,60,93,.16); }
.tcbat-card-img { position: relative; aspect-ratio: 4 / 3; overflow: hidden; }
.tcbat-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tcbat-card-img-placeholder { height: 120px; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, var(--tcbat-sand), var(--tcbat-sand-d)); }
.tcbat-prix-badge { position: absolute; top: 10px; left: 10px; background: #fff; color: var(--tcbat-marine); font-weight: 700; font-size: 12px; padding: 4px 9px; border-radius: 6px; box-shadow: 0 1px 4px rgba(0,0,0,.15); }
.tcbat-prix-unit { font-weight: 500; opacity: .7; font-size: 11px; }
.tcbat-note-badge { position: absolute; top: 10px; right: 10px; background: var(--tcbat-marine); color: #fff; font-size: 12px; font-weight: 700; padding: 4px 8px 5px; border-radius: 6px; line-height: 1.3; }
.tcbat-note-badge .tcbat-icon { color: #ffd166; }
.tcbat-note-avis { font-weight: 400; opacity: .85; }
.tcbat-type-badge { position: absolute; bottom: 8px; left: 8px; background: rgba(7,42,66,.6); color: #fff; font-size: 11px; padding: 2px 8px; border-radius: 6px; backdrop-filter: blur(4px); display: inline-flex; align-items: center; gap: 4px; }
.tcbat-type-badge .tcbat-icon { color: #fff; }
.tcbat-card-body { padding: 14px 16px 16px; display: flex; flex-direction: column; flex: 1; }
.tcbat-card-title { font-size: 16px; font-weight: 700; margin: 0 0 4px; color: var(--tcbat-text); line-height: 1.3; }
.tcbat-card-ville { font-size: 13px; color: var(--tcbat-muted); margin: 0 0 8px; display: flex; align-items: center; gap: 4px; }
.tcbat-card-meta { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 10px; }
.tcbat-meta-tag { font-size: 11px; background: var(--tcbat-sand); border-radius: 4px; padding: 3px 7px; color: var(--tcbat-marine); display: inline-flex; align-items: center; gap: 4px; }
.tcbat-card-btns { margin-top: auto; display: flex; gap: 8px; flex-wrap: wrap; }
.tcbat-btn-fiche, .tcbat-btn-reserver { display: inline-block; padding: 8px 14px; border-radius: 8px; font-size: 13px; font-weight: 600; text-decoration: none; transition: background .15s; line-height: 1; flex: 1; text-align: center; }
.tcbat-btn-fiche { background: var(--tcbat-marine); color: #fff !important; }
.tcbat-btn-fiche:hover { background: var(--tcbat-marine-d); }
.tcbat-btn-reserver { background: var(--tcbat-turq); color: #fff !important; }
.tcbat-btn-reserver:hover { background: #158585; }

/* ── Card inline (split-view) ── */
.tcbat-card--inline { flex-direction: row; width: 100%; }
.tcbat-card-thumb { width: 180px; min-height: 150px; flex-shrink: 0; overflow: hidden; }
.tcbat-card-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tcbat-card-thumb--empty { display: flex; align-items: center; justify-content: center; background: var(--tcbat-sand); }
.tcbat-card--inline .tcbat-card-body { flex-direction: row; gap: 12px; }
.tcbat-card-info { flex: 1; min-width: 0; }
.tcbat-card-aside { display: flex; flex-direction: column; align-items: center; justify-content: flex-start; gap: 10px; min-width: 76px; }
.tcbat-aside-note-wrap { display: flex; flex-direction: column; align-items: center; }
.tcbat-aside-score { font-size: 22px; font-weight: 800; color: var(--tcbat-marine); line-height: 1; }
.tcbat-aside-score-lbl { font-size: 11px; color: var(--tcbat-muted); text-align: center; }
.tcbat-aside-prix { text-align: center; font-weight: 700; color: var(--tcbat-turq); font-size: 15px; line-height: 1.1; }
.tcbat-aside-prix .tcbat-prix-unit { display: block; font-size: 10px; color: var(--tcbat-muted); font-weight: 500; }
.tcbat-card--inline .tcbat-card-type-label { font-size: 11px; color: var(--tcbat-turq); font-weight: 600; margin-bottom: 4px; display: flex; align-items: center; gap: 4px; }

/* ── Fiche ── */
.tcbat-fiche-wrap { max-width: 960px; margin: 0 auto; padding: 0 16px 90px; }
.tcbat-sticky-cta { position: fixed; left: 0; right: 0; bottom: 0; z-index: 200; background: linear-gradient(135deg, var(--tcbat-marine), var(--tcbat-turq)); box-shadow: 0 -4px 18px rgba(0,0,0,.22); }
.tcbat-sticky-cta-inner { max-width: 960px; margin: 0 auto; padding: 12px 16px; display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.tcbat-sticky-cta-info { display: flex; align-items: baseline; gap: 12px; min-width: 0; flex-wrap: wrap; }
.tcbat-sticky-cta-nom { font-weight: 700; font-size: .95rem; color: #fff; }
.tcbat-sticky-cta-prix { font-size: .9rem; color: #fff; font-weight: 700; }
.tcbat-sticky-cta-prix .tcbat-prix-unit { color: rgba(255,255,255,.75); font-weight: 400; }
.tcbat-sticky-cta-note { font-size: .82rem; color: #ffd166; font-weight: 600; }
.tcbat-sticky-cta-btn { display: inline-flex; align-items: center; white-space: nowrap; background: #fff; color: var(--tcbat-marine) !important; font-weight: 700; font-size: .85rem; padding: 9px 20px; border-radius: 8px; text-decoration: none; transition: background .2s, transform .15s; }
.tcbat-sticky-cta-btn:hover { background: var(--tcbat-sand-d); transform: translateY(-1px); }

.tcbat-fiche-hero { position: relative; height: 420px; border-radius: var(--tcbat-radius); overflow: hidden; margin-bottom: 24px; }
.tcbat-fiche-hero img { width: 100%; height: 100%; object-fit: cover; }
.tcbat-fiche-hero-overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(7,42,66,.75) 0%, transparent 55%); }
.tcbat-fiche-hero-caption { position: absolute; bottom: 24px; left: 24px; right: 24px; color: #fff; }
.tcbat-fiche-hero-caption h1 { font-size: 32px; margin: 0; text-shadow: 0 2px 8px rgba(0,0,0,.4); color: #fff; }
.tcbat-fiche-title-fallback { font-size: 28px; margin: 0 0 20px; }

.tcbat-fiche-meta { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 20px; }
.tcbat-fiche-badge { display: inline-flex; align-items: center; gap: 5px; padding: 6px 12px; border-radius: 8px; font-size: 13px; font-weight: 600; }
.tcbat-fiche-badge-type { background: var(--tcbat-sand-d); color: var(--tcbat-marine); }
.tcbat-fiche-badge-addr { background: #f4f4f4; color: var(--tcbat-muted); }
.tcbat-fiche-badge-cap  { background: var(--tcbat-sand); color: var(--tcbat-marine); }
.tcbat-fiche-badge-opt  { background: #e8f7f7; color: #0f6b6b; }
.tcbat-fiche-price-box { margin-left: auto; background: var(--tcbat-marine); color: #fff; border-radius: 10px; padding: 8px 16px; display: flex; flex-direction: column; align-items: flex-end; line-height: 1.2; }
.tcbat-fiche-price-box .tcbat-prix-val { font-size: 24px; font-weight: 900; }
.tcbat-fiche-price-box .tcbat-prix-unit { font-size: 12px; opacity: .85; }
.tcbat-fiche-price-box small { font-size: 10px; opacity: .7; margin-top: 2px; }

.tcbat-fiche-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 10px; margin: 0 0 28px; }
.tcbat-fiche-gallery a { display: block; border-radius: 10px; overflow: hidden; aspect-ratio: 4 / 3; }
.tcbat-fiche-gallery img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .25s; }
.tcbat-fiche-gallery a:hover img { transform: scale(1.04); }

.tcbat-fiche-content { line-height: 1.7; margin-bottom: 28px; }
.tcbat-fiche-content p { margin: 0 0 14px; }
.tcbat-fiche-content h2 { font-size: 22px; margin: 26px 0 10px; color: var(--tcbat-marine); }

/* Pastille prix + note globale (17/10/2026, gabarit identique à la fiche hébergement : tc-fiche-v2 lit ces deux blocs) */
.tcbat-fiche-badge-prix { background: var(--tcbat-marine); color: #fff; font-weight: 700; }
.tcbat-fiche-score-global { margin-left: auto; display: flex; align-items: center; gap: 10px; }
.tcbat-fiche-score-circle { width: 52px; height: 52px; border-radius: 50%; background: var(--tcbat-turq); color: #fff; font-weight: 900; font-size: 18px; display: flex; align-items: center; justify-content: center; box-shadow: var(--tcbat-shadow); }
.tcbat-fiche-score-lbl { font-size: 12px; line-height: 1.25; color: var(--tcbat-muted); font-weight: 600; }
.tcbat-fiche-score-lbl small { font-size: 11px; font-weight: 400; }

/* Caractéristiques + équipements : deux boîtes « points-box » (même gabarit que tc-hebergement-alt) */
.tcbat-fiche-specs-section { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; margin: 28px 0; }
.tcbat-fiche-points-box { background: #fff; border: 1px solid var(--tcbat-border); border-radius: var(--tcbat-radius); box-shadow: var(--tcbat-shadow); padding: 18px 20px; }
.tcbat-fiche-points-box h4 { margin: 0 0 10px; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--tcbat-turq); }
.tcbat-fiche-points-box ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 7px; }
.tcbat-fiche-points-box li { display: flex; align-items: center; gap: 9px; font-size: 14px; }
.tcbat-fiche-points-box li svg { flex: 0 0 auto; color: var(--tcbat-turq); }
.tcbat-spec-k { color: var(--tcbat-muted); }
.tcbat-spec-v { margin-left: auto; font-weight: 700; color: var(--tcbat-marine); text-align: right; }
.tcbat-fiche-related h3 { font-size: 20px; margin-bottom: 14px; display: flex; align-items: center; gap: 8px; }

/* Carte du port de départ (même bloc « *-fiche-map-wrap » que les autres hubs) */
.tcbat-fiche-map-wrap { margin: 28px 0; background: #fff; border: 1px solid var(--tcbat-border); border-radius: var(--tcbat-radius); overflow: hidden; box-shadow: var(--tcbat-shadow); }
.tcbat-fiche-map-wrap h3 { margin: 0; padding: 14px 20px 0; font-size: 17px; }
.tcbat-fiche-gmap { display: block; width: 100%; height: 320px; border: 0; margin-top: 10px; }

.tcbat-fiche-cta { background: linear-gradient(135deg, var(--tcbat-marine), var(--tcbat-turq)); color: #fff; border-radius: var(--tcbat-radius); padding: 24px 28px; margin: 28px 0; text-align: center; }
.tcbat-fiche-cta p { margin: 0 0 14px; font-size: 16px; font-weight: 600; }
.tcbat-fiche-cta-btn { display: inline-block; background: #fff; color: var(--tcbat-marine) !important; padding: 13px 28px; border-radius: 10px; font-weight: 700; font-size: 15px; text-decoration: none; transition: background .15s; }
.tcbat-fiche-cta-btn:hover { background: var(--tcbat-sand-d); }
.tcbat-fiche-cta-note { font-size: 11px !important; color: rgba(255,255,255,.7) !important; font-style: italic; margin: 10px 0 0 !important; font-weight: 400 !important; }

.tcbat-fiche-related { margin-top: 36px; }
.tcbat-fiche-related > .tcag-cards-grid { margin-top: 0; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 16px; }
.tcbat-fiche-related-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 16px; }
.tcbat-fiche-related-card { background: #fff; border-radius: 10px; box-shadow: var(--tcbat-shadow); overflow: hidden; position: relative; }
.tcbat-fiche-related-card img { width: 100%; height: 120px; object-fit: cover; display: block; }
.tcbat-fiche-related-card-body { padding: 10px 12px 12px; }
.tcbat-fiche-related-nom { font-size: 14px; font-weight: 700; margin-bottom: 2px; }
.tcbat-fiche-related-addr { font-size: 12px; color: var(--tcbat-muted); margin-bottom: 8px; }
.tcbat-fiche-related-stretched::after { content: ''; position: absolute; inset: 0; }
.tcbat-fiche-related-stretched { font-size: 13px; color: var(--tcbat-turq) !important; font-weight: 600; text-decoration: none; }

.tcbat-fiche-heb-zone { margin: 28px 0; }
.tcbat-fiche-heb-zone-card { display: flex; align-items: center; gap: 16px; background: #fff; border: 1.5px solid var(--tcbat-border); border-radius: var(--tcbat-radius); box-shadow: var(--tcbat-shadow); padding: 18px 22px; text-decoration: none; transition: border-color .2s, box-shadow .2s; }
.tcbat-fiche-heb-zone-card:hover { border-color: var(--tcbat-turq); box-shadow: 0 4px 20px rgba(11,60,93,.15); }
.tcbat-fiche-heb-zone-text { flex: 1; display: flex; flex-direction: column; gap: 3px; }
.tcbat-fiche-heb-zone-title { font-size: .95rem; font-weight: 700; color: var(--tcbat-text); }
.tcbat-fiche-heb-zone-sub { font-size: .8rem; color: var(--tcbat-muted); }
.tcbat-fiche-heb-zone-arrow { font-size: 1.2rem; color: var(--tcbat-turq); transition: transform .2s; }
.tcbat-fiche-heb-zone-card:hover .tcbat-fiche-heb-zone-arrow { transform: translateX(4px); }

/* ── Filterbar ── */
.tcbat-filterbar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 12px 16px; background: #fff; border-radius: var(--tcbat-radius); box-shadow: var(--tcbat-shadow); margin: 16px 0; position: relative; }
.tcbat-fb-item { position: relative; }
.tcbat-fb-btn { display: flex; align-items: center; gap: 6px; padding: 8px 12px; border: 1.5px solid var(--tcbat-border); border-radius: 8px; background: #fff; cursor: pointer; font-size: 13px; font-weight: 600; color: var(--tcbat-text); transition: border-color .15s, background .15s; white-space: nowrap; }
.tcbat-fb-btn:hover, .tcbat-fb-item--open .tcbat-fb-btn { border-color: var(--tcbat-turq); background: var(--tcbat-sand); }
.tcbat-fb-item--active .tcbat-fb-btn { border-color: var(--tcbat-marine); background: var(--tcbat-marine); color: #fff; }
.tcbat-fb-item--active .tcbat-fb-btn .tcbat-icon { color: #fff; }
.tcbat-fb-chevron { transition: transform .15s; }
.tcbat-fb-item--open .tcbat-fb-chevron { transform: rotate(180deg); }
.tcbat-fb-panel { position: absolute; top: calc(100% + 6px); left: 0; background: #fff; border: 1px solid var(--tcbat-border); border-radius: 10px; box-shadow: 0 8px 28px rgba(0,0,0,.12); padding: 8px 0; min-width: 220px; z-index: 100; }
.tcbat-fb-option { display: flex; align-items: center; gap: 8px; padding: 7px 14px; cursor: pointer; font-size: 13px; transition: background .1s; white-space: nowrap; }
.tcbat-fb-option:hover { background: var(--tcbat-sand); }
.tcbat-fb-panel--cols { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 8px; min-width: 380px; max-width: calc(100vw - 28px); max-height: 360px; overflow-y: auto; }
.tcbat-fb-panel--cols[hidden] { display: none; }
.tcbat-fb-panel--cols .tcbat-fb-option--all { grid-column: 1 / -1; font-weight: 600; border-bottom: 1px solid var(--tcbat-border); margin-bottom: 4px; padding-bottom: 9px; }
.tcbat-fb-order select { padding: 8px 10px; border: 1.5px solid var(--tcbat-border); border-radius: 8px; font-size: 13px; font-weight: 600; cursor: pointer; background: #fff; }
.tcbat-fb-reset { padding: 6px 12px; background: #fde8e8; color: #c00; border: none; border-radius: 8px; font-size: 12px; cursor: pointer; font-weight: 600; }
.tcbat-fb-reset:hover { background: #f5c6c6; }
.tcbat-results-bar { display: flex; justify-content: space-between; align-items: center; font-size: 13px; color: var(--tcbat-muted); margin: 0 2px 4px; }
#tcbat-no-results { text-align: center; padding: 40px 20px; color: var(--tcbat-muted); font-size: 16px; }

/* ── Recherche ── */
.tcbat-hero-search { position: relative; margin-bottom: 16px; }
.tcbat-search-input-wrap { display: flex; align-items: center; background: #fff; border: 1.5px solid var(--tcbat-border); border-radius: var(--tcbat-radius); padding: 0 14px; gap: 10px; box-shadow: var(--tcbat-shadow); transition: border-color .2s; }
.tcbat-search-input-wrap:focus-within { border-color: var(--tcbat-turq); }
.tcbat-search-icon { color: var(--tcbat-muted); flex-shrink: 0; line-height: 1; }
.tcbat-search-input { flex: 1; border: none; outline: none; background: transparent; font-size: 1rem; color: var(--tcbat-text); padding: 15px 0; min-width: 0; }
.tcbat-search-clear { background: none; border: none; cursor: pointer; font-size: 1.3rem; color: var(--tcbat-muted); line-height: 1; padding: 0 2px; }
.tcbat-autocomplete { position: absolute; top: calc(100% + 5px); left: 0; right: 0; background: #fff; border: 1px solid var(--tcbat-border); border-radius: var(--tcbat-radius); box-shadow: 0 10px 32px rgba(0,0,0,.16); z-index: 100; overflow: hidden; }
.tcbat-ac-list { list-style: none; margin: 0; padding: 6px 0; }
.tcbat-ac-item { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 16px; cursor: pointer; }
.tcbat-ac-item:hover { background: var(--tcbat-sand); }
.tcbat-ac-nom { font-size: .9rem; font-weight: 600; color: var(--tcbat-text); flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tcbat-ac-meta { font-size: .75rem; color: var(--tcbat-muted); white-space: nowrap; }

/* ── Split-view ── */
.tcbat-split-layout { display: flex; align-items: flex-start; gap: 28px; margin-bottom: 40px; }
.tcbat-split-hint { display: flex; align-items: center; gap: 6px; margin: 0 0 14px; font-size: .78rem; font-style: italic; color: var(--tcbat-muted); }
.tcbat-split-list { flex: 1 1 56%; min-width: 0; }
.tcbat-split-cards { grid-template-columns: 1fr; }
.tcbat-split-cards .tcbat-card--inline { margin-bottom: 20px; }
.tcbat-split-map { flex: 1 1 44%; min-width: 0; position: sticky; top: 20px; align-self: flex-start; }
.tcbat-split-map .tc-map-instance { border-radius: 14px; overflow: hidden; border: 1px solid var(--tcbat-border); box-shadow: 0 10px 34px rgba(0,0,0,.16); }
.tcbat-split-list .tcbat-card--inline { transition: transform .18s, box-shadow .18s, border-color .18s; border: 1.5px solid transparent; }
.tcbat-split-list .tcbat-card--inline:hover, .tcbat-split-list .tcbat-card--inline.is-hovered { transform: translateY(-2px); border-color: var(--tcbat-turq-l); box-shadow: 0 10px 28px rgba(28,163,163,.28); }
@media (max-width: 1024px) {
  .tcbat-split-layout { flex-direction: column-reverse; gap: 20px; }
  .tcbat-split-map { position: static; width: 100%; }
  .tcbat-split-map .tc-map-instance { height: 360px !important; }
}

/* ── Header SEO / bas de page ── */
.tcbat-seo-wrap { max-width: 1200px; margin: 0 auto; padding: 0 16px 60px; }
.tcbat-seo-header { margin: 20px 0; }
.tcbat-seo-h1 { font-size: 30px; margin: 0 0 8px; color: var(--tcbat-marine); }
.tcbat-seo-intro { color: var(--tcbat-muted); font-size: 15px; }
.tcbat-seo-bottom { background: #fff; border-radius: var(--tcbat-radius); padding: 22px 26px; margin: 30px 0; line-height: 1.7; box-shadow: var(--tcbat-shadow); }
/* Article-conteneur (guide) tout en bas de la racine du hub — TCBAT_Article, 18/10/2026. Même disposition et même
   gabarit de lecture que la cave à vin (.tcvin-cols / .tcvin-art / .tcvin-side) : article + « Pour aller plus loin » à
   gauche, sidebar collante « Nos autres comparatifs » à droite, aux couleurs marine / turquoise du hub. */
.tcbat-guide-link { margin-left: auto; font-style: normal; font-weight: 700; color: var(--tcbat-marine) !important; text-decoration: none; white-space: nowrap; }
.tcbat-guide-link:hover { color: var(--tcbat-turq) !important; }
.tcbat-i { width: 1.1em; height: 1.1em; flex: 0 0 auto; vertical-align: -.16em; }
.tcbat-cols { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 30px; align-items: start; margin: 48px 0 0; scroll-margin-top: 90px; }
.tcbat-main { display: flex; flex-direction: column; gap: 26px; min-width: 0; }
.tcbat-articles-wrap { margin: 0; }
.tcbat-side { position: sticky; top: 96px; align-self: start; min-width: 0; }
body.admin-bar .tcbat-side { top: 128px; }
.tcbat-box { background: #fff; border: 1px solid var(--tcbat-border); border-radius: 16px; padding: 18px; box-shadow: var(--tcbat-shadow); }
.tcbat-box-t { display: block; font-size: .74rem; letter-spacing: .09em; text-transform: uppercase; color: var(--tcbat-muted); font-weight: 800; margin: 0 0 12px; }
.tcbat-hubs { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.tcbat-hubs li { margin: 0; }
.tcbat-hubs li + li { border-top: 1px dashed var(--tcbat-border); }
.tcbat-hubs a { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 10px 2px; color: var(--tcbat-marine); font-weight: 600; font-size: .9rem; text-decoration: none; transition: color .15s; }
.tcbat-hubs a:hover { color: var(--tcbat-turq); }
.tcbat-hubs .tcbat-i { color: var(--tcbat-turq); }
@media (max-width: 900px) {
  .tcbat-cols { grid-template-columns: minmax(0, 1fr); margin-top: 36px; }
  .tcbat-side { position: static; }
}
.tcbat-art { background: linear-gradient(180deg, #fff, var(--tcbat-sand)); border: 1px solid var(--tcbat-border); border-radius: 20px; box-shadow: 0 10px 30px rgba(11,60,93,.10); overflow: hidden; margin: 0; }
.tcbat-art--seo { border-color: var(--tcbat-turq-l); }
.tcbat-art-h { padding: 28px 34px 20px; border-bottom: 1px solid var(--tcbat-border); background: linear-gradient(120deg, rgba(28,163,163,.14), rgba(11,60,93,.04)); }
.tcbat-art-k { display: inline-block; font-size: .7rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--tcbat-turq); margin-bottom: 6px; }
.tcbat-art-t { font-size: 1.7rem; line-height: 1.2; margin: 0; color: var(--tcbat-marine); text-wrap: balance; }
.tcbat-art-c { padding: 30px 34px 32px; font-size: 1rem; line-height: 1.75; color: #22262a; overflow-wrap: break-word; }
.tcbat-art-c > *:first-child { margin-top: 0; }
.tcbat-art-c h2, .tcbat-art-c h3, .tcbat-art-c h4, .tcbat-art-c h5, .tcbat-art-c h6 { color: var(--tcbat-marine); line-height: 1.25; margin: 1.7em 0 .55em; }
.tcbat-art-c h2 { font-size: 1.55rem; padding-bottom: .35em; border-bottom: 2px solid rgba(28,163,163,.45); }
.tcbat-art-c h3 { font-size: 1.3rem; }
.tcbat-art-c h4 { font-size: 1.12rem; color: var(--tcbat-marine-d); }
.tcbat-art-c h5, .tcbat-art-c h6 { font-size: 1rem; }
.tcbat-art-c p { margin: 0 0 1.05em; }
.tcbat-art-c a { color: var(--tcbat-marine); text-decoration: underline; text-decoration-color: var(--tcbat-turq); text-underline-offset: 2px; }
.tcbat-art-c ul, .tcbat-art-c ol { margin: 0 0 1.1em 1.3em; padding: 0; }
.tcbat-art-c li { margin: .25em 0; }
.tcbat-art-c img { max-width: 100%; height: auto; border-radius: 12px; }
.tcbat-art-c figure { margin: 1.4em 0; }
.tcbat-art-c figcaption { font-size: .8rem; color: var(--tcbat-muted); text-align: center; margin-top: 6px; }
.tcbat-art-c blockquote { margin: 1.4em 0; padding: 14px 20px; border-left: 4px solid var(--tcbat-turq); background: rgba(28,163,163,.08); border-radius: 0 12px 12px 0; }
.tcbat-art-c table { width: 100%; border-collapse: collapse; font-size: .9rem; margin: 1.3em 0; display: block; overflow-x: auto; }
.tcbat-art-c th, .tcbat-art-c td { border: 1px solid var(--tcbat-border); padding: 9px 12px; text-align: left; }
.tcbat-art-c th { background: var(--tcbat-sand-d); color: var(--tcbat-marine); }
.tcbat-art-c .wp-block-button__link { background: var(--tcbat-marine); color: #fff; border-radius: 10px; text-decoration: none; }
@media (max-width: 680px) {
  .tcbat-art-h { padding: 22px 18px 16px; }
  .tcbat-art-c { padding: 20px 18px 26px; }
  .tcbat-art-t { font-size: 1.35rem; }
  .tcbat-art-c h2 { font-size: 1.3rem; }
}
.tcbat-seo-footer-nav { background: #fff; border: 1px solid var(--tcbat-border); border-radius: 22px; box-shadow: var(--tcbat-shadow); padding: 26px 28px 30px; margin: 40px 0; }
.tcbat-seo-footer-nav > p { margin: 0 0 18px; font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; color: var(--tcbat-marine); }
.tcbat-seo-footer-cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px 20px; }
.tcbat-seo-footer-col-heading { display: block; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--tcbat-muted); margin-bottom: 10px; }
.tcbat-seo-footer-col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.tcbat-seo-footer-col li { display: contents; }
.tcbat-seo-footer-col a { display: inline-flex; align-items: center; gap: 5px; background: var(--tcbat-sand); color: var(--tcbat-marine) !important; font-size: 13px; font-weight: 600; text-decoration: none; padding: 7px 14px; border-radius: 999px; transition: background .15s, color .15s; }
.tcbat-seo-footer-col a:hover { background: var(--tcbat-turq); color: #fff !important; }
.tcbat-seo-footer-col a:hover .tcbat-icon { color: #fff; }
.tcbat-seo-footer-col a.is-current { background: var(--tcbat-marine); color: #fff !important; }
.tcbat-seo-footer-col a.is-current .tcbat-icon { color: #fff; }
.tcbat-fnav-count { opacity: .68; font-weight: 500; }

/* ── Jump button ── */
.tcbat-jump-footer { position: fixed; right: 24px; bottom: 24px; z-index: 500; display: inline-flex; align-items: center; gap: 6px; padding: 11px 20px; border: none; border-radius: 30px; background: var(--tcbat-marine); color: #fff; font-family: inherit; font-size: .84rem; font-weight: 600; box-shadow: 0 6px 20px rgba(0,0,0,.25); cursor: pointer; opacity: 0; transform: translateY(10px); pointer-events: none; transition: opacity .2s, transform .2s; }
.tcbat-jump-footer.is-visible { opacity: 1; transform: translateY(0); pointer-events: auto; }
.tcbat-jump-footer:hover { background: var(--tcbat-marine-d); }

/* ── Pagination ── */
.tcbat-pagination { display: none; align-items: center; justify-content: center; gap: 6px; flex-wrap: wrap; margin: 28px 0 8px; }
.tcbat-pg-btn { display: inline-flex; align-items: center; justify-content: center; min-width: 34px; height: 34px; padding: 0 10px; border: 1.5px solid var(--tcbat-border); border-radius: 8px; background: #fff; font-size: .84rem; font-weight: 600; color: var(--tcbat-text); cursor: pointer; }
.tcbat-pg-btn:hover:not([disabled]) { border-color: var(--tcbat-turq); background: var(--tcbat-sand); }
.tcbat-pg-btn.is-current { background: var(--tcbat-marine); border-color: var(--tcbat-marine); color: #fff; }
.tcbat-pg-btn[disabled] { opacity: .35; cursor: default; }
.tcbat-pg-pages { display: inline-flex; align-items: center; gap: 6px; }
.tcbat-pg-ellipsis { color: var(--tcbat-muted); font-size: .84rem; padding: 0 2px; }

/* ── Responsive ── */
@media (max-width: 680px) {
  .tcbat-cards-grid { grid-template-columns: 1fr; }
  .tcbat-card--inline { flex-direction: column; }
  .tcbat-card-thumb { width: 100%; height: 180px; min-height: auto; }
  .tcbat-card--inline .tcbat-card-body { flex-direction: column; }
  .tcbat-card-aside { flex-direction: row; justify-content: space-between; width: 100%; }
  .tcbat-fiche-hero { height: 260px; }
  .tcbat-fiche-hero-caption h1 { font-size: 22px; }
  .tcbat-filterbar { padding: 8px 10px; }
  .tcbat-fb-panel--cols { grid-template-columns: 1fr; min-width: 0; }
  .tcbat-fiche-price-box { margin-left: 0; width: 100%; align-items: flex-start; }
  .tcbat-seo-footer-nav { padding: 20px 18px 24px; border-radius: 18px; }
  .tcbat-seo-footer-cols { grid-template-columns: 1fr; gap: 22px; }
  .tcbat-sticky-cta-inner { flex-direction: column; align-items: stretch; gap: 8px; padding: 10px 14px; }
  .tcbat-sticky-cta-info { justify-content: center; gap: 8px; }
  .tcbat-sticky-cta-btn { justify-content: center; }
  .tcbat-fiche-wrap { padding-bottom: 110px; }
  .tcbat-jump-footer { right: 14px; bottom: 14px; padding: 9px 16px; font-size: .78rem; }
}
@media (prefers-reduced-motion: reduce) { .tcbat-card, .tcbat-fb-chevron, .tcbat-jump-footer { transition: none; } }
