/* ==========================================================================
   Pages prestations (entretien-de-bureaux, commerces-et-cabinets)
   Composition seulement : les composants viennent de main.css.
   Tarifs (exemple en aside) et déroulé sur marine : même composition que
   les fiches copropriétés, vitres et remise en état (prestation-fiche.css).
   ========================================================================== */

/* ---- Fiche « Rythme » sous l'en-tête de « Ce qui est compris » ----------- */
.presta-rhythm { margin-bottom: clamp(28px, 3vw, 48px); }
@media (min-width: 1101px) {
  .presta-rhythm { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .presta-rhythm > div + div { padding-left: 14px; border-left: 1px solid var(--line); }
}

/* ---- Cahier des charges par fréquence ------------------------------------ */
.scope__row {
  display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gap);
  padding: 18px 0 clamp(20px, 2.4vw, 32px); border-top: 1px solid var(--line-strong);
}
.scope__row > * { grid-column: 1 / -1; min-width: 0; }
.scope__freq { font-size: var(--fs-h4); line-height: 1.15; letter-spacing: -.02em; }
.scope__list { margin-top: 14px; }
.scope__list > li > span:first-child { flex: 1 1 auto; }
.scope__list .tag { flex: none; align-self: flex-start; }
@media (min-width: 861px) {
  .scope__freq { grid-column: 1 / 4; }
  .scope__list {
    grid-column: 4 / 13; margin-top: 0; border-top: 0;
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--gap); align-content: start;
  }
  .scope__list > li:nth-child(-n + 2) { padding-top: 0; }
}

/* ---- Photo + texte (commerces et cabinets) -------------------------------- */
.presta-split { row-gap: 32px; align-items: start; }
.presta-split__media { position: sticky; top: calc(var(--header-h) + 28px); }
.presta-split__body > * + * { margin-top: 14px; }
.presta-split__body > h3 { margin-top: clamp(32px, 3.4vw, 48px); font-size: var(--fs-h4); line-height: 1.15; letter-spacing: -.02em; }
.presta-split__body > h3.presta-split__first { margin-top: 0; }
.presta-split__body > p { max-width: 62ch; }
.presta-split__body > .presta-protocol { margin-top: 20px; }
.presta-protocol strong { color: var(--fg); }
.presta-protocol > li { color: var(--fg-2); }
@media (min-width: 861px) {
  .presta-split__media { grid-column: 1 / 5; }
  .presta-split__body { grid-column: 6 / 13; }
}
@media (max-width: 860px) {
  .presta-split__media { position: static; }
}

/* ---- Tarifs : grille à droite, exemple chiffré à gauche ------------------- */
.presta-tarifs { row-gap: 40px; }
.presta-tarifs__main > * + * { margin-top: 20px; }
.presta-tarifs__main > .price-note { margin-top: 12px; }
.presta-tarifs__main > p:not(.price-note) { max-width: 68ch; color: var(--fg-2); }
.presta-sub { font-size: var(--fs-h4); line-height: 1.15; letter-spacing: -.02em; }
.presta-tarifs__main > .presta-sub { margin-top: clamp(40px, 4.4vw, 56px); }
.presta-tarifs__main > .presta-sub + * { margin-top: 14px; }
.presta-actions { --cluster-gap: 16px 28px; }
.presta-tarifs__main > .presta-actions { margin-top: clamp(28px, 3vw, 40px); }
@media (min-width: 861px) {
  .presta-tarifs__aside { grid-row: 1; }
}

/* Exemple chiffré court (même forme que les fiches copropriétés et vitres) */
.presta-example { padding-top: 14px; border-top: 1px solid var(--line-strong); }
.presta-example__case { margin-top: 10px; font-size: var(--fs-sm); color: var(--fg-2); }
.presta-example__price { margin-top: 10px; font-size: var(--fs-h4); font-weight: 600; letter-spacing: -.02em; line-height: 1.15; }
.presta-example__price small { font-size: var(--fs-sm); font-weight: 500; color: var(--fg-2); letter-spacing: 0; }
.presta-example .fine-print { margin-top: 10px; }
.presta-tarifs__aside .note { margin-top: 28px; }

/* Options : nom et prix sur une ligne */
.presta-opts > li { flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 24px; }
.presta-opts__name { flex: 1 1 280px; min-width: 0; font-weight: 600; color: var(--fg); }
.presta-opts__name small { display: block; margin-top: 2px; font-size: var(--fs-xs); font-weight: 400; color: var(--fg-2); }
.presta-opts__price { flex: 0 1 auto; font-weight: 600; }
@media (min-width: 641px) {
  .presta-opts__price { text-align: right; }
}

/* Taux et options en fiche (commerces et cabinets) */
.presta-rates dd { font-size: var(--fs-body); font-weight: 600; line-height: 1.35; }
@media (min-width: 1101px) {
  .presta-rates { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .presta-rates > div,
  .presta-rates > div:nth-child(even) { padding-left: 14px; padding-right: 12px; border-left: 1px solid var(--line); }
  .presta-rates > div:nth-child(3n + 1) { padding-left: 0; border-left: 0; }
}

/* ---- Comparatif TVA (commerces et cabinets) ------------------------------- */
.tva-table { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); }
.tva-table caption { padding-bottom: 14px; text-align: left; font-size: var(--fs-xs); font-weight: 600; letter-spacing: var(--track-caps); text-transform: uppercase; color: var(--fg); }
.tva-table thead th {
  padding: 0 12px 12px 0; border-bottom: 1px solid var(--line-strong); text-align: left; vertical-align: bottom;
  font-size: var(--fs-2xs); font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--fg-3);
}
.tva-table tbody th,
.tva-table td { padding: 12px 12px 12px 0; border-bottom: 1px solid var(--line); text-align: left; vertical-align: baseline; }
.tva-table tbody th { font-weight: 600; }
.tva-table th:last-child,
.tva-table td:last-child { padding-right: 0; }
.tva-table th:not(:first-child),
.tva-table td { text-align: right; }
.tva-table tbody tr:last-child th,
.tva-table tbody tr:last-child td { font-weight: 600; color: var(--fg); }
@media (min-width: 861px) {
  .presta-tarifs__main > .table-wrap:has(.tva-table) { max-width: 720px; }
}
@media (max-width: 600px) {
  .tva-table { font-size: var(--fs-xs); }
  .tva-table thead th { font-size: 12px; letter-spacing: .03em; }
}

/* ---- Déroulé sur marine, version resserrée --------------------------------- */
.presta-steps { padding-block: var(--section-y-sm); }
.presta-steps .step p { max-width: 30ch; }

/* ---- Prestations voisines ------------------------------------------------ */
.presta-next { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); column-gap: var(--gap); border-top: 1px solid var(--line-strong); }
.presta-next li { border-bottom: 1px solid var(--line); }
.presta-next a {
  position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 12px;
  min-height: 44px; padding: 18px 0 20px; text-decoration: none;
}
.presta-next__t { font-weight: 600; line-height: 1.25; }
.presta-next__d { grid-column: 1; margin-top: 4px; font-size: var(--fs-sm); color: var(--fg-2); }
.presta-next .icon { grid-column: 2; grid-row: 1; align-self: center; transition: transform var(--dur) var(--ease); }
.presta-next a:hover .presta-next__t { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .18em; }
.presta-next a:hover .icon { transform: translateX(4px); }
