:root{--ink:#141414;--cream:#f6f1ea;--sand:#efe6d8;--gold:#b8925a;--olive:#3f4a3c;--white:#fff;--line:#e6dfd4;--font-body:'Inter',system-ui,-apple-system,sans-serif;--font-head:'Playfair Display',Georgia,serif}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
html,body{margin:0;padding:0;font-family:var(--font-body);color:var(--ink);background:var(--white);line-height:1.5}
img{max-width:100%}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--font-head);line-height:1.1;margin:0;font-weight:700}
p{margin:0;line-height:1.6}
.wrap{max-width:1200px;margin:0 auto;padding:0 20px}
.eyebrow{letter-spacing:.22em;text-transform:uppercase;font-size:.72rem;color:var(--gold);font-weight:600}
.btn{display:inline-block;padding:14px 26px;border-radius:4px;font-weight:600;text-decoration:none;font-size:.95rem;letter-spacing:.02em;transition:.15s;cursor:pointer;border:0;font-family:inherit;line-height:1.2;text-align:center}
.btn-ink{background:var(--ink);color:var(--white)} .btn-ink:hover{background:#000}
.btn-gold{background:var(--gold);color:var(--white)} .btn-gold:hover{filter:brightness(.92)}
.btn-line{border:1.5px solid var(--ink);color:var(--ink);background:transparent} .btn-line:hover{background:var(--ink);color:var(--white)}
.btn-line-w{border:1.5px solid var(--white);color:var(--white);background:transparent} .btn-line-w:hover{background:var(--white);color:var(--ink)}
.btn-sm{padding:10px 16px;font-size:.85rem}

/* header */
.ann{background:#0a0a0a;color:#d8d2c8;text-align:center;font-size:12px;padding:11px 16px;letter-spacing:.02em}
.hdrwrap{border-bottom:1px solid #2a2a2a;background:var(--ink);position:sticky;top:0;z-index:500}
.hdr{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 20px;max-width:1200px;margin:0 auto}
.hdr .logo img{height:84px;width:auto;display:block}
.hdr nav{display:flex;gap:22px;font-size:14px;align-items:center}
.hdr nav a{color:var(--white);text-decoration:none;padding:6px 0;border-bottom:2px solid transparent}
.hdr nav a:hover,.hdr nav a[aria-current]{border-bottom-color:var(--gold)}
.hdr .q{background:var(--gold);color:var(--white);padding:10px 18px;border-radius:4px;font-weight:600;font-size:14px;text-decoration:none;white-space:nowrap}
.hdr .burger{display:none;background:none;border:0;font-size:1.6rem;line-height:1;padding:6px;cursor:pointer;color:var(--white)}
.mnav{display:none;border-top:1px solid #2a2a2a;background:var(--ink)}
.mnav a{display:block;padding:14px 20px;border-bottom:1px solid #2a2a2a;text-decoration:none;font-size:15px;color:var(--white)}
.mnav[data-open="true"]{display:block}

/* hero */
.hero{position:relative;min-height:640px;display:flex;align-items:flex-end;background:#2b2f28 center/cover no-repeat;color:var(--white)}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,10,10,.78) 0%,rgba(10,10,10,.45) 55%,rgba(10,10,10,.15) 100%),linear-gradient(0deg,rgba(10,10,10,.55) 0%,rgba(10,10,10,0) 45%)}
.hero .wrap{position:relative;width:100%;display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:end;padding-top:90px;padding-bottom:64px}
.hero .eyebrow{color:#e3c795}
.hero h1{font-size:clamp(2.5rem,5.2vw,4.4rem);margin:14px 0 18px;text-shadow:0 2px 24px rgba(0,0,0,.35)}
.hero .sub{font-size:1.15rem;max-width:36rem;color:#f1ede6}
.hero .ctas{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.hero .trust{display:flex;gap:22px;flex-wrap:wrap;margin-top:28px;font-size:.9rem;color:#e9e4dc}
.hero .trust span::before{content:"\2713";color:var(--gold);font-weight:700;margin-right:6px}
.hero .card{justify-self:end;background:var(--white);color:var(--ink);border-radius:8px;padding:18px 20px;box-shadow:0 10px 30px rgba(0,0,0,.3);max-width:320px}
.hero .card b{display:block;font-size:1.05rem}
.hero .card small{color:#555;display:block;margin:4px 0 12px}
.hero .card a{color:var(--gold);font-weight:600;text-decoration:none;font-size:.9rem}

/* page hero (inner pages) */
.phero{background:var(--cream);padding:56px 0 40px;border-bottom:1px solid var(--line)}
.phero h1{font-size:clamp(2rem,4vw,3rem);margin-top:10px}
.phero .lead{max-width:44rem;color:#444;margin-top:12px;font-size:1.05rem}
.crumbs{font-size:.82rem;color:#777;margin-bottom:6px}
.crumbs a{color:#777;text-decoration:none} .crumbs a:hover{color:var(--gold)}

/* strip */
.strip{background:var(--ink);color:var(--white);padding:14px 0;font-size:.9rem}
.strip .wrap{display:flex;gap:28px;justify-content:center;flex-wrap:wrap}
.strip span{opacity:.9} .strip span::before{content:"\2022";color:var(--gold);margin-right:10px}

/* sections */
.sec{padding:72px 0}
.sec.sand{background:var(--sand)} .sec.cream{background:var(--cream)}
.sec .head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:32px;flex-wrap:wrap}
.sec h2{font-size:clamp(1.7rem,3vw,2.5rem);margin-top:10px}
.sec .lead{max-width:40rem;color:#444;margin-top:10px}
.sec .actions{display:flex;gap:10px;flex-wrap:wrap}
.cats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.cat{background:var(--white);border:1px solid var(--line);border-radius:8px;padding:22px 20px 20px;text-decoration:none;color:var(--ink);display:block;transition:.15s}
.cat:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(0,0,0,.08);border-color:var(--gold)}
.cat .ico{width:44px;height:44px;border-radius:50%;background:var(--sand);display:flex;align-items:center;justify-content:center;margin-bottom:14px;font-size:1.3rem}
.cat b{display:block;font-size:1.05rem;margin-bottom:4px}
.cat small{color:#666;display:block;line-height:1.4}
.cat .from{display:block;margin-top:12px;color:var(--gold);font-weight:600;font-size:.85rem}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.step{padding:28px;background:var(--white);border-radius:8px;border:1px solid var(--line)}
.step .n{font-family:var(--font-head);font-size:2.4rem;color:var(--gold);line-height:1}
.step b{display:block;font-size:1.1rem;margin:12px 0 8px}
.step p{color:#555;font-size:.95rem}
.steps-cta{margin-top:28px;display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.steps-cta p{color:#555}
.valley{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.valley ul{list-style:none;padding:0;margin:20px 0 0;display:grid;gap:14px}
.valley li{padding-left:28px;position:relative;line-height:1.5}
.valley li::before{content:"\2600";position:absolute;left:0;color:var(--gold)}
.valley img{width:100%;border-radius:10px;display:block;aspect-ratio:4/3;object-fit:cover}
.valley .btn{margin-top:24px}
.reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.review{background:var(--white);border-radius:8px;padding:24px;border:1px solid var(--line)}
.review .stars{color:var(--gold);letter-spacing:2px;margin-bottom:10px}
.review p{font-size:.98rem;color:#333}
.review b{display:block;margin-top:14px;font-size:.9rem}
.faq{max-width:820px}
.faq details{border-bottom:1px solid #d9d0c2;padding:16px 0}
.faq summary{cursor:pointer;font-weight:600;font-size:1.05rem;list-style:none;display:flex;justify-content:space-between;gap:12px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--gold);font-size:1.3rem}
.faq details[open] summary::after{content:"\2013"}
.faq p{margin-top:10px;color:#444}
.cities{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.cities span,.cities a{background:var(--white);border:1px solid var(--line);border-radius:999px;padding:8px 14px;font-size:.9rem;text-decoration:none}
.cta{background:var(--ink);color:var(--white);padding:72px 0;text-align:center}
.cta h2{font-size:clamp(1.8rem,3.4vw,2.8rem)}
.cta p{color:#cfcfcf;margin:14px auto 28px;max-width:38rem}
.cta .btn+.btn{margin-left:10px}
.cta .phone{display:block;margin-top:18px;color:var(--gold);font-weight:600;text-decoration:none;font-size:1.1rem}

/* packages row */
.pkgs{padding:64px 0}
.pkgs .h{display:flex;justify-content:space-between;align-items:end;margin-bottom:24px}
.pkgs h3{font-size:24px;margin:0}
.pkgs .h a{color:var(--ink);font-size:14px}
.pkgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.pk{text-decoration:none;color:var(--ink)} .pk img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;display:block}
.pk b{display:block;font-weight:400;margin-top:8px;font-size:15px} .pk span{display:block;font-weight:600;font-size:15px;margin-top:2px}

/* product grid */
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.pc{background:var(--white);border:1px solid var(--line);border-radius:8px;overflow:hidden;text-decoration:none;color:var(--ink);display:flex;flex-direction:column;transition:.15s}
.pc:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(0,0,0,.08);border-color:var(--gold)}
.pc .ph{aspect-ratio:1;background:var(--sand);display:flex;align-items:center;justify-content:center;font-size:3rem;overflow:hidden}
.pc .ph img{width:100%;height:100%;object-fit:cover;display:block}
.pc .ph.tile{background:linear-gradient(160deg,var(--cream),var(--sand))}
.pc .bd{padding:14px 16px 16px;display:flex;flex-direction:column;gap:4px;flex:1}
.pc b{font-weight:600;font-size:.98rem;line-height:1.3}
.pc small{color:#666;font-size:.82rem;line-height:1.4}
.pc .pr{margin-top:auto;padding-top:8px;font-weight:700;color:var(--ink)}
.pc .pr em{font-style:normal;font-weight:400;color:#777;font-size:.8rem}
.gsec{padding:48px 0 64px}
.gsec h2{font-size:1.6rem;margin-bottom:18px}
.gsec+.gsec{padding-top:0}
.subnav{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.subnav a{border:1px solid var(--line);background:var(--white);border-radius:999px;padding:7px 14px;font-size:.85rem;text-decoration:none}
.subnav a[aria-current]{background:var(--ink);color:var(--white);border-color:var(--ink)}

/* product page */
.prod{display:grid;grid-template-columns:1fr 1fr;gap:48px;padding:48px 0 64px;align-items:start}
.prod .media{background:var(--sand);border-radius:10px;aspect-ratio:1;display:flex;align-items:center;justify-content:center;overflow:hidden;font-size:5rem}
.prod .media img{width:100%;height:100%;object-fit:cover;display:block}
.prod h1{font-size:clamp(1.8rem,3vw,2.6rem);margin-top:8px}
.prod .price{font-size:1.7rem;font-weight:700;margin:14px 0 4px}
.prod .price em{font-style:normal;font-weight:400;font-size:.95rem;color:#666;margin-left:6px}
.prod .desc{color:#333;margin-top:16px;font-size:1.02rem}
.prod .opts{margin-top:20px;display:grid;gap:12px}
.prod .opts label{display:grid;gap:6px;font-size:.85rem;font-weight:600}
.prod .opts select,.prod .opts input{padding:11px 12px;border:1px solid #d6cfc4;border-radius:4px;font:inherit;font-size:.95rem;max-width:320px;background:#fff}
.prod .ctas{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}
.prod .inc{margin-top:22px;border-top:1px solid var(--line);padding-top:18px;display:grid;gap:8px;font-size:.92rem;color:#444}
.prod .inc span::before{content:"\2713";color:var(--gold);font-weight:700;margin-right:8px}
.specs{display:grid;grid-template-columns:auto 1fr;gap:6px 18px;font-size:.92rem;margin-top:18px}
.specs dt{color:#777} .specs dd{margin:0}

/* content pages */
.content{max-width:820px;padding:48px 20px 72px;margin:0 auto}
.content h2{font-size:1.6rem;margin:36px 0 12px}
.content h3{font-size:1.2rem;margin:24px 0 8px}
.content p{margin-bottom:14px;color:#333}
.content ul{padding-left:22px;color:#333} .content li{margin-bottom:8px}
.content table{border-collapse:collapse;width:100%;margin:14px 0 20px;font-size:.95rem}
.content th,.content td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line)}
.content th{background:var(--cream);font-weight:600}
.notice{background:var(--cream);border-left:3px solid var(--gold);padding:14px 16px;border-radius:4px;margin:18px 0;font-size:.95rem}

/* quote page form */
.qpage{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;padding:48px 0 72px;align-items:start}
.qpage .side{background:var(--cream);border-radius:10px;padding:28px}
.qpage .side h3{font-size:1.3rem;margin-bottom:10px}
.qpage .side p{color:#444;margin-bottom:12px;font-size:.95rem}
.qform{display:grid;gap:14px}
.qform .row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.qform label{display:grid;gap:5px;font-size:.85rem;font-weight:600;color:#333}
.qform input,.qform select,.qform textarea{width:100%;padding:12px;border:1px solid #d6cfc4;border-radius:4px;font:inherit;font-size:.95rem;background:#fff;color:var(--ink)}
.qform input:focus,.qform select:focus,.qform textarea:focus{outline:2px solid var(--gold);border-color:var(--gold)}
.qform textarea{min-height:140px;resize:vertical}
.qform .fine{font-size:.8rem;color:#777}
.hp{position:absolute;left:-9999px;top:-9999px;height:0;overflow:hidden}

/* footer */
footer{background:var(--white);border-top:1px solid #eee;padding:48px 20px 48px;font-size:13px;color:#555}
footer .w{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px}
footer h4{font-size:18px;color:var(--ink);margin:0 0 10px}
footer ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
footer a{text-decoration:none;color:#555} footer a:hover{color:var(--gold)}
footer .u{max-width:1200px;margin:32px auto 0;display:flex;justify-content:space-between;font-size:12px;color:#888;flex-wrap:wrap;gap:10px}

/* sticky mobile bar + drawer */
.bar{display:none}
.qd{position:fixed;inset:0;z-index:9999;visibility:hidden}
.qd[data-open="true"]{visibility:visible}
.qd__bg{position:absolute;inset:0;background:rgba(10,10,10,.55);opacity:0;transition:.25s}
.qd[data-open="true"] .qd__bg{opacity:1}
.qd__panel{position:absolute;top:0;right:0;height:100%;width:min(480px,100%);background:var(--white);color:var(--ink);box-shadow:-20px 0 50px rgba(0,0,0,.25);transform:translateX(100%);transition:transform .3s ease;overflow-y:auto;padding:28px 28px 40px}
.qd[data-open="true"] .qd__panel{transform:none}
.qd__x{position:absolute;top:14px;right:14px;background:none;border:0;font-size:1.6rem;line-height:1;cursor:pointer;color:#666;padding:6px}
.qd__panel h3{font-size:1.7rem;margin:8px 0 6px}
.qd__panel .intro{color:#555;font-size:.95rem;margin-bottom:18px}
.qd__form{display:grid;gap:12px}
.qd__row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.qd__form label{display:grid;gap:5px;font-size:.82rem;font-weight:600;color:#333}
.qd__form input,.qd__form select,.qd__form textarea{width:100%;padding:11px 12px;border:1px solid #d6cfc4;border-radius:4px;font:inherit;font-size:.95rem;background:#fff;color:var(--ink)}
.qd__form input:focus,.qd__form select:focus,.qd__form textarea:focus{outline:2px solid var(--gold);border-color:var(--gold)}
.qd__form textarea{min-height:120px;resize:vertical}
.qd__form .btn{width:100%;margin-top:6px}
.qd__fine{font-size:.78rem;color:#777;text-align:center}
.ok{background:#eef6ea;border:1px solid #bcd9b0;color:#2d5a1f;padding:16px;border-radius:6px;margin-bottom:14px;line-height:1.5}
.err{background:#fbeeee;border:1px solid #e3b4b4;color:#8a1f1f;padding:12px;border-radius:6px;font-size:.9rem;margin-bottom:10px}
.qd__call{margin-top:18px;text-align:center;font-size:.9rem;color:#555}
.qd__call a{color:var(--gold);font-weight:600;text-decoration:none}
body.qd-open{overflow:hidden}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

@media (max-width:1000px){.cats,.grid,.pkgrid{grid-template-columns:repeat(3,1fr)}footer .w{grid-template-columns:1fr 1fr}}
@media (max-width:900px){
  .hdr nav{display:none}.hdr .burger{display:block}.hdr .logo img{height:54px}.hdr .q{display:none}
  .hero{min-height:560px}.hero .wrap{grid-template-columns:1fr;padding-top:70px;padding-bottom:40px}.hero .card{justify-self:start}
  .cats,.grid,.pkgrid{grid-template-columns:repeat(2,1fr)}.steps,.reviews,.valley,.prod,.qpage{grid-template-columns:1fr}.sec{padding:52px 0}
  .cta .btn+.btn{margin-left:0;margin-top:10px}
  .bar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:9000;background:var(--white);border-top:1px solid var(--line);padding:10px 12px;gap:10px;box-shadow:0 -8px 24px rgba(0,0,0,.08)}
  .bar .btn{flex:1;padding:13px 10px}
  body{padding-bottom:64px}
  .qd__row,.qform .row{grid-template-columns:1fr}
}
@media (max-width:520px){.grid,.pkgrid{grid-template-columns:1fr 1fr;gap:12px}.pc .bd{padding:10px 12px 12px}footer .w{grid-template-columns:1fr}}

/* category one-pagers */
.chero{min-height:520px;align-items:center}
.chero .wrap{grid-template-columns:1fr;padding-top:80px;padding-bottom:72px;max-width:1200px}
.chero h1{font-size:clamp(2.4rem,5vw,4rem);margin:12px 0 16px}
.crumbs.light,.crumbs.light a{color:#d9d2c6}
.subnavwrap{background:var(--white);border-bottom:1px solid var(--line)}
.subnavwrap .subnav{margin:0;padding:14px 0;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
.subnavwrap .subnav::-webkit-scrollbar{display:none}
.subnavwrap .subnav a{white-space:nowrap}
.pc small.opts{color:#8a7a62;font-size:.78rem;margin-top:4px}
.pc .add{margin-top:12px;align-self:flex-start}
.pc .add.added{background:var(--ink);color:var(--white);border-color:var(--ink)}
.tips{display:grid;gap:18px;margin-top:20px}
.tips b{display:block;font-size:1.02rem;margin-bottom:4px}
.tips p{color:#444;font-size:.96rem}
.qpage h2{font-family:var(--font-head)}
@media (max-width:900px){.chero{min-height:440px}.chero .wrap{padding-top:60px;padding-bottom:48px}}

.pc.noimg{background:linear-gradient(160deg,#fff,var(--cream))}
.pc.noimg .bd{padding:20px 20px 18px;gap:6px}
.pc.noimg b{font-size:1.05rem}
.pc.noimg small{font-size:.9rem;color:#4a4a4a}
.pc.noimg .pr{font-size:1.15rem;padding-top:12px}
