/* Ivan's Pro Painting, home page sections carried over from the previous home page, drawn in the
   prototype's Modernist system (fw.css). Loaded after fw.css and fw-chrome.css on the home page only.
   The component rules at the bottom are extracted from interactive.css, site.css and gallery.css
   (before/after slider, project filter, estimator, lightbox, rails, reveal, terms, trust row). */
.xsec { background: var(--paper); color: var(--muted-dark); padding: clamp(56px, 7vw, 104px) 0; border-top: 1px solid var(--line); }
.xsec.soft { background: var(--paper-2); }
.xsec .wrap { width: min(1240px, 100%); margin: 0 auto; padding: 0 var(--pad); }
.xsec h2, .xsec h3 { color: var(--text-dark); letter-spacing: -0.02em; }
.xsec a { color: var(--blue-mid); }
.xsec a:hover { color: var(--text-dark); }
.xsec .sec-head { display: grid; gap: 14px; max-width: 820px; margin: 0 0 clamp(28px, 4vw, 48px); padding: 0; text-align: left; }
.xsec .sec-head h2 { font-size: clamp(30px, 3.6vw, 48px); font-weight: 800; line-height: 1.05; }
.xsec .sec-head p:not(.eyebrow) { font-size: 18px; line-height: 1.55; margin: 0; color: var(--muted-dark); }
.xsec .eyebrow { display: inline-flex; align-items: center; gap: 12px; margin: 0; font-size: 12px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--blue-mid); }
.xsec .eyebrow::before { content: ""; width: 28px; height: 1px; background: currentColor; flex: none; }
.xsec p { line-height: 1.6; }
.xsec .btn { justify-content: center; }

