@font-face {
  font-family: "Archivo";
  src: url("../fonts/archivo-latin.woff2") format("woff2");
  font-weight: 400 700;
  font-stretch: 62.5% 125%;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Martian Mono";
  src: url("../fonts/martian-mono-latin.woff2") format("woff2");
  font-weight: 400 700;
  font-stretch: 75% 112.5%;
  font-style: normal;
  font-display: swap;
}
:root {
  color-scheme:light;
  --booth:#eef0f3;
  --booth-lift:#e1e5ea;
  --graphite:#222a33;
  --graphite-soft:#535e6b;
  --sodium-deep:#80501e;
  --seam:#c8ced5;
  --sans:"Archivo",system-ui,sans-serif;
  --mono:"Martian Mono",ui-monospace,monospace;
  --gutter:clamp(1.25rem,4vw,3rem);
  --band:clamp(3.5rem,7vw,7rem);
  --head-h:4.5rem;
  --ease:cubic-bezier(.16,1,.3,1)
}
* {
  box-sizing:border-box
}
html {
  -webkit-text-size-adjust:100%;
  scrollbar-color:#8b949e var(--booth)
}
body {
  margin:0;
  background:var(--booth);
  color:var(--graphite);
  font:1.0625rem/1.6 var(--sans);
  -webkit-font-smoothing:antialiased
}
[hidden] {
  display:none!important
}
[id] {
  scroll-margin-top:calc(var(--head-h) + 1rem)
}
::selection {
  background:#c8d0da;
  color:#17212a
}
h1,h2,h3 {
  margin:0 0 1.25rem;
  font-weight:700;
  line-height:1.08;
  letter-spacing:-.03em;
  text-wrap:balance
}
h1,h2 {
  font-stretch:118%
}
h1 {
  font-size:clamp(2.5rem,5.2vw,4.6rem);
  max-width:21ch
}
h2 {
  font-size:clamp(1.85rem,3.3vw,2.8rem);
  max-width:23ch
}
h3 {
  font-size:1.35rem
}
p {
  margin:0 0 1.25rem;
  max-width:68ch
}
p:last-child {
  margin-bottom:0
}
a {
  color:var(--sodium-deep);
  text-underline-offset:.25em;
  text-decoration-thickness:1px
}
a:hover {
  color:var(--graphite);
  text-decoration-thickness:2px
}
button,input,select,textarea {
  font:inherit;
  color:inherit
}
button {
  cursor:pointer
}
button:disabled {
  cursor:not-allowed;
  opacity:.6
}
:focus-visible {
  outline:3px solid var(--sodium-deep);
  outline-offset:4px
}
input,textarea {
  caret-color:var(--sodium-deep)
}
img {
  display:block;
  max-width:100%;
  height:auto
}
figure {
  margin:0
}
address {
  font-style:normal
}
fieldset {
  padding:0;
  margin:0;
  border:0;
  min-width:0
}
.wrap {
  width:min(82rem,100%);
  margin-inline:auto;
  padding-inline:var(--gutter)
}
.band {
  padding-block:var(--band)
}
.band--lift {
  background:var(--booth-lift)
}
.band__lede {
  font-size:clamp(1.15rem,1.7vw,1.35rem);
  color:var(--graphite-soft);
  max-width:49ch;
  margin-bottom:2.75rem
}
.small,.field-hint {
  font-size:.875rem;
  color:var(--graphite-soft)
}
.small {
  margin-top:1rem
}
.narrow>* {
  max-width:52rem
}
.skip {
  position:fixed;
  left:1rem;
  top:-5rem;
  z-index:30;
  background:var(--graphite);
  color:var(--booth);
  padding:.75rem 1rem
}
.skip:focus {
  top:1rem
}
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip-path:inset(50%);
  white-space:nowrap
}
.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:.75rem 1.3rem;
  background:var(--graphite);
  color:var(--booth);
  border:1px solid var(--graphite);
  border-radius:2px;
  font-size:.94rem;
  font-weight:600;
  text-decoration:none;
  white-space:nowrap;
  line-height:1.3
}
.btn:hover {
  background:#3d4855;
  border-color:#3d4855;
  color:#fff
}
.btn--ghost {
  color:var(--graphite);
  background:transparent;
  border-color:#7a8592
}
.btn--ghost:hover {
  background:var(--booth-lift);
  color:var(--graphite);
  border-color:var(--graphite)
}
.text-link,.text-button {
  display:inline-flex;
  align-items:center;
  min-height:44px;
  font-weight:600
}
.text-button {
  padding:.6rem 0;
  background:none;
  color:var(--sodium-deep);
  border:0;
  text-decoration:underline;
  text-underline-offset:.25em
}
.section-link {
  margin-top:1.8rem
}
.button-group {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:1rem 1.5rem
}
.dp-note {
  background:#dfe3e8;
  color:#35404d;
  font-size:.76rem;
  line-height:1.4
}
.dp-note__in {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding-block:.25rem
}
.dp-note p {
  margin:0;
  max-width:84ch
}
.dp-note a {
  flex:none;
  display:inline-flex;
  align-items:center;
  min-height:40px;
  color:inherit
}
.site-head {
  background:var(--booth);
  position:sticky;
  top:0;
  z-index:20
}
.site-head__in {
  min-height:var(--head-h);
  display:flex;
  align-items:center;
  gap:1.2rem
}
.mark {
  font-size:1.45rem;
  line-height:1.2;
  font-weight:700;
  font-stretch:115%;
  color:var(--graphite);
  text-decoration:none;
  white-space:nowrap
}
.mark span {
  font-size:.73rem;
  font-stretch:100%;
  font-weight:400;
  margin-left:.5rem
}
.site-nav {
  margin-left:auto;
  display:flex;
  gap:1.25rem
}
.site-nav a {
  display:inline-flex;
  align-items:center;
  min-height:44px;
  text-decoration:none;
  font-size:.875rem;
  color:var(--graphite-soft);
  white-space:nowrap
}
.site-nav a:hover,.site-nav a[aria-current] {
  color:var(--graphite);
  text-decoration:underline
}
.tel {
  display:inline-flex;
  align-items:center;
  gap:.35em;
  min-height:44px;
  padding:.5rem .9rem;
  border:1px solid var(--seam);
  border-radius:2px;
  color:var(--graphite);
  font-size:.8rem;
  font-family:var(--mono);
  text-decoration:none;
  white-space:nowrap
}
.tel:hover {
  border-color:var(--sodium-deep)
}
.mobile-menu,.call-bar {
  display:none
}
.stage {
  height:auto;
  overflow-anchor:none
}
.pin {
  position:relative;
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  padding-bottom:1.75rem;
  min-height:38rem;
  height:calc(100svh - var(--head-h) - 3.5rem)
}
.sequence-active .stage {
  height:200svh
}
.sequence-active .pin {
  position:sticky;
  top:var(--head-h)
}
.pin__top {
  width:min(82rem,100%);
  margin-inline:auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:1rem var(--gutter) 0
}
.rail {
  list-style:none;
  display:flex;
  flex-wrap:wrap;
  gap:1.3rem;
  padding:0;
  margin:0;
  font-size:.72rem;
  color:var(--graphite-soft)
}
.rail li {
  display:flex;
  align-items:center;
  gap:.45rem;
  padding-bottom:.35rem;
  border-bottom:2px solid transparent
}
.rail b {
  font-family:var(--mono);
  font-size:.68rem;
  font-variant-numeric:tabular-nums
}
.rail li[aria-current=step] {
  color:var(--sodium-deep);
  border-color:var(--sodium-deep)
}
.motion-toggle {
  background:none;
  border:0;
  padding:.5rem 0;
  font-size:.75rem;
  text-decoration:underline;
  text-underline-offset:.25em;
  white-space:nowrap
}
.plate {
  position:relative;
  align-self:stretch;
  min-height:0;
  width:100%;
  pointer-events:none
}
.plate__in {
  position:absolute;
  inset:0 var(--gutter);
  display:flex;
  align-items:center;
  justify-content:center
}
.frame {
  display:block;
  width:auto;
  height:auto;
  max-width:min(100%,74rem);
  max-height:100%;
  margin-inline:auto;
  object-fit:contain;
  mask-image:linear-gradient(to right,transparent,#000 9%,#000 91%,transparent),linear-gradient(to bottom,transparent,#000 10%,#000 90%,transparent);
  mask-composite:intersect
}
.head {
  width:min(82rem,100%);
  margin-inline:auto;
  padding:0 var(--gutter)
}
.head h1 {
  font-size:clamp(2rem,4vw,3.5rem);
  max-width:36ch
}
.head h1 span {
  color:var(--graphite-soft)
}
.head__foot {
  display:grid;
  grid-template-columns:minmax(0,43ch) auto;
  gap:3rem;
  align-items:end;
  justify-content:space-between
}
.lede {
  color:var(--graphite-soft);
  line-height:1.5;
  margin:0
}
.hero__actions {
  display:flex;
  align-items:center;
  gap:1.5rem
}
.estimate-explainer {
  display:grid;
  grid-template-columns:5fr 6fr;
  gap:5rem
}
.estimate-explainer .band__lede {
  margin:0
}
.shot {
  width:100%;
  object-fit:cover
}
.duet {
  display:grid;
  grid-template-columns:5fr 7fr;
  align-items:start;
  gap:5rem
}
.svc-list {
  margin-top:3rem
}
.svc {
  border-top:1px solid var(--seam)
}
.svc__link {
  display:grid;
  grid-template-columns:7fr 4fr;
  align-items:center;
  gap:4rem;
  padding:1.75rem 0;
  text-decoration:none
}
.svc__text h3 {
  font-size:clamp(1.45rem,2.5vw,2rem);
  color:var(--graphite)
}
.svc__text p {
  color:var(--graphite-soft);
  max-width:51ch
}
.svc__more {
  display:inline-block;
  padding-block:.25rem;
  text-decoration:underline;
  text-underline-offset:.3em;
  font-weight:600;
  font-size:.95rem
}
.svc__media {
  overflow:hidden
}
.svc__media .shot {
  aspect-ratio:2/1
}
.steps {
  list-style:none;
  padding:0;
  margin:3rem 0 0;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:2rem
}
.step__n {
  display:block;
  font:.85rem var(--mono);
  color:var(--sodium-deep);
  margin-bottom:1.75rem
}
.step h3 {
  font-size:1.4rem
}
.step p {
  color:var(--graphite-soft)
}
.comparison {
  --pos:50%
}
.compare-images {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.75rem
}
.compare-images img {
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover
}
.comparison.is-ready:not(.side-by-side) .compare-images {
  display:block;
  position:relative;
  aspect-ratio:4/3;
  overflow:hidden
}
.comparison.is-ready:not(.side-by-side) .compare-before,.comparison.is-ready:not(.side-by-side) .compare-after {
  position:absolute;
  inset:0
}
.comparison.is-ready:not(.side-by-side) .compare-after {
  clip-path:inset(0 0 0 calc(100% - var(--pos)))
}
.comparison.is-ready:not(.side-by-side) .compare-divider {
  display:block;
  position:absolute;
  inset-block:0;
  left:calc(100% - var(--pos));
  width:2px;
  background:var(--booth);
  pointer-events:none
}
.comparison-labels {
  display:flex;
  justify-content:space-between;
  margin-top:.5rem;
  font-size:.8rem;
  font-weight:600
}
.comparison-control {
  padding-block:1.25rem .25rem
}
.comparison-control label {
  display:block;
  font-weight:600
}
.comparison-control input {
  display:block;
  width:100%;
  min-height:44px;
  margin:.3rem 0;
  accent-color:var(--graphite);
  cursor:ew-resize
}
.comparison-actions {
  display:flex;
  gap:1rem;
  flex-wrap:wrap
}
.comparison-actions button {
  background:none;
  color:var(--sodium-deep);
  border:0;
  padding:.5rem 0;
  min-height:44px;
  text-decoration:underline;
  text-underline-offset:.25em;
  font-size:.875rem
}
.comparison figcaption {
  color:var(--graphite-soft);
  font-size:.875rem;
  margin-top:.75rem
}
.page-intro {
  padding-top:3.25rem;
  padding-bottom:2rem
}
.page-intro .band__lede {
  margin-bottom:0
}
.back {
  display:inline-flex;
  align-items:center;
  min-height:44px;
  margin-bottom:1.5rem;
  font-size:.9rem
}
.service-intro {
  padding-block:2.5rem 1.5rem
}
.service-intro__grid {
  display:grid;
  grid-template-columns:6fr 5fr;
  align-items:center;
  gap:4rem
}
.service-intro h1 {
  font-size:clamp(2.2rem,4.3vw,4rem)
}
.service-intro .shot {
  aspect-ratio:4/5
}
.service-intro .band__lede {
  font-size:1.18rem;
  margin-bottom:2rem
}
.service-detail {
  display:grid;
  grid-template-columns:7fr 4fr;
  gap:6rem
}
.prose p {
  font-size:1.16rem
}
.service-signs {
  padding-top:.2rem
}
.service-signs h2 {
  font-size:1.3rem;
  line-height:1.2
}
.plain-list,.service-signs ul {
  padding-left:1.2rem;
  margin:0 0 1.5rem
}
.plain-list li,.service-signs li {
  padding-left:.4rem;
  margin-bottom:.9rem
}
.related {
  padding-bottom:var(--band)
}
.related h2 {
  font-size:1.4rem
}
.related nav {
  display:flex;
  flex-wrap:wrap;
  gap:.5rem 2rem
}
.related nav a {
  display:inline-flex;
  align-items:center;
  min-height:44px
}
.faq summary {
  cursor:pointer;
  padding:1.4rem 2rem 1.4rem 0;
  min-height:64px;
  font-size:1.18rem;
  font-weight:600;
  line-height:1.3
}
.faq details {
  border-top:1px solid var(--seam)
}
.faq details:last-child {
  border-bottom:1px solid var(--seam)
}
.faq summary:hover {
  color:var(--sodium-deep)
}
.faq__a {
  padding:0 1.5rem 1.5rem;
  color:var(--graphite-soft)
}
.faq-page {
  max-width:67rem;
  padding-bottom:var(--band)
}
.closing {
  background:var(--booth-lift)
}
.closing__in {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:3rem;
  padding-block:4rem
}
.closing p {
  max-width:47ch;
  color:var(--graphite-soft)
}
.site-foot {
  background:var(--booth);
  padding-block:3.5rem 2rem
}
.site-foot__in {
  display:grid;
  grid-template-columns:1fr 1fr 1.15fr;
  gap:3rem
}
.site-foot__name {
  font-size:1.35rem;
  font-weight:700;
  margin-bottom:1rem
}
.site-foot address {
  font-size:.95rem;
  color:var(--graphite-soft)
}
.site-foot address a {
  display:inline-flex;
  align-items:center;
  min-height:44px
}
.footer-heading {
  font-size:1.1rem
}
.footer-nav {
  display:grid;
  grid-template-columns:1fr 1fr;
  column-gap:1rem
}
.footer-nav a {
  font-size:.87rem;
  padding-block:.5rem;
  min-height:44px
}
.hours {
  margin:0
}
.hours div {
  display:flex;
  justify-content:space-between;
  gap:1rem;
  padding-bottom:.6rem
}
.hours dt,.hours dd {
  margin:0;
  font-size:.86rem;
  font-variant-numeric:tabular-nums
}
.hours dt {
  color:var(--graphite-soft)
}
.foot-note {
  font-size:.78rem;
  color:var(--graphite-soft);
  margin-top:2rem;
  padding-top:1.5rem;
  border-top:1px solid var(--seam);
  max-width:none
}
.about-photo {
  padding-top:1rem
}
.about-photo img {
  aspect-ratio:2/1
}
.work-grid {
  margin-top:3rem;
  display:grid;
  grid-template-columns:7fr 5fr;
  gap:4rem 3rem;
  align-items:start
}
.work-grid figure:nth-child(2n) {
  margin-top:5rem
}
.work-grid img {
  aspect-ratio:3/2
}
.work-grid figcaption {
  margin-top:1.5rem
}
.work-grid h3 {
  margin-bottom:.6rem
}
.work-grid p {
  color:var(--graphite-soft)
}
.utility-content {
  max-width:65rem;
  padding-block:1.5rem var(--band)
}
.utility-content h2 {
  font-size:1.8rem;
  margin-top:2.5rem
}
.utility-content h2:first-child {
  margin-top:0
}
.call-number {
  font-family:var(--mono);
  font-size:clamp(1.5rem,4vw,2.3rem)
}
.call-preview {
  background:var(--booth-lift);
  padding:clamp(1.5rem,5vw,4rem)
}
.call-preview h3 {
  margin-top:2rem
}
.call-preview .text-link {
  display:flex;
  width:fit-content
}
.contact-layout {
  display:grid;
  grid-template-columns:4fr 7fr;
  gap:6rem;
  padding-block:1.5rem var(--band);
  align-items:start
}
.contact-info h2 {
  font-size:1.3rem;
  margin-top:2.5rem
}
.contact-info h2:first-child {
  margin-top:0
}
.contact-phone {
  font-size:1.45rem;
  display:inline-block;
  padding-block:.25rem;
  font-weight:600
}
.contact-info .hours div {
  flex-wrap:wrap;
  gap:.3rem 1rem
}
.contact-info address {
  margin-bottom:1.2rem
}
.estimate-form {
  min-width:0
}
.estimate-form>h2 {
  font-size:2rem
}
.form-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1.5rem;
  margin-block:2rem
}
.field--wide {
  grid-column:1/-1
}
.field label {
  display:block;
  font-size:.9rem;
  font-weight:600;
  margin-bottom:.5rem
}
.field input,.field select,.field textarea {
  display:block;
  width:100%;
  min-width:0;
  border:1px solid #798592;
  border-radius:2px;
  background:#f9fafb;
  padding:.8rem .9rem;
  font-size:1rem;
  min-height:48px
}
.field textarea {
  resize:vertical
}
.field input::placeholder,.field textarea::placeholder {
  color:#616b77;
  opacity:1
}
.field-hint {
  margin-top:.5rem
}
.field input:focus,.field select:focus,.field textarea:focus {
  border-color:var(--sodium-deep)
}
.estimate-form fieldset>.text-button {
  margin-left:1rem
}
.notice {
  background:var(--booth-lift);
  padding:1.2rem 1.5rem;
  color:var(--graphite)
}
.estimate-result {
  padding:2rem 0;
  border-top:1px solid var(--seam);
  margin-top:3rem
}
.estimate-result dl {
  margin:1.5rem 0
}
.estimate-result dl div {
  display:grid;
  grid-template-columns:8rem 1fr;
  gap:1rem;
  margin-bottom:1rem
}
.estimate-result dt {
  color:var(--graphite-soft);
  font-size:.9rem
}
.estimate-result dd {
  margin:0;
  overflow-wrap:anywhere;
  white-space:pre-wrap
}
.estimate-result .text-button {
  margin-left:1.25rem
}
.photo-guide {
  display:grid;
  grid-template-columns:5fr 6fr;
  gap:5rem;
  padding-top:2rem
}
.photo-guide .shot {
  aspect-ratio:3/4
}
.guide-steps {
  margin:0;
  padding-left:1.5rem
}
.guide-steps li {
  padding-left:1rem;
  margin-bottom:2.5rem
}
.guide-steps h2 {
  font-size:1.55rem
}
.review-layout {
  display:grid;
  grid-template-columns:5fr 6fr;
  gap:5rem;
  padding-block:2rem var(--band);
  align-items:start
}
.review-card {
  padding:clamp(1.5rem,4vw,3rem);
  background:#fff;
  border:1px solid var(--seam);
  text-align:center
}
.review-card .mark {
  margin-bottom:2.5rem
}
.review-card h2 {
  font-size:2rem
}
.review-card p {
  margin-inline:auto
}
.review-card #review-qr {
  margin:2rem auto 1rem;
  max-width:16rem
}
.review-card svg {
  display:block;
  max-width:100%;
  height:auto;
  margin:auto
}
.review-card a {
  display:inline-flex;
  align-items:center;
  min-height:44px
}
.review-card .small {
  font-size:.75rem
}
.review-instructions h2 {
  font-size:1.5rem;
  margin-top:2.5rem
}
.review-instructions h2:first-child {
  margin-top:0
}
@media(max-width:68rem) {
  .site-nav {
    gap:.85rem
  }
  .site-head__in {
    gap:.9rem
  }
  .mark {
    font-size:1.3rem
  }
  .mark span {
    display:block;
    margin:.15rem 0 0
  }
  .tel span {
    display:none
  }
  .head__foot {
    grid-template-columns:1fr auto;
    gap:2rem
  }
  .hero__actions {
    gap:1rem
  }
  .service-intro__grid,.duet,.service-detail,.contact-layout,.photo-guide,.review-layout {
    gap:3rem
  }
  .site-foot__in {
    grid-template-columns:1fr 1fr
  }
  .site-foot__in>:last-child {
    grid-column:1/-1;
    max-width:26rem
  }
  .steps {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
}
@media(max-width:52rem) {
  body {
    padding-bottom:5rem
  }
  .dp-note__in {
    padding-block:.7rem
  }
  .dp-note a {
    display:none
  }
  .site-nav {
    display:none
  }
  .site-head__in {
    gap:.65rem
  }
  .mark {
    font-size:1.2rem
  }
  .mark span {
    font-size:.69rem
  }
  .tel {
    margin-left:auto;
    padding-inline:.6rem;
    font-family:var(--sans);
    font-size:.83rem
  }
  .mobile-menu {
    display:block
  }
  .mobile-menu summary {
    cursor:pointer;
    min-height:44px;
    display:flex;
    align-items:center;
    padding-inline:.2rem;
    font-size:.87rem;
    font-weight:600;
    list-style:none
  }
  .mobile-menu summary::-webkit-details-marker {
    display:none
  }
  .mobile-menu[open] summary {
    color:var(--sodium-deep);
    text-decoration:underline
  }
  .mobile-menu nav {
    position:absolute;
    top:100%;
    left:0;
    right:0;
    padding:.5rem var(--gutter) 1.5rem;
    background:var(--booth);
    border-bottom:1px solid var(--seam);
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:.5rem 1.5rem;
    box-shadow:0 12px 20px rgba(27,40,55,.09)
  }
  .mobile-menu nav a {
    display:flex;
    align-items:center;
    min-height:48px;
    color:var(--graphite)
  }
  .call-bar {
    display:grid;
    grid-template-columns:1.1fr 1fr;
    gap:.5rem;
    position:fixed;
    z-index:25;
    inset:auto 0 0;
    background:var(--booth);
    border-top:1px solid var(--seam);
    padding:.7rem var(--gutter) calc(.7rem + env(safe-area-inset-bottom))
  }
  .call-bar .btn {
    font-size:.82rem;
    padding-inline:.45rem;
    min-height:44px
  }
  .pin {
    height:calc(100svh - var(--head-h) - 8rem);
    min-height:33rem;
    padding-bottom:1.25rem
  }
  .pin__top {
    padding-top:.5rem;
    display:block
  }
  .rail {
    gap:.55rem 1rem;
    font-size:.67rem
  }
  .motion-toggle {
    min-height:32px;
    font-size:.68rem
  }
  .head h1 {
    font-size:clamp(1.7rem,5.8vw,2.8rem)
  }
  .head__foot {
    display:block
  }
  .hero__actions {
    margin-top:1rem;
    flex-wrap:wrap;
    gap:.2rem 1rem
  }
  .hero__actions .btn {
    min-height:44px;
    font-size:.875rem
  }
  .lede {
    font-size:.95rem;
    max-width:48ch
  }
  .estimate-explainer,.duet,.service-intro__grid,.service-detail,.contact-layout,.photo-guide,.review-layout {
    grid-template-columns:1fr;
    gap:2.5rem
  }
  .estimate-explainer {
    gap:1.5rem
  }
  .svc__link {
    gap:1.5rem;
    grid-template-columns:5fr 3fr
  }
  .svc__text h3 {
    font-size:1.45rem
  }
  .svc__text p {
    font-size:.95rem
  }
  .svc__media .shot {
    aspect-ratio:3/4
  }
  .service-intro .shot {
    aspect-ratio:3/2
  }
  .service-intro h1 {
    max-width:23ch
  }
  .service-intro .band__lede {
    max-width:45ch
  }
  .service-detail {
    gap:3rem
  }
  .service-signs {
    max-width:38rem
  }
  .closing__in {
    align-items:flex-start;
    flex-direction:column;
    gap:1.5rem;
    padding-block:3rem
  }
  .work-grid {
    gap:3rem 1.5rem
  }
  .work-grid figure:nth-child(2n) {
    margin-top:3rem
  }
  .contact-layout {
    padding-top:.5rem
  }
  .contact-info {
    order:2
  }
  .photo-guide .shot {
    aspect-ratio:3/2
  }
  .review-card {
    max-width:30rem;
    margin-inline:auto
  }
}
@media(max-width:36rem) {
  h1 {
    font-size:2.4rem
  }
  .page-intro {
    padding-top:1.5rem
  }
  .back {
    margin-bottom:1rem
  }
  .band__lede {
    margin-bottom:2rem
  }
  .svc__link {
    grid-template-columns:1fr;
    gap:1.5rem
  }
  .svc__media {
    grid-row:1
  }
  .svc__media .shot {
    aspect-ratio:2/1
  }
  .svc {
    padding-bottom:1.5rem
  }
  .steps {
    gap:2rem 1.5rem
  }
  .step__n {
    margin-bottom:1rem
  }
  .step h3 {
    font-size:1.2rem
  }
  .step p {
    font-size:.95rem
  }
  .work-grid {
    grid-template-columns:1fr
  }
  .work-grid figure:nth-child(2n) {
    margin-top:0
  }
  .site-foot__in {
    grid-template-columns:1fr;
    gap:2.5rem
  }
  .site-foot__in>:last-child {
    grid-column:auto
  }
  .form-grid {
    grid-template-columns:1fr;
    gap:1.3rem
  }
  .estimate-result dl div {
    grid-template-columns:1fr;
    gap:.2rem
  }
  .compare-images {
    gap:.4rem
  }
  .comparison-actions {
    gap:.2rem 1rem
  }
  .review-card .mark span {
    display:inline;
    margin-left:.4rem
  }
}
@media(max-width:22rem) {
  .site-head__in {
    gap:.45rem
  }
  .mark {
    font-size:1rem
  }
  .tel {
    font-size:.76rem;
    padding-inline:.4rem
  }
  .mobile-menu summary {
    font-size:.75rem
  }
  .call-bar {
    padding-inline:.75rem
  }
  .head h1 {
    font-size:1.65rem
  }
}
@media(prefers-reduced-motion:reduce) {
  .sequence-active .stage {
    height:auto
  }
  .sequence-active .pin {
    position:relative
  }
  *,*::before,*::after {
    animation:none!important;
    transition:none!important;
    scroll-behavior:auto!important
  }
}
@media print {
  body {
    padding:0;
    background:#fff;
    color:#222;
    font-size:10pt
  }
  .dp-note,.site-head,.site-foot,.call-bar,.skip,button,.back,.closing {
    display:none!important
  }
  .wrap {
    width:100%;
    padding:0
  }
  .stage {
    height:auto!important
  }
  .pin {
    position:relative!important;
    height:35rem
  }
  #cv {
    display:none!important
  }
  #poster[hidden] {
    display:block!important
  }
  .contact-layout {
    display:block
  }
  .contact-info,#estimate-form,.estimate-form>h2,.estimate-form>p,.page-intro {
    display:none!important
  }
  .estimate-result {
    margin:0;
    padding:0;
    border:0
  }
  .review-layout {
    display:block;
    padding:0
  }
  .review-instructions {
    display:none
  }
  .review-card {
    width:4.5in;
    margin:.5in auto;
    padding:.35in;
    break-inside:avoid
  }
  .review-card a {
    font-size:9pt
  }
  .review-card svg {
    width:2in
  }
}
