/* Intégration au site maisonvivaldi.com — chargé après studio.css.
   Ne touche qu'à ce qui relie le configurateur au reste du site :
   liens de la barre du haut, notice d'envoi. */
.topbar .brand{text-decoration:none;color:inherit}
.site-links{display:flex;align-items:center;gap:22px;font-size:13.5px;font-weight:500;letter-spacing:.015em}
.site-links a{color:rgba(10,10,10,.8);text-decoration:none}
.site-links a:hover,.site-links a:focus-visible{color:#0a0a0a;text-decoration:underline;text-underline-offset:4px}
@media(max-width:800px){
  .site-links{gap:14px;font-size:13px}
  .site-links a:not([href^="tel:"]){display:none}
}

/* Envoi en ligne de la demande (voir app.js, bloc « Envoi à l'atelier ») */
.send-privacy{margin:10px 0 0;font-size:12.5px;line-height:1.5;color:#686863}
.send-privacy a{color:inherit}
#sendQuoteStatus{margin:10px 0 0;font-size:14px;line-height:1.5}
#sendQuoteStatus.is-success{color:#176b48;font-weight:700}
#sendQuoteStatus.is-error{color:#a9342e}
.hp-field{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}

/* Le logo livré est blanc ; la barre du studio est claire (studio.css).
   Même traitement que la nav du site : recoloré en noir. */
.topbar .official-mark,.topbar .official-word{filter:brightness(0)}
.topbar .brand-purpose{color:#686863}
.topbar .brand-divider{background:rgba(10,10,10,.18)}

/* Mobile : le style d'origine (index.html, max-width) masquait le
   récapitulatif et son bouton « Préparer ma demande », remplacés jadis par
   la barre .mobile-cta — elle-même masquée dans le parcours en 4 étapes.
   Sans cette règle, l'étape Devis n'avait aucun bouton d'envoi sur téléphone. */
.journey-app .summary-card{display:block!important}

/* Gamme (Essentiel / Confort / Premium) — tableur atelier du 12 octobre 2026 */
.range-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 6px; }
.range-grid .option-button:disabled span { font-style: italic; }
.other-quote a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }

/* Tout est montré en photo depuis le 12 octobre 2026 : les commandes propres à
   la 3D (rotation, vidéo 360°, zoom sur le marquage, vue entière) n'ont plus
   d'objet. Elles reviennent d'elles-mêmes si un produit 3D est réintroduit. */
.mode-2d #toggleOrbit, .mode-2d label[for="orbitSpeed"], .mode-2d #orbitSpeed,
.mode-2d #exportVideo, .mode-2d #exportVideo + .microcopy,
.mode-2d .studio-orbit, .mode-2d #focusLogo { display: none !important; }

/* Revue UI/UX du 13 octobre 2026 (skill ui-ux-pro-max) */
/* Cibles tactiles : 44 × 44 px minimum sur écran tactile. */
@media (pointer: coarse) {
  .swatch { width: 44px; height: 44px; min-height: 44px; }
}
.site-links a { display: inline-flex; align-items: center; min-height: 44px; }
.topbar .brand { min-height: 44px; display: inline-flex; align-items: center; }
.later-choice { min-height: 44px; cursor: pointer; }
.later-choice input { width: 22px; height: 22px; }
.other-quote a { display: inline-block; padding-block: 6px; }
/* Libellé sous l'aperçu : 12 px minimum. */
.studio-view-label { font-size: 12px; }
/* Pavé de placement vide : le texte passe sur la photo du vêtement, quelle
   que soit sa couleur ; un fond clair garantit le contraste. */
#padEmpty { inset: auto 12% 50% 12%; transform: translateY(50%); padding: 8px 10px;
  background: rgba(255,255,255,.94); color: #3d3d3a; border-radius: 6px; font-size: 13px; }
/* Poignées du logo (agrandir, tourner) : la règle générique
   « .placement-panel button » (fond noir, padding) les écrasait — elles
   apparaissaient en barres noires sur les vêtements clairs. */
.placement-panel .pad-handle { background: none; padding: 0; width: 44px; height: 44px; min-width: 0; }

/* Vignettes produits : rendus 3D en blanc sur fond #d9d7d0 (personnaliser/
   vignettes/). Le fond de la case reprend cette teinte pour ne pas laisser
   de bandes blanches de part et d'autre de l'image carrée. */
.choice-card img.product-thumb { background: #d9d7d0; }

/* Vêtement foncé (noir, marine…) : fond clair du studio et textes sombres,
   sinon le vêtement se confond avec le fond (app.js, fondAdapte). */
.fond-clair .visual-workspace { background: #ebe9e3; }
.fond-clair .studio-top { color: #161616; }
.fond-clair .studio-view-label { color: #4a4a46; }
.fond-clair .studio-orbit button { color: #161616; background: #ffffffb3; border-color: #a8a69f; }
.fond-clair #modelStatus { color: #161616; }
/* Vignettes de vêtements foncés (body warmer, veste) : rendues sur fond clair. */
.choice-card[data-product="bodywarmer"] img.product-thumb,
.choice-card[data-product="jacket"] img.product-thumb { background: #f1f0ec; }

/* Accès direct au formulaire de devis général (événementiel, stands, autres projets).
   15/10/2026, demande de Jeremy : ces clients doivent le trouver sans chercher. */
.site-links .lien-autre-projet{border:1.5px solid #0a0a0a;padding:0 14px;color:#0a0a0a;font-weight:600}
.site-links .lien-autre-projet:hover,.site-links .lien-autre-projet:focus-visible{background:#0a0a0a;color:#f5f5f2;text-decoration:none}
@media (max-width:760px){.site-links a.lien-autre-projet{display:none}}
.autre-projet{display:flex;align-items:center;justify-content:space-between;gap:14px 20px;flex-wrap:wrap;margin:0 0 18px;padding:16px 18px;border:1.5px solid #1A4FB0;background:#eef2fa;color:#0a0a0a;text-decoration:none}
.autre-projet__texte{flex:1 1 260px;min-width:0;font-size:14px;line-height:1.45;color:rgba(10,10,10,.75)}
.autre-projet__texte strong{display:block;color:#0a0a0a;font-size:15px;margin-bottom:2px}
.autre-projet__bouton{flex:none;display:inline-flex;align-items:center;min-height:44px;padding:0 18px;background:#1A4FB0;color:#fff;font-weight:600;font-size:14px}
.autre-projet:hover .autre-projet__bouton,.autre-projet:focus-visible .autre-projet__bouton{background:#0a0a0a}
.autre-projet:focus-visible{outline:2px solid #1A4FB0;outline-offset:2px}

/* Texte d'essai (15/10/2026) */
.essai-texte{display:grid;gap:8px;margin:18px 0 6px;padding-top:16px;border-top:1px solid #d7d6d0}
.essai-texte label{font-weight:600;font-size:14px}
.essai-texte__ligne{display:flex;gap:8px;flex-wrap:wrap}
.essai-texte input{flex:1 1 180px;min-width:0;min-height:44px;padding:0 12px;border:1px solid #b9b7b0;background:#fff;font:inherit;font-size:15px}
.essai-texte select{flex:0 0 auto;min-height:44px;padding:0 10px;border:1px solid #b9b7b0;background:#fff;font:inherit;font-size:14px}
.essai-texte button{justify-self:start;min-height:44px;padding:0 18px;border:1.5px solid #0a0a0a;background:#fff;font:inherit;font-weight:600;font-size:14px;cursor:pointer}
.essai-texte button:hover,.essai-texte button:focus-visible{background:#0a0a0a;color:#fff}

/* Vue de placement sur vêtement foncé : fond foncé, pour qu'un logo ou un texte
   clair reste visible (15/10/2026). Le guide du vêtement est assombri par fusion. */
.journey-app #positionPad.pad-sombre,#positionPad.pad-sombre{background-color:#2b2b2a;background-blend-mode:multiply}
.journey-app #positionPad.pad-sombre #padEmpty{color:#d8d6d0}

/* Polices du texte d'essai (15/10/2026), hébergées dans polices/ (voir LICENCES.txt). */
@font-face{font-family:'Essai Anton';font-weight:400;font-style:normal;font-display:swap;src:url('./polices/anton.woff2') format('woff2')}
@font-face{font-family:'Essai Bebas Neue';font-weight:400;font-style:normal;font-display:swap;src:url('./polices/bebas-neue.woff2') format('woff2')}
@font-face{font-family:'Essai Montserrat';font-weight:800;font-style:normal;font-display:swap;src:url('./polices/montserrat-800.woff2') format('woff2')}
@font-face{font-family:'Essai Archivo Black';font-weight:400;font-style:normal;font-display:swap;src:url('./polices/archivo-black.woff2') format('woff2')}
@font-face{font-family:'Essai Playfair Display';font-weight:700;font-style:normal;font-display:swap;src:url('./polices/playfair-display-700.woff2') format('woff2')}
@font-face{font-family:'Essai Abril Fatface';font-weight:400;font-style:normal;font-display:swap;src:url('./polices/abril-fatface.woff2') format('woff2')}
@font-face{font-family:'Essai Pacifico';font-weight:400;font-style:normal;font-display:swap;src:url('./polices/pacifico.woff2') format('woff2')}
@font-face{font-family:'Essai Dancing Script';font-weight:700;font-style:normal;font-display:swap;src:url('./polices/dancing-script-700.woff2') format('woff2')}
@font-face{font-family:'Essai Permanent Marker';font-weight:400;font-style:normal;font-display:swap;src:url('./polices/permanent-marker.woff2') format('woff2')}
@font-face{font-family:'Essai Graduate';font-weight:400;font-style:normal;font-display:swap;src:url('./polices/graduate.woff2') format('woff2')}
@font-face{font-family:'Essai UnifrakturMaguntia';font-weight:400;font-style:normal;font-display:swap;src:url('./polices/unifraktur-maguntia.woff2') format('woff2')}
@font-face{font-family:'Essai Special Elite';font-weight:400;font-style:normal;font-display:swap;src:url('./polices/special-elite.woff2') format('woff2')}
.choix-police{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:6px;max-height:232px;overflow-y:auto;padding:2px}
.choix-police button{min-height:52px;padding:6px 8px;border:1px solid #c9c7c0;background:#fff;color:#161616;font-size:19px;line-height:1.1;cursor:pointer;text-align:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.choix-police button small{display:block;font:500 10px/1.2 Archivo,sans-serif;letter-spacing:.04em;color:#77756e;margin-top:3px;text-transform:uppercase}
.choix-police button[aria-checked="true"]{border:2px solid #0a0a0a;background:#f1f0ec}
.choix-police button:focus-visible{outline:2px solid #1A4FB0;outline-offset:1px}
.choix-police [data-police="baton"]{font-family:'Satoshi', sans-serif;font-weight:700}
.choix-police [data-police="fin"]{font-family:'Archivo', sans-serif;font-weight:300}
.choix-police [data-police="classique"]{font-family:'Georgia', serif;font-weight:400}
.choix-police [data-police="anton"]{font-family:'Essai Anton', sans-serif;font-weight:400}
.choix-police [data-police="bebas"]{font-family:'Essai Bebas Neue', sans-serif;font-weight:400}
.choix-police [data-police="montserrat"]{font-family:'Essai Montserrat', sans-serif;font-weight:800}
.choix-police [data-police="archivo-black"]{font-family:'Essai Archivo Black', sans-serif;font-weight:400}
.choix-police [data-police="playfair"]{font-family:'Essai Playfair Display', serif;font-weight:700}
.choix-police [data-police="abril"]{font-family:'Essai Abril Fatface', serif;font-weight:400}
.choix-police [data-police="pacifico"]{font-family:'Essai Pacifico', sans-serif;font-weight:400}
.choix-police [data-police="dancing"]{font-family:'Essai Dancing Script', sans-serif;font-weight:700}
.choix-police [data-police="marker"]{font-family:'Essai Permanent Marker', sans-serif;font-weight:400}
.choix-police [data-police="college"]{font-family:'Essai Graduate', sans-serif;font-weight:400}
.choix-police [data-police="gothique"]{font-family:'Essai UnifrakturMaguntia', serif;font-weight:400}
.choix-police [data-police="machine"]{font-family:'Essai Special Elite', serif;font-weight:400}
.essai-texte__police{margin:4px 0 0;font-size:13px;font-weight:600}
.journey-app .choix-police button,.choix-police button{width:100%;min-width:0;justify-content:center}

/* Bannière de consentement (js/mesure.js), reprise de css/style.css du site
   avec des valeurs fixes : le configurateur ne charge pas les variables du site. */
.mv-consent{position:fixed;left:0;right:0;bottom:0;z-index:9997;display:flex;flex-wrap:wrap;align-items:center;gap:clamp(14px,2vw,28px);padding:clamp(16px,2vw,20px) clamp(18px,4vw,48px);background:#fff;color:#161616;border-top:1px solid rgba(10,10,10,.12);box-shadow:0 -8px 30px rgba(10,10,10,.10)}
.mv-consent__txt{flex:1 1 340px;margin:0;font-size:.92rem;line-height:1.55;color:#5c5c58}
.mv-consent__lien{color:#161616;border-bottom:1px solid rgba(10,10,10,.2);white-space:nowrap;text-decoration:none}
.mv-consent__actes{display:flex;gap:10px;flex:0 0 auto}
.mv-consent__btn{font-size:13px;font-weight:500;letter-spacing:.02em;padding:12px 24px;min-height:44px;border-radius:4px;cursor:pointer;border:1px solid #161616;background:transparent;color:#161616}
.mv-consent__btn--oui{background:#161616;color:#fff}
.mv-consent__btn:focus-visible{outline:2px solid #1a4fb0;outline-offset:2px}
@media(max-width:560px){.mv-consent__actes{flex:1 1 100%}.mv-consent__btn{flex:1 1 0;padding:13px 12px}}
