@charset "UTF-8";
:root { --cream:#f7f3ec; --ink:#24493f; --text:#303935; --copper:#a8492c; --green:#2f665d; --line:#dcded6; --muted:#54635c; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; color:var(--text); background:var(--cream); font-synthesis:none; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
* { box-sizing:border-box; }
body { margin:0; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
svg { display:block; }
::selection { background:#f4df9f; color:var(--ink); }
:focus-visible { outline:3px solid var(--copper); outline-offset:5px; }
.page-shell,.footer-inner { max-width:1600px; padding:0 5.4%; margin:0 auto; }
.skip-link { position:fixed; top:12px; left:12px; z-index:20; padding:14px 20px; background:var(--ink); color:white; border-radius:6px; transform:translateY(-160%); }
.skip-link:focus { transform:translateY(0); }
.site-header { min-height:112px; display:flex; align-items:center; justify-content:space-between; gap:24px; border-bottom:1px solid var(--line); }
.brand { display:inline-flex; align-items:center; gap:12px; min-height:48px; }
.brand-mark { width:46px; height:46px; }
.brand-name { display:flex; flex-direction:column; gap:4px; font-size:18px; font-weight:650; line-height:1.1; letter-spacing:-.5px; }
.brand-name>span { font-size:11px; letter-spacing:1.55px; text-transform:uppercase; font-weight:500; }
.main-nav { display:flex; gap:22px; align-items:center; font-size:13px; }
.main-nav a,.header-phone { min-height:48px; display:inline-flex; align-items:center; }
.main-nav a:hover { text-decoration:underline; text-underline-offset:5px; }
.header-phone { font-size:13px; font-weight:550; gap:10px; }
.header-phone svg { width:19px; height:19px; }
.short-phone { display:none; }
.audience-paths { display:grid; grid-template-columns:1fr 1fr; gap:16px; padding-top:24px; }
.audience-path { display:flex; align-items:center; gap:17px; min-height:102px; border:1px solid transparent; border-radius:14px; padding:20px 24px; transition:border-color .18s ease; }
.homeowner-path { background:#f3e5bb; }
.business-path { background:#e4ece5; }
.audience-path:hover { border-color:var(--ink); }
.path-icon-wrap { display:grid; place-items:center; width:42px; height:42px; flex-shrink:0; }
.path-icon { width:32px; height:32px; }
.path-label { font-size:22px; font-weight:500; letter-spacing:-.6px; }
.path-label small { display:block; font-size:12px; line-height:1.5; font-weight:400; letter-spacing:0; margin-top:5px; }
.path-arrow { width:22px; height:22px; margin-left:auto; flex-shrink:0; }
.hero { display:grid; grid-template-columns:1.12fr 1fr; align-items:center; gap:3.5%; min-height:678px; padding:60px 0 66px; }
.hero-copy { position:relative; z-index:1; padding:0 0 10px; }
.eyebrow,.section-label { font-size:11px; text-transform:uppercase; letter-spacing:1.6px; font-weight:500; line-height:1.7; }
.eyebrow { margin:0 0 25px; }
h1,h2 { font-family:"Iowan Old Style","Baskerville","Palatino Linotype",Georgia,serif; font-weight:400; color:var(--ink); }
h1 { font-size:clamp(54px,6.2vw,92px); line-height:1.03; letter-spacing:-.068em; margin:0 0 28px; }
h1 em { font-size:.84em; font-weight:400; white-space:nowrap; }
.call-button { display:inline-flex; min-height:62px; align-items:center; gap:25px; border-radius:50px; background:var(--copper); color:#fff; padding:9px 10px 9px 24px; font-size:14px; font-weight:500; transition:background .18s ease,transform .18s ease; }
.call-button:hover { background:#8d3c25; transform:translateY(-2px); }
.button-icon { width:42px; height:42px; display:grid; place-items:center; border:1px solid #ffffff66; border-radius:50%; }
.button-icon svg { width:21px; height:21px; }
.scope-note { margin:18px 0 0; font-size:12px; color:var(--muted); }
.hero-visual { position:relative; align-self:stretch; min-height:550px; margin:0 14px 0 0; }
.hero-picture { margin:0; position:absolute; inset:12px 0 0; border-radius:125px 18px 18px 18px; overflow:hidden; background:#ddd6c5; }
.hero-picture img { width:100%; height:100%; object-fit:cover; object-position:57% 50%; }
.hero-picture figcaption { position:absolute; bottom:16px; right:16px; background:#f7f3eced; color:var(--ink); padding:7px 10px; border-radius:6px; font-size:10px; letter-spacing:.2px; }
.sun-disc { position:absolute; width:210px; height:210px; border-radius:50%; background:#ecd393; top:-21px; right:-25px; }
.service-sections { display:grid; grid-template-columns:1fr 1fr; gap:24px; padding:0 0 66px; scroll-margin-top:28px; }
.service-section { display:flex; flex-direction:column; background:#fff; border:1px solid #e6e4dc; border-radius:18px; padding:36px; scroll-margin-top:28px; }
.section-label { display:block; color:var(--green); margin-bottom:15px; }
.service-section h2 { font-size:clamp(34px,3.3vw,48px); line-height:1.1; letter-spacing:-1.7px; margin:0 0 26px; }
.equipment-list { list-style:none; padding:0; margin:0 0 25px; display:grid; }
.equipment-list li { padding:14px 0; border-top:1px solid var(--line); font-size:16px; line-height:1.5; }
.section-call { display:inline-flex; align-items:center; align-self:flex-start; gap:24px; min-height:48px; font-size:13px; font-weight:500; border-bottom:1px solid currentColor; margin-top:auto; }
.section-call:hover { color:var(--copper); }
.questions-section { display:grid; grid-template-columns:1fr 1.25fr; gap:60px; padding:35px 0 80px; scroll-margin-top:28px; }
.questions-heading .eyebrow { color:var(--green); margin-bottom:12px; }
.questions-heading h2 { font-size:52px; letter-spacing:-2px; line-height:1.1; margin:0; }
.questions-list details { border-top:1px solid var(--line); }
.questions-list details:last-child { border-bottom:1px solid var(--line); }
.questions-list summary { display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:76px; padding:18px 0; list-style:none; font-size:15px; line-height:1.5; font-weight:500; cursor:pointer; }
.questions-list summary::-webkit-details-marker { display:none; }
.expand-icon { position:relative; display:block; width:18px; height:18px; flex-shrink:0; }
.expand-icon:before,.expand-icon:after { content:""; position:absolute; background:currentColor; }
.expand-icon:before { top:8px; left:2px; width:14px; height:1px; }
.expand-icon:after { top:2px; left:8px; height:14px; width:1px; }
details[open] .expand-icon:after { display:none; }
.questions-list p { font-size:14px; line-height:1.8; margin:0 26px 22px 0; color:var(--muted); }
.contact-section { background:#efe2c3; border-radius:20px; padding:48px 52px; display:flex; align-items:center; justify-content:space-between; gap:40px; margin-bottom:70px; scroll-margin-top:28px; }
.contact-section .eyebrow { margin-bottom:14px; }
.contact-section h2 { font-size:clamp(42px,4.5vw,65px); line-height:1.02; letter-spacing:-2.8px; margin:0 0 24px; }
.contact-section h2 em { font-weight:400; }
.contact-section p:not(.eyebrow) { font-size:14px; line-height:1.7; margin:0; }
.contact-section .contact-detail { margin-top:14px !important; }
.contact-section .call-button { flex-shrink:0; }
.site-footer { background:var(--ink); color:var(--cream); }
.footer-inner { min-height:115px; display:flex; align-items:center; justify-content:space-between; gap:20px; font-size:12px; letter-spacing:.15px; }
.site-footer a { display:inline-flex; align-items:center; gap:18px; min-height:48px; }
.site-footer a:hover { text-decoration:underline; text-underline-offset:5px; }
.site-footer a:focus-visible { outline-color:var(--cream); }
.mobile-call-bar { display:none; }
.mobile-nav { display:none; }
.main-nav a[aria-current="page"],.mobile-nav a[aria-current="page"] { color:var(--copper); text-decoration:underline; text-underline-offset:7px; }
.action-row { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.action-row .call-button { gap:18px; padding:18px 24px; }
.secondary-button { display:inline-flex; align-items:center; justify-content:center; gap:18px; min-height:58px; border:1px solid #aab6ab; border-radius:50px; padding:16px 22px; font-size:13px; font-weight:500; }
.secondary-button:hover { background:#e9ece3; border-color:var(--ink); }
.area-link { display:inline-flex; gap:16px; align-items:center; min-height:44px; font-size:12px; color:var(--ink); text-decoration:underline; text-underline-offset:4px; }
.hero-area { font-size:14px; line-height:1.7; margin:18px 0 0; }
.hero .audience-paths { gap:12px; padding-top:24px; }
.hero .audience-path { min-height:112px; padding:18px 16px; gap:12px; }
.hero .path-label { font-size:18px; }
.hero .path-label small { font-size:11px; }
.hero .path-arrow { width:18px; height:18px; font-size:18px; }
.hero { min-height:700px; padding-top:44px; }
.owner-intro { display:flex; align-items:center; justify-content:space-between; gap:48px; background:#e4ece5; padding:44px; border-radius:18px; margin-bottom:64px; }
.owner-intro>div { max-width:740px; }
.owner-intro .eyebrow { margin-bottom:14px; }
.owner-intro h2 { font-size:52px; letter-spacing:-2px; margin:0 0 22px; }
.owner-intro p:not(.eyebrow) { font-size:17px; line-height:1.8; margin:0 0 20px; }
.owner-photo { margin:0; width:32%; flex-shrink:0; }
.owner-photo img { width:100%; height:auto; border-radius:16px; }
.coverage-section,.small-contact { display:flex; align-items:center; justify-content:space-between; gap:40px; padding:48px 0; margin-bottom:35px; border-top:1px solid var(--line); scroll-margin-top:28px; }
.coverage-section h2 { font-size:50px; line-height:1.08; letter-spacing:-2px; margin:0 0 22px; }
.coverage-section h2 em { font-weight:400; }
.coverage-section .eyebrow { margin-bottom:16px; }
.coverage-section p:not(.eyebrow),.small-contact p { font-size:15px; line-height:1.8; max-width:600px; margin:0; }
.coverage-section>a,.small-contact>a { flex-shrink:0; }
.small-contact { margin-bottom:45px; }
.small-contact h2 { font-size:38px; line-height:1.15; letter-spacing:-1px; margin:0 0 16px; }
.page-intro { max-width:1050px; padding:70px 0 54px; }
.page-intro h1 { font-size:clamp(49px,6.1vw,84px); line-height:1.08; }
.page-lead { font-size:17px; line-height:1.8; max-width:650px; margin:0 0 28px; }
.equipment-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin:0 0 56px; }
.equipment-cards.two-columns { grid-template-columns:repeat(2,1fr); }
.equipment-cards article { background:#fff; padding:32px; border:1px solid #e6e4dc; border-radius:18px; }
.equipment-cards h2 { font-size:34px; letter-spacing:-1.2px; line-height:1.1; margin:0 0 22px; }
.equipment-cards p { font-size:14px; line-height:1.9; margin:0; }
.about-story { display:flex; align-items:center; justify-content:space-between; gap:44px; margin:0 0 62px; max-width:1050px; }
.story-text { font-family:"Iowan Old Style","Baskerville",Georgia,serif; font-size:32px; line-height:1.55; letter-spacing:-.65px; color:var(--ink); margin:0 0 24px; max-width:850px; }
.about-story .section-call { margin-top:20px; }
.about-paths { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-bottom:60px; }
.about-paths a { display:block; position:relative; padding:28px; background:#fff; border:1px solid #e6e4dc; border-radius:16px; }
.about-paths a>span:first-child { display:block; font-size:23px; letter-spacing:-.6px; }
.about-paths small { display:block; font-size:13px; line-height:1.5; margin-top:10px; }
.about-paths a>span:last-child { position:absolute; top:28px; right:24px; }
.contact-grid { display:grid; grid-template-columns:1fr 1fr; align-items:start; gap:60px; margin:0 0 70px; }
.request-panel { background:#fff; border:1px solid #e6e4dc; border-radius:20px; padding:38px; scroll-margin-top:24px; }
.request-panel h2 { font-size:46px; letter-spacing:-1.7px; line-height:1.1; margin:0 0 22px; }
.request-panel p:not(.eyebrow) { font-size:15px; line-height:1.8; margin:0 0 28px; }
.request-panel .call-button { gap:18px; padding:18px 24px; }
.contact-information h2 { font-size:46px; line-height:1.1; letter-spacing:-1.5px; margin:0 0 20px; }
.contact-information h2 em { font-weight:400; }
.contact-information>section,.contact-detail { margin-bottom:32px; scroll-margin-top:24px; }
.contact-information p { font-size:15px; line-height:1.8; margin:0; }
.contact-information h3,.contact-detail h3 { font-size:16px; font-weight:600; margin:0 0 16px; }
.contact-information ul { padding-left:20px; font-size:14px; line-height:2; margin:0; }
.contact-detail { margin-top:28px; }
.contact-detail a { text-decoration:underline; text-underline-offset:4px; overflow-wrap:anywhere; }
.process-section { margin-bottom:60px; }
.process-section h2,.recent-work h2 { font-size:46px; margin:0 0 28px; }
.process-section ol { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; padding:0; list-style:none; }
.process-section li { border-top:1px solid var(--line); padding-top:20px; }
.process-section li>span { color:var(--copper); font-size:14px; }
.process-section h3 { font-size:18px; line-height:1.5; font-weight:500; }
.work-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-bottom:60px; }
.work-grid figure { margin:0; }
.work-grid img { border-radius:16px; width:100%; height:auto; }
.work-grid h3 { font-size:19px; }
.work-grid p { font-size:14px; line-height:1.8; }
@media (max-width:1100px) {
  .main-nav { display:none; }
  .mobile-nav { display:block; position:relative; margin-left:auto; z-index:30; }
  .mobile-nav summary { display:flex; align-items:center; justify-content:center; gap:10px; min-width:64px; min-height:48px; font-size:13px; cursor:pointer; list-style:none; }
  .mobile-nav summary::-webkit-details-marker { display:none; }
  .menu-lines { width:15px; height:9px; border-top:1px solid currentColor; border-bottom:1px solid currentColor; }
  .mobile-nav nav { display:flex; flex-direction:column; position:absolute; top:calc(100% + 8px); right:0; min-width:210px; padding:12px; border:1px solid var(--line); border-radius:12px; background:#fff; box-shadow:0 12px 28px #24493f12; }
  .mobile-nav nav a { display:flex; align-items:center; min-height:48px; padding:10px 14px; font-size:14px; }
  .hero .audience-path { padding-inline:14px; }
  .hero .path-label { font-size:16px; }
}
.back-link { min-height:48px; display:inline-flex; align-items:center; gap:14px; font-size:13px; }
.privacy-content { max-width:760px; margin:0 auto; padding:64px 0 80px; }
.privacy-content h1 { font-size:clamp(42px,5.5vw,70px); margin-bottom:45px; }
.privacy-content h2 { font-family:inherit; font-size:17px; font-weight:600; margin:30px 0 10px; }
.privacy-content p:not(.eyebrow) { font-size:15px; line-height:1.8; margin:0; color:var(--muted); }
.privacy-content a { color:var(--ink); text-decoration:underline; text-underline-offset:4px; }
@media (min-width:1600px) { .page-shell,.footer-inner { padding-inline:86px; } }
@media (max-width:1150px) {
  .main-nav { gap:20px; }
  .path-label { font-size:20px; }
  .hero { min-height:620px; padding-block:48px 55px; }
  h1 { font-size:clamp(50px,6.2vw,72px); }
  .hero-visual { min-height:510px; margin-right:10px; }
  .hero-picture { border-top-left-radius:105px; }
  .sun-disc { width:180px; height:180px; right:-20px; }
  .contact-section { padding:42px 36px; }
}
@media (max-width:900px) {
  .main-nav { display:none; }
  .path-icon-wrap { display:none; }
  .questions-section { gap:35px; }
  .questions-heading h2 { font-size:44px; }
  .contact-section { gap:25px; }
  .contact-section .call-button { gap:12px; padding-left:18px; font-size:13px; }
  .equipment-cards { grid-template-columns:1fr; }
  .hero .audience-path { min-height:120px; }
  .hero .path-label { font-size:15px; }
}
@media (max-width:760px) {
  html { scroll-padding-bottom:calc(96px + env(safe-area-inset-bottom)); }
  body { padding-bottom:calc(76px + env(safe-area-inset-bottom)); }
  a,summary { scroll-margin-bottom:calc(96px + env(safe-area-inset-bottom)); }
  .page-shell,.footer-inner { padding-inline:6%; }
  .site-header { min-height:92px; gap:16px; }
  .hero .hero-phone-number { display:none; }
  .hero .action-row .call-button { min-height:58px; padding:17px 20px; gap:16px; }
  .secondary-button { padding:16px 18px; min-height:58px; gap:12px; font-size:12px; }
  .mobile-nav summary { font-size:12px; min-width:57px; gap:8px; }
  .brand { gap:10px; }
  .brand-mark { width:39px; height:39px; }
  .brand-name { font-size:16px; }
  .brand-name>span { font-size:10px; letter-spacing:1.1px; }
  .desktop-phone { display:none; }
  .short-phone { display:inline; }
  .header-phone { font-size:13px; gap:8px; }
  .header-phone svg { width:17px; height:17px; }
  .audience-paths { gap:10px; padding-top:18px; }
  .audience-path { position:relative; align-items:flex-start; justify-content:center; flex-direction:column; min-height:130px; gap:10px; border-radius:12px; padding:15px 14px; }
  .path-icon-wrap { display:block; width:26px; height:26px; }
  .path-icon { width:26px; height:26px; }
  .path-label { font-size:16px; letter-spacing:-.4px; }
  .path-label small { font-size:11px; margin-top:5px; letter-spacing:0; }
  .path-arrow { position:absolute; width:17px; height:17px; top:20px; right:14px; }
  .hero { display:flex; flex-direction:column; align-items:stretch; min-height:auto; gap:42px; padding-block:42px 38px; }
  .hero .audience-path { padding:17px 14px; min-height:126px; justify-content:center; }
  .hero .path-label { font-size:15px; }
  .hero .path-label small { font-size:11px; }
  .hero .path-arrow { top:12px; right:12px; }
  .owner-intro { display:block; padding:30px 26px; margin-bottom:40px; }
  .owner-intro h2 { font-size:42px; }
  .owner-intro p:not(.eyebrow) { font-size:15px; }
  .owner-photo { width:100%; max-width:400px; margin-top:28px; }
  .coverage-section,.small-contact { display:block; padding-block:36px; margin-bottom:24px; }
  .coverage-section h2 { font-size:41px; }
  .coverage-section>a,.small-contact>a { margin-top:24px; }
  .small-contact h2 { font-size:34px; }
  .page-intro { padding-block:44px 34px; }
  .page-intro h1 { font-size:clamp(43px,10.7vw,70px); }
  .page-lead { font-size:15px; margin-bottom:25px; }
  .equipment-cards,.equipment-cards.two-columns { grid-template-columns:1fr; gap:16px; margin-bottom:38px; }
  .equipment-cards article { padding:27px 25px; }
  .equipment-cards h2 { font-size:32px; }
  .about-story { display:block; margin-bottom:40px; }
  .story-text { font-size:26px; line-height:1.5; }
  .about-paths { gap:12px; margin-bottom:40px; }
  .about-paths a { padding:22px 18px; }
  .about-paths a>span:first-child { font-size:18px; padding-right:10px; }
  .about-paths a>span:last-child { right:14px; top:16px; }
  .about-paths small { font-size:11px; }
  .contact-grid { grid-template-columns:1fr; gap:36px; margin-bottom:40px; }
  .request-panel { padding:30px 24px; }
  .request-panel h2 { font-size:38px; }
  .request-panel .call-button { font-size:13px; padding-inline:20px; gap:15px; }
  .contact-information h2 { font-size:40px; }
  .process-section ol,.work-grid { grid-template-columns:1fr; }
  .hero-copy { padding:0; }
  .eyebrow { margin-bottom:20px; font-size:10px; letter-spacing:1.4px; }
  h1 { font-size:clamp(45px,10.6vw,75px); letter-spacing:-.068em; margin-bottom:23px; }
  h1 em { font-size:.83em; }
  .call-button { font-size:13px; min-height:58px; padding-left:22px; gap:25px; }
  .button-icon { height:39px; width:39px; }
  .scope-note { font-size:11px; margin-top:16px; }
  .hero-visual { min-height:410px; height:410px; margin:0 4px 0 0; }
  .hero-picture { inset:8px 0 0; border-radius:90px 15px 15px 15px; }
  .hero-picture img { object-position:56% 50%; }
  .sun-disc { width:150px; height:150px; right:-15px; top:-12px; }
  .service-sections { grid-template-columns:1fr; gap:16px; padding-bottom:44px; }
  .service-section { padding:29px 25px; scroll-margin-top:20px; }
  .service-section h2 { font-size:38px; }
  .equipment-list li { font-size:15px; }
  .questions-section { grid-template-columns:1fr; gap:28px; padding:15px 0 45px; }
  .questions-heading h2 { font-size:42px; }
  .questions-list summary { font-size:14px; }
  .contact-section { padding:32px 26px; display:block; margin-bottom:44px; scroll-margin-top:20px; }
  .contact-section h2 { font-size:45px; }
  .contact-section .call-button { margin-top:28px; gap:25px; padding-left:20px; }
  .footer-inner { min-height:135px; font-size:10px; letter-spacing:0; gap:10px; }
  .site-footer a { gap:8px; }
  .mobile-call-bar { display:grid; grid-template-columns:1.1fr 1fr; gap:8px; position:fixed; z-index:10; left:0; right:0; bottom:0; border-top:1px solid #d8d5cb; padding:10px 6% calc(10px + env(safe-area-inset-bottom)); background:#f7f3ecf5; }
  .mobile-call-bar a { display:flex; align-items:center; justify-content:center; gap:20px; min-height:48px; background:var(--copper); color:#fff; border-radius:50px; font-size:13px; font-weight:500; }
  .mobile-call-bar .mobile-request { background:transparent; border:1px solid var(--copper); color:var(--ink); gap:8px; font-size:12px; }
}
@media (max-width:370px) {
  .brand-name { font-size:14px; }
  .brand-name>span { font-size:9px; }
  .brand-mark { width:34px; height:34px; }
  .audience-path { padding-inline:12px; }
  .path-label { font-size:14px; }
  .path-label small { font-size:10px; }
  h1 { font-size:12.8vw; }
  .hero-visual { height:370px; min-height:370px; }
  .page-intro h1 { font-size:12.8vw; }
  .hero .path-label { font-size:14px; }
  .hero .path-label small { font-size:10px; }
  .hero .audience-path { padding-inline:12px; }
  .mobile-call-bar a { font-size:11px; }
  .footer-inner { flex-direction:column; justify-content:center; align-items:flex-start; gap:3px; }
  .contact-section { padding-inline:22px; }
  .contact-section .call-button { gap:15px; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation-duration:.01ms !important; transition-duration:.01ms !important; scroll-behavior:auto !important; } }
