/*
 * Gallery Architecture design reminder: graphite gallery fields, warm editorial pauses,
 * Manrope-led hierarchy, titanium rules and muted-gold action states. Preserve the
 * asymmetric museum rhythm; every visual detail must reinforce premium wallcovering craft.
 */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Manrope:wght@500;600;700;800&display=swap');

:root { --ink:#151617; --ink-2:#202122; --paper:#f7f5f0; --concrete:#e5e1da; --white:#fff; --titanium:#9fa5a5; --gold:#b69a6a; --gold-light:#c9ae7d; --line:rgba(159,165,165,.38); --shadow:0 24px 70px rgba(0,0,0,.22); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Inter,Arial,sans-serif; font-size:16px; line-height:1.68; }
body.quote-open, body.menu-open { overflow:hidden; }
a { color:inherit; text-decoration:none; }
img { display:block; width:100%; height:auto; }
button, input, textarea { font:inherit; }
.skip-link { position:absolute; left:1rem; top:-4rem; background:var(--gold); color:var(--ink); padding:.55rem 1rem; z-index:100; }.skip-link:focus { top:1rem; }
.container { width:min(1216px, calc(100% - 48px)); margin:auto; }
.eyebrow { margin:0 0 14px; color:var(--gold); font:700 11px/1 Manrope,sans-serif; letter-spacing:.17em; text-transform:uppercase; }
h1,h2,h3 { margin:0; color:inherit; font-family:Manrope,Arial,sans-serif; font-weight:800; letter-spacing:-.045em; line-height:1.04; }
h1 { max-width:13ch; font-size:clamp(3rem,7vw,7.4rem); }
h2 { max-width:19ch; font-size:clamp(2rem,4.4vw,4.5rem); }
h3 { font-size:clamp(1.25rem,2.2vw,1.85rem); }
p { margin:0 0 1.15rem; }
.body-large { max-width:680px; font-size:1.12rem; }
.text-link { display:inline-flex; align-items:center; gap:.55rem; margin-top:.5rem; color:var(--gold); font:700 .76rem/1 Manrope,sans-serif; letter-spacing:.12em; text-transform:uppercase; }.text-link::after { content:'↗'; font-size:1.1rem; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:58px; padding:0 26px; border:1px solid var(--gold); border-radius:6px; background:var(--gold); color:var(--ink); font:700 13px/1 Manrope,sans-serif; letter-spacing:.07em; text-transform:uppercase; transition:transform .22s cubic-bezier(.23,1,.32,1),background .22s ease,box-shadow .22s ease; }
.button:hover { background:var(--gold-light); box-shadow:0 0 24px rgba(182,154,106,.3); transform:translateY(-2px); }.button:active { transform:scale(.97); }
.button--line { border-color:var(--titanium); background:transparent; color:var(--white); }.button--line:hover { border-color:var(--gold); background:var(--gold); color:var(--ink); }
.button--paper { background:var(--paper); border-color:var(--paper); color:var(--ink); }.button--paper:hover { background:var(--gold-light); border-color:var(--gold-light); }

.site-header { position:relative; z-index:20; border-bottom:1px solid rgba(255,255,255,.14); background:var(--ink); color:var(--white); }
.header-bar { min-height:86px; display:flex; align-items:center; gap:25px; }
.brand { display:flex; align-items:center; gap:11px; flex:0 0 auto; }
.brand-mark { width:35px; height:35px; position:relative; border:2px solid var(--titanium); }.brand-mark::before,.brand-mark::after { content:''; position:absolute; display:block; }.brand-mark::before { inset:6px -7px -6px 6px; border:2px solid var(--gold); }.brand-mark::after { inset:12px -1px 0 12px; background:var(--ink); border:2px solid var(--titanium); }
.brand-word { font:800 15px/1.05 Manrope,sans-serif; letter-spacing:.025em; text-transform:uppercase; }.brand-word small { display:block; margin-top:3px; color:var(--titanium); font:600 8px/1 Manrope,sans-serif; letter-spacing:.14em; }
.header-contact { display:flex; gap:18px; margin-left:auto; color:var(--titanium); font-size:12px; }.header-contact a:hover { color:var(--gold); }
.menu-toggle { position:absolute; opacity:0; pointer-events:none; }.menu-button { display:none; }
.main-nav { margin-left:32px; }.nav-list { display:flex; align-items:center; gap:22px; list-style:none; margin:0; padding:0; }.nav-list > li > a,.nav-list summary { color:var(--white); cursor:pointer; font:700 11px/1 Manrope,sans-serif; letter-spacing:.12em; text-transform:uppercase; list-style:none; }.nav-list summary::-webkit-details-marker { display:none; }.nav-list summary::after { content:'+'; margin-left:6px; color:var(--gold); }.nav-list a:hover,.nav-list summary:hover { color:var(--gold); }
.nav-list details { position:relative; }.dropdown { position:absolute; top:26px; left:-20px; width:265px; padding:14px; border:1px solid var(--line); background:var(--ink-2); box-shadow:var(--shadow); }.dropdown a { display:block; padding:9px 8px; color:var(--white); font-size:13px; }.dropdown a:hover { background:rgba(182,154,106,.13); color:var(--gold); }

.hero { position:relative; min-height:770px; overflow:hidden; background:var(--ink); color:var(--white); }.hero-media,.hero-shade { position:absolute; inset:0; }.hero-media img { height:100%; object-fit:cover; object-position:center; }.hero-shade { background:linear-gradient(90deg,rgba(10,10,10,.85) 0%,rgba(10,10,10,.58) 40%,rgba(10,10,10,.15) 100%); }.hero .container { position:relative; z-index:1; min-height:770px; display:grid; grid-template-columns:minmax(0,1fr) minmax(340px,430px); align-items:end; gap:48px; padding-top:120px; padding-bottom:55px; }.hero-copy { align-self:center; }.hero .eyebrow { color:var(--gold-light); }.hero-copy p { max-width:580px; margin:26px 0 30px; color:#e8e7e2; font-size:1.08rem; }.hero-meta { display:flex; gap:18px; align-items:center; color:#c6c9c9; font:700 10px/1.4 Manrope,sans-serif; letter-spacing:.12em; text-transform:uppercase; }.hero-meta::before { content:''; width:45px; height:1px; background:var(--gold); }
.feedback-form-container { position:relative; padding:29px; background:rgba(21,22,23,.96); border:1px solid rgba(159,165,165,.55); box-shadow:var(--shadow); }.feedback-form-container h3 { color:var(--white); margin-bottom:21px; font-size:1.55rem; }.contact-form { display:grid; gap:12px; }.form-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }.form-group input,.form-group textarea { width:100%; border:1px solid rgba(255,255,255,.24); border-radius:0; outline:none; padding:14px 13px; background:rgba(255,255,255,.045); color:var(--white); transition:border-color .2s ease,background .2s ease; }.form-group textarea { min-height:105px; resize:vertical; }.form-group input::placeholder,.form-group textarea::placeholder { color:#b4b7b7; }.form-group input:focus,.form-group textarea:focus { border-color:var(--gold); background:rgba(255,255,255,.08); }.form-submit .submit-btn { width:100%; min-height:54px; border:1px solid var(--gold); border-radius:6px; background:var(--gold); color:var(--ink); cursor:pointer; font:700 12px/1 Manrope,sans-serif; letter-spacing:.09em; text-transform:uppercase; transition:transform .2s ease,background .2s ease; }.form-submit .submit-btn:hover { background:var(--gold-light); }.form-submit .submit-btn:active { transform:scale(.98); }.feedback-form-container #form-success { color:var(--white); }.feedback-form-container #form-success p { margin:0; color:#e5e1da; }

.breadcrumbs { padding:17px 0; border-bottom:1px solid var(--line); background:var(--paper); }.breadcrumb-list { display:flex; flex-wrap:wrap; gap:8px; margin:0; padding:0; color:#585a59; list-style:none; font:700 10px/1.4 Manrope,sans-serif; letter-spacing:.1em; text-transform:uppercase; }.breadcrumb-list li+li::before { content:'/'; margin-right:8px; color:var(--gold); }.breadcrumb-list a:hover { color:var(--gold); }
.page-intro { position:relative; padding:114px 0 96px; overflow:hidden; background:var(--ink); color:var(--white); }.page-intro::after { content:''; position:absolute; right:8%; bottom:-80px; width:260px; height:260px; border:1px solid rgba(182,154,106,.38); transform:rotate(45deg); }.page-intro .container { position:relative; z-index:1; }.page-intro p { max-width:650px; margin-top:25px; color:#d0d1ce; font-size:1.1rem; }

.split-section { display:grid; grid-template-columns:1fr 1fr; min-height:620px; background:var(--paper); }.split-section--reverse { direction:rtl; }.split-section--reverse > * { direction:ltr; }.split-media { min-height:500px; overflow:hidden; }.split-media img { height:100%; object-fit:cover; transition:transform .7s cubic-bezier(.23,1,.32,1); }.split-media:hover img { transform:scale(1.04); }.split-content { display:flex; align-items:center; padding:80px max(6vw,46px); }.split-content > div { max-width:560px; }.split-content p { margin-top:23px; }.dark-section { background:var(--ink); color:var(--white); }.dark-section h2 { color:var(--white); }.dark-section p { color:#d5d7d4; }
.section { padding:104px 0; }.section--concrete { background:var(--concrete); }.section--dark { background:var(--ink); color:var(--white); }.section-head { display:grid; grid-template-columns:minmax(0,1fr) minmax(240px,390px); gap:55px; align-items:end; margin-bottom:55px; }.section-head p { margin:0; }
.service-rows { border-top:1px solid var(--line); }.service-row { display:grid; grid-template-columns:90px 1fr auto; gap:30px; align-items:center; padding:27px 0; border-bottom:1px solid var(--line); transition:padding .25s ease,background .25s ease; }.service-row:hover { padding-left:14px; background:rgba(182,154,106,.08); }.service-number { color:var(--gold); font:800 clamp(2rem,4vw,4.2rem)/1 Manrope,sans-serif; letter-spacing:-.06em; }.service-row p { max-width:600px; margin:9px 0 0; color:#636564; }.section--dark .service-row p { color:#d2d4d2; }
.project-detail { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr); gap:42px; align-items:center; padding:78px 0; }.project-detail figure { margin:0; min-height:380px; overflow:hidden; }.project-detail figure img { height:100%; min-height:380px; object-fit:cover; transition:transform .65s cubic-bezier(.23,1,.32,1); }.project-detail figure:hover img { transform:scale(1.035); }.project-detail__copy { max-width:580px; }.project-detail__copy p { margin-top:20px; }.geo-clusters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin:30px 0 44px; }.geo-cluster { padding:24px; border-top:2px solid var(--gold); background:#efede7; }.geo-cluster h3 { font-size:1.35rem; }.geo-cluster p { margin:10px 0; font-size:.93rem; }.geo-cluster ul { margin:0; padding-left:17px; }.geo-cluster li { margin:5px 0; font-size:.88rem; }
.masonry { columns:3 250px; column-gap:16px; }.masonry figure { break-inside:avoid; position:relative; margin:0 0 16px; overflow:hidden; background:#000; }.masonry figure img { transition:transform .6s cubic-bezier(.23,1,.32,1),opacity .4s ease; }.masonry figure:hover img { opacity:.82; transform:scale(1.045); }.masonry figcaption { position:absolute; right:0; bottom:0; left:0; padding:30px 20px 16px; background:linear-gradient(transparent,rgba(0,0,0,.8)); color:var(--white); font:700 10px/1 Manrope,sans-serif; letter-spacing:.12em; text-transform:uppercase; }
.process-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); }.process-step { min-height:260px; padding:28px 24px 22px; border-right:1px solid var(--line); }.process-step:last-child { border-right:0; }.process-step span { color:var(--gold); font:800 3rem/1 Manrope,sans-serif; }.process-step h3 { margin:42px 0 11px; font-size:1.35rem; }.process-step p { color:#d1d3d0; font-size:.93rem; }
.quote-band { display:grid; grid-template-columns:1.25fr .75fr; gap:35px; align-items:center; padding:55px; background:var(--gold); color:var(--ink); }.quote-band h2 { max-width:15ch; }.quote-band p { max-width:490px; margin:17px 0 0; }.quote-band .button { justify-self:end; border-color:var(--ink); background:var(--ink); color:var(--white); }.quote-band .button:hover { background:#303233; }
.content-grid { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(270px,.8fr); gap:66px; align-items:start; }.content-grid > aside { padding:28px; border-left:2px solid var(--gold); background:#edebe5; }.content-grid > aside h3 { margin-bottom:15px; }.content-grid > aside ul { padding-left:18px; }.content-grid > aside li { margin-bottom:8px; }
.prose h2 { margin:64px 0 22px; }.prose h2:first-child { margin-top:0; }.prose h3 { margin:35px 0 13px; font-size:1.55rem; }.prose ul,.prose ol { margin:0 0 22px; padding-left:22px; }.prose li { margin:8px 0; }.prose a { color:#806735; text-decoration:underline; text-underline-offset:3px; }.prose .inline-cta { display:flex; align-items:center; gap:16px; margin:30px 0 45px; padding-top:18px; border-top:1px solid #cbc7be; font-size:.91rem; }.prose .inline-cta .button { min-height:46px; padding:0 17px; flex:0 0 auto; }.faq-list { border-top:1px solid var(--line); }.faq-list details { border-bottom:1px solid var(--line); padding:19px 0; }.faq-list summary { cursor:pointer; padding-right:35px; position:relative; font:800 1.04rem/1.4 Manrope,sans-serif; list-style:none; }.faq-list summary::-webkit-details-marker { display:none; }.faq-list summary::after { content:'+'; position:absolute; right:3px; color:var(--gold); font-size:1.5rem; font-weight:500; }.faq-list details[open] summary::after { content:'–'; }.faq-list p { max-width:780px; margin:14px 0 0; }
.area-list { columns:2 250px; column-gap:38px; padding-left:19px; }.area-list li { break-inside:avoid; margin-bottom:9px; }.link-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; margin-top:24px; background:var(--line); }.link-grid a { padding:19px; background:var(--paper); font:700 .85rem/1.4 Manrope,sans-serif; }.link-grid a:hover { background:var(--gold); }
.contact-split { display:grid; grid-template-columns:1fr 1fr; background:var(--ink); color:var(--white); }.contact-info { padding:80px max(6vw,46px); }.contact-info p { color:#d1d3d0; }.contact-info dl { margin:32px 0 0; }.contact-info dt { margin-top:20px; color:var(--gold); font:700 10px/1 Manrope,sans-serif; letter-spacing:.14em; text-transform:uppercase; }.contact-info dd { margin:4px 0 0; font-size:1.15rem; }.contact-info a:hover { color:var(--gold-light); }.contact-split .feedback-form-container { box-shadow:none; min-height:100%; padding:80px max(6vw,46px); border:0; border-left:1px solid var(--line); background:var(--ink-2); }.map-section { background:var(--concrete); padding:18px; }.map-frame { width:100%; height:460px; border:0; filter:grayscale(1) contrast(1.05); }
.sticky-quote { position:fixed; z-index:30; right:24px; bottom:22px; min-height:54px; padding:0 19px; border:1px solid rgba(255,255,255,.32); border-radius:0; background:var(--gold); color:var(--ink); box-shadow:0 11px 28px rgba(0,0,0,.25); cursor:pointer; font:800 11px/1 Manrope,sans-serif; letter-spacing:.12em; text-transform:uppercase; }.sticky-quote:hover { background:var(--gold-light); }.quote-shell { display:none; }.hero .quote-shell,.contact-split .quote-shell { display:block; }.modal-shade { display:none; }.quote-open .modal-shade { display:block; position:fixed; inset:0; z-index:39; background:rgba(0,0,0,.76); }.quote-open .quote-shell { display:block; position:fixed; z-index:40; top:50%; left:50%; width:min(530px,calc(100% - 34px)); max-height:calc(100vh - 42px); overflow:auto; transform:translate(-50%,-50%); }.quote-open .quote-shell .feedback-form-container { position:static; max-height:none; transform:none; }.modal-close { display:none; }.quote-open .modal-close { display:grid; position:absolute; top:9px; right:9px; z-index:2; width:34px; height:34px; place-items:center; border:1px solid var(--line); background:var(--ink); color:var(--white); cursor:pointer; font-size:20px; }.quote-open .modal-close:hover { border-color:var(--gold); color:var(--gold); }
.site-footer { background:#0e0f10; color:var(--white); }.footer-main { display:grid; grid-template-columns:1.1fr 1fr 1fr; gap:50px; padding:70px 0 46px; }.site-footer h3 { margin-bottom:15px; font-size:1.08rem; }.site-footer p,.site-footer li { color:#bec1be; font-size:.92rem; }.site-footer ul { list-style:none; margin:0; padding:0; }.site-footer li { margin-bottom:8px; }.site-footer a:hover { color:var(--gold); }.footer-bottom { display:flex; justify-content:space-between; gap:20px; padding:20px 0; border-top:1px solid rgba(255,255,255,.13); color:#878a88; font-size:11px; }
@media (max-width:980px) { .header-contact { display:none; }.main-nav { margin-left:auto; }.hero .container { grid-template-columns:1fr; align-items:center; padding-top:90px; }.hero-copy { align-self:end; }.hero .feedback-form-container { max-width:540px; justify-self:end; }.split-section,.contact-split { grid-template-columns:1fr; }.split-section--reverse { direction:ltr; }.split-media { min-height:430px; }.process-grid { grid-template-columns:repeat(2,1fr); }.process-step:nth-child(2) { border-right:0; }.process-step:nth-child(-n+2) { border-bottom:1px solid var(--line); }.section-head,.content-grid,.project-detail { grid-template-columns:1fr; }.quote-band { grid-template-columns:1fr; }.quote-band .button { justify-self:start; }.footer-main { grid-template-columns:1fr 1fr; } }
@media (max-width:690px) { body:has(.menu-toggle:checked) { overflow:hidden; }.container { width:min(100% - 34px,1216px); }.site-header { min-height:69px; }.header-bar { min-height:69px; }.brand-word { font-size:12px; }.menu-button { display:grid; width:42px; height:42px; place-items:center; border:1px solid rgba(255,255,255,.25); color:var(--white); cursor:pointer; font:700 10px/1 Manrope,sans-serif; letter-spacing:.08em; text-transform:uppercase; }.menu-button::before { content:'Menu'; }.main-nav { position:fixed; z-index:50; top:0; right:0; width:50vw; min-width:0; height:100dvh; padding:72px 14px 18px; background:var(--ink-2); border-left:1px solid var(--line); box-shadow:var(--shadow); transform:translateX(105%); transition:transform .26s cubic-bezier(.23,1,.32,1); overflow-y:auto; overscroll-behavior:contain; scrollbar-gutter:stable; -webkit-overflow-scrolling:touch; }.menu-toggle:checked ~ .main-nav { transform:translateX(0); }.menu-toggle:checked ~ .menu-button { position:fixed; z-index:51; top:15px; right:15px; }.menu-toggle:checked ~ .menu-button::before { content:'×'; color:var(--gold); font-size:27px; font-weight:400; }.nav-list { display:block; }.nav-list > li { padding:10px 0; border-bottom:1px solid rgba(255,255,255,.11); }.nav-list > li > a,.nav-list summary { display:flex; align-items:center; min-height:35px; line-height:1.25; overflow-wrap:anywhere; }.nav-list details { position:static; }.nav-list details[open] { padding-bottom:6px; }.dropdown { position:static; width:auto; max-height:min(42dvh,340px); margin:8px 0 2px; padding:4px 5px; overflow-y:auto; overscroll-behavior:contain; border:1px solid rgba(159,165,165,.24); box-shadow:none; background:rgba(255,255,255,.045); -webkit-overflow-scrolling:touch; }.dropdown::-webkit-scrollbar { width:5px; }.dropdown::-webkit-scrollbar-thumb { background:var(--gold); }.dropdown a { padding:9px 6px 9px 10px; font-size:11px; line-height:1.3; overflow-wrap:anywhere; }.hero,.hero .container { min-height:auto; }.hero .container { gap:30px; padding-top:90px; padding-bottom:85px; }.hero-copy p { font-size:1rem; }.form-row { grid-template-columns:1fr; }.section,.page-intro { padding:70px 0; }.section-head { gap:18px; margin-bottom:36px; }.service-row { grid-template-columns:55px 1fr; gap:15px; }.service-row .text-link { grid-column:2; }.masonry { columns:1; }.process-grid { grid-template-columns:1fr; }.process-step,.process-step:nth-child(2) { min-height:0; border-right:0; border-bottom:1px solid var(--line); }.split-content,.contact-info,.contact-split .feedback-form-container { padding:57px 25px; }.quote-band { padding:36px 25px; }.link-grid,.geo-clusters { grid-template-columns:1fr; }.area-list { columns:1; }.project-detail { gap:25px; padding:55px 0; }.project-detail figure,.project-detail figure img { min-height:280px; }.footer-main { grid-template-columns:1fr; gap:25px; padding:55px 0 36px; }.footer-bottom { display:block; }.footer-bottom p { margin-bottom:6px; }.sticky-quote { right:50%; bottom:14px; transform:translateX(50%); width:calc(100% - 34px); }.map-frame { height:350px; } }
@media (prefers-reduced-motion:no-preference) { .hero-copy,.hero .feedback-form-container,.page-intro .container { animation:rise .7s cubic-bezier(.23,1,.32,1) both; }.hero .feedback-form-container { animation-delay:.11s; } @keyframes rise { from { opacity:0; transform:translateY(24px); } to { opacity:1; transform:translateY(0); } } }
