/* ==========================================================================
   EL'TECH SOLUTIONS : outils gratuits (estimateur, factures, mentions légales)
   Chargée en plus de site.css, dont elle reprend les jetons.
   ========================================================================== */

/* ---------- Page « Outils » ---------- */
.grille-outils { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
.carte-outil {
    position: relative; display: flex; flex-direction: column;
    padding: clamp(1.6rem, 1.1rem + 1.5vw, 2.3rem);
    border: 2px solid var(--encre); border-radius: 28px;
    box-shadow: 8px 8px 0 var(--ombre-pleine);
    transition: transform .2s ease, box-shadow .2s ease;
}
.carte-outil:nth-child(1) { transform: rotate(-1.2deg); }
.carte-outil:nth-child(2) { transform: rotate(.8deg) translateY(10px); }
.carte-outil:nth-child(3) { transform: rotate(-.6deg); }
.carte-outil:hover { transform: rotate(0) translate(-3px, -3px); box-shadow: 12px 12px 0 var(--ombre-pleine); }
.carte-outil--ylang { background: var(--ylang); color: #2a1d10; }
.carte-outil--vert { background: var(--vert); color: var(--sur-vert); }
.carte-outil--encre { background: var(--encre); color: var(--papier); }
.carte-outil h2 { font-size: clamp(1.55rem, 1.2rem + 1vw, 2rem); margin-bottom: .7rem; color: inherit; }
.carte-outil--vert h2 { color: #fff; }
.carte-outil--encre h2 { color: var(--papier); }
.carte-outil p { margin-bottom: 1.5rem; }
.carte-outil__icone {
    display: grid; place-items: center; width: 56px; height: 56px; margin-bottom: 1.25rem;
    border-radius: var(--rayon-petit); background: rgba(255, 255, 255, .22); transform: rotate(-5deg);
}
.carte-outil--encre .carte-outil__icone { background: var(--ylang); color: #1d1a16; }
.carte-outil__icone svg { width: 28px; height: 28px; }
.carte-outil__public { margin: 0 0 .35rem !important; font-size: .8rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; opacity: .85; }
/* Toute la carte est cliquable : le lien du titre la recouvre. */
.carte-outil__lien { color: inherit; text-decoration: none; }
.carte-outil__lien::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.carte-outil__lien:hover { color: inherit; }
.carte-outil__lien:focus-visible { outline: none; }
.carte-outil:has(.carte-outil__lien:focus-visible) { outline: 3px solid var(--ylang); outline-offset: 4px; }
.carte-outil__action {
    display: inline-flex; align-items: center; gap: .45rem; align-self: flex-start; margin-top: auto;
    padding: .6rem 1.1rem; border-radius: var(--rayon-petit); background: #1d1a16; color: #fffaf1; font-weight: 700;
}
.carte-outil--encre .carte-outil__action { background: var(--ylang); color: #1d1a16; }
.carte-outil__action::after { content: "→"; transition: transform .2s; }
.carte-outil:hover .carte-outil__action::after { transform: translateX(4px); }

/* ---------- Champs communs aux outils ---------- */
fieldset.champ, fieldset.etape-outil { margin: 0; padding: 0; border: 0; min-width: 0; }
.bascule legend, .etape-outil legend { padding: 0; }
.bascule legend { font-weight: 700; color: var(--encre); font-size: .97rem; margin-bottom: .4rem; }
.pastilles { display: flex; flex-wrap: wrap; gap: .5rem; }
.pastille { position: relative; cursor: pointer; }
.pastille input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.pastille span {
    display: inline-flex; align-items: center; gap: .45rem; min-height: 44px; padding: .55rem 1rem;
    border: 2px solid var(--filet-fort); border-radius: 999px; background: var(--papier);
    color: var(--encre); font-weight: 600; font-size: .96rem; line-height: 1.2;
    transition: border-color .15s, background-color .15s, box-shadow .15s, transform .15s;
}
.pastille--case span::before {
    content: ""; width: 1rem; height: 1rem; flex: none; border: 2px solid currentColor; border-radius: 5px; opacity: .55;
}
.pastille:hover span { border-color: var(--encre); }
.pastille input:checked + span { background: var(--encre); border-color: var(--encre); color: var(--papier); box-shadow: 3px 3px 0 var(--ylang); transform: translate(-1px, -1px); }
.pastille--case input:checked + span::before {
    opacity: 1; border-color: var(--ylang); background: var(--ylang)
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231d1a16' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 80% no-repeat;
}
.pastille input:focus-visible + span { outline: 3px solid var(--ylang); outline-offset: 2px; }
.case-simple { display: flex; align-items: flex-start; gap: .65rem; font-weight: 600; color: var(--encre); cursor: pointer; }
.case-simple input { width: 1.25rem; height: 1.25rem; margin-top: .2rem; flex: none; accent-color: var(--ylang); }
.champ input[type="color"] { height: 50px; padding: .35rem; cursor: pointer; }
.champ input[type="file"] { padding: .6rem; font-size: .92rem; }
[hidden] { display: none !important; }

.bouton--petit { min-height: 44px; padding: .5rem 1rem; font-size: .95rem; }
.lien-bouton {
    display: inline-flex; align-items: center; gap: .4rem; padding: .3rem 0; border: 0; background: none;
    color: var(--accent); font-weight: 700; font-size: .95rem; text-decoration: underline; text-underline-offset: .2em; cursor: pointer;
}
.lien-bouton svg { width: 18px; height: 18px; }
.lien-bouton:hover { color: var(--accent-fonce); }
.lien-bouton--danger { color: var(--erreur); }
.encart--estimation { margin-bottom: 1.5rem; }

/* ---------- Estimateur ---------- */
.estimateur { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(300px, .95fr); gap: clamp(2rem, 1rem + 3.5vw, 4rem); align-items: start; }
.estimateur__formulaire { display: grid; gap: 2.25rem; counter-reset: etape; }
.etape-outil { counter-increment: etape; }
.etape-outil__titre {
    display: flex; align-items: center; gap: .75rem; margin-bottom: .9rem;
    font-family: var(--police-titre); font-weight: 800; font-size: clamp(1.35rem, 1.15rem + .6vw, 1.65rem); letter-spacing: -.02em; color: var(--encre);
}
.etape-outil__titre::before {
    content: counter(etape); display: grid; place-items: center; width: 38px; height: 38px; flex: none;
    border-radius: 12px; background: var(--ylang); color: #1d1a16; font-size: 1.1rem; transform: rotate(-5deg);
}
.etape-outil:nth-of-type(even) .etape-outil__titre::before { transform: rotate(4deg); }
.etape-outil__aide { margin: -.4rem 0 .9rem; color: var(--discret); font-size: .95rem; }
.js .estimateur__calculer { display: none; }

.choix-projets { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .9rem; }
.choix-carte { position: relative; cursor: pointer; }
.choix-carte input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.choix-carte__corps {
    display: grid; gap: .35rem; height: 100%; padding: 1.15rem 1.1rem;
    background: var(--surface); border: 2px solid var(--filet); border-radius: var(--rayon);
    color: var(--texte); font-size: .93rem; line-height: 1.45;
    transition: border-color .15s, box-shadow .15s, transform .15s;
}
.choix-carte__corps strong { font-family: var(--police-titre); font-size: 1.1rem; }
.choix-carte__icone { display: grid; place-items: center; width: 44px; height: 44px; margin-bottom: .35rem; border-radius: 12px; background: var(--accent-doux); color: var(--accent); }
.choix-carte__icone svg { width: 24px; height: 24px; }
.choix-carte:hover .choix-carte__corps { border-color: var(--discret); }
.choix-carte input:checked + .choix-carte__corps { border-color: var(--encre); box-shadow: 6px 6px 0 var(--ylang); transform: translate(-2px, -2px); }
.choix-carte input:checked + .choix-carte__corps .choix-carte__icone { background: var(--ylang); color: #1d1a16; }
.choix-carte input:focus-visible + .choix-carte__corps { outline: 3px solid var(--ylang); outline-offset: 3px; }

/* Le ticket : un reçu de caisse, bord inférieur dentelé. */
.estimateur__resultat { position: sticky; top: calc(var(--hauteur-entete) + 1.5rem); }
/* Le masque qui découpe les dents effacerait bordure et ombre : elles sont
   dessinées par des ombres portées sur le parent, qui suivent la découpe. */
.estimateur__resultat > div {
    filter: drop-shadow(2px 0 0 #1d1a16) drop-shadow(-2px 0 0 #1d1a16) drop-shadow(0 2px 0 #1d1a16) drop-shadow(0 -2px 0 #1d1a16) drop-shadow(8px 8px 0 var(--ylang));
}
.ticket {
    --dent: 12px;
    position: relative; padding: 1.6rem 1.6rem 2.4rem;
    background: #fffdf8; color: #2b2620;
    border-radius: 18px 18px 0 0;
    transform: rotate(.6deg);
    -webkit-mask: conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) 50% / calc(2 * var(--dent)) 100%;
    mask: conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) 50% / calc(2 * var(--dent)) 100%;
}
.ticket__entete {
    display: flex; justify-content: space-between; gap: 1rem; margin: 0 0 1rem; padding-bottom: .8rem; border-bottom: 2px dashed #d9cdb9;
    font-size: .78rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #8a420a;
}
.ticket__fourchette { display: flex; flex-wrap: wrap; align-items: baseline; gap: .1rem .5rem; margin: 0 0 1.1rem; }
.ticket__entre { font-weight: 600; color: #6b6255; }
.ticket__montant { font-family: var(--police-titre); font-weight: 800; font-size: clamp(2rem, 1.5rem + 1.6vw, 2.6rem); letter-spacing: -.04em; line-height: 1.05; color: #1d1a16; white-space: nowrap; }
.ticket__lignes { display: grid; gap: .45rem; margin: 0 0 1.1rem; padding: 0 0 1rem; list-style: none; border-bottom: 2px dashed #d9cdb9; font-size: .92rem; }
.ticket__lignes li { display: flex; justify-content: space-between; align-items: baseline; gap: .75rem; }
.ticket__lignes li > span:first-child { flex: 1; }
.ticket__prix { font-weight: 700; color: #1d1a16; white-space: nowrap; font-variant-numeric: tabular-nums; }
.ticket__notes { display: grid; gap: .3rem; margin: 0 0 1.35rem; padding: 0; list-style: none; font-size: .86rem; color: #6b6255; }
.ticket__notes li { position: relative; padding-left: 1rem; }
.ticket__notes li::before { content: "·"; position: absolute; left: .2rem; font-weight: 800; color: #e8771e; }
.ticket__action { width: 100%; background: #1d1a16; color: #fffaf1; }
.ticket__action:hover { color: #fffaf1; box-shadow: 4px 4px 0 #e8771e; }
.ticket__pied { margin: .9rem 0 0; text-align: center; font-size: .74rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #8d8475; }
@media (prefers-reduced-motion: no-preference) {
    .ticket--imprime { animation: imprimer .35s ease-out; }
}
@keyframes imprimer { from { opacity: .4; transform: rotate(.6deg) translateY(-10px); } }

.estimateur__barre { display: none; }

/* Transmission de l'estimation, sous le ticket. Formulaire ouvert : la
   colonne cesse d'être collée en haut, sinon il déborderait de l'écran. */
.estimateur__resultat:has(.envoi[open]) { position: static; }
.envoi { margin-top: 2.25rem; background: var(--vert); color: var(--sur-vert); border-radius: var(--rayon); box-shadow: 7px 7px 0 var(--ombre-pleine); }
.envoi__titre {
    display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.1rem 1.35rem; cursor: pointer; list-style: none;
    font-family: var(--police-titre); font-weight: 800; font-size: 1.15rem; color: #fff;
}
.envoi__titre::-webkit-details-marker { display: none; }
.envoi__titre::after {
    content: "+"; display: grid; place-items: center; flex: none; width: 32px; height: 32px; border-radius: 10px;
    background: var(--surligne); color: #1d1a16; font-size: 1.3rem; line-height: 1; transition: transform .2s;
}
.envoi[open] .envoi__titre::after { transform: rotate(45deg); }
.envoi__corps { padding: 0 1.35rem 1.4rem; }
.envoi__texte { font-size: .97rem; color: color-mix(in srgb, var(--sur-vert) 88%, transparent); }
.envoi__formulaire { display: grid; gap: 1rem; padding: 1.25rem; background: var(--surface); color: var(--texte); border-radius: var(--rayon-petit); }
.envoi__formulaire .champ textarea { min-height: 96px; }
.envoi__formulaire .formulaire__mention { max-width: none; }
.envoi__formulaire .bouton { justify-self: start; }

/* ---------- Ateliers : factures et mentions légales ---------- */
.section--outil { padding-block: clamp(2.5rem, 1.5rem + 3vw, 4.5rem); }
.atelier { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr); gap: clamp(1.5rem, .5rem + 3vw, 3.25rem); align-items: start; }
.atelier > noscript { grid-column: 1 / -1; }
.atelier__saisie { display: grid; gap: 1rem; counter-reset: bloc; }
/* Colonne d'aperçu : collée en haut de l'écran, avec son propre défilement. */
.atelier__apercu {
    position: sticky; top: calc(var(--hauteur-entete) + 1rem); display: grid; gap: 1rem;
    max-height: calc(100vh - var(--hauteur-entete) - 2rem); overflow: auto; padding: 4px 14px 14px 4px; margin: -4px -14px -14px -4px;
}
.atelier__note { margin: 0; min-height: 1.5em; font-size: .93rem; font-weight: 600; color: var(--succes); }
.atelier__note[data-ton="erreur"] { color: var(--erreur); }

.type-document { display: grid; grid-template-columns: 1fr 1fr; padding: 5px; border: 2px solid var(--encre); border-radius: 18px; background: var(--surface); }
.type-document__choix { position: relative; cursor: pointer; }
.type-document__choix input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.type-document__choix span {
    display: grid; place-items: center; min-height: 48px; border-radius: 13px;
    font-family: var(--police-titre); font-weight: 800; font-size: 1.15rem; color: var(--encre); transition: background-color .15s, color .15s;
}
.type-document__choix input:checked + span { background: var(--encre); color: var(--papier); }
.type-document__choix input:focus-visible + span { outline: 3px solid var(--ylang); outline-offset: 2px; }

.bloc-saisie { counter-increment: bloc; background: var(--surface); border: 2px solid var(--filet); border-radius: var(--rayon); transition: border-color .2s; }
.bloc-saisie[open] { border-color: var(--encre); }
.bloc-saisie__titre {
    display: flex; align-items: center; gap: .8rem; padding: 1rem 1.25rem; cursor: pointer; list-style: none;
    font-family: var(--police-titre); font-weight: 800; font-size: 1.25rem; color: var(--encre);
}
.bloc-saisie__titre::-webkit-details-marker { display: none; }
.bloc-saisie__titre::before {
    content: counter(bloc); display: grid; place-items: center; width: 34px; height: 34px; flex: none;
    border-radius: 11px; background: var(--ylang); color: #1d1a16; font-size: 1rem; transform: rotate(-5deg);
}
.bloc-saisie__titre::after { content: "+"; margin-left: auto; font-size: 1.5rem; line-height: 1; color: var(--accent); transition: transform .2s; }
.bloc-saisie[open] .bloc-saisie__titre::after { transform: rotate(45deg); }
.bloc-saisie__corps { padding: .25rem 1.25rem 1.4rem; gap: 1.1rem; }

.lignes-saisie { display: grid; gap: .8rem; }
.ligne-saisie {
    display: grid; grid-template-columns: 30px minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.2fr) 44px; gap: .6rem; align-items: end;
    padding: .9rem; background: var(--papier); border: 2px dashed var(--filet-fort); border-radius: var(--rayon-petit);
}
.ligne-saisie__numero {
    align-self: start; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 9px;
    background: var(--accent-doux); color: var(--accent); font-weight: 800; font-size: .9rem;
}
.ligne-saisie__designation { grid-column: 2 / -1; }
.ligne-saisie__quantite { grid-column: 2; }
/* Avec TVA : une colonne de plus pour le taux. */
.lignes-saisie--tva .ligne-saisie { grid-template-columns: 30px minmax(0, .8fr) minmax(0, .9fr) minmax(0, 1.2fr) minmax(0, 1fr) 44px; }
.ligne-saisie .champ select { padding: .6rem 2rem .6rem .75rem; background-color: var(--surface); background-position: right .5rem center; }
.ligne-saisie .champ textarea { min-height: 0; }
.encart--avis { font-size: .9rem; }
.ligne-saisie .champ label { font-size: .85rem; }
.ligne-saisie .champ input, .ligne-saisie .champ textarea { padding: .6rem .75rem; background: var(--surface); }
.ligne-saisie__supprimer {
    display: grid; place-items: center; width: 44px; height: 48px; border: 2px solid var(--filet-fort); border-radius: var(--rayon-petit);
    background: transparent; color: var(--erreur); cursor: pointer;
}
.ligne-saisie__supprimer svg { width: 20px; height: 20px; }
.ligne-saisie__supprimer:hover { border-color: var(--erreur); }
.ligne-saisie__supprimer[disabled] { opacity: .35; cursor: not-allowed; }

.barre-outils { display: flex; flex-wrap: wrap; gap: .6rem; }
.barre-outils .bouton { min-height: 46px; padding: .55rem 1rem; font-size: .95rem; }
.barre-outils--discrete { gap: .4rem 1.25rem; }

/* Contrôle des mentions */
.conformite__bloc { background: var(--surface); border: 2px solid var(--erreur); border-radius: var(--rayon-petit); padding: .2rem 1.1rem; }
.conformite__bloc.est-complet { border-color: var(--succes); }
.conformite__titre { display: flex; align-items: center; gap: .75rem; padding: .7rem 0; cursor: pointer; list-style: none; font-weight: 700; color: var(--encre); }
.conformite__titre::-webkit-details-marker { display: none; }
.conformite__compte {
    display: grid; place-items: center; min-width: 52px; padding: .2rem .5rem; border-radius: 10px;
    background: var(--erreur-doux); color: var(--erreur); font-family: var(--police-titre); font-weight: 800; font-variant-numeric: tabular-nums;
}
.est-complet .conformite__compte { background: var(--succes-doux); color: var(--succes); }
.conformite__jauge { height: 6px; margin-bottom: .6rem; border-radius: 6px; background: var(--filet); overflow: hidden; }
.conformite__jauge span { display: block; height: 100%; width: 0; background: var(--erreur); border-radius: inherit; transition: width .3s ease; }
.est-complet .conformite__jauge span { background: var(--succes); }
.conformite__liste { display: grid; gap: .3rem; margin: 0 0 .9rem; padding: 0; list-style: none; font-size: .92rem; }
.conformite__item { position: relative; padding-left: 1.6rem; color: var(--texte); }
.conformite__item::before { position: absolute; left: 0; top: 0; width: 1.2rem; text-align: center; font-weight: 800; }
.conformite__item--ok::before { content: "✓"; color: var(--succes); }
.conformite__item--manque { color: var(--encre); font-weight: 600; }
.conformite__item--manque::before { content: "○"; color: var(--erreur); }
.conformite__item--attention::before { content: "!"; color: var(--erreur); }
.conformite__item--conseil::before { content: "+"; color: var(--accent); }
.conformite__item small { display: block; color: var(--discret); font-weight: 400; }

/* Aperçu : une feuille A4 blanche, quel que soit le thème du site. */
.apercu { container-type: inline-size; padding: 14px; border-radius: var(--rayon); background: var(--papier-alt); border: 2px solid var(--filet); }
.feuille {
    --couleur-feuille: #e8771e;
    display: flex; flex-direction: column; gap: 1.6em; min-height: calc(100cqi * 1.414);
    padding: 6% 6.5% 5%; background: #fff; color: #26221d;
    font-family: var(--police-texte); font-size: max(8px, 1.8cqi); line-height: 1.45;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .12), 6px 6px 0 rgba(29, 26, 22, .12);
}
.feuille p { margin: 0; }
.feuille__vide { color: #b0a796; font-style: italic; }
.feuille__entete { display: flex; justify-content: space-between; gap: 2em; }
.feuille__emetteur { font-size: .95em; color: #4a443c; }
.feuille__logo { max-width: 13em; max-height: 5.5em; width: auto; margin-bottom: .9em; object-fit: contain; }
.feuille__nom { font-family: var(--police-titre); font-weight: 800; font-size: 1.35em; color: #1d1a16; letter-spacing: -.01em; }
.feuille__commercial { font-weight: 700; color: #1d1a16; }
.feuille__titre { text-align: right; }
.feuille__titre h2 { margin: 0 0 .35em; font-size: 2.6em; font-weight: 800; letter-spacing: -.03em; color: var(--couleur-feuille); line-height: 1; }
.feuille__meta { display: grid; gap: .15em; margin: 0; font-size: .92em; }
.feuille__meta div { display: flex; justify-content: flex-end; gap: .6em; }
.feuille__meta dt { color: #7a7062; }
.feuille__meta dd { margin: 0; font-weight: 700; color: #1d1a16; }
.feuille__client { align-self: flex-end; min-width: 46%; padding: 1em 1.2em; border-left: .35em solid var(--couleur-feuille); background: #faf6ef; }
.feuille__etiquette { margin-bottom: .3em !important; font-size: .78em; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #7a7062; }
.feuille__nom-client { font-weight: 800; color: #1d1a16; font-size: 1.1em; }
.feuille__livraison { margin-top: .4em !important; font-size: .92em; }
.feuille__objet { font-size: 1.02em; }
.feuille__table { width: 100%; border-collapse: collapse; font-size: .95em; }
.feuille__table th { padding: .6em .7em; background: #1d1a16; color: #fff; font-weight: 700; text-align: left; font-size: .9em; }
.feuille__table th:first-child { border-radius: .4em 0 0 .4em; }
.feuille__table th:last-child { border-radius: 0 .4em .4em 0; }
.feuille__table td { padding: .65em .7em; border-bottom: 1px solid #e7dfd2; vertical-align: top; }
.feuille__table .nombre { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.feuille__bas { display: flex; justify-content: space-between; align-items: flex-start; gap: 2em; }
.feuille__tva { padding: .45em .8em; border: 1px dashed #c9bda9; border-radius: .4em; font-size: .9em; color: #4a443c; }
.feuille__totaux { display: grid; gap: .25em; min-width: 42%; margin: 0; }
.feuille__totaux div { display: flex; justify-content: space-between; gap: 2em; padding: .2em 0; }
.feuille__totaux dt { color: #4a443c; }
.feuille__totaux dd { margin: 0; font-weight: 700; font-variant-numeric: tabular-nums; }
.feuille__totaux .feuille__net { margin-top: .3em; padding: .6em .8em; border-radius: .4em; background: var(--couleur-feuille); color: #fff; }
.feuille__totaux .feuille__net dt, .feuille__totaux .feuille__net dd { color: #fff; font-weight: 800; font-size: 1.1em; }
.feuille__mentions { display: grid; gap: .3em; padding-top: 1em; border-top: 1px solid #e7dfd2; font-size: .84em; color: #5a5348; }
.feuille__notes { font-size: .95em; }
.feuille__accord { align-self: flex-end; width: 48%; min-height: 7em; padding: .9em 1em; border: 1px solid #c9bda9; border-radius: .4em; font-size: .88em; color: #5a5348; }
.feuille__pied { margin-top: auto; padding-top: .9em; border-top: 2px solid var(--couleur-feuille); text-align: center; font-size: .8em; color: #7a7062; }

/* Aperçu des mentions légales : une page de texte. */
.page-mentions { padding: clamp(1.25rem, 1rem + 2cqi, 2.25rem); background: #fff; color: #26221d; border-radius: 10px; font-size: .95rem; box-shadow: 0 1px 3px rgba(0, 0, 0, .12); }
.page-mentions h1 { color: #1d1a16; font-size: 1.9rem; margin-bottom: 1rem; }
.page-mentions h2 { color: #1d1a16; font-size: 1.2rem; margin: 1.5rem 0 .5rem; letter-spacing: -.01em; }
.page-mentions p { margin: 0 0 .75rem; }
.page-mentions a { color: #8a420a; }
.page-mentions strong { color: #1d1a16; }

/* ---------- Adaptation aux écrans ---------- */
@media (max-width: 1024px) {
    .grille-outils { grid-template-columns: 1fr; max-width: 640px; }
    .carte-outil:nth-child(n) { transform: none; }
    .atelier { grid-template-columns: 1fr; }
    .atelier__apercu { position: static; max-height: none; overflow: visible; padding: 0; margin: 0; }
}

@media (max-width: 880px) {
    .estimateur { grid-template-columns: 1fr; }
    .estimateur__resultat { position: static; }
    .ticket { transform: none; }
    .js .estimateur__barre {
        position: fixed; z-index: 45; left: var(--gouttiere); right: var(--gouttiere); bottom: .75rem;
        display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .85rem 1.15rem;
        background: var(--encre); color: var(--papier); border-radius: 16px; box-shadow: 5px 5px 0 var(--ylang);
        text-decoration: none; font-weight: 600;
        opacity: 0; transform: translateY(150%); transition: opacity .25s, transform .25s; pointer-events: none;
    }
    .js .estimateur__barre.est-visible { opacity: 1; transform: none; pointer-events: auto; }
    .estimateur__barre strong { color: var(--papier); font-family: var(--police-titre); font-size: 1.15rem; white-space: nowrap; }
    .estimateur__barre:hover { color: var(--papier); }
}

@media (max-width: 640px) {
    .choix-projets { grid-template-columns: 1fr; }
    .choix-carte__corps { grid-template-columns: 44px 1fr; column-gap: .9rem; align-items: center; }
    .choix-carte__icone { grid-row: span 2; margin: 0; }
    .ligne-saisie { grid-template-columns: 30px minmax(0, 1fr) minmax(0, 1fr); }
    .ligne-saisie__designation { grid-column: 2 / -1; }
    .ligne-saisie__quantite { grid-column: 2; }
    .ligne-saisie__unite { grid-column: 3; }
    .ligne-saisie__prix { grid-column: 2; }
    .ligne-saisie__supprimer { grid-column: 3; justify-self: end; }
    .lignes-saisie--tva .ligne-saisie { grid-template-columns: 30px minmax(0, 1fr) minmax(0, 1fr); }
    .lignes-saisie--tva .ligne-saisie__taux { grid-column: 3; }
    .lignes-saisie--tva .ligne-saisie__supprimer { grid-column: 2 / -1; }
}

/* ---------- Impression : seule la feuille (ou la page de mentions) sort ---------- */
@media print {
    @page { size: A4; margin: 12mm; }
    .entete-page, .atelier__saisie, .barre-outils, .conformite, .atelier__note, .section--alt, .atelier > noscript { display: none !important; }
    .section--outil { padding: 0; }
    .conteneur { width: 100%; }
    .atelier { display: block; }
    .atelier__apercu { position: static; display: block; max-height: none; overflow: visible; padding: 0; margin: 0; }
    .apercu { padding: 0; border: 0; background: none; container-type: normal; }
    .feuille { min-height: 0; padding: 0; box-shadow: none; font-size: 9.5pt; gap: 1.4em; }
    .feuille, .feuille * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    .feuille__table tr { break-inside: avoid; }
    .feuille__bas, .feuille__mentions, .feuille__accord { break-inside: avoid; }
    .page-mentions { box-shadow: none; padding: 0; }
}
