@font-face{font-family:'Archivo Black';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/archivo-black.woff2) format('woff2');}

:root{
  --forest:#12332c; --forest-deep:#0a221d; --paper:#f4f1e8; --ink:#1b1f1c; --ink-dim:#57604f;
  --copper:#c1622f; --copper-deep:#9c4c22; --line:rgba(18,51,44,.28); --line-soft:rgba(18,51,44,.16);
}
*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;}
html,body{margin:0;padding:0;}
body{font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;}
img{display:block;max-width:100%;}
a{color:inherit;}
button{font:inherit;}
.disp{font-family:'Archivo Black',ui-sans-serif,sans-serif;text-transform:uppercase;letter-spacing:-.01em;}
.mono{font-family:ui-monospace,"SF Mono",Menlo,monospace;}
.container{max-width:1240px;margin:0 auto;padding:0 5vw;}
@media (prefers-reduced-motion:reduce){*{animation-duration:.001ms !important;transition-duration:.001ms !important;}}

/* ---------- top meta bar ---------- */
.metabar{background:var(--paper);border-bottom:1px solid var(--line);padding:8px 5vw;display:flex;justify-content:space-between;font-family:ui-monospace,monospace;font-size:10.5px;letter-spacing:.03em;color:var(--forest);gap:16px;flex-wrap:wrap;}
.metabar b{color:var(--copper);}

