/* Services: native editorial content beside one progressively enhanced model. */
.jl-site.jl-site.page-services #list.sh-section>.container{display:block}
.jl-site.jl-site.page-services #list.sh-section .section-head{position:static;max-width:1000px;margin-bottom:45px}
.jl-site.jl-site.page-services #list.sh-section h2{max-width:900px;font-size:clamp(32px,3.2vw,49px)}
.jl-site.jl-site .sh-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr);gap:48px;align-items:start}
.jl-site.jl-site .sh-viewer{position:sticky;top:calc(var(--header,88px) + 24px);min-width:0;background:#e9e3d7;border:1px solid #b8aa9259;color:#302b24;isolation:isolate;scroll-margin-top:110px}
.jl-site.jl-site .sh-topbar{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:16px;padding:17px 21px;border-bottom:1px solid #b4a68e45}
.jl-site.jl-site .sh-topbar p{margin:0;font-size:9px;line-height:1.6;letter-spacing:.14em;color:#756957}
.jl-site.jl-site .sh-stage{position:relative;display:block;width:100%;height:clamp(350px,calc(100svh - var(--header,88px) - 220px),600px);min-height:0;overflow:hidden;background:radial-gradient(ellipse at 52% 36%,#f2ede2,#e2dbcd)}
.jl-site.jl-site .sh-stage>.e-con-inner{position:static;padding:0;display:block;width:100%;height:100%}
.jl-site.jl-site .sh-poster{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:contain;transition:opacity .2s ease}
.jl-site.jl-site .sh-poster>.elementor-widget-container,.jl-site.jl-site .sh-poster img{display:block;width:100%;height:100%;object-fit:contain}
.jl-site.jl-site .sh-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:pan-y pinch-zoom;outline-offset:-4px}
.jl-site.jl-site .sh-ready .sh-poster{visibility:hidden;opacity:0}
.jl-site.jl-site .sh-pins,.jl-site.jl-site .sh-pins>.e-con-inner{position:absolute;inset:0;display:block;pointer-events:none;padding:0;z-index:3}
.jl-site.jl-site .sh-pin{position:absolute;max-width:165px;width:max-content;pointer-events:auto;z-index:3;margin:0}
.jl-site.jl-site .sh-pin,.jl-site.jl-site .sh-pin .elementor-button{font:500 10px/1.45 Inter,'Noto Sans SC',sans-serif;color:#514738;background:#faf7efed;border:1px solid #b2a58d;padding:9px 11px;box-shadow:0 3px 12px #3326190a;text-transform:none;letter-spacing:0;text-align:left;display:flex;align-items:center;gap:8px;min-height:37px;transition:background .2s,border-color .2s,color .2s}
.jl-site.jl-site .sh-pin.elementor-widget-button{padding:0;border:0;background:transparent;box-shadow:none;display:block}
.jl-site.jl-site .sh-pin a{color:inherit}
.jl-site.jl-site .sh-pin.sh-view-structure{top:27px;left:18px}
.jl-site.jl-site .sh-pin.sh-view-systems{top:27px;right:18px}
.jl-site.jl-site .sh-pin.sh-view-interior{bottom:29px;left:18px}
.jl-site.jl-site .sh-pin.sh-view-metal{bottom:29px;right:18px}
.jl-site.jl-site .sh-pin.is-selected:not(.elementor-widget-button),.jl-site.jl-site .sh-pin.is-selected .elementor-button{background:#6b4937;border-color:#6b4937;color:#fff7ea}
.jl-site.jl-site .sh-pin:not(.elementor-widget-button):focus-visible,.jl-site.jl-site .sh-pin .elementor-button:focus-visible,.jl-site.jl-site .sh-action:not(.elementor-widget-button):focus-visible,.jl-site.jl-site .sh-action .elementor-button:focus-visible{outline:2px solid #b55635;outline-offset:4px}
.jl-site.jl-site .sh-connectors{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none}
.jl-site.jl-site .sh-connectors path{fill:none;stroke:#8c7154;stroke-width:1;opacity:.7}
.jl-site.jl-site .sh-connectors circle{fill:#be7857;stroke:#fff5e4;stroke-width:2}
.jl-site.jl-site .sh-statusbar{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:15px;padding:14px 20px;border-top:1px solid #b4a68e45}
.jl-site.jl-site .sh-status{font-size:11px;font-weight:600;line-height:1.5;margin:0;color:#4b4133;max-width:60%}
.jl-site.jl-site .sh-controls{display:flex;flex-direction:row;gap:5px;align-items:center;flex-wrap:nowrap}
.jl-site.jl-site .sh-action,.jl-site.jl-site .sh-action .elementor-button{border:1px solid #afa18b;background:transparent;color:#4a4134;display:inline-flex;align-items:center;justify-content:center;min-width:33px;min-height:33px;padding:5px 9px;font-size:15px;line-height:1;text-transform:none;font-weight:400;cursor:pointer}
.jl-site.jl-site .sh-action.elementor-widget-button{padding:0;border:0}
.jl-site.jl-site .sh-action-home,.jl-site.jl-site .sh-action-home .elementor-button{font-size:10px;min-height:30px;white-space:nowrap;letter-spacing:.02em}
.jl-site.jl-site .sh-action.is-disabled{pointer-events:none}
.jl-site.jl-site .sh-action.is-disabled:not(.elementor-widget-button),.jl-site.jl-site .sh-action.is-disabled .elementor-button,.jl-site.jl-site .sh-action:not(.elementor-widget-button):is(:disabled,[aria-disabled="true"]),.jl-site.jl-site .sh-action .elementor-button:is(:disabled,[aria-disabled="true"]){opacity:.35;pointer-events:none}
.jl-site.jl-site .sh-help,.jl-site.jl-site .sh-caption{font-size:10px;line-height:1.6;color:#7b6c57;margin:0;padding:0 20px 12px}
.jl-site.jl-site .sh-caption{font-size:8px;letter-spacing:.06em;padding-bottom:16px;color:#93816a}
.jl-site.jl-site .sh-loading .sh-help{color:#a75e3f}
.jl-site.jl-site.page-services #list .sh-groups{border-top:1px solid #b4a68e70}
.jl-site.jl-site.page-services #list .sh-groups .group{display:block;padding:25px 0 26px 30px;border-bottom:1px solid #b4a68e70;min-width:0;transition:border-color .2s}
.jl-site.jl-site.page-services #list .sh-groups .group::before{top:29px;left:0;color:var(--red)}
.jl-site.jl-site.page-services #list .sh-groups .group:nth-child(1)::before{content:'01'}
.jl-site.jl-site.page-services #list .sh-groups .group:nth-child(2)::before{content:'02'}
.jl-site.jl-site.page-services #list .sh-groups .group:nth-child(3)::before{content:'03'}
.jl-site.jl-site.page-services #list .sh-groups .group:nth-child(4)::before{content:'04'}
.jl-site.jl-site.page-services #list .sh-groups h3,.jl-site.jl-site.page-services #list .sh-select-heading{max-width:none;margin:0 0 17px;font-size:23px;line-height:1.3;letter-spacing:-.02em}
.jl-site.jl-site .sh-select-heading a{color:inherit;display:block;padding-right:25px;position:relative}
.jl-site.jl-site .sh-select-heading a::after{content:'↗';position:absolute;right:0;top:0;font-size:18px;color:#aa8c6c}
.jl-site.jl-site .sh-select-heading a:focus-visible{color:var(--red);outline:2px solid var(--red);outline-offset:4px}
.jl-site.jl-site .sh-group.is-selected .sh-select-heading,.jl-site.jl-site .sh-group.is-selected .sh-select-heading .elementor-heading-title,.jl-site.jl-site .sh-group.is-selected .sh-select-heading a{color:var(--red)}
.jl-site.jl-site .sh-group.is-selected .sh-select-heading a::after,.jl-site.jl-site .sh-select-heading a:focus-visible::after{color:currentColor}
.jl-site.jl-site.page-services #list .sh-groups ul{display:grid;grid-template-columns:1fr;gap:8px;font-size:12px;line-height:1.7}
.jl-site.jl-site.page-services #list .sh-groups .text-link{display:inline-flex;margin-top:17px;font-size:10px}
.jl-site.jl-site.page-services #list .sh-footer-link{margin-top:28px}
@media(max-width:1100px){.jl-site.jl-site .sh-layout{gap:30px;grid-template-columns:minmax(0,1.2fr) minmax(280px,1fr)}.jl-site.jl-site .sh-stage{height:460px}.jl-site.jl-site .sh-pin{max-width:140px;font-size:9px}.jl-site.jl-site .sh-pin .elementor-button{font-size:9px}.jl-site.jl-site .sh-topbar{padding:14px 16px}.jl-site.jl-site .sh-topbar p{font-size:8px}}
@media(max-width:850px){.jl-site.jl-site .sh-layout{display:block}.jl-site.jl-site .sh-viewer{position:relative;top:auto;margin-bottom:32px}.jl-site.jl-site .sh-stage{height:500px}.jl-site.jl-site .sh-groups{display:grid;grid-template-columns:1fr 1fr;column-gap:30px}.jl-site.jl-site .sh-pin{max-width:180px}.jl-site.jl-site.page-services #list .sh-groups .group{padding-top:24px}}
@media(max-width:600px){.jl-site.jl-site .sh-stage{height:390px}.jl-site.jl-site .sh-groups{display:block}.jl-site.jl-site .sh-pin{max-width:137px;font-size:8px;padding:7px 8px;min-height:36px}.jl-site.jl-site .sh-pin .elementor-button{font-size:8px;padding:7px 8px}.jl-site.jl-site .sh-pin.sh-view-structure{top:15px;left:10px}.jl-site.jl-site .sh-pin.sh-view-systems{top:15px;right:10px}.jl-site.jl-site .sh-pin.sh-view-interior{bottom:17px;left:10px}.jl-site.jl-site .sh-pin.sh-view-metal{bottom:17px;right:10px}.jl-site.jl-site .sh-topbar{padding:13px 12px;gap:10px}.jl-site.jl-site .sh-topbar p{font-size:7px}.jl-site.jl-site .sh-statusbar{padding:12px;gap:8px}.jl-site.jl-site .sh-status{font-size:10px;max-width:51%}.jl-site.jl-site .sh-action,.jl-site.jl-site .sh-action .elementor-button{min-width:30px;min-height:34px;padding:5px 7px}.jl-site.jl-site .sh-action-home,.jl-site.jl-site .sh-action-home .elementor-button{font-size:9px;min-height:29px}.jl-site.jl-site .sh-help,.jl-site.jl-site .sh-caption{padding-inline:12px;font-size:9px}.jl-site.jl-site .sh-caption{font-size:7px}.jl-site.jl-site.page-services #list.sh-section .section-head{margin-bottom:30px}.jl-site.jl-site.page-services #list .sh-groups .group{padding-left:29px}.jl-site.jl-site.page-services #list .sh-groups h3{font-size:24px}.jl-site.jl-site.page-services #list .sh-groups ul{font-size:13px;gap:9px}}
@media(max-height:650px) and (min-width:851px){.jl-site.jl-site .sh-viewer{position:relative;top:auto}}
@media(prefers-reduced-motion:reduce){.jl-site.jl-site .sh-viewer *{transition:none!important;animation:none!important}}
.elementor-editor-active .jl-site.jl-site .sh-viewer{position:relative;top:auto}.elementor-editor-active .jl-site.jl-site .sh-poster{visibility:visible;opacity:1}.elementor-editor-active .jl-site.jl-site .sh-canvas,.elementor-editor-active .jl-site.jl-site .sh-connectors{display:none}

/* Text Editor widget wrappers retain the original semantic paragraph. */
.jl-site.jl-site .sh-help .sh-help,.jl-site.jl-site .sh-caption .sh-caption{padding:0}
.jl-site.jl-site .sh-status .sh-status{max-width:none}

/* Category navigation makes room for native per-component callouts on arrival. */
.jl-site.jl-site .sh-ready:not([data-view="overview"]) .sh-pins,
.jl-site.jl-site .sh-ready:not([data-view="overview"]) .sh-pins>.e-con-inner{inset:12px 10px auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;align-items:stretch}
.jl-site.jl-site .sh-ready:not([data-view="overview"]) .sh-pin{position:static;max-width:none;width:auto;min-height:32px;font-size:9px;padding:5px 8px}
.jl-site.jl-site .sh-ready:not([data-view="overview"]) .sh-pin .elementor-button{font-size:9px;min-height:32px;padding:5px 8px;width:100%;height:100%}
.jl-site.jl-site .sh-ready:not([data-view="overview"]) .sh-pin.elementor-widget-button{padding:0}
.jl-site.jl-site .sh-pins:has(>.e-con-inner){display:block!important}
.jl-site.jl-site .sh-detail-labels,.jl-site.jl-site .sh-detail-labels>.e-con-inner,
.jl-site.jl-site .sh-detail-set,.jl-site.jl-site .sh-detail-set>.e-con-inner{position:absolute;inset:0;padding:0;pointer-events:none;z-index:3;display:block}
.jl-site.jl-site .sh-detail-set{display:none}
.jl-site.jl-site .sh-details-active[data-view="structure"] .sh-detail-set-structure,
.jl-site.jl-site .sh-details-active[data-view="interior"] .sh-detail-set-interior,
.jl-site.jl-site .sh-details-active[data-view="metal"] .sh-detail-set-metal,
.jl-site.jl-site .sh-details-active[data-view="systems"] .sh-detail-set-systems{display:block}
.jl-site.jl-site .sh-detail,.jl-site.jl-site .sh-detail .elementor-button{font:500 10px/1.4 Inter,'Noto Sans SC',sans-serif;color:#543b26;background:#faf5eaf0;border:1px solid #ae9b7d;box-shadow:0 2px 8px #5338130d;border-radius:2px;padding:8px 9px;letter-spacing:0;text-transform:none;text-align:left;display:flex;align-items:center;min-height:34px;overflow-wrap:anywhere}
.jl-site.jl-site .sh-detail{position:absolute;width:max-content;max-width:min(130px,36%);margin:0;pointer-events:auto;cursor:pointer}
.jl-site.jl-site .sh-detail.elementor-widget-button{padding:0;border:0;background:transparent;box-shadow:none;display:block}
.jl-site.jl-site .sh-detail a{color:inherit}
.jl-site.jl-site .sh-detail.is-focused:not(.elementor-widget-button),.jl-site.jl-site .sh-detail.is-focused .elementor-button{color:#382b1b;background:#f3e6cf;border-color:#9b7957}
.jl-site.jl-site .sh-detail:not(.elementor-widget-button):focus-visible,.jl-site.jl-site .sh-detail .elementor-button:focus-visible{outline:2px solid #8d5b2a;outline-offset:3px}
.jl-site.jl-site .sh-connectors .sh-detail-line{stroke:#a48b6b;stroke-width:1;opacity:.65}
.jl-site.jl-site .sh-connectors .sh-detail-dot{fill:#9d7954;stroke:#f5ede0;stroke-width:1.5}
.jl-site.jl-site .sh-connectors .sh-detail-ring{fill:none;stroke:#aa8a65;stroke-width:1;opacity:calc(.22 + var(--sh-pulse,.2)*.08)}
.jl-site.jl-site .sh-detail-note{display:none;margin:0;padding:0 20px 15px;color:#725c40;font-size:10px;line-height:1.6}
.jl-site.jl-site .sh-details-active[data-view="systems"] .sh-detail-note-systems{display:block}
.jl-site.jl-site .sh-detail-note .sh-detail-note{display:block;padding:0}
@media(min-width:1200px){.jl-site.jl-site .sh-ready:not([data-view="overview"]) .sh-pins,.jl-site.jl-site .sh-ready:not([data-view="overview"]) .sh-pins>.e-con-inner{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:600px){.jl-site.jl-site .sh-detail,.jl-site.jl-site .sh-detail .elementor-button{font-size:9px;padding:7px 8px}.jl-site.jl-site .sh-detail{max-width:112px}.jl-site.jl-site .sh-detail.elementor-widget-button{padding:0}.jl-site.jl-site .sh-detail-note{padding:0 12px 14px;font-size:9px}}
.elementor-editor-active .jl-site.jl-site .sh-detail-labels,.elementor-editor-active .jl-site.jl-site .sh-detail-labels>.e-con-inner{position:relative;inset:auto;padding:12px;display:flex;flex-wrap:wrap;gap:8px}
.elementor-editor-active .jl-site.jl-site .sh-detail-set,.elementor-editor-active .jl-site.jl-site .sh-detail-set>.e-con-inner{position:relative;inset:auto;display:flex;flex-wrap:wrap;gap:6px}
.elementor-editor-active .jl-site.jl-site .sh-detail{position:static!important;max-width:none;pointer-events:auto}
.elementor-editor-active .jl-site.jl-site .sh-stage{height:auto;overflow:visible}
.elementor-editor-active .jl-site.jl-site .sh-poster{position:relative;height:320px}
.elementor-editor-active .jl-site.jl-site .sh-pins{position:relative;inset:auto;display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:12px}
.elementor-editor-active .jl-site.jl-site .sh-pin{position:static;max-width:none}
.elementor-editor-active .jl-site.jl-site .sh-detail-note{display:block}

.jl-site.jl-site .sh-ready:not([data-view="overview"]) .sh-pins>.e-con-inner{position:relative;inset:auto}

/* These are native Buttons; floor cuts are a progressive front-end enhancement. */
.jl-site.jl-site .sh-floor-nav{display:none;padding:12px 20px;border-top:1px solid #b4a68e45;gap:7px;grid-template-columns:repeat(3,minmax(0,1fr))}
.jl-site.jl-site .sh-ready .sh-floor-nav{display:grid}
.jl-site.jl-site .sh-floor-nav:has(>.e-con-inner){display:none}
.jl-site.jl-site .sh-ready .sh-floor-nav:has(>.e-con-inner){display:block}
.jl-site.jl-site .sh-floor-nav>.e-con-inner{display:grid;width:100%;padding:0;gap:7px;grid-template-columns:repeat(3,minmax(0,1fr))}
.jl-site.jl-site .sh-floor,.jl-site.jl-site .sh-floor .elementor-button{display:flex;justify-content:center;align-items:center;min-height:40px;width:100%;padding:9px 6px;margin:0;border:1px solid #b8a98f;background:#f2ecdf;color:#62523f;font:500 10px/1.35 Inter,'Noto Sans SC',sans-serif;text-align:center;text-transform:none;letter-spacing:0;white-space:normal;transition:background .2s,border-color .2s,color .2s}
.jl-site.jl-site .sh-floor.elementor-widget-button{padding:0;border:0;background:transparent;display:block;min-width:0}
.jl-site.jl-site .sh-floor .elementor-widget-container,.jl-site.jl-site .sh-floor .elementor-button-wrapper{height:100%}
.jl-site.jl-site .sh-floor .elementor-button{height:100%}
.jl-site.jl-site .sh-floor.is-selected:not(.elementor-widget-button),.jl-site.jl-site .sh-floor.is-selected .elementor-button{color:#fff7ea;background:#6b4937;border-color:#6b4937}
.jl-site.jl-site .sh-floor:not(.elementor-widget-button):focus-visible,.jl-site.jl-site .sh-floor .elementor-button:focus-visible{outline:2px solid #8d5b2a;outline-offset:3px}
@media(max-width:600px){.jl-site.jl-site .sh-floor-nav{padding:10px 12px;gap:5px}.jl-site.jl-site .sh-floor-nav>.e-con-inner{gap:5px}.jl-site.jl-site .sh-floor,.jl-site.jl-site .sh-floor .elementor-button{font-size:10px;min-height:44px}}
@media(min-width:851px) and (min-height:651px){.jl-site.jl-site .sh-stage{height:clamp(300px,calc(100svh - var(--header,88px) - 284px),536px)}}
.elementor-editor-active .jl-site.jl-site .sh-floor-nav{display:grid}
.elementor-editor-active .jl-site.jl-site .sh-floor-nav:has(>.e-con-inner){display:block}

/* Feedback belongs to the clickable control, never its Elementor widget shell.
   Selected/focused states stay readable on touch; functional controls do not move. */
.jl-site.jl-site .sh-action:not(.elementor-widget-button),.jl-site.jl-site .sh-action .elementor-button,.jl-site.jl-site .sh-detail:not(.elementor-widget-button),.jl-site.jl-site .sh-detail .elementor-button,.jl-site.jl-site .sh-select-heading a{transition:background-color .2s ease,border-color .2s ease,color .2s ease}
@media(hover:hover) and (pointer:fine){
 .jl-site.jl-site .sh-pin:not(.elementor-widget-button):not(.is-selected):not(.is-disabled):not(:disabled):not([aria-disabled="true"]):hover,.jl-site.jl-site .sh-pin:not(.is-selected):not(.is-disabled) .elementor-button:not(:disabled):not([aria-disabled="true"]):hover{border-color:#7c4e36;background:#fffaf1}
 .jl-site.jl-site .sh-action:not(.elementor-widget-button):not(.is-disabled):not(:disabled):not([aria-disabled="true"]):hover,.jl-site.jl-site .sh-action:not(.is-disabled) .elementor-button:not(:disabled):not([aria-disabled="true"]):hover{background:#d9cebc;border-color:#8f7052}
 .jl-site.jl-site .sh-detail:not(.elementor-widget-button):not(.is-disabled):not(:disabled):not([aria-disabled="true"]):hover,.jl-site.jl-site .sh-detail:not(.is-disabled) .elementor-button:not(:disabled):not([aria-disabled="true"]):hover{color:#382b1b;background:#f3e6cf;border-color:#9b7957}
 .jl-site.jl-site .sh-floor:not(.elementor-widget-button):not(.is-selected):not(.is-disabled):not(:disabled):not([aria-disabled="true"]):hover,.jl-site.jl-site .sh-floor:not(.is-selected):not(.is-disabled) .elementor-button:not(:disabled):not([aria-disabled="true"]):hover{border-color:#8f7052;background:#e8decb}
 .jl-site.jl-site .sh-select-heading a:not([aria-disabled="true"]):hover{color:var(--red)}
 .jl-site.jl-site .sh-select-heading a:not([aria-disabled="true"]):hover::after{color:currentColor}
}
