.hero > picture,
.hero > picture img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.form-step-label { margin: 0 0 1.2rem; color: var(--blue); font-weight: 850; }
.trust-grid { grid-template-columns: repeat(4, 1fr) minmax(180px, 1.15fr); align-items: stretch; }
.google-rating { display: flex; flex-direction: column; justify-content: center; gap: .12rem; margin: -.55rem 0 -.55rem 1.2rem; padding: .65rem 1rem; border: 1px solid rgba(255,255,255,.2); border-radius: 13px; background: rgba(255,255,255,.08); color: #fff; }
.google-wordmark { font-size: .78rem; font-weight: 750; letter-spacing: .01em; opacity: .9; }
.rating-line { display: flex; align-items: center; gap: .55rem; }
.google-rating .rating-line strong { font-size: 1.65rem; line-height: 1; }
.rating-stars { color: var(--yellow); font-size: .92rem; letter-spacing: .08em; }
.google-rating > span:last-child { font-size: .78rem; opacity: .78; }
.testimonial { padding-block: 6rem; }
.testimonial-heading { display: grid; grid-template-columns: 1fr auto; gap: 3rem; align-items: end; margin-bottom: 2.5rem; }
.testimonial-heading .section-intro { margin-bottom: 0; }
.review-summary { min-width: 240px; padding: 1.15rem 1.35rem; border-radius: 15px; background: #fff; color: var(--blue2); box-shadow: 0 18px 45px rgba(0,0,0,.18); }
.review-source { display: block; margin-bottom: .35rem; color: #536975; font-size: .76rem; font-weight: 850; text-transform: uppercase; letter-spacing: .08em; }
.review-summary div { display: flex; align-items: center; gap: .7rem; }
.review-summary strong { font-size: 2rem; line-height: 1; }
.review-stars { color: var(--yellow); letter-spacing: .1em; }
.review-summary > span:last-child { color: #60727d; font-size: .8rem; }
.quotes blockquote { position: relative; overflow: hidden; background: rgba(255,255,255,.045); box-shadow: inset 0 1px rgba(255,255,255,.08); }
.quote-mark { position: absolute; top: -.45rem; right: 1rem; color: rgba(255,255,255,.07); font-family: Georgia,serif; font-size: 9rem; line-height: 1; }
.quotes blockquote p { position: relative; min-height: 7.5rem; }
.quotes footer strong, .quotes footer small { display: block; }
.quotes footer small { margin-top: .1rem; color: rgba(255,255,255,.58); font-size: .72rem; font-weight: 650; text-transform: uppercase; letter-spacing: .07em; }
.testimonial-cta { display: flex; justify-content: space-between; align-items: center; gap: 2rem; margin-top: 2rem; padding-top: 2rem; border-top: 1px solid rgba(255,255,255,.16); }
.testimonial-cta p { margin: 0; color: #d7e0e5; font-size: 1.05rem; }
.optional-fields { margin: 1rem 0 1.4rem; border-top: 1px solid #c8d4da; border-bottom: 1px solid #c8d4da; }
.optional-fields summary { padding: 1rem 0; cursor: pointer; font-weight: 850; color: var(--blue); }
.optional-fields summary span,
.optional { font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; color: #687b86; font-weight: 750; }
.optional-fields-inner { padding-top: .5rem; }
.client-logos { min-height: 132px; border-bottom: 1px solid #dde5e8; background: #fff; }
.logo-row { height: 132px; display: grid; grid-template-columns: 120px repeat(9, 1fr); gap: .8rem; align-items: center; }
.logo-row p { margin: 0; color: #60727d; font-size: .7rem; line-height: 1.25; font-weight: 850; text-transform: uppercase; letter-spacing: .09em; }
.logo-row img { width: 100%; height: 74px; object-fit: contain; filter: grayscale(1); opacity: .68; }
.before-after { margin-top: 2.5rem; padding: 1.5rem; display: grid; grid-template-columns: .8fr 1fr 1fr; gap: 1rem; align-items: stretch; background: var(--mist); border-radius: var(--radius); }
.before-after-copy { padding: .8rem; align-self: center; }
.before-after-copy .eyebrow { margin-bottom: .7rem; }
.before-after-copy p:last-child { margin-bottom: 0; color: #50616d; }
.before-after figure { position: relative; min-height: 220px; margin: 0; overflow: hidden; border-radius: 12px; background: #dbe3e7; }
.before-after figure span { position: absolute; z-index: 1; top: .75rem; left: .75rem; padding: .35rem .65rem; border-radius: 999px; background: rgba(7,27,41,.86); color: #fff; font-size: .72rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.before-after img { width: 100%; height: 100%; object-fit: cover; }
.gallery-filters { display: flex; flex-wrap: wrap; gap: .55rem; margin: -1.5rem 0 1.5rem; }
.gallery-filters button { padding: .58rem .9rem; border: 1px solid #b9c7ce; border-radius: 999px; background: #fff; color: var(--blue); font: inherit; font-size: .84rem; font-weight: 800; cursor: pointer; }
.gallery-filters button[aria-pressed="true"] { border-color: var(--blue); background: var(--blue); color: #fff; }
.gallery figure[hidden] { display: none; }
.quotes footer { display: flex; align-items: center; gap: .8rem; }
.quote-avatar { width: 58px; height: 58px; display: grid; place-items: center; flex: none; border-radius: 50%; background: var(--yellow); color: var(--blue2); font-size: .82rem; font-weight: 900; letter-spacing: .06em; }
.form-visual { height: 185px; margin-bottom: 1.6rem; overflow: hidden; border-radius: var(--radius); }
.form-visual img { width: 100%; height: 100%; object-fit: cover; }
.service-grid article { padding: 1.2rem 1.5rem 1.5rem; min-height: 330px; overflow: hidden; }
.service-grid article > img { width: calc(100% + 3rem); max-width: none; height: 145px; margin: -1.2rem -1.5rem 1.2rem; object-fit: cover; }
.service-grid article > span { margin-bottom: .65rem; }
.service-grid article p { margin-bottom: 0; }
.gallery { grid-auto-flow: dense; grid-template-areas: "a a b c" "d e f g" "h e i j" "k l m m" "n n o o"; }
.gallery figure:nth-child(1) { grid-area: a; }
.gallery figure:nth-child(2) { grid-area: b; }
.gallery figure:nth-child(3) { grid-area: c; }
.gallery figure:nth-child(4) { grid-area: d; }
.gallery figure:nth-child(5) { grid-area: e; }
.gallery figure:nth-child(6) { grid-area: f; }
.gallery figure:nth-child(7) { grid-area: g; }
.gallery figure:nth-child(8) { grid-area: h; }
.gallery figure:nth-child(9) { grid-area: i; }
.gallery figure:nth-child(10) { grid-area: j; }
.gallery figure:nth-child(11) { grid-area: k; }
.gallery figure:nth-child(12) { grid-area: l; }
.gallery figure:nth-child(13) { grid-area: m; }
.gallery figure:nth-child(14) { grid-area: n; }
.gallery figure:nth-child(15) { grid-area: o; }
.gallery.is-filtered { grid-template-areas: none; }
.gallery.is-filtered figure { grid-area: auto; grid-column: auto; grid-row: auto; }
.legal-page { min-height: 70vh; padding-block: 6rem; }
.legal-page h1 { color: var(--blue); font-size: clamp(2.5rem, 6vw, 5rem); }
.legal-page .notice { max-width: 720px; margin-top: 2rem; padding: 1.5rem; background: var(--mist); border-left: 5px solid var(--yellow); }
.legal-copy { max-width: 860px; margin-top: 3rem; }
.legal-copy h2 { margin: 2.5rem 0 .8rem; font-size: clamp(1.35rem, 2.4vw, 1.8rem); letter-spacing: -.02em; color: var(--blue); }
.legal-copy p { margin: 0 0 1.1rem; }
.legal-copy a { color: var(--blue); overflow-wrap: anywhere; }
@media(max-width:900px){.trust-grid{grid-template-columns:1fr 1fr}.google-rating{margin:0;grid-column:1/-1;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem}.rating-line{justify-content:center}.testimonial-heading{grid-template-columns:1fr}.review-summary{max-width:300px}.quotes blockquote p{min-height:9.5rem}.logo-row{height:auto;min-height:132px;grid-template-columns:repeat(5,1fr);padding-block:.8rem}.logo-row p{grid-column:1/-1}.logo-row img{height:54px}.before-after{grid-template-columns:1fr 1fr}.before-after-copy{grid-column:1/-1}}
@media(max-width:600px){.google-rating{grid-template-columns:1fr auto;gap:.2rem .8rem}.google-wordmark{grid-column:1/-1}.rating-line{justify-content:flex-start}.testimonial{padding-block:4.5rem}.testimonial-heading{gap:1.8rem}.review-summary{width:100%;max-width:none}.quotes blockquote p{min-height:0}.testimonial-cta{align-items:stretch;flex-direction:column}.client-logos{min-height:150px}.logo-row{grid-template-columns:repeat(5,1fr);gap:.3rem}.logo-row img{height:42px}.service-grid article{min-height:0}.service-grid article>img{height:180px}.before-after{padding:1rem;grid-template-columns:1fr 1fr}.before-after figure{min-height:145px}.gallery{grid-template-areas:none}.gallery figure,.gallery .wide,.gallery .tall{grid-area:auto;grid-column:auto;grid-row:auto}.gallery-filters{flex-wrap:nowrap;overflow-x:auto;padding-bottom:.4rem}.gallery-filters button{white-space:nowrap}.form-visual{height:150px}}