/* ---------- header / nav ---------- */
.site-header{display:flex;align-items:center;justify-content:space-between;padding:16px 5vw;border-bottom:2px solid var(--ink);background:#fff;position:relative;z-index:40;}
.brand-lockup{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);}
.brand-name{font-family:'Archivo Black',sans-serif;font-size:19px;color:var(--forest);line-height:1;}
.brand-name small{display:block;font-family:ui-sans-serif,sans-serif;font-size:10px;letter-spacing:.1em;color:var(--ink);font-weight:700;margin-top:3px;text-transform:uppercase;}
.menu{display:flex;gap:24px;font-size:12.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;list-style:none;margin:0;padding:0;}
.menu a{text-decoration:none;color:var(--ink);}
.menu a.active,.menu a:hover{color:var(--forest);}
.nav-toggle{display:none;appearance:none;border:1px solid var(--ink);background:#fff;padding:8px 10px;font-size:18px;cursor:pointer;}
.btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;cursor:pointer;padding:13px 22px;font-size:13px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;border:none;min-height:44px;}
.btn.copper{background:var(--copper);color:#fff;}
.btn.copper:hover{filter:brightness(1.08);}
.btn.outline{background:transparent;color:var(--ink);border:1.5px solid var(--ink);}
.btn.outline:hover{background:var(--ink);color:#fff;}
.btn.light{background:#fff;color:var(--copper);}
.btn.light:hover{background:var(--paper);}
@media (max-width:900px){
  .menu{position:fixed;inset:0 0 0 auto;width:78vw;max-width:320px;background:#fff;flex-direction:column;gap:0;padding:80px 24px 24px;transform:translateX(100%);transition:transform .25s ease;box-shadow:-8px 0 24px rgba(0,0,0,.12);}
  .menu.open{transform:translateX(0);}
  .menu a{display:block;padding:16px 0;border-bottom:1px solid var(--line-soft);}
  .nav-toggle{display:block;}
  body.no-scroll{overflow:hidden;}
}

/* ---------- home hero ---------- */
.hero-home{display:grid;grid-template-columns:1.05fr .95fr;border-bottom:2px solid var(--ink);}
.hero-home .hero-copy{background:linear-gradient(160deg,var(--forest),var(--forest-deep));color:#fff;padding:6vw 5vw;display:flex;flex-direction:column;gap:20px;justify-content:center;}
.hero-home .eyebrow{font-family:ui-monospace,monospace;font-size:10.5px;letter-spacing:.1em;color:#9fd1c0;}
.hero-home h1{font-size:clamp(1.9rem,3.2vw,2.7rem);line-height:1.05;margin:0;}
.hero-home h1 span{color:var(--copper);}
.hero-home p{font-size:14.5px;line-height:1.6;color:#dce6de;max-width:38ch;margin:0;}
.hero-home .hero-actions{display:flex;gap:14px;flex-wrap:wrap;align-items:center;}
.hero-home .hero-phone{font-family:'Archivo Black',sans-serif;font-size:clamp(1.2rem,2vw,1.5rem);color:#fff;text-decoration:none;}
.hero-home .usp-check{border-top:1px solid rgba(255,255,255,.22);border-bottom:1px solid rgba(255,255,255,.22);padding:16px 0;display:flex;gap:14px;flex-wrap:wrap;}
.hero-home .usp-check div{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.02em;}
.hero-home .usp-check div::before{content:"✓ ";color:var(--copper);}
.hero-home .photo{position:relative;min-height:320px;}
.hero-home .photo img{width:100%;height:100%;object-fit:cover;}
@media (max-width:900px){.hero-home{grid-template-columns:1fr;}.hero-home .photo{min-height:240px;order:-1;}}

/* ---------- inner-page hero ---------- */
.hero-plain{padding:5vw;border-bottom:2px solid var(--ink);display:flex;flex-direction:column;gap:14px;}
.hero-plain .eyebrow{font-family:ui-monospace,monospace;font-size:10.5px;letter-spacing:.1em;color:var(--forest);}
.hero-plain h1{font-family:'Archivo Black',sans-serif;text-transform:uppercase;font-size:clamp(1.6rem,3vw,2.3rem);line-height:1.06;margin:0;}
.hero-plain p{font-size:15px;line-height:1.6;color:var(--ink-dim);max-width:60ch;margin:0;}
.breadcrumbs{font-family:ui-monospace,monospace;font-size:10.5px;color:var(--forest);letter-spacing:.02em;}
.breadcrumbs a{text-decoration:none;color:var(--forest);}
.breadcrumbs a:hover{text-decoration:underline;}

/* ---------- usp row ---------- */
.usp-row{display:grid;grid-template-columns:repeat(4,1fr);border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);}
.usp-row .usp{padding:20px 22px;border-right:1px solid var(--line-soft);font-size:12.5px;color:var(--ink-dim);}
.usp-row .usp:last-child{border-right:none;}
.usp-row .usp b{display:block;font-family:'Archivo Black',sans-serif;font-size:14px;color:var(--ink);margin-bottom:4px;text-transform:uppercase;}
@media (max-width:820px){.usp-row{grid-template-columns:repeat(2,1fr);}.usp-row .usp:nth-child(2n){border-right:none;}}

/* ---------- section / content ---------- */
.section{padding:6vw 5vw;}
.section.alt{background:#fff;}
.section-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:28px;gap:16px;flex-wrap:wrap;}
.section-head h2{font-family:'Archivo Black',sans-serif;text-transform:uppercase;font-size:clamp(1.3rem,2vw,1.7rem);margin:0;letter-spacing:.01em;}
.section-head span{font-family:ui-monospace,monospace;font-size:10.5px;color:var(--copper);}
.content{padding:6vw 5vw;max-width:820px;}
.content h2{font-family:'Archivo Black',sans-serif;text-transform:uppercase;font-size:1.3rem;letter-spacing:.01em;margin:2em 0 .6em;}
.content h2:first-child{margin-top:0;}
.content p{font-size:15px;line-height:1.65;color:#333;}
.content ul{padding-left:1.2em;font-size:15px;line-height:1.7;color:#333;}
.notice{border:1px dashed var(--line);padding:14px 18px;font-size:13px;color:var(--forest);background:#fff;margin:1.5em 0;}

/* ---------- cards ---------- */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;}
.card{border:1px solid var(--line-soft);background:#fff;padding:24px;display:flex;flex-direction:column;gap:10px;text-decoration:none;color:var(--ink);}
.card .stars{color:var(--copper);letter-spacing:2px;font-size:14px;}
.brand-block{border-top:1px solid var(--line-soft);padding-top:22px;margin-top:26px;scroll-margin-top:90px;}
.brand-block:first-of-type{border-top:none;padding-top:0;margin-top:0;}
.brand-block-title{font-family:'Archivo Black',sans-serif;text-transform:uppercase;font-size:16px;margin:0 0 4px;letter-spacing:.01em;}
.brand-block-lead{font-size:14px;line-height:1.55;color:var(--ink-dim);margin:0 0 14px;max-width:70ch;}
.link-list{list-style:none;padding:0;margin:0 0 1.4em;display:flex;flex-wrap:wrap;gap:8px 10px;}
.link-list li{margin:0;}
.link-list a{display:inline-block;border:1px solid var(--line-soft);background:#fff;padding:7px 12px;font-size:13px;font-weight:600;text-decoration:none;color:var(--ink);}
.link-list a:hover{border-color:var(--ink);color:var(--copper);}
.yelp-embed-grid{display:flex;flex-wrap:wrap;gap:20px;padding:6vw 5vw;}
.yelp-embed-grid .yelp-review{flex:1 1 320px;max-width:380px;}
.card .icon-box{width:36px;height:36px;border:1.5px solid var(--forest);color:var(--forest);font-family:ui-monospace,monospace;font-weight:700;font-size:12px;display:grid;place-items:center;}
.card h3{font-family:'Archivo Black',sans-serif;text-transform:uppercase;font-size:14px;margin:0;letter-spacing:.01em;}
.card p{font-size:13px;line-height:1.55;color:var(--ink-dim);margin:0;}
.brand-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;}
.brand-card{border:1px solid var(--line-soft);background:#fff;display:flex;flex-direction:column;text-decoration:none;color:var(--ink);overflow:hidden;}
.brand-card-photo{aspect-ratio:4/3;overflow:hidden;}
.brand-card-photo img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease;}
.brand-card:hover .brand-card-photo img{transform:scale(1.05);}
.brand-card-body{padding:20px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px;}
.brand-card-body img{height:36px;width:auto;max-width:100%;object-fit:contain;}
.brand-card-body h3{font-family:'Archivo Black',sans-serif;text-transform:uppercase;font-size:14px;margin:2px 0 0;letter-spacing:.01em;}
.brand-card-body p{font-size:13px;line-height:1.55;color:var(--ink-dim);margin:0;}
.text-link{font-size:12.5px;font-weight:700;text-decoration:none;color:var(--copper);text-transform:uppercase;letter-spacing:.02em;}
.text-link:hover{text-decoration:underline;}

.service-photo-index{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1px;background:var(--line-soft);border:1px solid var(--line-soft);}
.service-photo-index a{background:#fff;text-decoration:none;color:var(--ink);display:flex;flex-direction:column;}
.service-photo-index .thumb{aspect-ratio:4/3;overflow:hidden;background:var(--forest);}
.service-photo-index .thumb img{width:100%;height:100%;object-fit:cover;}
.service-photo-index .thumb.placeholder{display:grid;place-items:center;}
.service-photo-index .thumb.placeholder span{color:#fff;font-family:'Archivo Black',sans-serif;font-size:13px;text-align:center;padding:0 10px;}
.service-photo-index .thumb.logo-tile{background:#fff;display:grid;place-items:center;padding:20px;}
.service-photo-index .thumb.logo-tile img{width:auto;height:auto;max-width:65%;max-height:65%;object-fit:contain;}
.service-photo-index .label{padding:14px 16px;display:flex;justify-content:space-between;align-items:center;}
.service-photo-index .label h3{font-family:'Archivo Black',sans-serif;text-transform:uppercase;font-size:13px;margin:0;letter-spacing:.01em;}
.service-photo-index .go{font-family:ui-monospace,monospace;font-size:11px;color:var(--copper);text-align:right;}

/* ---------- city photo banner (service-area detail pages) ---------- */
.city-photo-banner{margin:0;border-bottom:2px solid var(--ink);position:relative;}
.city-photo-banner img{width:100%;max-height:420px;object-fit:cover;}
.city-photo-banner figcaption{position:absolute;bottom:0;right:0;background:rgba(18,15,10,.62);color:#fff;font-size:10.5px;padding:4px 10px;font-family:ui-monospace,monospace;}
.city-photo-banner figcaption a{color:#fff;text-decoration:underline;}

/* ---------- content-grid (detail pages: article + sidebar) ---------- */
.content-grid{display:grid;grid-template-columns:1fr 300px;gap:5vw;padding:6vw 5vw;align-items:start;}
.content-grid .article h2{font-family:'Archivo Black',sans-serif;text-transform:uppercase;font-size:1.15rem;letter-spacing:.01em;margin:1.8em 0 .6em;}
.content-grid .article h2:first-child{margin-top:0;}
.content-grid .article p{font-size:15px;line-height:1.65;color:#333;}
.zip-list{font-family:ui-monospace,monospace;font-size:16px;letter-spacing:.02em;color:var(--forest);}
.service-photo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin:1.5em 0;}
.service-photo-grid:has(> :only-child){grid-template-columns:minmax(240px,360px);}
.service-photo{margin:0;border:1px solid var(--line-soft);cursor:zoom-in;}
.service-photo img{width:100%;height:auto;}
.service-photo figcaption{font-size:11.5px;color:var(--ink-dim);padding:8px 10px;font-family:ui-monospace,monospace;}
.case-note{border-left:3px solid var(--copper);background:#fff;padding:12px 16px;margin:0 0 14px;font-size:14px;line-height:1.55;color:#333;}
.case-note:last-of-type{margin-bottom:1.5em;}
.case-tag{display:inline-block;font-family:ui-monospace,monospace;font-size:10.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--copper);margin-right:8px;}
.issue-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0;border:1px solid var(--line-soft);margin:1em 0;}
.issue{background:#fff;padding:12px 14px;font-size:13px;border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);}
.issue-detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--line-soft);margin:1em 0;}
.issue-detail{background:#fff;padding:16px 18px;border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);}
@media (max-width:820px){.issue-detail-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:520px){.issue-detail-grid{grid-template-columns:1fr;}.issue-detail{border-right:none;}}
.issue-detail h3{font-family:'Archivo Black',sans-serif;text-transform:uppercase;font-size:12.5px;letter-spacing:.01em;margin:0 0 6px;color:var(--forest);}
.issue-detail p{font-size:13px;line-height:1.5;color:var(--ink-dim);margin:0;}
.side-card{border:1.5px solid var(--ink);padding:22px;background:#fff;margin-bottom:16px;}
.side-card-title{font-family:'Archivo Black',sans-serif;text-transform:uppercase;font-size:14px;margin-bottom:12px;letter-spacing:.01em;}
.side-card .btn{width:100%;margin-bottom:8px;}
.side-card ul{list-style:none;padding:0;margin:0;font-size:13px;}
.side-card ul li{padding:8px 0;border-top:1px solid var(--line-soft);}
.side-card ul li:first-child{border-top:none;}
.side-card ul a{text-decoration:none;color:var(--forest);}
.side-card ul a:hover{text-decoration:underline;}
@media (max-width:900px){.content-grid{grid-template-columns:1fr;}}

/* ---------- FAQ accordion ---------- */
.faq{border-top:1px solid var(--line-soft);}
.faq-item{border-bottom:1px solid var(--line-soft);}
.faq-q{width:100%;text-align:left;background:none;border:none;padding:16px 0;display:flex;justify-content:space-between;align-items:center;font-size:14.5px;font-weight:700;cursor:pointer;color:var(--ink);}
.faq-q span{color:var(--copper);font-family:ui-monospace,monospace;}
.faq-a{padding:0 0 16px;font-size:14px;line-height:1.6;color:var(--ink-dim);}

/* ---------- guide checklist ---------- */
.guide-checklist{list-style:none;padding:0;counter-reset:step;}
.guide-checklist li{display:flex;align-items:flex-start;gap:14px;padding:16px 0;border-top:1px dashed var(--line-soft);font-size:14.5px;line-height:1.55;color:#333;}
.guide-checklist li:first-child{border-top:none;}
.guide-checklist li::before{counter-increment:step;content:counter(step,decimal-leading-zero);width:30px;height:30px;min-width:30px;border:2px solid var(--forest);border-radius:50%;color:var(--forest);font-family:ui-monospace,monospace;font-weight:700;font-size:11px;display:flex;align-items:center;justify-content:center;flex:none;margin-top:2px;}
.check-body-wrap{display:flex;flex-direction:column;gap:4px;flex:1;}
.check-title{font-weight:700;color:var(--ink);}
.check-title::before{content:"Check: ";font-family:ui-monospace,monospace;font-size:10.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--copper);}
.check-why{color:var(--ink-dim);}
.check-why::before{content:"Why: ";font-family:ui-monospace,monospace;font-size:10.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--forest);}

/* ---------- process steps (home) ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line-soft);border:1px solid var(--line-soft);}
.step{background:#fff;padding:26px 20px;}
.step .num{font-family:'Archivo Black',sans-serif;font-size:26px;color:var(--copper);}
.step h3{font-family:'Archivo Black',sans-serif;text-transform:uppercase;font-size:13px;margin:10px 0 6px;letter-spacing:.01em;}
.step p{font-size:13px;color:var(--ink-dim);margin:0;line-height:1.5;}
@media (max-width:820px){.steps{grid-template-columns:1fr 1fr;}}

/* ---------- brand strip ---------- */
.brand-strip{border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);background:#fff;padding:36px 5vw;}
.brand-track{display:flex;flex-wrap:wrap;justify-content:center;gap:36px 56px;align-items:center;}
.brand-track img{height:74px;width:auto;max-width:190px;object-fit:contain;}
.brand-track span{font-size:20px;}

/* ---------- premium brand teaser ---------- */
.premium-band{background:var(--forest);color:#fff;padding:6vw 5vw;}
.premium-band .section-head h2{color:#fff;}
.premium-band .section-head span{color:#9fd1c0;}
.premium-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.premium-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.18);text-decoration:none;color:#fff;display:block;overflow:hidden;}
.premium-card .thumb{aspect-ratio:4/3;overflow:hidden;background:#fff;display:grid;place-items:center;padding:20px;}
.premium-card .thumb img{max-width:60%;max-height:60%;width:auto;height:auto;object-fit:contain;transition:transform .3s ease;}
.premium-card:hover .thumb img{transform:scale(1.08);}
.premium-card .label{padding:14px 16px;display:flex;justify-content:space-between;align-items:center;}
.premium-card h3{font-family:'Archivo Black',sans-serif;text-transform:uppercase;font-size:14px;margin:0;}
@media (max-width:820px){.premium-grid{grid-template-columns:1fr;}}

/* ---------- CTA band ---------- */
.cta-band{background:var(--copper);color:#fff;padding:30px 5vw;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:18px;}
.cta-band h2{font-family:'Archivo Black',sans-serif;text-transform:uppercase;font-size:clamp(1.2rem,2vw,1.6rem);line-height:1.1;margin:0;}
.cta-band .phone{font-family:'Archivo Black',sans-serif;font-size:clamp(1.3rem,2.2vw,1.8rem);color:#fff;text-decoration:none;}
.cta-band-actions{display:flex;align-items:center;gap:22px;flex-wrap:wrap;}
.phone-group{display:flex;flex-direction:column;gap:2px;}
.phone-group .text-link{color:#ffe4d3;font-weight:400;text-transform:none;letter-spacing:0;text-decoration:underline;}

/* ---------- footer ---------- */
.footer{background:var(--forest-deep);color:#cfe0d5;padding:36px 5vw 24px;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:5vw;padding-bottom:24px;}
.footer-heading{font-family:'Archivo Black',sans-serif;text-transform:uppercase;font-size:12px;letter-spacing:.04em;color:#fff;margin-bottom:14px;}
.footer ul{list-style:none;padding:0;margin:0;font-size:13px;}
.footer ul li{padding:5px 0;}
.footer a{text-decoration:none;color:#cfe0d5;}
.footer a:hover{color:#fff;}
.footer-brand b{font-family:'Archivo Black',sans-serif;font-size:16px;color:#fff;display:block;}
.footer-bottom{border-top:1px solid rgba(255,255,255,.18);padding-top:18px;display:flex;justify-content:space-between;font-size:12px;flex-wrap:wrap;gap:10px;}
@media (max-width:820px){.footer-grid{grid-template-columns:1fr 1fr;}}

/* ---------- mobile CTA bar ---------- */
.mobile-bar{display:none;}
@media (max-width:820px){
  .mobile-bar{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:50;background:var(--ink);}
  .mobile-bar a{flex:1;text-align:center;padding:14px 0;color:#fff;text-decoration:none;font-size:12.5px;font-weight:700;text-transform:uppercase;border-right:1px solid rgba(255,255,255,.15);}
  .mobile-bar a:last-child{border-right:none;}
  .mobile-bar a.book{background:var(--copper);}
  body{padding-bottom:52px;}
}

/* ---------- photo lightbox ---------- */
.lightbox{position:fixed;inset:0;background:rgba(10,15,12,.92);z-index:100;display:none;align-items:center;justify-content:center;padding:5vw;cursor:zoom-out;}
.lightbox.open{display:flex;}
.lightbox img{max-width:100%;max-height:88vh;box-shadow:0 20px 60px rgba(0,0,0,.5);}
.lightbox .lb-caption{position:absolute;bottom:24px;left:0;right:0;text-align:center;color:#fff;font-family:ui-monospace,monospace;font-size:12px;}
.lightbox .lb-close{position:absolute;top:20px;right:24px;color:#fff;font-size:28px;background:none;border:none;cursor:pointer;line-height:1;}