/* cards: ruled grid, photo on top */
.xsec .cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.xsec .cards.four { grid-template-columns: repeat(4, 1fr); }
.xsec .card { display: grid; align-content: start; gap: 10px; padding: 24px; background: #fff; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); text-decoration: none; color: var(--muted-dark); transition: background .2s ease; }
.xsec a.card:hover { background: var(--paper-3); color: var(--muted-dark); }
.xsec .card > img { width: calc(100% + 48px); max-width: none; margin: -24px -24px 6px; aspect-ratio: 4 / 3; object-fit: cover; }
.xsec .card h3 { font-size: 20px; font-weight: 800; margin: 0; }
.xsec .card p { margin: 0; font-size: 16px; }
.xsec .card .ic { color: var(--red); }
.xsec .card .ic svg { width: 28px; height: 28px; }
.xsec .card .more { font-weight: 800; color: var(--red); font-size: 15px; }
@media (max-width: 1099px) { .xsec .cards, .xsec .cards.four { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 599px) { .xsec .cards, .xsec .cards.four { grid-template-columns: 1fr; } }

/* warranty tiers, process steps, guarantee panel */
.xsec .tiers, .xsec .steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.xsec .tier, .xsec .step { padding: 28px 24px; background: #fff; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.xsec .tier.feat { background: var(--ink); color: var(--body-light, #dbe5f2); }
.xsec .tier.feat h3, .xsec .tier.feat .yrs { color: #fff; }
.xsec .tier .yrs { font-size: 56px; font-weight: 900; line-height: 1; color: var(--text-dark); letter-spacing: -0.03em; }
.xsec .tier h3, .xsec .step h3 { font-size: 19px; font-weight: 800; margin: 10px 0 6px; }
.xsec .tier p, .xsec .step p { margin: 0; }
.xsec .steps { counter-reset: st; }
.xsec .step::before { counter-increment: st; content: "0" counter(st); display: block; font-size: 13px; font-weight: 800; letter-spacing: .2em; color: var(--red); }
.xsec .guarantee { display: grid; gap: 10px; padding: 32px; border: 1px solid var(--line); border-left: 4px solid var(--red); background: #fff; }
.xsec .guarantee h3 { font-size: 24px; font-weight: 800; margin: 0; }
@media (max-width: 899px) { .xsec .tiers, .xsec .steps { grid-template-columns: 1fr; } }

/* service area chips */
.xsec .chips { display: flex; flex-wrap: wrap; gap: 8px; }
.xsec .chip, .xsec .chip-link { display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; border: 1px solid var(--line); background: #fff; color: var(--text-dark); font-weight: 700; font-size: 15px; text-decoration: none; }
.xsec a.chip:hover, .xsec .chip-link:hover { border-color: var(--text-dark); color: var(--text-dark); }

/* meet Ivan */
.xsec .prose { max-width: 900px; }
.xsec .prose p { font-size: 18px; color: var(--muted-dark); }

/* lead form card inside the close section */
.hero .leadcard { background: #fff; color: var(--text-dark); padding: clamp(24px, 3vw, 36px); border-top: 4px solid var(--red); display: grid; gap: 4px; }
.hero .leadcard h3 { font-size: 26px; font-weight: 800; color: var(--text-dark); margin: 0; }
.hero .leadcard .sc { margin: 4px 0 14px; color: var(--muted-dark); }
.hero .leadcard form { display: grid; gap: 12px; }
.hero .leadcard .row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.hero .leadcard .field { display: grid; gap: 6px; }
.hero .leadcard label { font-weight: 700; font-size: 14px; color: var(--text-dark); }
.hero .leadcard input, .hero .leadcard select { min-height: 48px; padding: 0 14px; border: 1px solid var(--line); border-radius: 0; background: #fff; color: var(--text-dark); font: 400 16px/1.2 var(--font); }
.hero .leadcard input:focus, .hero .leadcard select:focus { outline: 2px solid var(--red); outline-offset: 0; border-color: var(--red); }
.hero .leadcard .err-msg { display: none; color: #b42318; font-size: 13px; }
.hero .leadcard .field-invalid .err-msg { display: block; }
.hero .leadcard .field-invalid input, .hero .leadcard .field-invalid select { border-color: #b42318; }
.hero .leadcard .hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.hero .leadcard button[type="submit"] { width: 100%; justify-content: center; margin-top: 6px !important; }
.hero .leadcard .fineprint { font-size: 13px; color: var(--muted-dark); margin: 6px 0 0; display: flex; gap: 6px; align-items: center; }
.hero .leadcard .fineprint svg { width: 16px; height: 16px; flex: none; }
@media (max-width: 459px) { .hero .leadcard .row2 { grid-template-columns: 1fr; } }

/* FAQ: the prototype's ruled list, kept in the <details><summary>Q</summary><div class="a"> shape faq-check reads */
.faq .faq-list details { border-bottom: 1px solid var(--line); }
.faq .faq-list details:first-child { border-top: 1px solid var(--line); }
.faq .faq-list summary { list-style: none; cursor: pointer; position: relative; padding: 24px 48px 24px 0; font-size: clamp(18px, 1.6vw, 22px); font-weight: 800; color: var(--text-dark); letter-spacing: -0.01em; }
.faq .faq-list summary::-webkit-details-marker { display: none; }
.faq .faq-list summary::after { content: "+"; position: absolute; right: 0; top: 50%; transform: translateY(-50%); font-size: 28px; font-weight: 400; color: var(--red); }
.faq .faq-list details[open] summary::after { content: "\2212"; }
.faq .faq-list .a { padding: 0 0 24px; max-width: 760px; font-size: 17px; line-height: 1.6; color: var(--muted-dark); }

/* video-slot stills: a real job photo until the clip lands */
.slot .still { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.scrollprog { display: none; }
/* from interactive.css */
.i-inline{width:17px;height:17px;display:inline-block;vertical-align:-3px;margin-right:7px;flex:0 0 auto}
.fineprint .i-inline{width:13px;height:13px;vertical-align:-2px;margin-right:5px}
.ba2{max-width:860px;margin:0 auto}
.ba2-stage{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--bg-soft);
  border:1px solid var(--line);touch-action:pan-y;user-select:none;-webkit-user-select:none;cursor:ew-resize;--pos:50%}
.ba2-stage img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;display:block;
  pointer-events:none;-webkit-user-drag:none}
.ba2-after{clip-path:inset(0 0 0 var(--pos))}
.ba2-line{position:absolute;top:0;bottom:0;left:var(--pos);width:2px;margin-left:-1px;background:#fff;
  box-shadow:0 0 0 1px rgba(11,30,53,.16);pointer-events:none}
.ba2-knob{position:absolute;top:50%;left:var(--pos);width:48px;height:48px;margin:-24px 0 0 -24px;border-radius:50%;
  background:#fff;color:var(--ink);display:grid;place-items:center;pointer-events:none;
  box-shadow:0 2px 14px rgba(11,30,53,.28)}
.ba2-knob svg{width:22px;height:22px}
.ba2-tag{position:absolute;top:14px;font-family:'Montserrat',sans-serif;font-weight:700;font-size:10.5px;line-height:1;
  letter-spacing:.2em;text-transform:uppercase;padding:8px 11px;color:#fff;pointer-events:none}
.ba2-tag.b{left:14px;background:rgba(11,30,53,.8)}
.ba2-tag.a{right:14px;background:var(--orange)}
.ba2-range{position:absolute;width:1px;height:1px;opacity:0;margin:0;pointer-events:none}
.ba2-stage:focus-within{outline:2px solid var(--blue);outline-offset:3px}
.ba2-cap{text-align:center;margin:22px auto 0;max-width:640px;min-height:78px}
.ba2-cap h3{font-size:20px;margin-bottom:6px;line-height:1.3}
.ba2-cap p{color:var(--body);line-height:1.6;margin:0}
.ba2-picks{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:18px}
.ba2-pick,.gfilter button{font-family:'Montserrat',sans-serif;font-weight:600;font-size:11.5px;line-height:1.2;
  letter-spacing:.14em;text-transform:uppercase;padding:12px 16px;min-height:44px;border:1px solid var(--line);
  background:#fff;color:var(--ink);cursor:pointer;white-space:nowrap;transition:background-color .2s,color .2s,border-color .2s}
.ba2-pick:hover,.gfilter button:hover{border-color:var(--blue)}
.ba2-pick[aria-pressed=true],.gfilter button[aria-pressed=true]{background:var(--blue);border-color:var(--blue);color:#fff}
.ba2-pick:focus-visible,.gfilter button:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
@media(max-width:720px){.ba2-stage{aspect-ratio:1/1}}
.gfilter{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:-22px 0 28px}
.gallery2 figure.g-in{animation:g-in .34s ease both}
.ba2-picks::-webkit-scrollbar,.gfilter::-webkit-scrollbar{display:none}
.ba2-pick,.gfilter button{scroll-snap-align:start;flex:0 0 auto}
}


.est{max-width:900px;margin:0 auto;display:grid;grid-template-columns:1.1fr .9fr;background:#fff;
  border:1px solid var(--line);border-top:3px solid var(--orange)}
.est-in{padding:32px 32px 28px}
.est-label{display:block;font-family:'Montserrat',sans-serif;font-weight:600;font-size:11.5px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--body);margin:0 0 10px}
.est-seg{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);margin-bottom:28px}
.est-seg button{min-height:48px;border:0;background:#fff;color:var(--ink);cursor:pointer;font-family:'Montserrat',sans-serif;
  font-weight:600;font-size:12px;letter-spacing:.14em;text-transform:uppercase;transition:background-color .2s,color .2s}
.est-seg button+button{border-left:1px solid var(--line)}
.est-seg button[aria-pressed=true]{background:var(--blue);color:#fff}
.est-seg button:focus-visible{outline:2px solid var(--blue);outline-offset:-4px}
.est-sqft{font-family:'Instrument Serif',Georgia,serif;font-size:44px;line-height:1;color:var(--ink);margin:2px 0 6px}
.est-sqft span{font-family:'Montserrat',sans-serif;font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--body)}
.est-range{width:100%;height:44px;margin:0;accent-color:var(--blue);cursor:pointer}
.est-scale{display:flex;justify-content:space-between;font-size:12px;color:#7b8798;margin-top:2px}
.est-out{background:var(--blue);color:#fff;padding:32px;display:flex;flex-direction:column;justify-content:center}
.est-kicker{font-family:'Montserrat',sans-serif;font-weight:600;font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--red-tint);margin:0 0 10px}
.est-price{font-family:'Instrument Serif',Georgia,serif;font-size:clamp(32px,3.1vw,42px);line-height:1.04;color:#fff;
  margin:0 0 14px;font-variant-numeric:tabular-nums;white-space:nowrap}
.est-note{color:#b9c6d8;font-size:14px;line-height:1.55;margin:0 0 22px}
@media(max-width:820px){.est{grid-template-columns:1fr}.est-in,.est-out{padding:26px 22px}}
.leadcard.est-flash{animation:est-flash 1.6s ease}
.ba2-pick,.gfilter button,.est-seg button{transition:none}
/* from site.css */
.rail-wrap{position:relative}
.rail{display:flex!important;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;padding:4px 2px 18px;margin:0}
.rail::-webkit-scrollbar{display:none}
.rail>*{scroll-snap-align:start;flex:0 0 clamp(262px,80%,330px)}
@media(min-width:821px){.rail>*{flex-basis:calc((100% - 54px)/4)}}
.rail-nav{position:absolute;top:38%;z-index:3;width:48px;height:48px;display:none;align-items:center;justify-content:center;
  background:#fff;border:1px solid var(--line);color:var(--ink);font-size:24px;line-height:1;cursor:pointer;
  transition:background-color .2s,color .2s,opacity .2s}
.rail-nav:hover{background:var(--blue);color:#fff;border-color:var(--blue)}
.rail-nav:focus-visible{outline:3px solid var(--blue-mid);outline-offset:2px}
.rail-nav[disabled]{opacity:.35;cursor:default}
.rail-prev{left:-22px}
.rail-next{right:-22px}
.rail-wrap.is-scrollable .rail-nav{display:flex}
@media(max-width:820px){.rail-nav{display:none!important}}
.rail-dots{display:flex;justify-content:center;gap:8px;margin-top:6px}
.rail-dots i{width:22px;height:2px;background:var(--line);transition:background-color .2s}
.rail-dots i.on{background:var(--orange)}
@media(min-width:821px){.rail-dots{display:none}}
.sp-rail-wrap.is-scrollable .sp-nav{display:flex!important}
@media(max-width:820px){.sp-rail-wrap .sp-nav{display:none!important}}
.lb{position:fixed;inset:0;z-index:120;background:rgba(6,21,36,.94);display:flex;align-items:center;justify-content:center;
  opacity:0;visibility:hidden;transition:opacity .22s var(--ease),visibility 0s linear .22s;touch-action:pan-y}
.lb.open{opacity:1;visibility:visible;transition:opacity .22s var(--ease)}
.lb figure{margin:0;max-width:min(92vw,1200px);max-height:86vh;display:flex;flex-direction:column;align-items:center;gap:12px}
.lb img{max-width:100%;max-height:78vh;width:auto;height:auto;object-fit:contain;background:#0b1e35}
.lb figcaption{color:#c3d2e6;font-size:13px;letter-spacing:.12em;text-transform:uppercase;font-family:'Montserrat',sans-serif;text-align:center}
.lb button{position:absolute;background:transparent;border:1px solid rgba(255,255,255,.3);color:#fff;width:48px;height:48px;
  font-size:26px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}
.lb button:hover{background:rgba(255,255,255,.12)}
.lb button:focus-visible{outline:3px solid var(--blue-pale);outline-offset:2px}
.lb .lb-close{top:16px;right:16px}
.lb .lb-prev{left:16px;top:50%;margin-top:-24px}
.lb .lb-next{right:16px;top:50%;margin-top:-24px}
.lb .lb-count{position:absolute;top:26px;left:20px;color:#9fb3cd;font-size:13px;font-family:'Montserrat',sans-serif;letter-spacing:.14em}
@media(max-width:720px){.lb .lb-prev,.lb .lb-next{top:auto;bottom:18px;margin:0}}
.gallery2 figure img,.jobgal-track figure img{cursor:zoom-in}
.chips .chip-link{transition:background-color .2s,color .2s,border-color .2s}
.chips .chip{min-height:44px;display:inline-flex;align-items:center}
}


.tier{position:relative;transition:transform .25s var(--ease),border-color .25s,background-color .25s}
@media(hover:hover){.tier:hover{transform:translateY(-4px);border-color:var(--blue)}}
.tier .yrs{transition:color .25s}
.steps{position:relative}
.steps .step{transition:border-color .3s var(--ease),background-color .3s}
.steps .step.is-on{border-color:var(--blue)}
.steps .step.is-on::before{color:var(--orange)}
.steps-line{position:absolute;left:0;right:0;top:-22px;height:2px;background:var(--line);overflow:hidden}
.steps-line i{position:absolute;inset:0;background:var(--orange);transform-origin:0 50%;transform:scaleX(var(--fill,0));transition:transform .1s linear}
@media(max-width:820px){.steps-line{display:none}}
.est-stories .est-seg{margin-bottom:22px}
.est-type{display:flex;align-items:center;gap:10px;margin-top:14px;font-size:13px;color:var(--body);
  font-family:'Montserrat',sans-serif;letter-spacing:.08em;text-transform:uppercase}
.est-num{width:120px;min-height:44px;padding:8px 10px;border:1px solid var(--line);font-size:16px;color:var(--ink);
  font-family:'Montserrat',sans-serif;background:#fff}
.est-num:focus{outline:none;border-color:var(--blue-mid);box-shadow:0 0 0 3px rgba(31,95,168,.18)}
.est-price{font-variant-numeric:tabular-nums}
.est-spec{color:#dbe5f2;font-size:13px;line-height:1.5;margin:-8px 0 22px;padding-left:12px;border-left:2px solid var(--red-tint)}
.ba-card .ba2-inline{max-width:none;margin:0}
.ba-card .ba2-inline .ba2-stage{aspect-ratio:1/1}
.leadcard{border-top:3px solid var(--orange)}
.leadcard input,.leadcard select,.leadcard textarea{font-size:16px;min-height:48px;transition:border-color .2s,box-shadow .2s}
.leadcard input:focus,.leadcard select:focus,.leadcard textarea:focus{outline:none;border-color:var(--blue-mid);box-shadow:0 0 0 3px rgba(31,95,168,.18)}
.leadcard button[type=submit]{min-height:52px}
.est-flash{animation:estFlash 1.2s var(--ease)}
}


.rv{opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.rv.in{opacity:1;transform:none}
@media(max-width:720px){.chip-link{min-height:44px}}
.jobgal-btn{min-width:44px;min-height:44px}
@media(prefers-reduced-motion:reduce){.rv{opacity:1!important;transform:none!important;transition:none!important}.tier,.lb,.rail-nav,.steps-line i{transition:none!important}.est-flash{animation:none!important}.rail{scroll-behavior:auto}}
.vslot{position:relative;overflow:hidden;background:#0b1e35}
.vslot video{display:block;width:100%;height:auto}
.vslot-city{position:absolute;left:10px;bottom:10px;font:600 12px/1 Montserrat,sans-serif;color:#fff;background:rgba(6,21,36,.6);padding:5px 8px}
.vslot-sec{padding-top:0}
.vslot-walk video{aspect-ratio:16/9;object-fit:cover}
.vproof{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:0 0 28px}
.vproof:not(:has(.vslot)){display:none}
@media(max-width:820px){.vslot-walk video{aspect-ratio:4/5}.vproof{grid-template-columns:repeat(2,1fr)}}
.terms-strip{padding:28px 0}
.termrow{list-style:none;margin:28px auto 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;max-width:960px}
.terms-strip .termrow{margin-top:0}
.termrow li{border:1px solid var(--line,#d7e0ec);background:#fff;padding:16px 18px;display:flex;flex-direction:column;gap:4px}
.termrow b{font:700 20px/1.2 Montserrat,sans-serif;color:var(--blue,#0b1e35)}
.termrow span{font-size:15px;color:var(--body,#4a5567)}
@media(max-width:720px){.termrow{grid-template-columns:1fr}}
.why3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:0 0 28px}
.why3-item{background:#fff;border:1px solid var(--line,#d7e0ec);padding:22px}
.why3-item h3{margin:0 0 8px;font-size:19px}
.why3-item p{margin:0;color:var(--body,#4a5567)}
.why3-item blockquote{margin:14px 0 0;padding:12px 0 0;border-top:1px solid var(--line,#d7e0ec);font-style:italic;font-size:15px;color:var(--blue,#0b1e35)}
.why3-item cite{display:block;margin-top:6px;font-style:normal;font-size:13px;font-weight:700;color:var(--body,#4a5567)}
@media(max-width:820px){.why3{grid-template-columns:1fr}}
.trustrow{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:10px 28px;align-items:center}
.trustrow-wrap{padding-top:22px;padding-bottom:6px}
.trustrow li{display:flex;flex-direction:column;align-items:center;text-align:center;min-width:120px}
.trustrow b{font:700 15px/1.3 Montserrat,sans-serif;color:var(--blue,#0b1e35)}
.trustrow span{font-size:13px;color:var(--body,#4a5567)}
.trustrow .trust-sub{display:block}
.trust-badge img{height:48px;width:auto;display:block}
.trust-badge img.tb-tall{height:60px}
.trustrow-foot{justify-content:flex-start;gap:6px 18px;margin-top:12px}
.trustrow-foot li{align-items:flex-start;text-align:left;min-width:0}
.trustrow-foot b{color:#fff;font-size:13px}
.trustrow-foot span{color:#9aa0a6;font-size:12px}
@media(max-width:720px){.trustrow{gap:10px 16px}.trustrow li{min-width:96px}}
.fin-line{text-align:center;margin:14px 0 0;font-size:15px;color:var(--body,#4a5567)}
.fin-logo{display:block;margin:16px auto 0;height:36px;width:auto}
/* from gallery.css */
.jobgal{--jobgal-h:420px;--jobgal-gap:14px;position:relative;margin:26px 0}
.jobgal-track{display:flex;gap:var(--jobgal-gap);overflow-x:auto;overscroll-behavior-x:contain;
  
  scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;-ms-overflow-style:none;padding:2px 0 4px}
.jobgal-track::-webkit-scrollbar{display:none}
.jobgal-track figure{flex:0 0 auto;margin:0;scroll-snap-align:start}
.jobgal-track img{display:block;height:var(--jobgal-h);width:auto;max-width:none;border-radius:16px;
  background:var(--bg-soft,#f4f2ee);border:1px solid var(--line,#e6e3dd)}
.jobgal-track figcaption{width:0;min-width:100%;font-size:13px;color:#6b6b6b;margin-top:8px;
  font-family:'Didact Gothic',sans-serif}
.jobgal-btn{position:absolute;top:calc(var(--jobgal-h) / 2);transform:translateY(-50%);
  width:40px;height:40px;padding:0;border-radius:50%;border:1px solid var(--line,#e6e3dd);
  background:#fff;color:#1a1a1a;font-size:20px;line-height:1;cursor:pointer;
  display:none;place-items:center;z-index:2;
  box-shadow:0 2px 10px rgba(10,10,10,.14)}
.jobgal-btn:hover{background:#f6f4f0}
.jobgal-btn:focus-visible{outline:2px solid #1a1a1a;outline-offset:2px}
.jobgal-btn[disabled]{opacity:.3;cursor:default;box-shadow:none}
.jobgal-prev{left:10px}
.jobgal-next{right:10px}
.jobgal.is-scrollable .jobgal-btn{display:grid}
@media(max-width:900px){.jobgal{--jobgal-h:340px}}
@media(max-width:720px){.jobgal{--jobgal-h:290px;--jobgal-gap:10px}.jobgal.is-scrollable .jobgal-btn{display:none}}
@media(prefers-reduced-motion:reduce){.jobgal-track{scroll-behavior:auto}}
.trust-badges { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 16px; align-items: center; }
.trust-badges:not(:has(li)) { display: none; }
.trust-badges:has(.trust-badge) { padding: 16px 20px; }
/* text credentials (no official logo file yet) sit in the badge column like a cell */
.trust-badges li:not(.trust-badge) { display: grid; gap: 4px; padding: 12px 20px; align-content: start; }
.trust-badges li:not(.trust-badge) b { font-weight: 900; font-size: 16px; line-height: 1.2; }
.trust-badges li:not(.trust-badge) span { font-size: 14px; color: var(--muted-dark); line-height: 1.4; }
.cells .trust-sub { display: block; }
.scene-tag:empty { display: none; }

/* old theme variables the carried-over components read (same values as the v3 theme) */
:root { --blue: #0b1e35; --blue-dark: #061524; --orange: #9e1b1b; --orange-dark: #7a1414; --red-tint: #e0938c; --body: #4a5567; --bg-soft: #f2f6fb; --white: #fff; --radius: 0; --shadow: none; --wrap: 1160px; }
/* from styles-v2.css */
.gallery2{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.gallery2 figure{margin:0}
.gallery2 img{border-radius:8px;height:200px;width:100%;object-fit:cover}
.gallery2 figcaption{font-size:12px;color:#8a8f98;margin-top:6px;line-height:1.4;font-family:'Didact Gothic'}
@media(max-width:820px){.gallery2{grid-template-columns:repeat(2,1fr)}}
/* from styles-v3.css */
.gallery2 img{border-radius:0}
.gallery2 img{box-shadow:none}
.gallery2 img{border:1px solid var(--line)}
.gallery2 figcaption{letter-spacing:.13em;text-transform:uppercase;font-size:11px;color:#6c7a8c;
  font-family:'Montserrat',sans-serif}

/* one typeface everywhere, including the estimator's big number */
.xsec, .xsec *, .hero .leadcard, .hero .leadcard * { font-family: var(--font) !important; }
.xsec .est-sqft, .xsec .est-price { font-weight: 900; letter-spacing: -0.02em; }
.hero .leadcard button[type="submit"] { background: var(--red); color: #fff; border: 2px solid transparent; min-height: 52px; font-weight: 800; }
.hero .leadcard button[type="submit"]:hover { background: var(--red-hover); }
.xsec .btn, .xsec a.btn { background: var(--red); color: #fff; border: 2px solid transparent; min-height: 48px; padding: 0 22px; font-weight: 800; text-decoration: none; display: inline-flex; align-items: center; }
.xsec .btn:hover, .xsec a.btn:hover { background: var(--red-hover); color: #fff; }
/* hero exterior layer: the page's hero photo (the --hero-image set once in the head), so it is not repeated as an <img> */
.hero [data-layer="ext"] .slot { background: url(/img/homepage-hero-v4.webp) center / cover no-repeat; }
@media (max-width: 759px) { .hero [data-layer="ext"] .slot { background-image: url(/img/homepage-hero-v4-m.webp); } }
/* #estimate sits on the form card (not the section) so every "Free Estimate" tap lands on the fields, header-clear */
#estimate { scroll-margin-top: calc(var(--hdr) + 12px); }

/* 2026-10-11 (Adam): the estimate form lives in the hero. Desktop >=1100px: card right of the copy.
   Below 1100px: hero grows, copy then card, stacked. Form markup untouched; layout is CSS only. */
.hero .leadcard { position: relative; z-index: 2; box-shadow: 0 18px 48px rgba(0, 0, 0, .35); }
.hero .leadcard h3 { font-size: 22px; }
.hero .leadcard input, .hero .leadcard select { width: 100%; box-sizing: border-box; }
@media (min-width: 1100px) {
  .hero { min-height: 760px; }
  .hero-copy { width: min(560px, calc(100vw - 2 * var(--pad) - 488px)); }
  .hero .leadcard { position: absolute; right: var(--pad); top: 50%; transform: translateY(-46%); width: 440px; padding: 24px 28px; }
  .hero .leadcard .sc { margin: 2px 0 10px; }
  .hero .leadcard form { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 12px; row-gap: 10px; align-items: end; }
  .hero .leadcard .field { min-width: 0; }
  .hero .leadcard .row2 { display: contents; }
  .hero .leadcard form > button[type="submit"], .hero .leadcard form > .fineprint { grid-column: 1 / -1; }
}
@media (max-width: 1099px) {
  .hero { height: auto; min-height: 100svh; padding: calc(var(--hdr) + 112px) 0 calc(var(--mbar) + 96px); }
  .hero-copy { position: relative; top: auto; bottom: auto; left: auto; transform: none; width: auto; max-width: 640px; padding: 0 var(--pad); }
  .hero .leadcard { margin: 24px var(--pad) 0; max-width: 560px; }
}
@media (max-width: 759px) {
  .hero { padding-bottom: 32px; }
  /* the mobile call bar steps aside while the hero form is on screen, so the hero keeps its own call link */
  .hero .cta-row .tel-link { display: inline-flex; }
}
.close-copy .cta-row { margin-top: 0; }
