*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{ margin:0; background:var(--paper); -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; font-family:var(--font-body); }
::selection{ background:var(--color-accent); color:#fff; }
.tcc-page a{ color:inherit; }
select.tcc-f::-ms-expand{ display:none; }
.tcc-faq [data-faq-toggle]:focus-visible{ outline:2px solid var(--color-accent); outline-offset:2px; }

input.tcc-in, textarea.tcc-in{ font-family:var(--font-body); font-size:16px; color:var(--text-strong); background:#fff; border:1px solid var(--border-strong); border-radius:10px; padding:12px 14px; width:100%; }
input.tcc-in:focus, textarea.tcc-in:focus{ outline:none; border-color:var(--slate-500); box-shadow:var(--focus-ring); }

.tcc-annonce-desc p{ font-size:16.5px; line-height:1.75; color:var(--text-body); margin:0 0 14px; }
.tcc-annonce-desc p:last-child{ margin-bottom:0; }

.tcc-activity-card:hover{ transform:translateY(-4px); box-shadow:0 14px 28px rgba(15,20,28,.12); }

/* Une caractéristique clé non renseignée ne doit pas apparaître sur la fiche
 * (un « — » se lit comme une information manquante, pas comme « sans objet »). */
.tcc-fiche-facts > [data-empty]{ display:none; }

/* Cartes de biens : le pied (prix + « Voir ») reste calé en bas quelle que
 * soit la longueur du titre — la carte est une colonne flex qui occupe toute
 * la hauteur de sa cellule de grille, le corps absorbe l'espace libre.
 * Le masque radial force Safari à respecter les angles arrondis pendant la
 * transformation au survol (sans lui, les coins du haut redeviennent droits). */
.tcc-annonce-card{ display:flex !important; flex-direction:column; height:100%; box-sizing:border-box; isolation:isolate; -webkit-mask-image:-webkit-radial-gradient(#fff, #000); transform:translateZ(0); }
.tcc-annonce-card > .tcc-annonce-card-body{ flex:1 1 auto; }
.tcc-annonce-card > .tcc-annonce-card-foot{ margin-top:auto !important; }

/* Fiche bien : titres de section mis en évidence (trait accent), et
 * caractéristiques regroupées en encadrés à bandeau, deux colonnes qui se
 * remplissent en continu — la présentation de la fiche commerciale TCC. */
.tcc-fiche-h2{ font-family:var(--font-display); font-size:26px; font-weight:700; letter-spacing:-0.01em; line-height:1.2; color:var(--text-strong); margin:0 0 22px; padding-bottom:12px; position:relative; }
.tcc-fiche-h2::after{ content:""; position:absolute; left:0; bottom:0; width:44px; height:3px; border-radius:2px; background:var(--color-accent); }
.tcc-criteres-familles{ columns:2; column-gap:20px; }
.tcc-critere-famille{ display:inline-block; width:100%; break-inside:avoid; margin:0 0 20px; background:#fff; border:1px solid var(--border); border-radius:14px; overflow:hidden; box-shadow:var(--shadow-sm); }
.tcc-critere-famille-heading{ background:var(--slate-700); color:#fff; font-family:var(--font-display); font-size:13.5px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; padding:10px 18px; }
.tcc-criteres-grid{ padding:4px 18px 6px; }
.tcc-critere-row{ display:flex; justify-content:space-between; align-items:baseline; gap:16px; padding:10px 0; border-bottom:1px solid var(--border); }
.tcc-critere-row:last-child{ border-bottom:none; }
.tcc-critere-label{ font-size:14.5px; color:var(--text-muted); }
.tcc-critere-value{ font-size:14.5px; font-weight:600; color:var(--text-strong); text-align:right; min-width:0; overflow-wrap:anywhere; }

input.tcc-num{ font-family:var(--font-body); font-size:17.5px; color:var(--text-strong); background:#FFFBEB; border:1px solid var(--border-strong); border-radius:10px; padding:12px 14px; width:100%; }
input.tcc-num:focus{ outline:none; border-color:var(--slate-500); box-shadow:var(--focus-ring); background:#fff; }
/* Cellule à compléter du tableau d'estimation (les « cellules en jaune »). */
input.tcc-cell{ font-family:var(--font-body); font-size:16px; font-weight:600; color:var(--text-strong); background:#FFFBEB; border:1px solid #E7C84B; border-radius:8px; padding:9px 12px; width:132px; text-align:right; }
input.tcc-cell:focus{ outline:none; border-color:var(--slate-500); box-shadow:var(--focus-ring); background:#fff; }
input[type=range].tcc-range{ -webkit-appearance:none; appearance:none; width:100%; height:5px; border-radius:999px; background:var(--slate-200); outline:none; cursor:pointer; }
input[type=range].tcc-range::-webkit-slider-thumb{ -webkit-appearance:none; appearance:none; width:22px; height:22px; border-radius:50%; background:#fff; border:2px solid var(--color-accent); box-shadow:var(--shadow-sm); cursor:pointer; }
input[type=range].tcc-range::-moz-range-thumb{ width:22px; height:22px; border-radius:50%; background:#fff; border:2px solid var(--color-accent); box-shadow:var(--shadow-sm); cursor:pointer; }

/* Curseur à deux poignées (prix mini + prix max sur un seul rail).
   Les deux <input> sont superposés et transparents au pointeur : sans
   `pointer-events:none`, celui du dessus couvrirait toute la largeur et la
   poignée de l'autre serait inatteignable. Seules les poignées le reçoivent. */
.tcc-dual{ position:relative; height:22px; }
.tcc-dual-track{ position:absolute; left:0; right:0; top:50%; height:5px; margin-top:-2.5px; border-radius:999px; background:var(--slate-200); }
.tcc-dual-fill{ position:absolute; top:0; bottom:0; border-radius:999px; background:var(--color-accent); }
.tcc-dual input[type=range].tcc-range{ position:absolute; left:0; top:0; width:100%; height:22px; margin:0; background:none; pointer-events:none; }
.tcc-dual input[type=range].tcc-range::-webkit-slider-runnable-track{ background:none; border:none; }
.tcc-dual input[type=range].tcc-range::-moz-range-track{ background:none; border:none; }
.tcc-dual input[type=range].tcc-range::-webkit-slider-thumb{ pointer-events:auto; }
.tcc-dual input[type=range].tcc-range::-moz-range-thumb{ pointer-events:auto; }
.tcc-dual input[type=range].tcc-range:focus-visible::-webkit-slider-thumb{ box-shadow:var(--focus-ring); }
.tcc-dual input[type=range].tcc-range:focus-visible::-moz-range-thumb{ box-shadow:var(--focus-ring); }

.tcc-modal{ display:flex; }
.tcc-modal[data-open="0"]{ display:none; }

/* Verrou du tableau d'estimation : l'adresse doit être saisie avant d'accéder aux champs. */
[data-calc-gate="locked"] [data-calc-body]{ display:none; }
[data-calc-gate="unlocked"] [data-calc-locked]{ display:none; }

.tcc-lightbox{
  display:none;
  position:fixed; inset:0; z-index:1000;
  align-items:center; justify-content:center;
  background:rgba(15,20,26,.92);
  padding:60px;
}
.tcc-lightbox.tcc-lightbox--open{ display:flex; }
/* Photos de biens : l'image entière est visible (object-fit:contain) sur un
   fond flou tiré de la même photo, au lieu d'un recadrage qui coupait le
   logo TCC et la mention « Photo non contractuelle » placés dans les angles.
   Le cadre reçoit l'URL via --tcc-photo. */
.tcc-photo-frame{ position:absolute; inset:0; overflow:hidden; background:var(--slate-200, #e2e8f0); }
.tcc-photo-frame::before{ content:""; position:absolute; inset:-24px; background:var(--tcc-photo) center / cover no-repeat; filter:blur(20px) saturate(1.15); opacity:.9; }
.tcc-photo-frame > img{ position:absolute; inset:0; width:100%; height:100%; object-fit:contain; }
.tcc-lightbox-img{ max-width:100%; max-height:100%; object-fit:contain; border-radius:10px; box-shadow:var(--shadow-lg); }
.tcc-lightbox-close, .tcc-lightbox-prev, .tcc-lightbox-next{
  position:absolute; border:none; background:rgba(255,255,255,.12); color:#fff;
  border-radius:50%; display:flex; align-items:center; justify-content:center; cursor:pointer;
}
.tcc-lightbox-close:hover, .tcc-lightbox-prev:hover, .tcc-lightbox-next:hover{ background:rgba(255,255,255,.22); }
.tcc-lightbox-close{ top:20px; right:20px; width:42px; height:42px; }
.tcc-lightbox-prev, .tcc-lightbox-next{ top:50%; transform:translateY(-50%); width:52px; height:52px; }
.tcc-lightbox-prev{ left:20px; }
.tcc-lightbox-next{ right:20px; }
.tcc-lightbox-count{
  position:absolute; bottom:24px; left:50%; transform:translateX(-50%);
  color:#fff; font-size:14px; font-weight:600; background:rgba(255,255,255,.12); padding:6px 14px; border-radius:999px;
}
@media (max-width:600px){
  .tcc-lightbox{ padding:24px; }
  .tcc-lightbox-prev, .tcc-lightbox-next{ width:42px; height:42px; }
}

/* Leaflet's internal panes/controls go up to z-index:1000; without this the
   map container (position:absolute, no z-index of its own) never forms a
   stacking context, so those panes render above the sticky header. */
.leaflet-container{ z-index:0; }

.tcc-map-pin{ background:none; border:none; }
.tcc-map-pin-dot{
  display:flex; align-items:center; justify-content:center;
  width:34px; height:34px; border-radius:50%;
  background:#fff; border:2px solid var(--slate-300); box-shadow:var(--shadow-md);
  color:var(--slate-500);
  transition:all .15s var(--ease-out);
}
.tcc-map-pin-label{
  display:block; margin-top:3px; text-align:center;
  font-family:var(--font-display); font-size:12.5px; font-weight:600;
  color:var(--slate-600); background:rgba(255,255,255,.85); padding:1px 7px; border-radius:6px; white-space:nowrap;
}
.tcc-map-pin--active .tcc-map-pin-dot{
  background:var(--color-accent); border-color:var(--color-accent); color:#fff; transform:scale(1.12);
}
.tcc-map-pin--active .tcc-map-pin-label{ color:var(--color-accent); }

/* Menu « Mon compte » (barre utilitaire, visiteur connecté) : s'ouvre au
   survol et au clavier (focus-within), au-dessus de l'en-tête collant. */
.tcc-account-menu{ position:relative; z-index:60; display:flex; align-items:center; }
.tcc-account-menu::after{ content:""; position:absolute; left:0; right:0; top:100%; height:12px; }
.tcc-account-dropdown{
  position:absolute; top:calc(100% + 8px); right:0; min-width:220px;
  background:#fff; border:1px solid var(--border); border-radius:12px; box-shadow:var(--shadow-lg);
  padding:8px; display:flex; flex-direction:column; gap:2px;
  opacity:0; visibility:hidden; transform:translateY(-4px);
  transition:opacity .15s var(--ease-out), transform .15s var(--ease-out), visibility 0s linear .15s;
}
.tcc-account-menu:hover .tcc-account-dropdown,
.tcc-account-menu:focus-within .tcc-account-dropdown{ opacity:1; visibility:visible; transform:none; transition-delay:0s; }
.tcc-account-dropdown a{
  display:flex; align-items:center; justify-content:space-between; gap:14px;
  padding:9px 12px; border-radius:8px; text-decoration:none;
  font-size:14.5px; font-weight:500; color:var(--text-strong);
}
.tcc-account-dropdown a:hover, .tcc-account-dropdown a:focus-visible{ background:var(--slate-100); color:var(--color-primary-strong); outline:none; }
.tcc-account-dropdown-count{ min-width:20px; text-align:center; font-size:12px; font-weight:600; background:var(--color-accent); color:#fff; border-radius:999px; padding:1px 7px; }
.tcc-account-dropdown-logout{ margin-top:4px; border-top:1px solid var(--border); border-radius:0 0 8px 8px !important; color:var(--text-muted) !important; font-weight:400 !important; padding-top:11px !important; }
@media (prefers-reduced-motion: reduce){ .tcc-account-dropdown{ transition:none; } }

.tcc-mobile-menu-btn{ display:none; }
.tcc-mobile-nav-scrim{
  position:fixed; inset:0; z-index:900;
  background:rgba(15,20,26,.55);
  opacity:0; pointer-events:none;
  transition:opacity .25s var(--ease-out);
}
.tcc-mobile-nav-scrim.tcc-mobile-nav-scrim--open{ opacity:1; pointer-events:auto; }
.tcc-mobile-nav{
  position:fixed; top:0; right:0; bottom:0; z-index:901;
  width:min(86vw, 360px);
  background:#fff;
  display:flex; flex-direction:column;
  transform:translateX(100%);
  transition:transform .25s var(--ease-out);
  box-shadow:-18px 0 40px rgba(15,20,28,.18);
}
.tcc-mobile-nav.tcc-mobile-nav--open{ transform:translateX(0); }

/* Placeholder photo slot — used wherever real photography hasn't been
   uploaded yet (hero, listing cards). Swap by adding a background-image
   inline style or editing the markup once real photos are in the Media Library. */
.tcc-image-slot{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg, var(--slate-700), var(--slate-900));
  overflow:hidden;
}
.tcc-image-slot::before{
  content:"";
  position:absolute; inset:0;
  opacity:.14;
  background-image:repeating-linear-gradient(135deg,#fff 0 1px,transparent 1px 22px);
}
.tcc-image-slot-label{
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  color:rgba(255,255,255,.72);
  font-size:13.5px;
  font-weight:500;
  letter-spacing:.02em;
  text-align:center;
  padding:0 16px;
}

/* ============ RESPONSIVE ============ */
/* ===== Actualités ===================================================== */
/* Le corps d'un article vient de l'éditeur WordPress : contrairement au reste
 * du thème, il n'est pas stylé en inline. Cette feuille lui donne la même
 * typographie que les pages construites à la main. */
.tcc-article{ font-size:17.5px; line-height:1.75; color:var(--text-body); }
.tcc-article > *:first-child{ margin-top:0; }
.tcc-article p{ margin:0 0 20px; }
.tcc-article h2{ font-family:var(--font-display); font-size:27px; font-weight:600; line-height:1.25; letter-spacing:-0.01em; color:var(--text-strong); margin:40px 0 14px; }
.tcc-article h3{ font-family:var(--font-display); font-size:21px; font-weight:600; line-height:1.3; color:var(--text-strong); margin:30px 0 10px; }
.tcc-article ul, .tcc-article ol{ margin:0 0 20px; padding-left:24px; display:flex; flex-direction:column; gap:9px; }
.tcc-article li{ line-height:1.7; }
.tcc-article a{ color:var(--color-primary-strong); }
.tcc-article strong{ color:var(--text-strong); font-weight:600; }
.tcc-article img{ max-width:100%; height:auto; border-radius:14px; margin:8px 0 20px; }
.tcc-article blockquote{ margin:0 0 20px; padding:18px 24px; background:var(--slate-50); border-left:3px solid var(--color-accent); border-radius:0 12px 12px 0; }
.tcc-article blockquote p:last-child{ margin-bottom:0; }
.tcc-article hr{ border:0; border-top:1px solid var(--border); margin:34px 0; }

/* Liste des actualités : pas de cadre ni de bouton, la typographie porte
 * seule la carte — c'est ce qui tient sans image à la une. Seul le survol
 * du titre signale que le bloc entier est cliquable. */
.tcc-news-item-title{ transition:color .15s var(--ease-out); }
.tcc-news-item:hover .tcc-news-item-title,
a.tcc-news-item:hover .tcc-news-item-title{ color:var(--color-accent); }

/* Pagination des actualités (the_posts_pagination()). */
.pagination{ display:flex; justify-content:center; gap:8px; margin-top:44px; }
.pagination .page-numbers{ display:inline-flex; align-items:center; justify-content:center; min-width:42px; height:42px; padding:0 14px; border:1px solid var(--border); border-radius:999px; background:#fff; text-decoration:none; font-size:15.5px; font-weight:600; color:var(--text-body); }
.pagination .page-numbers.current{ background:var(--color-accent); border-color:var(--color-accent); color:#fff; }
.pagination .screen-reader-text{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

/* La barre de navigation bascule sur le menu burger plus tôt que le reste de
 * la mise en page. Entre 960 et 1180 px, la nav desktop s'affichait encore
 * alors qu'elle ne tenait plus : les libellés se cassaient sur deux lignes et
 * débordaient de la barre, haute de 64 px. Le téléphone et le bouton Contact,
 * eux, ont la place de rester une fois la nav repliée. */
@media (max-width: 1180px){
  .tcc-nav-desktop{ display:none !important; }
  .tcc-mobile-menu-btn{ display:flex !important; }
}

@media (max-width: 960px){
  .tcc-nav-desktop{ display:none !important; }
  .tcc-mobile-menu-btn{ display:flex !important; }
  .tcc-header-cta{ display:none !important; }
  .tcc-header-phone-label{ display:none !important; }
  .tcc-header-phone{ width:36px; height:36px; justify-content:center; border-radius:50%; border:1px solid var(--border); }
  .tcc-header-inner{ gap:14px !important; }
  .tcc-hero-h1{ font-size:36.5px !important; }
  .tcc-search-grid{ grid-template-columns:1fr 1fr !important; }
  .tcc-search-grid > button{ grid-column:1 / -1; }
  .tcc-stats-grid{ grid-template-columns:repeat(2,1fr) !important; row-gap:28px !important; }
  .tcc-stats-grid > div:nth-child(2n+1){ border-right:1px solid rgba(255,255,255,.14) !important; }
  .tcc-stats-grid > div:nth-child(2n){ border-right:none !important; }
  .tcc-sectors-grid{ grid-template-columns:repeat(2,1fr) !important; }
  .tcc-listing-grid{ grid-template-columns:repeat(2,1fr) !important; }
  /* Résultats de Nos affaires et biens similaires de la fiche : pas de
   * carrousel mobile, la grille passe simplement à 2 puis 1 colonne. */
  .tcc-results-grid{ grid-template-columns:repeat(2,1fr) !important; }
  /* La grille des favoris a sa propre classe : `.tcc-listing-grid` disparaît
   * sous 600 px au profit du carrousel mobile de l'accueil, qui n'existe pas
   * dans l'espace client. */
  .tcc-account-grid{ grid-template-columns:repeat(2,1fr) !important; }
  .tcc-about-grid{ grid-template-columns:1fr !important; }
  .tcc-about-cards{ grid-template-columns:1fr 1fr !important; }
  .tcc-nego-grid{ grid-template-columns:1fr !important; }
  .tcc-cta-grid{ grid-template-columns:1fr !important; }
  .tcc-footer-grid{ grid-template-columns:1fr 1fr !important; row-gap:36px !important; }
  .tcc-footer-zones{ grid-template-columns:repeat(2,1fr) !important; }
  .tcc-vendre-contact-grid{ grid-template-columns:1fr !important; }
  .tcc-activities-grid{ grid-template-columns:1fr !important; }
  .tcc-news-grid{ grid-template-columns:1fr 1fr !important; }
  .tcc-criteria-cards{ grid-template-columns:1fr !important; }
  .tcc-ratios-grid{ grid-template-columns:1fr !important; }
  .tcc-ebe-band{ flex-wrap:wrap; }
  .tcc-affaires-layout{ grid-template-columns:1fr !important; }
  .tcc-affaires-layout > aside{ position:static !important; }
  .tcc-fiche-layout{ grid-template-columns:1fr !important; }
  .tcc-fiche-layout > aside{ position:static !important; }
  /* Une seule photo en avant sur mobile : les vignettes latérales (absentes
   * du DOM à une seule photo, cf. single-annonce.php) sont aussi masquées ici
   * pour le cas à plusieurs photos, où elles resteraient sinon empilées. */
  .tcc-gallery-grid{ grid-template-columns:1fr !important; grid-template-rows:none !important; height:auto !important; }
  .tcc-gallery-main{ height:280px !important; grid-row:auto !important; }
  .tcc-gallery-side{ display:none !important; }
  .tcc-fiche-facts{ grid-template-columns:1fr 1fr !important; }
  .tcc-criteres-familles{ columns:1; }
  .tcc-fiche-h2{ font-size:23px; }
  .tcc-atouts-grid{ grid-template-columns:1fr !important; }
  .tcc-acc-grid{ grid-template-columns:1fr !important; }
  .tcc-propose-grid{ grid-template-columns:1fr !important; }
  .tcc-propose-grid > div:first-child{ grid-column:1 !important; }
  .tcc-candidature-grid{ grid-template-columns:1fr !important; }
  .tcc-bb-grid{ grid-template-columns:1fr !important; }
  .tcc-bb-grid > div:last-child{ position:static !important; }
  .tcc-contact-quick-grid{ grid-template-columns:1fr !important; }
  .tcc-contact-layout{ grid-template-columns:1fr !important; }
  .tcc-valeurs-grid{ grid-template-columns:1fr 1fr !important; }
  .tcc-partner-band{ grid-template-columns:1fr !important; }
  .tcc-partners-grid{ grid-template-columns:1fr !important; }
  .tcc-equipe-grid{ grid-template-columns:repeat(2,1fr) !important; }
}

@media (max-width: 600px){
  .tcc-hero-h1{ font-size:29px !important; }
  .tcc-search-grid{ grid-template-columns:1fr !important; }
  .tcc-search-mobile-hide{ display:none !important; }
  .tcc-stats-grid > div{ border-right:none !important; }
  .tcc-stats-grid [style*="font-size:56px"]{ font-size:41px !important; }
  .tcc-sectors-grid{ grid-template-columns:1fr 1fr !important; }
  .tcc-news-grid{ grid-template-columns:1fr !important; }
  .tcc-actu-cta{ display:none !important; }
  .tcc-actu-cta-mobile{ display:block !important; }
  .tcc-sectors-grid a{ padding:18px 16px !important; }
  .tcc-sectors-grid a > div:nth-child(3), .tcc-sectors-grid a > div:nth-child(4){ display:none !important; }
  .tcc-listing-grid{ display:none !important; }
  .tcc-listing-grid-m{ display:flex !important; flex-direction:column; gap:18px; }
  .tcc-results-grid{ grid-template-columns:1fr !important; gap:18px !important; }
  .tcc-account-grid{ grid-template-columns:1fr !important; }
  .tcc-account-tabs{ width:100% !important; }
  .tcc-account-tabs a{ flex:1 1 auto; justify-content:center; padding:10px 12px !important; }
  .tcc-about-cards{ display:none !important; }
  .tcc-about-mobile-checklist{ display:flex !important; }
  .tcc-nego-grid > div:first-child{ min-height:280px !important; }
  .tcc-faq [data-faq-toggle]{ font-size:16px !important; padding:18px 0 !important; }
  .tcc-faq p{ font-size:14.5px !important; padding-bottom:18px !important; }
  .tcc-cta-grid{ padding:26px !important; }
  .tcc-cta-grid h2{ font-size:24px !important; }
  .tcc-footer-grid > div:nth-child(n+2){ display:none !important; }
  .tcc-footer-grid{ grid-template-columns:1fr !important; }
  /* Le bloc des zones reste, lui, affiché sous 600 px : c'est le maillage
   * interne des pages `/fonds-de-commerce/{zone}/` (T23), il doit figurer sur
   * toutes les pages et dans tous les formats. Deux colonnes suffisent pour
   * huit entrées. */
  .tcc-footer-zones{ grid-template-columns:repeat(2,1fr) !important; gap:10px 18px !important; }
  .tcc-footer-zones a{ font-size:14px !important; }
  [data-toggle-group]{ border-radius:18px !important; }
  .tcc-utility-bar-links{ display:none !important; }
  .tcc-valeurs-grid{ grid-template-columns:1fr !important; }
  .tcc-equipe-grid{ grid-template-columns:1fr !important; }
}

/* ============ Fiche bien imprimable / export PDF ============
 * Le lien « imprimer » (single-annonce.php, [data-print]) ouvre la boîte de
 * dialogue d'impression du navigateur ; « Enregistrer au format PDF » y est
 * proposé nativement, sans dépendance serveur. Ces règles s'appliquent à
 * toute page imprimée du site (masquer nav/footer/formulaires y est
 * pertinent partout), mais l'en-tête d'impression et les repères
 * [data-no-print] ajoutés dans single-annonce.php ne concernent que la
 * fiche bien.
 *
 * À GARDER EN DERNIER dans ce fichier : une page A4 fait environ 756 px CSS
 * de large, donc les media queries « mobile » ci-dessus (≤960 px et ≤600 px)
 * s'appliquent aussi à l'impression. Ce bloc doit passer après elles pour les
 * réécrire à spécificité égale.
 */
@page{ size:A4; margin:12mm 11mm 16mm; }

/* Fiche imprimée : gabarit dédié (template-parts/fiche-print.php), masqué à
 * l'écran. À l'impression, il est la seule chose visible : le reste de la
 * page (en-tête, galerie, mise en page écran, pied de page) est marqué
 * data-no-print. Mise en page calquée sur l'ancienne fiche commerciale TCC. */
.tcc-print-sheet{ display:none; }

@media print{
  *, *::before, *::after{
    box-shadow:none !important;
    text-shadow:none !important;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }
  html, body{ background:#fff !important; margin:0 !important; padding:0 !important; }
  a{ text-decoration:none !important; color:inherit !important; }
  [data-no-print]{ display:none !important; }

  .tcc-print-sheet{ display:block; font-family:var(--font-body); font-size:9pt; line-height:1.35; color:#1f2937; }
  .tcc-print-sheet *{ box-sizing:border-box; }
  .tcc-print-sheet img{ max-width:100%; }

  /* Mention légale répétée en pied de chaque page : <tfoot> d'un tableau
   * enveloppant, que Chrome réimprime au bas de chaque page. */
  .tcc-pr-table{ width:100%; border-collapse:collapse; }
  .tcc-pr-table td{ padding:0; vertical-align:top; }
  .tcc-pr-legal{ font-size:6.4pt; line-height:1.3; color:#6b7280; text-align:center; padding-top:3mm !important; }

  .tcc-pr-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:8mm; margin:0 0 4mm; }
  .tcc-pr-logo{ height:13mm; width:auto; }
  .tcc-pr-nego{ text-align:right; font-size:8.6pt; line-height:1.4; display:flex; flex-direction:column; }
  .tcc-pr-nego strong{ font-size:9.6pt; }

  .tcc-pr-hero{ display:grid; grid-template-columns:72mm 1fr; gap:6mm; align-items:stretch; margin:0 0 4mm; break-inside:avoid; }
  .tcc-pr-hero.is-nophoto{ grid-template-columns:1fr; }
  .tcc-pr-photo{ height:54mm; border-radius:2mm; overflow:hidden; background:#fff; }
  .tcc-pr-photo img{ width:100%; height:100%; object-fit:contain; display:block; }
  .tcc-pr-id{ display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; gap:1.2mm; padding:2mm 0; }
  .tcc-pr-activity{ font-size:9.5pt; color:#4b5563; }
  .tcc-pr-title{ font-family:var(--font-display); font-size:14pt; font-weight:700; line-height:1.2; color:#111827; }
  .tcc-pr-addr{ font-size:9.5pt; color:#374151; }
  .tcc-pr-price{ font-family:var(--font-display); font-size:14pt; font-weight:700; color:var(--color-accent); margin-top:2mm; }
  .tcc-pr-price-note{ font-size:8pt; color:#6b7280; }
  .tcc-pr-ref{ align-self:flex-end; font-size:8pt; font-weight:600; color:#374151; margin-top:2mm; }

  .tcc-pr-band{ display:grid; grid-template-columns:1fr 62mm; gap:4mm; align-items:stretch; margin:0 0 3.5mm; break-inside:avoid; }
  .tcc-pr-icons{ display:flex; gap:2mm; }
  .tcc-pr-icon{ flex:1 1 0; border:1px solid #d1d5db; border-radius:2mm; padding:2mm 1.5mm; text-align:center; color:var(--slate-700); }
  .tcc-pr-icon strong{ display:block; font-family:var(--font-display); font-size:10pt; line-height:1.15; color:#111827; margin-top:1mm; }
  .tcc-pr-icon span{ display:block; font-size:7.4pt; color:#6b7280; }
  .tcc-pr-figures{ background:var(--slate-700); color:#fff; border-radius:2mm; padding:2.5mm 3.5mm; display:flex; flex-direction:column; justify-content:center; gap:1.2mm; }
  .tcc-pr-figures > div{ display:flex; justify-content:space-between; gap:3mm; font-size:9pt; }
  .tcc-pr-figures strong{ font-family:var(--font-display); font-size:10.5pt; }

  .tcc-pr-desc{ font-size:9pt; line-height:1.4; margin:0 0 3.5mm; }
  .tcc-pr-desc p{ margin:0 0 1.5mm; }

  .tcc-pr-h{ background:var(--slate-700); color:#fff; font-family:var(--font-display); font-size:7.8pt; font-weight:600; letter-spacing:.08em; text-transform:uppercase; text-align:center; padding:1.2mm 2mm; break-after:avoid; }
  .tcc-pr-two{ display:grid; grid-template-columns:1fr 1fr; gap:4mm; margin:0 0 3.5mm; break-inside:avoid; }
  .tcc-pr-box{ border:1px solid #d1d5db; }
  .tcc-pr-box ul{ margin:0; padding:1.5mm 2.5mm 1.5mm 6mm; }
  .tcc-pr-box li{ padding:.5mm 0; }
  .tcc-pr-box p{ margin:0; padding:1.5mm 2.5mm; }

  /* Critères par famille : deux colonnes qui coulent d'une page à l'autre
   * (multicolonne, pas grille), pour ne jamais laisser une colonne vide. */
  .tcc-pr-families{ columns:2; column-gap:4mm; margin:0 0 3mm; }
  .tcc-pr-fam{ border:1px solid #d1d5db; margin:0 0 3mm; break-inside:auto; }
  .tcc-pr-fam .tcc-pr-h{ break-after:avoid; }
  .tcc-pr-row{ display:flex; justify-content:space-between; align-items:baseline; gap:3mm; padding:1mm 2mm; border-top:1px solid #e5e7eb; font-size:8.4pt; break-inside:avoid; }
  .tcc-pr-row span{ color:#4b5563; }
  .tcc-pr-row strong{ font-weight:600; color:#111827; text-align:right; min-width:0; overflow-wrap:anywhere; }

  .tcc-pr-loc{ font-size:8pt; color:#6b7280; margin:0; }

  .tcc-pr-photos{ break-before:page; display:grid; grid-template-columns:1fr 1fr; gap:5mm; }
  .tcc-pr-photos > div{ height:80mm; border-radius:2mm; overflow:hidden; background:#fff; break-inside:avoid; }
  .tcc-pr-photos img{ width:100%; height:100%; object-fit:contain; display:block; }
}
