/* 3D configurator: model at the left, finish panel at the right. */
.cfg3d{--cfg-line:#ffffff24;--cfg-orange:#ff6a33;display:grid;grid-template-columns:minmax(0,1fr) 390px;border:1px solid var(--cfg-line);background:#141514;color:#f1f1ee;font-family:inherit}
.cfg3d button{font:inherit;color:inherit;cursor:pointer}
.cfg3d-stage{position:relative;min-height:560px;border-right:1px solid var(--cfg-line);background:radial-gradient(120% 90% at 50% 0%,#232523,#0f100f 70%);overflow:hidden;isolation:isolate}
.cfg3d-frame{position:absolute;inset:0;width:100%;height:100%;border:0;background:transparent}
.cfg3d-glass{background:#0e0f0ee0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--cfg-line);border-radius:0}
.cfg3d-seg{display:inline-flex;gap:2px;padding:3px;background:#ffffff0d;border-radius:0}
.cfg3d-seg button{border:0;background:none;padding:9px 14px;border-radius:0;color:#a9aaa5;font-size:14px;line-height:1.3;white-space:nowrap;transition:background .2s,color .2s}
.cfg3d-seg button.is-on{background:#ff6a3326;color:#ff8a5c;box-shadow:inset 0 0 0 1px #ff6a3399}
.cfg3d-dock{position:absolute;left:14px;right:14px;bottom:14px;z-index:5;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:8px;pointer-events:none}
.cfg3d-dock>*{pointer-events:auto}
.cfg3d-views{padding:4px}
.cfg3d-light{display:flex;align-items:center;gap:14px;padding:4px 14px 4px 4px}
.cfg3d-cut-wrap{display:flex;align-items:center;gap:10px}
.cfg3d-cut-wrap b{font-weight:400;font-size:12px;color:#8f908c;text-transform:uppercase;letter-spacing:.05em}
.cfg3d-cut-wrap .cfg3d-cut{gap:10px}
.cfg3d-cut-wrap input[type=range]{width:120px;min-width:80px}
.cfg3d-cut-wrap .cfg3d-cut span{min-width:82px;text-align:left}
.cfg3d-tools{position:absolute;right:14px;top:14px;z-index:5;display:grid;gap:6px}
.cfg3d-ibtn{display:grid;place-items:center;width:42px;height:42px;padding:0;border:1px solid var(--cfg-line);background:#0e0f0ee0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:0;transition:border-color .2s,color .2s}
.cfg3d-ibtn svg{width:18px;height:18px;stroke:currentColor;stroke-width:1.5;fill:none}
.cfg3d-ibtn.is-on{border-color:var(--cfg-orange);color:var(--cfg-orange)}
.cfg3d-side{display:flex;flex-direction:column;min-width:0;max-height:560px}
.cfg3d-scroll{flex:1;overflow:auto;padding:22px 22px 8px;display:grid;gap:22px;align-content:start;scrollbar-width:thin;scrollbar-color:#ff6a33 #ffffff14}
.cfg3d-sec{display:grid;gap:12px}
.cfg3d-sec h3{margin:0;display:flex;justify-content:space-between;gap:12px;font-size:13px;font-weight:400;line-height:1.3;color:#8f908c;text-transform:uppercase;letter-spacing:.05em}
.cfg3d-sec h3 em{font-style:normal;color:var(--cfg-orange);text-align:right}
.cfg3d-targets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.cfg3d-target{display:grid;gap:8px;justify-items:start;align-content:start;padding:12px;border:1px solid var(--cfg-line);background:none;border-radius:0;text-align:left;font-size:14px;line-height:1.25;color:#c9cac6;transition:border-color .2s,background .2s,color .2s}
.cfg3d-target small{display:flex;align-items:center;gap:6px;font-size:12px;line-height:1.3;color:#8f908c}
.cfg3d-target.is-on{border-color:var(--cfg-orange);background:#ff6a3312;color:#fff}
.cfg3d-dot{display:inline-block;flex:none;width:16px;height:16px;border-radius:50%;border:1px solid #ffffff40}
.cfg3d-chips{display:flex;flex-wrap:wrap;gap:6px}
.cfg3d-chip{padding:7px 12px;border:1px solid var(--cfg-line);background:none;border-radius:0;font-size:13px;line-height:1.3;color:#b9bab5;transition:border-color .2s,background .2s,color .2s}
.cfg3d-chip.is-on{border-color:var(--cfg-orange);color:#fff;background:#ff6a3314}
.cfg3d-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 8px}
.cfg3d-item{display:grid;gap:6px;padding:0;border:0;background:none;text-align:left;font-size:12px;line-height:1.25;color:#b9bab5;min-width:0}
.cfg3d-item>span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cfg3d-item.is-on>span:last-child{color:#fff}
.cfg3d-sw{--c:#b8874e;position:relative;display:block;aspect-ratio:1.5;border:1px solid #ffffff1f;border-radius:0;background:var(--c) url(../bimx/assets/wood-sample.png) center/cover;background-blend-mode:multiply;transition:transform .2s,border-color .2s}
.cfg3d-sw.is-on{border-color:var(--cfg-orange);box-shadow:0 0 0 1px var(--cfg-orange)}
.cfg3d-sw.is-on::after{content:'';position:absolute;right:5px;top:5px;width:16px;height:16px;border-radius:50%;background:var(--cfg-orange) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23fff' stroke-width='1.8'%3E%3Cpath d='m4 8.3 2.5 2.5L12 5.5'/%3E%3C/svg%3E") center/12px no-repeat}
.cfg3d-cut{display:flex;align-items:center;gap:12px}
.cfg3d-cut span{font-size:13px;color:#b9bab5;white-space:nowrap;min-width:90px;text-align:right}
.cfg3d input[type=range]{-webkit-appearance:none;appearance:none;height:4px;background:linear-gradient(90deg,var(--cfg-orange) var(--p,100%),#ffffff26 var(--p,100%));border-radius:0;outline:0;width:100%;min-width:90px}
.cfg3d input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--cfg-orange);border:2px solid #141514;box-shadow:0 0 0 1px var(--cfg-orange)}
.cfg3d input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--cfg-orange);border:2px solid #141514}
.cfg3d-sum{display:grid;gap:12px;padding:16px 22px 20px;border-top:1px solid var(--cfg-line);background:#101110}
.cfg3d-sum h3{margin:0;font-size:12px;font-weight:400;color:#8f908c;text-transform:uppercase;letter-spacing:.05em}
.cfg3d-sum ul{margin:0;padding:0;list-style:none;display:grid;gap:8px;font-size:14px}
.cfg3d-sum li{display:flex;align-items:center;gap:10px;color:#c9cac6}
.cfg3d-sum li b{margin-left:auto;font-weight:400;color:#fff}
.cfg3d-sum .project-3d-discuss{display:flex;align-items:center;justify-content:center;gap:14px;width:100%;min-height:56px;padding:14px 18px;border:1px solid #ff6a33;border-radius:0;background:#ff6a33;color:#fff;font:inherit;font-size:16px;line-height:1.3;text-decoration:none}
.cfg3d.is-loading .cfg3d-side{opacity:.55;pointer-events:none}
.cfg3d.is-loading .cfg3d-dock,.cfg3d.is-loading .cfg3d-tools{opacity:.55;pointer-events:none}
.cfg3d :is(button,a):focus-visible{outline:2px solid #ff9467;outline-offset:2px}
@media(hover:hover){.cfg3d-seg button:hover:not(.is-on){color:#fff;background:#ffffff0d}.cfg3d-ibtn:hover{border-color:var(--cfg-orange)}.cfg3d-chip:hover:not(.is-on),.cfg3d-target:hover:not(.is-on){border-color:#ffffff59}.cfg3d-item:hover .cfg3d-sw{transform:translateY(-2px);border-color:#ffffff80}.cfg3d-sum .project-3d-discuss:hover{background:#e85a25;border-color:#e85a25}}

/* Expanded / fullscreen: the model and the panel keep working together. */
.cfg3d.is-expanded{position:fixed;inset:0;z-index:2000;grid-template-columns:minmax(0,1fr) 390px;border:0;background:#0b0b0b}
.cfg3d.is-expanded .cfg3d-stage,.cfg3d.is-expanded .cfg3d-side{height:100vh;min-height:0;max-height:100vh}
.cfg3d:fullscreen{width:100%;height:100%}
html.cfg3d-lock,html.cfg3d-lock body{overflow:hidden}

@media(max-width:1000px){
 .cfg3d{grid-template-columns:minmax(0,1fr)}
 .cfg3d-stage{min-height:0;height:min(520px,100vw * .9);border-right:0;border-bottom:1px solid var(--cfg-line)}
 .cfg3d-side{max-height:none}
 .cfg3d.is-expanded{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;overflow:auto}
 .cfg3d.is-expanded .cfg3d-stage{height:62vh;min-height:320px}
 .cfg3d.is-expanded .cfg3d-side{height:auto;max-height:none}
}
@media(max-width:640px){
 .cfg3d-stage{height:min(440px,112vw)}
 .cfg3d-scroll{padding:18px 16px 6px}
 .cfg3d-sum{padding:14px 16px 18px}
 .cfg3d-dock{left:10px;right:10px;bottom:10px}
 .cfg3d-views,.cfg3d-light{width:100%}
 .cfg3d-views .cfg3d-seg,.cfg3d-light .cfg3d-seg{display:flex}
 .cfg3d-views .cfg3d-seg button,.cfg3d-light .cfg3d-seg button{flex:1;padding-inline:6px}
 .cfg3d-light{flex-direction:column;align-items:stretch;gap:8px;padding:4px 4px 10px}
 .cfg3d-cut-wrap{padding-inline:8px}
 .cfg3d-cut-wrap .cfg3d-cut{flex:1}
 .cfg3d-cut-wrap input[type=range]{width:100%}
 .cfg3d-tools{right:10px;top:10px}
 .cfg3d-ibtn{width:38px;height:38px}
 .cfg3d-targets{grid-template-columns:1fr}
 .cfg3d-target{grid-template-columns:minmax(0,1fr) auto;align-items:center}
 .cfg3d-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(prefers-reduced-motion:reduce){.cfg3d *{transition:none!important}}
.project-3d-heading{margin:0 0 26px;color:#f0f0ed;font-size:clamp(28px,2.3vw,40px);font-weight:400;line-height:1.15;letter-spacing:normal}
@media(max-width:640px){.project-3d-heading{font-size:30px;margin-bottom:20px}}

.cfg3d-sw.is-plain{background:var(--c)}
.cfg3d-chips[hidden]{display:none}

/* The section is lifted above sticky headers and neighbours while the configurator is expanded. */
.project-3d.cfg3d-host{position:relative;z-index:100000;isolation:isolate}

/* The finish library opens separately; the side panel shows the current choice. */
.cfg3d-picker{padding:28px 24px;display:grid;gap:16px;align-content:start;flex:1}
.cfg3d-picker h3{font-size:26px;font-weight:400;line-height:1.2;margin:0;letter-spacing:normal}
.cfg3d-picker p{font-size:16px;line-height:1.5;color:#999b95;margin:0 0 8px;max-width:280px}
.cfg3d-picker-open{display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;min-height:56px;padding:14px 20px;border:1px solid #ff6a33;background:transparent;color:#fff;font-size:16px;border-radius:2px}
.cfg3d-picker-open span{font-size:24px;color:#ff6a33}
.cfg3d-picker-open:hover{background:#ffffff08}
.cfg3d-palette-dialog{position:fixed;inset:0;width:min(680px,calc(100% - 48px));max-width:none;max-height:calc(100dvh - 64px);height:auto;margin:auto;padding:0;border:1px solid #44463f;background:#141514;color:#f1f1ee;font-family:inherit;overflow:hidden;letter-spacing:normal}
.cfg3d-palette-dialog[open]{display:flex;flex-direction:column}
.cfg3d-palette-dialog::backdrop{background:#0008}
.cfg3d-palette-head{display:flex;align-items:start;justify-content:space-between;gap:24px;padding:24px 28px;border-bottom:1px solid #ffffff24;flex:none}
.cfg3d-palette-head h2{font-size:28px;font-weight:400;line-height:1.2;margin:0 0 8px;letter-spacing:normal}
.cfg3d-palette-head p{font-size:15px;line-height:1.4;color:#a2a49d;margin:0}
.cfg3d-palette-head>button{display:grid;place-items:center;width:44px;height:44px;flex:none;padding:0;border:1px solid #ffffff30;background:none;color:#fff;font-size:28px}
.cfg3d-palette-dialog .cfg3d-scroll{padding:24px 28px;min-height:0;overflow:auto;gap:24px}
.cfg3d-palette-dialog .cfg3d-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.cfg3d-palette-dialog .cfg3d-item{font-size:14px}
.cfg3d-palette-dialog .cfg3d-item>span:last-child{white-space:normal;overflow:visible;text-overflow:clip}
.cfg3d-palette-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 28px;border-top:1px solid #ffffff24;flex:none}
.cfg3d-palette-footer>span{font-size:14px;color:#92958e;line-height:1.4}
.cfg3d-palette-footer>button{min-height:56px;min-width:140px;padding:12px 24px;border:1px solid #ff6a33;background:#ff6a33;color:#fff;font-size:16px;border-radius:2px}
@media(max-width:700px){
 .cfg3d-picker{padding:24px 20px;gap:12px}
 .cfg3d-picker h3{font-size:24px}
 .cfg3d-palette-dialog{width:calc(100% - 24px);max-height:calc(100dvh - 24px)}
 .cfg3d-palette-head{padding:20px;gap:16px}
 .cfg3d-palette-head h2{font-size:26px}
 .cfg3d-palette-dialog .cfg3d-scroll{padding:20px;gap:20px}
 .cfg3d-palette-dialog .cfg3d-targets{grid-template-columns:1fr}
 .cfg3d-palette-dialog .cfg3d-target{display:flex;align-items:center;justify-content:space-between}
 .cfg3d-palette-dialog .cfg3d-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
 .cfg3d-palette-footer{padding:16px 20px;gap:12px}
 .cfg3d-palette-footer>button{min-width:110px}
}

html.cfg3d-palette-open{overflow:hidden}

.cfg3d-picker-open>svg,.cfg3d-sum .project-3d-discuss>svg{display:block;width:20px;height:20px;flex:0 0 20px}.cfg3d-picker-open>svg{color:#ff6a33}.cfg3d-sum .project-3d-discuss>svg{color:#fff}

/* Keep the consultation CTA legible in the narrow side panel. */
.cfg3d-picker .cfg3d-picker-open{border-radius:0;font-size:var(--btn-fs-m);height:var(--btn-h-m);min-height:var(--btn-h-m);padding:0 var(--btn-pad);border-color:var(--btn-line)}
.cfg3d-sum .project-3d-discuss{width:100%;margin-top:8px;white-space:normal}
.cfg3d-sum .project-3d-discuss>span:first-child{min-width:0}
.cfg3d-palette-footer>button{border-radius:0}

.cfg3d-palette-footer>button{height:var(--btn-h-m);min-height:var(--btn-h-m);font-size:var(--btn-fs-m);padding:0 var(--btn-pad)}
