/* Shared visual framing for the same coupe on all three service pages. */
body #visual :is(.stage,.viz-stage) { height:540px; min-height:0; align-self:start; position:sticky; top:96px; border:1px solid #d3cdc1; border-radius:18px; background:radial-gradient(ellipse at 50% 30%,#fffefa,#ded8cc)!important; box-shadow:0 16px 45px #29241a08; }
body #visual :is(.stage,.viz-stage)::after { display:none; }
body #visual :is(.side,.viz-side) { min-width:0; }
body #visual :is(.card,.side-card,.panel) { background:#fffefa; border-color:#d3cdc1; color:#202326; border-radius:14px; box-shadow:none; }
body #visual :is(.muted,.radio .sub,.addon label,.mini-note,.bullets,.surface-class small) { color:#50534f!important; font-size:16px; }
body #visual :is(.radio .h,.t,.side-title,.addon .p,label,.bullets span) { color:#202326!important; }
body #visual :is(.radio,.addon,.tab,.sel-pill,.btn-mini) { color:#202326; background:#f7f4ed; border:1px solid #aaa69d; border-radius:8px; }
body #visual .radio:has(input:checked) { border-color:#bd2319; background:#fff2eb; box-shadow:inset 3px 0 #bd2319; }
body #visual :is(.tab.active,.sel-pill.active,.btn-mini.gold) { background:#bd2319; border-color:#bd2319; color:#fff; }
body #visual :is(select,input[type=text],input[type=email],input[type=tel]) { background:#fff; color:#202326; border-color:#aaa69d; font-size:16px; }
body #visual :is(.chip,.viz-chip,.viz-hint,.hint,.viz-dock) { background:#fffefaf2; border-color:#cec7bb; color:#202326; box-shadow:none; }
body #visual :is(.chip .v,.viz-chip .v,.vd-v,.vd-price,.hint b,.viz-hint b) { color:#202326!important; }
body #visual :is(.chip .k,.viz-chip .k,.vd-k) { color:#50534f; letter-spacing:.04em; }
body #visual :is(.hint,.viz-hint) { bottom:90px; font-size:14px; line-height:1.4; }
body #visual :is(.btn-mini,.tab,.sel-pill,.vd-cta) { min-height:44px; font-size:14px; }
body #visual :is(button,input,select):focus-visible { outline:3px solid #bd2319; outline-offset:3px; }
body #visual .swatch { min-width:44px; min-height:44px; }
@media(max-width:1100px) {
  body #visual :is(.stage,.viz-stage) { position:relative; top:auto; height:460px; }
}
@media(max-width:520px) {
  body #visual :is(.stage,.viz-stage) { height:420px; }
  body #visual :is(.hint,.viz-hint) { display:none; }
  body #visual :is(.chipbar .chip:first-child,.viz-topbar .viz-chip:first-child) { display:none; }
  body #visual :is(.chipbar .chip,.viz-topbar .viz-chip) { max-width:100%; }
  body #visual :is(.chip .v,.viz-chip .v) { font-size:12px; letter-spacing:0; text-transform:none; }
  body #visual .viz-dock { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; }
  body #visual .viz-dock .vd-info { grid-column:1/-1; }
  body #visual .viz-dock .vd-v { white-space:normal; font-size:14px; line-height:1.35; }
}
.ccc-model-credit { max-width:1200px; margin:16px auto; padding:0 20px; font:400 12px/1.65 'Manrope',sans-serif; color:#5c5e58; }
.ccc-model-credit a { color:inherit; text-decoration:underline; text-underline-offset:3px; }
body #interieur3d .iv-stage { position:relative; top:auto; height:480px; min-height:0; border-color:#d3cdc1; background:radial-gradient(ellipse at 50% 30%,#fffefa,#ded8cc); }
#ivCanvas { display:block; width:100%; height:100%; touch-action:pan-y pinch-zoom; }
body #interieur3d .iv-status { bottom:14px; padding:0 18px; font:500 14px/1.45 'Manrope',sans-serif; text-transform:none; letter-spacing:0; color:#50534f; }
body #interieur3d .iv-card { background:#fffefa; border-color:#d3cdc1; color:#202326; }
body[data-service-navigation] #interieur3d .iv-card .iv-t { color:#202326!important; }
body #interieur3d .iv-note { color:#50534f; font-size:16px; }
body #interieur3d .iv-chip { min-height:48px; background:#f5f1e8; border-color:#aaa69d; color:#202326; border-radius:8px; }
body #interieur3d .iv-chip.active { background:#bd2319; border-color:#bd2319; color:#fff; }
body #interieur3d .iv-chip:focus-visible { outline:3px solid #bd2319; outline-offset:3px; }
body #interieur3d .iv-wrap { grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); }
@media(max-width:860px) {
  body #interieur3d .iv-wrap { grid-template-columns:1fr; }
  body #interieur3d .iv-stage { height:360px; position:relative; top:auto; }
}
@media(max-width:420px) { body #interieur3d .iv-stage { height:300px; } }
