/* ==========================================================================
   Fiches prestations : copropriétés, vitres, remise en état
   Composition uniquement (placement, espacements). Les composants viennent de main.css.
   ========================================================================== */

/* ---- 01 Ce qui est compris : fiche « Rythme » + colonnes par fréquence ---- */
.pf-incl { row-gap: clamp(32px, 4vw, 48px); }
.pf-facts > div { padding-right: 12px; }
@media (min-width: 861px) {
  .pf-incl__aside .pf-facts { grid-template-columns: minmax(0, 1fr); }
  .pf-incl__aside .pf-facts > div:nth-child(even) { padding-left: 0; border-left: 0; }
}

.pf-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(32px, 4vw, 48px) var(--gap); align-content: start; }
.pf-col { min-width: 0; }
.pf-col__title { font-size: var(--fs-h4); line-height: 1.15; letter-spacing: -.02em; }
.pf-col .slot-label { margin-top: 8px; }
.pf-col .rule-list { margin-top: 16px; }
.pf-col .fine-print { margin-top: 12px; }
@media (max-width: 1100px) { .pf-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .pf-cols { grid-template-columns: minmax(0, 1fr); } }


/* ---- Table de spécifications enrichie (listes, créneaux) ------------------ */
.pf-spec .rule-list { margin-top: 14px; }
.pf-spec .slot-label { margin-top: 14px; }
/* Dernière fiche seule sur sa ligne (sols et textiles) : pleine largeur, techniques sur deux colonnes */
@media (min-width: 601px) {
  .pf-spec > .pf-spec__wide { grid-column: 1 / -1; padding-right: 0; }
  .pf-spec__techs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--gap); }
}
.pf-spec__techs strong { font-weight: 600; color: var(--fg); }
@media (max-width: 600px) {
  .pf-spec > li > :not(.spec-table__n) { grid-column: 2; }
}

/* ---- Note sous les colonnes (limite des 3 m, vitres) --------------------- */
.pf-note { margin-top: clamp(28px, 3vw, 40px); max-width: 68ch; }

/* ---- Tarifs : exemple chiffré à gauche, grilles à droite ------------------ */
.pf-tarifs { row-gap: 40px; }
.pf-tarifs__tables > * + .table-wrap { margin-top: clamp(40px, 4vw, 56px); }
.pf-tarifs__note { margin-top: clamp(28px, 3vw, 40px); max-width: 68ch; }
/* Deux grilles superposées (remise en état) : mêmes colonnes pour que prix et conditions s'alignent */
@media (min-width: 641px) {
  .pf-tarifs__tables--duo .price-table { table-layout: fixed; }
  .pf-tarifs__tables--duo .price-table thead th:first-child { width: 50%; }
  .pf-tarifs__tables--duo .price-table thead th:nth-child(2) { width: 20%; }
}
.pf-tarifs__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; margin-top: clamp(28px, 3vw, 40px); }
.pf-example { padding-top: 14px; border-top: 1px solid var(--line-strong); }
.pf-example + .pf-example { margin-top: 28px; }
.pf-example__case { margin-top: 10px; font-size: var(--fs-sm); color: var(--fg-2); }
.pf-example__price { margin-top: 10px; font-size: var(--fs-h4); font-weight: 600; letter-spacing: -.02em; line-height: 1.15; }
.pf-example__price small { font-size: var(--fs-sm); font-weight: 500; color: var(--fg-2); letter-spacing: 0; }
.pf-example .fine-print { margin-top: 10px; }
.pf-tarifs__aside .note { margin-top: 28px; }
@media (min-width: 861px) {
  .pf-tarifs__aside { grid-row: 1; }
}
@media (max-width: 860px) {
  .pf-tarifs__aside { order: 2; }
}

/* ---- Déroulé sur marine : version resserrée = .steps.steps--compact (main.css) */

/* ---- Prestations voisines --------------------------------------------------- */
.pf-next { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line-strong); }
.pf-next > li { position: relative; display: flex; flex-direction: column; gap: 8px; padding: 18px var(--gap) 24px 0; border-bottom: 1px solid var(--line); }
.pf-next > li + li { padding-left: var(--gap); border-left: 1px solid var(--line); }
.pf-next__n { font-size: var(--fs-xs); font-weight: 600; color: var(--fg-3); font-variant-numeric: tabular-nums; }
.pf-next__title { font-size: var(--fs-h4); line-height: 1.15; letter-spacing: -.02em; }
.pf-next__title a { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; text-decoration: none; }
.pf-next__title a::after { content: ""; position: absolute; inset: 0; }
.pf-next__title a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; }
.pf-next__title .icon { width: 18px; height: 18px; flex: none; transition: transform var(--dur) var(--ease); }
.pf-next > li:hover .icon { transform: translateX(4px); }
.pf-next p { font-size: var(--fs-sm); color: var(--fg-2); max-width: 36ch; }
@media (max-width: 860px) {
  .pf-next { grid-template-columns: minmax(0, 1fr); }
  .pf-next > li,
  .pf-next > li + li { padding: 16px 0 18px; border-left: 0; }
}
