/* =========================================================================
   modelisation-3d.css — /projets/modelisation-3d. Complète demo.css.
   ========================================================================= */

.m3d-bloc {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
    gap: 22px 30px;
    align-items: start;
}
.m3d-texte h3 { font-size: 1rem; font-weight: 700; margin-bottom: 0.7rem; }

/* --- Visionneuse ------------------------------------------------------------ */
.v3d { display: grid; gap: 10px; min-width: 0; }
.v3d-scene {
    position: relative;
    aspect-ratio: 4 / 3;
    border-radius: 14px;
    border: 1px solid var(--border-color);
    /* Fond clair et neutre dans les deux thèmes : une pièce noire sur un
       fond sombre ne se lirait pas. */
    background: radial-gradient(circle at 50% 40%, #FFFFFF, #DAD6E6);
    overflow: hidden;
}
.v3d-scene canvas { display: block; width: 100%; height: 100%; cursor: grab; touch-action: none; }
.v3d-scene canvas:active { cursor: grabbing; }
.v3d-scene canvas:focus-visible { outline: 3px solid var(--accent-color); outline-offset: -3px; border-radius: 14px; }
.v3d-message {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 20px;
    text-align: center;
    color: #3B3453;
    font-size: 0.9rem;
    pointer-events: none;
}
.v3d-barre { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px; }

/* --- Rendus et plans ----------------------------------------------------- */
.m3d-medias { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 14px; }
.m3d-media { margin: 0; padding: 10px; display: grid; gap: 8px; }
.m3d-media video { display: block; width: 100%; height: auto; border-radius: 10px; background: #FFF; }
.m3d-media figcaption,
.m3d-plan figcaption { font-size: 0.84rem; color: var(--text-secondary); padding: 0 4px 2px; }

.m3d-plans { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 14px; }
.m3d-plan { margin: 0; padding: 10px; display: grid; gap: 8px; justify-items: center; }
.m3d-plan img { max-height: 520px; width: auto; border-radius: 8px; background: #FFF; }

@media (max-width: 860px) {
    .m3d-bloc { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
    .m3d-medias,
    .m3d-plans { grid-template-columns: 1fr; }
}
