/* DOORS GALLERY — premium extras (favourites, compare, quiz, room preview, colour slider, measuring guide) */
.favbtn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;color:inherit}
.favbtn svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6}
.xbar{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 6px}
.xbtn{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border:1px solid var(--line2);border-radius:999px;background:var(--paper);color:var(--ink);font:500 13px/1 var(--sans);cursor:pointer;transition:border-color .2s,background .2s,transform .15s}
.xbtn:hover{border-color:var(--gold2);transform:translateY(-1px)}.xbtn.is-on{background:var(--brand2);color:var(--gold2);border-color:var(--brand2)}
.xbtn span{font-size:15px;color:var(--gold)}.xbtn.is-on span{color:var(--gold2)}.xbtn--sm{padding:6px 11px;font-size:12px;margin-top:8px}
.xmodal{position:fixed;inset:0;z-index:90;background:rgba(20,12,9,.72);display:flex;align-items:center;justify-content:center;padding:16px;opacity:0;transition:opacity .25s}
.xmodal.is-open{opacity:1}.xmodal__box{position:relative;background:var(--paper);border-radius:18px;max-width:980px;width:100%;max-height:94vh;overflow:auto;padding:26px;box-shadow:0 30px 80px rgba(0,0,0,.35);transform:translateY(12px);transition:transform .3s}
.xmodal.is-open .xmodal__box{transform:none}.xmodal__x{position:absolute;top:10px;right:14px;border:0;background:none;font-size:30px;line-height:1;cursor:pointer;color:var(--ink2)}
.xroom{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:22px;align-items:start}
.xroom canvas{width:100%;height:auto;border-radius:12px;background:var(--tint)}
.xlbl{font:600 12px/1.4 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:14px 0 8px}
.xchips{display:flex;flex-wrap:wrap;gap:8px}
.xchip{display:inline-flex;align-items:center;gap:8px;padding:6px 12px 6px 6px;border:1px solid var(--line2);border-radius:999px;background:#fff;cursor:pointer;font:500 13px/1 var(--sans)}
.xchip.is-on{border-color:var(--brand);box-shadow:0 0 0 2px var(--gold2)}
.xchip .swatch,.xc .swatch,.xopt .swatch,.xcard .swatch{display:inline-block;border-radius:6px;background-size:cover;flex:none}
.xwall{width:40px;height:40px;border-radius:10px;border:2px solid #fff;box-shadow:0 0 0 1px var(--line2);cursor:pointer;position:relative;display:inline-flex;align-items:center;justify-content:center;font-size:20px;color:var(--muted);background:#fff}
.xwall.is-on{box-shadow:0 0 0 2px var(--gold)}.xwall--pick input{position:absolute;inset:0;opacity:0;cursor:pointer}
.xcmp{position:relative;max-width:520px;margin:10px auto;border-radius:12px;overflow:hidden;aspect-ratio:4/5;background:var(--tint)}
.xcmp img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.xcmp__top{position:absolute;inset:0}
.xcmp input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0}
.xcmp__h{position:absolute;top:0;bottom:0;width:2px;background:var(--gold2);transform:translateX(-1px);pointer-events:none;box-shadow:0 0 0 1px rgba(0,0,0,.15)}
.xcmp__h::after{content:'⇆';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:38px;height:38px;border-radius:50%;background:var(--brand2);color:var(--gold2);display:flex;align-items:center;justify-content:center;font-size:18px}
.xcmp__sel{display:grid;grid-template-columns:1fr 1fr;gap:14px;max-width:760px;margin:0 auto}
.xgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:20px;margin:18px 0}
.xcard{background:var(--paper);border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:transform .25s,box-shadow .25s;animation:xin .45s both}
.xcard:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(43,26,20,.12)}
.xcard__img{display:flex;flex-direction:column;align-items:center;justify-content:center;aspect-ratio:4/5;background:var(--tint);color:var(--muted)}
.xcard__img img{width:100%;height:100%;object-fit:cover}.xcard__b{padding:14px 16px 16px}.xcard__b h3{margin:0 0 4px;font:600 18px/1.3 var(--serif,serif)}.xcard__b p{margin:0 0 8px;font-size:13px}
.xcard .dots{display:flex;gap:5px}.xwhy{color:var(--brand);font-size:12.5px!important;margin-top:8px!important}
.ph-door{display:block;width:38%;aspect-ratio:1/2.3;border:1.5px solid var(--gold2);border-radius:3px;position:relative;margin-bottom:10px}
.ph-door::after{content:'';position:absolute;right:12%;top:52%;width:6px;height:6px;border-radius:50%;background:var(--gold2)}
.xrow{display:flex;flex-wrap:wrap;gap:12px;margin:12px 0}
.xempty{padding:40px;text-align:center;background:var(--paper);border:1px dashed var(--line2);border-radius:16px}
.xtable-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.xtable{width:100%;border-collapse:collapse;min-width:560px;background:var(--paper);border-radius:14px;overflow:hidden}
.xtable th,.xtable td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;font-size:14px}
.xtable thead th{background:var(--brand2);color:var(--gold2);font:600 16px/1.3 var(--sans)}.xtable tbody th{color:var(--muted);font-weight:500;width:150px}
.xtable img{width:140px;aspect-ratio:4/5;object-fit:cover;border-radius:8px}.xc{display:inline-flex;align-items:center;gap:6px;margin:0 10px 6px 0}
.xsz{display:inline-flex;align-items:center;justify-content:center;width:32px;height:28px;margin:0 4px 4px 0;border-radius:6px;font-size:12.5px}
.xsz.is-std{background:var(--brand2);color:var(--gold2)}.xsz.is-ord{border:1px solid var(--gold);color:var(--brand)}.xsz.is-no{color:#c9bcb0;text-decoration:line-through}
.xquiz{max-width:880px;margin:0 auto;animation:xin .4s both}.xquiz__bar{height:4px;background:var(--line);border-radius:4px;margin-bottom:20px;overflow:hidden}.xquiz__bar i{display:block;height:100%;background:var(--goldGrad);transition:width .4s}
.xquiz__opts{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin:18px 0}
.xopt{display:flex;align-items:center;gap:12px;padding:18px;border:1px solid var(--line2);border-radius:14px;background:var(--paper);text-align:left;font:500 15px/1.4 var(--sans);cursor:pointer;transition:all .2s;color:var(--ink)}
.xopt:hover{border-color:var(--gold);transform:translateY(-2px);box-shadow:0 10px 24px rgba(43,26,20,.1)}
.xmeasure{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:34px;align-items:start}.xdiag{width:100%;height:auto;display:block}
.xsteps{counter-reset:s;list-style:none;padding:0;margin:0 0 20px}.xsteps li{counter-increment:s;position:relative;padding:0 0 14px 44px}
.xsteps li::before{content:counter(s);position:absolute;left:0;top:-2px;width:30px;height:30px;border-radius:50%;background:var(--brand2);color:var(--gold2);display:flex;align-items:center;justify-content:center;font-weight:600}
.xcalc{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:18px;margin-bottom:18px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.xcalc h2{grid-column:1/-1;margin:0}
.xcalc label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}.xcalc input{padding:10px 12px;border:1px solid var(--line2);border-radius:10px;font-size:16px}
.xout{grid-column:1/-1;margin:0;color:var(--brand);font-weight:500}
.xnav{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 26px;padding:26px 0}.xnav a{font:500 12px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;color:var(--brand)}.xnav a[aria-current]{color:var(--ink);border-bottom:1px solid var(--gold)}
.xskel{height:260px;border-radius:16px;background:linear-gradient(90deg,var(--tint),var(--paper),var(--tint));background-size:200% 100%;animation:xsk 1.2s infinite}
@keyframes xsk{to{background-position:-200% 0}}@keyframes xin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media (max-width:760px){.xroom,.xmeasure,.xcmp__sel{grid-template-columns:1fr}.xmodal__box{padding:18px}.xcalc{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.xcard,.xquiz,.xmodal,.xmodal__box{animation:none;transition:none}}
.hdr--dark .favbtn{color:#efe5d8}.xcard__img{text-decoration:none}
.xbar .xbtn.is-on{background:#2b1a14!important;color:#dcb395!important;border-color:#2b1a14!important;opacity:1!important}.xbar .xbtn{opacity:1!important}
/* ---- t113: DOORS GALLERY line icons (lib/icons.js), hero features, steps, reveal motion ---- */
.ic{width:1.25em;height:1.25em;flex:none;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.25em;--ic-accent:var(--gold)}
.ic .a{stroke:var(--ic-accent)}.ic .af{fill:var(--ic-accent);stroke:none}.ic .hf{fill:var(--ic-accent);stroke:var(--ic-accent)}
.sec--dark .ic,.hdr--dark .ic,.ftr .ic,.fc__btn .ic,.xbtn.is-on .ic,.duo__card--dark .ic{--ic-accent:var(--gold2)}
.cartbtn .ic,.favbtn .ic{width:23px;height:23px}.fc__btn .ic{width:26px;height:26px;stroke-width:1.5}
.favbtn{position:relative;display:inline-grid;place-items:center;width:40px;height:40px;color:var(--ink)}.hdr--dark .favbtn{color:#ecdcc8}
.hfeat{list-style:none;margin:40px 0 0;padding:24px 0 0;border-top:1px solid var(--line);display:grid;gap:14px}
.hfeat li{display:flex;align-items:center;gap:14px;font:500 13px/1.3 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--ink)}
.hfeat .ic{width:40px;height:40px;padding:9px;border:1px solid var(--line2);border-radius:50%;background:var(--paper);color:var(--brand);stroke-width:1.3}
@media (min-width:700px){.hfeat{grid-template-columns:repeat(3,auto);justify-content:start;column-gap:28px}.hfeat li{font-size:12px}}
.why__ic{display:inline-grid;place-items:center;width:52px;height:52px;margin-bottom:14px;border:1px solid var(--line2);border-radius:50%;color:var(--brand)}.why__ic .ic{width:26px;height:26px;stroke-width:1.25}
.why li .why__n{display:inline-block;margin:0 0 0 12px;font-size:20px;color:var(--gold);vertical-align:middle}
.steps{list-style:none;margin:0;padding:0;display:grid;gap:18px;counter-reset:st}
.steps li{position:relative;padding:26px 24px;background:var(--paper);border:1px solid var(--line);border-radius:4px}
.steps__ic{display:inline-grid;place-items:center;width:54px;height:54px;border-radius:50%;background:var(--brand2,#2b1a14);color:#f3ebe1;margin-bottom:16px}.steps__ic .ic{width:26px;height:26px;--ic-accent:var(--gold2)}
.steps__n{position:absolute;top:22px;right:24px;font:300 28px/1 var(--serif);color:var(--gold)}
.steps p{margin:6px 0 0;color:var(--muted);font-size:15px}
@media (min-width:700px){.steps{grid-template-columns:repeat(2,1fr)}}@media (min-width:1100px){.steps{grid-template-columns:repeat(4,1fr)}}
.keys li{grid-template-columns:auto 1fr;align-items:start;column-gap:16px}.keys li>.ic{width:30px;height:30px;margin-top:3px;color:var(--brand);stroke-width:1.25}.keys li div{display:grid;gap:2px}
@media (min-width:1024px){.about--rev{grid-template-columns:1fr .85fr}}
.xnav a{display:inline-flex;align-items:center;gap:8px}.xnav .ic{width:18px;height:18px}
.xbtn__i{display:inline-grid;place-items:center;color:var(--gold)}.xbtn__i .ic{width:17px;height:17px}.xbtn.is-on .xbtn__i{color:var(--gold2)}
.xbtn--room{border-color:var(--gold);background:linear-gradient(180deg,#fffaf3,#f6ece0)}
.xwhy .ic{width:15px;height:15px;color:var(--gold)}
.xroom canvas{width:100%;height:auto;max-height:70vh;object-fit:contain;border-radius:4px;box-shadow:0 18px 40px -22px rgba(43,26,20,.55);background:#e9e2d8}
.xpick{margin:28px 0 8px;padding:22px;border:1px solid var(--line2);border-radius:6px;background:var(--paper)}
.xpick .btn .ic{width:19px;height:19px;margin-right:4px}.xpick__f{display:grid;gap:12px}.xpick__f h3{margin:0}
.xpick__row{display:grid;gap:12px}@media (min-width:640px){.xpick__row{grid-template-columns:1fr 1fr}}
.xpick .fld{display:grid;gap:6px;font-size:13px}.xpick input{width:100%;padding:12px 14px;border:1px solid var(--line2);border-radius:4px;font:inherit;background:#fff}
.xpick input.is-bad{border-color:#b3261e}.xpick .err{color:#b3261e;margin:0;font-size:13px}.xpick__ok{margin:0;font-weight:500;color:#2f6b3a}.xpick__ok .ic{color:#2f6b3a}
.ccard__ph span,.cphone small{letter-spacing:.02em}
/* entrance + scroll reveal (disabled for prefers-reduced-motion and without IntersectionObserver) */
@keyframes dgUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.hero__text>*{animation:dgUp .8s cubic-bezier(.2,.7,.2,1) both}.hero__text>*:nth-child(2){animation-delay:.08s}.hero__text>*:nth-child(3){animation-delay:.16s}.hero__text>*:nth-child(4){animation-delay:.24s}.hero__text>*:nth-child(5){animation-delay:.32s}
.hero__media{animation:dgUp 1s .15s cubic-bezier(.2,.7,.2,1) both}
.rv-on .rv{transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
.rv-on .rv:not(.is-in){opacity:0;transform:translateY(16px)}
.card .media img{transition:transform .9s cubic-bezier(.2,.7,.2,1)}.card:hover .media img{transform:scale(1.035)}
@media (prefers-reduced-motion:reduce){.hero__text>*,.hero__media{animation:none}.rv-on .rv{transition:none}.rv-on .rv:not(.is-in){opacity:1;transform:none}.card:hover .media img{transform:none}}
/* t126: premium motion on the door image — slow Ken Burns "breathing", gentle entrance, in-place zoom (GPU transforms only) */
@keyframes dgBreath{0%,100%{transform:scale(1) translate3d(0,0,0)}50%{transform:scale(1.045) translate3d(-.5%,-.7%,0)}}
@keyframes dgIn{from{opacity:0;transform:scale(.965)}to{opacity:1;transform:none}}
@keyframes dgSwap{from{opacity:.35}to{opacity:1}}
.media--lg.kb{animation:dgIn .8s cubic-bezier(.2,.7,.2,1) both}
.media--lg.kb picture:not(.card__alt){display:block;animation:dgBreath 18s 1s ease-in-out infinite;will-change:transform;backface-visibility:hidden}
.media--lg.kb.is-uz picture{animation-play-state:paused}
.media--lg.kb img{will-change:transform}
.media--lg.kb.is-uz img{cursor:zoom-in}
.xroom__stage{position:relative;overflow:hidden;border-radius:6px;animation:dgIn .7s cubic-bezier(.2,.7,.2,1) both;background:#2b2826}
.xroom__z{transform-origin:0 0;will-change:transform}
.xroom__z.is-swap{animation:dgSwap .45s ease-out}
.xroom__stage canvas{display:block;width:100%;height:auto;animation:dgBreath 20s .8s ease-in-out infinite;will-change:transform;backface-visibility:hidden}
.xroom__stage.is-uz canvas{animation-play-state:paused}
.xroom__hint{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);padding:4px 10px;border-radius:99px;background:rgba(20,16,14,.55);color:#f6efe6;font-size:12px;letter-spacing:.02em;pointer-events:none;opacity:0;animation:dgHint 4.5s 1.2s ease-in-out both}
@keyframes dgHint{0%,100%{opacity:0}15%,75%{opacity:1}}
@media (hover:hover) and (pointer:fine){.xroom__stage{cursor:zoom-in}}
@media (prefers-reduced-motion:reduce){.media--lg.kb,.media--lg.kb picture,.xroom__stage,.xroom__stage canvas,.xroom__z.is-swap{animation:none!important}.xroom__hint{animation:none;opacity:1}}
.xroom__stage{border-radius:4px;box-shadow:0 18px 40px -22px rgba(43,26,20,.55)}.xroom__stage canvas{box-shadow:none;border-radius:0;max-height:none}
@media (hover:hover) and (pointer:fine){.xroom__hint{display:none}}
