/* TC Mon Voyage — frontend.css (phase 1 + 2 + 3 : suggestion/carte/DnD) */
:root {
    --tcmv-dark:   #1A1612;
    --tcmv-terra:  #8B3A1A;
    --tcmv-gold:   #C9973A;
    --tcmv-cream:  #F2EDE4;
    --tcmv-sand:   #A89880;
    --tcmv-bg:     #FAF8F5;
    --tcmv-border: #E8E0D0;
}

.tcmv-page-bg { width: 100%; background: var(--tcmv-bg); }
.tcmv-wrap { max-width: 1180px; margin: 0 auto; padding: 40px 16px 70px; }

.tcmv-header { text-align: center; margin-bottom: 34px; }
.tcmv-h1 { font-family: 'Cormorant Garamond', Georgia, serif; font-size: 32px; font-weight: 700; color: var(--tcmv-dark); margin: 0 0 12px; }
.tcmv-h2 { font-family: 'Cormorant Garamond', Georgia, serif; font-size: 20px; font-weight: 600; color: var(--tcmv-terra); margin: 0 0 14px; text-align: center; }
.tcmv-intro { font-size: 15px; color: #5a5248; max-width: 620px; margin: 0 auto; line-height: 1.6; }

.tcmv-home-cta { text-align: center; margin-top: 30px; }
.tcmv-btn-primary {
    display: inline-block; background: var(--tcmv-terra); color: #fff; font-weight: 700;
    font-size: 14px; padding: 10px 22px; border: none; border-radius: 10px; cursor: pointer;
    box-shadow: 0 4px 14px rgba(139,58,26,.25); transition: background .15s, transform .15s;
}
.tcmv-btn-primary:hover { background: var(--tcmv-gold); transform: translateY(-1px); }
.tcmv-btn-primary:disabled { opacity: .6; cursor: wait; }

.tcmv-existing { margin: 30px 0; padding: 24px; background: #fff; border: 1px solid var(--tcmv-border); border-radius: 12px; }
.tcmv-trip-list { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
.tcmv-trip-link {
    display: inline-block; padding: 9px 16px; background: var(--tcmv-cream); color: var(--tcmv-dark) !important;
    border-radius: 8px; text-decoration: none; font-size: 13px; font-weight: 600; transition: background .15s;
}
.tcmv-trip-link:hover { background: var(--tcmv-gold); color: #fff !important; }

.tcmv-share {
    margin-top: 20px; padding: 16px 20px; background: #fff; border: 1px solid var(--tcmv-border);
    border-radius: 12px; text-align: left; max-width: 560px; margin-left: auto; margin-right: auto;
}
.tcmv-share-label { display: block; font-size: 12.5px; color: #5a5248; margin-bottom: 8px; }
.tcmv-share-row { display: flex; gap: 8px; }
.tcmv-share-input {
    flex: 1; min-width: 0; padding: 9px 12px; border: 1px solid var(--tcmv-border); border-radius: 7px;
    font-size: 12.5px; color: var(--tcmv-dark); background: var(--tcmv-bg);
}
.tcmv-btn-secondary {
    flex-shrink: 0; padding: 9px 16px; background: var(--tcmv-dark); color: #fff; border: none;
    border-radius: 7px; font-size: 12.5px; font-weight: 700; cursor: pointer; transition: background .15s;
}
.tcmv-btn-secondary:hover { background: var(--tcmv-terra); }

.tcmv-loading, .tcmv-empty { text-align: center; color: var(--tcmv-sand); font-style: italic; padding: 30px 0; }

/* ── Barre de suggestion ────────────────────────────────────────────── */
.tcmv-suggest-bar {
    display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: 22px;
    padding: 14px 18px; background: #fff; border: 1px solid var(--tcmv-border); border-radius: 12px;
}
.tcmv-suggest-label { font-size: 13px; font-weight: 700; color: var(--tcmv-terra); margin-right: auto; }
.tcmv-suggest-field { display: flex; align-items: center; gap: 6px; font-size: 11.5px; color: var(--tcmv-sand); text-transform: uppercase; letter-spacing: .03em; }
.tcmv-suggest-field input {
    width: 56px; padding: 6px 8px; border: 1px solid var(--tcmv-border); border-radius: 6px;
    font-size: 13px; color: var(--tcmv-dark); background: var(--tcmv-bg); text-align: center;
}
.tcmv-suggest-btn { white-space: nowrap; }

/* ── Carte ───────────────────────────────────────────────────────────── */
.tcmv-map-wrap {
    margin-bottom: 24px; border-radius: 12px; overflow: hidden; border: 1px solid var(--tcmv-border);
    box-shadow: 0 2px 10px rgba(26,22,18,.08);
}
#tcmv-map { width: 100%; height: 340px; }
.tcmv-map-pin {
    width: 26px; height: 26px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
    color: #fff; font-size: 12px; font-weight: 800; border: 2px solid #fff; box-shadow: 0 2px 6px rgba(0,0,0,.35);
    cursor: pointer;
}
.tcmv-map-wrap .mapboxgl-popup-content { padding: 0; border-radius: 8px; overflow: hidden; }
.tcmv-map-wrap .mapboxgl-popup-close-button {
    z-index: 2; color: #fff; font-size: 15px; background: rgba(26,22,18,.5); border-radius: 50%;
    width: 20px; height: 20px; line-height: 18px; top: 6px; right: 6px;
}
.tcmv-map-popup { width: 200px; }
.tcmv-map-popup-img { width: 100%; height: 90px; object-fit: cover; display: block; }
.tcmv-map-popup-body { padding: 8px 10px 10px; }
.tcmv-map-popup-title { font-size: 12.5px; font-weight: 700; color: var(--tcmv-dark); line-height: 1.3; }
.tcmv-map-popup-sub { font-size: 10.5px; color: var(--tcmv-sand); margin-top: 2px; }
.tcmv-map-popup-link {
    display: inline-block; margin-top: 6px; font-size: 11px; font-weight: 600; color: var(--tcmv-terra);
    text-decoration: none;
}
.tcmv-map-popup-link:hover { text-decoration: underline; }

/* ── Plateau — colonnes par jour ────────────────────────────────────── */
.tcmv-board-wrap { position: relative; }
/* Ancré à hauteur fixe (zone des en-têtes de colonne) plutôt que centré sur
   toute la hauteur du plateau : les colonnes ont un nombre de cards variable
   et peuvent devenir très hautes, ce qui pousserait un centrage vertical
   classique bien en dessous de l'écran visible. */
.tcmv-board-nav {
    position: absolute; top: 54px; z-index: 3;
    width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--tcmv-border);
    background: #fff; color: var(--tcmv-terra); font-size: 20px; line-height: 1; cursor: pointer;
    box-shadow: 0 2px 8px rgba(26,22,18,.15); display: flex; align-items: center; justify-content: center;
    transition: background .15s, color .15s;
}
.tcmv-board-nav:hover { background: var(--tcmv-terra); color: #fff; }
.tcmv-board-nav-prev { left: -6px; }
.tcmv-board-nav-next { right: -6px; }
.tcmv-board { display: flex; gap: 16px; overflow-x: auto; padding-bottom: 8px; align-items: flex-start; scroll-behavior: smooth; }
.tcmv-day-col {
    flex: 0 0 240px; width: 240px; background: #fff; border: 1px solid var(--tcmv-border); border-radius: 12px;
    padding: 14px; display: flex; flex-direction: column; min-height: 120px;
}
.tcmv-day-col--unclassed { background: var(--tcmv-cream); border-style: dashed; }
.tcmv-day-heading {
    font-family: 'Cormorant Garamond', Georgia, serif; font-size: 17px; font-weight: 700;
    color: var(--tcmv-terra); margin: 0 0 12px; padding-bottom: 8px; border-bottom: 3px solid var(--tcmv-border);
}
.tcmv-day-count { font-size: 12px; font-weight: 600; color: var(--tcmv-sand); }

.tcmv-day-col-body { display: flex; flex-direction: column; gap: 10px; flex: 1; min-height: 60px; border-radius: 8px; transition: background .15s; }
.tcmv-day-col-body.is-dragover { background: rgba(201,151,58,.18); outline: 2px dashed var(--tcmv-gold); outline-offset: 4px; }
.tcmv-day-col-empty { font-size: 12px; color: var(--tcmv-sand); font-style: italic; text-align: center; margin: 16px 0; }

.tcmv-item-card {
    position: relative; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--tcmv-border);
    border-radius: 10px; overflow: hidden; box-shadow: 0 1px 6px rgba(26,22,18,.06); cursor: grab;
}
.tcmv-item-card.is-dragging { opacity: .4; }
.tcmv-item-img { width: 100%; height: 100px; object-fit: cover; display: block; background: var(--tcmv-cream); }
.tcmv-item-img-ph { display: flex; align-items: center; justify-content: center; font-size: 24px; }
.tcmv-item-body { padding: 10px 11px 8px; }
.tcmv-item-nom { font-size: 13px; font-weight: 700; color: var(--tcmv-dark); line-height: 1.3; }
.tcmv-item-sub { font-size: 10.5px; color: var(--tcmv-sand); margin-top: 3px; }
.tcmv-item-remove {
    position: absolute; top: 6px; right: 6px; width: 22px; height: 22px; border-radius: 50%;
    background: rgba(26,22,18,.65); color: #fff; border: none; cursor: pointer; font-size: 11px;
    line-height: 1; transition: background .15s;
}
.tcmv-item-remove:hover { background: var(--tcmv-terra); }

.tcmv-item-step {
    position: absolute; top: 6px; left: 6px; width: 20px; height: 20px; border-radius: 50%;
    color: #fff; font-size: 10.5px; font-weight: 700;
    display: flex; align-items: center; justify-content: center; line-height: 1;
    box-shadow: 0 1px 5px rgba(0,0,0,.3);
}

.tcmv-item-link {
    display: inline-block; margin-top: 5px; font-size: 11px; font-weight: 600; color: var(--tcmv-terra);
    text-decoration: none; border-bottom: 1px solid transparent; transition: border-color .15s;
}
.tcmv-item-link:hover { border-color: var(--tcmv-terra); }

/* Repli tactile — le drag-and-drop HTML5 natif ne fonctionne pas au doigt
   sur mobile, ces deux boutons permettent d'atteindre le même résultat. */
.tcmv-item-move {
    display: flex; border-top: 1px solid var(--tcmv-border);
}
.tcmv-move-btn {
    flex: 1; padding: 7px 0; background: var(--tcmv-bg); border: none; color: var(--tcmv-sand);
    font-size: 12px; cursor: pointer; transition: background .15s, color .15s;
}
.tcmv-move-btn:hover { background: var(--tcmv-cream); color: var(--tcmv-terra); }
.tcmv-move-prev { border-right: 1px solid var(--tcmv-border); }

/* ── Publication opt-in ──────────────────────────────────────────────── */
.tcmv-publish-area { margin-top: 18px; text-align: center; }
.tcmv-publish-hint { font-size: 12.5px; color: var(--tcmv-sand); max-width: 480px; margin: 8px auto 0; line-height: 1.5; }
.tcmv-publish-author {
    display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; max-width: 480px;
    margin: 0 auto 12px;
}
.tcmv-publish-input {
    padding: 9px 12px; border: 1px solid var(--tcmv-border); border-radius: 7px;
    font-size: 13px; color: var(--tcmv-dark); background: #fff; font-family: inherit;
}
.tcmv-publish-name, .tcmv-publish-city { flex: 1 1 140px; min-width: 0; }
.tcmv-publish-comment { flex: 1 1 100%; resize: vertical; min-height: 40px; }
.tcmv-publish-status { font-size: 14px; color: var(--tcmv-dark); margin: 0 0 8px; }
.tcmv-publish-status a { color: var(--tcmv-terra); font-weight: 700; text-decoration: none; }
.tcmv-publish-status a:hover { text-decoration: underline; }

/* ── Page publique (carnet publié) ──────────────────────────────────── */
.tcmv-public-wrap { max-width: 760px; }
.tcmv-public-header { text-align: center; margin-bottom: 28px; }
.tcmv-public-eyebrow {
    font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase;
    color: var(--tcmv-gold); margin: 0 0 8px;
}
.tcmv-public-meta { font-size: 13px; color: var(--tcmv-sand); margin: 0 0 16px; }

.tcmv-public-comment {
    max-width: 680px; margin: 0 auto 40px; padding: 18px 22px; background: #fff;
    border: 1px solid var(--tcmv-border); border-left: 4px solid var(--tcmv-gold); border-radius: 8px;
}
.tcmv-public-comment p { margin: 0 0 8px; font-size: 15px; font-style: italic; color: #3a342c; line-height: 1.6; }
.tcmv-public-comment cite { font-size: 12.5px; font-style: normal; color: var(--tcmv-sand); font-weight: 600; }
.tcmv-print-btn { font-size: 12.5px; }

.tcmv-public-wrap .tcmv-map-wrap { margin-bottom: 30px; }

.tcmv-story {
    font-size: 16px; line-height: 1.8; color: #3a342c; max-width: 680px; margin: 0 auto 40px;
}
.tcmv-story h2 {
    font-family: 'Cormorant Garamond', Georgia, serif; font-size: 26px; font-weight: 700;
    color: var(--tcmv-terra); margin: 36px 0 14px; padding-top: 20px; border-top: 2px solid var(--tcmv-border);
}
.tcmv-story h2:first-child { margin-top: 0; padding-top: 0; border-top: none; }
.tcmv-story p { margin: 0 0 16px; }

.tcmv-public-list-section { max-width: 680px; margin: 0 auto 40px; }
.tcmv-public-list-section h2 {
    font-family: 'Cormorant Garamond', Georgia, serif; font-size: 22px; font-weight: 700;
    color: var(--tcmv-dark); margin: 0 0 18px; text-align: center;
}
.tcmv-public-day-title {
    font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em;
    color: var(--tcmv-gold); margin: 22px 0 8px;
}
.tcmv-public-item-list { list-style: none; margin: 0; padding: 0; }
.tcmv-public-item-list li {
    display: flex; align-items: center; gap: 12px;
    padding: 8px 14px 8px 8px; background: #fff; border: 1px solid var(--tcmv-border); border-radius: 8px;
    margin-bottom: 6px; font-size: 14.5px;
}
.tcmv-public-item-thumb {
    flex: 0 0 46px; width: 46px; height: 46px; border-radius: 6px; object-fit: cover; background: var(--tcmv-cream);
}
.tcmv-public-item-thumb--ph {
    display: flex; align-items: center; justify-content: center; font-size: 18px;
}
.tcmv-public-item-text { flex: 1; min-width: 0; }
.tcmv-public-item-list a { color: var(--tcmv-dark); font-weight: 600; text-decoration: none; }
.tcmv-public-item-list a:hover { color: var(--tcmv-terra); }
.tcmv-public-sub { color: var(--tcmv-sand); font-size: 13px; }

/* ── Suggestions à proximité / articles associés (page publique) ─────── */
.tcmv-public-nearby, .tcmv-public-articles { max-width: 900px; margin: 0 auto 44px; }
.tcmv-public-nearby h2, .tcmv-public-articles h2 {
    font-family: 'Cormorant Garamond', Georgia, serif; font-size: 22px; font-weight: 700;
    color: var(--tcmv-dark); margin: 0 0 18px; text-align: center;
}
.tcmv-no-img {
    display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;
    font-size: 22px; background: var(--tcmv-cream); color: var(--tcmv-sand);
}

.tcmv-nearby-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 14px; }
.tcmv-nearby-card {
    position: relative; background: #fff; border: 1px solid var(--tcmv-border); border-radius: 10px;
    overflow: hidden; box-shadow: 0 1px 6px rgba(26,22,18,.06);
}
.tcmv-nearby-img { display: block; aspect-ratio: 4/3; overflow: hidden; }
.tcmv-nearby-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tcmv-nearby-add { position: absolute; top: 8px; right: 8px; }
.tcmv-nearby-body { padding: 9px 11px 11px; display: flex; flex-direction: column; gap: 2px; }
.tcmv-nearby-body a { font-size: 12.5px; font-weight: 700; color: var(--tcmv-dark); text-decoration: none; line-height: 1.3; }
.tcmv-nearby-body a:hover { color: var(--tcmv-terra); }
.tcmv-nearby-sub { font-size: 10.5px; color: var(--tcmv-sand); }

.tcmv-articles-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 14px; }
.tcmv-article-card {
    display: block; background: #fff; border: 1px solid var(--tcmv-border); border-radius: 10px;
    overflow: hidden; box-shadow: 0 1px 6px rgba(26,22,18,.06); text-decoration: none; transition: box-shadow .15s;
}
.tcmv-article-card:hover { box-shadow: 0 4px 14px rgba(26,22,18,.14); }
.tcmv-article-card img { width: 100%; aspect-ratio: 16/10; object-fit: cover; display: block; }
.tcmv-article-card .tcmv-no-img { aspect-ratio: 16/10; }
.tcmv-article-title { display: block; padding: 12px 14px; font-size: 13.5px; font-weight: 700; color: var(--tcmv-dark); line-height: 1.4; }

/* ── Widget location de voiture (conversion affiliée, page publique) ─── */
.tcmv-public-car { max-width: 900px; margin: 0 auto 44px; }

.tcmv-public-footer { text-align: center; padding-top: 24px; border-top: 1px solid var(--tcmv-border); }
.tcmv-public-footer a { color: var(--tcmv-terra); font-weight: 700; text-decoration: none; }
.tcmv-public-footer a:hover { text-decoration: underline; }

/* ── Bloc "derniers carnets publiés" (carrousel, pages carnet uniquement) ──
   Fond sombre aligné sur le footer réel du thème (var(--tcmv-dark)) : ce
   bloc s'affiche juste au-dessus du footer (hook get_footer, voir
   tc-mon-voyage.php), un fond clair y créait une bande visuellement
   décrochée du footer noir du site. */
.tcmv-recent-block { background: var(--tcmv-dark); padding: 34px 16px; }
.tcmv-recent-inner { max-width: 1180px; margin: 0 auto; }
.tcmv-recent-title {
    font-family: 'Cormorant Garamond', Georgia, serif; font-size: 19px; font-weight: 700;
    color: #fff; margin: 0 0 18px; text-align: center;
}
.tcmv-recent-carousel { display: flex; align-items: center; gap: 10px; }
.tcmv-recent-track {
    flex: 1; min-width: 0; display: flex; gap: 14px; overflow-x: auto; scroll-behavior: smooth;
    scroll-snap-type: x proximity; padding-bottom: 4px;
}
.tcmv-recent-card {
    flex: 0 0 220px; scroll-snap-align: start; display: flex; flex-direction: column;
    background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.12); border-radius: 10px;
    overflow: hidden; text-decoration: none; transition: border-color .15s, background .15s;
}
.tcmv-recent-card:hover { border-color: var(--tcmv-gold); background: rgba(255,255,255,.08); }
.tcmv-recent-card-img { position: relative; aspect-ratio: 4/3; background: rgba(255,255,255,.04); }
.tcmv-recent-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tcmv-recent-card-img .tcmv-no-img { background: transparent; color: rgba(255,255,255,.35); }
.tcmv-recent-card-body { padding: 12px 13px 14px; display: flex; flex-direction: column; gap: 6px; }
.tcmv-recent-card-body h4 {
    font-size: 13px; font-weight: 700; color: #fff; margin: 0; line-height: 1.35;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.tcmv-recent-card-quote {
    font-size: 11.5px; font-style: italic; color: rgba(255,255,255,.65); margin: 0; line-height: 1.5;
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.tcmv-recent-card-author { font-style: normal; color: var(--tcmv-gold); font-weight: 600; }
.tcmv-recent-nav {
    flex-shrink: 0; width: 34px; height: 34px; border-radius: 50%; border: none; cursor: pointer;
    background: rgba(255,255,255,.1); color: #fff; font-size: 18px; line-height: 1;
    display: flex; align-items: center; justify-content: center; transition: background .15s;
}
.tcmv-recent-nav:hover { background: var(--tcmv-gold); color: var(--tcmv-dark); }
.tcmv-recent-cta { display: block; width: max-content; margin: 22px auto 0; background: transparent; border: 1px solid rgba(255,255,255,.3); color: #fff; }
.tcmv-recent-cta:hover { background: var(--tcmv-gold); border-color: var(--tcmv-gold); color: var(--tcmv-dark); }

/* ── Badge Tosco — petit avatar en haut à droite du visuel de la card,
   signale sans ambiguïté un carnet composé et publié par Tosco (voir
   TCMV_Tosco), même si les carrousels/grilles séparent déjà nettement les
   deux catégories (voir tcmv-recent-block--tosco ci-dessous) -- une carte
   Tosco isolée (partagée, capture d'écran) reste identifiable seule.
   IMPORTANT : la taille est forcée en !important -- la règle générique
   `.tcmv-recent-card-img img` / `.tcmv-index-card-img img` (width/height
   100%) a une spécificité plus élevée que `.tcmv-tosco-badge-avatar` seule
   et écraserait sinon la taille de l'avatar (bug constaté : l'avatar
   remplissait presque toute la card avant ce correctif). ── */
.tcmv-tosco-badge {
    position: absolute; top: 8px; right: 8px; z-index: 2;
    display: flex; align-items: center; justify-content: center; gap: 4px;
    background: rgba(26,22,18,.82); color: #fff; font-size: 12px; font-weight: 700;
    width: 30px; height: 30px; border-radius: 50%; box-shadow: 0 2px 8px rgba(0,0,0,.3);
}
.tcmv-tosco-badge-avatar {
    width: 30px !important; height: 30px !important; border-radius: 50% !important;
    object-fit: cover !important; display: block !important; flex-shrink: 0;
}
/* Quand l'avatar Tosco charge, l'emoji de repli (si présent dans le markup)
   est masqué -- ici le markup place l'un OU l'autre, pas les deux en même
   temps, donc rien de plus à faire ; règle conservée si un futur appelant
   choisit d'afficher les deux ensemble. */

/* ── Section "carnets Tosco" (carrousel + entête d'index) — léger accent or
   pour la distinguer visuellement de la section lecteurs, en plus de la
   séparation déjà actée par des titres/blocs distincts. ── */
.tcmv-recent-block--tosco { background: linear-gradient(180deg, #2a2117 0%, var(--tcmv-dark) 100%); border-bottom: 2px solid var(--tcmv-gold); }
.tcmv-recent-block--tosco .tcmv-recent-title { color: var(--tcmv-gold); }

/* ── Page d'index /carnet-de-voyage/ (tous les carnets publiés) ──────── */
.tcmv-index-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 18px; margin-top: 30px; }
.tcmv-index-card {
    background: #fff; border: 1px solid var(--tcmv-border); border-radius: 10px; overflow: hidden;
    box-shadow: 0 1px 6px rgba(26,22,18,.06); transition: transform .18s, box-shadow .18s;
}
.tcmv-index-card:hover { transform: translateY(-3px); box-shadow: 0 8px 22px rgba(26,22,18,.12); }
.tcmv-index-card-img { position: relative; display: block; aspect-ratio: 16/9; overflow: hidden; }
.tcmv-index-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tcmv-index-card-body { padding: 14px 16px 16px; }
.tcmv-index-card-body h3 { font-size: 15px; font-weight: 700; color: var(--tcmv-dark); margin: 0 0 6px; line-height: 1.3; }
.tcmv-index-card-body h3 a { color: inherit; text-decoration: none; }
.tcmv-index-card-body h3 a:hover { color: var(--tcmv-terra); }
.tcmv-index-card-meta { font-size: 12px; color: var(--tcmv-sand); margin: 0; }

/* ── Impression / PDF (page publique uniquement) ─────────────────────────
   Plutôt que d'essayer de cacher un par un le header/footer/menu/sidebar du
   thème (dont on ne connaît pas la structure exacte et qui peut changer),
   on cache TOUT le corps de page puis on ne rend visible que le contenu de
   l'article publié — motif classique et robuste pour n'imprimer qu'un seul
   élément, indépendant du markup du thème (Blocksy) ou d'un futur plugin de
   footer. ── */
@media print {
    body * { visibility: hidden; }
    .tcmv-public-wrap, .tcmv-public-wrap * { visibility: visible; }
    .tcmv-public-wrap {
        position: absolute; left: 0; top: 0; width: 100%; max-width: 100%; padding: 0; margin: 0;
    }
    .tcmv-recent-block, .tcmv-print-btn, .tcmv-public-eyebrow, #tcmv-map-wrap,
    .tcmv-public-footer, .tcmv-public-nearby, .tcmv-public-articles, .tcmv-public-car { display: none !important; }
    body, .tcmv-page-bg { background: #fff !important; }
    .tcmv-story, .tcmv-public-list-section { max-width: 100%; }
    .tcmv-story h2 { break-inside: avoid; break-before: auto; }
    .tcmv-public-item-list li { break-inside: avoid; border: none; padding: 4px 0; background: none; }
    a { color: #000 !important; text-decoration: none !important; }
}

@media (max-width: 560px) {
    .tcmv-share-row { flex-direction: column; }
    .tcmv-day-col { flex-basis: 200px; width: 200px; }
    #tcmv-map { height: 260px; }
    .tcmv-board-nav { width: 30px; height: 30px; font-size: 16px; }
    .tcmv-board-nav-prev { left: -4px; }
    .tcmv-board-nav-next { right: -4px; }
    .tcmv-story { font-size: 15px; }
    .tcmv-story h2 { font-size: 21px; }
    .tcmv-recent-card { flex-basis: 170px; }
    .tcmv-recent-nav { width: 28px; height: 28px; font-size: 15px; }
}
