
:root{--a:#e4572e;--a2:#c8431d;--ink:#14181f;--ink2:#1e242d;--paper:#f6f3ee;--card:#fff;--line:#e3ded5;--m:#6b665e;--r:16px}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,system-ui,sans-serif;color:var(--ink);background:var(--paper);line-height:1.6;padding-bottom:56px}
h1,h2,h3,h4{font-family:Fraunces,Georgia,serif;line-height:1.1;margin:0 0 .5em;color:var(--ink);font-weight:600;letter-spacing:-.01em}
h1{font-size:clamp(2.3rem,6vw,4.4rem);font-weight:700}h2{font-size:clamp(1.7rem,3.6vw,2.6rem)}h3{font-size:1.25rem}
a{color:inherit}img{max-width:100%;height:auto}.wrap{max-width:1180px;margin:0 auto;padding:0 20px}.narrow{max-width:820px}
.ic{width:20px;height:20px;flex:none}
.eyebrow{display:inline-block;color:var(--a2);font:600 .78rem Inter;text-transform:uppercase;letter-spacing:.16em;margin-bottom:14px}
.btn{display:inline-flex;align-items:center;gap:8px;padding:13px 24px;border-radius:999px;font-weight:600;text-decoration:none;border:2px solid transparent;cursor:pointer;font:600 1rem Inter,sans-serif;transition:.15s}
.btn-o{background:var(--ink);color:#fff}.btn-o:hover{background:var(--a);color:#fff}
.btn-ghost{border-color:var(--ink);color:var(--ink)}.btn-ghost:hover{background:var(--ink);color:#fff}
.sm{padding:9px 18px;font-size:.92rem}.btns{display:flex;flex-wrap:wrap;gap:12px;margin:24px 0}.btns.stack{flex-direction:column;align-items:stretch}.btns.stack .btn{justify-content:center}
.dark .btn-o,.contact .btn-o{background:var(--a)}.dark .btn-o:hover,.contact .btn-o:hover{background:#fff;color:var(--ink)}
.contact .btn-ghost{border-color:#fff;color:#fff}.contact .btn-ghost:hover{background:#fff;color:var(--ink)}
.emerg .btn-o{background:var(--a)}.emerg .btn-o:hover{background:#fff;color:var(--ink)}
.form .btn-o{background:var(--ink);color:#fff}.form .btn-o:hover{background:var(--a)}
/* header */
.hdr{position:sticky;top:0;z-index:50;background:#f6f3eef2;backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:76px}
.logo{--lbg:var(--paper);display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink)}.mk{width:62px;height:auto;flex:none}
.lt{display:flex;flex-direction:column;line-height:1;font-family:Fraunces,serif}.lt i{font:600 .62rem Inter,sans-serif;letter-spacing:.42em;text-transform:uppercase;color:var(--a2);font-style:normal}.lt b{font-size:1.5rem;font-weight:700;letter-spacing:-.02em;margin:3px 0 4px}.lt em{display:flex;align-items:center;gap:8px;font:600 .62rem Inter,sans-serif;letter-spacing:.42em;text-transform:uppercase;color:var(--a2);font-style:normal}.lt em::before{content:'';width:16px;height:3px;border-radius:2px;background:var(--a)}
.nav{display:flex;align-items:center;gap:24px}.nav>a,.ddb{color:var(--ink);text-decoration:none;font:500 .95rem Inter,sans-serif;background:none;border:0;cursor:pointer;padding:8px 0}
.nav>a.btn{background:var(--ink);padding:9px 18px}.nav>a.btn:hover{background:var(--a)}.nav>a:hover,.ddb:hover{color:var(--a2)}.nav .em{color:var(--a2)}.nav .btn{color:#fff}.nav .btn:hover{color:#fff}
.dd{position:relative}.ddm{display:none;position:absolute;top:100%;left:-12px;min-width:250px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:8px;box-shadow:0 18px 40px #14181f22}
.ddm.cols{min-width:320px;columns:2}.ddm a{display:block;padding:8px 12px;text-decoration:none;color:var(--ink);border-radius:8px;font-size:.92rem}.ddm a:hover{background:var(--ink);color:#fff}
.dd.open .ddm{display:block}
.burger{display:none;background:none;border:0;padding:8px;cursor:pointer}.burger span{display:block;width:26px;height:2px;background:var(--ink);margin:6px 0;border-radius:2px}
/* hero */
.hero{padding:56px 0 0}
.hgrid{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}
.hero h1 em{font-style:italic;color:var(--a2)}.htext p{color:var(--m);font-size:1.1rem;max-width:540px}
.badges{list-style:none;display:flex;flex-wrap:wrap;gap:8px 22px;padding:0;margin:8px 0 0;font-weight:500}.badges li::before{content:"●";color:var(--a);margin-right:8px;font-size:.6rem;vertical-align:middle}
.hfig{margin:0;position:relative}.hfig img{width:100%;height:auto;display:block;border-radius:28px 28px 28px 120px;box-shadow:0 30px 60px #14181f26}
.hfig figcaption{position:absolute;left:18px;bottom:18px;background:#fff;border-radius:999px;padding:6px 14px;font-size:.82rem;font-weight:500}
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:56px;border-top:1px solid var(--line)}
.facts div{padding:22px 0;display:flex;align-items:baseline;gap:12px;border-right:1px solid var(--line);padding-left:20px}.facts div:first-child{padding-left:0}.facts div:last-child{border:0}
.facts b{font:600 2.2rem Fraunces,serif;color:var(--a2)}.facts span{color:var(--m);font-size:.95rem}
.two{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center}.two.top{align-items:start}
.phero{padding:56px 0 40px;border-bottom:1px solid var(--line)}.phero p{color:var(--m);font-size:1.15rem;max-width:620px}.crumb{font-size:.9rem;color:var(--m);margin-bottom:18px}.crumb a{color:var(--a2)}
/* sections */
.sec{padding:80px 0}.alt{background:#efeae2}.dark{background:var(--ink);color:#fff}.dark h2,.dark h3{color:#fff}.dark .eyebrow{color:#ff8a65}.lead{font-size:1.1rem;color:var(--m);max-width:680px}
.shead{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:12px}.shead h2{max-width:640px;margin:0}.lnk{font-weight:600;text-decoration:none;color:var(--a2);white-space:nowrap}
.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px;margin-top:28px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:26px}
.why{border:1px solid #2f3742;border-radius:var(--r);padding:28px;background:var(--ink2)}.why p{color:#c9c4ba;margin:0}.num{font:600 2.2rem Fraunces,serif;color:#ff8a65}
.ticks{list-style:none;padding:0;margin:14px 0}.ticks li{position:relative;padding:6px 0 6px 30px}.ticks li::before{content:"✔";position:absolute;left:0;color:var(--a);font-weight:700}
.ticks.big li{font-size:1.05rem;border-bottom:1px solid var(--line)}.cols2{columns:2;gap:40px}
.emerg{background:var(--ink);color:#fff;border-radius:24px;padding:28px 28px 36px;text-align:center}.emerg h3{color:#fff;font-size:1.8rem}.emerg p{color:#c9c4ba}.emerg .emimg{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:14px;margin-bottom:20px;display:block}
.pill{display:inline-block;background:var(--a);color:#fff;border-radius:999px;padding:4px 14px;font:600 .8rem Inter;margin-bottom:14px}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.chips a{padding:9px 18px;border:1px solid var(--ink);border-radius:999px;text-decoration:none;font-weight:500;transition:.15s}.chips a:hover{background:var(--ink);color:#fff}
.steps3{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:28px}.steps3 div{border-top:2px solid var(--ink);padding-top:18px}.steps3 span{font:600 .95rem Fraunces,serif;color:var(--a2)}.steps3 p{color:var(--m);margin:0}
.steps{padding-left:20px}.steps li{margin-bottom:12px}.steps b{display:block}.side{position:sticky;top:96px}
/* service index rows */
.rows{margin-top:28px;border-top:1px solid var(--ink)}
.row{display:grid;grid-template-columns:56px 1fr 120px 36px;align-items:center;gap:20px;padding:18px 0;border-bottom:1px solid var(--line);text-decoration:none;transition:.2s}
.row:hover{padding-left:10px;background:#fff}.rn{font:600 1rem Fraunces,serif;color:var(--a2)}
.rt b{display:block;font:600 1.35rem Fraunces,serif}.rt small{color:var(--m);font-size:.95rem}
.rim{display:block;width:120px;aspect-ratio:3/2;border-radius:10px;overflow:hidden;background:#fff}.rim img{width:100%;height:100%;object-fit:cover;display:block}.rim img.contain{object-fit:contain}
.ra{font-size:1.5rem;transition:.2s}.row:hover .ra{transform:translateX(6px);color:var(--a2)}
/* masonry */
.mason{columns:3;column-gap:16px;margin-top:28px}
.tile{display:block;break-inside:avoid;margin-bottom:16px;border-radius:14px;overflow:hidden;position:relative;background:#fff}
.tile img{width:100%;height:auto;display:block;transition:transform .5s}.tile:hover img{transform:scale(1.04)}
.tile.prod img{object-fit:contain;background:#fff}
.tcap{position:absolute;left:0;right:0;bottom:0;padding:34px 14px 12px;background:linear-gradient(transparent,#14181fcc);color:#fff;font-size:.82rem;line-height:1.35;opacity:0;transform:translateY(8px);transition:.25s}
.tcap i{display:block;font-style:normal;font-weight:600;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:#ffb199;margin-bottom:2px}
.tile:hover .tcap,.tile:focus-visible .tcap{opacity:1;transform:none}
@media(hover:none){.tcap{display:none}}
.mason.m4{columns:4}.gal-row{margin-top:40px}
.filters{display:flex;flex-wrap:wrap;gap:10px}.filters button{font:500 .95rem Inter;padding:9px 18px;border-radius:999px;border:1px solid var(--ink);background:none;cursor:pointer;color:var(--ink)}
.filters button.on,.filters button:hover{background:var(--ink);color:#fff}.tile.hide{display:none}
.ggrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.gp{display:block;aspect-ratio:4/3;border-radius:14px;overflow:hidden;background:#fff}
.gp img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s}.gp:hover img{transform:scale(1.06)}.gp.prod img{object-fit:contain}
@media(max-width:900px){.ggrid{grid-template-columns:repeat(2,1fr);gap:10px}}
/* faq / contact */
.faq details{border:1px solid var(--line);border-radius:12px;background:#fff;margin-bottom:12px}.faq summary{cursor:pointer;padding:16px 20px;font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:12px}
.faq summary::after{content:"+";color:var(--a2);font-size:1.4rem;line-height:1}.faq details[open] summary::after{content:"−"}.faq p{margin:0;padding:0 20px 18px;color:var(--m)}
.contact{background:var(--ink);color:#fff;padding:80px 0}.contact h2,.contact h3{color:#fff}.contact .eyebrow{color:#ff8a65}.contact p{color:#c9c4ba}.contact .ticks li{color:#e6e1d8}
.addr{margin:16px 0 0}.addr a{color:#ffb199;font-weight:600}
.form{background:#fff;color:var(--ink);border-radius:22px;padding:30px}.form h3{color:var(--ink)}
.form label{display:block;font-weight:500;font-size:.92rem;margin-bottom:14px}.form input,.form select,.form textarea{display:block;width:100%;margin-top:6px;padding:12px;border:1px solid #d6d0c5;border-radius:10px;font:1rem Inter,sans-serif;background:#fff}
.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--a);border-color:var(--a)}.form .btn{width:100%;justify-content:center}.form small{display:block;margin-top:10px;color:var(--m)}.form .err{border-color:#dc2626}
/* footer */
.ftr{background:#0e1218;color:#c9c4ba;padding:56px 0 20px}.fgrid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:32px}
.ftr h4{color:#fff;font-size:1.05rem}.ftr ul{list-style:none;padding:0;margin:0}.ftr li{margin-bottom:8px}.ftr a{text-decoration:none}.ftr a:hover{color:#ffb199}
.ftr .logo{--lbg:#0e1218;color:#fff;margin-bottom:14px}.ftr .lt i,.ftr .lt em{color:#ff8a65}
.fine{margin-top:32px;padding-top:18px;border-top:1px solid #262c36;font-size:.88rem;color:#8d887e}
.mbar{display:none}
.lb{position:fixed;inset:0;background:#000d;display:none;flex-direction:column;align-items:center;justify-content:center;z-index:100;padding:20px}
.lb.on{display:flex}.lb img{max-width:100%;max-height:82vh;border-radius:8px}.lb p{color:#fff;margin:12px 0 0;text-align:center}
.lbx{position:absolute;top:14px;right:18px;background:none;border:0;color:#fff;font-size:2.4rem;cursor:pointer;line-height:1}
.contain{object-fit:contain;background:#fff}
@media(max-width:900px){
 .two,.hgrid{grid-template-columns:1fr;gap:28px}.fgrid{grid-template-columns:1fr 1fr}.side{position:static}.cols2{columns:1}
 .mason,.mason.m4{columns:2}.steps3{grid-template-columns:1fr}.facts div{padding-left:12px}.hero{padding-top:32px}
 .burger{display:block}.nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--paper);flex-direction:column;align-items:stretch;gap:0;padding:12px 20px 20px;border-bottom:1px solid var(--line);max-height:80vh;overflow:auto}
 .nav.open{display:flex}.nav>a,.ddb{padding:12px 0;text-align:left;width:100%;border-bottom:1px solid var(--line)}.nav .btn{margin-top:12px;justify-content:center;border-bottom:0}
 .ddm{position:static;display:none;box-shadow:none;border:0;padding:0 0 0 12px;min-width:0;background:none}.ddm.cols{columns:1;min-width:0}.dd:hover .ddm{display:none}.dd.open .ddm{display:block}
 .mbar{display:grid;grid-template-columns:1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:60;box-shadow:0 -4px 16px #0004}
 .mbar a{display:flex;justify-content:center;align-items:center;gap:8px;padding:15px;font-weight:700;text-decoration:none;background:var(--a);color:#fff}.mbar a+a{background:var(--ink)}
 .row{grid-template-columns:36px 1fr 84px 24px;gap:12px}.rim{width:84px}.rt b{font-size:1.12rem}}
@media(min-width:901px){body{padding-bottom:0}}
@media(max-width:560px){.fgrid{grid-template-columns:1fr}.sec{padding:52px 0}.mk{width:52px}.lt b{font-size:1.3rem}.bar{min-height:64px}
 .facts{grid-template-columns:1fr}.facts div{border-right:0;border-bottom:1px solid var(--line);padding:14px 0}.mason,.mason.m4{column-gap:10px}.tile{margin-bottom:10px}.shead{flex-direction:column;align-items:start}.hfig img{border-radius:22px 22px 22px 64px}}

/* ===== sidebar layout ===== */
.shell{display:grid;grid-template-columns:300px minmax(0,1fr);min-height:100vh}
.sidenav{position:sticky;top:0;height:100vh;overflow:auto;background:#efeae2;border-right:1px solid var(--line);padding:28px 26px;display:flex;flex-direction:column;gap:22px}
.sbar{display:flex;align-items:center;justify-content:space-between}.sidenav .logo{--lbg:#efeae2}
.nav{display:flex;flex-direction:column;align-items:stretch;gap:0;flex:1}
.nav>a,.ddb{display:flex;justify-content:space-between;align-items:center;width:100%;text-align:left;padding:11px 0;border-bottom:1px solid var(--line);font:500 1rem Inter,sans-serif;color:var(--ink);text-decoration:none;background:none;border-left:0;border-right:0;border-top:0;cursor:pointer}
.nav>a:hover,.ddb:hover{color:var(--a2)}.ddb i{font-style:normal;color:var(--a2);font-size:1.2rem}.dd.open .ddb i{transform:rotate(45deg)}
.ddm,.ddm.cols{position:static;display:none;box-shadow:none;border:0;background:none;padding:6px 0 6px 12px;min-width:0;columns:1;border-radius:0}
.dd.open .ddm{display:block}.dd:hover .ddm{display:none}.dd.open:hover .ddm{display:block}
.ddm a{padding:6px 10px;font-size:.9rem}
.sfoot{margin-top:auto;padding-top:22px;display:flex;flex-direction:column;gap:10px}.sfoot .btn{justify-content:center}.sfoot p{margin:6px 0 0;font-size:.82rem;color:var(--m)}
.mcol{min-width:0}.mcol .wrap{max-width:1040px;padding:0 48px}
.cover{min-height:92vh;background-size:cover;background-position:center;color:#fff;display:flex;align-items:flex-end;padding:80px 0 56px}
.cover h1{color:#fff;max-width:760px}.cover h1 em{color:#ffb199;font-style:italic}.cover p{color:#e6e1d8;font-size:1.15rem;max-width:560px}
.cover .eyebrow{color:#ffb199}.cover .btn-o{background:var(--a)}.cover .btn-o:hover{background:#fff;color:var(--ink)}.cover .btn-ghost{border-color:#fff;color:#fff}.cover .btn-ghost:hover{background:#fff;color:var(--ink)}
.cover .badges{color:#fff;margin-top:22px}
.phero.img{background-size:cover;background-position:center;color:#fff;border:0;padding:96px 0 56px;min-height:360px;display:flex;align-items:flex-end}
.phero.img h1,.phero.img .crumb,.phero.img .crumb a{color:#fff}.phero.img p{color:#e6e1d8}.phero.img .eyebrow{color:#ffb199}
.phero.img .btn-o{background:var(--a)}.phero.img .btn-o:hover{background:#fff;color:var(--ink)}.phero.img .btn-ghost{border-color:#fff;color:#fff}.phero.img .btn-ghost:hover{background:#fff;color:var(--ink)}
.zig{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;margin-top:56px}.zig.rev .zimg{order:2}
.zimg{display:block;aspect-ratio:4/3;border-radius:22px;overflow:hidden;background:#fff}.zimg img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s}.zimg:hover img{transform:scale(1.04)}.zimg img.contain{object-fit:contain}
.zn{font:600 .95rem Fraunces,serif;color:var(--a2)}.ztxt h3{font-size:1.8rem;margin:.2em 0}.zs{color:var(--a2);font-weight:600;margin:0 0 10px}.ztxt p{color:var(--m)}.ztxt .zs{color:var(--a2)}
.nopad{padding-bottom:0}.hscroll{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:28px 48px 56px;-webkit-overflow-scrolling:touch}
.hs{flex:none;width:340px;height:260px;border-radius:18px;overflow:hidden;scroll-snap-align:start;background:#fff}.hs img{width:100%;height:100%;object-fit:cover;display:block}
.band{background:var(--ink);color:#fff;padding:72px 0}.band h2{color:#fff}.band .eyebrow{color:#ff8a65}.band .ticks.big li{border-color:#2f3742;color:#e6e1d8}
.emergbox{border:1px solid #3a4452;border-radius:22px;padding:32px;text-align:center}.emergbox h3{color:#fff;font-size:1.6rem}.emergbox p{color:#c9c4ba}.emergbox .btn-o{background:var(--a)}.emergbox .btn-o:hover{background:#fff;color:var(--ink)}
.tline{display:grid;grid-template-columns:repeat(3,1fr);margin-top:36px;position:relative}
.tline div{padding:0 24px 0 0;position:relative}.tline div::before{content:"";position:absolute;top:19px;left:46px;right:12px;height:2px;background:var(--line)}.tline div:last-child::before{display:none}
.tline span{display:flex;width:40px;height:40px;border-radius:50%;background:var(--ink);color:#fff;align-items:center;justify-content:center;font:600 .9rem Fraunces,serif;margin-bottom:16px;position:relative;z-index:1}.tline p{color:var(--m);margin:0}
.acols{display:grid;grid-template-columns:repeat(2,1fr);gap:40px;margin-top:28px}.acols h4{font:600 .78rem Inter;letter-spacing:.14em;text-transform:uppercase;color:var(--a2);margin-bottom:12px}
.acols div{columns:2}.acols h4{column-span:all}.acols a{display:block;padding:6px 0;text-decoration:none;border-bottom:1px solid var(--line);break-inside:avoid}.acols a:hover{color:var(--a2);padding-left:6px}
.whyrow{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:32px}.whyrow .num{color:var(--a2);font-size:3rem;display:block;line-height:1}.whyrow p{color:var(--m)}
.faqsplit{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:start}.faqsplit>div:first-child{position:sticky;top:40px}
.contact .two{grid-template-columns:.9fr 1.1fr}
.ftr .fgrid{grid-template-columns:1.4fr repeat(3,1fr)}
.nav .btn{margin:0}.nav .sfoot .btn-ghost{color:var(--ink)}.nav .sfoot .btn-ghost:hover{color:#fff}.nav .sfoot .btn-o{color:#fff}
@media(max-width:1200px){.mcol .wrap{padding:0 28px}.hscroll{padding:28px 28px 48px}.fgrid{grid-template-columns:1fr 1fr!important}}
@media(max-width:900px){
 .shell{display:block}.sidenav{position:sticky;top:0;z-index:50;height:auto;overflow:visible;padding:10px 20px;gap:0;border-right:0;border-bottom:1px solid var(--line)}
 .nav{display:none;position:static;max-height:72vh;overflow:auto;padding:8px 0 16px;border:0;background:none}.nav.open{display:flex}
 .nav>a,.ddb{padding:12px 0}.sfoot{margin-top:16px;padding-top:0}
 .mcol .wrap{padding:0 20px}.cover{min-height:78vh;padding:56px 0 40px}.zig,.faqsplit,.contact .two{grid-template-columns:1fr;gap:22px}.zig.rev .zimg{order:0}.zig{margin-top:40px}
 .tline{grid-template-columns:1fr;gap:24px}.tline div::before{display:none}.acols,.whyrow{grid-template-columns:1fr}.faqsplit>div:first-child{position:static}
 .hscroll{padding:24px 20px 40px}.hs{width:260px;height:200px}.phero.img{padding:64px 0 40px;min-height:300px}.band{padding:48px 0}}
@media(max-width:560px){.acols div{columns:1}}
