/* ABBA 1.14: readable typography and interaction-led motion. */
.scene-heading{top:28px;left:28px;right:24px;max-width:calc(100% - 52px);isolation:isolate}
.scene-heading:before{content:'';display:block;width:44px;height:3px;margin-bottom:15px;border-radius:4px;background:linear-gradient(90deg,#f5e5ad,#b79a56);box-shadow:0 0 16px #dcc78b35;transform-origin:left}
.scene-heading .eyebrow{font-size:12px;font-weight:700;letter-spacing:.19em;color:#f0dcaa;margin-bottom:12px}
.scene-heading h1{font-size:clamp(34px,4.8vw,52px);font-weight:750;line-height:1.08;letter-spacing:-.045em;color:#fff;margin:0;overflow-wrap:anywhere;text-shadow:0 2px 12px #08261c66}
.scene-heading .scene-sub{font-size:15px;line-height:1.5;color:#fff;margin-top:12px;font-weight:500}
.scene-sub,.hint,.fixture-data-panel .metric span,.fixture-data-panel .ip-badge span,.fixture-data-panel .selection-note,.fixture-data-panel .intro,.fixture-data-panel .included-list p,.fixture-data-panel .state,#ar-help,#status,#iphone-status{color:#fff;text-shadow:-.5px 0 #10291f,.5px 0 #10291f,0 -.5px #10291f,0 .5px #10291f}
@supports(-webkit-text-stroke:.25px #10291f){.scene-sub,.hint{-webkit-text-stroke:.25px #10291f;paint-order:stroke fill}}
.hint{font-size:13px;line-height:1.5;font-weight:500;left:24px;bottom:22px;max-width:250px;padding:8px 12px;border:1px solid #ffffff26;border-radius:9px;background:#0b291cbd;backdrop-filter:blur(6px)}
.view-buttons{padding:5px;gap:4px;background:#10382beb;border-color:#78978180;bottom:22px;right:20px}
.view-buttons button{font-size:13px;min-height:40px;padding:9px 10px;color:#fff;font-weight:600;transition:transform .25s,background .25s,box-shadow .25s}
.view-buttons button[aria-pressed=true]{background:#dccc9e;color:#183426;box-shadow:0 2px 8px #0003}
.fixture-data-panel .section-label{font-size:12px;line-height:1.5;letter-spacing:.13em;color:#eedbab;font-weight:600}
.fixture-data-panel .panel-title{font-size:25px;font-weight:500;line-height:1.25}
.fixture-data-panel .finish-name{font-size:14px;line-height:1.4;font-weight:600}
.fixture-data-panel .finish-card{min-height:56px;padding:11px 10px;position:relative;overflow:hidden;isolation:isolate;transition:transform .25s cubic-bezier(.2,.8,.2,1),border-color .25s,box-shadow .25s,background .25s}
.fixture-data-panel .swatch{width:25px;height:25px;transition:transform .6s cubic-bezier(.2,.8,.2,1),box-shadow .4s}
.fixture-data-panel .finish-card[aria-pressed=true]{background:linear-gradient(135deg,#516747,#294d36);border-color:#efdaa1;box-shadow:inset 0 0 0 1px #f2dc9d22,0 3px 12px #0002}
.fixture-data-panel select{font-size:14px;line-height:1.4;min-height:46px;padding:10px;color:#fff;transition:border-color .25s,box-shadow .25s,background .25s}
.fixture-data-panel select:hover,.fixture-data-panel select:focus{background:#315c43;border-color:#ddc790;box-shadow:0 0 0 3px #ddc79016}
.fixture-data-panel .power-row{font-size:15px;min-height:64px}
.fixture-data-panel .power-row input{width:52px;height:30px;margin:0;transition:background .3s,box-shadow .3s}
.fixture-data-panel .power-row input:after{width:22px;height:22px;top:4px;left:4px;transition:transform .38s cubic-bezier(.3,1.5,.5,1),box-shadow .3s}
.fixture-data-panel .power-row input:checked:after{transform:translateX(22px);box-shadow:0 0 10px #fff9}
.fixture-data-panel .power-row input:checked{animation:abba-power-confirm .8s ease-out 1}
.fixture-data-panel .metric strong{font-size:25px;color:#fff}
.fixture-data-panel .metric span,.fixture-data-panel .ip-badge span{font-size:13px;line-height:1.45}
.fixture-data-panel .included-list .section-label{font-size:11px;color:#eedbab}
.fixture-data-panel .included-list p,.fixture-data-panel .selection-note,.fixture-data-panel .intro,.fixture-data-panel .state{font-size:13px;line-height:1.65;color:#fff}
.fixture-data-panel .download{position:relative;overflow:hidden;isolation:isolate;font-size:14px;min-height:48px;padding:14px 12px;transition:transform .25s,box-shadow .25s,background .25s}
.fixture-data-panel .finish-card:before,.fixture-data-panel .download:before{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 25%,#fff3 48%,transparent 70%);transform:translateX(-140%);width:auto;height:auto;left:0;top:0;animation:none}
.fixture-data-panel .finish-card:active,.fixture-data-panel .download:active,.view-buttons button:active{transform:scale(.97)}
.fixture-data-panel .finish-card:focus-visible,.fixture-data-panel .download:focus-visible{outline:2px solid #fff0bd;outline-offset:3px}
#ar-help,#status,#iphone-status{font-size:13px;line-height:1.6}
#plb30-viewer .viewport{height:auto;min-height:780px}
#plb30-viewer #product-canvas{position:absolute;inset:0;width:100%;height:100%}
#plb30-viewer[data-ready=true] .scene-heading{animation:abba-heading-in .65s ease-out both}
#plb30-viewer[data-ready=true] .scene-heading:before{animation:abba-line-in .85s ease-out both}
@media(hover:hover){
 .fixture-data-panel .finish-card:hover{transform:translateY(-3px);border-color:#f2dca5;box-shadow:0 8px 20px #0003}
 .fixture-data-panel .finish-card:hover .swatch{transform:rotate(75deg) scale(1.12);box-shadow:0 0 14px #e8ca7c55}
 .fixture-data-panel .finish-card:hover:before,.fixture-data-panel .download:hover:before{animation:abba-sheen .7s ease-out both}
 .fixture-data-panel .download:hover{transform:translateY(-3px);box-shadow:0 8px 22px #0004;background:#f0e2bc}
}
@keyframes abba-heading-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes abba-line-in{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes abba-sheen{from{transform:translateX(-140%)}to{transform:translateX(140%)}}
@keyframes abba-power-confirm{0%{box-shadow:0 0 0 0 #efcb8066}100%{box-shadow:0 0 0 12px #efcb8000}}
@media(max-width:1100px){.hint{bottom:84px;max-width:calc(100% - 48px)}.view-buttons{left:24px;right:auto;max-width:calc(100% - 48px);flex-wrap:wrap}}
@media(max-width:660px){#plb30-viewer .viewport{height:460px;min-height:460px}.scene-heading{top:22px;left:22px}.scene-heading h1{font-size:38px}.scene-heading .scene-sub{font-size:14px}.hint{left:16px;bottom:82px;font-size:13px;max-width:calc(100% - 32px)}.view-buttons{left:16px;right:auto;bottom:18px;max-width:calc(100% - 32px)}.view-buttons button{font-size:12px;padding:8px}.fixture-data-panel .included-card{display:block}.fixture-data-panel .included-list{border:0;padding:0}.fixture-data-panel .ip-badge{padding-bottom:10px}.fixture-data-panel .measurements{gap:24px}}
@media(prefers-reduced-motion:reduce){#plb30-viewer *, .fixture-data-panel *{animation:none!important;transition:none!important}.fixture-data-panel .finish-card:hover,.fixture-data-panel .download:hover,.fixture-data-panel .swatch,.view-buttons button:hover{transform:none!important}}

/* v1.18: identical compact frame for all prepared catalog fixtures. */
#plb30-viewer{width:100%;max-width:960px;margin:0 auto}
#plb30-viewer .layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;grid-template-rows:minmax(0,1fr);height:560px;min-height:0;overflow:hidden;border-radius:14px}
#plb30-viewer .viewport{height:100%;min-height:0}
#plb30-viewer .panel{height:100%;min-height:0;overflow-y:auto;overflow-x:hidden;padding:20px;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#ad9c70 #193f30}
#plb30-viewer .panel>*{flex-shrink:0}
#plb30-viewer .panel:focus-visible{outline:2px solid #ead5a0;outline-offset:-3px}
#plb30-viewer .scene-heading{top:18px;left:22px;right:20px}
#plb30-viewer .scene-heading:before{margin-bottom:10px}
#plb30-viewer .scene-heading .eyebrow{font-size:11px;margin-bottom:8px}
#plb30-viewer .scene-heading h1{font-size:34px}
#plb30-viewer .scene-heading .scene-sub{font-size:14px;margin-top:8px}
#plb30-viewer .hint{left:18px;bottom:76px;max-width:calc(100% - 36px);font-size:12px;padding:6px 9px}
#plb30-viewer .view-buttons{left:18px;right:auto;bottom:16px;max-width:calc(100% - 36px);flex-wrap:wrap}
#plb30-viewer .view-buttons button{font-size:12px;min-height:40px;padding:8px}
@media(max-width:660px){
 #plb30-viewer .layout{height:660px;grid-template-columns:minmax(0,1fr);grid-template-rows:340px minmax(0,1fr)}
 #plb30-viewer .viewport{height:340px;min-height:0}
 #plb30-viewer .panel{padding:18px;border-left:0;border-top:1px solid #587761}
 #plb30-viewer .scene-heading{top:14px;left:16px}
 #plb30-viewer .scene-heading:before{display:none}
 #plb30-viewer .scene-heading h1{font-size:28px}
 #plb30-viewer .scene-heading .eyebrow{font-size:10px;margin-bottom:6px}
 #plb30-viewer .scene-heading .scene-sub{margin-top:6px}
 #plb30-viewer .hint{left:12px;bottom:66px;font-size:11px;max-width:calc(100% - 24px)}
 #plb30-viewer .view-buttons{left:12px;bottom:10px;max-width:calc(100% - 24px)}
 #plb30-viewer .fixture-data-panel .configuration{grid-template-columns:minmax(0,1fr)}
}

/* v1.19 wall preview: primary controls stay visible, only specifications scroll. */
#plb30-viewer .wall-studio-panel{display:flex;padding:0;overflow:hidden;scrollbar-gutter:auto}
.wall-studio-panel .fixture-primary{flex:none;padding:14px 16px;background:#173e30;border-bottom:1px solid #7a8c6d;box-shadow:0 7px 18px #0002;z-index:1}
.wall-studio-panel .fixture-details-scroll{min-height:0;flex:1!important;overflow-y:auto;padding:18px 16px;scrollbar-width:thin;scrollbar-color:#bdad7e #173e30}
.wall-studio-panel .fixture-primary .power-row{border:0;margin:0 0 10px;padding:0;min-height:32px;font-size:14px}
.wall-studio-panel .quick-light-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.wall-studio-panel .fixture-primary .section-label{font-size:10px;letter-spacing:.05em;margin:0}
.wall-studio-panel .fixture-primary select{min-height:40px;font-size:12px;padding:8px 4px}
.wall-studio-panel .fixture-primary .download{margin:10px 0 0;min-height:42px;padding:11px 8px;font-size:13px}
.wall-studio-panel .fixture-primary .state{font-size:11px;line-height:1.3;padding-top:7px}
.wall-studio-panel .fixture-primary .spectrum-field{grid-template-columns:auto 1fr;align-items:center;margin-top:8px;gap:8px}
.wall-studio-panel .fixture-primary .spectrum-picker{height:32px}
.wall-studio-panel .fixture-primary .spectrum-value{display:none}
.wall-studio-panel .panel-title{font-size:21px}
.wall-studio-panel .configuration:empty{display:none}
.wall-preview-toolbar{position:absolute;right:14px;top:16px;z-index:2;display:grid;gap:8px;width:146px;padding:9px;background:#153e30ee;border:1px solid #b9a67470;border-radius:10px;color:white;box-shadow:0 4px 20px #0003}
.wall-preview-toolbar label{font:11px/1.5 Arial,sans-serif;letter-spacing:.04em}
.wall-preview-toolbar select{display:block;width:100%;margin-top:4px;padding:7px 4px;background:#264b3c;border:1px solid #bba57580;border-radius:6px;color:white;font:12px Arial,sans-serif}
.day-night{display:flex;gap:4px}.day-night button{flex:1;border:1px solid #8c9b8466;border-radius:6px;background:#163b2b;color:white;padding:8px 3px;cursor:pointer;transition:background .25s,transform .2s;font:12px Arial,sans-serif}.day-night button[aria-pressed=true]{background:#e1d1a8;color:#153728}.day-night button:hover{transform:translateY(-1px)}
.wall-preview-toolbar :focus-visible,.fixture-details-scroll:focus-visible{outline:2px solid #f8e7b6;outline-offset:2px}
#plb30-viewer.wall-studio .scene-heading{right:176px}
@media(max-width:660px){
 #plb30-viewer.wall-studio .layout{grid-template-rows:320px minmax(0,1fr)}
 #plb30-viewer.wall-studio .viewport{height:320px}
 .wall-studio-panel .fixture-primary{padding:10px 12px}
 .wall-studio-panel .fixture-details-scroll{padding:12px}
 .wall-studio-panel .fixture-primary .state{padding-top:4px}
 .wall-preview-toolbar{width:130px;top:10px;right:10px;padding:7px}
 #plb30-viewer.wall-studio .scene-heading{right:155px}
 #plb30-viewer.wall-studio .scene-heading h1{font-size:25px}
 #plb30-viewer.wall-studio .scene-heading .eyebrow{font-size:8px;letter-spacing:.08em}
}
@media(prefers-reduced-motion:reduce){.day-night button{transition:none}}

/* v1.20 optional wall and paint palette, collapsed to keep the scene clear. */
.wall-preview-toolbar{width:162px}
.wall-preview-toolbar [hidden]{display:none!important}
.wall-paint{border-top:1px solid #b9a67450;padding-top:6px;font:12px/1.5 Arial,sans-serif}
.wall-paint summary{cursor:pointer;color:#f0dfb8;min-height:24px}
.wall-paint select{margin-bottom:7px}
.wall-paint input[type=color]{display:block;width:100%;height:34px;padding:3px;background:#264b3c;border:1px solid #bba57580;border-radius:6px;cursor:pointer}
#plb30-viewer.wall-studio .scene-heading{right:193px}
@media(max-width:660px){.wall-preview-toolbar{width:144px}#plb30-viewer.wall-studio .scene-heading{right:166px}}

/* IES profile source selection. Primary light / AR controls remain pinned. */
.photometry-options{margin-bottom:18px;padding:11px;border:1px solid #c8b67c80;border-radius:9px;background:#234b39}
.photometry-options label{display:grid;gap:6px;color:#efdbac;font-size:11px;letter-spacing:.08em}
.photometry-options select{min-height:42px;font-size:12px;padding:8px;letter-spacing:normal}
.photometry-note{font:12px/1.5 Arial,sans-serif;color:#f4f1e5;margin:9px 0 0;letter-spacing:normal}

/* Path-light background controls share the wall studio's compact toolbar. */
#plb30-viewer.ground-studio .scene-heading{right:193px}
@media(max-width:660px){
 #plb30-viewer.ground-studio .scene-heading{right:166px}
 #plb30-viewer.ground-studio .scene-heading h1{font-size:25px}
 #plb30-viewer.ground-studio .scene-heading .eyebrow{font-size:8px;letter-spacing:.08em}
}

/* v1.26: one fixed frame and pinned controls for all fixture profiles. */
#plb30-viewer.universal-studio .scene-heading{right:193px}
#plb30-viewer .universal-fixture-panel{flex-direction:column}
.universal-fixture-panel .fixture-primary .finish-options{display:flex;flex-wrap:nowrap;gap:6px;overflow-x:auto;margin:0 0 8px;padding:2px}
.universal-fixture-panel .fixture-primary .finish-card{flex:1;min-width:90px;min-height:36px;padding:5px 7px;gap:6px;font-size:11px;border-radius:7px}
.universal-fixture-panel .fixture-primary .swatch{width:20px;height:20px;flex:none}
.universal-fixture-panel .fixture-primary .finish-name{font-size:11px;line-height:1.3}
.universal-fixture-panel .fixture-primary .power-row{margin:0 0 6px}
.universal-fixture-panel .fixture-primary .state{margin:0;min-height:15px}
.universal-fixture-panel .fixture-primary .download{margin-top:8px}
.universal-fixture-panel .quick-light-grid .config-field:only-child{grid-column:1/-1}
.universal-fixture-panel .fixture-primary [hidden]{display:none!important}
.universal-fixture-panel .fixture-details-scroll{overscroll-behavior:contain}
@media(max-width:660px){
 #plb30-viewer.universal-studio .layout{grid-template-rows:320px minmax(0,1fr)}
 #plb30-viewer.universal-studio .viewport{height:320px}
 #plb30-viewer.universal-studio .scene-heading{right:166px}
 #plb30-viewer.universal-studio .scene-heading h1{font-size:25px}
 #plb30-viewer.universal-studio .scene-heading .eyebrow{font-size:8px;letter-spacing:.08em}
 .universal-fixture-panel .fixture-primary{padding:8px 12px}
 .universal-fixture-panel .fixture-primary select{min-height:36px;padding:6px 4px}
}

.surface-load-note{font:10px/1.4 Arial,sans-serif;color:#efe4c5}.surface-load-note[hidden]{display:none!important}

/* Optional planting stays collapsed, leaving the product scene clear. */
.garden-details{border-top:1px solid #b9a67450;padding-top:6px;font:12px/1.5 Arial,sans-serif}
.garden-details summary{color:#f0dfb8;cursor:pointer;min-height:24px}
.garden-object-options{display:grid;gap:4px;margin:5px 0}
.garden-object-options label{display:flex;gap:7px;align-items:center;cursor:pointer;min-height:25px;letter-spacing:0;font-size:11px}
.garden-object-options input{width:16px;height:16px;margin:0;accent-color:#dccb9d;cursor:pointer}
.garden-details button{width:100%;border:1px solid #9eaa8670;border-radius:5px;background:#274c3b;color:#fff;padding:6px;cursor:pointer;font:11px Arial,sans-serif}
.wall-preview-toolbar{max-height:calc(100% - 105px);overflow-y:auto;scrollbar-width:thin}

/* Installation shortcut is shown only when architectural context is available. */
#plb30-viewer .view-buttons button[hidden]{display:none!important}
