:root{
  --ink:#2d231b;--ink2:#4a392d;--cream:#f4eadb;--paper:#fbf7ef;--white:#fffdf8;--wheat:#d9b27b;--amber:#b96c2e;--sage:#7b856d;--line:#ddcfbd;--muted:#756a5f;--deep:#36271d;--deep2:#241a14;--shadow:0 24px 70px rgba(67,45,29,.14);--container:1260px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;line-height:1.65;-webkit-font-smoothing:antialiased}img{display:block;max-width:100%}a{text-decoration:none;color:inherit}button,input,select,textarea{font:inherit}.container{width:min(var(--container),calc(100% - 48px));margin:auto}.reveal{opacity:0;transform:translateY(22px);transition:.7s ease}.reveal.visible{opacity:1;transform:none}
.topbar{background:#2b211a;color:#e8ddcf;font-size:12px}.topbar-inner{height:38px;display:flex;align-items:center;justify-content:space-between;gap:20px}.topbar-links{display:flex;gap:22px}.topbar a:hover{color:#fff}
.site-header{position:sticky;top:0;z-index:70;background:rgba(251,247,239,.94);backdrop-filter:blur(14px);border-bottom:1px solid rgba(45,35,27,.08)}.nav-wrap{min-height:78px;display:flex;align-items:center;gap:26px}.brand{display:flex;align-items:center;gap:12px;font:700 17px/1 'DM Sans',sans-serif;letter-spacing:.08em;white-space:nowrap}.brand b{color:var(--amber)}.brand-mark{width:34px;height:34px;border:1.5px solid currentColor;border-radius:50%;display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:7px}.brand-mark span{border:1.5px solid currentColor;border-radius:10px}.main-nav{margin-left:auto;display:flex;gap:21px;font-size:14px;font-weight:600}.main-nav a{position:relative}.main-nav a:after{content:'';position:absolute;left:0;right:100%;height:2px;bottom:-6px;background:var(--amber);transition:.25s}.main-nav a:hover:after{right:0}.menu-toggle{display:none;border:0;background:none;padding:8px}.menu-toggle span{display:block;width:24px;height:2px;background:var(--ink);margin:5px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 22px;border:1px solid transparent;border-radius:4px;font-weight:700;transition:.25s;cursor:pointer}.btn:hover{transform:translateY(-2px)}.btn-dark{background:var(--deep);color:#fff}.btn-accent{background:var(--amber);color:#fff}.btn-accent:hover{background:#a85d22}.btn-light{background:#fff7ed;color:var(--deep)}.nav-cta{min-height:42px;font-size:13px}
.eyebrow{font-size:11px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--amber);margin-bottom:16px}.eyebrow.light{color:#f0c99f}
.hero{position:relative;padding:42px 0 72px;background:#d9c7ae;overflow:hidden}.hero:before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.38),transparent 45%);pointer-events:none}.hero-grid{position:relative;min-height:670px;display:block}.hero-media{position:absolute;inset:0 0 0 32%;overflow:hidden;box-shadow:var(--shadow)}.hero-main{width:100%;height:100%;object-fit:cover;filter:saturate(.9) contrast(1.02)}.hero-media:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(42,28,18,.28),transparent 45%)}.hero-copy{position:relative;z-index:3;width:min(650px,56%);margin-top:74px;background:rgba(251,247,239,.96);padding:48px 50px;box-shadow:0 25px 70px rgba(48,31,19,.18)}.hero h1,.section h2{font-family:'Libre Baskerville',serif;letter-spacing:-.04em}.hero h1{font-size:clamp(44px,5.3vw,74px);line-height:.98;margin:0 0 22px}.lead{font-size:18px;color:#655a50;margin:0 0 28px;max-width:580px}.hero-actions{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-bottom:30px}.text-link{font-weight:700;display:inline-flex;gap:8px;align-items:center}.text-link span{transition:.2s}.text-link:hover span{transform:translate(4px,-3px)}.hero-points{display:grid;grid-template-columns:1fr;gap:9px;font-size:14px;color:#594f47}.hero-points span{display:flex;align-items:center;gap:10px}.hero-points i{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#efe0cd;color:var(--amber);font-style:normal;font-size:12px}.hero-float{position:absolute;z-index:4;background:#2d231b;color:#fff;padding:15px 17px;min-width:180px;box-shadow:var(--shadow)}.hero-float strong,.hero-float span{display:block}.hero-float strong{font:700 15px 'Libre Baskerville',serif}.hero-float span{font-size:12px;color:#d7c8bb}.hero-float-one{right:28px;bottom:30px}.hero-float-two{right:28px;top:30px}.stats-strip{position:relative;z-index:5;margin-top:-22px;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.stats-strip>div{background:#fffdf8;padding:22px 24px;border-top:4px solid var(--wheat);box-shadow:0 14px 35px rgba(54,39,29,.10)}.stats-strip strong,.stats-strip span{display:block}.stats-strip strong{font:700 20px/1.1 'Libre Baskerville',serif}.stats-strip span{margin-top:6px;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.section{padding:110px 0}.section h2{font-size:clamp(38px,4.2vw,60px);line-height:1.04;margin:0}.split-heading,.section-head{display:grid;grid-template-columns:1.08fr .72fr;gap:80px;align-items:end;margin-bottom:48px}.split-heading>p,.section-head>p{margin:0;color:var(--muted);font-size:17px}.intro{background:#fffdf8}.service-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.service-card{position:relative;background:#f8efe2;padding:30px 30px 26px;min-height:320px;border:1px solid #eadbc7}.service-card:nth-child(even){background:#f3e6d5}.service-num{position:absolute;right:22px;top:18px;font:700 56px/1 'Libre Baskerville',serif;color:rgba(185,108,46,.14)}.service-card h3{font:700 28px/1.16 'Libre Baskerville',serif;margin:30px 0 12px;max-width:420px}.service-card p{color:var(--muted);font-size:14px}.service-card ul{padding-left:18px;font-size:13px;color:#5d534a;margin-top:20px}.service-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);transition:.25s}
.door-types{background:#34261d;color:#fff}.door-types .section-head>p{color:#d6c8bb}.door-types .eyebrow{color:#e7b57e}.door-card-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.door-card{display:grid;grid-template-columns:1.1fr .9fr;min-height:360px;background:#433126;border:1px solid rgba(255,255,255,.08)}.door-card:nth-child(3n){grid-template-columns:.9fr 1.1fr}.door-card:nth-child(3n) img{order:2}.door-card img{width:100%;height:100%;min-height:360px;object-fit:cover}.door-card div{padding:32px;display:flex;flex-direction:column;justify-content:center}.door-card span{font-size:10px;font-weight:800;letter-spacing:.16em;color:#e7b57e}.door-card h3{font:700 28px/1.15 'Libre Baskerville',serif;margin:10px 0}.door-card p{margin:0;color:#d8ccc1;font-size:14px}
.process{background:#e7d5bd;color:var(--ink)}.process-layout{display:grid;grid-template-columns:.75fr 1.25fr;gap:90px}.process-sticky{position:sticky;top:116px;align-self:start}.process-sticky p{color:#665b51;max-width:430px}.process-list{border-top:1px solid #cbb79e}.process-step{display:grid;grid-template-columns:90px 1fr;gap:18px;padding:30px 0;border-bottom:1px solid #cbb79e}.process-step>span{font:700 32px 'Libre Baskerville',serif;color:var(--amber)}.process-step h3{font:700 25px 'Libre Baskerville',serif;margin:0 0 7px}.process-step p{margin:0;color:#6c6157}.process .btn-light{background:#fff9f1}
.manufacturing{background:#fbf7ef}.manufacturing-grid{display:grid;grid-template-columns:.94fr 1.06fr;gap:78px;align-items:center}.manufacturing-photo{position:relative}.manufacturing-photo img{width:100%;height:640px;object-fit:cover;box-shadow:var(--shadow)}.photo-label{position:absolute;left:20px;bottom:20px;background:#fffdf8;padding:11px 15px;font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase}.manufacturing-copy p{font-size:17px;color:var(--muted)}.feature-list{display:grid;gap:0;margin-top:24px;border-top:1px solid var(--line)}.feature-list>div{display:grid;grid-template-columns:42px 1fr;gap:15px;padding:16px 0;border-bottom:1px solid var(--line)}.feature-list b{color:var(--amber)}.feature-list strong{display:block;font:700 16px 'Libre Baskerville',serif}.feature-list span{display:block;color:var(--muted);font-size:14px}
.projects{background:#efe6da}.filter-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:28px}.filter-btn{border:1px solid #cbbba8;background:#f8f1e8;padding:9px 15px;font-size:12px;font-weight:700;cursor:pointer}.filter-btn.active,.filter-btn:hover{background:var(--deep);color:#fff;border-color:var(--deep)}.gallery{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:240px;gap:12px}.gallery-item{position:relative;margin:0;overflow:hidden;background:#d5c8b8;cursor:zoom-in}.gallery-item:nth-child(4n+1){grid-column:span 7}.gallery-item:nth-child(4n+2){grid-column:span 5}.gallery-item:nth-child(4n+3){grid-column:span 5}.gallery-item:nth-child(4n){grid-column:span 7}.gallery-item.wide{grid-column:span 8}.gallery-item.tall{grid-row:span 2}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:.45s}.gallery-item:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(37,25,18,.8))}.gallery-item figcaption{position:absolute;left:18px;right:18px;bottom:15px;z-index:2;color:#fff}.gallery-item figcaption b,.gallery-item figcaption span{display:block}.gallery-item figcaption b{font:700 18px 'Libre Baskerville',serif}.gallery-item figcaption span{font-size:12px;color:#eee1d5}.gallery-item:hover img{transform:scale(1.04)}.gallery-item.hidden{display:none}.project-note{margin-top:20px;padding:18px 0;border-top:1px solid #ccbca8;color:#61564c}.project-note a{font-weight:800;text-decoration:underline;text-underline-offset:4px}
.materials{background:#fffdf8}.material-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.material-card{background:#f8f0e5;padding:14px 14px 26px;border:1px solid #eadbc7}.swatch{height:180px}.swatch-wood{background:linear-gradient(105deg,#70442d,#b97f54 30%,#85563d 42%,#d5a577 60%,#885940 75%,#bf8559)}.swatch-dark{background:linear-gradient(135deg,#332b26,#5b5049 55%,#26211e)}.swatch-glass{background:linear-gradient(135deg,#d8e3df,#eef3ef 42%,#adc0b8 43%,#e8efeb 62%,#c5d0ca)}.swatch-metal{background:linear-gradient(135deg,#665f58,#d2c7b7 30%,#8d8379 52%,#e3d9cc 70%,#5e5852)}.material-card h3{font:700 22px 'Libre Baskerville',serif;margin:20px 8px 8px}.material-card p{font-size:14px;color:var(--muted);margin:0 8px 16px}.material-card span{font-size:11px;font-weight:800;letter-spacing:.08em;margin:0 8px;color:#5c534b}
.installation-detail{background:#895331;color:#fff}.installation-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:74px;align-items:center}.install-copy .eyebrow{color:#f1caa7}.install-copy p{color:#f0dfcf}.check-grid{margin-top:30px;display:grid;grid-template-columns:repeat(2,1fr);gap:12px 18px;font-size:14px}.check-grid span{padding-top:11px;border-top:1px solid rgba(255,255,255,.28)}.install-image img{width:100%;height:610px;object-fit:cover;box-shadow:var(--shadow)}
.about{background:#f0e3d1}.about-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:82px;align-items:center}.about-photo img{width:100%;height:620px;object-fit:cover;box-shadow:var(--shadow)}.about-copy p{font-size:17px;color:#6c6157}.about-values{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:26px}.about-values>div{background:#fbf6ef;border:1px solid #dfcfbb;padding:18px}.about-values strong{display:block;font:700 16px 'Libre Baskerville',serif;margin-bottom:6px}.about-values span{display:block;font-size:13px;color:var(--muted)}
.project-types{background:#fbf7ef}.audience-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.audience-grid article{background:#fffdf8;border-top:4px solid var(--sage);padding:22px;box-shadow:0 10px 28px rgba(54,39,29,.07)}.audience-grid span{font-size:10px;font-weight:800;letter-spacing:.15em;color:var(--amber)}.audience-grid h3{font:700 21px 'Libre Baskerville',serif;margin:12px 0 9px}.audience-grid p{margin:0;color:var(--muted);font-size:13px}
.testimonials{background:#292017;color:#fff}.testimonial-grid{display:grid;grid-template-columns:1.1fr .95fr .95fr;gap:18px}.testimonial-intro p{color:#cdbfb3}.testimonial-intro h2{color:#fff}.quote-card{background:#35281f;border:1px solid rgba(255,255,255,.08);padding:28px}.stars{color:#e9b97e;letter-spacing:.18em}.quote-card p{font-family:'Libre Baskerville',serif;font-size:21px;line-height:1.55}.quote-card span{color:#c7b8ab;font-size:13px}
.faq{background:#fffdf8}.faq-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:60px}.faq-intro p{color:var(--muted)}.accordion{border-top:1px solid var(--line)}.faq-item{border-bottom:1px solid var(--line)}.faq-item button{width:100%;display:flex;justify-content:space-between;gap:20px;padding:20px 0;border:0;background:none;text-align:left;cursor:pointer}.faq-item button span{font:700 21px 'Libre Baskerville',serif}.faq-item button i{font-style:normal;font-size:22px;color:var(--amber);transition:.25s}.faq-answer{display:none;padding:0 0 20px;color:var(--muted)}.faq-item.open .faq-answer{display:block}.faq-item.open button i{transform:rotate(45deg)}
.estimate{background:#3a2a20;color:#fff}.estimate-grid{display:grid;grid-template-columns:.84fr 1.16fr;gap:58px}.estimate-copy p{color:#d3c4b8}.estimate-contact{display:grid;gap:12px;margin-top:28px}.estimate-contact a{display:flex;justify-content:space-between;gap:20px;padding:15px 0;border-top:1px solid rgba(255,255,255,.15)}.estimate-contact small{font-size:10px;letter-spacing:.16em;color:#ddcfc4}.estimate-contact strong{font:700 20px 'Libre Baskerville',serif}.estimate-form{background:#fffaf3;color:var(--ink);padding:34px;box-shadow:var(--shadow)}.form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.estimate-form label{display:grid;gap:7px;font-size:13px;font-weight:600;margin-bottom:14px}.estimate-form input,.estimate-form select,.estimate-form textarea,.file-field span{width:100%;border:1px solid #d6c7b4;background:#fff;min-height:49px;padding:0 13px}.estimate-form textarea{padding:13px;min-height:135px;resize:vertical}.estimate-form input:focus,.estimate-form select:focus,.estimate-form textarea:focus{outline:none;border-color:var(--amber);box-shadow:0 0 0 2px rgba(185,108,46,.12)}.file-field input{display:none}.file-field span{display:flex;align-items:center;color:#6c635b}.form-note{font-size:12px;color:#7b7168}.form-success{display:none;margin-top:14px;padding:13px;background:#eaf2e6;color:#3a613d;font-weight:700}.form-success.show{display:block}
.site-footer{background:#211811;color:#baaa9d;padding:80px 0 0}.footer-grid{display:grid;grid-template-columns:1.45fr repeat(3,1fr);gap:28px}.light-brand{color:#fff}.footer-grid h4{font:700 18px 'Libre Baskerville',serif;color:#fff;margin:0 0 12px}.footer-grid>div{display:grid;align-content:start;gap:9px}.footer-grid a:hover{color:#fff}.footer-brand p{max-width:420px}.footer-bottom{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.1);margin-top:34px;padding:20px 0 28px;font-size:12px}
.lightbox{position:fixed;inset:0;background:rgba(25,17,12,.92);display:none;place-items:center;padding:24px;z-index:100}.lightbox.open{display:grid}.lightbox img{max-width:min(92vw,1200px);max-height:80vh}.lightbox-caption{margin-top:12px;color:#fff;text-align:center}.lightbox-close{position:absolute;top:18px;right:18px;width:44px;height:44px;border-radius:50%;border:0;background:#fff;font-size:28px;cursor:pointer}
@media(max-width:1100px){.container{width:min(var(--container),calc(100% - 42px))}.main-nav{position:fixed;left:20px;right:20px;top:92px;background:#fffaf3;border:1px solid var(--line);padding:18px;display:none;flex-direction:column;align-items:flex-start;box-shadow:var(--shadow)}.main-nav.open{display:flex}.menu-toggle{display:block}.nav-cta{display:none}.hero-grid{min-height:auto}.hero-media{position:relative;inset:auto;height:520px;margin-left:10%}.hero-copy{width:70%;margin:-90px 0 0;position:relative}.stats-strip{grid-template-columns:repeat(2,1fr);margin-top:28px}.split-heading,.section-head,.process-layout,.manufacturing-grid,.installation-grid,.about-grid,.faq-grid,.estimate-grid{grid-template-columns:1fr;gap:38px}.service-grid,.door-card-grid{grid-template-columns:1fr}.door-card,.door-card:nth-child(3n){grid-template-columns:1fr 1fr}.door-card:nth-child(3n) img{order:0}.process-sticky{position:static}.material-grid,.audience-grid,.testimonial-grid{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:1.2fr 1fr 1fr}.footer-brand{grid-column:1/-1}}
@media(max-width:820px){.container{width:min(var(--container),calc(100% - 28px))}.topbar{display:none}.nav-wrap{min-height:72px}.main-nav{top:78px}.hero{padding-top:20px}.hero-media{height:440px;margin-left:0}.hero-copy{width:calc(100% - 24px);margin:-70px auto 0;padding:34px}.hero h1{font-size:52px}.stats-strip{grid-template-columns:1fr 1fr}.section{padding:86px 0}.door-card,.door-card:nth-child(3n){grid-template-columns:1fr}.door-card img{height:380px;min-height:0}.gallery{grid-template-columns:1fr 1fr;grid-auto-rows:250px}.gallery-item:nth-child(n),.gallery-item.wide{grid-column:span 1}.gallery-item.tall{grid-row:span 1}.material-grid,.audience-grid,.testimonial-grid,.about-values,.footer-grid{grid-template-columns:1fr}.manufacturing-photo img,.install-image img,.about-photo img{height:480px}.form-row,.check-grid{grid-template-columns:1fr}}
@media(max-width:560px){.hero-copy{padding:26px 22px}.hero h1{font-size:42px}.hero-actions{flex-direction:column;align-items:flex-start}.hero-float{display:none}.stats-strip{grid-template-columns:1fr}.section h2{font-size:42px}.service-card{padding:25px 22px}.gallery{grid-template-columns:1fr;grid-auto-rows:320px}.manufacturing-photo img,.install-image img,.about-photo img,.hero-media{height:360px}.estimate-form{padding:22px}}
