:root{
  --paper:#F6EFE4;
  --card:#FFFFFF;
  --maroon:#7A2436;
  --maroon-dark:#591A27;
  --brass:#A9782F;
  --ink:#2A211B;
  --ink-soft:#6B5D50;
  --line:#E4D5C1;
  --radius:6px;
  --maxw:1080px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0; background:var(--paper); color:var(--ink); font-family:'Public Sans',sans-serif; line-height:1.65; -webkit-font-smoothing:antialiased;}
h1,h2,h3{font-family:'Lora',serif; font-weight:600; line-height:1.2; margin:0 0 0.5em 0; color:var(--ink);}
p{margin:0 0 1em 0; color:var(--ink-soft); max-width:62ch;}
a{color:inherit;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 22px;}

header{position:sticky; top:0; z-index:50; background:rgba(246,239,228,0.94); backdrop-filter:blur(6px); border-bottom:1px solid var(--line);}
.nav{display:flex; align-items:center; justify-content:space-between; padding:14px 0;}
.brand{display:flex; align-items:center; gap:10px; text-decoration:none;}
.brand-mark{width:36px; height:36px; border-radius:50%; background:var(--maroon); display:flex; align-items:center; justify-content:center; color:#fff; font-family:'Lora'; font-weight:600; font-size:16px; flex-shrink:0;}
.brand-text{font-family:'Lora'; font-weight:600; font-size:16px; color:var(--ink);}
nav.links{display:none;}
.nav-right{display:flex; align-items:center; gap:12px;}
.phone-line{display:none; font-size:14px; text-decoration:none;}
.btn{display:inline-flex; align-items:center; gap:8px; padding:12px 18px; border-radius:100px; font-size:14px; font-weight:600; text-decoration:none; border:1px solid var(--maroon); cursor:pointer; font-family:'Public Sans';}
.btn-solid{background:var(--maroon); color:#fff;}
.btn-solid:hover{background:var(--maroon-dark);}
.btn-outline{background:transparent; color:var(--maroon);}
.btn-outline:hover{background:rgba(122,36,54,0.06);}
@media (min-width:860px){ nav.links{display:flex; gap:24px;} nav.links a{text-decoration:none; font-size:14px; color:var(--ink);} nav.links a:hover{color:var(--maroon);} .phone-line{display:inline;} }

/* Homepage hero */
.hero{padding:52px 0 20px 0; text-align:center;}
.badge{display:inline-block; font-size:13px; color:var(--maroon); font-weight:600; background:#F1DCE0; padding:6px 14px; border-radius:100px; margin-bottom:20px;}
.hero h1{font-size:32px; max-width:16ch; margin:0 auto 0.5em auto;}
.hero .lede{font-size:16px; max-width:48ch; margin:0 auto 26px auto;}
.hero-ctas{display:flex; flex-direction:column; gap:10px; max-width:280px; margin:0 auto;}
.hero-ctas .btn{justify-content:center;}
@media (min-width:640px){ .hero-ctas{flex-direction:row; max-width:none; justify-content:center;} }
@media (min-width:900px){ .hero h1{font-size:44px;} }

.photo-strip{display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:36px;}
.photo-block{aspect-ratio:4/3; border-radius:var(--radius); background:linear-gradient(135deg, #D9C4A6, #C7AE8B);}
.photo-block.two{background:linear-gradient(135deg, #7A2436, #591A27);}
.photo-block.three{background:linear-gradient(135deg, #8B9A8C, #6E7C6F);}

/* Interior page hero (services, about, locations) */
.page-hero{padding:40px 0 8px 0;}
.breadcrumb{font-size:13px; color:var(--ink-soft); margin-bottom:14px;}
.breadcrumb a{text-decoration:none; color:var(--brass);}
.page-hero h1{font-size:30px; max-width:20ch;}
.page-hero .lede{font-size:16px; max-width:56ch;}
@media (min-width:900px){ .page-hero h1{font-size:38px;} }

section{padding:52px 0;}
section.tight{padding:32px 0;}
.section-head{max-width:640px; margin:0 auto 34px auto; text-align:center;}
.section-head.left{text-align:left; margin:0 0 30px 0;}
.section-head .kicker{font-size:13px; color:var(--brass); font-weight:600; margin-bottom:8px;}
.section-head h2{font-size:26px;}
@media (min-width:900px){ .section-head h2{font-size:30px;} }

.trust-grid{display:grid; grid-template-columns:1fr; gap:16px;}
.trust-item{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:22px; text-align:center;}
.trust-num{font-family:'Lora'; font-size:26px; color:var(--maroon); font-weight:600; margin-bottom:6px;}
.trust-label{font-size:13.5px; color:var(--ink-soft);}
@media (min-width:700px){ .trust-grid{grid-template-columns:repeat(4,1fr);} }

.svc-grid{display:grid; grid-template-columns:1fr; gap:16px;}
.svc-card{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:24px; text-decoration:none; display:block;}
.svc-card h3{font-size:18px; margin-bottom:8px;}
.svc-card p{font-size:14.5px; margin-bottom:0;}
.svc-card .learn{font-size:13px; color:var(--maroon); font-weight:600; margin-top:10px; display:inline-block;}
@media (min-width:700px){ .svc-grid{grid-template-columns:repeat(2,1fr);} }
@media (min-width:1000px){ .svc-grid{grid-template-columns:repeat(3,1fr);} }

.process{display:grid; grid-template-columns:1fr; gap:20px;}
.step{display:flex; gap:16px; align-items:flex-start;}
.step-num{font-family:'Lora'; font-size:20px; color:var(--brass); font-weight:600; flex-shrink:0; width:34px;}
.step h3{font-size:16.5px; margin-bottom:4px;}
.step p{font-size:14px; margin-bottom:0;}
@media (min-width:900px){ .process{grid-template-columns:repeat(4,1fr);} .step{flex-direction:column;} }

.quote{background:var(--maroon); color:#fff; border-radius:var(--radius); padding:36px 28px; text-align:center;}
.quote p{color:#F1DCE0; font-family:'Lora'; font-size:19px; font-style:italic; max-width:44ch; margin:0 auto 14px auto;}
.quote .who{color:#fff; font-size:13.5px; font-weight:600;}

.loc-card{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:26px; max-width:480px;}
.loc-card .kicker{font-size:12.5px; color:var(--brass); font-weight:600; margin-bottom:10px; display:block;}
.loc-card h3{font-size:18px; margin-bottom:4px;}
.loc-meta{font-size:14px; color:var(--ink-soft); margin-bottom:4px;}

.faq-item{border-bottom:1px solid var(--line); padding:18px 0;}
.faq-item h3{font-size:16px; font-family:'Public Sans'; font-weight:600; color:var(--ink); margin-bottom:8px;}
.faq-item p{font-size:14.5px; margin-bottom:0;}

.body-copy{max-width:66ch;}
.body-copy h2{font-size:22px; margin-top:1.3em;}
.body-copy ul{padding-left:20px; color:var(--ink-soft);}
.body-copy li{margin-bottom:8px; font-size:15px;}

.cta-band{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:32px; text-align:center;}
.cta-band h2{font-size:22px;}
.cta-band .hero-ctas{margin-top:18px;}

.portal-panel{display:flex; flex-direction:column; gap:24px; background:var(--paper); border-radius:var(--radius); padding:26px; border:1px solid var(--line);}
.portal-tabs{display:flex; gap:8px; margin-bottom:18px;}
.tab-btn{padding:10px 16px; font-size:13.5px; font-weight:600; border:1px solid var(--line); cursor:pointer; background:var(--card); color:var(--ink-soft); border-radius:100px; font-family:'Public Sans';}
.tab-btn.active{background:var(--maroon); color:#fff; border-color:var(--maroon);}
.field{margin-bottom:14px;}
.field label{display:block; font-size:13px; font-weight:600; margin-bottom:6px;}
.field input, .field textarea{width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:var(--radius); font-family:'Public Sans'; font-size:14.5px; background:var(--card); color:var(--ink);}
.field textarea{resize:vertical; min-height:70px;}
.portal-result{border:1.5px dashed var(--line); border-radius:var(--radius); padding:20px; min-height:200px; display:flex; align-items:center; justify-content:center; text-align:center; background:var(--card);}
.portal-result.filled{display:block; text-align:left;}
.empty-state p{font-size:14px; margin:0;}
.empty-state .glyph{font-size:24px; margin-bottom:10px; color:var(--maroon);}
.result-id{font-size:13px; color:var(--ink-soft);}
.result-status{display:inline-block; font-size:12px; font-weight:700; padding:5px 12px; border-radius:100px; background:#F1DCE0; color:var(--maroon-dark); margin-top:6px;}
.result-device{font-family:'Lora'; font-size:19px; margin:12px 0;}
.tl-item{display:flex; gap:10px; padding:9px 0; border-top:1px solid var(--line); font-size:14px;}
.tl-item:first-child{border-top:none;}
.tl-dot{width:9px; height:9px; border-radius:50%; background:var(--brass); margin-top:5px; flex-shrink:0;}
.tl-dot.done{background:var(--maroon);}
.tl-date{color:var(--ink-soft); font-size:12px;}
.demo-note{font-size:12.5px; color:var(--ink-soft); margin-top:18px; border-top:1px solid var(--line); padding-top:14px;}
@media (min-width:900px){ .portal-panel{flex-direction:row; gap:36px;} .portal-panel > div{flex:1;} }

footer{padding:40px 0 28px 0; border-top:1px solid var(--line); text-align:center;}
footer h4{font-family:'Lora'; font-size:16px; margin-bottom:10px;}
footer p, footer a{font-size:14px; color:var(--ink-soft); display:block; text-decoration:none; margin-bottom:6px;}
.foot-links{display:flex; justify-content:center; gap:18px; flex-wrap:wrap; margin:14px 0;}
.foot-links a{display:inline; margin-bottom:0;}
.foot-bottom{margin-top:26px; padding-top:18px; border-top:1px solid var(--line); font-size:13px; color:var(--ink-soft); font-style:italic; font-family:'Lora';}
