/* Source: styles.css */
:root{--bg:#0b0b0b;--text:#f3efe8;--muted:#aba59c;--accent:#c8b69f;--line:#2b2926;--white:#faf7f1}*{box-sizing:border-box}html{scroll-behavior:auto;overflow-anchor:none}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}img{display:block;max-width:100%}.wrap{width:calc(100% - 120px);max-width:1320px;margin:auto}header{border-bottom:1px solid var(--line)}.header{height:88px;display:flex;align-items:center;gap:34px}.brand{display:flex;gap:13px;align-items:center;white-space:nowrap}.brand img{width:44px;height:33px;object-fit:contain}.brand>span{font-size:14px;font-weight:700;letter-spacing:.16em}.brand small{display:block;font-size:8px;font-weight:400;letter-spacing:.23em;color:var(--muted);margin-top:3px}nav{display:flex;gap:26px;margin-left:auto;font-size:13px;color:#d7d2cb}.phone{font-size:14px;white-space:nowrap}.button{border:1px solid var(--white);background:var(--white);color:#151515;display:inline-flex;align-items:center;justify-content:space-between;gap:28px;padding:15px 21px;font-size:14px;min-height:52px}.button span{font-size:20px;line-height:1}.button.small{font-size:12px;min-height:42px;padding:10px 14px;gap:20px}.hero{display:grid;grid-template-columns:44% 56%;padding:35px 0 30px;align-items:center;min-height:480px}.hero-copy{padding-right:30px}.eyebrow{color:var(--accent);font-size:10px;letter-spacing:.18em;display:flex;align-items:center;gap:8px}.eyebrow i{width:5px;height:5px;border-radius:50%;background:var(--accent)}h1,h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.035em}h1{font-size:53px;line-height:1.08;margin:24px 0 20px}.lead{font-size:16px;line-height:1.7;color:#c3bdb5;margin:0 0 27px}.hero-actions{display:flex;align-items:center;gap:23px}.hero-actions .button{gap:18px}.text-link{font-size:13px;display:inline-flex;gap:17px;align-items:center}.text-link span{font-size:18px;color:var(--accent)}.signature{font-size:11px;color:#8f877d;letter-spacing:.04em;margin-top:25px}.hero-image{position:relative;height:408px;margin:0}.hero-image>img{width:100%;height:100%;object-fit:cover}.hero-image:after{content:'';position:absolute;inset:65% 0 0;background:linear-gradient(transparent,#0009)}figcaption{position:absolute;z-index:1;bottom:19px;left:23px;right:23px;font-size:12px;display:flex;align-items:center;gap:12px}figcaption>span{font-size:8px;letter-spacing:.12em;border:1px solid #ffffff60;padding:4px 7px}figcaption>b{font-weight:400;font-size:10px;margin-left:auto}.proof{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0}.proof>div{padding-left:26px;border-left:1px solid var(--line)}.proof>div:first-child{padding-left:0;border-left:0}.proof b{display:block;font-size:16px;font-weight:400}.proof span{display:block;font-size:11px;color:var(--muted);margin-top:3px}.catalog{padding:44px 0 32px}.section-title{display:flex;justify-content:space-between;align-items:end}.section-title h2{font-size:38px;line-height:1.15;margin:9px 0 0}.section-title>p{font-size:13px;color:var(--muted);margin:0 0 2px;line-height:1.65}.tabs{display:flex;gap:9px;margin:23px 0 19px}.tabs button{color:#c1bab0;background:transparent;border:1px solid #3a3732;padding:10px 23px;font-size:13px}.tabs button.active{background:var(--accent);border-color:var(--accent);color:#171512}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.card{min-width:0}.card .photo{position:relative;height:230px;overflow:hidden}.card img{width:100%;height:100%;object-fit:cover}.card .arrow{position:absolute;right:13px;bottom:13px;width:33px;height:33px;background:#faf7f1e8;color:#171512;display:grid;place-items:center;font-size:19px}.card h3{font-family:Georgia,serif;font-weight:400;font-size:21px;margin:12px 0 2px}.card p{font-size:11px;color:var(--muted);margin:0}.catalog-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:19px}.catalog-bottom>span{font-size:11px;color:#8f877d}.about{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#131211}.about-inner{display:grid;grid-template-columns:174px 1fr 395px;gap:32px;padding:30px 0;align-items:center}.portrait{height:224px;width:174px;object-fit:cover;object-position:center 40%}.about h2{font-size:31px;line-height:1.12;margin:9px 0 11px}.about-copy>p{color:var(--muted);font-size:12px;line-height:1.65;max-width:440px;margin:0}.process{padding-left:29px;border-left:1px solid #39342e}.process h3{font-weight:400;font-size:15px;margin:0 0 13px}.process>div{display:flex;gap:16px;align-items:start;margin:11px 0}.process>div>b{color:var(--accent);font-size:11px;font-weight:400;padding-top:3px}.process p{margin:0;font-size:12px}.process strong{font-weight:400;display:block;font-size:13px}.process p span{display:block;font-size:11px;color:var(--muted);margin-top:1px}.contact{display:grid;grid-template-columns:1fr 1fr;gap:90px;padding:40px 0}.contact-copy{padding:8px 0}.contact h2{font-size:38px;line-height:1.14;margin:12px 0 16px}.contact-copy>p{font-size:14px;line-height:1.65;color:var(--muted)}.contact-info{display:flex;flex-direction:column;margin-top:23px;gap:3px;font-size:13px}.contact-info strong{font-weight:400;font-size:24px;margin-bottom:10px}.contact-info>span{font-size:11px;color:var(--muted)}.contact-info b{font-weight:400}.contact-info>a{font-size:11px;color:var(--accent);margin-top:4px}.messengers{display:flex;gap:22px;font-size:11px;margin-top:21px;color:var(--muted)}.form{background:#f3efe8;color:#171512;padding:25px 30px}.form h3{font-family:Georgia,serif;font-weight:400;font-size:23px;letter-spacing:-.025em;margin:0 0 17px}.form>label,.form-row>label{display:block;font-size:11px;font-weight:600}.form input:not([type=checkbox]):not([type=file]),.form select,.form textarea{width:100%;border:1px solid #cec8be;background:transparent;min-height:43px;margin-top:6px;border-radius:0;padding:10px 12px;font-size:12px;color:#26231f}.form select{appearance:auto}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin:13px 0}.form label.file{border:1px dashed #bfb7aa;padding:11px 13px;display:flex;align-items:center;gap:11px;font-weight:400;cursor:pointer}.file>span{font-size:20px}.file small{font-size:9px;color:#7b746b;display:block;margin-top:2px}.file b{margin-left:auto;font-weight:400;font-size:18px}.form label.consent{display:flex;gap:8px;margin:13px 0;font-size:9px;line-height:1.45;font-weight:400;color:#6f685f}.consent input{appearance:none;flex:0 0 12px;width:12px;height:12px;border:1px solid #aaa195;margin:1px 0}.consent input:checked{background:#b4a088}.button.dark{width:100%;background:#201e1b;border-color:#201e1b;color:var(--white);min-height:43px;padding:10px 16px;font-size:13px}.form>p{font-size:10px;text-align:center;color:#7b746b;margin:9px 0 0}footer{border-top:1px solid var(--line)}.footer{display:grid;grid-template-columns:1fr 1fr 1fr;gap:40px;align-items:start;padding:23px 0 16px;font-size:10px;line-height:1.8;color:var(--muted)}.footer .brand{color:var(--text);padding-top:6px}.footer>div:last-child{justify-self:end}.footer span:not(.brand span){font-size:9px}.copyright{font-size:9px;color:#69645e;padding:10px 0 16px;border-top:1px solid #201e1b}
@media(max-width:1000px){.wrap{width:calc(100% - 48px)}.header{gap:20px}.header nav{display:none}.header .phone{margin-left:auto}.hero{grid-template-columns:45% 55%}h1{font-size:40px}.hero-actions{flex-wrap:wrap;gap:15px}.about-inner{grid-template-columns:140px 1fr;gap:25px}.portrait{width:140px}.process{grid-column:1/-1;display:flex;gap:24px;padding:0;border:0}.process h3{display:none}.contact{gap:40px}.proof b{font-size:14px}.tabs button{padding:9px 14px}}
@media(max-width:650px){.wrap{width:calc(100% - 36px)}.header{height:73px;gap:15px}.brand img{width:34px;height:26px}.brand>span{font-size:10px}.brand small{font-size:6px}.header .phone{font-size:10px}.header .button{display:none}.hero{display:flex;flex-direction:column;padding:27px 0 0;gap:18px}.hero-copy{padding:0;width:100%}.eyebrow{font-size:8px}h1{font-size:38px;margin:17px 0}.lead{font-size:13px;margin-bottom:19px}.hero-actions{flex-wrap:nowrap;gap:17px}.hero-actions .button{font-size:11px;min-height:45px;padding:12px 13px;gap:11px}.text-link{font-size:10px;gap:6px}.signature{margin:17px 0 0;font-size:9px}.hero-image{width:100%;height:228px}.hero-image figcaption{font-size:8px;left:12px;right:12px;bottom:13px;gap:7px}figcaption>span{font-size:6px}.proof{grid-template-columns:1fr 1fr;margin-top:18px;gap:14px 9px;padding:19px 0}.proof>div{padding-left:12px}.proof>div:nth-child(3){padding:0;border:0}.proof b{font-size:12px}.proof span{font-size:9px}.catalog{padding:27px 0 23px}.section-title{display:block}.section-title h2{font-size:28px}.section-title>p{font-size:11px;margin-top:10px}.tabs{gap:6px;flex-wrap:wrap;margin:15px 0}.tabs button{font-size:10px;padding:7px 11px}.cards{grid-template-columns:1fr;gap:17px}.card .photo{height:212px}.card h3{font-size:20px;margin-top:8px}.card p{font-size:10px}.catalog-bottom{align-items:start;gap:20px}.catalog-bottom>span{font-size:9px;width:55%}.catalog-bottom .text-link{font-size:9px}.about-inner{grid-template-columns:100px 1fr;gap:18px;padding:24px 0}.portrait{height:176px;width:100px}.about h2{font-size:23px;margin-top:9px}.about-copy>p{font-size:10px}.process{display:block;border-top:1px solid var(--line);padding-top:8px}.process>div{margin:11px 0}.process strong{font-size:12px}.process p span{font-size:10px}.contact{grid-template-columns:1fr;gap:23px;padding:25px 0}.contact h2{font-size:30px}.contact-copy>p{font-size:12px}.contact-info{margin-top:17px}.contact-info strong{font-size:23px}.form{padding:21px}.form h3{font-size:22px}.form-row{grid-template-columns:1fr}.form label.consent{font-size:8px}.footer{grid-template-columns:1fr;gap:16px;padding-top:22px}.footer>div:last-child{justify-self:start}.copyright{font-size:8px}}
@media(max-width:650px){.cards{display:flex;overflow-x:auto;gap:12px;scroll-snap-type:x mandatory;padding-bottom:8px}.card{flex:0 0 89%;scroll-snap-align:start}.card .photo{height:210px}.card h3{font-size:19px}.cards::-webkit-scrollbar{height:3px}.cards::-webkit-scrollbar-thumb{background:#8a694f}.cards::-webkit-scrollbar-track{background:#26231f}}
.copyright{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 24px}
.copyright>span{flex:1 1 420px}
.footer-credit{font-size:10px;color:#8f877d;white-space:nowrap}
.footer-credit:hover{color:var(--muted)}
.footer-credit:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.about,.trusted-partners,#contact{position:relative}
.legacy-anchor{position:absolute;top:0;left:0;scroll-margin-top:24px;pointer-events:none}

/* Source: refinements.css */
/* Second visual revision: tactile controls and a consistent line icon system. */
.icon-defs{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
.icon{width:21px;height:21px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}
.header{gap:24px}.header nav{gap:19px;font-size:12px}.header .brand>span{font-size:13px}
.button{position:relative;border:1px solid #e9dfd1;border-radius:5px;background:linear-gradient(180deg,#fffdf9 0%,#e9e0d2 100%);box-shadow:inset 0 1px 0 #fff,0 4px 0 #a59988,0 7px 16px #0005;transition:transform .16s ease,box-shadow .16s ease,background .16s ease;cursor:pointer;font-weight:500}
.button:hover{transform:translateY(-2px);box-shadow:inset 0 1px 0 #fff,0 6px 0 #a59988,0 10px 22px #0007;background:linear-gradient(180deg,#fff 0%,#f3eadf 100%)}
.button:active{transform:translateY(3px);box-shadow:inset 0 1px 3px #8a694f33,0 1px 0 #a59988,0 2px 5px #0004}
.button.dark{border:1px solid #494037;border-top-color:#776654;background:linear-gradient(180deg,#3f3932,#25211d);box-shadow:inset 0 1px 0 #ffffff18,0 4px 0 #100e0c,0 6px 12px #24170c26}
.button.dark:hover{background:linear-gradient(180deg,#51483d,#302920);box-shadow:inset 0 1px 0 #ffffff20,0 6px 0 #100e0c,0 9px 16px #24170c35}
.button.dark:active{box-shadow:inset 0 1px 3px #0005,0 1px 0 #100e0c;transform:translateY(3px)}
.button.secondary{color:var(--text);border:1px solid #51473c;border-top-color:#746353;background:linear-gradient(180deg,#38312a,#231f1a);box-shadow:inset 0 1px 0 #ffffff0e,0 3px 0 #110f0c,0 6px 12px #0003}
.button.secondary:hover{background:linear-gradient(180deg,#443b31,#30291f)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,.file:focus-within{outline:2px solid #c8b69f;outline-offset:5px}
.text-link{transition:color .16s,transform .16s;min-height:40px}.text-link .icon{width:18px;height:18px;color:var(--accent)}.text-link:hover{color:var(--accent);transform:translateY(-1px)}
.tabs button{border-radius:4px;background:linear-gradient(180deg,#26231f,#181614);border-color:#4b433a;border-top-color:#62564a;box-shadow:inset 0 1px 0 #ffffff08,0 3px 0 #050505;transition:transform .16s,box-shadow .16s,color .16s}
.tabs button:hover{color:var(--white);transform:translateY(-2px);border-color:#8e7a62;box-shadow:0 5px 0 #050505}
.tabs button:active{transform:translateY(2px);box-shadow:0 1px 0 #050505}
.tabs button.active{background:linear-gradient(180deg,#d9cab4,#b5a084);border-color:#dbccb9;border-bottom-color:#a28e73;box-shadow:inset 0 1px 0 #fff8,0 3px 0 #76634b;color:#211c15}
.tabs button .icon{width:16px;height:16px;margin-right:8px;vertical-align:-3px}
.card .photo{padding:0;border:0;width:100%;background:#151311;text-align:left;cursor:pointer;border-radius:3px}
.card .photo img{transition:transform .35s ease}.card .photo:hover img{transform:scale(1.035)}
.card .view-icon{position:absolute;right:14px;bottom:14px;width:38px;height:36px;display:grid;place-items:center;background:linear-gradient(180deg,#fffdf9,#e9e0d2);color:#332a20;border:1px solid #ffffff80;border-radius:4px;box-shadow:0 3px 0 #9c8e7a,0 5px 12px #0004}
.card .view-icon .icon{width:20px;height:20px}
.about-inner{grid-template-columns:174px minmax(0,1fr) 295px;gap:36px;padding:30px 0}.about h2{font-size:35px;line-height:1.12;margin:11px 0 14px}.about-copy>p{max-width:620px;font-size:13px;line-height:1.7}.family-facts{padding-left:40px;border-left:1px solid #39342e}.family-facts>div{margin:0 0 10px}.family-facts b{font-family:Georgia,serif;font-size:30px;font-weight:400;line-height:1.1;color:#dac6ab}.family-facts span{display:block;font-size:11px;color:var(--muted);margin-top:3px}.family-facts>p{font-size:11px;color:#d3c7b9;line-height:1.7;margin:15px 0 0}
.work{display:grid;grid-template-columns:275px 1fr;gap:30px;padding:29px 0 32px;align-items:center}.work h2{font-size:31px;line-height:1.15;margin:10px 0 0}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:23px}.step-icon{display:block;width:38px;height:38px;margin-bottom:11px;color:#c8b69f}.step-icon .icon{width:33px;height:33px;stroke-width:1.15}.steps h3{font-size:13px;font-weight:400;margin:0 0 7px}.steps p{font-size:11px;color:var(--muted);line-height:1.65;margin:0}
.reviews{background:var(--bg);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.reviews-inner{padding:29px 0;display:grid;grid-template-columns:275px 1fr;gap:30px;align-items:center}.reviews-title h2{font-size:29px;line-height:1.14;margin:10px 0 18px}.reviews-title .eyebrow{font-size:9px}.reviews-title .button{min-height:36px;font-size:11px;padding:8px 13px;gap:20px}.reviews-title .icon{width:16px;height:16px}.review-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.review{background:#111;border:1px solid #333;border-radius:4px;padding:16px;min-height:186px;display:flex;flex-direction:column}.review-source{display:flex;align-items:center;gap:7px;font-size:9px;color:var(--muted)}.yandex-mark{display:grid;place-items:center;border:1px solid #8a7760;color:#e0c9ac;border-radius:50%;width:21px;height:21px;font-size:13px}.review-source>.icon{width:13px;height:13px;color:#c9b18c;margin-left:auto}.review blockquote{font-family:Georgia,serif;font-size:16px;line-height:1.45;margin:17px 0 16px}.review-author{font-size:11px;margin-top:auto}.review-author time{display:block;font-size:9px;color:#8c847a;margin-top:3px}
.contact{gap:80px;align-items:start;padding:35px 0 38px}.contact h2{font-size:35px;margin:10px 0 12px}.contact-copy{padding:0}.contact-copy>p{font-size:13px;margin:0 0 14px}.contact-info{margin:0;gap:0}.contact-info .contact-phone{display:flex;align-items:center;gap:12px;color:var(--text)}.contact-phone .icon{width:19px;height:19px;color:var(--accent)}.contact-info strong{font-size:23px;margin:0}.messengers{margin:14px 0 17px;gap:10px;align-items:center;display:flex}.messengers>span{font-size:11px;margin-right:5px;color:var(--muted)}.messenger{display:grid;place-items:center;width:39px;height:37px;border:1px solid #52483c;border-top-color:#7a6955;border-radius:5px;background:linear-gradient(180deg,#312b25,#1c1915);color:#e1cfb5;box-shadow:inset 0 1px 0 #ffffff09,0 3px 0 #050505;transition:transform .16s,box-shadow .16s}.messenger:hover{transform:translateY(-2px);color:var(--white);box-shadow:0 5px 0 #050505}.messenger:active{transform:translateY(2px);box-shadow:0 1px 0 #050505}.messenger .icon{width:21px;height:21px}.max-icon{width:22px;height:22px;filter:grayscale(1) sepia(.35)}
.map{height:183px;position:relative;border:1px solid #52483c;border-radius:4px;overflow:hidden;background:#d6d1c6}.map iframe{width:100%;height:100%;border:0;display:block}.map-address{position:absolute;bottom:10px;left:10px;right:10px;padding:10px 12px;background:#faf7f1f5;display:flex;gap:10px;align-items:center;color:#27231e;border:1px solid #e4dbcf;box-shadow:0 2px 8px #0002;border-radius:3px;font-size:11px}.map-address .icon{color:#8a694f;width:20px;height:20px}.map-address small{display:block;font-size:8px;letter-spacing:.13em;color:#8c7861;margin-bottom:2px}
.form{border-radius:5px;border:1px solid #fff8;box-shadow:0 12px 30px #0003}.form label.file{border-radius:4px;background:#fff4;transition:background .16s}.form label.file:hover{background:#fff9}.file .icon{color:#8a694f;width:22px;height:22px}.form input:not([type=checkbox]):not([type=file]),.form select,.form textarea{border-radius:3px;background:#fff3;box-shadow:inset 0 1px 3px #42321e0a}.form .button{margin-bottom:3px}
.project-dialog{border:1px solid #5f5140;border-radius:6px;background:#151310;color:var(--text);padding:0;max-width:1040px;width:calc(100% - 60px);height:calc(58vh + 110px);max-height:90vh;overflow:hidden;box-shadow:0 30px 100px #0009}.project-dialog::backdrop{background:#000b;backdrop-filter:blur(5px)}.project-dialog>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}.dialog-close{position:absolute;top:15px;right:15px;display:grid;place-items:center;width:36px;height:36px;background:#151310d9;color:var(--text);border:1px solid #7e6d58;border-radius:4px;z-index:1}.dialog-copy{position:absolute;inset:auto 0 0;display:flex;gap:25px;align-items:center;justify-content:space-between;padding:60px 23px 23px;background:linear-gradient(transparent,rgba(0,0,0,.78));text-shadow:0 1px 8px #0008}.dialog-copy h2{font-size:28px;margin:0}.dialog-copy p{font-size:12px;color:#e2ded8;margin:4px 0 0}.dialog-copy .button{font-size:12px;min-height:43px}
@media(max-width:1180px){.header nav{display:none}.header .phone{margin-left:auto}.hero-actions{gap:15px}.hero-actions .button{font-size:12px}.hero-actions .text-link{font-size:11px}.about-inner{grid-template-columns:150px 1fr 220px;gap:26px}.portrait{width:150px}.about h2{font-size:30px}.family-facts{padding-left:25px}.work,.reviews-inner{grid-template-columns:225px 1fr;gap:25px}.steps{gap:14px}.review{padding:13px}.review blockquote{font-size:15px}.review-source{font-size:8px}.contact{gap:45px}}
@media(max-width:800px){.about-inner{grid-template-columns:140px 1fr}.family-facts{grid-column:1/-1;border-left:0;border-top:1px solid #39342e;padding:15px 0 0;display:flex;justify-content:space-between;gap:20px}.family-facts>p{margin:0}.work,.reviews-inner{grid-template-columns:1fr}.work-title h2 br,.reviews-title h2 br{display:none}.reviews-title{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}.reviews-title .eyebrow{width:100%}.reviews-title h2{margin:0}.review-cards{gap:12px}.contact{gap:25px}.contact h2{font-size:30px}}
@media(max-width:650px){.header .brand>span{font-size:10px}.header{gap:15px}.button .icon{width:17px;height:17px}.hero-actions .button{font-size:11px}.hero-actions .text-link{font-size:10px}.hero-actions{gap:14px}.tabs button .icon{display:none}.about-inner{grid-template-columns:96px 1fr;gap:17px;padding:23px 0}.portrait{width:96px;height:195px}.about h2{font-size:24px;line-height:1.12;margin:8px 0 11px}.about-copy>p{font-size:10px;line-height:1.6}.family-facts{gap:10px}.family-facts b{font-size:23px}.family-facts span{font-size:8px}.family-facts>p{font-size:8px}.work{padding:24px 0;gap:22px}.work h2{font-size:27px}.steps{grid-template-columns:1fr 1fr;gap:24px 18px}.step-icon{height:28px;margin-bottom:8px}.step-icon .icon{width:27px;height:27px}.steps h3{font-size:12px}.steps p{font-size:10px}.reviews-inner{padding:23px 0;gap:19px}.reviews-title{gap:12px}.reviews-title h2{font-size:26px}.reviews-title .button{font-size:9px;gap:8px;min-height:33px}.review-cards{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 0 9px}.review{flex:0 0 88%;min-height:175px;scroll-snap-align:start;padding:16px}.review-source{font-size:9px}.review blockquote{font-size:18px}.review-author{font-size:11px}.review-cards::-webkit-scrollbar{height:3px}.review-cards::-webkit-scrollbar-thumb{background:#8a694f}.review-cards::-webkit-scrollbar-track{background:#26231f}.contact{gap:22px;padding:24px 0}.contact h2{font-size:30px}.contact-copy>p{font-size:12px}.contact-info strong{font-size:22px}.messengers{margin:12px 0 17px}.map{height:180px}.map-address{font-size:10px}.form{padding:21px}.dialog-copy{display:block;padding:60px 17px 17px}.dialog-copy h2{font-size:23px}.dialog-copy .button{margin-top:15px;width:100%}.project-dialog{width:calc(100% - 28px);height:calc(44vh + 148px)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

/* Keep the estimate form and the contact map aligned. */
.form .clarification{margin:0 0 13px}.form textarea{display:block;min-height:78px;resize:vertical}
@media(min-width:651px){.contact{align-items:stretch}.contact-copy{display:flex;flex-direction:column}.contact-copy .map{flex:1;min-height:183px}}

/* Enlarge Anna's portrait to the section edge and soften it toward the copy. */
.about .portrait-frame{position:relative;min-height:224px;align-self:stretch}
.about .portrait{position:absolute;top:-30px;left:0;width:calc(100% + 36px);max-width:none;height:calc(100% + 60px);object-fit:cover;object-position:52% 22%;-webkit-mask-image:linear-gradient(to right,#000 58%,rgba(0,0,0,.88) 70%,rgba(0,0,0,.4) 85%,transparent 100%);mask-image:linear-gradient(to right,#000 58%,rgba(0,0,0,.88) 70%,rgba(0,0,0,.4) 85%,transparent 100%)}
@media(max-width:1180px){.about .portrait{width:calc(100% + 26px)}}
@media(max-width:650px){.about .portrait-frame{min-height:195px}.about .portrait{top:-23px;width:calc(100% + 17px);height:calc(100% + 23px)}}

/* Production: irregular brushed graphite, broad reflections and a wider close-up. */
.about{
 position:relative;isolation:isolate;overflow:hidden;
 border-color:#55564f;
 background-image:url("assets/graphite-brushed.svg"),
  radial-gradient(ellipse 11% 140% at 27% 30%,#d2c8b42b,transparent 72%),
  linear-gradient(108deg,#171b1d 0%,#252b2e 17%,#474e50 25%,#777b762e 29%,#303638 33%,#161a1c 43%,#1c2123 67%,#41494a 86%,#242a2c 94%,#15191b 100%);
 background-size:1024px 512px,100% 100%,100% 100%;
 background-blend-mode:soft-light,screen,normal;
 box-shadow:inset 0 1px 0 #f1e4ca33,inset 0 -1px 0 #000a;
}
.about::before{
 content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
 background:
  linear-gradient(108deg,transparent 20%,#e0d7c91a 26%,#eee5d52e 28%,transparent 33%,#0003 45%,transparent 63%,#d8d5ca12 84%,transparent 95%),
  linear-gradient(180deg,#090c0f0d,transparent 30%,#06090b70);
}
.about::after{
 content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
 background:
  linear-gradient(90deg,transparent,#e5dac450 26%,transparent 50%,#e5dac45c 86%,transparent) top/100% 1px no-repeat,
  linear-gradient(90deg,transparent,#d8cbb23b 28%,transparent 50%,#d8cbb252 86%,transparent) bottom/100% 1px no-repeat;
}
.about .about-inner{position:relative;z-index:1;grid-template-columns:330px minmax(0,1fr) 295px}
.about .portrait{
 left:calc(-1 * max(60px,(100vw - 1320px) / 2));
 width:calc(100% + max(60px,(100vw - 1320px) / 2) + 36px);
 object-position:51% 18%;
 -webkit-mask-image:linear-gradient(to right,#000 0%,#000 58%,rgba(0,0,0,.98) 64%,rgba(0,0,0,.9) 71%,rgba(0,0,0,.7) 78%,rgba(0,0,0,.4) 85%,rgba(0,0,0,.16) 92%,rgba(0,0,0,.03) 97%,transparent 100%);
 mask-image:linear-gradient(to right,#000 0%,#000 58%,rgba(0,0,0,.98) 64%,rgba(0,0,0,.9) 71%,rgba(0,0,0,.7) 78%,rgba(0,0,0,.4) 85%,rgba(0,0,0,.16) 92%,rgba(0,0,0,.03) 97%,transparent 100%);
}
.about .portrait-frame::after{
 content:"";position:absolute;z-index:1;pointer-events:none;
 top:-30px;bottom:-30px;left:calc(-1 * max(60px,(100vw - 1320px) / 2));right:-116px;
 background:
  radial-gradient(ellipse 22% 110% at 76% 46%,rgba(236,226,205,.18),rgba(226,219,202,.065) 38%,rgba(226,219,202,.015) 63%,transparent 82%);
}
.about .about-copy>p,.about .family-facts span{color:#c9c4bc}
.about .family-facts{border-color:#b7ab9552}
@media(max-width:1180px){
 .about .about-inner{grid-template-columns:240px minmax(0,1fr) 220px}
 .about .portrait{width:calc(100% + 86px)}
 .about .portrait-frame::after{right:-106px}
}
@media(max-width:1000px){
 .about .portrait,.about .portrait-frame::after{left:-24px}
 .about .portrait{width:calc(100% + 50px)}
}
@media(max-width:800px){.about .about-inner{grid-template-columns:220px minmax(0,1fr)}}
@media(max-width:650px){
 .about{
  background-image:linear-gradient(180deg,#080a0b99,#080a0bb3),url("assets/graphite-brushed.svg"),
   radial-gradient(ellipse 10% 100% at 41% 20%,#d2c8b41a,transparent 80%),
   linear-gradient(108deg,#191e20 0%,#3d4547 31%,#535a574d 40%,#2b3234 48%,#191e20 65%,#353e40 90%,#1b2123 100%);
  background-size:100% 100%,1024px 512px,100% 100%,100% 100%;
  background-blend-mode:normal,soft-light,screen,normal;
  border-color:#302e2b;
  box-shadow:inset 0 1px 0 #f1e4ca12,inset 0 -1px 0 #000a;
 }
 .about::before{background:linear-gradient(108deg,transparent 20%,#e0d7c908 28%,transparent 34%),linear-gradient(180deg,transparent,#06090b40)}
 .about::after{opacity:.35}
 .about .portrait-frame::after{opacity:.3}
 .about .family-facts{border-color:#b7ab9530}
 .about .about-inner{grid-template-columns:136px minmax(0,1fr)}
 .about .portrait{left:-18px;width:calc(100% + 35px);object-position:51% 21%}
 .about .portrait-frame::after{top:-23px;bottom:0;left:-18px;right:-65px}
}

/* Source: glass-buttons.css */
/* v8: static v6 glass, square fine rim, v6 gold light and v7 fluid response. */
:is(.button,.button.dark,.button.secondary,.tabs button,.tabs button.active,.messenger,.card .view-icon,.dialog-close,.form label.file){
 --glass-ink:#f7f4ee;
 --glass-face:linear-gradient(180deg,rgba(164,175,178,.25),rgba(156,165,168,.18));
 --glass-surface:linear-gradient(112deg,transparent 3%,rgba(244,250,250,.13) 6%,rgba(240,249,250,.025) 13%,transparent 17%,transparent 34%,rgba(240,248,248,.075) 35%,transparent 47%),var(--glass-face);
 --glass-shadow:inset 0 1px 0 rgba(255,255,255,.32),inset 0 -1px 0 rgba(255,255,255,.065),0 4px 14px rgba(0,0,0,.12);
 position:relative;isolation:isolate;border:1px solid rgba(255,255,255,.24);border-radius:0;
 background:var(--glass-surface);color:var(--glass-ink);text-shadow:0 1px 2px rgba(0,0,0,.13);
 box-shadow:var(--glass-shadow);backdrop-filter:blur(18px) saturate(1.45);-webkit-backdrop-filter:blur(18px) saturate(1.45);
 transform:none;transform-origin:center;transition:transform .46s cubic-bezier(.2,1.5,.3,1),box-shadow .3s ease,border-color .3s ease,background .3s ease;
}
:is(.button,.tabs button,.messenger,.card .view-icon,.dialog-close,.form label.file)::after{content:none}
:is(.button,.tabs button,.messenger,.card .view-icon,.dialog-close,.form label.file)::before{content:none}
:is(.button,.button.dark,.button.secondary,.tabs button,.messenger,.dialog-close,.form label.file):is(:hover,:focus-visible),
.form label.file:focus-within,.card .photo:is(:hover,:focus-visible) .view-icon{
 background:var(--glass-surface);border-color:rgba(255,244,223,.56);color:var(--glass-ink);
 box-shadow:var(--glass-shadow),0 0 15px 3px rgba(235,202,137,.22),0 4px 30px 7px rgba(216,176,105,.2);
 transform:translateY(-1px) scale(1.025);
}
.tabs button.active{
 background:var(--glass-surface);border-color:rgba(255,235,196,.55);color:var(--glass-ink);
 box-shadow:var(--glass-shadow),0 0 15px 3px rgba(235,202,137,.22),0 4px 30px 7px rgba(216,176,105,.2);
}
:is(.button,.button.dark,.button.secondary,.tabs button,.messenger,.dialog-close,.form label.file):active,
.card .photo:active .view-icon{
 background:var(--glass-surface);color:var(--glass-ink);transform:scale(.965);border-color:rgba(255,244,223,.7);
 box-shadow:inset 0 1px 0 rgba(255,255,255,.34),0 0 16px 3px rgba(235,202,137,.25),0 3px 27px 6px rgba(216,176,105,.2);transition-duration:.13s;
}
/* Static v6 smoky glass on the form, with crisp light labels and v7 soft shadow. */
.form :is(.button.dark,label.file){--glass-ink:#f7f4ee;--glass-face:linear-gradient(180deg,rgba(69,77,80,.69),rgba(63,69,71,.66));--glass-shadow:inset 0 1px 0 rgba(255,255,255,.8),0 3px 12px rgba(65,51,30,.09);border-color:rgba(174,160,139,.4);text-shadow:none}
.form label.file{border-radius:0}.form label.file small{color:#e0dcd3;text-shadow:none}.form label.file .icon{color:#f7f4ee}
.card .photo .view-icon{position:absolute;right:14px;bottom:14px}#project-dialog .dialog-close{position:absolute}
:is(.button,.tabs button,.messenger,.dialog-close):focus-visible,.form label.file:focus-within{outline:2px solid rgba(237,205,152,.7);outline-offset:4px}
/* Preserve the approved spacing and all non-button presentation. */
.header nav a,.header .phone,.header .brand,.text-link,.contact-phone,.footer a,.footer .nr-legal-links button{position:relative}
.header nav a,.header .phone{padding:9px 0}
:root{--led:#fff0cf;--led-halo:#edcc9299}
:is(.header nav a,.header .phone,.header .brand,.text-link,.contact-phone,.footer a,.footer .nr-legal-links button,.map-address)::after{content:"";position:absolute;pointer-events:none;left:0;right:0;bottom:-2px;height:2px;background:var(--led);box-shadow:0 0 4px 1px var(--led-halo);opacity:0;transition:opacity .18s ease}
:is(.header nav a,.header .phone,.header .brand,.text-link,.contact-phone,.footer a,.footer .nr-legal-links button,.map-address):is(:hover,:focus-visible,:active)::after{opacity:1}
/* Keep the glow beneath the text within the taller cookie-settings button. */
.footer .nr-legal-links button::after{bottom:calc((100% - 1lh)/2 - 2px)}

.tabs{margin-bottom:27px;gap:11px}.form>p{position:relative;margin-top:13px}
.form :is(input,select,textarea):focus-visible{border-bottom-color:#ae8750;box-shadow:0 2px 0 #e7c590,0 4px 5px #d6b47740}
.project-dialog{border-radius:0}.card .photo{border-radius:0}
@media(max-width:650px){.tabs{gap:12px 10px;margin-bottom:24px}.tabs button{padding:8px 11px}}
@media(hover:none){:is(.button,.button.dark,.button.secondary,.tabs button,.messenger,.dialog-close,.form label.file):hover:not(:active){transform:none}}
@media(prefers-reduced-motion:reduce){:is(.button,.tabs button,.messenger,.card .view-icon,.dialog-close,.form label.file){transition:none;transform:none!important}:is(.button,.tabs button,.messenger,.card .view-icon,.dialog-close,.form label.file)::before{transition:none}}

/* The mobile menu uses the same warm light as the desktop glass buttons. */
@media(max-width:650px){
 .header .menu-toggle:is(:hover,:focus-visible,:active){
  border-color:rgba(255,244,223,.56);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.32),0 0 15px 3px rgba(235,202,137,.22),0 4px 30px 7px rgba(216,176,105,.2);
 }
}
/* Touch focus keeps the same feedback visible after a tap. */
@media(max-width:650px) and (hover:none){
 :is(.button,.tabs button,.dialog-close,.form label.file):focus,
 .form label.file:focus-within{
  box-shadow:var(--glass-shadow),0 0 15px 3px rgba(235,202,137,.22),0 4px 30px 7px rgba(216,176,105,.2);
 }
 .header .menu-toggle:focus{
  border-color:rgba(255,244,223,.56);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.32),0 0 15px 3px rgba(235,202,137,.22),0 4px 30px 7px rgba(216,176,105,.2);
 }
}

/* Source: fullscreen-hero.css */
/* Original photograph fills the entire opening viewport. */
header{position:absolute;inset:0 0 auto;z-index:5;background:#08080850;border-bottom:1px solid #f3efe81f}
.hero{position:relative;isolation:isolate;display:flex;align-items:center;width:100%;max-width:none;height:100vh;height:100svh;min-height:660px;padding:110px 0 80px;margin:0}
.hero-copy{position:relative;z-index:2;width:calc(100% - 120px);max-width:1320px;margin:0 auto;padding:0;transform:translateY(-60px)}
.hero h1{font-size:clamp(40px,4vw,60px);line-height:1.08;margin:25px 0 24px;max-width:940px;text-shadow:0 2px 22px #0004}
.hero .lead{font-size:23px;line-height:1.65;color:#f3efe8;margin-bottom:31px;text-shadow:0 2px 8px #0009}
.hero .eyebrow{color:#dcc9ad}.hero .signature{color:#c3b8aa;margin-top:28px}
.hero-image{position:absolute;z-index:-1;inset:0;width:100%;height:100%;margin:0}
.hero-image>img{width:100%;height:100%;object-fit:cover;object-position:center 48%;filter:brightness(1.08)}
.hero-image::after{inset:0;background:linear-gradient(90deg,#050505b8 0%,#0505059e 32%,#0505056b 54%,#0505051f 77%,#05050505 100%),linear-gradient(0deg,#08080866,transparent 24%,transparent 75%,#08080833);z-index:0}
.hero-image figcaption{left:auto;right:max(60px,calc((100vw - 1320px)/2));bottom:34px;color:#eee5d9;font-size:11px}
.hero-actions .text-link{min-height:52px;padding:0 8px}.hero-actions{gap:24px}
.proof{border-top:0}
@media(max-width:1000px){.hero-copy{width:calc(100% - 48px)}.hero-image figcaption{right:24px}.hero h1{font-size:54px}.hero .lead{font-size:20px}}
@media(max-width:650px){
 .header{height:112px;display:grid;grid-template-columns:1fr auto;gap:12px 10px;align-content:center}.header .brand{grid-column:1;grid-row:1}.header .phone{grid-column:2;grid-row:1;margin:0;font-size:10px}
 .header nav{display:flex;grid-column:1/-1;grid-row:2;width:100%;margin:0;gap:17px;font-size:9px;justify-content:space-between}.header nav a{white-space:nowrap;padding:5px 0}
 .hero{display:flex;flex-direction:row;align-items:center;height:100svh;min-height:620px;padding:145px 0 95px;gap:0}
 .hero-copy{width:calc(100% - 36px);padding:0;transform:translateY(-40px)}.hero h1{font-size:clamp(35px,9.5vw,46px);margin:22px 0}.hero .eyebrow{font-size:7px;letter-spacing:.15em}
 .hero .lead{font-size:16px;line-height:1.6;margin-bottom:25px}.hero-actions{flex-wrap:wrap;gap:16px 20px}.hero-actions .button{font-size:11px;min-height:46px}.hero-actions .text-link{font-size:10px;min-height:40px;padding:0}
 .hero .signature{font-size:9px;max-width:100%;margin-top:23px}.hero-image{width:100%;height:100%}.hero-image>img{object-position:58% center}
 .hero-image::after{background:linear-gradient(90deg,#050505a3 0%,#05050580 65%,#05050540 100%),linear-gradient(180deg,transparent 8%,#0505051f 25%,#0505051f 55%,transparent 82%),linear-gradient(0deg,#08080866,transparent 35%,#08080811 65%,#08080844)}
 .hero-image figcaption{left:18px;right:auto;bottom:27px;font-size:8px}.hero-image figcaption>span{font-size:6px}.proof{margin-top:0}
}
@media(max-width:360px){.header nav{gap:8px;font-size:8px}}

/* Match the relocated hero caption and catalog cost note to the original eyebrow. */
.hero .signature.eyebrow,.catalog-bottom > .eyebrow{color:#dcc9ad;font-size:10px;letter-spacing:.18em;text-transform:uppercase}
@media(max-width:650px){.hero .signature.eyebrow,.catalog-bottom > .eyebrow{font-size:7px;letter-spacing:.15em}}

/* Source: brand-colors.css */
/* Only the requested review ratings and brand icon colours. */
.review-source{flex-wrap:wrap}
.review-stars{display:inline-flex;align-items:center;gap:1px;margin-left:auto;flex:0 0 auto;color:#ffcc00}
.review-stars .icon{width:12px;height:12px;fill:currentColor;stroke:currentColor;stroke-width:.7}
.review-source .yandex-mark{background:#292929;border-color:#555;color:#e3dfd8;flex:0 0 auto}
.messenger[title="Telegram"] .icon{color:#2aabee}
.messenger[title="WhatsApp"] .icon{color:#25d366}
.messenger .max-icon{filter:none}

/* Messenger logos on a transparent surface. */
#contact .messengers .messenger,
#contact .messengers .messenger:is(:hover,:focus-visible,:active){
 background:none;border-color:transparent;box-shadow:none;
 backdrop-filter:none;-webkit-backdrop-filter:none;
}

/* Source: button-typography.css */
/* Existing eyebrow typography, with lighter, compact text actions. */
:is(.button,.button.dark,.button.secondary,.tabs button,.tabs button.active,.text-link,.form label.file){
 --glass-ink:#eeeDEA;
 font-family:Arial,Helvetica,sans-serif;
 font-weight:400;
 font-size:10px;
 line-height:1.4;
 letter-spacing:.18em;
 text-transform:uppercase;
 color:#eeeDEA;
}
.button,.button.dark,.button.secondary,.hero-actions .button,.reviews-title .button,.dialog-copy .button{
 min-height:38px;padding:9px 15px;gap:16px;
}
.reviews-title .button{min-height:30px;padding:6px 11px;gap:12px}
.header .button.small{font-size:8px;min-height:34px;padding:8px 12px;gap:12px}
.tabs button{padding:7px 15px}
.text-link,.hero-actions .text-link,.catalog-bottom .text-link{min-height:32px;padding:0;gap:10px}
.button .icon{width:16px;height:16px;flex-shrink:0}
.form label.file{font-size:9px;padding:8px 11px;gap:9px}
.form label.file .icon{width:19px;height:19px;flex-shrink:0}
.form label.file small{font-size:8px;font-weight:400;letter-spacing:.04em;text-transform:none}
@media(max-width:650px){
 :is(.button,.button.dark,.button.secondary,.tabs button,.tabs button.active,.text-link,.form label.file){font-size:9px}
 .button,.button.dark,.button.secondary,.hero-actions .button,.reviews-title .button,.dialog-copy .button{
  min-height:34px;padding:8px 12px;gap:11px;
 }
 .reviews-title .button{min-height:28px;padding:5px 10px;gap:9px}
 .tabs button{padding:7px 10px}
 .text-link,.hero-actions .text-link,.catalog-bottom .text-link{min-height:30px;gap:8px}
 .button .icon{width:15px;height:15px}
 .form label.file{font-size:8px;padding:7px 10px}
 .form label.file small{font-size:7px}
}

/* Source: line-icons.css */
/* Geometric outline icons, matched to the warm beige reference. */
.line-icon{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:butt;stroke-linejoin:miter;color:var(--accent)}
.button .line-icon,.text-link .line-icon,.step-icon .line-icon,.card .view-icon .line-icon,.contact-phone .line-icon,.form label.file .line-icon,.dialog-close .line-icon{color:var(--accent)}
.step-icon .line-icon{stroke-width:1.7}
.proof>div{display:grid;grid-template-columns:32px minmax(0,1fr);column-gap:14px;row-gap:3px;align-content:center}
.proof>div>.line-icon{grid-column:1;grid-row:1/3;width:32px;height:32px;align-self:center}
.proof>div>b,.proof>div>span{grid-column:2;margin:0}
@media(max-width:650px){
 .proof>div{grid-template-columns:24px minmax(0,1fr);column-gap:9px}
 .proof>div>.line-icon{width:24px;height:24px}
}

/* Source: catalog-gallery.css */
/* Fill incomplete desktop rows with a category-specific project invitation. */
@media(min-width:651px){
  .cards{grid-template-columns:repeat(3,minmax(0,1fr))}
  .catalog-inquiry-wide{grid-column:span 2}
  .cards .card .photo{display:block;height:auto;aspect-ratio:16/9}
}
.catalog-inquiry{min-width:0;display:flex;flex-direction:column;align-items:flex-start;padding:clamp(22px,2.5vw,36px);border:1px solid #4b4135;background:radial-gradient(ellipse at top right,#c8b69f12,transparent 75%),linear-gradient(135deg,#1c1915,#11100e)}
.catalog-inquiry .eyebrow{font-size:9px;letter-spacing:.18em}
.catalog-inquiry h3{font-family:Georgia,'Times New Roman',serif;font-size:28px;font-weight:400;line-height:1.15;letter-spacing:-.025em;margin:20px 0 13px;max-width:22ch;text-wrap:balance}
.catalog-inquiry p{font-size:13px;line-height:1.65;color:var(--muted);max-width:43ch;margin:0 0 28px}
.catalog-inquiry .button{margin-top:auto;min-height:44px;font-size:12px;padding:12px 16px;gap:24px;max-width:100%}
@media(min-width:651px){.catalog-inquiry-wide .eyebrow{font-size:11px}.catalog-inquiry-wide h3{font-size:clamp(36px,3.1vw,44px)}.catalog-inquiry-wide p{font-size:clamp(15px,1.3vw,18px);line-height:1.55}}
.card p.card-description{margin-top:6px;line-height:1.55;color:#c3bdb5}
.project-position{position:absolute;top:15px;left:15px;max-width:calc(100% - 82px);padding:7px 10px;background:#151310b8;color:#f3efe8;font-size:11px;line-height:1.4;pointer-events:none}
#project-dialog .gallery-nav{top:50%;transform:translateY(-50%);font-family:Arial,sans-serif;font-size:28px;line-height:1;z-index:2}
#project-dialog .gallery-prev{left:15px;right:auto}
#project-dialog .gallery-next{right:15px}
#project-dialog .gallery-nav[hidden]{display:none}
.dialog-copy>div{min-width:0;max-width:620px}.dialog-copy .button{flex-shrink:0}
@media(max-width:650px){.project-position{font-size:10px;top:13px;left:13px}.dialog-copy p{line-height:1.5}#project-dialog .gallery-nav{top:40%}}
/* Keep the mobile gallery near the viewport top, including when opened after scrolling. */
@media(max-width:650px){.project-dialog{position:fixed;inset:14px 0 auto;margin:0 auto;max-height:calc(100vh - 28px);max-height:calc(100dvh - 28px)}.project-dialog .dialog-copy{box-sizing:border-box;max-height:calc(100% - 64px);overflow-y:auto;overscroll-behavior:contain}}
@media(max-width:650px){.catalog-inquiry{flex:0 0 89%;scroll-snap-align:start;padding:25px 23px}.catalog-inquiry h3{font-size:27px;margin-top:22px}.catalog-inquiry p{font-size:12px}.catalog-inquiry .button{font-size:11px;gap:17px}}

/* Brand mark and alignment are limited to the catalog's right introduction. */

/* Give the mobile catalog more vertical space and looser text leading. */
@media(max-width:650px){
  #catalog{padding:38px 0 32px}
  #catalog .section-title h2{margin-top:13px;line-height:1.25}
  #catalog .tabs{row-gap:16px;margin:22px 0 28px}
  #catalog .cards{padding-bottom:14px}
  #catalog .card h3{margin:14px 0 6px;line-height:1.55}
  #catalog .card p{line-height:1.75}
  #catalog .card p.card-description{margin-top:10px;line-height:1.8}
  #catalog .catalog-bottom{margin-top:26px}
}

/* Source: trusted-partners.css */
/* Original partner logos; one continuous row. All rules belong to this section. */
.trusted-partners{padding:20px 0 22px;border-bottom:1px solid var(--line)}
.trusted-partners > .eyebrow{text-transform:uppercase}
.trusted-partners h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:38px;line-height:1.15;letter-spacing:-.035em;color:var(--text);margin:9px 0 20px}
.trusted-partners .trusted-partners__viewport{overflow:hidden;padding:4px 0;mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent)}
.trusted-partners .trusted-partners__track{display:flex;width:max-content;animation:trusted-partners-scroll 52s linear infinite;will-change:transform}
.trusted-partners .trusted-partners__group{display:flex;flex:0 0 auto;align-items:center;gap:48px;padding-right:48px}
.trusted-partners .trusted-partners__logo{display:flex;align-items:center;justify-content:center;flex:0 0 196px;width:196px;height:64px;padding:3px 8px}
.trusted-partners .trusted-partners__logo img{width:100%;height:100%;object-fit:contain}
.trusted-partners .trusted-partners__logo:hover{opacity:.78}
.trusted-partners .trusted-partners__logo:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.trusted-partners:hover .trusted-partners__track,.trusted-partners:focus-within .trusted-partners__track{animation-play-state:paused}
@keyframes trusted-partners-scroll{to{transform:translateX(-50%)}}
@media(max-width:650px){
 .trusted-partners{padding:16px 0 18px}
 .trusted-partners > .eyebrow{font-size:9px}
 .trusted-partners h2{font-size:26px;margin-bottom:18px}
 .trusted-partners .trusted-partners__group{gap:32px;padding-right:32px}
 .trusted-partners .trusted-partners__logo{flex-basis:158px;width:158px;height:54px}
 .trusted-partners .trusted-partners__track{animation-duration:43s}
}
@media(prefers-reduced-motion:reduce){
 .trusted-partners .trusted-partners__track{animation:none;transform:none}
 .trusted-partners .trusted-partners__group{gap:24px;padding-right:0}
 .trusted-partners .trusted-partners__logo[aria-hidden="true"],.trusted-partners .trusted-partners__group+.trusted-partners__group{display:none}
 .trusted-partners .trusted-partners__viewport{overflow-x:auto;mask-image:none;-webkit-mask-image:none}
}

/* Villa-Design original dark SVG and Dulerova's original text wordmark. */
.trusted-partners .trusted-partners__logo--villa img{filter:brightness(0) invert(1)}
.trusted-partners .trusted-partners__wordmark{font:600 15px/1.2 Arial,Helvetica,sans-serif;letter-spacing:1.7px;text-transform:uppercase;white-space:nowrap;color:#fff}
@media(max-width:650px){.trusted-partners .trusted-partners__wordmark{font-size:12px;letter-spacing:1.4px}}

/* Source: mobile-hero-evening.css */
/* Approved mobile example 6. Desktop retains its original hero. */

.hero-image .hero-caption-mobile{display:none}
@media(max-width:650px){
 .hero-stage{--hero-header-height:74px;--hero-bottom:54px;position:relative;isolation:isolate;display:flex;flex-direction:column;min-height:100svh;padding:calc(var(--hero-header-height) + clamp(24px,5.3svh,49px)) 0 calc(var(--hero-bottom) + env(safe-area-inset-bottom,0px));gap:24px}
 .hero-stage > .proof{position:relative;z-index:2;flex:none;width:calc(100% - 36px);margin:0 auto;border-bottom:0;text-shadow:0 1px 6px #000c}
 .hero-stage > .proof::before{content:"";position:absolute;z-index:-1;inset:-28px -18px calc(-1 * (var(--hero-bottom) + env(safe-area-inset-bottom,0px)));background:linear-gradient(transparent,#0808089e 55%,#080808b3);pointer-events:none}
 .hero-stage > .proof span{color:#ddd5c9}
 .hero{position:static;isolation:auto;display:block;flex:1;height:auto;min-height:0;max-height:none;padding:0;overflow:visible}
 .hero-copy{transform:none;margin:0 auto}
 .hero h1{font-size:clamp(30px,min(9.5vw,5svh),46px);margin:0 0 clamp(14px,2.35svh,22px)}
 .hero .lead{font-size:clamp(13px,1.9svh,16px);margin-bottom:clamp(14px,2.7svh,25px)}
 .hero-actions{gap:clamp(6px,1.3svh,12px) 18px}
 .hero-actions .button,.hero-actions .text-link{min-height:44px}
 .hero .signature{margin-top:clamp(12px,2.5svh,23px)}
 .hero-image .hero-caption-mobile{display:flex}
}
@media(max-width:360px){.hero-stage{--hero-header-height:89px}}
@media(max-width:650px) and (max-height:740px){
 .hero-stage{padding-top:calc(var(--hero-header-height) + 24px);gap:16px}
 .hero h1{font-size:clamp(27px,8.8vw,36px);line-height:1.05;margin-bottom:12px}
 .hero .lead{font-size:13px;line-height:1.45;margin-bottom:12px}
 .hero-actions{gap:6px 18px}
 .hero .signature{margin-top:10px}
 .hero-stage > .proof{padding:8px 0;gap:10px 9px}
 .hero-stage > .proof > div{grid-template-columns:20px minmax(0,1fr);column-gap:6px}
 .hero-stage > .proof > div:nth-child(even){padding-left:8px}
 .hero-stage > .proof > div > .line-icon{width:20px;height:20px}
 .hero-stage > .proof b{font-size:11px;line-height:1.4}
 .hero-stage > .proof span{line-height:1.4}
}
/* Compact phone screens retain every item; larger text can expand the hero naturally. */
@media(max-width:650px) and (max-height:620px){
 .hero-stage{--hero-bottom:48px;padding-top:calc(var(--hero-header-height) + 16px);gap:14px}
 .hero h1{font-size:clamp(25px,8vw,32px);line-height:1.05;margin-bottom:10px}
 .hero .lead{font-size:12px;line-height:1.4;margin-bottom:10px}
 .hero-actions{gap:6px 18px}
 .hero .signature{margin-top:8px}
 .hero-stage > .proof b{font-size:10px;line-height:1.4}
 .hero-stage > .proof span{font-size:8px;line-height:1.5}
}

/* Source: mobile-process-textures.css */
/* Local copy: interactive furniture facades now work at every viewport width. */
#process .step-facade,
#process .step-label,
#process .step-mark {display:contents}
#process .step-number,
#process .step-handle {display:none}
#process .step-toggle,
#process .process-hint {display:none}

@media (min-width:0px) {
  #process {
    --card-inset:clamp(15px,4.4vw,20px);
    padding:32px 0;
    gap:24px;
  }
  #process .eyebrow {
    font-size:9px;
    letter-spacing:.2em;
    color:#c8b69f;
  }
  #process .work-title h2 {
    margin:12px 0 0;
    font-size:clamp(27px,7.4vw,32px);
    line-height:1.12;
    letter-spacing:-.035em;
    text-wrap:balance;
  }
  #process .process-hint {
    display:block;
    margin:14px 0 0;
    color:#9d978e;
    font-size:11px;
    line-height:1.5;
  }
  #process .steps {
    counter-reset:process-step;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
  }
  #process .steps > article {
    counter-increment:process-step;
    position:relative;
    isolation:isolate;
    overflow:hidden;
    min-width:0;
    width:100%;
    min-height:160px;
    aspect-ratio:1 / 1;
    padding:0;
    border:1px solid #c8b69f45;
    background:#252522;
  }
  #process .steps > article:nth-child(1) {--facade-source:url("assets/optimized/process-facade-wood-generated-v1-1122.webp");--texture-size:160% 115%;--texture-position:28% 50%}
  #process .steps > article:nth-child(2) {--facade-source:url("assets/optimized/process-marble-flat-v1-1122.webp");--texture-size:100% 100%}
  #process .steps > article:nth-child(3) {--facade-source:url("assets/optimized/process-facade-fluted-generated-v1-1122.webp")}
  #process .steps > article:nth-child(4) {--facade-source:url("assets/optimized/process-facade-green-generated-v1-1122.webp");--texture-size:200% 160%}
  #process .steps > article {--facade-photo:none}
  #process.process-textures-ready .steps > article {--facade-photo:var(--facade-source)}
  #process .steps > article::before,
  #process .has-step-door .step-facade {
    position:absolute;
    inset:0;
    background-image:linear-gradient(180deg,#08080840,#08080877),var(--facade-photo);
    background-size:100% 100%,var(--texture-size,100% 100%);
    background-position:center,var(--texture-position,center);
  }
  #process .steps > article::before {content:"";z-index:-1}
  /* Flat marble and satin cherry burgundy, with no framed recesses. */
  #process .steps > article:nth-child(2)::before,
  #process .has-step-door:nth-child(2) .step-facade {
    background-image:linear-gradient(180deg,#ffffff08,#ffffff18),var(--facade-photo);
  }
  #process .steps > article:nth-child(2) .step-label {text-shadow:none}
  #process .steps > article:nth-child(2) .step-number,
  #process .steps > article:nth-child(2) .step-icon .line-icon,
  #process .steps > article:nth-child(2) h3 {color:#312c29}
  #process .steps > article:nth-child(2) .step-number {border-right-color:#312c294d}
  #process .steps > article:nth-child(4)::before,
  #process .has-step-door:nth-child(4) .step-facade {
    background-image:linear-gradient(180deg,#5a242bf5,#401319f5),var(--facade-photo);
    background-blend-mode:normal,normal;
  }

  /* Flat horizontal pulls aligned along the bottom of every door. */
  #process .step-handle {
    display:block;
    position:absolute;
    left:50%;
    bottom:14px;
    width:42px;
    height:5px;
    transform:translateX(-50%);
    border-top:1px solid #d0b98d66;
    border-bottom:1px solid #514632;
    border-radius:1px;
    background:linear-gradient(180deg,#b09a76,#8c7855 48%,#746347);
    box-shadow:0 2px 3px #0006,inset 0 1px 0 #efdcba26;
    pointer-events:none;
  }

  #process .steps > article:nth-child(2) .step-handle {
    border-top-color:#8c898466;
    border-bottom-color:#242322;
    background:linear-gradient(180deg,#696763,#484642 48%,#34322f);
    box-shadow:0 2px 3px #0004,inset 0 1px 0 #d0ccc526;
  }

  /* A single centered label keeps the number, icon and title together. */
  #process .step-label {
    position:absolute;
    top:50%;
    left:var(--card-inset);
    right:var(--card-inset);
    transform:translateY(-50%);
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:16px;
    padding:0;
    text-shadow:0 2px 8px #000b;
    text-align:center;
  }
  #process .step-mark {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    height:34px;
  }
  #process .step-number {
    display:block;
    padding-right:12px;
    border-right:1px solid #e9d8bf55;
    color:#f2e1c8;
    font-size:30px;
    font-weight:400;
    font-variant-numeric:tabular-nums;
    letter-spacing:-.045em;
    line-height:34px;
  }
  #process .step-icon {
    display:block;
    width:32px;
    height:32px;
    margin:0;
  }
  #process .step-icon .line-icon {
    display:block;
    width:32px;
    height:32px;
    color:#f2e1c8;
    stroke-width:1.8;
  }
  #process .steps h3 {
    height:2.6em;
    width:100%;
    display:grid;
    align-items:center;
    margin:0;
    color:#fffaf2;
    font-family:Arial,Helvetica,sans-serif;
    font-size:clamp(11px,3.65vw,16px);
    font-weight:500;
    line-height:1.3;
    letter-spacing:-.015em;
  }
  #process .steps h3::after {content:none}
  #process .steps p {display:none}

  /* Each sample is a hinged door over a black cabinet interior. */
  #process .steps > article.has-step-door {
    perspective:700px;
    background:#050505;
    box-shadow:inset 0 0 0 5px #151412,inset 0 0 24px 8px #000;
  }
  #process .steps > article.has-step-door::before {content:none}
  #process .has-step-door .step-facade {
    display:block;
    z-index:1;
    transform-origin:left center;
    transform:none;
    transition:transform .65s cubic-bezier(.22,.68,.2,1),filter .65s ease;
    pointer-events:none;
  }
  #process .has-step-door:nth-child(even) .step-facade {transform-origin:right center}
  #process .has-step-door.is-open .step-facade {
    transform:rotateY(-84deg);
    filter:brightness(.55);
  }
  #process .has-step-door:nth-child(even).is-open .step-facade {transform:rotateY(84deg)}
  #process .has-step-door p {
    display:flex;
    flex-direction:column;
    justify-content:flex-start;
    position:absolute;
    inset:0;
    padding:var(--card-inset);
    margin:0;
    color:#e6e0d6;
    font-size:clamp(12px,3.15vw,14px);
    line-height:1.6;
    opacity:0;
    visibility:hidden;
    transition:opacity .25s ease,visibility .25s;
    pointer-events:none;
  }
  #process .has-step-door p::before {
    content:counter(process-step,decimal-leading-zero);
    margin-bottom:18px;
    color:#c8b69f;
    font-size:12px;
    letter-spacing:.12em;
    line-height:28px;
  }
  #process .has-step-door.is-open p {
    opacity:1;
    visibility:visible;
    transition-delay:.12s;
  }
  #process .has-step-door .step-toggle {
    display:block;
    position:absolute;
    z-index:2;
    inset:0;
    width:100%;
    height:100%;
    margin:0;
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
    color:inherit;
    cursor:pointer;
    touch-action:manipulation;
    -webkit-tap-highlight-color:transparent;
  }
  #process .step-toggle:focus-visible {
    outline:2px solid #eadac2;
    outline-offset:-5px;
  }
}

@media (min-width:0px) and (prefers-reduced-motion:reduce) {
  #process .has-step-door .step-facade,
  #process .has-step-door p {transition:none}
}

/* Keep the approved framing; select enough texture detail for phone pixel density. */
@media (max-width:650px) {
 #process .steps > article:nth-child(1) {--facade-source:image-set(url("assets/optimized/process-facade-wood-generated-v1-640.webp") 1x,url("assets/optimized/process-facade-wood-generated-v1-960.webp") 2x,url("assets/optimized/process-facade-wood-generated-v1-1122.webp") 3x)}
 #process .steps > article:nth-child(2) {--facade-source:image-set(url("assets/optimized/process-marble-flat-v1-640.webp") 1x,url("assets/optimized/process-marble-flat-v1-960.webp") 2x,url("assets/optimized/process-marble-flat-v1-1122.webp") 3x)}
 #process .steps > article:nth-child(3) {--facade-source:image-set(url("assets/optimized/process-facade-fluted-generated-v1-640.webp") 1x,url("assets/optimized/process-facade-fluted-generated-v1-960.webp") 2x,url("assets/optimized/process-facade-fluted-generated-v1-1122.webp") 3x)}
}

/* Source: mobile-contact.css */
/* Local copy: dark brushed graphite form and subdued map at every viewport width. */
@media (min-width:0px) {
  #contact .form {
    margin:0;
    background-color:#131211;
    background-image:linear-gradient(180deg,#080a0b99,#080a0bb3),url("assets/graphite-brushed.svg"),radial-gradient(ellipse 10% 100% at 41% 20%,#d2c8b41a,transparent 80%),linear-gradient(108deg,#191e20 0%,#3d4547 31%,#535a574d 40%,#2b3234 48%,#191e20 65%,#353e40 90%,#1b2123 100%);
    background-size:100% 100%,1024px 512px,100% 100%,100% 100%;
    background-blend-mode:normal,soft-light,screen,normal;
    color:var(--text);
    border-color:#302e2b;
    box-shadow:inset 0 1px 0 #f1e4ca12,inset 0 -1px 0 #000a,0 8px 24px #0003;
    color-scheme:dark;
  }
  #contact .form input:not([type=checkbox]):not([type=file]),
  #contact .form select,
  #contact .form textarea {
    background:linear-gradient(115deg,#202527f0,#191e20ec);
    border-color:#5a605f;
    color:var(--text);
    box-shadow:inset 0 1px 3px #0002;
  }
  #contact .form input::placeholder,
  #contact .form textarea::placeholder { color:#b3ada4;opacity:1; }
  #contact .form select option { background:#1d2224;color:var(--text); }
  #contact .form label.consent,
  #contact .form > p { color:#b3ada4; }
  #contact .form .consent input { border-color:#a49988; }
  #contact .form .consent input:checked {
    background:var(--accent);
    box-shadow:inset 0 0 0 2px #181715;
  }
  #contact .form :is(.button.dark,label.file) {
    --glass-face:linear-gradient(180deg,#454d50aa,#343b3da6);
    --glass-shadow:inset 0 1px 0 #ffffff1a,0 3px 12px #0002;
    border-color:#89918f88;
  }
  #contact .map { background:#181715;border-color:#3b3731; }
  #contact .map iframe { filter:invert(1) hue-rotate(180deg) saturate(.45) brightness(.85); }
  #contact .map-address {
    background:#181715f5;
    color:var(--text);
    border-color:#4b453d;
  }
  #contact .map-address :is(small,.icon) { color:var(--accent); }
}

/* Mobile contact spacing and readability. */
#contact .contact-info .contact-email,
#contact .messengers-chat-icon { display:none; }
@media (max-width:650px) {
  /* Keep the form above the contacts without moving DOM nodes after load. */
  #contact { row-gap:0;padding-top:32px;padding-bottom:32px; }
  #contact .contact-copy { display:contents; }
  #contact h2 { margin-bottom:4px; }
  #contact > .form { grid-row:4; }
  #contact .contact-info { grid-row:5; }
  #contact .map { grid-row:6; }
  #contact .contact-phone { top:10px; }
  #contact .contact-phone .icon { width:32px;height:32px; }
  #contact .contact-info .contact-email { display:block;position:relative;align-self:flex-start;margin:20px 0 0 44px;font-size:22px;line-height:1.5;color:var(--muted); }
  #contact .contact-email .icon { position:absolute;left:-44px;top:50%;transform:translateY(-50%);width:32px;height:32px; }
  #contact .messengers { position:relative;margin:12px 0 17px;padding-left:44px;gap:16px; }
  #contact .messengers-chat-icon { display:block;position:absolute;left:0;top:50%;transform:translateY(-50%);width:32px;height:32px; }
  #contact .messengers > span { display:none; }
  #contact .messengers .messenger { width:44px;height:44px;flex:0 0 44px; }
  #contact .messengers .messenger :is(.icon,.max-icon) { width:28px;height:28px; }
}

/* Source: desktop-updates.css */
/* Wide composition based on the latest mobile version. Header rules are preserved. */
@media(min-width:651px){
 .hero-stage{position:relative;isolation:isolate;display:flex;flex-direction:column;min-height:max(760px,100svh);padding:148px 0 32px;gap:52px;background:#0b0b0b}
 .hero-stage .hero{position:static;isolation:auto;flex:1;min-height:0;height:auto;padding:0;align-items:center}
 .hero-stage .hero-copy{transform:translateY(-8px)}
 .hero-stage h1{font-size:clamp(42px,3.75vw,60px);line-height:1.12;max-width:850px;margin:0 0 26px;text-wrap:balance}
 .hero-stage .lead{font-size:clamp(17px,1.5vw,22px);line-height:1.7;margin:0 0 28px}
 .hero-stage .signature{font-size:9px;max-width:570px;line-height:1.8;margin-top:24px}
 .hero-stage .hero-image{left:auto;width:67%;height:100%}
 .hero-stage .hero-caption-mobile{display:flex;bottom:160px;right:max(60px,calc((100vw - 1320px)/2));left:auto;opacity:.8}
 .hero-stage .hero-image::after{background:linear-gradient(90deg,#0b0b0b 0%,#0b0b0bea 5%,#0b0b0ba6 26%,#0b0b0b26 60%,transparent 100%),linear-gradient(0deg,#0b0b0b 0%,transparent 30%,transparent 75%,#08080840)}
 .hero-stage>.proof{z-index:2;position:relative;padding:24px 0 0;border-top:1px solid #c8b69f30;border-bottom:0;text-shadow:0 1px 5px #0008}
 .hero-stage .proof>div{display:grid;grid-template-columns:29.9px minmax(0,1fr);column-gap:12px;padding-left:24px}
 .hero-stage .proof>div:first-child{padding-left:0}
 .hero-stage .proof .icon{grid-row:1/3;width:29.9px;height:29.9px;margin-top:3px;color:var(--accent)}
 .hero-stage .proof b{font-size:16.1px;line-height:1.5}
 .hero-stage .proof span{font-size:12.65px;color:#bdb5a9;line-height:1.5}
 #catalog{padding:64px 0 54px}
 #catalog .tabs{margin:28px 0 30px;gap:12px;flex-wrap:wrap}
 #catalog .cards{gap:32px 24px}
 #catalog .card h3{margin:16px 0 6px;line-height:1.35;font-size:26.45px}
 #catalog .card p{font-size:13.8px;line-height:1.7}
 #catalog .card p.card-description{margin-top:9px;max-width:46ch}
 #catalog .catalog-bottom{justify-content:flex-end;margin-top:28px}
 .about{background-image:linear-gradient(180deg,#080a0b99,#080a0bb3),url("assets/graphite-brushed.svg"),radial-gradient(ellipse 10% 100% at 41% 20%,#d2c8b41a,transparent 80%),linear-gradient(108deg,#191e20 0%,#3d4547 31%,#535a574d 40%,#2b3234 48%,#191e20 65%,#353e40 90%,#1b2123 100%);background-size:100% 100%,1024px 512px,100% 100%,100% 100%;background-blend-mode:normal,soft-light,screen,normal;border-color:#302e2b;box-shadow:inset 0 1px 0 #f1e4ca12,inset 0 -1px 0 #000a}
 .about::before{background:linear-gradient(108deg,transparent 20%,#e0d7c908 28%,transparent 34%),linear-gradient(180deg,transparent,#06090b40)}
 .about::after{opacity:.35}
 .about .portrait-frame::after{opacity:.3}
 .about .family-facts{border-color:#b7ab9530}
 .about .about-inner{padding-top:78px;padding-bottom:46px;min-height:380px}
 /* Keep the portrait crop tied to its grid column rather than the viewport edge. */
 .about .portrait{top:-78px;left:-144px;width:calc(100% + 180px);height:calc(100% + 124px);-webkit-mask-image:linear-gradient(to right,transparent,#000 16%,#000 58%,#000000e6 71%,#000000b3 78%,#00000066 85%,#00000029 92%,transparent);mask-image:linear-gradient(to right,transparent,#000 16%,#000 58%,#000000e6 71%,#000000b3 78%,#00000066 85%,#00000029 92%,transparent)}
 .about .portrait-frame::after{top:-78px;bottom:-46px;left:-144px}
 .about .about-copy>p{font-size:14px;line-height:1.85}
 .trusted-partners{padding:40px 0 42px}
 .trusted-partners h2{margin:11px 0 26px}
 #process{--card-inset:26px;display:block;padding:56px 0 60px}
 #process .work-title{display:flex;align-items:baseline;flex-wrap:wrap;column-gap:28px}
 #process .work-title .eyebrow{width:100%;font-size:10px}
 #process .work-title h2{font-size:38px;line-height:1.15;margin:11px 0 0}
 #process .process-hint{margin:0 0 0 auto;font-size:12px}
 #process .steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin-top:30px}
 #process .steps>article{min-height:240px;aspect-ratio:1/1;border-color:#c8b69f30}
 #process .step-label{gap:21px}
 #process .step-mark{height:40px;gap:15px}
 #process .step-number{font-size:36px;line-height:40px;padding-right:15px}
 #process .step-icon,#process .step-icon .line-icon{width:36px;height:36px}
 #process .steps h3{font-size:clamp(15px,1.2vw,18px);line-height:1.4;height:2.8em}
 #process .step-handle{bottom:20px;width:50px;height:6px}
 #process .has-step-door p{font-size:16px;line-height:1.7;padding:26px 30px}
 #process .has-step-door p::before{margin-bottom:32px;font-size:14px}
 .reviews-inner{grid-template-columns:1fr;padding:42px 0 46px;gap:28px}
 .reviews-title{display:flex;align-items:center;flex-wrap:wrap;gap:12px 24px}
 .reviews-title .eyebrow{width:100%;font-size:10px}
 .reviews-title h2{font-size:38px;margin:0;line-height:1.15}
 .reviews-title .button{margin-left:auto;min-height:36px}
 .review-cards{gap:20px}
 .review{padding:24px;min-height:220px;border-color:#333;background:#111}
 .review-source{font-size:10px}
 .review blockquote{font-size:21px;line-height:1.5;margin:24px 0}
 .review-author{font-size:12px}
 .review-author time{font-size:10px;margin-top:5px}
 #contact{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;padding:58px 0 60px}
 #contact h2{font-size:42px;margin:12px 0 18px}
 #contact .contact-copy>p{font-size:14px;line-height:1.8;margin-bottom:24px}
 #contact .messengers{margin:18px 0 22px}
 #contact .map{min-height:230px}
 #contact .form{padding:32px;min-width:0}
 #contact .form h3{font-size:27px;line-height:1.25;margin-bottom:24px}
 #contact .form>label,#contact .form-row>label{font-size:12px;font-weight:400}
 #contact .form input:not([type=checkbox]):not([type=file]),#contact .form select,#contact .form textarea{min-height:46px;font-size:13px;margin-top:8px}
 #contact .form-row{margin:18px 0;gap:16px}
 #contact .form .clarification{margin-bottom:18px}
 #contact .form textarea{min-height:86px}
 #contact .form label.file{font-size:10px;padding:13px 15px}
 #contact .form label.file small{color:#b3ada4}
 #contact .form .file .icon{color:var(--accent)}
 #contact .form label.consent{font-size:10px;margin:20px 0;line-height:1.6}
 #contact .form .button{min-height:44px}
 #contact .form>p{margin-top:13px}
 .footer{padding-top:30px;padding-bottom:26px}
}
@media(min-width:651px) and (max-width:1180px){
 .hero-stage{min-height:max(730px,100svh)}
 .hero-stage .proof>div{padding-left:14px;column-gap:8px;grid-template-columns:25.3px minmax(0,1fr)}
 .hero-stage .proof b{font-size:13.8px}.hero-stage .proof span{font-size:11.5px}.hero-stage .proof .icon{width:25.3px;height:25.3px}
 .about .about-inner{grid-template-columns:240px minmax(0,1fr) 190px;gap:26px}
 .about .family-facts{padding-left:22px}
 #process .steps{gap:14px}#process .steps>article{min-height:208px}
 #process .has-step-door p{padding:22px;font-size:14px}
 .review{padding:20px}.review blockquote{font-size:18px}
 #contact{gap:36px}#contact .form{padding:26px}
}
@media(min-width:651px) and (max-width:900px){
 .hero-stage h1{font-size:40px}.hero-stage .hero-image{width:80%}
 .hero-stage .hero-actions{flex-wrap:wrap}
 .hero-stage .proof{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
 .hero-stage .proof>div:nth-child(3){padding-left:0;border-left:0}
 .about .about-inner{grid-template-columns:200px minmax(0,1fr)}
 .about .family-facts{grid-column:1/-1;padding:20px 0 0;border-left:0;border-top:1px solid #b7ab9530}
 #process .steps{grid-template-columns:repeat(2,minmax(0,1fr))}
 #process .steps>article{aspect-ratio:5/4;min-height:208px}
 #process .process-hint{width:100%;margin:15px 0 0}
 .review-cards{grid-template-columns:1fr}.review{min-height:180px}
 #contact{grid-template-columns:1fr}#contact .map{min-height:300px}
}
@media(prefers-reduced-motion:reduce){.trusted-partners__track{animation:none!important}}

/* Clear, larger production promises with restrained warm-metal bullet points. */
@media(max-width:800px){.about .family-facts{flex-wrap:wrap}}
/* The desktop contact block follows the same icon layout as mobile. */
@media(min-width:651px){
 #contact .contact-phone{gap:12px;min-height:36px}
 #contact .contact-phone .icon{width:32px;height:32px;flex:0 0 32px}
 #contact .contact-info strong{font-size:24px;line-height:1.5}
 #contact .contact-info .contact-email{display:block;position:relative;align-self:flex-start;margin:20px 0 0 44px;font-size:24px;line-height:1.5;color:var(--muted)}
 #contact .contact-email .icon{position:absolute;left:-44px;top:50%;transform:translateY(-50%);width:32px;height:32px;color:var(--accent)}
 #contact .messengers{position:relative;margin:12px 0 22px;padding-left:44px;gap:16px}
 #contact .messengers-chat-icon{display:block;position:absolute;left:0;top:50%;transform:translateY(-50%);width:32px;height:32px;color:var(--accent)}
 #contact .messengers>span{display:none}
 #contact .messengers .messenger{width:44px;height:44px;flex:0 0 44px}
 #contact .messengers .messenger :is(.icon,.max-icon){width:28px;height:28px}
}

/* Larger desktop navigation and phone for readability. */
@media(min-width:651px){
 .header nav{font-size:13.26px}
 .header .phone{font-size:15.47px}
 .header nav a{white-space:nowrap}
}
@media(min-width:1181px) and (max-width:1280px){
 .header{gap:14px}
 .header nav{gap:12px}
}

/* Increase only the selected production description and labels. */
@media(min-width:651px){
 .about .about-copy>.eyebrow{font-size:11.5px}
 .about .about-copy>p{font-size:16.1px}
 .about .family-facts span{font-size:12.65px}
}

/* Section-opening labels, excluding the already sized production label. */
@media(min-width:651px){
 #catalog>.section-title .eyebrow,
 #trusted-partners>.eyebrow,
 #process .work-title .eyebrow,
 #reviews .reviews-title .eyebrow,
 #contact .contact-copy>.eyebrow{font-size:11.5px}
}

/* Enlarge only the header company identity by 20 percent. */
@media(min-width:651px){
 .header .brand{gap:15.6px;flex-shrink:0}
 .header .brand img{width:52.8px;height:39.6px}
 .header .brand>span{font-size:15.6px}
 .header .brand small{font-size:9.6px;margin-top:3.6px}
}

/* Source: hero-slideshow.css */
/* Gentle photo motion and a two-second dissolve. All layers stay inside the hero. */
.hero-image{overflow:hidden;background-color:#171612;background-image:url('assets/optimized/hero-evening-01-1536.webp?v=4a40d954c586'),url('data:image/webp;base64,UklGRpgAAABXRUJQVlA4IIwAAAAQBACdASoYABAAPu1iqU2ppaOiMAgBMB2JZACdMoADNbylhoykG9PGsAD7IQUs4xINr91seCmuD5NhQH1anyBFBzyt9hfeYkp0iql0jXRYHArrXnTYxb6sLUW3jcuWvG+5oHZWk5FQHBSVB9hJej4Y9jBDyAozzASESudESc6+nwoGF5TkeqDZF4AAAA==');background-position:54% 50%;background-size:cover;background-repeat:no-repeat}
.hero-image .hero-slide{position:absolute;inset:0;opacity:0;z-index:0;overflow:hidden;transition:opacity 2s ease-in-out;pointer-events:none}
.hero-image .hero-slide.is-active{opacity:1;z-index:1}
.hero-image .hero-slide.is-leaving{z-index:0;opacity:1}
.hero-image .hero-slide>img{display:block;width:100%;height:100%;max-width:none;object-fit:cover;object-position:var(--slide-position,55% 55%);transform:scale(1.025);filter:none}
.hero-image .hero-slide.is-active>img,.hero-image .hero-slide.is-leaving>img{animation:hero-photo-drift 13s linear both;will-change:transform}
.hero-image .hero-slide:nth-child(even)>img{animation-direction:reverse}
.hero-image::after{z-index:2;pointer-events:none}
.hero-image figcaption{z-index:3}
.hero-stage.hero-is-paused .hero-slide>img{animation-play-state:paused}
@keyframes hero-photo-drift{from{transform:scale(1.025) translate3d(-.6%,.3%,0)}to{transform:scale(1.09) translate3d(.6%,-.3%,0)}}
.hero-slideshow-controls{position:absolute;z-index:4;right:max(60px,calc((100vw - 1320px)/2));bottom:112px;display:flex;align-items:center;gap:14px;padding:5px 0;color:#f3efe8}
.hero-slide-dots{display:flex;align-items:center;gap:2px}
.hero-slide-dot,.hero-motion-toggle{display:grid;place-items:center;width:32px;height:32px;margin:0;padding:0;border:0;border-radius:50%;background:transparent;color:inherit;cursor:pointer;touch-action:manipulation}
.hero-slide-dot::before{content:"";width:5px;height:5px;border:1px solid #f3efe899;border-radius:50%;transition:background .3s,transform .3s}
.hero-slide-dot[aria-current="true"]::before{background:#f3efe8;border-color:#f3efe8;transform:scale(1.4)}
.hero-motion-toggle{border:1px solid #f3efe84d;background:#0b0b0b40;backdrop-filter:blur(8px)}
.hero-motion-toggle svg{width:13px;height:13px;fill:currentColor;stroke:none}
.hero-motion-toggle .hero-play-icon{display:none}
.hero-motion-toggle[aria-pressed="true"] .hero-pause-icon{display:none}
.hero-motion-toggle[aria-pressed="true"] .hero-play-icon{display:block}
.hero-slide-dot:hover,.hero-motion-toggle:hover{background:#f3efe81a}
.hero-slide-dot:focus-visible,.hero-motion-toggle:focus-visible{outline:2px solid #c8b69f;outline-offset:3px}
@media(min-width:651px) and (max-width:1000px){.hero-slideshow-controls{right:24px}}
@media(max-width:650px){
 .hero-image{background-position:60% 50%}
 .hero-image .hero-slide>img{object-position:var(--slide-mobile-position,55% 50%)}
 .hero-slideshow-controls{right:18px;bottom:22px;gap:8px}
 .hero-slide-dot{width:26px;height:32px}
 .hero-motion-toggle{width:30px;height:30px}
}
@media(prefers-reduced-motion:reduce){
 .hero-image .hero-slide{transition:none}
 .hero-image .hero-slide>img{animation:none!important;transform:none;will-change:auto}
 .hero-motion-toggle{display:none}
}

/* Three approved photographs cover the entire opening screen. */
.hero-stage .hero-image{inset:0;width:100%;height:100%}
@media(min-width:651px){
 .hero-stage .hero-image::after{background:linear-gradient(90deg,#080808b3 0%,#0808088a 34%,#08080838 66%,#08080814 100%),linear-gradient(0deg,#0b0b0be6 0%,#0b0b0b33 23%,transparent 50%,#08080833 100%)}
}

/* Source: mobile-menu.css */
/* Mobile navigation only; the approved desktop rules remain intact. */
.menu-toggle{display:none}
@media(max-width:650px){
 .header{height:73px;grid-template-columns:minmax(0,1fr) auto 40px;gap:8px}
 .header .brand{grid-column:1;grid-row:1}
 .header .phone{grid-column:2;grid-row:1}
 .header .menu-toggle{grid-column:3;grid-row:1;display:grid;place-items:center;width:40px;height:44px;padding:8px;background:transparent;color:var(--text);border:1px solid #f3efe840;border-radius:4px}
 .menu-toggle .icon{width:22px;height:22px}
 .menu-toggle .menu-close-icon{display:none}
 .menu-toggle[aria-expanded="true"] .menu-open-icon{display:none}
 .menu-toggle[aria-expanded="true"] .menu-close-icon{display:block}
 .menu-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
 .header nav{display:none;position:absolute;top:100%;left:0;right:0;width:auto;margin:0;padding:12px 18px 18px;gap:0;background:#10100ff5;border-bottom:1px solid #f3efe830;box-shadow:0 12px 24px #0005;max-height:calc(100svh - 90px);overflow-y:auto;font-size:14px}
 .header nav.is-open{display:flex;flex-direction:column;align-items:stretch}
 .header nav a{padding:13px 10px;min-height:46px;border-bottom:1px solid #f3efe818}
 .header nav a:last-child{border-bottom:0}
}
@media(max-width:360px){
 .header{height:88px;grid-template-columns:minmax(0,1fr) 40px;gap:0 8px}
 .header .phone{grid-column:1;grid-row:2;justify-self:start;padding:2px 0}
 .header .menu-toggle{grid-column:2;grid-row:1/3}
}

/* Source: mobile-hero-viewport.css */
/* Restore the approved phone composition without changing its photographs. */
@media (max-width:650px){
 .hero-stage{min-height:100vh;min-height:100svh}
}
@media (min-width:651px){
/* Match the existing 1180px header breakpoint; wider layouts keep their rules. */
@media (max-width:1180px){
 .hero-stage{
  --hero-header-height:89px;
  --hero-bottom:70px;
  position:relative;isolation:isolate;display:flex;flex-direction:column;
  min-height:100vh;min-height:100svh;min-height:100dvh;
  padding:calc(var(--hero-header-height) + clamp(16px,4vh,44px)) 0 calc(var(--hero-bottom) + env(safe-area-inset-bottom,0px));
  padding-top:calc(var(--hero-header-height) + clamp(16px,4dvh,44px));
  gap:24px;
 }
 .hero-stage .hero{position:static;isolation:auto;flex:1 0 auto;height:auto;min-height:0;padding:0}
 .hero-stage .hero-copy{transform:none}
 .hero-stage .hero-image{inset:0;width:100%;height:100%}
 .hero-stage .hero-caption-mobile{left:18px;right:auto;bottom:24px;max-width:calc(100% - 180px);opacity:.8}
 .hero-stage .hero-caption-mobile>span{font-size:6px}
 .hero-stage .hero-slideshow-controls{right:18px;bottom:20px;gap:8px}
 .hero-stage>.proof{flex:none;margin:0 auto}
}
@media (min-width:651px) and (max-width:1180px){
 .hero-stage .hero h1{font-size:clamp(32px,4.5vw,48px);line-height:1.12;margin:0 0 22px}
 .hero-stage .hero .lead{font-size:clamp(15px,1.8vw,20px);line-height:1.6;margin:0 0 22px}
 .hero-stage .hero .signature{margin-top:18px}
 .hero-stage>.proof{padding-top:16px}
}


/* Let content grow for enlarged text; never crop it to a fixed height. */
@media (max-width:1180px) and (max-height:600px){
 .hero-stage{--hero-bottom:58px;padding-top:calc(var(--hero-header-height) + 12px);gap:10px}
 .hero-stage .hero h1{font-size:clamp(25px,4vw,34px);line-height:1.05;margin:0 0 10px}
 .hero-stage .hero .lead{font-size:12px;line-height:1.4;margin:0 0 10px}
 .hero-stage .hero-actions{flex-wrap:wrap;gap:6px 18px}
 .hero-stage .hero-actions .button,.hero-stage .hero-actions .text-link{min-height:44px;font-size:9px}
 .hero-stage .hero .signature{font-size:7px;line-height:1.5;margin:8px 0 0}
 .hero-stage>.proof{padding:8px 0 0;gap:10px 9px}
 .hero-stage .proof>div{grid-template-columns:18px minmax(0,1fr);column-gap:6px;row-gap:2px}
 .hero-stage .proof>div>.line-icon{width:18px;height:18px;margin:0}
 .hero-stage .proof b{font-size:10px;line-height:1.4}
 .hero-stage .proof span{font-size:8px;line-height:1.4}
 .hero-stage .hero-caption-mobile{bottom:16px}
 .hero-stage .hero-slideshow-controls{bottom:10px}
}
/* Landscape phones use the width to keep every item inside the short viewport. */
@media (min-width:480px) and (max-width:1180px) and (max-height:500px){
 .hero-stage .hero h1 br{display:none}
 .hero-stage .hero h1{font-size:clamp(23px,3.5vw,32px)}
 .hero-stage>.proof{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
 .hero-stage .proof>div{padding-left:8px;border-left:1px solid var(--line)}
 .hero-stage .proof>div:first-child{padding-left:0;border-left:0}
}
@media (max-width:1180px) and (max-height:380px){
 .header{height:60px}
 .hero-stage{--hero-header-height:61px;padding-top:calc(var(--hero-header-height) + 8px);gap:8px}
 .hero-stage .hero h1{font-size:23px;margin-bottom:6px}
 .hero-stage .hero .lead{font-size:11px;margin-bottom:6px}
 .hero-stage .hero .signature{margin-top:6px}
}



@media (min-width:480px) and (max-width:1180px) and (max-height:380px){
 .hero-stage{gap:6px}
 .hero-stage .hero h1{margin-bottom:4px}
 .hero-stage .hero .signature{margin-top:4px}
 .hero-stage .hero-copy{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:18px;align-items:center}
 .hero-stage .hero h1,.hero-stage .hero .signature{grid-column:1/-1}
 .hero-stage .hero .lead{margin:0}
 .hero-stage .hero-actions{display:grid;grid-template-columns:1fr;gap:0}
 .hero-stage .hero-actions .button,.hero-stage .hero-actions .text-link{min-height:32px;padding-top:6px;padding-bottom:6px}
 .hero-stage .proof>div{grid-template-columns:16px minmax(0,1fr);column-gap:4px}
 .hero-stage .proof>div>.line-icon{width:16px;height:16px}
 .hero-stage .proof b{font-size:9px}
 .hero-stage .proof span{font-size:7.5px}
}
}

/* Lower only the hero actions and their cost note on phones and tablets. */
@media (max-width:1180px){
 .hero-stage .hero-actions,.hero-stage .hero .signature{position:relative;top:24px}
}

/* Source: catalog-glass.css */
/* Scoped preview: glass project panels; original category buttons retained. */
#catalog .cards { align-items: stretch; }
#catalog .card {
  position: relative;
  min-width: 0;
  padding-bottom: 20px;
  border: 1px solid #ffffff24;
  border-top-color: #ffffff47;
  border-radius: 4px;
  background: linear-gradient(145deg,#ffffff0c,#ffffff03 60%), #ffffff03;
  backdrop-filter: blur(14px) saturate(110%);
  -webkit-backdrop-filter: blur(14px) saturate(110%);
  box-shadow: inset 0 1px 0 #ffffff12, 0 8px 24px #00000029;
  transform-origin: center center;
  transition: transform 340ms cubic-bezier(.2,.7,.2,1), box-shadow 340ms ease, border-color 340ms ease;
}
#catalog .card .photo { border-radius: 3px 3px 0 0; background: transparent; }
#catalog .card .photo img,
#catalog .card .photo:hover img { transform: none; }
#catalog .card h3,
#catalog .card p { margin-left: 18px; margin-right: 18px; }
#catalog .card p.card-description { max-width: none; }
#catalog .card:has(:focus-visible) {
  z-index: 1;
  border-color: #e4c48d99;
  box-shadow: inset 0 1px 0 #fff3d82b, 0 0 0 1px #e4c48d38, 0 0 26px #e9b86e24;
}
#catalog .card .photo:focus-visible { outline: 2px solid #f3d49f; outline-offset: -4px; }
#catalog .cards:focus-visible { outline: 1px solid #e4c48d80; outline-offset: 6px; }
@media (hover: hover) and (pointer: fine) {
  /* Keep one raster layer throughout the zoom; soften subpixel detail to prevent moire. */
  #catalog .card { will-change: transform; }
  #catalog .card .photo img,
  #catalog .card .photo:hover img {
    transform: translateZ(0);
    backface-visibility: hidden;
    filter: blur(.35px);
    transition: none;
  }
  #catalog .card:hover {
    z-index: 2;
    transform: translateY(-3px) scale(1.025);
    border-color: #e4c48d80;
    box-shadow: inset 0 1px 0 #fff3d83d, 0 0 0 1px #e4c48d1f, 0 0 30px #e9b86e26, 0 16px 34px #00000059;
  }
}
@media (max-width: 650px) {
  #catalog .cards { padding: 6px 4px 16px; margin: 0 -4px; }
  #catalog .card { padding-bottom: 18px; }
  #catalog .card h3, #catalog .card p { margin-left: 14px; margin-right: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  #catalog .card { transition: none; will-change: auto; }
  #catalog .card .photo img,
  #catalog .card .photo:hover img { filter: none; }
  #catalog .card:hover { transform: none; }
}

/* Source: process-interiors.css */
/* Open cabinet contents. Front faces and their original marks stay intact. */
#process .step-interior {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 13px;
  padding: 24px 26px 18px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 250ms ease, visibility 250ms ease;
}
#process .is-open .step-interior {
  opacity: 1;
  visibility: visible;
  transition-delay: 120ms;
}
#process .step-interior .step-mark {
  flex: 0 0 auto;
  justify-content: flex-start;
}
#process .steps > article .step-interior .step-number,
#process .steps > article .step-interior .step-icon .line-icon {
  color: #f2e1c8;
}
#process .steps > article .step-interior .step-number { border-right-color: #e9d8bf55; }
#process .has-step-door .step-interior p,
#process .has-step-door.is-open .step-interior p {
  display: block;
  position: static;
  inset: auto;
  flex: 0 0 auto;
  padding: 0;
  margin: 0;
  font-size: clamp(12px, 1.1vw, 16px);
  line-height: 1.55;
  opacity: 1;
  visibility: inherit;
  transition: none;
}
#process .has-step-door .step-interior p::before { content: none; }
#process .step-blueprint {
  display: block;
  flex: 1 1 0;
  min-height: 0;
  width: 100%;
  height: 0;
  object-fit: contain;
  object-position: center bottom;
  opacity: .9;
}
@media (max-width: 650px) {
  #process .steps > article { min-height: 240px; aspect-ratio: 3 / 4; }
  #process .step-interior { padding: 16px 14px 14px; gap: 12px; }
  #process .has-step-door .step-interior p { font-size: 12px; line-height: 1.5; }
}
@media (prefers-reduced-motion: reduce) {
  #process .step-interior { transition: none; }
}

/* Source: cookie-notice.css */
.nr-cookies[hidden]{display:none!important}
.nr-cookies{position:fixed;z-index:90;left:24px;bottom:max(24px,env(safe-area-inset-bottom));width:min(680px,calc(100% - 48px));padding:20px 22px;background:rgba(25,25,23,.97);border:1px solid #726959;box-shadow:0 12px 48px #0006;color:#f3efe8;isolation:isolate}
.nr-cookies__heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:7px}
.nr-cookies h2{font:400 22px/1.2 Georgia,'Times New Roman',serif;letter-spacing:-.02em;margin:0}
.nr-cookies p{font:13px/1.5 Arial,Helvetica,sans-serif;color:#c4beb5;margin:0;max-width:540px}
.nr-cookies__actions{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap}
.nr-cookies__choice{min-height:44px;padding:11px 20px;border:1px solid #c8b69f;border-radius:0;background:#c8b69f;color:#181715;font:12px/1.4 Arial,Helvetica,sans-serif;letter-spacing:.04em;cursor:pointer}
.nr-cookies__choice--necessary{background:transparent;color:#eee7dd;border-color:#71695d}
.nr-cookies button:hover{filter:brightness(1.15)}
.nr-cookies button:focus-visible{outline:2px solid #fff;outline-offset:4px}
@media(max-width:600px){
 .nr-cookies{left:12px;bottom:max(12px,env(safe-area-inset-bottom));width:calc(100% - 24px);padding:16px}
 .nr-cookies h2{font-size:20px}
 .nr-cookies p{font-size:12px;line-height:1.5}
 .nr-cookies__heading{gap:8px}
 .nr-cookies__actions{gap:8px;margin-top:13px}
 .nr-cookies__choice{padding:10px 13px;flex:1 1 auto;font-size:11px}
}


/* Background, cat, then readable cookie content. */
.nr-cookies__heading,.nr-cookies>p,.nr-cookies__actions{position:relative;z-index:2}
.nr-cookies h2,.nr-cookies>p{text-shadow:0 1px 3px #000,0 0 6px #000}
.nr-cookies>p a{color:#e4cfad;text-decoration:underline;text-underline-offset:3px}
.nr-cookies__heading h2{min-width:0}
.nr-legal-links{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin-top:10px;font-size:11px;line-height:1.6}
.nr-legal-links a,.nr-legal-links button{color:var(--muted,#aba59c);text-decoration:underline;text-underline-offset:3px}
.nr-legal-links button{font:inherit;padding:0;border:0;background:transparent;cursor:pointer;text-align:left;min-height:32px}
.nr-legal-links a:hover,.nr-legal-links button:hover{color:var(--accent,#c8b69f)}
.nr-legal-links :focus-visible{outline:2px solid #eee8df;outline-offset:4px}
#contact label.consent a{text-decoration:underline;text-underline-offset:2px}
#contact .map iframe[hidden],#contact [data-map-placeholder][hidden]{display:none!important}
#contact .nr-map-placeholder{position:absolute;inset:0 0 65px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:14px 20px;text-align:center;background:radial-gradient(ellipse at center,#302e28,#181715);color:#c4beb5}
#contact .nr-map-placeholder p{font-size:12px;line-height:1.5;margin:0;max-width:300px}
#contact .nr-map-placeholder button{min-height:40px;padding:8px 14px;border:1px solid #86785f;background:transparent;color:#e8dcc8;font:11px/1.4 Arial,Helvetica,sans-serif;cursor:pointer}
#contact .nr-map-placeholder button:focus-visible{outline:2px solid #eee8df;outline-offset:3px}

/* Source: milk-cat.css */
.nr-milk-cat[hidden]{display:none!important}
.nr-milk-cat [hidden]{display:none!important}
.nr-milk-cat{position:fixed;right:22px;bottom:18px;z-index:1;width:300px;margin:0;pointer-events:none;contain:layout style}
.nr-milk-cat__stage{height:var(--nr-cat-stage-height,424px);overflow:visible}
.nr-milk-cat__media{display:block;width:var(--nr-cat-media-width,100%);height:auto;margin:0 0 0 var(--nr-cat-media-left,0px);aspect-ratio:768/1344;object-fit:contain;background:transparent}
/* Keep the decoder running inline while only the composited canvas is visible. */
.nr-milk-cat__video{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.nr-milk-cat__paw{position:fixed;display:block;z-index:3;pointer-events:none;background:transparent}
.nr-milk-cat__paw[hidden]{display:none!important}
.nr-cookies__sound{flex:0 0 32px;width:32px;height:32px;padding:5px;border:0;background:transparent;color:#c8b69f;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.nr-cookies__sound svg{display:block;width:22px;height:22px}
.nr-cookies__sound[aria-pressed="false"] .nr-cookies__sound-on,.nr-cookies__sound[aria-pressed="true"] .nr-cookies__sound-off{display:none}
.nr-cookies__sound[aria-pressed="true"]{color:#fff0d7}
.nr-cookies [data-cookie-choice="accepted"]{--nr-impact:0;--nr-wave:0;--nr-ring:0;position:relative;transform:translateY(calc(var(--nr-impact)*2.5px)) scale(calc(1 - var(--nr-impact)*.025));filter:brightness(calc(1 + var(--nr-impact)*.25));box-shadow:0 0 calc(10px + var(--nr-impact)*24px) rgba(251,207,137,calc(.12 + var(--nr-impact)*.58)),inset 0 calc(var(--nr-impact)*3px) calc(var(--nr-impact)*7px) #72563866}
.nr-cookies [data-cookie-choice="accepted"]:after{content:"";position:absolute;pointer-events:none;inset:-2px;border:1px solid #ffe4b2;opacity:var(--nr-ring);transform:scale(calc(1 + var(--nr-wave)*.35),calc(1 + var(--nr-wave)*1.3));box-shadow:0 0 12px #f2c67a88}
@media(max-width:600px){.nr-milk-cat{right:15px;bottom:12px;width:224px}}
@media(prefers-reduced-motion:reduce){.nr-milk-cat{transition:none}}

/* Source: contact-links.css */
/* Clear hit areas and the same warm light strip used by the phone link. */
.inquiry-trap{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
#inquiry-form button:disabled{opacity:.65;cursor:progress}
.inquiry-phone-hint{display:block;margin-top:6px;font-size:10px;font-weight:400;line-height:1.4;opacity:.8}
#inquiry-form #form-note[data-state=error]{color:#ffc7b5}
#inquiry-form #form-note[data-state=success]{color:#d9e8c5}
#contact .contact-info{position:relative;z-index:1}
#contact .contact-info :is(.contact-phone,.contact-email,.messenger){position:relative;z-index:1;pointer-events:auto;cursor:pointer;touch-action:manipulation}
#contact .contact-info .contact-email{display:flex;align-items:center;align-self:stretch;min-height:44px;margin-left:0;padding-left:44px}
#contact .contact-email .icon{left:0}
#contact .contact-info a :is(svg,img){pointer-events:none}
#contact .contact-info :is(.contact-phone,.contact-email,.messenger)::after{content:"";position:absolute;pointer-events:none;left:0;right:0;bottom:-2px;height:2px;background:var(--led,#e7c98c);box-shadow:0 0 4px 1px var(--led-halo,rgba(235,202,137,.65));opacity:0;transition:opacity .18s ease}
#contact .contact-info :is(.contact-phone,.contact-email,.messenger):is(:hover,:focus-visible,:active)::after{opacity:1}
#contact .contact-info :is(.contact-email,.messenger):focus-visible{outline:2px solid rgba(237,205,152,.7);outline-offset:4px}
@media(prefers-reduced-motion:reduce){#contact .contact-info :is(.contact-phone,.contact-email,.messenger)::after{transition:none}}
@media(min-width:651px){
 #contact .contact-phone{gap:9.6px;min-height:28.8px}
 #contact .contact-phone .icon{width:25.6px;height:25.6px;flex-basis:25.6px}
 #contact .contact-info strong{font-size:19.2px}
 #contact .contact-info .contact-email{font-size:19.2px;min-height:35.2px;margin-top:16px;padding-left:35.2px}
 #contact .contact-email .icon{width:25.6px;height:25.6px}
 #contact .messengers{margin:9.6px 0 17.6px;padding-left:35.2px;gap:12.8px}
 #contact .messengers-chat-icon{width:25.6px;height:25.6px}
 #contact .messengers .messenger{width:35.2px;height:35.2px;flex-basis:35.2px}
 #contact .messengers .messenger :is(.icon,.max-icon){width:22.4px;height:22.4px}
}

/* Smaller mobile contact block; desktop sizing is independent. */
@media(max-width:650px){
 #contact .contact-phone{top:8px;gap:9.6px}
 #contact .contact-phone .icon{width:25.6px;height:25.6px;flex:0 0 25.6px}
 #contact .contact-info strong{font-size:17.6px}
 #contact .contact-info .contact-email{font-size:17.6px;min-height:35.2px;margin-top:16px;padding-left:35.2px}
 #contact .contact-email .icon{width:25.6px;height:25.6px}
 #contact .messengers{margin:9.6px 0 13.6px;padding-left:35.2px;gap:12.8px}
 #contact .messengers-chat-icon{width:25.6px;height:25.6px}
 #contact .messengers .messenger{width:35.2px;height:35.2px;flex-basis:35.2px}
 #contact .messengers .messenger :is(.icon,.max-icon){width:22.4px;height:22.4px}
}

/* Source: simulator-block.css */
/* Selected simulator block. Every selector is scoped to the new section. */
.nr-simulator {
  position: relative;
  width: 100%;
  max-width: none;
  height: clamp(469.775px, 49.5995vw, 830.3px);
  margin: 0 auto;
  padding: 0;
  container-type: inline-size;
  isolation: isolate;
  background: var(--bg, #0b0b0b);
  color: #f3efe8;
  -webkit-font-smoothing: antialiased;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
}
.nr-simulator::before,
.nr-simulator::after {
  content: "";
  position: absolute;
  z-index: 2;
  left: 1.39%;
  right: 1.39%;
  height: 1px;
  background: #403a32;
  pointer-events: none;
}
.nr-simulator::before { display: none; }
.nr-simulator::after { bottom: 5.65%; }
.nr-simulator .nr-simulator__scene {
  position: absolute;
  inset: 0 auto 0 0;
  width: 55%;
  overflow: hidden;
  /* Blend the visible crop into the page, including the lower corner glow. */
  mask-image:
    linear-gradient(to right, transparent, #000 3%, #000 97%, transparent),
    linear-gradient(to bottom, transparent, #000 3%, #000 94%, transparent);
  mask-composite: intersect;
}
.nr-simulator .nr-simulator__scene img {
  display: block;
  position: absolute;
  top: -5%;
  left: 50%;
  width: auto;
  max-width: none;
  /* Feather the bitmap edge too when it sits inside the mobile scene area. */
  height: 110%;
  transform: translateX(-50%);
  mask-image: linear-gradient(to right, transparent, #000 4%, #000 96%, transparent);
}
.nr-simulator .nr-simulator__copy {
  position: absolute;
  top: 50%;
  left: 58%;
  width: 38%;
  transform: translateY(-50%);
}
.nr-simulator .nr-simulator__eyebrow,
.nr-simulator .nr-simulator__title,
.nr-simulator .nr-simulator__description {
  transform: translateY(-12px);
}
.nr-simulator .nr-simulator__eyebrow {
  margin: 0 0 13.11px;
  color: #c8b69f;
  font: 400 14.2025px/1.5 Arial, Helvetica, sans-serif;
  letter-spacing: .23em;
}
.nr-simulator .nr-simulator__title {
  margin: 0;
  color: #f3efe8;
  font: 400 clamp(45.885px, 3.60525vw, 56.81px)/1.15 Georgia, 'Times New Roman', serif;
  letter-spacing: -.035em;
}
.nr-simulator .nr-simulator__title span { display: block; white-space: nowrap; }
.nr-simulator .nr-simulator__description {
  margin: 19.665px 0 24.035px;
  max-width: 34ch;
  color: #bcb6ae;
  font: 400 clamp(17.48px, 1.365625vw, 20.7575px)/1.7 Arial, Helvetica, sans-serif;
}
.nr-simulator .nr-simulator__play {
  position: relative;
  scale: 1 .85;
  transform-origin: center top;
  display: block;
  width: 327.75px;
  max-width: 100%;
  aspect-ratio: 5.1;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 999px;
  overflow: hidden;
  background: #f3e6d2 url('assets/simulator-block/button-create-design-face-960.webp') center / 100% 100% no-repeat;
  background-image: image-set(url('assets/optimized/button-create-design-face-480.webp') 1x,url('assets/simulator-block/button-create-design-face-960.webp') 2x);
  filter: brightness(1);
  box-shadow: 0 3px 0 #9e805d;
  cursor: pointer;
  touch-action: manipulation;
  transition: box-shadow .25s ease, filter .25s ease, transform .25s ease;
}
.nr-simulator .nr-simulator__play-label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
.nr-simulator .nr-simulator__play:focus-visible {
  outline: 2px solid #f3efe8;
  outline-offset: 6px;
  box-shadow: 0 3px 0 #9e805d, 0 0 20px #ddba8066, 0 0 48px #d6b17c38;
}
@media (hover: hover) and (pointer: fine) {
  .nr-simulator .nr-simulator__play:hover {
    transform: translateY(-2px);
    filter: brightness(1.06);
    box-shadow: 0 5px 0 #9e805d, 0 0 20px #ddba8066, 0 0 48px #d6b17c38;
  }
}
.nr-simulator .nr-simulator__play:active {
  transform: translateY(3px);
  filter: brightness(.98);
  box-shadow: 0 0 0 #9e805d;
}
@media (min-width: 901px) {
  /* Follow the site's content width, including when browser zoom widens the viewport. */
  .nr-simulator {
    width: calc(100% - 120px);
    max-width: 1320px;
    height: auto;
    aspect-ratio: 100 / 49.5995;
    background: var(--bg);
  }
  .nr-simulator::after { left: 0; right: 0; bottom: 0; }
  .nr-simulator .nr-simulator__title { font-size: clamp(32px, 3.60525cqw, 56.81px); }
  .nr-simulator .nr-simulator__description { font-size: clamp(17.48px, 1.365625cqw, 20.7575px); }
  .nr-simulator .nr-simulator__eyebrow,
  .nr-simulator .nr-simulator__title,
  .nr-simulator .nr-simulator__description {
    transform: translateY(-24px);
  }
}
@media (min-width: 901px) and (max-width: 1000px) {
  .nr-simulator { width: calc(100% - 48px); }
}
@media (max-width: 900px) {
  .nr-simulator {
    --nr-scene-height: clamp(240.35px, 74.29vw, 415.15px);
    height: auto;
    padding-bottom: 43.7px;
  }
  .nr-simulator::before { top: calc(var(--nr-scene-height) * .0534); }
  .nr-simulator::after { bottom: 15.295px; }
  .nr-simulator .nr-simulator__scene {
    position: relative;
    width: 100%;
    height: var(--nr-scene-height);
  }
  .nr-simulator .nr-simulator__copy {
    position: relative;
    top: auto;
    left: auto;
    width: 88%;
    max-width: 524.4px;
    margin: 4.37px auto 0;
    transform: none;
  }
  .nr-simulator .nr-simulator__description { font-size: 19.665px; margin: 17.48px 0 19.665px; }
  /* Desktop approved 2026-10-19: reorder only the mobile layout. */
  .nr-simulator {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    padding-top: 24px;
  }
  .nr-simulator .nr-simulator__copy { display: contents; }
  .nr-simulator .nr-simulator__eyebrow,
  .nr-simulator .nr-simulator__title,
  .nr-simulator .nr-simulator__description,
  .nr-simulator .nr-simulator__play {
    grid-column: 1;
    justify-self: start;
    margin-left: max(6%, calc((100% - 524.4px) / 2));
    margin-right: 0;
  }
  .nr-simulator .nr-simulator__eyebrow,
  .nr-simulator .nr-simulator__title {
    width: 88%;
    max-width: 524.4px;
  }
  .nr-simulator .nr-simulator__eyebrow { grid-row: 1; }
  .nr-simulator .nr-simulator__title { grid-row: 2; }
  .nr-simulator .nr-simulator__scene { grid-column: 1; grid-row: 3; }
  .nr-simulator .nr-simulator__description { grid-row: 4; width: 88%; }
  .nr-simulator .nr-simulator__play { grid-row: 5; max-width: 88%; }
}
@media (max-width: 650px) {
  .nr-simulator .nr-simulator__eyebrow { font-size: 11.47125px; }
  .nr-simulator .nr-simulator__title { font-size: 37.145px; }
  .nr-simulator .nr-simulator__description { font-size: 16.3875px; }
  .nr-simulator .nr-simulator__play { width: 305.9px; }
}
@media (prefers-reduced-motion: reduce) {
  .nr-simulator .nr-simulator__play { transition: none; }
  .nr-simulator .nr-simulator__play:hover,
  .nr-simulator .nr-simulator__play:active { transform: none; }
}

/* Source: simulator-launcher.css */
html.nr-studio-open,
html.nr-studio-open body { overflow: hidden; }

#nr-studio {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  width: 100vw;
  height: 100dvh;
  max-width: none;
  max-height: none;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: #11100f;
  color: #f3efe8;
  overflow: hidden;
}
#nr-studio[open] { display: grid; grid-template-rows: minmax(0, 1fr); }
#nr-studio::backdrop { background: #0b0b0b; }
#nr-studio .nr-studio__title { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
#nr-studio .nr-studio__viewport { position: relative; min-width: 0; min-height: 0; padding-bottom: env(safe-area-inset-bottom); }
#nr-studio-frame { display: block; width: 100%; height: 100%; border: 0; background: #11100f; }
#nr-studio .nr-studio__status {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 16px;
  padding: 24px;
  background: #11100f;
  text-align: center;
}
#nr-studio .nr-studio__status[hidden] { display: none; }
#nr-studio .nr-studio__status p { margin: 0; color: #b8b0a4; }
#nr-studio .nr-studio__button { min-height: 40px; padding: 9px 15px; border: 1px solid #665b4b; border-radius: 3px; background: #22201d; color: #f3efe8; font: 14px/1.4 Arial, sans-serif; cursor: pointer; }
#nr-studio .nr-studio__button:hover { border-color: #d8c09b; background: #373026; }
#nr-studio .nr-studio__spinner { width: 26px; height: 26px; border: 3px solid #665b4b; border-top-color: #edcc92; border-radius: 50%; animation: nr-studio-spin 1s linear infinite; }
@keyframes nr-studio-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  #nr-studio .nr-studio__spinner { animation: none; }
}

/* Source: image-loading.css */
/* A tiny photo preview fills the reserved image area until decoding finishes. */
.card .photo img{transition:opacity 180ms ease}
.card .photo img.image-pending{opacity:0}
@media(prefers-reduced-motion:reduce){.card .photo img{transition:none}}

/* Source: catalog-review.css */
/* Catalog layout and the requested translucent description panel. */
#catalog .card.has-glass-photo{
 background-image:var(--catalog-image);
 background-size:cover;
 background-position:center;
}
#catalog .card.has-glass-photo>.photo{background:transparent!important}
#catalog .card.has-glass-photo>.photo img{opacity:0}
#catalog .card::after{
 content:"";
 position:absolute;
 top:var(--catalog-copy-top,100%);
 right:0;
 bottom:0;
 left:0;
 z-index:0;
 pointer-events:none;
 border-radius:0 0 3px 3px;
 background:linear-gradient(to top,rgba(8,8,7,.80) 0%,rgba(28,25,20,.42) 50%,rgba(228,216,193,.10) 100%);
 backdrop-filter:blur(7px) saturate(110%);
 -webkit-backdrop-filter:blur(7px) saturate(110%);
}
#catalog .card>h3,#catalog .card>p{position:relative;z-index:1;text-shadow:0 1px 3px #000c,0 2px 10px #0008}
#catalog .card>.photo{z-index:1}
@media (min-width:651px){
 #catalog .cards.masonry-ready{display:block;position:relative;overflow:visible}
 #catalog .cards.masonry-ready>.card,#catalog .cards.masonry-ready>.catalog-inquiry{position:absolute;margin:0}
 #catalog .cards.masonry-ready>.card .photo{height:auto;aspect-ratio:var(--catalog-photo-ratio,3/4)}
 #catalog .cards.masonry-ready>.card:nth-child(6n+1){--catalog-photo-ratio:3/4}
 #catalog .cards.masonry-ready>.card:nth-child(6n+2){--catalog-photo-ratio:2/3}
 #catalog .cards.masonry-ready>.card:nth-child(6n+3){--catalog-photo-ratio:4/5}
 #catalog .cards.masonry-ready>.card:nth-child(6n+4){--catalog-photo-ratio:2/3}
 #catalog .cards.masonry-ready>.card:nth-child(6n+5){--catalog-photo-ratio:4/5}
 #catalog .cards.masonry-ready>.card:nth-child(6n){--catalog-photo-ratio:3/4}
 #catalog .cards.masonry-ready>.card .photo img{width:100%;height:100%;object-fit:cover}
}

/* Fill the expanded gallery panel with the selected photo. */
#project-dialog>img{object-fit:cover;background:#151310}
#project-dialog>img[hidden],#project-loading[hidden]{display:none}
#project-loading{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);font-size:13px;pointer-events:none}
#project-dialog[data-category="cabinet"]>img[data-subject-framed]{width:var(--cabinet-photo-width);height:var(--cabinet-photo-height);left:var(--cabinet-photo-left);top:var(--cabinet-photo-top);right:auto;bottom:auto;max-width:none;max-height:none}
@media (max-width:650px){
 #project-dialog{inset:0;margin:auto}
 #catalog .cards>.card .photo{height:auto;aspect-ratio:var(--catalog-photo-ratio,3/4)}
 #catalog .cards>.card:nth-child(6n+1){--catalog-photo-ratio:3/4}
 #catalog .cards>.card:nth-child(6n+2){--catalog-photo-ratio:2/3}
 #catalog .cards>.card:nth-child(6n+3){--catalog-photo-ratio:4/5}
 #catalog .cards>.card:nth-child(6n+4){--catalog-photo-ratio:2/3}
 #catalog .cards>.card:nth-child(6n+5){--catalog-photo-ratio:4/5}
 #catalog .cards>.card:nth-child(6n){--catalog-photo-ratio:3/4}
}

/* Only the description needs blur; avoid a permanent GPU layer for every card. */
#catalog .card{backdrop-filter:none;-webkit-backdrop-filter:none;will-change:auto}
