@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/barlow-condensed-500.woff2') format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/barlow-condensed-600.woff2') format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/barlow-condensed-700.woff2') format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:800;font-display:swap;src:url('fonts/barlow-condensed-800.woff2') format('woff2')}
@font-face{font-family:'Manrope';font-style:normal;font-weight:400 700;font-display:swap;src:url('fonts/manrope-latin.woff2') format('woff2')}

:root {
  --font-display: 'Barlow Condensed';
  --font-body: 'Manrope';
  --red: #c82924;
  --red-bright: #e3382f;
  --ink: #171818;
  --charcoal: #222323;
  --sand: #d7c5a3;
  --cream: #f4f0e8;
  --white: #fff;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--cream); color: var(--ink); font-family: var(--font-body), sans-serif; }
a { color: inherit; text-decoration: none; }

.site-header {
  position: fixed; inset: 0 0 auto; z-index: 50; height: 96px; padding: 0 clamp(24px, 5vw, 82px);
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; color: white;
  border-bottom: 1px solid rgba(255,255,255,.2); transition: height .35s ease, background .35s ease;
}
.site-header.is-scrolled { height: 76px; background: rgba(20,21,21,.96); backdrop-filter: blur(14px); }
.brand { display: inline-flex; align-items: center; width: max-content; }
.brand-primary-logo { display:block; width:clamp(205px,16vw,275px); height:auto; mix-blend-mode:screen; }
.brand-mark { width: 54px; height: 54px; display:block; flex:0 0 auto; border-radius:13px; overflow:hidden; box-shadow:0 8px 26px rgba(0,0,0,.24), inset 0 0 0 1px rgba(255,255,255,.08); transition:transform .25s ease, box-shadow .25s ease; }
.brand-mark img { display:block; width:100%; height:100%; object-fit:cover; }
.brand:hover .brand-mark { transform:translateY(-2px); box-shadow:0 12px 30px rgba(0,0,0,.32), inset 0 0 0 1px rgba(255,255,255,.12); }
.brand-copy { display: flex; flex-direction: column; line-height: .9; }
.brand-copy strong { font: 800 24px/1 var(--font-display); letter-spacing: .04em; }
.brand-copy small { margin-top: 5px; font-size: 8px; letter-spacing: .22em; }
.main-nav { display: flex; gap: clamp(20px, 2.5vw, 40px); align-items: center; }
.main-nav a, .nav-services-toggle { position: relative; font:700 12px var(--font-body); letter-spacing:.08em; text-transform:uppercase; }
.main-nav a::after, .nav-services-toggle::after { content:""; position:absolute; left:0; right:100%; bottom:-9px; height:2px; background:var(--red-bright); transition:right .25s ease; }
.main-nav a:hover::after, .main-nav a:focus-visible::after, .nav-services-toggle:hover::after, .nav-services-toggle:focus-visible::after, .nav-dropdown.is-open > .nav-services-toggle::after { right:0; }
.nav-dropdown { position:relative; }
.nav-services-toggle { display:flex; align-items:center; gap:7px; padding:0; border:0; background:transparent; color:inherit; cursor:pointer; }
.nav-services-toggle span { color:var(--red-bright); font-size:15px; line-height:1; transition:transform .2s ease; }
.nav-dropdown.is-open .nav-services-toggle span { transform:rotate(180deg); }
.nav-dropdown-panel { position:absolute; top:calc(100% + 20px); left:50%; width:470px; padding:24px; display:grid; grid-template-columns:1fr 1fr; gap:0; background:#191a1a; border-top:3px solid var(--red); box-shadow:0 20px 55px rgba(0,0,0,.3); transform:translate(-50%,12px); opacity:0; visibility:hidden; pointer-events:none; transition:.22s ease; }
.nav-dropdown:hover .nav-dropdown-panel, .nav-dropdown:focus-within .nav-dropdown-panel, .nav-dropdown.is-open .nav-dropdown-panel { transform:translate(-50%,0); opacity:1; visibility:visible; pointer-events:auto; }
.nav-dropdown-panel a { padding:13px 12px; border-bottom:1px solid #363737; font-size:10px; color:#d8d7d3; }
.nav-dropdown-panel a::after { display:none; }
.nav-dropdown-panel a:hover { color:white; background:#252626; }
.nav-dropdown-panel .all-services-link { grid-column:1/-1; display:flex; justify-content:space-between; color:white; background:#252626; border-bottom-color:var(--red); }
.nav-dropdown-panel .all-services-link span { color:var(--red-bright); }
.header-cta { justify-self: end; display:flex; align-items:center; gap:18px; padding:14px 18px; border:1px solid rgba(255,255,255,.5); font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.09em; transition:.25s ease; }
.header-cta:hover { background:var(--red); border-color:var(--red); transform:translateY(-2px); }
.header-cta span { font-size:17px; }
.menu-toggle { display:none; }

.hero { position:relative; min-height: 100svh; height: 920px; max-height: 1000px; color:white; display:flex; align-items:center; overflow:hidden; background:#333; }
.hero-media, .hero-placeholder, .hero-overlay { position:absolute; inset:0; }
.hero-placeholder { background: #2b2d2b url('media/western-roofing-hero-temp.png') center center / cover no-repeat; transform:scale(1.04); animation:heroDrift 16s ease-in-out infinite alternate; }
.hero-overlay { background:linear-gradient(90deg,rgba(12,13,13,.9) 0%,rgba(12,13,13,.62) 47%,rgba(12,13,13,.14) 78%), linear-gradient(0deg,rgba(12,13,13,.75),transparent 35%); }
.hero-content { position:relative; z-index:2; width:min(900px, 74vw); margin-left:clamp(24px, 8.6vw, 140px); padding-top:70px; }
.eyebrow { display:flex; align-items:center; gap:12px; margin:0 0 22px; font-size:11px; font-weight:700; letter-spacing:.19em; text-transform:uppercase; color:#e8dfcf; }
.eyebrow span { width:38px; height:2px; background:var(--red-bright); }
h1,h2 { font-family:var(--font-display),sans-serif; text-transform:uppercase; }
h1 { max-width:840px; margin:0; font-size:clamp(68px,8.7vw,138px); line-height:.78; letter-spacing:-.035em; font-weight:700; text-wrap:balance; }
h1 em { display:block; color:var(--red-bright); font-style:normal; }
.hero-lede { max-width:670px; margin:34px 0 0; font-size:clamp(15px,1.25vw,19px); line-height:1.75; color:rgba(255,255,255,.82); }
.hero-actions { display:flex; align-items:center; gap:18px; margin-top:38px; }
.button { min-height:58px; display:inline-flex; align-items:center; justify-content:center; gap:24px; padding:0 27px; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.1em; transition:transform .25s ease, background .25s ease, border-color .25s ease; }
.button:hover { transform:translateY(-3px); }
.button-primary { background:var(--red); border:1px solid var(--red); }
.button-primary:hover { background:var(--red-bright); border-color:var(--red-bright); }
.button-primary span { font-size:18px; }
.button-ghost { border:1px solid rgba(255,255,255,.36); }
.button-ghost:hover { border-color:white; background:rgba(255,255,255,.08); }
.play { width:25px; height:25px; border:1px solid rgba(255,255,255,.5); border-radius:50%; display:grid; place-items:center; font-size:7px; padding-left:1px; }
.hero-proof { position:absolute; z-index:3; left:clamp(24px,8.6vw,140px); bottom:28px; display:flex; }
.hero-proof div { min-width:165px; padding:0 32px; border-left:1px solid rgba(255,255,255,.25); display:flex; flex-direction:column; }
.hero-proof div:first-child { padding-left:0; border-left:0; }
.hero-proof strong { font:600 21px/1.2 var(--font-display); text-transform:uppercase; }
.hero-proof span { margin-top:4px; color:rgba(255,255,255,.56); font-size:9px; text-transform:uppercase; letter-spacing:.1em; }
.scroll-cue { position:absolute; z-index:3; right:clamp(24px,4.7vw,76px); bottom:24px; display:flex; flex-direction:column; align-items:center; gap:12px; }
.scroll-cue span { font-size:8px; letter-spacing:.25em; writing-mode:vertical-rl; }
.scroll-cue i { width:38px; height:38px; border:1px solid rgba(255,255,255,.36); border-radius:50%; display:grid; place-items:center; font-style:normal; animation:bob 1.6s ease-in-out infinite; }
.intro { padding:120px clamp(24px,8.6vw,140px) 140px; background:var(--cream); }
.section-kicker { font-size:11px; font-weight:700; letter-spacing:.2em; color:var(--red); }
.intro-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:50px; }
.intro h2, .why h2, .process h2, .projects h2, .insurance h2, .estimate h2 { margin:18px 0 0; font-size:clamp(54px,7vw,104px); line-height:.88; letter-spacing:-.025em; }
.intro h2 span, .why h2 span, .process h2 span, .projects h2 span, .estimate h2 span { color:#b8aa92; }
.intro-heading > p { max-width:430px; margin:0 0 7px; color:#65625d; line-height:1.8; font-size:14px; }
.service-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:75px; }
.service-card { position:relative; min-height:510px; padding:28px; overflow:hidden; background:#333 center/cover no-repeat; color:white; display:flex; flex-direction:column; justify-content:space-between; isolation:isolate; }
.service-card::before { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(0deg,rgba(10,11,11,.92),rgba(10,11,11,.05) 70%); transition:background .4s ease; }
.service-card::after { display:none; }
.service-card-media { position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.service-card:hover .service-card-media { transform:scale(1.05); }
.service-card:hover::before { background:linear-gradient(0deg,rgba(125,24,20,.9),rgba(10,11,11,.12) 78%); }
.service-repair { background-image:url('media/tile-roofer.webp'); }
.service-replacement { background-image:url('media/roofing-crew.webp'); }
.service-commercial { background-image:url('media/flat-roof-western.webp'); }
.card-number { align-self:flex-end; font:600 13px var(--font-display); }
.card-content > p { font-size:9px; letter-spacing:.16em; color:rgba(255,255,255,.68); }
.card-content h3 { max-width:300px; margin:8px 0 25px; font:600 clamp(38px,3.7vw,61px)/.9 var(--font-display); text-transform:uppercase; }
.card-content a { display:flex; justify-content:space-between; align-items:center; border-top:1px solid rgba(255,255,255,.35); padding-top:16px; font-size:10px; text-transform:uppercase; letter-spacing:.12em; }
.card-content a span { font-size:18px; }

.why { display:grid; grid-template-columns:1.05fr .95fr; min-height:870px; background:white; }
.why-image { position:relative; min-height:750px; overflow:hidden; }
.why-image img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 1.2s ease; }
.why-image.visible img { transform:scale(1.025); }
.experience-badge { position:absolute; right:0; bottom:0; width:220px; height:160px; padding:30px; background:var(--red); color:white; display:flex; align-items:center; gap:18px; }
.experience-badge strong { font:800 56px/.8 var(--font-display); }
.experience-badge span { font-size:10px; line-height:1.5; text-transform:uppercase; letter-spacing:.1em; }
.why-copy { padding:clamp(70px,9vw,145px) clamp(36px,8vw,120px); }
.why h2 { font-size:clamp(54px,6vw,88px); }
.body-copy { max-width:590px; color:#686661; font-size:14px; line-height:1.85; margin:31px 0 35px; }
.value-list { border-top:1px solid #dedbd4; }
.value-list > div { display:grid; grid-template-columns:44px 1fr; gap:18px; padding:20px 0; border-bottom:1px solid #dedbd4; }
.value-list b { font:600 12px var(--font-display); color:var(--red); }
.value-list span { display:flex; flex-direction:column; }
.value-list strong { font:600 20px var(--font-display); text-transform:uppercase; }
.value-list small { margin-top:5px; color:#77736d; font-size:11px; line-height:1.5; }
.text-link { display:inline-flex; gap:45px; align-items:center; margin-top:30px; padding-bottom:9px; border-bottom:1px solid var(--ink); font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.14em; }

.process { padding:130px clamp(24px,8.6vw,140px) 140px; background:var(--charcoal); color:white; }
.process-head, .projects-head { display:flex; justify-content:space-between; align-items:flex-end; gap:60px; }
.process h2, .projects h2 { font-size:clamp(58px,6vw,90px); }
.process h2 span { color:var(--red-bright); }
.process-head > p { max-width:300px; color:#aaa9a5; font-size:13px; line-height:1.7; }
.process-steps { display:grid; grid-template-columns:repeat(4,1fr); margin-top:70px; border-top:1px solid #505150; }
.process-steps article { position:relative; min-height:290px; padding:32px 26px; border-right:1px solid #505150; }
.process-steps article:first-child { border-left:1px solid #505150; }
.process-steps b { font:600 11px var(--font-display); color:#8d8e8b; }
.process-steps i { width:48px; height:48px; margin:43px 0 30px; border:1px solid #626360; display:grid; place-items:center; color:var(--red-bright); font-style:normal; font-size:20px; transition:.25s ease; }
.process-steps article:hover i { background:var(--red); color:white; border-color:var(--red); transform:translateY(-4px); }
.process-steps h3 { margin:0; font:600 24px/1 var(--font-display); text-transform:uppercase; }
.process-steps p { color:#999a96; font-size:11px; line-height:1.7; }

.projects { padding:130px clamp(24px,8.6vw,140px) 145px; background:var(--cream); }
.project-tabs { display:flex; border-bottom:1px solid #b8b3aa; }
.project-tabs button { border:0; border-bottom:2px solid transparent; margin-bottom:-1px; padding:15px 22px; background:transparent; color:#77736d; font:700 10px var(--font-body); text-transform:uppercase; letter-spacing:.13em; cursor:pointer; }
.project-tabs button.active { color:var(--red); border-color:var(--red); }
.project-feature { position:relative; height:min(63vw,690px); margin-top:65px; overflow:hidden; background:#333; }
.project-feature img { width:100%; height:100%; object-fit:cover; display:block; animation:imageReveal .55s both; }
.project-feature::after { content:""; position:absolute; inset:40% 0 0; background:linear-gradient(0deg,rgba(11,12,12,.82),transparent); pointer-events:none; }
.project-caption { position:absolute; z-index:2; left:clamp(25px,5vw,72px); bottom:50px; color:white; }
.project-caption span { font-size:9px; letter-spacing:.18em; }
.project-caption h3 { max-width:700px; margin:10px 0 8px; font:600 clamp(39px,5vw,75px)/.9 var(--font-display); text-transform:uppercase; }
.project-caption p { font-size:11px; color:rgba(255,255,255,.7); }
.temporary-note { position:absolute; z-index:2; top:22px; right:22px; padding:9px 12px; background:rgba(20,21,21,.72); color:white; font-size:8px; text-transform:uppercase; letter-spacing:.12em; }

.insurance { position:relative; min-height:710px; padding:120px clamp(24px,8.6vw,140px); display:flex; align-items:center; overflow:hidden; background:#171818; color:white; }
.insurance::before { content:""; position:absolute; inset:0; opacity:.34; background:url('media/commercial-roofing-temp.png') center/cover; filter:grayscale(1); }
.insurance::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(15,16,16,.96) 0 54%,rgba(15,16,16,.4)); }
.insurance-art { position:absolute; z-index:1; right:-1vw; top:50%; transform:translateY(-50%); display:flex; flex-direction:column; font:800 clamp(100px,16vw,250px)/.68 var(--font-display); text-align:right; opacity:.12; }
.insurance-art strong { color:var(--red-bright); }
.insurance-copy { position:relative; z-index:2; max-width:780px; }
.section-kicker.light { color:#e7daca; }
.insurance h2 span { color:var(--red-bright); }
.insurance-copy > p:not(.section-kicker) { max-width:620px; color:#bbb; line-height:1.8; font-size:14px; margin:30px 0 35px; }

.estimate { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(45px,8vw,120px); padding:135px clamp(24px,8.6vw,140px); background:#ece5d9; }
.estimate h2 { font-size:clamp(61px,6.6vw,98px); }
.estimate-intro > p:not(.section-kicker) { max-width:560px; color:#66625c; line-height:1.85; font-size:13px; margin-top:28px; }
.contact-preview { margin-top:48px; padding-top:22px; border-top:1px solid #c7bcaa; display:grid; gap:8px; }
.contact-preview span { font-size:9px; letter-spacing:.17em; color:#766f65; }
.contact-preview strong { font:600 28px var(--font-display); }
.quote-form { align-self:start; padding:42px; background:white; box-shadow:0 25px 70px rgba(44,35,24,.09); }
.form-top { display:flex; justify-content:space-between; padding-bottom:20px; border-bottom:1px solid #e0ddd7; font-size:9px; font-weight:700; letter-spacing:.15em; }
.form-top b { color:var(--red); }
.quote-form fieldset { border:0; padding:0; margin:34px 0; }
.form-stage.is-hidden { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; opacity:0; pointer-events:none; }
.form-stage.is-active { position:relative; }
.quote-form legend { margin-bottom:20px; font:600 29px var(--font-display); text-transform:uppercase; }
.form-stage { animation:fadeRise .35s both; }
.service-options { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.service-options button { display:flex; align-items:center; gap:12px; min-height:54px; padding:12px; border:1px solid #dedbd5; background:white; color:#4e4d49; font-size:11px; cursor:pointer; text-align:left; transition:.2s ease; }
.service-options button i { width:24px; height:24px; display:grid; place-items:center; border:1px solid #cbc8c2; border-radius:50%; font-style:normal; }
.service-options button.selected { color:var(--red); border-color:var(--red); background:#fff8f7; }
.service-options button.selected i { background:var(--red); border-color:var(--red); color:white; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.form-row label { font-size:9px; font-weight:700; letter-spacing:.11em; text-transform:uppercase; color:#77736d; }
.form-row input, .form-row select { width:100%; height:52px; margin-top:8px; padding:0 14px; border:1px solid #dedbd5; background:white; color:#343432; font:12px var(--font-body); }
.full-field { display:block; margin-top:15px; font-size:9px; font-weight:700; letter-spacing:.11em; text-transform:uppercase; color:#77736d; }
.full-field input, .full-field textarea { width:100%; margin-top:8px; padding:14px; border:1px solid #dedbd5; background:white; color:#343432; font:12px var(--font-body); }
.full-field input { height:52px; }
.full-field textarea { min-height:105px; resize:vertical; line-height:1.5; }
.upload-field { position:relative; display:block; margin-top:14px; }
.upload-field input { position:absolute; width:1px; height:1px; opacity:0; }
.upload-field > span { min-height:52px; padding:0 15px; border:1px dashed #c9c4ba; color:#6d6962; display:flex; align-items:center; font-size:10px; cursor:pointer; transition:.2s ease; }
.upload-field:hover > span { border-color:var(--red); color:var(--red); background:#fff8f7; }
.form-next { width:100%; min-height:58px; display:flex; justify-content:space-between; align-items:center; margin-top:24px; padding:0 21px; border:0; background:var(--red); color:white; font:700 10px var(--font-body); text-transform:uppercase; letter-spacing:.12em; cursor:pointer; transition:.25s ease; }
.form-next:hover { background:var(--red-bright); transform:translateY(-2px); }
.form-next span { font-size:20px; }
.quote-form > small { display:block; margin-top:14px; color:#928e87; font-size:9px; line-height:1.5; }
.form-nav { display:grid; grid-template-columns:auto 1fr; align-items:end; gap:15px; }
.form-nav > button:first-child { height:58px; padding:0 10px; border:0; background:transparent; color:#77736d; font:700 9px var(--font-body); text-transform:uppercase; letter-spacing:.12em; cursor:pointer; }
.form-nav .form-next { margin-top:24px; }
.prototype-complete { min-height:440px; padding:60px 10px 30px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; animation:fadeRise .4s both; }
.prototype-complete i { width:55px; height:55px; display:grid; place-items:center; border-radius:50%; background:var(--red); color:white; font-style:normal; font-size:22px; }
.prototype-complete p { margin:24px 0 8px; color:var(--red); font-size:9px; font-weight:700; letter-spacing:.15em; text-transform:uppercase; }
.prototype-complete h3 { max-width:380px; margin:0; font:600 36px/.98 var(--font-display); text-transform:uppercase; }
.prototype-complete > span { max-width:380px; margin-top:15px; color:#837f78; font-size:10px; line-height:1.6; }
.prototype-complete button { margin-top:25px; padding:12px 18px; border:1px solid #ccc7be; background:white; font:700 9px var(--font-body); text-transform:uppercase; letter-spacing:.12em; cursor:pointer; }
.prototype-complete .button { margin-top:28px; width:auto; }
.form-honeypot { position:absolute !important; left:-10000px !important; width:1px !important; height:1px !important; opacity:0 !important; }
.consent-field { margin-top:24px; display:flex !important; flex-direction:row !important; align-items:flex-start; gap:12px; color:#67625a; font-size:10px; line-height:1.6; }
.consent-field input { width:17px !important; height:17px; margin:1px 0 0; flex:none; }
.form-error { margin:18px 0 0; padding:13px 15px; background:#f7dedb; border-left:3px solid var(--red); color:#8f1f1a; font-size:11px; }
.form-next:disabled { opacity:.55; cursor:wait; }
.upload-field small { display:block; margin-top:8px; color:var(--red); font-size:9px; }

footer { padding:75px clamp(24px,8.6vw,140px) 25px; background:#141515; color:white; }
.footer-brand { margin-bottom:28px; }
footer > p { max-width:400px; color:#8c8d89; font-size:12px; }
.footer-links { display:flex; gap:30px; margin:50px 0; padding:25px 0; border-top:1px solid #393a39; border-bottom:1px solid #393a39; }
.footer-links a { font-size:10px; text-transform:uppercase; letter-spacing:.12em; }
.footer-bottom { display:flex; justify-content:space-between; color:#747572; font-size:9px; letter-spacing:.08em; text-transform:uppercase; }

/* Multi-page experience */
.hero-media > img, .hero-media video, .home-project-bg video, .page-hero-media video, .about-video video, .project-story-video video { width:100%; height:100%; object-fit:cover; display:block; }
.home-hero-photo { object-position:50% 48%; }
.home-hero { height:min(1000px,100svh); }
.section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:60px; }
.section-heading h2 { max-width:900px; margin:16px 0 0; font:600 clamp(54px,6.5vw,96px)/.88 var(--font-display); text-transform:uppercase; letter-spacing:-.025em; }
.section-heading h2 span { color:#b8aa92; }
.section-heading > p { max-width:410px; margin:0; color:#6f6a63; font-size:13px; line-height:1.8; }
.home-services { padding:125px clamp(24px,8.6vw,140px) 140px; }
.compact-grid .service-card { min-height:490px; }
.card-link { display:flex; justify-content:space-between; align-items:center; border-top:1px solid rgba(255,255,255,.35); padding-top:16px; font-size:10px; text-transform:uppercase; letter-spacing:.12em; }
.card-link b { font-size:18px; font-weight:400; }
.home-story { display:grid; grid-template-columns:1.08fr .92fr; min-height:860px; background:white; }
.home-story-media { position:relative; min-height:740px; overflow:hidden; }
.home-story-media > img, .home-story-media > video { width:100%; height:100%; object-fit:cover; display:block; transition:transform 1s ease; }
.home-story-media:hover > img, .home-story-media:hover > video { transform:scale(1.025); }
.video-stamp { position:absolute; right:0; bottom:0; width:225px; min-height:150px; padding:28px; display:flex; align-items:center; gap:18px; background:var(--red); color:white; }
.video-stamp i { width:48px; height:48px; border:1px solid rgba(255,255,255,.55); border-radius:50%; display:grid; place-items:center; font-style:normal; font-size:10px; }
.video-stamp span { font:600 16px/1.05 var(--font-display); }
.home-story-copy { padding:clamp(80px,9vw,145px) clamp(36px,8vw,120px); }
.home-story-copy h2 { margin:18px 0 28px; font:600 clamp(53px,5.6vw,84px)/.9 var(--font-display); text-transform:uppercase; }
.home-story-copy h2 span { color:#b8aa92; }
.home-story-copy > p:not(.section-kicker) { color:#6d6963; font-size:13px; line-height:1.85; }
.mini-values { margin:35px 0; border-top:1px solid #ddd9d2; }
.mini-values div { display:grid; grid-template-columns:38px 1fr; gap:15px; padding:18px 0; border-bottom:1px solid #ddd9d2; }
.mini-values b { color:var(--red); font:600 11px var(--font-display); }
.mini-values span { font:600 17px var(--font-display); text-transform:uppercase; }
.button-dark { background:#202121; border:1px solid #202121; color:white; }
.button-dark:hover { background:var(--red); border-color:var(--red); }
.home-project { position:relative; min-height:760px; padding:120px clamp(24px,8.6vw,140px); display:flex; align-items:center; color:white; overflow:hidden; }
.home-project-bg, .home-project-shade { position:absolute; inset:0; }
.home-project-shade { background:linear-gradient(90deg,rgba(13,14,14,.92),rgba(13,14,14,.28)); }
.home-project-copy { position:relative; z-index:2; max-width:760px; }
.home-project-copy h2 { margin:18px 0 25px; font:600 clamp(60px,7vw,104px)/.86 var(--font-display); text-transform:uppercase; }
.home-project-copy h2 span { display:block; color:var(--red-bright); }
.home-project-copy > p:not(.section-kicker) { max-width:580px; color:#c0c0bc; line-height:1.8; font-size:13px; margin-bottom:35px; }
.home-actions { display:grid; grid-template-columns:1fr 1fr; background:var(--cream); }
.home-actions > a { min-height:250px; padding:55px clamp(30px,7vw,105px); display:grid; grid-template-columns:1fr auto; align-content:center; border-right:1px solid #cfc8bc; transition:.3s ease; }
.home-actions > a:hover { background:var(--red); color:white; }
.home-actions small { grid-column:1/-1; margin-bottom:12px; color:#8e867b; font-size:9px; letter-spacing:.17em; }
.home-actions strong { font:600 clamp(36px,4vw,62px)/1 var(--font-display); text-transform:uppercase; }
.home-actions > a > span { align-self:center; font-size:28px; }

.home-reviews { padding:125px clamp(24px,8.6vw,140px) 140px; background:#f8f5ef; }
.reviews-heading { display:grid; grid-template-columns:1.35fr .65fr; gap:40px; align-items:end; }
.reviews-heading .section-kicker { grid-column:1/-1; margin-bottom:-22px; }
.reviews-heading h2 { max-width:920px; margin:0; font:600 clamp(55px,6.5vw,96px)/.88 var(--font-display); text-transform:uppercase; }
.reviews-heading h2 span { color:#b8aa92; }
.reviews-heading > p:last-child { margin:0; color:#6d6861; font-size:13px; line-height:1.85; }
.review-grid { display:grid; grid-template-columns:1.5fr .75fr .75fr; gap:14px; margin-top:65px; }
.review-grid > a { min-height:390px; padding:38px; display:flex; flex-direction:column; border:1px solid #cec7bc; transition:.3s ease; }
.review-grid > a:hover { transform:translateY(-5px); border-color:var(--red); }
.review-grid small { color:var(--red); font-size:9px; font-weight:700; letter-spacing:.17em; }
.review-feature { background:#202121; color:white; }
.review-feature blockquote { margin:auto 0 38px; font:500 clamp(38px,4vw,60px)/1.03 var(--font-display); text-transform:uppercase; }
.review-grid span { margin-top:auto; font-size:9px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.rating-card strong { margin:55px 0 3px; font:600 clamp(74px,7vw,108px)/.85 var(--font-display); }
.rating-card div { color:var(--red); font-size:18px; letter-spacing:.08em; }
.rating-card p { color:#706b64; font-size:11px; line-height:1.7; }
.yelp-card { background:#fff; }

.page-hero { position:relative; min-height:720px; height:82svh; max-height:880px; display:flex; align-items:flex-end; padding:150px clamp(24px,8.6vw,140px) 90px; color:white; overflow:hidden; background:#333; }
.page-hero.compact { min-height:620px; height:70svh; }
.page-hero-media, .page-hero-shade { position:absolute; inset:0; }
.page-hero-media img { width:100%; height:100%; object-fit:cover; display:block; }
.page-hero-shade { background:linear-gradient(90deg,rgba(12,13,13,.92) 0%,rgba(12,13,13,.58) 50%,rgba(12,13,13,.18)),linear-gradient(0deg,rgba(12,13,13,.75),transparent 55%); }
.page-hero-copy { position:relative; z-index:2; max-width:1050px; }
.page-hero-copy h1 { max-width:1000px; font-size:clamp(68px,8.4vw,130px); }
.page-hero-copy h1 em { color:var(--red-bright); }
.page-hero-copy > p:last-child { max-width:700px; margin:28px 0 0; color:#deddd9; font-size:15px; line-height:1.75; }

.services-index, .projects-index { padding:125px clamp(24px,8.6vw,140px) 145px; }
.services-list { margin-top:70px; border-top:1px solid #ccc5ba; }
.service-row { display:grid; grid-template-columns:45px 210px .7fr 1fr 40px; gap:32px; align-items:center; padding:26px 0; border-bottom:1px solid #ccc5ba; }
.service-row > span { color:var(--red); font:600 12px var(--font-display); }
.service-row-image { height:130px; background:#333 center/cover; overflow:hidden; }
.service-row-image img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease; }
.service-row:hover .service-row-image img { transform:scale(1.05); }
.service-inspection { background-image:url('media/inspection-temp.png'); }
.service-row h3 { margin:0; font:600 clamp(30px,3vw,47px)/.95 var(--font-display); text-transform:uppercase; }
.service-row p { color:#6c6861; font-size:12px; line-height:1.7; }
.service-row > b { font-size:24px; font-weight:400; transition:.25s ease; }
.service-row:hover > b { color:var(--red); transform:translate(4px,-4px); }
.materials { padding:125px clamp(24px,8.6vw,140px) 145px; background:#202121; color:white; }
.materials h2 { max-width:900px; margin:18px 0 0; font:600 clamp(58px,6.5vw,96px)/.88 var(--font-display); text-transform:uppercase; }
.materials h2 span { color:var(--red-bright); }
.material-grid { display:grid; grid-template-columns:repeat(4,1fr); margin-top:70px; border-top:1px solid #505150; }
.material-grid article, .material-grid > a { min-height:260px; padding:30px 24px; border-right:1px solid #505150; display:block; transition:.3s ease; }
.material-grid article:first-child, .material-grid > a:first-child { border-left:1px solid #505150; }
.material-grid > a:hover { background:var(--red); }
.material-grid b { color:#878884; font:600 11px var(--font-display); }
.material-grid h3 { margin:65px 0 10px; font:600 30px var(--font-display); text-transform:uppercase; }
.material-grid p { color:#9fa09c; font-size:11px; line-height:1.7; }
.material-grid > a:hover b, .material-grid > a:hover p { color:white; }
.visual-materials > a { min-height:430px; padding:0 0 28px; overflow:hidden; }
.material-image { display:block; height:185px; margin-bottom:27px; background-position:center; background-size:cover; transition:transform .5s ease; }
.material-image img { width:100%; height:100%; display:block; object-fit:cover; }
.visual-materials > a:hover .material-image { transform:scale(1.035); }
.visual-materials b, .visual-materials h3, .visual-materials p { display:block; margin-left:24px; margin-right:24px; }
.visual-materials h3 { margin-top:30px; }
.home-systems { padding-top:110px; }
.next-banner { padding:75px clamp(24px,8.6vw,140px); background:var(--red); color:white; display:grid; grid-template-columns:1fr auto; align-items:center; gap:20px; }
.next-banner p { grid-column:1/-1; margin:0; font-size:9px; letter-spacing:.18em; }
.next-banner h2 { margin:0; font:600 clamp(42px,5vw,76px)/.95 var(--font-display); text-transform:uppercase; }
.next-banner a { display:flex; gap:35px; align-items:center; padding:18px 22px; border:1px solid rgba(255,255,255,.6); font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.11em; }
.next-banner a span { font-size:20px; }

.detail-intro { padding:125px clamp(24px,8.6vw,140px); background:var(--cream); }
.detail-intro > div:first-child { display:grid; grid-template-columns:.42fr 1fr; gap:70px; align-items:start; }
.detail-intro h2 { margin:0; font:600 clamp(53px,6vw,88px)/.9 var(--font-display); text-transform:uppercase; }
.detail-points { display:grid; grid-template-columns:repeat(3,1fr); margin-top:80px; border-top:1px solid #cfc8bd; }
.detail-points article { min-height:430px; border-right:1px solid #cfc8bd; overflow:hidden; background:#f8f5ef; }
.detail-points article:first-child { border-left:1px solid #cfc8bd; }
.detail-point-media { height:175px; background-position:center; background-size:cover; transition:transform .55s ease; }
.detail-point-media img { width:100%; height:100%; display:block; object-fit:cover; }
.detail-points article:hover .detail-point-media { transform:scale(1.025); }
.detail-point-copy { padding:26px 30px 32px; }
.detail-points b { color:var(--red); font:600 11px var(--font-display); }
.detail-points h3 { margin:35px 0 10px; font:600 28px var(--font-display); text-transform:uppercase; }
.detail-points p { color:#706b64; font-size:11px; line-height:1.75; }
.detail-split { display:grid; grid-template-columns:1fr 1fr; min-height:760px; background:white; }
.detail-split > div:first-child { overflow:hidden; }
.detail-split > div:first-child img, .detail-split > div:first-child video { width:100%; height:100%; object-fit:cover; display:block; }
.detail-split > div:last-child { padding:100px clamp(35px,7vw,105px); }
.detail-split h2 { margin:18px 0 35px; font:600 clamp(52px,5.7vw,82px)/.9 var(--font-display); text-transform:uppercase; }
.detail-split ul { padding:0; margin:0 0 40px; list-style:none; }
.detail-split li { display:flex; gap:14px; padding:15px 0; border-bottom:1px solid #dfdcd6; color:#625f59; font-size:12px; }
.detail-split li span { color:var(--red); }

.project-filter { display:flex; gap:4px; margin:55px 0 35px; }
.project-filter button { padding:14px 20px; border:1px solid #c9c2b7; background:transparent; color:#6c675f; font:700 9px var(--font-body); text-transform:uppercase; letter-spacing:.12em; cursor:pointer; }
.project-filter button.active { background:var(--red); border-color:var(--red); color:white; }
.projects-gallery { display:grid; grid-template-columns:1fr 1fr; gap:55px 20px; }
.project-card > div { position:relative; height:430px; overflow:hidden; background:#333; }
.project-card img { width:100%; height:100%; object-fit:cover; transition:transform .65s ease; }
.project-card:hover img { transform:scale(1.035); }
.project-card > div span { position:absolute; top:15px; right:15px; padding:8px 10px; background:rgba(20,21,21,.75); color:white; font-size:7px; text-transform:uppercase; letter-spacing:.12em; }
.project-card small { display:block; margin-top:19px; color:var(--red); font-size:8px; text-transform:uppercase; letter-spacing:.15em; }
.project-card h3 { margin:8px 0 5px; font:600 clamp(31px,3vw,45px)/1 var(--font-display); text-transform:uppercase; }
.project-card p { margin:0; color:#777169; font-size:11px; }
.project-detail-intro { padding:115px clamp(24px,8.6vw,140px); display:grid; grid-template-columns:1fr .75fr; gap:80px; align-items:end; }
.project-detail-intro h2 { max-width:800px; margin:16px 0 0; font:600 clamp(55px,6vw,90px)/.88 var(--font-display); text-transform:uppercase; }
.project-detail-intro h2 span { color:#b8aa92; }
.project-detail-intro > p { margin:0; color:#69655f; font-size:14px; line-height:1.9; }
.project-detail-scope { padding:100px clamp(24px,8.6vw,140px); background:#202121; color:white; }
.project-detail-scope > div { display:grid; grid-template-columns:repeat(3,1fr); margin-top:50px; border-top:1px solid #4a4b4a; }
.project-detail-scope article { min-height:260px; padding:28px; border-right:1px solid #4a4b4a; }
.project-detail-scope article:first-child { border-left:1px solid #4a4b4a; }
.project-detail-scope b { color:var(--red-bright); font:600 11px var(--font-display); }
.project-detail-scope p { margin:85px 0 0; max-width:330px; color:#c0bfbb; font:500 20px/1.35 var(--font-display); text-transform:uppercase; }
.project-detail-gallery { display:grid; grid-template-columns:1.2fr .8fr; height:680px; gap:8px; padding:8px; background:#202121; }
.project-detail-gallery img { width:100%; height:100%; object-fit:cover; display:block; }
.project-source { padding:55px clamp(24px,8.6vw,140px); display:flex; align-items:center; justify-content:space-between; gap:30px; background:#ece5d9; }
.project-source p { margin:0; color:#68635c; font-size:13px; }
.project-source a { padding:17px 20px; border:1px solid #bdb4a6; font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.social-projects { padding:90px clamp(24px,8.6vw,140px); display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:end; background:#202121; color:white; }
.social-projects h2 { max-width:760px; margin:16px 0 0; font:600 clamp(45px,5vw,75px)/.9 var(--font-display); text-transform:uppercase; }
.social-projects > div:last-child { display:grid; }
.social-projects a { padding:21px 0; display:flex; justify-content:space-between; border-bottom:1px solid #4b4c4b; font:600 18px var(--font-display); text-transform:uppercase; }
.social-projects a:hover { color:var(--red-bright); }
.project-story { display:grid; grid-template-columns:1.15fr .85fr; min-height:690px; background:#202121; color:white; }
.project-story-video { min-height:600px; }
.project-story > div:last-child { padding:100px clamp(35px,7vw,105px); }
.project-story h2 { margin:18px 0 25px; font:600 clamp(52px,5.5vw,82px)/.9 var(--font-display); text-transform:uppercase; }
.project-story p:not(.section-kicker) { color:#aaa9a5; font-size:12px; line-height:1.8; margin-bottom:35px; }
.project-quote { display:grid; grid-template-columns:1fr 1fr; min-height:720px; background:#3d4a4f; color:white; }
.project-quote-image { min-height:620px; overflow:hidden; }
.project-quote-image img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .8s ease; }
.project-quote:hover .project-quote-image img { transform:scale(1.025); }
.project-quote > div:last-child { padding:110px clamp(35px,7vw,110px); align-self:center; }
.project-quote h2 { max-width:720px; margin:18px 0 28px; font:600 clamp(56px,6vw,90px)/.9 var(--font-display); text-transform:uppercase; }
.project-quote p:not(.section-kicker) { max-width:610px; margin:0 0 36px; color:#d1d4d3; font-size:13px; line-height:1.85; }

.quote-page { display:grid; grid-template-columns:.82fr 1.18fr; gap:clamp(50px,8vw,120px); padding:125px clamp(24px,8.6vw,140px); background:#ece5d9; }
.quote-page-info h2 { margin:18px 0 35px; font:600 clamp(55px,6vw,88px)/.9 var(--font-display); text-transform:uppercase; }
.quote-page-info h2 span { color:#b8aa92; }
.quote-steps { border-top:1px solid #c8bdac; }
.quote-steps article { display:grid; grid-template-columns:42px 1fr; gap:17px; padding:20px 0; border-bottom:1px solid #c8bdac; }
.quote-steps b { color:var(--red); font:600 11px var(--font-display); }
.quote-steps h3 { margin:0; font:600 20px var(--font-display); text-transform:uppercase; }
.quote-steps p { margin:5px 0 0; color:#756f66; font-size:10px; line-height:1.6; }
.quote-page .contact-preview a { display:block; color:inherit; font:600 28px var(--font-display); }
.privacy-note, .disclaimer { padding:35px clamp(24px,8.6vw,140px); display:grid; grid-template-columns:.45fr 1fr; gap:50px; background:#202121; color:white; }
.privacy-note strong, .disclaimer strong { font:600 18px var(--font-display); text-transform:uppercase; }
.privacy-note p, .disclaimer p { margin:0; color:#aaa9a5; font-size:11px; line-height:1.7; }

.insurance-flow { padding:125px clamp(24px,8.6vw,140px); }
.insurance-steps { display:grid; grid-template-columns:repeat(4,1fr); margin-top:70px; }
.insurance-steps article { min-height:430px; border:1px solid #d2cbc0; margin-right:-1px; overflow:hidden; background:#f8f5ef; }
.insurance-step-image { height:170px; background-position:center; background-size:cover; transition:transform .5s ease; }
.insurance-steps article:hover .insurance-step-image { transform:scale(1.025); }
.insurance-steps article > div:last-child { padding:25px; }
.insurance-steps b { color:var(--red); font:600 11px var(--font-display); }
.insurance-steps h3 { margin:34px 0 10px; font:600 31px var(--font-display); text-transform:uppercase; }
.insurance-steps p { color:#6f6a63; font-size:11px; line-height:1.7; }
.insurance-docs { display:grid; grid-template-columns:1fr 1fr; min-height:750px; background:#202121; color:white; }
.insurance-docs > div:first-child img { width:100%; height:100%; object-fit:cover; }
.insurance-docs > div:last-child { padding:100px clamp(35px,7vw,110px); }
.insurance-docs h2 { margin:18px 0 32px; font:600 clamp(55px,6vw,88px)/.9 var(--font-display); text-transform:uppercase; }
.insurance-docs ul { list-style:none; padding:0; margin:0 0 40px; }
.insurance-docs li { padding:15px 0; border-bottom:1px solid #4b4c4b; color:#b4b4b0; font-size:12px; }

.about-intro { display:grid; grid-template-columns:1fr .9fr; gap:clamp(50px,8vw,120px); padding:125px clamp(24px,8.6vw,140px); }
.about-intro h2 { margin:18px 0 0; font:600 clamp(58px,6vw,90px)/.88 var(--font-display); text-transform:uppercase; }
.about-intro h2 span { color:#b8aa92; }
.about-intro > div:last-child > p { margin:35px 0; color:#6d6861; font-size:13px; line-height:1.9; }
.license-card { padding:28px; border-left:4px solid var(--red); background:#eae2d5; display:grid; }
.license-card span { color:#857d72; font-size:8px; letter-spacing:.15em; }
.license-card strong { margin:9px 0; font:600 32px var(--font-display); }
.license-card small { color:#777168; font-size:9px; }
.about-video { position:relative; height:760px; overflow:hidden; }
.about-video::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(12,13,13,.85),transparent 65%); }
.about-video-copy { position:absolute; z-index:2; left:clamp(24px,8.6vw,140px); bottom:70px; max-width:850px; color:white; }
.about-video-copy p { font-size:9px; letter-spacing:.17em; }
.about-video-copy h2 { margin:12px 0 0; font:600 clamp(52px,6vw,90px)/.9 var(--font-display); text-transform:uppercase; }
.about-values { padding:125px clamp(24px,8.6vw,140px); }
.about-values > div:last-child { display:grid; grid-template-columns:repeat(3,1fr); margin-top:65px; border-top:1px solid #cec7bc; }
.about-values article { min-height:270px; padding:30px; border-right:1px solid #cec7bc; }
.about-values article:first-child { border-left:1px solid #cec7bc; }
.about-values b { color:var(--red); font:600 11px var(--font-display); }
.about-values h3 { margin:70px 0 10px; font:600 27px var(--font-display); text-transform:uppercase; }
.about-values p { color:#716c64; font-size:11px; line-height:1.7; }
.service-areas { padding:115px clamp(24px,8.6vw,140px) 130px; background:#e9e1d4; }
.service-areas h2 { max-width:900px; margin:18px 0 55px; font:600 clamp(54px,6vw,88px)/.9 var(--font-display); text-transform:uppercase; }
.area-list { display:flex; flex-wrap:wrap; gap:10px; }
.area-list span { padding:16px 20px; border:1px solid #bdb3a4; font:600 16px var(--font-display); text-transform:uppercase; }

.footer-main { display:grid; grid-template-columns:1.5fr .7fr .9fr; gap:70px; padding-bottom:55px; }
.footer-main > div:first-child > p { max-width:380px; color:#8c8d89; font-size:12px; }
.footer-nav-group { display:flex; flex-direction:column; gap:13px; }
.footer-nav-group > span { margin-bottom:7px; color:#747572; font-size:8px; text-transform:uppercase; letter-spacing:.16em; }
.footer-nav-group a { font:600 16px var(--font-display); text-transform:uppercase; }
.mobile-contact-bar { display:none; }

[data-reveal] { opacity:0; transform:translateY(35px); transition:opacity .8s ease, transform .8s ease; }
[data-reveal].visible { opacity:1; transform:translateY(0); }
.service-grid [data-reveal]:nth-child(2) { transition-delay:.12s; }
.service-grid [data-reveal]:nth-child(3) { transition-delay:.24s; }
.reveal { animation:fadeRise 1s .15s both; }

@keyframes fadeRise { from { opacity:0; transform:translateY(30px); } to { opacity:1; transform:translateY(0); } }
@keyframes heroDrift { to { transform:scale(1.09) translate3d(-1%,.5%,0); } }
@keyframes bob { 50% { transform:translateY(5px); } }
@keyframes imageReveal { from { opacity:.4; transform:scale(1.02); } to { opacity:1; transform:scale(1); } }

@media (max-width: 900px) {
  .site-header { grid-template-columns:1fr auto; height:78px; }
  .header-cta { display:none; }
  .menu-toggle { display:grid; width:43px; height:43px; place-content:center; gap:7px; border:1px solid rgba(255,255,255,.4); background:transparent; color:white; }
  .menu-toggle span { width:19px; height:1px; background:white; display:block; }
  .main-nav { position:fixed; inset:78px 0 auto; max-height:calc(100dvh - 78px); padding:28px; overflow-y:auto; flex-direction:column; align-items:flex-start; background:rgba(20,21,21,.98); transform:translateY(-130%); opacity:0; visibility:hidden; pointer-events:none; transition:.3s ease; }
  .main-nav.open { transform:translateY(0); opacity:1; visibility:visible; pointer-events:auto; }
  .main-nav > a, .nav-services-toggle { font:600 28px/1.2 var(--font-display); }
  .nav-dropdown { width:100%; }
  .nav-dropdown-panel { position:static; width:100%; max-height:0; overflow:hidden; padding:0 0 0 18px; grid-template-columns:1fr 1fr; gap:0 15px; border-top:0; box-shadow:none; background:transparent; transform:none; opacity:0; visibility:hidden; pointer-events:none; transition:max-height .35s ease, opacity .25s ease, padding .35s ease; }
  .nav-dropdown:hover .nav-dropdown-panel, .nav-dropdown:focus-within .nav-dropdown-panel { transform:none; }
  .nav-dropdown.is-open .nav-dropdown-panel { max-height:520px; padding-top:14px; transform:none; opacity:1; visibility:visible; pointer-events:auto; }
  .nav-dropdown-panel a { padding:8px 0; font:600 12px/1.2 var(--font-body); }
  .nav-dropdown-panel .all-services-link { padding:10px 12px; }
  .hero-content { width:calc(100% - 48px); margin-left:24px; }
  h1 { font-size:clamp(62px,17vw,100px); }
  .hero-proof { left:24px; right:24px; bottom:25px; justify-content:space-between; }
  .hero-proof div { min-width:0; padding:0 15px; }
  .scroll-cue { display:none; }
  .intro-heading, .process-head, .projects-head { align-items:flex-start; flex-direction:column; }
  .service-grid { grid-template-columns:1fr; }
  .service-card { min-height:430px; }
  .why { grid-template-columns:1fr; }
  .why-image { min-height:600px; }
  .process-steps { grid-template-columns:1fr 1fr; }
  .process-steps article:nth-child(3) { border-left:1px solid #505150; }
  .estimate { grid-template-columns:1fr; }
  .section-heading { align-items:flex-start; flex-direction:column; }
  .home-story, .project-story, .project-quote, .detail-split, .insurance-docs, .about-intro, .quote-page { grid-template-columns:1fr; }
  .home-story-media, .project-story-video, .detail-split > div:first-child { min-height:600px; }
  .home-actions { grid-template-columns:1fr; }
  .home-actions > a { border-right:0; border-bottom:1px solid #cfc8bc; }
  .service-row { grid-template-columns:40px 160px 1fr 32px; }
  .service-row p { grid-column:3/5; margin-top:-35px; }
  .material-grid, .insurance-steps { grid-template-columns:1fr 1fr; }
  .material-grid article:nth-child(3), .material-grid > a:nth-child(3), .insurance-steps article:nth-child(3) { border-left:1px solid #505150; }
  .detail-intro > div:first-child { grid-template-columns:1fr; gap:20px; }
  .footer-main { grid-template-columns:1fr 1fr; }
  .footer-main > div:first-child { grid-column:1/-1; }
  .reviews-heading { grid-template-columns:1fr; align-items:start; }
  .reviews-heading .section-kicker { margin-bottom:0; }
  .review-grid { grid-template-columns:1fr 1fr; }
  .review-feature { grid-column:1/-1; }
  .project-detail-intro { grid-template-columns:1fr; gap:35px; }
  .social-projects { grid-template-columns:1fr; gap:45px; }
}

@media (max-width: 620px) {
  body { padding-bottom:64px; }
  .brand-primary-logo { width:190px; }
  .hero { height:820px; align-items:flex-start; }
  .home-hero-photo { object-position:42% 50%; }
  .hero-content { padding-top:155px; }
  .hero-lede { margin-top:26px; font-size:14px; line-height:1.65; }
  .hero-actions { align-items:stretch; flex-direction:column; gap:10px; margin-top:28px; }
  .button { width:100%; }
  .hero-proof div:nth-child(3) { display:none; }
  .hero-proof div { width:50%; }
  .hero-proof div:nth-child(2) { padding-right:0; }
  .intro { min-height:390px; padding-top:80px; }
  .intro { padding-bottom:85px; }
  .service-grid { margin-top:45px; }
  .service-card { min-height:390px; padding:22px; }
  .why-image { min-height:430px; }
  .experience-badge { width:180px; height:120px; padding:22px; }
  .why-copy { padding:75px 24px; }
  .process, .projects, .estimate { padding:85px 24px; }
  .process-steps { grid-template-columns:1fr; }
  .process-steps article, .process-steps article:nth-child(3) { border-left:1px solid #505150; }
  .project-feature { height:620px; margin-top:40px; }
  .project-feature img { object-position:center; }
  .project-caption { left:24px; right:24px; bottom:30px; }
  .insurance { min-height:680px; padding:85px 24px; }
  .insurance-art { font-size:120px; right:-20px; }
  .quote-form { padding:28px 20px; }
  .service-options, .form-row { grid-template-columns:1fr; }
  footer { padding:65px 24px 25px; }
  .footer-links { flex-wrap:wrap; }
  .footer-bottom { flex-direction:column; gap:12px; }
  .home-services, .services-index, .projects-index, .detail-intro, .insurance-flow, .about-intro, .about-values, .quote-page { padding:85px 24px; }
  .home-story-media, .project-story-video, .detail-split > div:first-child { min-height:450px; }
  .home-story-copy, .project-story > div:last-child, .project-quote > div:last-child, .detail-split > div:last-child, .insurance-docs > div:last-child { padding:75px 24px; }
  .home-project { min-height:690px; padding:85px 24px; }
  .home-actions > a { min-height:210px; padding:40px 24px; }
  .page-hero, .page-hero.compact { min-height:670px; height:78svh; padding:135px 24px 65px; }
  .page-hero-copy h1 { font-size:clamp(60px,17vw,92px); }
  .service-row { grid-template-columns:32px 1fr 30px; gap:17px; }
  .service-row-image { grid-column:1/-1; grid-row:1; height:230px; }
  .service-row > span { grid-column:1; grid-row:2; }
  .service-row h3 { grid-column:2; grid-row:2; }
  .service-row > b { grid-column:3; grid-row:2; }
  .service-row p { grid-column:2/4; grid-row:3; margin:0; }
  .material-grid, .detail-points, .insurance-steps, .about-values > div:last-child, .projects-gallery { grid-template-columns:1fr; }
  .material-grid article, .material-grid > a, .material-grid article:nth-child(3), .material-grid > a:nth-child(3), .detail-points article, .insurance-steps article, .about-values article { border-left:1px solid #505150; }
  .projects-gallery { gap:42px; }
  .project-card > div { height:320px; }
  .project-filter { flex-wrap:wrap; }
  .project-filter button { flex:1 1 auto; min-height:44px; }
  .next-banner { grid-template-columns:1fr; }
  .next-banner p { grid-column:1; }
  .next-banner a { width:max-content; }
  .privacy-note, .disclaimer { grid-template-columns:1fr; gap:10px; }
  .about-video { height:650px; }
  .about-video-copy { left:24px; right:24px; bottom:45px; }
  .footer-main { grid-template-columns:1fr; gap:40px; }
  .footer-main > div:first-child { grid-column:1; }
  .home-reviews, .project-detail-intro, .project-detail-scope { padding:85px 24px; }
  .review-grid { grid-template-columns:1fr; margin-top:45px; }
  .review-feature { grid-column:1; }
  .review-grid > a { min-height:320px; padding:28px; }
  .project-detail-scope > div { grid-template-columns:1fr; }
  .project-detail-scope article, .project-detail-scope article:first-child { min-height:190px; border-left:1px solid #4a4b4a; border-bottom:1px solid #4a4b4a; }
  .project-detail-scope p { margin-top:48px; }
  .project-detail-gallery { grid-template-columns:1fr; height:auto; }
  .project-detail-gallery img { height:380px; }
  .project-source { align-items:flex-start; flex-direction:column; }
  .social-projects { padding:75px 24px; }
  .mobile-contact-bar { position:fixed; z-index:80; inset:auto 0 0; height:64px; display:grid; grid-template-columns:.7fr .7fr 1.6fr; background:#151616; color:white; box-shadow:0 -8px 30px rgba(0,0,0,.22); }
  .mobile-contact-bar a { display:grid; place-items:center; border-right:1px solid #343535; font-size:10px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
  .mobile-contact-bar a:last-child { border:0; background:var(--red); }
}

/* Secure client portal */
.portal-loading{min-height:100vh;display:grid;place-items:center;align-content:center;gap:18px;background:#191a1a;color:#fff;font-size:12px;letter-spacing:.08em;text-transform:uppercase}.portal-loading img{width:70px;border-radius:14px}.portal-login{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(400px,.92fr);background:#191a1a;color:#fff}.portal-login-visual{min-height:100vh;padding:42px clamp(36px,7vw,115px);display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(145deg,rgba(0,0,0,.44),rgba(0,0,0,.87)),url('media/shingle-roof-western.webp') center/cover}.portal-login-visual>a{display:flex;align-items:center;gap:13px;width:max-content;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.portal-login-visual>a img{width:42px;height:42px;border-radius:10px}.portal-login-visual p,.portal-login-panel p{margin:0 0 17px;color:var(--red-bright);font-size:9px;font-weight:800;letter-spacing:.18em}.portal-login-visual h1{margin:0;font-size:clamp(62px,9vw,132px);line-height:.79}.portal-login-visual h1 span{color:var(--red-bright)}.portal-login-visual strong{display:block;max-width:570px;margin-top:32px;font-size:14px;font-weight:500;line-height:1.6}.portal-login-visual small{color:#aaa;font-size:9px}.portal-login-panel{min-height:100vh;padding:42px;display:grid;place-items:center;background:#f3efe8;color:var(--ink)}.portal-login-panel form{width:min(500px,100%);padding:clamp(38px,6vw,70px);background:#fff;border-top:4px solid var(--red);box-shadow:0 35px 90px rgba(29,22,15,.14)}.portal-login-panel form>img{width:62px;height:62px;margin-bottom:28px;border-radius:14px}.portal-login-panel h2{margin:0 0 16px;font-size:clamp(45px,5vw,66px);line-height:.9}.portal-login-panel form>span{display:block;margin-bottom:26px;color:#77716a;font-size:11px;line-height:1.7}.portal-login-panel label{display:grid;gap:8px;margin-top:15px;color:#413c37;font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.portal-login-panel input{width:100%;padding:15px;border:1px solid #d8d3cc;background:#faf9f7;color:var(--ink);font:500 14px var(--font-body)}.portal-login-panel button{width:100%;margin-top:22px;padding:18px 20px;border:0;background:var(--red);color:#fff;font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;cursor:pointer}.portal-login-panel button:disabled{opacity:.6}.portal-login-panel form>small{display:block;margin-top:18px;color:#8a847d;font-size:9px;line-height:1.6}.portal-login-panel form>a{display:block;margin-top:24px;color:#77716a;font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.portal-alert{margin:16px 0;padding:13px 15px;border-left:3px solid var(--red);background:#fff1f1;color:#9d1821;font-size:10px;line-height:1.5}
.client-portal{min-height:100vh;background:#f3f0ea;color:var(--ink)}.portal-topbar{min-height:82px;padding:12px clamp(20px,5vw,72px);display:flex;align-items:center;justify-content:space-between;background:#191a1a;color:#fff}.portal-topbar>a{display:flex;align-items:center;gap:12px;font-size:9px;letter-spacing:.08em;text-transform:uppercase}.portal-topbar img{width:46px;height:46px;border-radius:10px}.portal-topbar>a b{color:var(--red-bright)}.portal-topbar>div{display:grid;grid-template-columns:auto auto;gap:2px 12px;align-items:center;text-align:right}.portal-topbar>div small{color:#999;font-size:8px;text-transform:uppercase}.portal-topbar>div b{font-size:9px}.portal-topbar button{grid-row:1/3;grid-column:3;margin-left:12px;padding:10px 13px;border:1px solid #555;background:transparent;color:#ddd;font-size:8px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;cursor:pointer}.portal-shell{width:min(1440px,calc(100% - 40px));margin:auto;padding:55px 0 80px}.portal-welcome{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:35px}.portal-welcome p,.portal-card header p{margin:0 0 8px;color:var(--red);font-size:8px;font-weight:800;letter-spacing:.16em}.portal-welcome h1{margin:0;font-size:clamp(48px,7vw,82px);line-height:.86}.portal-welcome>div>span{display:block;margin-top:17px;color:#6f6962;font-size:11px}.portal-welcome>i{padding:11px 15px;border:1px solid #d2ccc5;background:#fff;color:#3f3a35;font-size:8px;font-style:normal;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.portal-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-bottom:22px;background:#ddd7cf;border:1px solid #ddd7cf}.portal-summary-grid article{padding:24px;background:#fff}.portal-summary-grid small{display:block;margin-bottom:10px;color:#8b847d;font-size:8px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.portal-summary-grid b{display:block;font-family:var(--font-display);font-size:31px;line-height:1}.portal-summary-grid span{display:block;margin-top:9px;color:#77716a;font-size:9px}.portal-summary-grid .portal-balance{background:#1e1f1f;color:#fff}.portal-summary-grid .portal-balance small,.portal-summary-grid .portal-balance span{color:#aaa}.portal-summary-grid .portal-balance b{color:var(--red-bright)}.portal-card{margin-bottom:22px;padding:clamp(24px,3vw,42px);background:#fff;border:1px solid #e0dbd4;box-shadow:0 14px 35px rgba(48,40,32,.04)}.portal-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:28px;padding-bottom:20px;border-bottom:1px solid #e7e2dc}.portal-card h2{margin:0;font-size:clamp(35px,4vw,50px);line-height:.9}.portal-card>header>span{padding:8px 10px;background:#f2eee8;color:#665f58;font-size:8px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.portal-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:0}.portal-steps>div{position:relative;display:grid;justify-items:center;gap:10px;color:#a49e97;font-size:8px;font-weight:800;text-align:center;text-transform:uppercase}.portal-steps>div:before{content:"";position:absolute;top:15px;right:50%;left:-50%;height:2px;background:#ddd7cf}.portal-steps>div:first-child:before{display:none}.portal-steps i{position:relative;z-index:1;width:32px;height:32px;display:grid;place-items:center;border:2px solid #d5d0c8;border-radius:50%;background:#fff;font-style:normal}.portal-steps .done,.portal-steps .current{color:var(--ink)}.portal-steps .done:before,.portal-steps .current:before{background:var(--red)}.portal-steps .done i{border-color:var(--red);background:var(--red);color:#fff}.portal-steps .current i{border-color:var(--red);color:var(--red)}.portal-two-column{display:grid;grid-template-columns:1.08fr .92fr;gap:22px}.portal-estimate-items{display:grid;gap:0}.portal-estimate-items>div{padding:14px 0;display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid #eeeae5;font-size:10px}.portal-estimate-items span small{display:block;margin-top:5px;color:#8d867f;font-size:8px}.portal-totals{margin:18px 0 0}.portal-totals div{display:flex;justify-content:space-between;padding:6px 0;font-size:10px}.portal-totals div:last-child{margin-top:8px;padding-top:14px;border-top:1px solid #ddd6ce;font-weight:800}.portal-estimate-note{margin:18px 0 0;padding:14px;background:#f6f3ef;color:#68615a;font-size:9px;line-height:1.65}.portal-dates{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#e1dbd4}.portal-dates>div{min-height:120px;padding:20px;display:flex;flex-direction:column;justify-content:center;background:#f8f6f2}.portal-dates small{color:#8a837b;font-size:8px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.portal-dates b{margin-top:9px;font-family:var(--font-display);font-size:25px}.portal-dates span{margin-top:5px;color:#777;font-size:9px}.portal-empty{margin:0;padding:25px;background:#f7f4f0;color:#847d75;font-size:10px;text-align:center}.portal-subhead{margin:28px 0 13px;font-size:10px;letter-spacing:.08em;text-transform:uppercase}.portal-photo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.portal-photo-grid a{position:relative;min-height:180px;overflow:hidden;background:#222}.portal-photo-grid img{width:100%;height:100%;min-height:180px;object-fit:cover;opacity:.9;transition:.2s}.portal-photo-grid a:hover img{transform:scale(1.03);opacity:1}.portal-photo-grid span{position:absolute;right:0;bottom:0;left:0;padding:25px 12px 10px;background:linear-gradient(transparent,rgba(0,0,0,.8));color:#fff;font-size:8px}.portal-documents{display:grid;gap:8px;margin-top:24px}.portal-documents a{padding:14px;display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:13px;border:1px solid #e0dbd4}.portal-documents i{width:40px;height:40px;display:grid;place-items:center;background:#242525;color:#fff;font-size:7px;font-style:normal;font-weight:800}.portal-documents span b,.portal-documents span small{display:block}.portal-documents span b{font-size:9px}.portal-documents span small{margin-top:5px;color:#817a73;font-size:8px}.portal-documents strong{color:var(--red);font-size:8px;text-transform:uppercase}.portal-payments{display:grid}.portal-payments article{padding:14px 0;display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid #ebe7e2}.portal-payments article>div:last-child{text-align:right}.portal-payments b{display:block;font-family:var(--font-display);font-size:27px}.portal-payments span,.portal-payments strong,.portal-payments small{display:block;font-size:8px}.portal-payments span,.portal-payments small{margin-top:4px;color:#867f77}.portal-messages{display:flex;flex-direction:column}.portal-thread{min-height:220px;max-height:430px;overflow:auto;display:flex;flex-direction:column;gap:10px}.portal-thread article{max-width:82%;padding:12px 14px;background:#f1eee9}.portal-thread article.client{align-self:flex-end;background:#292a2a;color:#fff}.portal-thread article small{color:#928b84;font-size:7px}.portal-thread article.client small{color:#aaa}.portal-thread article p{margin:6px 0 0;font-size:9px;line-height:1.6;white-space:pre-wrap}.portal-messages form{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:16px}.portal-messages textarea{min-height:72px;padding:12px;border:1px solid #dcd6cf;resize:vertical;font:500 10px var(--font-body)}.portal-messages button{padding:0 18px;border:0;background:var(--red);color:#fff;font-size:8px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.portal-messages button:disabled{opacity:.5}
body:has(.portal-login)>.site-header,body:has(.portal-login)>footer,body:has(.portal-login)>.mobile-contact-bar,body:has(.client-portal)>.site-header,body:has(.client-portal)>footer,body:has(.client-portal)>.mobile-contact-bar,body:has(.portal-loading)>.site-header,body:has(.portal-loading)>footer,body:has(.portal-loading)>.mobile-contact-bar{display:none}
.portal-review>p{max-width:720px;margin:-8px 0 24px;color:#716a63;font-size:10px;line-height:1.7}.portal-review form{display:grid;gap:18px}.portal-review fieldset{margin:0;padding:0;border:0}.portal-review legend,.portal-review label{display:grid;gap:8px;color:#5f5851;font-size:8px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.portal-review-stars{display:flex;gap:5px}.portal-review-stars button{padding:0;border:0;background:transparent;color:#d4cec6;font-size:34px;line-height:1;cursor:pointer;transition:.15s}.portal-review-stars button.selected{color:#d33a29}.portal-review textarea{min-height:125px;padding:15px;border:1px solid #d9d3cb;background:#fbfaf8;resize:vertical;font:500 10px/1.65 var(--font-body);text-transform:none}.portal-review-save{justify-self:start;padding:13px 18px;border:0;background:var(--red);color:#fff;font-size:8px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.portal-review-save:disabled{opacity:.45}.portal-review-notice{margin:18px 0 0;padding:12px 14px;border-left:3px solid #397147;background:#edf6ee;color:#315c3a;font-size:9px}.portal-google-review{margin-top:22px;padding:20px;display:flex;align-items:center;justify-content:space-between;gap:25px;background:#202121;color:#fff}.portal-google-review b,.portal-google-review span{display:block}.portal-google-review b{font:600 22px var(--font-display);text-transform:uppercase}.portal-google-review span{max-width:650px;margin-top:6px;color:#b9b9b9;font-size:8px;line-height:1.6}.portal-google-review button{padding:13px 16px;border:0;background:#fff;color:#202121;font-size:8px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}.portal-google-review small{color:#aaa;font-size:8px}
@media(max-width:900px){.portal-login{grid-template-columns:1fr}.portal-login-visual{min-height:42vh}.portal-login-panel{min-height:58vh}.portal-summary-grid{grid-template-columns:1fr 1fr}.portal-two-column{grid-template-columns:1fr}.portal-photo-grid{grid-template-columns:1fr 1fr}.portal-topbar>div small,.portal-topbar>div b{display:none}.portal-steps{overflow-x:auto;padding-bottom:8px}.portal-steps>div{min-width:110px}.portal-shell{width:min(100% - 28px,1440px);padding-top:35px}}
@media(max-width:560px){.portal-login-visual{min-height:36vh;padding:24px 22px}.portal-login-visual h1{font-size:56px}.portal-login-visual strong{margin-top:16px;font-size:10px}.portal-login-panel{padding:20px}.portal-login-panel form{padding:32px 25px}.portal-topbar{padding:10px 14px}.portal-topbar button{margin-left:0}.portal-welcome{align-items:flex-start;flex-direction:column}.portal-welcome h1{font-size:51px}.portal-summary-grid{grid-template-columns:1fr}.portal-card{padding:22px 18px}.portal-photo-grid{grid-template-columns:1fr}.portal-photo-grid a,.portal-photo-grid img{min-height:230px}.portal-dates{grid-template-columns:1fr}.portal-documents a{grid-template-columns:40px 1fr}.portal-documents strong{display:none}.portal-messages form{grid-template-columns:1fr}.portal-messages button{min-height:44px}}
@media(max-width:560px){.portal-google-review{align-items:stretch;flex-direction:column}.portal-google-review button{min-height:46px}.portal-review-stars button{font-size:31px}}
.portal-admin-section>p{color:#777;font-size:9px;line-height:1.6}.portal-admin-section>button{padding:12px 15px;border:0;background:var(--red);color:#fff;font-size:8px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.portal-admin-section>small{display:block;margin-top:12px;color:#888;font-size:8px}.portal-access-result{margin-top:16px;padding:15px;background:#f4f1ed}.portal-access-result label{display:grid;gap:5px;margin-bottom:10px;color:#777;font-size:7px;font-weight:800;text-transform:uppercase}.portal-access-result input,.portal-access-result textarea{width:100%;padding:9px;border:1px solid #ddd6cf;background:#fff;font:500 9px var(--font-body)}.portal-access-result textarea{min-height:64px;resize:none}.portal-access-result>div{display:flex;flex-wrap:wrap;gap:6px}.portal-access-result button,.portal-access-result a{padding:9px 11px;border:0;background:#262727;color:#fff;font-size:7px;font-weight:800;text-transform:uppercase}.portal-access-result small{display:block;margin-top:10px;color:#777;font-size:7px;line-height:1.5}.project-files>article{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:stretch}.project-files>article>a{min-width:0}.project-files>article>button{padding:8px;border:1px solid #d9d3cb;background:#eeeae5;color:#6d665f;font-size:7px;font-weight:800;text-transform:uppercase;cursor:pointer}.project-files>article>button.shared{border-color:#b7d3bd;background:#e5f3e8;color:#276236}.portal-admin-messages>div{display:flex;flex-direction:column;gap:8px;max-height:350px;overflow:auto}.portal-admin-messages article{max-width:84%;padding:10px 12px;background:#eeeae5}.portal-admin-messages article.client{align-self:flex-start}.portal-admin-messages article.staff{align-self:flex-end;background:#2a2b2b;color:#fff}.portal-admin-messages article small{color:#888;font-size:7px}.portal-admin-messages article p{margin:5px 0 0;font-size:9px;line-height:1.5;white-space:pre-wrap}.portal-admin-messages .note-composer{max-height:none;margin-top:14px;overflow:visible}
.project-review-admin>h3>span{float:right;color:#777;font-size:8px;text-transform:uppercase}.review-followup-status{padding:16px;background:#f3f0eb}.review-followup-status b,.review-followup-status span,.review-followup-status small{display:block}.review-followup-status b{font:600 23px var(--font-display);text-transform:uppercase}.review-followup-status span,.review-followup-status small{margin-top:5px;color:#7b746c;font-size:8px}.review-followup-status p{margin:15px 0 0;padding-top:15px;border-top:1px solid #dcd5cc;font-size:10px;line-height:1.65;white-space:pre-wrap}.google-review-setting{margin-top:14px;padding:16px;border:1px solid #ded8d0}.google-review-setting label{display:grid;gap:7px;color:#6c655e;font-size:7px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.google-review-setting input{padding:11px;border:1px solid #d9d2ca;font:500 9px var(--font-body)}.google-review-setting button{margin-top:9px;padding:10px 13px;border:0;background:#282929;color:#fff;font-size:7px;font-weight:800;text-transform:uppercase}.google-review-setting small{display:block;margin-top:9px;color:#817a72;font-size:7px;line-height:1.55}

/* Private inspection-request inbox */
.requests-app { min-height:100vh; display:grid; grid-template-columns:260px 1fr; background:#eee9df; color:var(--ink); }
.requests-app ~ footer, body:has(.requests-app) > .site-header, body:has(.requests-app) > footer, body:has(.requests-app) > .mobile-contact-bar, body:has(.requests-denied) > .site-header, body:has(.requests-denied) > footer, body:has(.requests-denied) > .mobile-contact-bar, body:has(.crm-login) > .site-header, body:has(.crm-login) > footer, body:has(.crm-login) > .mobile-contact-bar { display:none; }
.requests-denied { min-height:100vh; padding:40px; display:grid; place-content:center; justify-items:center; background:#191a1a; color:white; text-align:center; }
.requests-denied img { width:80px; height:80px; border-radius:19px; margin-bottom:28px; }
.requests-denied p { margin:0; color:var(--red-bright); font-size:9px; letter-spacing:.18em; }
.requests-denied h1 { margin:12px 0; font-size:clamp(55px,8vw,96px); line-height:.9; }
.requests-denied span { max-width:430px; color:#aaa; font-size:11px; line-height:1.7; }
.requests-denied a { margin-top:25px; padding:15px 19px; border:1px solid #555; font-size:9px; text-transform:uppercase; letter-spacing:.1em; }
.requests-sidebar { position:sticky; top:0; height:100vh; padding:32px 25px; background:#191a1a; color:white; display:flex; flex-direction:column; }
.requests-brand { display:flex; gap:14px; align-items:center; padding-bottom:27px; border-bottom:1px solid #383939; }
.requests-brand img { width:49px; height:49px; border-radius:12px; }
.requests-brand div { display:flex; flex-direction:column; gap:4px; }
.requests-brand span { color:var(--red-bright); font-size:8px; letter-spacing:.18em; }
.requests-brand strong { font:600 20px var(--font-display); text-transform:uppercase; }
.requests-back { margin-top:25px; color:#aaa; font-size:10px; text-transform:uppercase; letter-spacing:.1em; }
.crm-nav { display:grid; gap:5px; margin-top:25px; }
.crm-nav button, .crm-nav a { padding:11px 12px; border:0; border-left:2px solid transparent; background:transparent; color:#aaa; text-align:left; font:700 9px var(--font-body); text-transform:uppercase; letter-spacing:.12em; cursor:pointer; }
.crm-nav button.active, .crm-nav a.active { border-left-color:var(--red-bright); background:#242525; color:white; }
.notification-pending { margin-top:auto; padding:18px; border:1px solid #3e3f3f; display:flex; flex-direction:column; gap:5px; }
.notification-pending b { font:600 15px var(--font-display); text-transform:uppercase; }
.notification-pending span { color:#aaa; font-size:9px; }
.crm-account { margin-top:auto; padding:16px 0 0; border-top:1px solid #3e3f3f; display:flex; flex-direction:column; gap:5px; min-width:0; }
.crm-account > span { color:var(--red-bright); font-size:8px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }
.crm-account b { overflow:hidden; color:white; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.crm-account small { overflow:hidden; color:#8f9090; font-size:8px; text-overflow:ellipsis; white-space:nowrap; }
.crm-account a,.crm-account button { margin-top:8px; padding:0; border:0; background:none; color:#c8c8c8; font:700 8px/1 inherit; letter-spacing:.08em; text-align:left; text-transform:uppercase; cursor:pointer; }
.crm-login { min-height:100vh; display:grid; grid-template-columns:minmax(0,1.08fr) minmax(400px,.92fr); background:#191a1a; color:white; }
.crm-login-brand { min-height:100vh; padding:42px clamp(36px,7vw,115px); display:flex; flex-direction:column; justify-content:space-between; background:linear-gradient(145deg,rgba(0,0,0,.46),rgba(0,0,0,.86)),url('media/shingle-roof-western.webp') center/cover; }
.crm-login-home { display:flex; align-items:center; gap:13px; width:max-content; font-size:10px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.crm-login-home img { width:42px; height:42px; border-radius:10px; }
.crm-login-brand p,.crm-login-card p { margin:0 0 16px; color:var(--red-bright); font-size:9px; font-weight:700; letter-spacing:.18em; }
.crm-login-brand h1 { margin:0; font-size:clamp(78px,11vw,160px); line-height:.72; }
.crm-login-brand h1 span { color:var(--red-bright); }
.crm-login-brand strong { display:block; margin-top:34px; font-size:13px; font-weight:500; letter-spacing:.02em; }
.crm-login-brand small { color:#aaa; font-size:9px; }
.crm-login-card { min-height:100vh; padding:42px; display:grid; place-items:center; background:#f3efe8; color:var(--ink); }
.crm-login-card > div { width:min(470px,100%); padding:clamp(38px,6vw,72px); background:white; border-top:4px solid var(--red); box-shadow:0 35px 90px rgba(29,22,15,.14); }
.crm-login-card img { width:62px; height:62px; margin-bottom:30px; border-radius:14px; }
.crm-login-card h2 { margin:0 0 18px; font-size:clamp(46px,5vw,68px); line-height:.88; }
.crm-login-card > div > span { display:block; color:#77716a; font-size:11px; line-height:1.7; }
.crm-login-button { width:100%; margin-top:34px; padding:19px 22px; display:flex; align-items:center; justify-content:space-between; border:0; background:var(--red); color:white; font:700 10px/1 inherit; letter-spacing:.09em; text-transform:uppercase; cursor:pointer; }
.crm-login-button b { font-size:19px; }
.crm-login-button:disabled { opacity:.65; cursor:wait; }
.crm-login-form { margin-top:28px; }
.crm-login-form label { display:block; margin-top:17px; }
.crm-login-form label span { display:block; margin-bottom:8px; color:#615b54; font-size:9px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.crm-login-form input { width:100%; padding:14px 15px; border:1px solid #d8d1c8; background:#fff; color:var(--ink); font:500 14px/1.2 inherit; outline:none; }
.crm-login-form input:focus { border-color:var(--red); box-shadow:0 0 0 2px rgba(213,35,47,.12); }
.crm-password-field { position:relative; }
.crm-password-field input { padding-right:76px; }
.crm-password-field button { position:absolute; top:50%; right:14px; padding:6px 8px; transform:translateY(-50%); border:0; background:transparent; color:var(--red); font:700 9px/1 inherit; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; }
.crm-login-error { margin:16px 0 0 !important; padding:11px 13px; background:#f7dedb; color:#8f1f1a !important; font-size:10px !important; font-weight:600 !important; letter-spacing:0 !important; }
.crm-login-return { display:block; margin-top:21px; color:#77716a; font-size:9px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.team-main { position:relative; }
.team-primary { padding:15px 19px; border:0; background:var(--red); color:#fff; font:800 9px var(--font-body); letter-spacing:.1em; text-transform:uppercase; cursor:pointer; }
.team-security-note { margin:28px 0 18px; padding:17px 20px; display:flex; align-items:center; gap:16px; border-left:3px solid var(--red); background:#fff; }
.team-security-note b { font:600 18px var(--font-display); text-transform:uppercase; }
.team-security-note span { color:#77716a; font-size:9px; }
.team-alert { margin:16px 0; padding:13px 16px; font-size:10px; }
.team-alert.error { border-left:3px solid var(--red); background:#f8deda; color:#8d211b; }
.team-alert.success { border-left:3px solid #347446; background:#e1f1e5; color:#275c35; }
.team-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; }
.team-list>article { padding:23px; border-top:3px solid #282929; background:#fff; box-shadow:0 18px 45px rgba(42,34,25,.06); }
.team-list>article.inactive { opacity:.62; border-top-color:#aaa; }
.team-member-head { display:flex; justify-content:space-between; gap:20px; }
.team-member-head span { color:var(--red); font-size:8px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.team-member-head h2 { margin:6px 0 3px; font:600 28px var(--font-display); text-transform:uppercase; }
.team-member-head p { margin:0; color:#77716a; font-size:9px; }
.team-member-head i { height:max-content; padding:5px 8px; background:#e2f1e6; color:#2e6b3e; font-size:7px; font-style:normal; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.team-list>article.inactive .team-member-head i { background:#eee; color:#666; }
.team-permission-chips { min-height:55px; margin:20px 0; display:flex; flex-wrap:wrap; align-content:flex-start; gap:6px; }
.team-permission-chips span,.team-permission-chips>b { padding:6px 8px; background:#f0ece6; color:#5f5a54; font-size:7px; font-weight:800; text-transform:uppercase; }
.team-permission-chips>b { background:#292a2a; color:#fff; }
.team-list article footer { padding-top:14px; display:flex; justify-content:space-between; align-items:center; gap:15px; border-top:1px solid #e4dfd8; }
.team-list article footer small { color:#8b857d; font-size:8px; }
.team-list article footer button { padding:9px 11px; border:1px solid #cfc8bf; background:#fff; color:#272828; font:800 7px var(--font-body); text-transform:uppercase; cursor:pointer; }
.team-modal { position:fixed; z-index:150; inset:0; padding:25px; display:grid; place-items:center; overflow:auto; background:rgba(15,16,16,.76); }
.team-modal>form,.team-modal>.team-edit { position:relative; width:min(680px,100%); max-height:calc(100vh - 50px); padding:38px clamp(25px,5vw,52px); overflow:auto; border-top:4px solid var(--red); background:#fff; box-shadow:0 30px 90px rgba(0,0,0,.35); }
.team-close { position:absolute; top:18px; right:20px; width:37px; height:37px; border:1px solid #ddd7cf; border-radius:50%; background:#fff; color:#333; font-size:22px; cursor:pointer; }
.team-modal form>p,.team-edit>p { margin:0; color:var(--red); font-size:8px; font-weight:800; letter-spacing:.17em; }
.team-modal h2 { margin:9px 0 25px; font:600 47px/.9 var(--font-display); text-transform:uppercase; }
.team-modal form>label,.team-edit>label { display:grid; gap:7px; margin-top:15px; color:#615d57; font-size:8px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.team-modal input { width:100%; padding:12px 13px; border:1px solid #d8d1c8; background:#fff; color:#202121; font:500 12px var(--font-body); }
.team-modal input[readonly] { background:#f3f0eb; color:#777; }
.team-modal label>small { color:#8b857d; font-size:7px; font-weight:500; letter-spacing:0; text-transform:none; }
.team-password { display:grid; grid-template-columns:1fr auto; }
.team-password button { padding:0 14px; border:0; background:#292a2a; color:#fff; font:800 7px var(--font-body); text-transform:uppercase; cursor:pointer; }
.team-modal fieldset { margin:24px 0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:9px; border:0; }
.team-modal legend { grid-column:1/-1; margin-bottom:9px; color:#262727; font:600 21px var(--font-display); text-transform:uppercase; }
.team-permission { padding:12px; display:flex !important; grid-template-columns:none !important; flex-direction:row !important; align-items:flex-start; gap:10px !important; margin:0 !important; border:1px solid #e0dad2; background:#faf8f5; cursor:pointer; }
.team-permission input { width:16px; height:16px; margin:1px 0 0; accent-color:var(--red); }
.team-permission span { min-width:0; }
.team-permission b,.team-permission small { display:block; }
.team-permission b { color:#302f2d; font-size:8px; }
.team-permission small { margin-top:4px; color:#888179; font-size:7px; font-weight:500; line-height:1.4; letter-spacing:0; text-transform:none; }
.team-save { padding:14px 17px; border:0; background:var(--red); color:#fff; font:800 8px var(--font-body); letter-spacing:.08em; text-transform:uppercase; cursor:pointer; }
.team-save:disabled { opacity:.55; cursor:wait; }
.team-actions { display:flex; flex-wrap:wrap; gap:8px; }
.team-disable,.team-enable { padding:13px 15px; border:1px solid #c9c2b8; background:#fff; color:#6e2521; font:800 8px var(--font-body); text-transform:uppercase; cursor:pointer; }
.team-enable { color:#2f6b3e; }
.team-reset { margin-top:28px; padding-top:22px; border-top:1px solid #ddd7cf; }
.team-reset h3 { margin:0 0 12px; font:600 22px var(--font-display); text-transform:uppercase; }
.team-reset>button { margin-top:8px; padding:11px 13px; border:0; background:#292a2a; color:#fff; font:800 7px var(--font-body); text-transform:uppercase; cursor:pointer; }
.team-reset>button:disabled { opacity:.45; }
@media(max-width:850px){.team-list{grid-template-columns:1fr}.team-modal fieldset{grid-template-columns:1fr}.team-security-note{align-items:flex-start;flex-direction:column}.team-main .requests-head{align-items:flex-start;flex-direction:column}.team-modal{padding:12px}.team-modal>form,.team-modal>.team-edit{max-height:calc(100vh - 24px)}}
.requests-main { padding:60px clamp(28px,5vw,80px); min-width:0; }
.requests-head { display:flex; justify-content:space-between; align-items:flex-end; gap:30px; padding-bottom:35px; border-bottom:1px solid #c8c0b3; }
.requests-head p { margin:0 0 9px; color:var(--red); font-size:9px; font-weight:700; letter-spacing:.18em; }
.requests-head h1 { margin:0; color:var(--ink); font-size:clamp(54px,6vw,86px); line-height:.85; }
.requests-count { display:flex; align-items:end; gap:10px; }
.requests-count strong { font:700 45px/.8 var(--font-display); }
.requests-count span { width:70px; color:#79746d; font-size:9px; line-height:1.4; text-transform:uppercase; }
.requests-toolbar { display:flex; justify-content:space-between; align-items:center; gap:20px; margin:28px 0 18px; }
.requests-toolbar label { width:min(520px,100%); height:48px; padding:0 15px; display:flex; align-items:center; gap:12px; background:white; border:1px solid #d3ccc0; }
.requests-toolbar input { width:100%; border:0; outline:0; background:transparent; font:500 11px var(--font-body); }
.requests-toolbar > span { color:#7b766e; font-size:9px; text-transform:uppercase; letter-spacing:.1em; }
.requests-table { background:white; border-top:3px solid var(--red); box-shadow:0 25px 65px rgba(42,34,25,.08); }
.request-row { width:100%; min-height:82px; padding:17px 20px; display:grid; grid-template-columns:1.25fr 1.2fr .8fr .9fr .55fr; gap:20px; align-items:center; border:0; border-bottom:1px solid #e2ddd5; background:white; color:inherit; text-align:left; cursor:pointer; transition:.2s ease; }
.request-row:not(.request-row-head):hover { background:#fff8f6; transform:translateX(3px); }
.request-row > span { display:flex; flex-direction:column; gap:5px; font-size:11px; }
.request-row strong { font:600 18px var(--font-display); text-transform:uppercase; }
.request-row small { color:#8a857d; font-size:8px; }
.request-row i { width:max-content; padding:5px 8px; background:#e8f3e8; color:#346c3b; font-style:normal; font-size:8px; text-transform:uppercase; letter-spacing:.08em; }
.request-row i[data-status="contacted"], .request-row i[data-status="inspection scheduled"], .request-row i[data-status="estimate sent"] { background:#fff0cf; color:#8a5a00; }
.request-row i[data-status="won"] { background:#dff2e5; color:#1f6a39; }
.request-row i[data-status="lost"] { background:#eee; color:#6d6861; }
.request-row-head { min-height:42px; background:#252626; color:#bfc0bd; cursor:default; }
.request-row-head > span { font-size:8px; text-transform:uppercase; letter-spacing:.12em; }
.requests-empty { min-height:300px; padding:40px; display:grid; place-content:center; justify-items:center; gap:10px; background:white; color:#746f68; text-align:center; }
.requests-empty strong { color:var(--ink); font:600 30px var(--font-display); text-transform:uppercase; }
.requests-empty span { font-size:11px; }
.requests-empty a { margin-top:10px; padding:14px 18px; background:var(--red); color:white; font-size:9px; text-transform:uppercase; letter-spacing:.1em; }
.requests-error { color:var(--red); font-size:10px; }
.request-drawer { position:fixed; z-index:100; inset:0 0 0 auto; width:min(570px,100%); padding:48px clamp(25px,4vw,55px); overflow:auto; background:white; box-shadow:-30px 0 80px rgba(0,0,0,.2); }
.drawer-close { position:absolute; top:22px; right:25px; width:42px; height:42px; border:1px solid #ddd8cf; border-radius:50%; background:white; font-size:25px; cursor:pointer; }
.request-drawer h2 { margin:12px 0 15px; font:600 53px/.9 var(--font-display); text-transform:uppercase; }
.drawer-status { display:flex; gap:12px; align-items:center; color:#89847c; font-size:9px; }
.drawer-status label { display:flex; align-items:center; gap:8px; }
.drawer-status label span { color:#8a857d; text-transform:uppercase; letter-spacing:.1em; }
.drawer-status select { padding:9px 28px 9px 10px; border:1px solid #d4cec4; background:#f5f1ea; color:#292a29; font:600 10px var(--font-body); text-transform:uppercase; cursor:pointer; }
.drawer-error { margin:14px 0 0; padding:12px 14px; border-left:3px solid var(--red); background:#fff0ed; color:#9a2d22; font-size:10px; line-height:1.5; }
.request-drawer section { margin-top:35px; padding-top:24px; border-top:1px solid #ddd8d0; }
.request-drawer h3 { display:flex; justify-content:space-between; margin:0 0 16px; font:600 22px var(--font-display); text-transform:uppercase; }
.request-drawer section > a, .request-drawer section > p, .request-drawer section > small { display:block; margin:7px 0; color:#68645e; font-size:11px; line-height:1.6; }
.request-drawer dl { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.request-drawer dl div { padding:14px; background:#f3efe8; }
.request-drawer dt { color:#969088; font-size:8px; text-transform:uppercase; letter-spacing:.1em; }
.request-drawer dd { margin:5px 0 0; font:600 16px var(--font-display); text-transform:uppercase; }
.project-note { padding:17px; border-left:3px solid var(--red); background:#fff8f6; }
.request-photos { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.request-photos a { border:1px solid #ddd8d0; }
.request-photos img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; background:#eee; }
.request-photos small { display:block; padding:8px; color:#777; font-size:8px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.no-photos { color:#858078; font-size:10px; }
.note-composer { display:grid; gap:10px; }
.note-composer textarea { min-height:95px; resize:vertical; padding:14px; border:1px solid #d8d1c7; background:#f8f5ef; color:var(--ink); font:500 11px/1.6 var(--font-body); }
.note-composer button { width:max-content; padding:12px 17px; border:0; background:var(--red); color:white; font:700 9px var(--font-body); text-transform:uppercase; letter-spacing:.1em; cursor:pointer; }
.note-composer button:disabled { opacity:.45; cursor:default; }
.notes-list { display:grid; gap:10px; margin-top:17px; }
.notes-list article { padding:15px; border-left:3px solid #343535; background:#f3efe8; }
.notes-list p { margin:0 0 8px; color:#4f4c47; font-size:11px; line-height:1.6; white-space:pre-wrap; }
.notes-list small { color:#8c867e; font-size:8px; }
.activity-timeline { display:grid; }
.activity-timeline article { position:relative; min-height:72px; padding:0 0 22px 31px; display:grid; grid-template-columns:1fr; }
.activity-timeline article:not(:last-child)::before { content:""; position:absolute; left:7px; top:13px; bottom:-2px; width:1px; background:#d9d2c8; }
.activity-timeline i { position:absolute; z-index:1; left:0; top:2px; width:15px; height:15px; border:4px solid #f5dfd9; border-radius:50%; background:var(--red); }
.activity-timeline b { font:600 16px var(--font-display); text-transform:uppercase; }
.activity-timeline p { margin:5px 0; color:#5f5a54; font-size:10px; line-height:1.5; white-space:pre-wrap; }
.activity-timeline small { color:#918a82; font-size:8px; }
.appointment-summary { padding:15px; background:#edf3ea; border-left:3px solid #3d774b; }
.appointment-summary b, .appointment-summary small { display:block; }
.appointment-summary small { margin-top:5px; color:#69716a; }
.appointment-form { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.appointment-form label { display:grid; gap:6px; color:#817b73; font-size:8px; text-transform:uppercase; letter-spacing:.1em; }
.appointment-form input, .appointment-form select { width:100%; min-height:43px; padding:10px; border:1px solid #d8d1c7; background:#f8f5ef; color:var(--ink); font:500 10px var(--font-body); }
.appointment-form label:last-of-type { grid-column:1 / -1; }
.appointment-form button { grid-column:1 / -1; width:max-content; padding:13px 17px; border:0; background:var(--red); color:white; font:700 9px var(--font-body); text-transform:uppercase; letter-spacing:.1em; cursor:pointer; }
.appointment-form button:disabled { opacity:.45; cursor:default; }
.estimate-section > h3 span { padding:5px 8px; background:#fff0cf; color:#8a5a00; font:600 8px var(--font-body); letter-spacing:.08em; }
.estimate-section > h3 span[data-estimate-status="sent"] { background:#e1f1e4; color:#2f6c3d; }
.estimate-meta { padding:13px 15px; border-left:3px solid var(--red); background:#f3efe8; }
.estimate-meta b, .estimate-meta small { display:block; }
.estimate-meta small { margin-top:4px; color:#837d75; }
.estimate-items { margin-top:16px; border:1px solid #ddd6cc; }
.estimate-item { display:grid; grid-template-columns:minmax(150px,2fr) 58px 90px 80px 28px; gap:7px; align-items:center; padding:8px; border-top:1px solid #e4ded5; }
.estimate-item:first-child { border-top:0; }
.estimate-item-head { padding-top:7px; padding-bottom:7px; background:#252626; color:#c5c3bf; font-size:7px; text-transform:uppercase; letter-spacing:.08em; }
.estimate-item input { min-width:0; width:100%; padding:9px 8px; border:1px solid #d8d1c7; background:#f8f5ef; color:var(--ink); font:500 9px var(--font-body); }
.estimate-item strong { font-size:9px; text-align:right; }
.estimate-item button { width:27px; height:27px; border:0; background:transparent; color:#8f8880; font-size:18px; cursor:pointer; }
.estimate-item button:disabled { opacity:.25; cursor:default; }
.add-estimate-item { margin-top:10px; padding:9px 12px; border:1px solid #cbc4b9; background:white; color:var(--ink); font:700 8px var(--font-body); text-transform:uppercase; letter-spacing:.08em; cursor:pointer; }
.estimate-options { display:grid; grid-template-columns:1fr 1fr 1fr; gap:10px; margin-top:18px; }
.estimate-options label, .estimate-notes { display:grid; gap:6px; color:#817b73; font-size:8px; text-transform:uppercase; letter-spacing:.1em; }
.estimate-options input, .estimate-options select, .estimate-notes textarea { width:100%; padding:10px; border:1px solid #d8d1c7; background:#f8f5ef; color:var(--ink); font:500 10px var(--font-body); }
.estimate-notes { margin-top:12px; }
.estimate-notes textarea { min-height:85px; resize:vertical; line-height:1.5; text-transform:none; letter-spacing:0; }
.estimate-totals { width:min(275px,100%); margin:18px 0 0 auto; display:grid; gap:7px; }
.estimate-totals span, .estimate-totals > strong { display:flex; justify-content:space-between; color:#68635d; font-size:9px; }
.estimate-totals > strong { padding-top:9px; border-top:1px solid #d6cec3; color:var(--ink); font-size:14px; text-transform:uppercase; }
.estimate-totals b { color:var(--ink); }
.estimate-actions { display:flex; flex-wrap:wrap; gap:9px; margin-top:18px; }
.estimate-actions button { padding:13px 17px; border:0; background:var(--red); color:white; font:700 9px var(--font-body); text-transform:uppercase; letter-spacing:.1em; cursor:pointer; }
.estimate-actions .view-estimate { display:inline-grid; place-items:center; margin:0; padding:13px 17px; border:1px solid #252626; color:#252626; font:700 9px var(--font-body); line-height:1; text-transform:uppercase; letter-spacing:.1em; }
.estimate-actions .mark-sent { background:#252626; }
.estimate-actions button:disabled { opacity:.45; cursor:default; }
.estimate-email-note { margin-top:11px !important; color:#8c867e !important; font-size:8px !important; }
.client-link-panel { margin-top:14px; padding:14px; display:flex; flex-wrap:wrap; align-items:center; gap:9px; border-left:3px solid var(--red); background:#f3efe8; }
.client-link-panel > div { margin-right:auto; }
.client-link-panel span { color:var(--red); font-size:8px; font-weight:700; text-transform:uppercase; letter-spacing:.12em; }
.client-link-panel p { margin:5px 0 0 !important; max-width:390px; color:#706a63 !important; font-size:8px !important; }
.client-link-panel a, .client-link-panel button { padding:11px 13px; border:0; background:#252626; color:white; font:700 8px var(--font-body); text-transform:uppercase; letter-spacing:.08em; cursor:pointer; }
.client-link-panel a { background:white; color:#252626; border:1px solid #252626; }
.estimate-response-summary { margin-top:12px; padding:15px; display:grid; gap:5px; border-left:3px solid #b9862d; background:#fff5df; }
.estimate-response-summary.approved { border-color:#3d7b4b; background:#edf6ee; }
.estimate-response-summary span { font:700 18px var(--font-display); text-transform:uppercase; }
.estimate-response-summary b { font-size:9px; font-weight:600; white-space:pre-wrap; }
.estimate-response-summary small { color:#77716a; font-size:7px; }
.estimate-response-summary img { width:180px; max-height:60px; object-fit:contain; object-position:left center; mix-blend-mode:multiply; }
.payment-section > h3 span { min-width:27px; height:27px; display:grid; place-items:center; border-radius:50%; background:#252626; color:white; font:700 9px var(--font-body); }
.payment-balance-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.payment-balance-grid > div { padding:15px; display:grid; gap:5px; background:#f3efe8; }
.payment-balance-grid small { color:#8a847c; font-size:7px; text-transform:uppercase; letter-spacing:.1em; }
.payment-balance-grid strong { font:600 23px var(--font-display); }
.payment-balance-grid .balance-due { background:#252626; color:white; }
.payment-balance-grid .balance-due small { color:#bdbab5; }
.online-payment-ready { margin-top:12px; padding:14px; display:flex; align-items:center; justify-content:space-between; gap:16px; border-left:3px solid var(--red); background:#fff7f4; }
.online-payment-ready b { color:#252626; font:600 18px var(--font-display); text-transform:uppercase; }
.online-payment-ready p { margin:4px 0 0 !important; color:#756f68 !important; font-size:8px !important; }
.online-payment-ready span { flex:0 0 auto; padding:7px 9px; background:#ede7de; color:#7f786f; font-size:7px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.payment-form { margin-top:18px; display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.payment-form label { display:grid; gap:6px; color:#817b73; font-size:8px; text-transform:uppercase; letter-spacing:.1em; }
.payment-form input, .payment-form select, .payment-form textarea { width:100%; min-height:43px; padding:10px; border:1px solid #d8d1c7; background:#f8f5ef; color:var(--ink); font:500 10px var(--font-body); }
.payment-form select option:disabled { color:#aaa; }
.payment-form .payment-notes { grid-column:1 / -1; }
.payment-form textarea { min-height:70px; resize:vertical; text-transform:none; letter-spacing:0; }
.payment-form > button { grid-column:1 / -1; width:max-content; padding:13px 17px; border:0; background:var(--red); color:white; font:700 9px var(--font-body); text-transform:uppercase; letter-spacing:.1em; cursor:pointer; }
.payment-form > button:disabled { opacity:.45; cursor:default; }
.payment-history { margin-top:22px; }
.payment-history h4 { margin:0 0 10px; font:600 18px var(--font-display); text-transform:uppercase; }
.payment-history article { padding:14px 0; display:grid; grid-template-columns:1fr 1fr; gap:10px; border-top:1px solid #ddd8d0; }
.payment-history article > div { display:grid; gap:3px; }
.payment-history article > div:nth-child(2) { text-align:right; }
.payment-history article b { font:600 20px var(--font-display); }
.payment-history article span, .payment-history article strong { font-size:8px; text-transform:uppercase; }
.payment-history article small { color:#817b73; font-size:7px; }
.payment-history article p { grid-column:1 / -1; margin:0 !important; color:#68645e !important; font-size:9px !important; }
.create-project-panel { margin-top:12px; padding:15px; display:flex; align-items:center; gap:12px; border:1px solid #d8d1c7; border-left:3px solid var(--red); background:#fff; }
.create-project-panel > div { margin-right:auto; display:grid; gap:4px; }
.create-project-panel b { font:600 17px var(--font-display); text-transform:uppercase; }
.create-project-panel span { color:#77716a; font-size:8px; }
.create-project-panel button, .create-project-panel a { padding:12px 14px; border:0; background:var(--red); color:white; font:700 8px var(--font-body); text-transform:uppercase; letter-spacing:.08em; cursor:pointer; }

/* Projects / Jobs */
.project-stat-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin:28px 0 10px; }
.project-stat-grid > div { padding:17px; display:flex; align-items:end; justify-content:space-between; background:white; border-top:2px solid #ccc4b9; }
.project-stat-grid small { color:#817b73; font-size:8px; text-transform:uppercase; letter-spacing:.1em; }
.project-stat-grid b { font:700 30px/.8 var(--font-display); }
.project-tools select { min-height:48px; padding:0 36px 0 14px; border:1px solid #d3ccc0; background:white; color:var(--ink); font:700 9px var(--font-body); text-transform:uppercase; }
.jobs-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.jobs-grid > button { min-width:0; padding:22px; border:0; border-top:3px solid var(--red); background:white; color:var(--ink); text-align:left; cursor:pointer; box-shadow:0 18px 45px rgba(42,34,25,.07); transition:.2s ease; }
.jobs-grid > button:hover { transform:translateY(-3px); box-shadow:0 25px 55px rgba(42,34,25,.13); }
.jobs-grid > button > div:first-child { display:flex; justify-content:space-between; gap:10px; align-items:center; }
.jobs-grid > button > div:first-child > span { color:var(--red); font-size:8px; font-weight:700; letter-spacing:.12em; }
.jobs-grid i { padding:6px 8px; background:#fff0cf; color:#855a08; font-style:normal; font-size:7px; text-transform:uppercase; }
.jobs-grid i[data-job-status="In Progress"] { background:#f6dfda; color:#a73327; }
.jobs-grid i[data-job-status="Final Inspection"] { background:#e4e9f7; color:#3b4f83; }
.jobs-grid i[data-job-status="Completed"] { background:#e1f1e4; color:#2f6c3d; }
.jobs-grid h2 { margin:20px 0 7px; font:600 31px/.9 var(--font-display); text-transform:uppercase; }
.jobs-grid p { min-height:34px; margin:0; color:#77716a; font-size:9px; line-height:1.5; }
.jobs-grid dl { margin:18px 0; padding:13px 0; display:grid; grid-template-columns:1fr 1fr; gap:15px; border-top:1px solid #e0d9d0; border-bottom:1px solid #e0d9d0; }
.jobs-grid dt { color:#999189; font-size:7px; text-transform:uppercase; }
.jobs-grid dd { margin:5px 0 0; overflow:hidden; font-size:9px; text-overflow:ellipsis; white-space:nowrap; }
.jobs-grid footer { padding:0; display:flex; justify-content:space-between; background:transparent; color:var(--ink); font-size:8px; text-transform:uppercase; }
.jobs-grid footer span { color:var(--red); font-weight:700; }
.project-linked { display:flex; gap:12px; align-items:center; color:#827c74; font-size:8px; text-transform:uppercase; }
.project-linked a { padding-bottom:3px; border-bottom:1px solid var(--ink); color:var(--ink); font-weight:700; }
.project-control { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.project-control label { display:grid; gap:6px; color:#817b73; font-size:8px; text-transform:uppercase; letter-spacing:.1em; }
.project-control input, .project-control select, .project-control textarea { min-width:0; width:100%; min-height:44px; padding:10px; border:1px solid #d8d1c7; background:#f8f5ef; color:var(--ink); font:500 10px var(--font-body); }
.project-control label:nth-child(4) { grid-column:1/-1; }
.project-control textarea { min-height:65px; resize:vertical; text-transform:none; }
.project-control button { grid-column:1/-1; width:max-content; padding:13px 17px; border:0; background:var(--red); color:white; font:700 9px var(--font-body); text-transform:uppercase; cursor:pointer; }
.followup-ready { padding:13px; border-left:3px solid #3d7b4b; background:#edf6ee; }
.project-payment-form { margin-top:15px; display:grid; grid-template-columns:repeat(2,1fr); gap:9px; }
.project-payment-form input, .project-payment-form select { min-width:0; width:100%; min-height:42px; padding:9px; border:1px solid #d8d1c7; background:#f8f5ef; color:var(--ink); font:500 9px var(--font-body); }
.project-payment-form button { width:max-content; padding:12px 15px; border:0; background:var(--red); color:white; font:700 8px var(--font-body); text-transform:uppercase; cursor:pointer; }
.invoice-admin-section h3 span{min-width:27px;height:27px;display:grid;place-items:center;border-radius:50%;background:#252626;color:#fff;font:700 9px var(--font-body)}
.invoice-automation{display:grid;gap:10px;padding:15px;border:1px solid #ded7ce;background:#f8f5ef}.invoice-automation label{display:flex;align-items:center;gap:9px;font-size:9px;font-weight:700}.invoice-automation input{accent-color:var(--red)}.invoice-automation small{color:#7a736b;font-size:8px;line-height:1.55}.invoice-actions{display:flex;gap:8px;margin:12px 0}.invoice-actions button,.invoice-history button,.invoice-history a{padding:10px 12px;border:0;background:#292a2a;color:#fff;font:700 7px var(--font-body);letter-spacing:.05em;text-transform:uppercase;cursor:pointer}.invoice-actions button:first-child,.invoice-history button{background:var(--red)}.invoice-notice{padding:11px 13px;background:#e9f3e8;color:#285b31;font-size:8px;line-height:1.5}.invoice-history{display:grid;gap:8px}.invoice-history article{padding:13px;display:grid;grid-template-columns:1fr auto;gap:10px;border:1px solid #e0d9d0}.invoice-history article>div b,.invoice-history article>div span,.invoice-history article>div strong,.invoice-history article>div small{display:block}.invoice-history article>div b{font-size:10px}.invoice-history article>div span,.invoice-history article>div small{margin-top:4px;color:#7e776f;font-size:7px}.invoice-history article>div:nth-child(2){text-align:right}.invoice-history article>div strong{color:#a52217;font-size:8px}.invoice-history article>div strong.paid{color:#28723b}.invoice-history nav{grid-column:1/-1;display:flex;gap:7px}.invoice-history button:disabled{opacity:.5}
.portal-invoice-list{display:grid;gap:8px}.portal-invoice-list article{padding:16px;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:20px;border:1px solid #e0dbd4}.portal-invoice-list b,.portal-invoice-list span,.portal-invoice-list strong,.portal-invoice-list small{display:block}.portal-invoice-list b{font-size:10px}.portal-invoice-list span,.portal-invoice-list small{margin-top:5px;color:#817a73;font-size:8px}.portal-invoice-list strong{color:#a52217;font-size:8px}.portal-invoice-list strong.paid{color:#28723b}.portal-invoice-list a{padding:11px 13px;background:#292a2a;color:#fff;font-size:7px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.invoice-payment-history{flex:1}.invoice-payment-history>span{display:block;margin-bottom:12px;color:var(--red);font-size:8px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.invoice-payment-history p{position:relative;margin:0;padding:10px 90px 10px 0;border-bottom:1px solid #e5dfd8;font-size:8px}.invoice-payment-history p b,.invoice-payment-history p small{display:block}.invoice-payment-history p small{margin-top:4px;color:#7c756e}.invoice-payment-history p strong{position:absolute;right:0;top:12px}.invoice-status{margin-top:12px;padding:10px;background:#aa2a1e;color:#fff;font-size:9px;font-weight:900;letter-spacing:.12em;text-align:center}.invoice-status.paid-in-full{background:#28723b}
@media(max-width:700px){.portal-invoice-list article{grid-template-columns:1fr}.portal-invoice-list article>div:nth-child(2){text-align:left}.invoice-history article{grid-template-columns:1fr}.invoice-history article>div:nth-child(2){text-align:left}.invoice-history nav{grid-column:auto}.invoice-document .estimate-document-bottom{grid-template-columns:1fr}}
.project-upload { display:grid; grid-template-columns:1fr 1fr; gap:9px; }
.project-upload select, .project-upload input { min-width:0; width:100%; min-height:42px; padding:9px; border:1px solid #d8d1c7; background:#f8f5ef; color:var(--ink); font:500 9px var(--font-body); }
.project-upload label { grid-column:1/-1; padding:13px; border:1px dashed #bdb5aa; color:#716b64; font-size:9px; cursor:pointer; }
.project-upload label input { display:none; }
.project-upload button { width:max-content; padding:12px 15px; border:0; background:var(--red); color:white; font:700 8px var(--font-body); text-transform:uppercase; cursor:pointer; }
.project-files { margin-top:15px; display:grid; grid-template-columns:1fr 1fr; gap:9px; }
.project-files a { min-width:0; padding:12px; display:grid; gap:5px; border:1px solid #ddd6cc; }
.project-files span { width:max-content; padding:4px 6px; background:#252626; color:white; font-size:6px; }
.project-files b { overflow:hidden; font-size:9px; text-overflow:ellipsis; white-space:nowrap; }
.project-files small { color:#817b73; font-size:7px; line-height:1.4; }

/* Printable estimate */
body:has(.estimate-document-shell) { margin:0; background:#dedbd5; color:#202121; }
body:has(.estimate-document-shell) > .site-header, body:has(.estimate-document-shell) > footer, body:has(.estimate-document-shell) > .mobile-contact-bar { display:none; }
.estimate-document-shell { min-height:100vh; padding:28px; }
.estimate-document-toolbar { width:min(8.5in,100%); margin:0 auto 18px; display:flex; justify-content:space-between; align-items:center; }
.estimate-document-toolbar a, .estimate-document-toolbar button { padding:12px 16px; border:0; background:#202121; color:white; font:700 9px var(--font-body); text-transform:uppercase; letter-spacing:.1em; cursor:pointer; }
.estimate-document { width:min(8.5in,100%); min-height:11in; margin:0 auto; padding:.55in .62in .45in; display:flex; flex-direction:column; background:white; box-shadow:0 20px 65px rgba(0,0,0,.16); }
.estimate-document-header { display:flex; align-items:center; justify-content:space-between; gap:25px; padding-bottom:25px; border-bottom:5px solid #202121; }
.estimate-document-header img { width:290px; max-width:58%; height:auto; }
.estimate-document-header > div { display:grid; justify-items:end; gap:2px; text-transform:uppercase; }
.estimate-document-header span { color:#cf3327; font:700 34px/.9 var(--font-display); }
.estimate-document-header strong { color:#202121; font-size:11px; letter-spacing:.1em; }
.estimate-document-header small { padding:4px 7px; background:#e5f1e5; color:#397246; font-size:7px; letter-spacing:.1em; }
.estimate-document-intro { display:grid; grid-template-columns:1.2fr .8fr; gap:50px; padding:38px 0 30px; }
.estimate-document-intro span, .estimate-document-scope > span, .estimate-document-notes > span { color:#cf3327; font-size:8px; font-weight:700; text-transform:uppercase; letter-spacing:.16em; }
.estimate-document-intro h1 { margin:8px 0 12px; font:600 33px/.95 var(--font-display); text-transform:uppercase; }
.estimate-document-intro p { margin:7px 0; color:#68645e; font-size:9px; line-height:1.6; }
.estimate-document-intro dl { margin:0; display:grid; gap:9px; }
.estimate-document-intro dl div { display:flex; justify-content:space-between; gap:12px; padding-bottom:8px; border-bottom:1px solid #ddd8cf; }
.estimate-document-intro dt { color:#8a857e; font-size:8px; text-transform:uppercase; }
.estimate-document-intro dd { margin:0; color:#202121; font-size:8px; font-weight:700; text-align:right; text-transform:uppercase; }
.estimate-document-scope { margin-bottom:25px; padding:17px 20px; border-left:4px solid #cf3327; background:#f4f0e9; }
.estimate-document-scope p { margin:8px 0 0; color:#55514c; font-size:9px; line-height:1.65; }
.estimate-document-table { width:100%; border-collapse:collapse; font-size:9px; }
.estimate-document-table th { padding:12px 10px; background:#202121; color:white; font-size:7px; text-align:left; text-transform:uppercase; letter-spacing:.1em; }
.estimate-document-table th:nth-child(n+2), .estimate-document-table td:nth-child(n+2) { text-align:right; }
.estimate-document-table td { padding:14px 10px; border-bottom:1px solid #ddd8cf; vertical-align:top; }
.estimate-document-table td:first-child { width:55%; font-weight:600; }
.estimate-document-bottom { display:grid; grid-template-columns:1fr 260px; gap:45px; margin-top:32px; }
.estimate-document-notes p { margin:9px 0 0; color:#68645e; font-size:8px; line-height:1.7; white-space:pre-wrap; }
.estimate-document-totals { display:grid; gap:8px; }
.estimate-document-totals p, .estimate-document-totals strong { margin:0; display:flex; justify-content:space-between; gap:16px; color:#68645e; font-size:9px; }
.estimate-document-totals strong { padding-top:10px; border-top:2px solid #202121; color:#202121; font-size:15px; text-transform:uppercase; }
.estimate-document-totals .deposit { margin-top:4px; padding:10px; background:#f4f0e9; color:#202121; font-weight:700; }
.estimate-document-footer { margin-top:auto; padding-top:22px; display:flex; align-items:end; justify-content:space-between; border-top:1px solid #d5cfc6; }
.estimate-document-footer div { display:flex; align-items:center; gap:10px; }
.estimate-document-footer img { width:40px; height:40px; border-radius:9px; }
.estimate-document-footer strong { font:600 15px var(--font-display); text-transform:uppercase; }
.estimate-document-footer p { margin:0; color:#77716a; font-size:7px; line-height:1.6; text-align:right; }
.estimate-document-photos { margin:45px -.62in -.45in; padding:.5in .62in .42in; background:white; break-before:page; page-break-before:always; }
.estimate-document-photos > header { padding-bottom:18px; display:flex; align-items:end; justify-content:space-between; gap:20px; border-bottom:4px solid #202121; }
.estimate-document-photos > header span { color:#cf3327; font:600 28px/.95 var(--font-display); text-transform:uppercase; }
.estimate-document-photos > header strong { color:#77716a; font-size:8px; text-transform:uppercase; letter-spacing:.1em; }
.estimate-document-photos > div { margin-top:24px; display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.estimate-document-photos figure { margin:0; break-inside:avoid; page-break-inside:avoid; border:1px solid #ddd8cf; background:#f8f5ef; }
.estimate-document-photos figure img { display:block; width:100%; height:245px; object-fit:cover; background:#ece8e1; }
.estimate-document-photos figcaption { padding:11px 13px; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.estimate-document-photos figcaption b { font-size:8px; text-transform:uppercase; letter-spacing:.08em; }
.estimate-document-photos figcaption span { max-width:75%; color:#77716a; font-size:7px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.estimate-document-photos > footer { margin-top:30px; padding-top:15px; display:flex; align-items:center; gap:10px; border-top:1px solid #d5cfc6; color:#77716a; font-size:7px; text-transform:uppercase; letter-spacing:.08em; }
.estimate-document-photos > footer img { width:34px; height:34px; border-radius:8px; }
.estimate-document-state { min-height:100vh; display:grid; place-content:center; justify-items:center; gap:12px; background:#eee9df; text-align:center; }
.estimate-document-state img { width:65px; height:65px; border-radius:14px; }
.estimate-document-state h1 { margin:0; font-size:52px; }
.estimate-document-state p { color:#77716a; font-size:10px; }
.estimate-document-state a { padding:12px 16px; background:#202121; color:white; font-size:9px; text-transform:uppercase; }
@page { size:Letter; margin:0; }
@media print {
  body:has(.estimate-document-shell) { background:white; print-color-adjust:exact; -webkit-print-color-adjust:exact; }
  .estimate-document-shell { padding:0; }
  .estimate-document-toolbar { display:none; }
  .estimate-document { width:8.5in; min-height:11in; box-shadow:none; }
  .estimate-document-photos { min-height:10.1in; }
}

/* Customer estimate approval */
body:has(.client-estimate-shell), body:has(.client-estimate-state) { margin:0; background:#e6e2dc; color:#202121; }
body:has(.client-estimate-shell) > .site-header, body:has(.client-estimate-shell) > footer, body:has(.client-estimate-shell) > .mobile-contact-bar,
body:has(.client-estimate-state) > .site-header, body:has(.client-estimate-state) > footer, body:has(.client-estimate-state) > .mobile-contact-bar { display:none; }
.client-estimate-shell { width:min(980px,calc(100% - 32px)); margin:32px auto; padding:58px 65px 45px; background:white; box-shadow:0 22px 70px rgba(0,0,0,.12); }
.client-estimate-top { padding-bottom:27px; display:flex; justify-content:space-between; align-items:center; gap:24px; border-bottom:5px solid #202121; }
.client-estimate-top img { width:365px; max-width:58%; height:auto; }
.client-estimate-top > div { display:grid; justify-items:end; text-transform:uppercase; }
.client-estimate-top span { color:#cf3327; font:700 45px/.9 var(--font-display); }
.client-estimate-top strong { margin-top:5px; font-size:12px; letter-spacing:.12em; }
.client-estimate-title { padding:44px 0 35px; display:grid; grid-template-columns:1.1fr .9fr; gap:70px; }
.client-estimate-title > div > span, .client-estimate-overview > span, .client-estimate-bottom > div:first-child > span { color:#cf3327; font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:.16em; }
.client-estimate-title h1 { margin:9px 0 13px; font:600 38px/.95 var(--font-display); text-transform:uppercase; }
.client-estimate-title p { color:#6c6761; font-size:10px; }
.client-estimate-title dl { margin:0; display:grid; gap:10px; }
.client-estimate-title dl div { padding-bottom:9px; display:flex; justify-content:space-between; gap:15px; border-bottom:1px solid #ddd8cf; }
.client-estimate-title dt { color:#8a857e; font-size:8px; text-transform:uppercase; }
.client-estimate-title dd { margin:0; font-size:8px; font-weight:700; text-align:right; text-transform:uppercase; }
.client-estimate-overview { padding:19px 22px; border-left:4px solid #cf3327; background:#f4f0e9; }
.client-estimate-overview p { margin:9px 0 0; color:#57534e; font-size:10px; line-height:1.6; }
.client-estimate-items { margin-top:28px; border-bottom:1px solid #ddd8cf; }
.client-estimate-item { padding:14px 11px; display:grid; grid-template-columns:1fr 75px 120px 120px; gap:10px; font-size:10px; }
.client-estimate-item span:nth-child(n+2) { text-align:right; }
.client-estimate-item.head { background:#202121; color:white; font-size:8px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.client-estimate-bottom { padding:35px 0 44px; display:grid; grid-template-columns:1fr 310px; gap:55px; }
.client-estimate-bottom > div:first-child p { color:#68645e; font-size:9px; line-height:1.7; white-space:pre-wrap; }
.client-estimate-totals { display:grid; gap:9px; }
.client-estimate-totals p, .client-estimate-totals strong { margin:0; display:flex; justify-content:space-between; gap:20px; color:#68645e; font-size:10px; }
.client-estimate-totals strong { padding-top:11px; border-top:2px solid #202121; color:#202121; font-size:17px; text-transform:uppercase; }
.client-estimate-totals .deposit { padding:11px; background:#f4f0e9; color:#202121; font-weight:700; }
.client-estimate-photos { margin:0 0 38px; padding:30px; border-top:4px solid #202121; background:#f8f5ef; break-inside:avoid; page-break-inside:avoid; }
.client-estimate-photos > header { display:flex; align-items:end; justify-content:space-between; gap:20px; }
.client-estimate-photos > header span { color:#cf3327; font-size:8px; font-weight:700; text-transform:uppercase; letter-spacing:.15em; }
.client-estimate-photos h2 { margin:5px 0 0; font:600 31px/.95 var(--font-display); text-transform:uppercase; }
.client-estimate-photos > header strong { color:#77716a; font-size:8px; text-transform:uppercase; letter-spacing:.1em; }
.client-estimate-photos > p { margin:13px 0 22px; max-width:650px; color:#68645e; font-size:9px; line-height:1.6; }
.client-estimate-photos > div { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.client-estimate-photos figure { margin:0; border:1px solid #ddd8cf; background:white; break-inside:avoid; page-break-inside:avoid; }
.client-estimate-photos figure img { display:block; width:100%; height:240px; object-fit:cover; background:#ece8e1; }
.client-estimate-photos figcaption { padding:10px 12px; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.client-estimate-photos figcaption b { font-size:8px; text-transform:uppercase; letter-spacing:.08em; }
.client-estimate-photos figcaption span { max-width:75%; color:#77716a; font-size:7px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.client-estimate-response { padding:46px; background:#202121; color:white; text-align:center; }
.client-estimate-response h2 { margin:7px 0 10px; font:600 50px/.95 var(--font-display); text-transform:uppercase; }
.client-estimate-response > p:not(.section-kicker) { margin:0 auto; max-width:600px; color:#c7c4bf; font-size:11px; line-height:1.7; }
.client-response-actions { margin-top:27px; display:flex; justify-content:center; gap:11px; flex-wrap:wrap; }
.client-response-actions button, .submit-response { padding:15px 20px; border:1px solid #cf3327; background:#cf3327; color:white; font:700 9px var(--font-body); text-transform:uppercase; letter-spacing:.1em; cursor:pointer; }
.client-response-actions button:last-child { background:transparent; border-color:#797979; }
.approval-form, .changes-form { max-width:650px; margin:30px auto 0; padding:27px; display:grid; gap:14px; background:white; color:#202121; text-align:left; }
.approval-form label:not(.approval-confirm), .changes-form label { display:grid; gap:7px; color:#79736b; font-size:8px; text-transform:uppercase; letter-spacing:.1em; }
.approval-form input[type="text"], .approval-form label > input:not([type]), .changes-form textarea { padding:13px; border:1px solid #d8d1c7; background:#f8f5ef; color:#202121; font:500 11px var(--font-body); }
.signature-help { color:#9b958d; font-size:8px; text-transform:none; letter-spacing:0; }
.approval-form canvas { width:100%; height:140px; border:1px solid #cfc8be; background:#fcfaf7; touch-action:none; }
.clear-signature { justify-self:start; padding:7px 0; border:0; background:transparent; color:#cf3327; font:700 8px var(--font-body); text-transform:uppercase; cursor:pointer; }
.approval-confirm { display:flex; align-items:flex-start; gap:8px; font-size:9px; line-height:1.5; }
.approval-confirm input { margin-top:2px; }
.changes-form textarea { min-height:140px; resize:vertical; line-height:1.6; text-transform:none; letter-spacing:0; }
.client-response-error { margin:0 !important; padding:10px; border-left:3px solid #cf3327; background:#fff0ee; color:#9a2d24 !important; font-size:9px !important; text-align:left; }
.submit-response { justify-self:start; }
.submit-response:disabled { opacity:.5; }
.client-response-complete { padding:48px; background:#edf6ee; text-align:center; }
.client-response-complete i { width:50px; height:50px; margin:auto; display:grid; place-items:center; border-radius:50%; background:#3d7b4b; color:white; font-size:24px; font-style:normal; }
.client-response-complete > span { display:block; margin-top:16px; color:#3d7b4b; font-size:8px; font-weight:700; text-transform:uppercase; letter-spacing:.15em; }
.client-response-complete h2 { margin:7px 0; font:600 48px var(--font-display); text-transform:uppercase; }
.client-response-complete > p { max-width:650px; margin:0 auto; color:#5f665f; font-size:10px; line-height:1.7; }
.client-response-complete > div { max-width:550px; margin:24px auto 0; padding:17px; display:grid; gap:5px; background:white; }
.client-response-complete > div small { color:#77716a; }
.client-estimate-footer { margin-top:38px; padding-top:20px; display:flex; align-items:center; gap:12px; border-top:1px solid #d8d2ca; }
.client-estimate-footer img { width:46px; height:46px; border-radius:10px; }
.client-estimate-footer div { display:grid; }
.client-estimate-footer strong { font:600 18px var(--font-display); text-transform:uppercase; }
.client-estimate-footer span { color:#817b73; font-size:8px; }
.client-estimate-state { min-height:100vh; padding:30px; display:grid; place-content:center; justify-items:center; text-align:center; }
.client-estimate-state img { width:70px; border-radius:15px; }
.client-estimate-state h1 { margin:15px 0 5px; font:600 60px var(--font-display); text-transform:uppercase; }
.client-estimate-state p { color:#716c65; }
.crm-calendar { margin-top:28px; }
.calendar-controls { display:flex; align-items:center; justify-content:space-between; padding:17px 20px; background:#252626; color:white; }
.calendar-controls h2 { margin:0; font:600 27px var(--font-display); text-transform:uppercase; }
.calendar-controls button { width:38px; height:38px; border:1px solid #555; background:transparent; color:white; cursor:pointer; }
.calendar-grid { border:1px solid #d6cec2; background:white; box-shadow:0 25px 65px rgba(42,34,25,.07); }
.calendar-weekdays, .calendar-days { display:grid; grid-template-columns:repeat(7,1fr); }
.calendar-weekdays span { padding:10px; border-right:1px solid #e2ddd5; color:#8a847b; font-size:8px; text-align:center; text-transform:uppercase; letter-spacing:.1em; }
.calendar-day { min-height:115px; padding:9px; border-top:1px solid #e2ddd5; border-right:1px solid #e2ddd5; }
.calendar-day.empty { background:#f4f0e9; }
.calendar-day > b { color:#777168; font-size:9px; }
.calendar-day button { width:100%; margin-top:7px; padding:8px; display:grid; gap:2px; border:0; border-left:3px solid var(--red); background:#fff1ed; color:#292a29; text-align:left; cursor:pointer; }
.calendar-day button strong { font-size:9px; }
.calendar-day button span { font-size:9px; }
.calendar-day button small { color:#837d75; font-size:7px; }
.upcoming-list { margin-top:28px; }
.upcoming-list h3 { font:600 28px var(--font-display); text-transform:uppercase; }
.upcoming-list > button { width:100%; padding:17px; display:grid; grid-template-columns:150px 1fr auto; gap:20px; align-items:center; border:0; border-bottom:1px solid #ddd5c9; background:white; color:inherit; text-align:left; cursor:pointer; }
.upcoming-list time, .upcoming-list > button > span { display:grid; gap:4px; font-size:9px; }
.upcoming-list time strong { font-size:12px; }
.upcoming-list > button > span b { font:600 18px var(--font-display); text-transform:uppercase; }
.upcoming-list small, .upcoming-list i { color:#837d75; font-size:8px; font-style:normal; }
@media (max-width:900px) {
  .crm-login { grid-template-columns:1fr; }
  .crm-login-brand { min-height:44vh; }
  .crm-login-card { min-height:56vh; }
  .client-estimate-shell { padding:45px 38px 35px; }
  .client-estimate-title { gap:35px; }
  .requests-app { grid-template-columns:1fr; }
  .requests-sidebar { position:static; height:auto; padding:18px 24px; flex-direction:row; align-items:center; gap:20px; }
  .requests-brand { padding:0; border:0; }
  .requests-back { margin:0 0 0 auto; }
  .crm-nav { display:flex; margin:0; }
  .notification-pending { display:none; }
  .crm-account { margin:0; padding:0 0 0 15px; border-top:0; border-left:1px solid #3e3f3f; }
  .crm-account small { display:none; }
  .requests-main { padding:45px 24px; }
  .request-row { grid-template-columns:1.2fr 1fr .7fr; }
  .request-row > span:nth-child(3), .request-row > span:nth-child(4) { display:none; }
  .jobs-grid { grid-template-columns:1fr; }
}
@media (max-width:620px) {
  .crm-login-brand { min-height:38vh; padding:25px 22px; }
  .crm-login-brand h1 { font-size:74px; }
  .crm-login-brand strong { margin-top:18px; }
  .crm-login-card { min-height:62vh; padding:22px; }
  .crm-login-card > div { padding:34px 27px; }
  .requests-sidebar { flex-wrap:wrap; }
  .crm-account { width:100%; padding:12px 0 0; border-left:0; border-top:1px solid #3e3f3f; }
  .crm-account small { display:block; }
  .client-estimate-shell { width:100%; margin:0; padding:28px 19px; box-shadow:none; }
  .client-estimate-top { align-items:flex-start; }
  .client-estimate-top img { width:220px; max-width:63%; }
  .client-estimate-top span { font-size:31px; }
  .client-estimate-top strong { font-size:8px; }
  .client-estimate-title { padding:30px 0; grid-template-columns:1fr; gap:24px; }
  .client-estimate-title h1 { font-size:34px; }
  .client-estimate-overview { padding:16px; }
  .client-estimate-item { grid-template-columns:1fr 50px 75px; font-size:9px; }
  .client-estimate-item span:nth-child(3) { display:none; }
  .client-estimate-bottom { grid-template-columns:1fr; gap:28px; }
  .client-estimate-photos { padding:22px 16px; }
  .client-estimate-photos > header { align-items:flex-start; flex-direction:column; gap:8px; }
  .client-estimate-photos > div { grid-template-columns:1fr; }
  .client-estimate-photos figure img { height:220px; }
  .client-estimate-response, .client-response-complete { padding:35px 18px; }
  .client-estimate-response h2, .client-response-complete h2 { font-size:39px; }
  .approval-form, .changes-form { padding:18px; }
  .approval-form canvas { height:120px; }
  body:has(.requests-app) { padding-bottom:0; }
  .requests-brand span { display:none; }
  .requests-brand strong { font-size:16px; }
  .requests-brand img { width:40px; height:40px; }
  .requests-head { align-items:flex-start; flex-direction:column; }
  .requests-head h1 { font-size:52px; }
  .requests-toolbar { align-items:stretch; flex-direction:column; }
  .requests-toolbar > span { align-self:flex-end; }
  .request-row { grid-template-columns:1fr auto; gap:12px; }
  .request-row > span:nth-child(2) { display:none; }
  .request-drawer h2 { font-size:43px; }
  .request-drawer dl, .request-photos { grid-template-columns:1fr; }
  .calendar-day { min-height:75px; padding:4px; }
  .calendar-day button { padding:5px; }
  .calendar-day button span, .calendar-day button small { display:none; }
  .upcoming-list > button { grid-template-columns:110px 1fr; }
  .upcoming-list > button > i { display:none; }
  .appointment-form { grid-template-columns:1fr; }
  .appointment-form label:last-of-type, .appointment-form button { grid-column:1; }
  .estimate-item { grid-template-columns:1fr 58px 78px 25px; }
  .estimate-item > strong { grid-column:1 / 4; padding-top:3px; }
  .estimate-item-head { display:none; }
  .estimate-options { grid-template-columns:1fr; }
  .payment-balance-grid, .payment-form { grid-template-columns:1fr; }
  .payment-form .payment-notes, .payment-form > button { grid-column:1; }
  .online-payment-ready { align-items:flex-start; flex-direction:column; }
  .project-stat-grid { grid-template-columns:1fr 1fr; }
  .project-control, .project-payment-form, .project-upload, .project-files { grid-template-columns:1fr; }
  .project-control label:nth-child(4), .project-upload label { grid-column:1; }
  .estimate-document-shell { padding:12px; overflow:auto; }
  .estimate-document { min-width:0; }
}

/* Responsive reliability: public site, CRM, client portal and documents */
html,body{max-width:100%;overflow-x:clip}img,video{max-width:100%}button,input,select,textarea{max-width:100%}.mobile-menu-open{overflow:hidden}
@media(max-width:900px){
  .requests-sidebar{position:sticky;top:0;z-index:90;overflow-x:hidden}
  .crm-nav{position:static;inset:auto;transform:none;opacity:1;visibility:visible;pointer-events:auto;padding:0;background:transparent;overflow:visible}
  .crm-nav a,.crm-nav button{flex:0 0 auto;min-height:44px;display:flex;align-items:center}
  .request-drawer{overscroll-behavior:contain}
  .estimate-document-toolbar{position:sticky;top:0;z-index:5;padding:10px;background:#dedbd5}
}
@media(max-width:620px){
  body{padding-bottom:calc(64px + env(safe-area-inset-bottom))}
  body:has(.requests-app),body:has(.crm-login),body:has(.portal-login),body:has(.client-portal),body:has(.estimate-document-shell),body:has(.client-estimate-shell){padding-bottom:0}
  .site-header{height:72px;padding:0 16px}.site-header.is-scrolled{height:68px}.brand-primary-logo{width:min(185px,60vw)}.menu-toggle{width:44px;height:44px}.main-nav{inset:72px 0 auto;max-height:calc(100dvh - 72px);padding:24px 20px 34px}.site-header.is-scrolled .main-nav{inset:68px 0 auto;max-height:calc(100dvh - 68px)}.main-nav> a,.nav-services-toggle{font-size:25px}.nav-dropdown-panel{grid-template-columns:1fr;padding-left:12px}.nav-dropdown.is-open .nav-dropdown-panel{max-height:none}.nav-dropdown-panel a{min-height:42px;display:flex;align-items:center}.mobile-contact-bar{height:calc(64px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom)}
  .hero{height:auto;min-height:100svh}.hero-content{width:calc(100% - 36px);margin-left:18px;padding-top:130px}.hero-content h1{font-size:clamp(54px,18vw,78px)}.hero-proof{left:18px;right:18px}.hero-proof strong{font-size:18px}.hero-actions .button{min-height:54px}.next-banner a{width:100%}.quote-form button,.submit-button{width:100%;min-height:50px}
  .portal-login-visual{min-height:34svh}.portal-login-panel{min-height:66svh;padding:14px}.portal-login-panel form{padding:28px 20px}.portal-login-panel form>img{margin-bottom:20px}.portal-login-panel h2{font-size:43px}.portal-topbar{min-height:72px;gap:10px}.portal-topbar>a{min-width:0}.portal-topbar>a span{font-size:8px}.portal-topbar img{width:40px;height:40px}.portal-topbar>div{display:block}.portal-topbar button{min-height:44px;margin:0;padding:10px}.portal-shell{width:calc(100% - 20px);padding:26px 0 45px}.portal-card>header{align-items:flex-start;flex-direction:column;gap:10px}.portal-card>header>span{align-self:flex-start}.portal-welcome h1{font-size:46px}.portal-welcome>div>span,.portal-topbar span,.portal-documents b,.portal-invoice-list b{overflow-wrap:anywhere}.portal-summary-grid article{padding:20px}.portal-steps{grid-template-columns:1fr;gap:0;overflow:visible;padding:0}.portal-steps>div{min-width:0;min-height:58px;grid-template-columns:34px 1fr;justify-items:start;align-items:center;text-align:left}.portal-steps>div:before{top:-50%;bottom:50%;left:15px;right:auto;width:2px;height:auto}.portal-steps>div:first-child:before{display:none}.portal-steps i{grid-column:1}.portal-steps span{grid-column:2}.portal-estimate-items>div{align-items:flex-start}.portal-estimate-items>div>span{min-width:0;overflow-wrap:anywhere}.portal-payments article{align-items:flex-start;flex-direction:column;gap:8px}.portal-payments article>div:last-child{text-align:left}.portal-thread article{max-width:92%}.portal-messages textarea{width:100%}.portal-messages button,.portal-review-save,.portal-google-review button{width:100%;min-height:46px}.portal-review-stars{justify-content:space-between}.portal-review-stars button{width:44px;height:44px}.portal-documents a{min-width:0}.portal-documents span{min-width:0}.portal-invoice-list article{gap:12px}.portal-invoice-list a{width:100%;min-height:44px;display:flex;align-items:center;justify-content:center}.portal-photo-grid a,.portal-photo-grid img{min-height:210px}
  .crm-login-brand{min-height:34svh}.crm-login-card{min-height:66svh;padding:14px}.crm-login-card>div{padding:28px 20px}.crm-login-card img{margin-bottom:20px}.crm-login-card h2{font-size:43px}.crm-login-button{min-height:52px}.crm-password-field button{min-width:54px;min-height:40px;right:4px}
  .requests-sidebar{display:grid;grid-template-columns:minmax(0,1fr) auto;height:auto;padding:12px 14px;gap:10px 12px}.requests-brand{min-width:0;padding:0;border:0}.requests-brand div{min-width:0}.requests-brand strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.requests-back{margin:0;align-self:center;font-size:8px}.crm-nav{grid-column:1/-1;width:100%;display:flex;gap:4px;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin}.crm-nav a,.crm-nav button{padding:10px 12px;white-space:nowrap;border-left:0;border-bottom:2px solid transparent}.crm-nav a.active,.crm-nav button.active{border-left:0;border-bottom-color:var(--red-bright)}.crm-account{grid-column:1/-1;width:100%;padding:10px 0 0;display:grid;grid-template-columns:1fr auto;align-items:center;border-left:0;border-top:1px solid #3e3f3f}.crm-account>span,.crm-account small{display:none}.crm-account b{grid-column:1}.crm-account button,.crm-account a{grid-column:2;grid-row:1;margin:0;min-height:40px;padding:0 8px}.requests-main{padding:30px 14px 45px}.requests-head{gap:18px;padding-bottom:24px}.requests-head h1{font-size:46px;overflow-wrap:anywhere}.requests-count{align-self:flex-end}.requests-toolbar label,.project-tools select{width:100%;min-height:48px}.project-stat-grid{gap:7px}.project-stat-grid>div{padding:14px 11px}.project-stat-grid small{font-size:7px}.jobs-grid>button{padding:18px}.jobs-grid h2{font-size:28px}.jobs-grid footer{gap:10px;flex-wrap:wrap}.request-row{padding:14px 12px}.request-row strong{font-size:16px}.request-drawer{inset:0;width:100%;padding:68px 16px 32px}.drawer-close{position:fixed;z-index:2;top:12px;right:12px;width:46px;height:46px}.request-drawer h2{padding-right:8px;font-size:40px;overflow-wrap:anywhere}.drawer-status{align-items:flex-start;flex-direction:column}.drawer-status select{width:100%;min-height:44px}.request-drawer section{margin-top:28px;padding-top:20px}.request-drawer h3{gap:10px;flex-wrap:wrap}.request-drawer section>a{overflow-wrap:anywhere}.note-composer button,.appointment-form button,.payment-form>button,.project-control button,.project-payment-form button,.project-upload button,.portal-admin-section>button,.google-review-setting button{width:100%;min-height:46px}.estimate-item{grid-template-columns:1fr 1fr 38px;gap:8px;padding:10px}.estimate-item>input:first-child{grid-column:1/-1}.estimate-item>strong{grid-column:1/3;text-align:left}.estimate-item>button{grid-column:3;grid-row:2;width:38px;height:44px}.estimate-options{grid-template-columns:1fr}.payment-balance-grid{grid-template-columns:1fr}.project-files>article{grid-template-columns:1fr}.project-files>article>button{min-height:44px}.invoice-actions,.invoice-history nav,.portal-access-result>div{align-items:stretch;flex-direction:column}.invoice-actions button,.invoice-history button,.invoice-history a,.portal-access-result button,.portal-access-result a{width:100%;min-height:44px;display:flex;align-items:center;justify-content:center}.invoice-history nav{display:flex}.invoice-automation label{align-items:flex-start}.invoice-automation input{flex:0 0 auto;width:18px;height:18px}.portal-admin-messages article{max-width:94%}
  .calendar-controls{padding:12px}.calendar-controls h2{font-size:22px}.calendar-grid{overflow-x:auto}.calendar-weekdays,.calendar-days{min-width:350px}.calendar-day{min-height:72px}.upcoming-list>button{grid-template-columns:1fr;gap:7px}.upcoming-list>button>i{display:none}
  .team-primary{width:100%;min-height:48px}.team-list>article{padding:18px}.team-member-head{align-items:flex-start;flex-direction:column;gap:10px}.team-member-head p{overflow-wrap:anywhere}.team-member-head i{order:-1}.team-list article footer{align-items:flex-start;flex-direction:column}.team-list article footer button{width:100%;min-height:44px}.team-modal{padding:0;place-items:stretch}.team-modal>form,.team-modal>.team-edit{width:100%;max-height:100dvh;min-height:100dvh;padding:64px 18px 30px;border-top:0}.team-close{position:fixed;z-index:2;top:12px;right:12px;width:46px;height:46px}.team-modal h2{font-size:40px}.team-password{grid-template-columns:1fr}.team-password button{min-height:44px}.team-actions{flex-direction:column}.team-save,.team-disable,.team-enable,.team-reset>button{width:100%;min-height:46px}
  .estimate-document-shell{padding:0;overflow:visible}.estimate-document-toolbar{display:flex;gap:8px;padding:10px}.estimate-document-toolbar a,.estimate-document-toolbar button{flex:1;min-height:44px;display:flex;align-items:center;justify-content:center;text-align:center}.estimate-document{width:100%;min-height:0;padding:24px 14px;box-shadow:none}.estimate-document-header{align-items:flex-start;flex-direction:column}.estimate-document-header img{width:230px;max-width:100%}.estimate-document-header>div{justify-items:start}.estimate-document-header span{font-size:29px}.estimate-document-intro{grid-template-columns:1fr;gap:22px;padding:28px 0 22px}.estimate-document-intro dd{text-align:right}.estimate-document-table{table-layout:fixed;font-size:7px}.estimate-document-table th,.estimate-document-table td{padding:9px 4px;overflow-wrap:anywhere}.estimate-document-table td:first-child{width:42%}.estimate-document-bottom{grid-template-columns:1fr;gap:26px}.estimate-document-footer{align-items:flex-start;flex-direction:column;gap:12px}.estimate-document-footer p{text-align:left}.estimate-document-photos{margin:35px -14px -24px;padding:28px 14px}.estimate-document-photos>header{align-items:flex-start;flex-direction:column}.estimate-document-photos>div{grid-template-columns:1fr}.invoice-payment-history p{padding-right:75px}
}
@media(max-width:380px){
  .brand-primary-logo{width:160px}.hero-content h1{font-size:52px}.portal-login-visual h1{font-size:48px}.portal-topbar>a span{display:none}.portal-card{padding:19px 14px}.requests-head h1{font-size:41px}.project-stat-grid{grid-template-columns:1fr}.request-drawer{padding-left:13px;padding-right:13px}.estimate-document-table{font-size:6px}.estimate-document-header span{font-size:26px}
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}
