/* Shared white and gold interactions. Loaded after page-specific styles. */
:root{--ui-gold:#c7a039;--ui-line:#dfc878;--ui-hover:linear-gradient(110deg,#fff 8%,#fcf8e9);--ui-ink:#59604f;--ui-shape:14px 0 14px 0}
body :is(a,button,input,select,textarea):focus-visible{outline:1px solid var(--ui-gold);outline-offset:4px}
body :is(.button,.text-button,.round-button,.carousel-play,.close-dialog,.filter,.space-option,.carousel-tab,.catalog-pagination button,.product-thumb,.card-action,.gallery-control):is(:hover,:focus-visible),
.contact-page #inquiry-form>.button:is(:hover,:focus-visible),
.contact-page #inquiry-ready .button:is(:hover,:focus-visible),
.industry-card:hover .card-action{background:var(--ui-hover);color:var(--ui-ink);border-color:var(--ui-gold);box-shadow:0 5px 18px #ba932414}
body .button,.contact-page #inquiry-form>.button{border-color:var(--ui-line)}
body :is(.catalog-pagination button[aria-current],.product-thumb[aria-pressed=true],.detail-finishes button.active){background:var(--ui-hover);border-color:var(--ui-gold);color:var(--ui-ink)}
.contact-section #inquiry-form :is(input,select,textarea),.contact-page #inquiry-form :is(input,select,textarea),.catalog-toolbar :is(input,select){border:1px solid var(--ui-line);border-radius:var(--ui-shape);background:#fffefa;color:#3b5554;padding:11px 13px;min-height:46px;outline-offset:3px;box-shadow:none}
.contact-section #inquiry-form :is(input,select,textarea):focus,.contact-page #inquiry-form :is(input,select,textarea):focus,.catalog-toolbar :is(input,select):focus{border-color:var(--ui-gold);outline:1px solid var(--ui-gold);outline-offset:3px;background:#fff;box-shadow:none}
.contact-section #inquiry-form :is(input,textarea)::placeholder,.contact-page #inquiry-form :is(input,textarea)::placeholder{font-size:13px;color:#84938b}
.custom-select{position:relative;width:100%;margin-top:8px;min-width:0}
.catalog-toolbar .custom-select{margin-top:0}
.custom-select select[hidden]{display:none}
.custom-select-trigger{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:46px;text-align:left;padding:11px 13px;border:1px solid var(--ui-line);border-radius:var(--ui-shape);background:#fffefa;color:#3b5554;font:inherit;font-size:14px;line-height:1.55;cursor:pointer;transition:border-color .25s,background .25s}
.custom-select-trigger>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.custom-select-trigger::after{content:'';flex-shrink:0;width:7px;height:7px;border-right:1px solid #a9872b;border-bottom:1px solid #a9872b;transform:translateY(-2px) rotate(45deg);transition:transform .25s}
.custom-select-trigger:is(:hover,[aria-expanded=true]){border-color:var(--ui-gold);background:var(--ui-hover)}
.custom-select-trigger[aria-expanded=true]::after{transform:translateY(2px) rotate(225deg)}
.custom-select.is-open{z-index:50}
.custom-select-options{position:fixed;z-index:80;max-width:calc(100vw - 24px);max-height:320px;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#dcc477 #fffefa;margin:0;padding:7px;border:1px solid var(--ui-line);border-radius:17px 0 17px 0;background:#fffefb;box-shadow:0 12px 35px #57471818;font-size:14px;line-height:1.55;color:#435b57}
.custom-select-options[hidden]{display:none}
.custom-select-option{position:relative;padding:10px 33px 10px 11px;border:1px solid transparent;border-radius:9px 0 9px 0;cursor:pointer;white-space:normal;overflow-wrap:break-word}
.custom-select-option:is(:hover,.is-highlighted){background:var(--ui-hover);border-color:#e5d397;color:#94701b}
.custom-select-option[aria-selected=true]{color:#92701d;background:#fcf8e9}
.custom-select-option[aria-selected=true]::after{content:'✓';position:absolute;right:10px;top:10px;color:#b18a26;font-size:13px}
.custom-select-option[aria-disabled=true]{opacity:.45;cursor:default}
.ui-link-arrow{display:inline-block;width:17px;height:17px;flex:0 0 17px;margin-left:8px;vertical-align:-3px;fill:none;stroke:var(--ui-gold);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
/* Product photographs open in a quiet, full-size showroom. */
button.product-main-photo{display:block;width:100%;border:0;cursor:zoom-in;position:relative;text-align:inherit;color:#526552}
.product-zoom-label{position:absolute;right:18px;bottom:17px;display:flex;align-items:center;gap:8px;background:#fffffff2;padding:8px 12px;border:1px solid var(--ui-line);border-radius:12px 0 12px 0;font-size:12px;line-height:1.4;box-shadow:0 3px 15px #52736808}
.product-zoom-label svg{width:16px;height:16px;fill:none;stroke:#b18a26;stroke-width:1.2}
button.product-main-photo:hover .product-zoom-label{background:var(--ui-hover);border-color:var(--ui-gold)}
.product-gallery-dialog{width:min(1120px,calc(100vw - 80px));height:min(900px,calc(100dvh - 70px));max-width:none;max-height:none;padding:28px 32px 22px;border:1px solid var(--ui-line);border-radius:28px 0 28px 0;background:#fffefb;color:#365250;box-shadow:0 25px 100px #2b4c4830;overflow:hidden}
.product-gallery-dialog[open]{display:flex;flex-direction:column;gap:22px}
.product-gallery-dialog::backdrop{background:#e3eeebde;backdrop-filter:blur(9px)}
.gallery-heading{display:flex;align-items:center;justify-content:space-between;gap:30px}
.gallery-heading .eyebrow{font-size:11px;letter-spacing:2px;margin:0 0 6px;color:#a5842a}
.gallery-heading h2{font-size:25px;line-height:1.3;letter-spacing:-.6px;font-weight:400;margin:0}
.gallery-control{display:inline-flex;align-items:center;justify-content:center;gap:10px;flex-shrink:0;border:1px solid var(--ui-line);background:#fff;color:#8f752e;border-radius:12px 0 12px 0;min-width:44px;min-height:44px;padding:10px;cursor:pointer;transition:border-color .25s,background .25s}
.gallery-close{padding-inline:15px;font-size:13px}
.gallery-control svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.gallery-stage{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:24px;align-items:center;flex:1;min-height:0}
.gallery-stage.is-single{grid-template-columns:minmax(0,1fr)}
.gallery-image-frame{position:relative;height:100%;min-height:0;padding:16px;isolation:isolate;background:linear-gradient(135deg,#fff,#f5f9f6);border-radius:22px 0 22px 0}
.gallery-image-frame::before,.gallery-image-frame::after{content:'';position:absolute;pointer-events:none;border:solid var(--ui-line)}
.gallery-image-frame::before{top:-6px;left:-6px;width:45%;height:32%;border-width:1px 0 0 1px;border-radius:24px 0 0 0}
.gallery-image-frame::after{bottom:-6px;right:-6px;width:32%;height:24%;border-width:0 1px 1px 0;border-radius:0 0 24px 0}
.gallery-image-frame img{display:block;width:100%;height:100%;object-fit:contain;transition:opacity .2s}
.gallery-image-frame.is-loading img{opacity:.4}
.gallery-image-error{position:absolute;inset:0;display:grid;place-items:center;padding:30px;text-align:center;background:#fffefa;font-size:14px;color:#7f7351}
.gallery-image-error[hidden]{display:none}
.gallery-footer{display:flex;align-items:center;gap:24px;min-height:64px;padding:0;margin:0;border:0;background:transparent;flex-wrap:nowrap}
.gallery-position{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:14px;color:#9b7a27;min-width:60px}
.gallery-thumbnails{display:flex;gap:9px;overflow-x:auto;min-width:0;max-height:84px;padding:6px 4px;scrollbar-width:thin;scrollbar-color:#dcc477 #fffefa}
.gallery-thumbnail{width:60px;height:60px;flex-shrink:0;display:block;padding:5px;border:1px solid var(--ui-line);border-radius:12px 0 12px 0;background:#fff;cursor:pointer}
.gallery-thumbnail img{width:100%;height:100%;object-fit:contain;display:block}
.gallery-thumbnail[aria-pressed=true]{border-color:var(--ui-gold);background:#fcf8e9;box-shadow:0 0 0 1px #c7a0393d}
.gallery-thumbnail:hover{background:var(--ui-hover);border-color:var(--ui-gold)}
.product-gallery-dialog [hidden]{display:none}
@media(prefers-reduced-motion:no-preference){.product-gallery-dialog[open]{animation:gallery-enter .28s ease both}.custom-select-options:not([hidden]){animation:select-enter .18s ease both}@keyframes gallery-enter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes select-enter{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}}
