.gform_wrapper{max-width:100%;color:var(--v2-body);font-family:var(--v2-body-font)}
.gform_wrapper :where(input:not([type=checkbox]):not([type=radio]),select,textarea){box-sizing:border-box;width:100%;min-width:0;max-width:100%;min-height:48px;padding:11px 13px;border:1px solid var(--sq-sand-mid, #bdb8aa);border-radius:0;background:var(--sq-white, #ffffff);color:var(--v2-ink)}
/* Focus outline intentionally absent -- base.css `:focus-visible` owns it.
   A 25%-alpha sage ring here composited to well under 3:1. See gf-controls.css. */
.gform_wrapper :where(input,select,textarea):focus{border-color:var(--v2-forest)}
.gform_wrapper :where(.gfield_label,legend){color:var(--v2-ink);font-weight:700}.gform_wrapper .gform_button{min-height:48px;padding:0 22px;border:0;background:var(--v2-ink);color:var(--sq-white, #ffffff);font:700 13px/1 var(--v2-display)}
.gform_wrapper .validation_message{color:var(--sq-alert, #b00020);font-size:14px}.gform_wrapper .gfield_error :where(input,select,textarea){border-color:var(--sq-alert, #b00020)}
.gform_wrapper :where(.gform_fields,.gfield,.ginput_complex,.gform-grid-row,.gform-grid-col){box-sizing:border-box;min-width:0;max-width:100%}.gform_wrapper .gform-grid-row{width:100%;margin-inline:0}.gform_wrapper .gform-grid-col{width:100%;padding-inline:0}
.sequoia-reviews-proof{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px}.sequoia-reviews-proof__figure{display:flex;align-items:center;gap:24px}.sequoia-reviews-proof__score{color:var(--v2-ink);font:800 60px/.9 var(--v2-display)}.sequoia-reviews-proof__stars{color:#cf9a34;font-size:20px}.sequoia-reviews-proof__body{max-width:420px}.sequoia-reviews-proof__cta{display:inline-flex;padding:14px 20px;background:var(--v2-ink);color:var(--sq-white, #ffffff);text-decoration:none;font-weight:700}
.h-hero-media-slot>.wp-block-image,.h-hero-media-slot>.wp-block-image img,.h-hero-media-slot .sequoia-provider-projects--hero,.h-hero-media-slot .sequoia-provider-projects--hero img{width:100%;height:100%;min-height:0}.h-hero-media-slot :is(.wp-block-image,.sequoia-provider-projects--hero) img{object-fit:cover}.h-hero-media-slot:has(>.wp-block-image img) .sequoia-provider-block--projects:has(.sequoia-provider-projects--hero){display:none}
/* Make the map fill its panel.
   This rule previously targeted `.ciq-projects-map`, a class that does not
   exist anywhere in the rendered DOM -- it was the only reference to that name
   left in the theme. So `height:100%` was never applied to anything, even with
   !important. The real chain the provider renders is three levels deep:
     .map-panel > .sequoia-provider-block > .sequoia-provider-map
                > .sequoia-provider-map__canvas        <- Leaflet mounts here
   and height:100% has to be carried down every level, because a percentage
   height resolves against the parent and stops at the first `auto`.
   This is what left a stretched map cell with real map at the top and ~215px of
   empty panel beneath it -- the symptom that was previously worked around by
   refusing to stretch the cell at all (see design-hero-proof.css
   `.lt-map-layout .map-panel`). The markers <ul> beside the canvas is a
   no-JS fallback and is display:none once data-map-ready="true"
   (design-hero-proof.css:599), so giving the canvas the full height is safe. */
:is(.map-panel,.r-mapwrap,.r-area-map,.hl-map)>.sequoia-provider-block,
:is(.map-panel,.r-mapwrap,.r-area-map,.hl-map) .sequoia-provider-map,
:is(.map-panel,.r-mapwrap,.r-area-map,.hl-map) .sequoia-provider-map__canvas{height:100%;min-height:inherit}
.h-reviews-inner:has(.sequoia-reviews-proof)>:is(h2,p,.r-cta){display:none}.h-reviews-inner>.sequoia-provider-block{width:100%}
.paver-page :is(.r-paver-inspiration,.r-selected-work) .r-work:has(>.wp-block-image)>.sequoia-provider-block{display:none}
.r-work>.sequoia-provider-block{min-width:0;grid-column:1/-1}.r-work .sequoia-provider-projects__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:0;padding:0;list-style:none}
.ciq-cs-archive,.ciq-cs{color:var(--v2-body);font-family:var(--v2-body-font)}
.ciq-cs-arch__hero,.ciq-cs__hero,.ciq-cs__page3-hero{padding:var(--v2-section) var(--v2-gutter);background:var(--v2-cream);border-bottom:1px solid var(--v2-line)}
:where(.ciq-cs-arch__hero-content,.ciq-cs-arch__container,.ciq-cs__container,.ciq-cs__page3-hero-content){width:min(100%,var(--v2-wide));margin-inline:auto}
.ciq-cs-arch__grid-section,.ciq-cs__section,.ciq-cs__page3-section{padding:70px var(--v2-gutter)}
.ciq-cs-arch__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding:0;list-style:none}.ciq-cs-arch__card{min-width:0;border:1px solid var(--v2-line);background:var(--sq-white, #ffffff)}.ciq-cs-arch__card-link{display:block;height:100%;color:inherit;text-decoration:none}.ciq-cs-arch__card-image{aspect-ratio:4/3;background:var(--v2-cream);overflow:hidden}.ciq-cs-arch__card-image img{width:100%;height:100%;object-fit:cover}.ciq-cs-arch__card-body{padding:22px}.ciq-cs-arch__card-meta{color:var(--v2-forest);font:700 10px/1.4 var(--v2-mono);letter-spacing:.1em;text-transform:uppercase}.ciq-cs-arch__card-footer{display:flex;justify-content:space-between;gap:12px;margin-top:20px;font-size:13px}
.ciq-cs__facts,.ciq-cs__cost-table{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--v2-line)}.ciq-cs__facts>*{margin:0;padding:18px;background:var(--sq-white, #ffffff)}.ciq-cs__prose{max-width:var(--v2-content);font-size:18px}.ciq-cs__gallery,.ciq-cs__page3-media-grid,.ciq-cs__page3-pair-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.ciq-cs__gallery img,.ciq-cs__page3-media img{width:100%;height:100%;object-fit:cover}
.ciq-cs__lightbox{width:min(94vw,1200px);max-height:94vh;padding:44px;background:#111;border:0;color:var(--sq-white, #ffffff)}.ciq-cs__lightbox::backdrop{background:rgb(0 0 0/.82)}.ciq-cs__lightbox-img{max-height:78vh;margin:auto}.ciq-cs__lightbox-close,.ciq-cs__lightbox-nav{position:absolute;border:0;background:rgb(0 0 0/.55);color:var(--sq-white, #ffffff);font-size:32px}.ciq-cs__lightbox-close{top:8px;right:8px}.ciq-cs__lightbox-prev{left:8px;top:48%}.ciq-cs__lightbox-next{right:8px;top:48%}
.native-contact-content,.native-estimate-content{padding:64px var(--v2-gutter) 90px;background:var(--v2-cream)}
.native-estimate-shell{background:var(--v2-cream);color:var(--v2-body)}.native-estimate-hero{padding:64px var(--v2-gutter);background:var(--sq-white, #ffffff);border-bottom:1px solid var(--v2-line)}.native-estimate-hero__inner{width:min(100%,var(--v2-wide));margin-inline:auto}.native-estimate-hero .entry-title{max-width:820px;margin:0;color:var(--v2-ink);font:700 56px/1.03 var(--v2-display);letter-spacing:-.024em;text-wrap:balance}.native-estimate-hero__lede{max-width:620px;margin:22px 0 0;font-size:19px;line-height:1.55}
.native-estimate-process__step h3{margin:0;color:var(--v2-ink);font:700 16px/1.25 var(--v2-display);letter-spacing:normal}
.native-contact-content h1{max-width:760px;color:var(--v2-ink);font:700 54px/1.04 var(--v2-display);letter-spacing:-.024em;text-wrap:balance}
.native-contact-content :where(.c-2col,.c-lines),.native-estimate-content :where(.ge-2col,.ge-form-2){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;width:min(100%,var(--v2-wide));margin-inline:auto}
.sv2-case-archive,.sv2-case{width:min(calc(100% - (2 * var(--v2-gutter))),var(--v2-wide));min-width:0;max-width:100%;margin-inline:auto;padding:var(--v2-section) 0}
.sv2-case-archive>header,.sv2-case__hero{max-width:900px;margin-bottom:42px}/* Wraps rather than scrolling: 12 filter buttons cannot fit one row at any
   normal width, and the previous `overflow-x:auto` with non-shrinking children
   turned that into a horizontal scrollbar. The reference's own tag row uses
   flex-wrap. Applies to .sv2-case__terms too -- same rule, same problem. */
.sv2-case-archive__filters,.sv2-case__terms{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 28px}
.sv2-case-archive>header>h1{width:min(820px,calc(100vw - 96px));max-width:100%;font:700 54px/1.04 var(--v2-display);letter-spacing:-.024em;text-wrap:balance}
.sv2-case-archive__filters button,.sv2-case__terms a{flex:none;padding:9px 14px;border:1px solid var(--v2-line);background:var(--sq-white, #ffffff);color:var(--v2-body);text-decoration:none}.sv2-case-archive__filters button[aria-pressed=true]{background:var(--v2-ink);color:var(--sq-white, #ffffff)}
.sv2-case-archive>.sv2-grid,.sv2-case :where(.sv2-grid){display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.sv2-case-archive article{border:1px solid var(--v2-line);background:var(--sq-white, #ffffff)}.sv2-case-archive article>a{display:block;color:inherit;text-decoration:none}.sv2-case-archive article img{width:100%;aspect-ratio:4/3;object-fit:cover}.sv2-case-archive article h2{padding:20px;font-size:clamp(1.2rem,2vw,1.65rem)}
.sv2-case__hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.8fr);align-items:center;gap:40px;max-width:none}.sv2-case__hero-image{width:100%;max-height:600px;object-fit:cover}.sv2-case>section{padding:48px 0;border-top:1px solid var(--v2-line)}.sv2-case__body,.sv2-case__narrative{max-width:var(--v2-content)}
.sv2-case__facts dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin:0;background:var(--v2-line)}.sv2-case__facts dl>div{padding:18px;background:var(--sq-white, #ffffff)}.sv2-case__facts dt{color:var(--v2-muted);font:700 11px/1.4 var(--v2-mono);letter-spacing:.08em;text-transform:uppercase}.sv2-case__facts dd{margin:7px 0 0;color:var(--v2-ink);font-weight:700}
.sv2-case__plan{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:36px}.sv2-case__before-after figure{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:20px}.sv2-case__gallery img,.sv2-case__before-after img{width:100%;aspect-ratio:4/3;object-fit:cover}.sv2-case__costs ul{max-width:760px;padding:0;list-style:none}.sv2-case__costs li{display:flex;min-width:0;justify-content:space-between;gap:20px;padding:14px 0;border-top:1px solid var(--v2-line)}
/* Total sits on the same 760px measure as the rows it sums, separated by a
   heavier rule so it reads as their sum rather than another line item. */
.sv2-case__costs-total{display:flex;min-width:0;justify-content:space-between;gap:20px;max-width:760px;margin:0;padding:16px 0;border-top:2px solid var(--v2-ink);font-weight:700}
.sv2-case__costs-note{max-width:760px;margin:12px 0 0;color:var(--v2-body);font-size:.875rem}
.sv2-case__topics-title{margin:0 0 14px}
@media (max-width:481px){
  /* Label and figure stack rather than colliding at narrow widths. */
  .sv2-case__costs li,.sv2-case__costs-total{flex-direction:column;gap:4px}
}
.sv2-case__testimonial{max-width:800px;margin:48px 0;padding:34px;background:var(--v2-cream)}.sv2-case__testimonial blockquote{margin:0;font:700 clamp(1.4rem,3vw,2.2rem)/1.3 var(--v2-display)}.sv2-case__faqs details{max-width:800px;padding:18px 0;border-top:1px solid var(--v2-line)}.sv2-case__faqs summary{color:var(--v2-ink);font-weight:700;cursor:pointer}
.sv2-case__cta{padding:56px!important;background:var(--v2-ink);color:var(--sq-white, #ffffff)}.sv2-case__cta h2{color:var(--sq-white, #ffffff)}.sv2-case__cta a{display:inline-flex;padding:14px 20px;background:var(--sq-white, #ffffff);color:var(--v2-ink);font-weight:700;text-decoration:none}
.v2-lightbox{width:min(94vw,1200px);max-height:94vh;padding:44px;background:#111;border:0;color:var(--sq-white, #ffffff)}.v2-lightbox::backdrop{background:rgb(0 0 0/.82)}.v2-lightbox img{max-height:78vh;margin:auto}.v2-lightbox>button{position:absolute;z-index:1;border:0;background:rgb(0 0 0/.55);color:var(--sq-white, #ffffff);font-size:32px}.v2-lightbox [data-v2-lightbox-close]{top:8px;right:8px}.v2-lightbox [data-v2-lightbox-prev]{left:8px;top:48%}.v2-lightbox [data-v2-lightbox-next]{right:8px;top:48%}
.sequoia-provider-empty--location{display:flex;flex-direction:column;justify-content:center;gap:10px;min-height:18rem;padding:34px;background:var(--v2-cream);border:1px solid var(--v2-line)}
.sequoia-provider-empty--location>p{margin:0}.sequoia-provider-empty__lead{color:var(--v2-ink);font:700 22px/1.2 var(--v2-display);letter-spacing:-.015em}
.sequoia-provider-empty__body{max-width:44ch;color:var(--v2-body)}.sequoia-provider-empty__cta a{color:var(--v2-ink);font-weight:700}

/* Owner review 2026-08-25: the archive opened with ~100px of dead space above
   the H1. Scoped to the archive only -- .sv2-case (the single project page)
   shares the rule above and its leading was not part of the complaint. */
.sv2-case-archive{padding-top:40px}
