/* MasterSlate homepage v3 (index.html only). Section designs adapted from steelinvest-homepage-1:
   galeria-v5 gate, stats counters, marquee gallery, testimonials, process-v1, trust band, docs list, service galleries, image reveal.
   Palette: red #E90117, white, black, grays. Radius 4px. Motion off under prefers-reduced-motion. */

:root { --hv3-hdr: 73px; --hv3-line: rgba(255,255,255,.14); }
.home-v3 { overflow-x: clip; }

/* ---------- shared alignment: every block uses the navbar's 1200px container ---------- */
.home-v3 .hero.hero-v2 > .container { max-width: var(--max-w); }
.home-v3 .section-action { text-align: center; margin-top: 48px; }

/* ---------- hero: brighter photo, no red diagonal decor, one CTA (the inquiry card) ---------- */
.home-v3 .hero.hero-v2::before { background: linear-gradient(90deg, rgba(17,17,17,.64) 0%, rgba(17,17,17,.34) 40%, rgba(17,17,17,0) 64%); }
.home-v3 .hero::after { display: none !important; }
.hv3-textlink {
  display: inline-flex; align-items: center; gap: 10px; color: #fff; text-decoration: none;
  font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 1rem;
  padding-bottom: 6px; border-bottom: 2px solid rgba(255,255,255,.55); transition: border-color .3s var(--ms-ease);
}
.hv3-textlink:hover, .hv3-textlink:focus-visible { border-color: #fff; }
.hv3-textlink i { color: #fff; }

/* ---------- ticker ---------- */
.hv3-ticker { background: var(--ms-black) !important; border-bottom: 0 !important; }
.hv3-ticker .marquee-inner span { text-transform: none !important; letter-spacing: .01em !important; font-size: .95rem !important; }
.hv3-ticker .marquee-inner span i { color: #fff !important; }


/* Benefits ticker halves must stay equally wide and never shrink within the viewport. */
.hv3-ticker .marquee-inner { flex: 0 0 auto; width: max-content; }
.hv3-ticker-sequence { display: flex; flex: 0 0 auto; align-items: center; }
.hv3-ticker .marquee-inner span { flex: 0 0 auto; }

/* ---------- stats counters (template stats-counters) ---------- */
.hv3-stats { background: var(--ms-black) !important; color: #fff; padding: clamp(72px, 8vw, 104px) 0; }
.hv3-stats-head { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 56px; align-items: end; margin-bottom: 56px; }
.hv3-stats-head .section-title { color: #fff; margin: 8px 0 0; font-size: clamp(1.9rem, 3vw, 2.6rem); }
.hv3-stats-head p { color: rgba(255,255,255,.8) !important; font-size: 1.1rem; line-height: 1.7; margin: 0; }
.hv3-stats-grid {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px;
  background: var(--hv3-line); border: 1px solid var(--hv3-line); border-top: 3px solid var(--ms-red); border-radius: 4px; overflow: hidden;
}
.hv3-stat { position: relative; background: var(--ms-black); padding: 40px 32px 36px; }
.hv3-stat-idx { position: absolute; top: 20px; right: 24px; font: 700 .78rem/1 'Montserrat', sans-serif; letter-spacing: .12em; color: rgba(255,255,255,.42); }
.hv3-stat > i { display: block; font-size: 2rem; color: #fff; margin-bottom: 28px; }
.hv3-stat-num { font: 800 clamp(2.8rem, 4.4vw, 4rem)/1 'Montserrat', sans-serif; color: #fff !important; margin: 0 0 18px; letter-spacing: -.02em; }
.hv3-plus { color: #fff; }
.hv3-stat-label { position: relative; padding-top: 18px; margin: 0; color: rgba(255,255,255,.78) !important; font-size: .98rem; line-height: 1.5; }
.hv3-stat-label::before { content: ''; position: absolute; top: 0; left: 0; width: 32px; height: 3px; background: var(--ms-red); transition: width .45s var(--ms-ease); }
.hv3-stat:hover .hv3-stat-label::before { width: 56px; }

/* services H2 second line (supporting keyword) */
.hv3-h2-sub { display: block; font-size: .5em; font-weight: 600; color: var(--ms-g700); letter-spacing: 0; margin-top: 10px; }

/* ---------- consulting: docs-style rows with the full price list ---------- */
.hv3-docs { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(40px, 6vw, 80px); align-items: start; }
.hv3-docs-intro { position: sticky; top: calc(var(--hv3-hdr) + 32px); }
.hv3-docs-intro > p { font-size: 1.08rem; color: var(--ms-g700); }
.hv3-docs-intro .btn { height: auto; min-height: 52px; white-space: normal; line-height: 1.35; text-align: left; padding-top: 14px; padding-bottom: 14px; }
.hv3-docs-note { display: flex; gap: 12px; align-items: flex-start; background: var(--ms-g100); border-left: 3px solid var(--ms-red); border-radius: 4px; padding: 16px 18px; font-size: .9rem !important; line-height: 1.6; color: var(--ms-g900) !important; margin: 24px 0 28px; }
.hv3-docs-note i { color: var(--ms-red-ink); font-size: 1.2rem; margin-top: 1px; }
.hv3-offers { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ms-g200); }
.hv3-offer { display: grid; grid-template-columns: 64px minmax(0, 1fr) 210px; gap: 28px; padding: 32px 0; border-bottom: 1px solid var(--ms-g200); align-items: start; }
.hv3-offer-ico { display: grid; justify-items: center; gap: 10px; }
.hv3-offer-ico i { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 4px; background: var(--ms-black); color: #fff; font-size: 1.7rem; transition: background-color .35s var(--ms-ease); }
.hv3-offer:hover .hv3-offer-ico i { background: var(--ms-red); }
.hv3-offer-ico b { font: 700 .78rem/1 'Montserrat', sans-serif; letter-spacing: .12em; color: var(--ms-g500); }
.hv3-offer-text h3 { font-size: 1.25rem; margin: 4px 0 10px; color: var(--ms-black); }
.hv3-offer-text p { margin: 0 0 10px; color: var(--ms-g700); font-size: .98rem; line-height: 1.65; }
.hv3-offer-text .hv3-offer-spec { color: var(--ms-black); font-weight: 500; }
.hv3-offer-text .hv3-offer-note { display: flex; gap: 8px; align-items: center; font-size: .9rem; color: var(--ms-g900); margin-top: 14px; }
.hv3-offer-note i { color: var(--ms-red-ink); font-size: 1.1rem; }
.hv3-offer-note a { color: var(--ms-black); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.hv3-offer-price { text-align: right; display: grid; gap: 4px; justify-items: end; }
.hv3-offer-price strong { font: 800 1.55rem/1.15 'Montserrat', sans-serif; color: var(--ms-black); white-space: nowrap; }
.hv3-offer-price small { color: var(--ms-g700); font-size: .85rem; }
.hv3-offer-price > span { color: var(--ms-g500); font-size: .82rem; margin-top: 6px; }
.hv3-op-row { display: grid; gap: 2px; justify-items: end; margin-bottom: 8px; }
.hv3-factors { border-radius: 4px !important; border-color: var(--ms-g200) !important; box-shadow: none !important; background: var(--ms-g100) !important; }
.hv3-factors .price-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px 28px; }
.hv3-factors .price-list i { color: var(--ms-red-ink); }

/* ---------- material library: template marquee gallery ---------- */
.hv3-mq { background: var(--ms-black) !important; color: #fff; padding: clamp(80px, 9vw, 110px) 0 clamp(80px, 9vw, 110px); overflow: hidden; position: relative; isolation: isolate; }
.hv3-mq::before { content: ''; position: absolute; inset: 0; z-index: -1; background: url("assets/decor/cleavage.svg") repeat 0 0 / 320px 160px; filter: invert(1); opacity: .06; pointer-events: none; }
.hv3-mq-head { max-width: 780px; margin: 0 auto 56px; }
.hv3-mq-head p { color: rgba(255,255,255,.78) !important; font-size: 1.08rem; }
.hv3-mq-tracks { display: grid; gap: 20px; transform: rotate(-2deg) scale(1.04); padding: 12px 0; }
.hv3-mq-track { display: flex; gap: 20px; width: max-content; animation: hv3-mq-left 70s linear infinite; }
.hv3-mq-track.is-right { animation-name: hv3-mq-right; animation-duration: 64s; }
/* hover slows the stripes instead of stopping them: home-v3.js eases each animation's playbackRate */
@keyframes hv3-mq-left { from { transform: translate3d(0,0,0); } to { transform: translate3d(calc(-50% - 10px),0,0); } }
@keyframes hv3-mq-right { from { transform: translate3d(calc(-50% - 10px),0,0); } to { transform: translate3d(0,0,0); } }
.hv3-mq-item {
  position: relative; flex: none; width: 360px; height: 220px; padding: 0; border: 0; border-radius: 4px; overflow: hidden;
  background: #fff; cursor: zoom-in; font: inherit; color: inherit;
}
.hv3-mq-item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1s var(--ms-ease); }
.hv3-mq-item picture { display: block; width: 100%; height: 100%; }
.hv3-mq-item img.is-studio { transform: scale(1.48); }
.hv3-mq-item:hover img { transform: scale(1.06); }
.hv3-mq-item:hover img.is-studio { transform: scale(1.56); }
.hv3-mq-cap {
  position: absolute; left: 12px; bottom: 12px; display: grid; gap: 2px; text-align: left;
  background: #fff; color: var(--ms-black); border-radius: 4px; padding: 8px 12px; box-shadow: 0 6px 18px rgba(0,0,0,.18);
}
.hv3-mq-cap strong { font: 700 .92rem/1.2 'Montserrat', sans-serif; }
.hv3-mq-cap small { font-size: .74rem; color: var(--ms-g700); }
.hv3-mq-item:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.hv3-mq .section-action { margin-top: 64px; }

/* ---------- why: sharp photo + numbered list ---------- */
.hv3-why { background: var(--ms-g100); }
.hv3-why-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(40px, 6vw, 88px); align-items: center; }
.hv3-lead { font-size: 1.1rem; color: var(--ms-g700); margin-bottom: 32px; }
.hv3-why-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; border-top: 1px solid var(--ms-g300); }
.hv3-why-list li { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 16px; padding: 22px 0; border-bottom: 1px solid var(--ms-g300); }
.hv3-no { font: 800 1rem/1.6 'Montserrat', sans-serif; color: var(--ms-red-ink); letter-spacing: .06em; }
.hv3-why-list h3 { font-size: 1.12rem; margin: 0 0 6px; color: var(--ms-black); }
.hv3-why-list p { margin: 0; color: var(--ms-g700); font-size: .98rem; }
.hv3-why-media { margin: 0; align-self: stretch; }
.hv3-why-media img { width: 100%; height: 100%; min-height: 520px; object-fit: cover; border-radius: 4px; display: block; box-shadow: var(--ms-shadow); }

/* ---------- method: image column matches the text column ---------- */
.hv3-method { align-items: stretch !important; }
.hv3-method-media { position: relative; min-height: 460px; }
.hv3-method-media img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; object-fit: cover; border-radius: 4px; }

/* ---------- references: opening gate gallery (template #galeria-v5) ---------- */
.hv3-gate { position: relative; background: #fff; padding: var(--section-py) 0; }
.hv3-gate-sticky { position: relative; }
.hv3-gate-title { max-width: var(--max-w); margin: 0 auto 40px; padding: 0 24px; }
.hv3-gate-hint { display: none; }
.hv3-gate-grid {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: 260px; gap: 16px;
  max-width: var(--max-w); margin: 0 auto; padding: 0 24px; box-sizing: border-box;
}
.hv3-gate-item { position: relative; padding: 0; border: 0; border-radius: 4px; overflow: hidden; background: var(--ms-g100); cursor: zoom-in; font: inherit; }
.hv3-gate-item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1.1s var(--ms-ease); }
.hv3-gate-item:hover img, .hv3-gate-item:focus-visible img { transform: scale(1.05); }
.hv3-gate-item > i { position: absolute; top: 14px; right: 14px; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 4px; background: var(--ms-black); color: #fff; font-size: 1.1rem; opacity: 0; transition: opacity .35s var(--ms-ease); }
.hv3-gate-item:hover > i, .hv3-gate-item:focus-visible > i { opacity: 1; }
.hv3-gate-item:focus-visible { outline: 3px solid var(--ms-red); outline-offset: 3px; }
.hv3-gate-panel { display: none; }
.hv3-gate-after { margin: 0 !important; padding: 0 0 var(--section-py); background: #fff; }

.js-hv3:not(.hv3-reduce) .hv3-gate { height: 250vh; padding: 0; }
.js-hv3:not(.hv3-reduce) .hv3-gate-sticky { position: sticky; top: 0; height: 100vh; overflow: hidden; padding-top: var(--hv3-hdr); box-sizing: border-box; }
.js-hv3:not(.hv3-reduce) .hv3-gate-grid {
  height: calc(100vh - var(--hv3-hdr) - 48px); margin-top: 24px; grid-template-rows: repeat(3, minmax(0, 1fr)); grid-auto-rows: auto;
  transform: scale(.82); opacity: 0; will-change: transform, opacity;
}
.js-hv3:not(.hv3-reduce) .hv3-gate-panel {
  display: block; position: absolute; top: var(--hv3-hdr); bottom: 0; width: 50%; overflow: hidden; z-index: 2; will-change: transform;
}
.js-hv3:not(.hv3-reduce) .hv3-gate-panel.is-left { left: 0; }
.js-hv3:not(.hv3-reduce) .hv3-gate-panel.is-right { right: 0; }
.js-hv3:not(.hv3-reduce) .hv3-gate-panel img { position: absolute; top: 0; left: 0; width: 200%; max-width: none; height: 100%; object-fit: cover; object-position: center 55%; }
.js-hv3:not(.hv3-reduce) .hv3-gate-panel.is-right img { left: -100%; }
.js-hv3:not(.hv3-reduce) .hv3-gate-title {
  position: absolute; z-index: 3; left: 50%; top: calc(50% + var(--hv3-hdr) / 2); transform: translate(-50%, -50%);
  margin: 0; background: #fff; border-radius: 4px; padding: 32px 48px 26px; box-shadow: 0 24px 60px rgba(0,0,0,.28); width: max-content; max-width: calc(100% - 48px);
}
.js-hv3:not(.hv3-reduce) .hv3-gate-title .section-title { margin-bottom: 0; }
.js-hv3:not(.hv3-reduce) .hv3-gate-title .section-title::after { margin-left: auto; margin-right: auto; }
.js-hv3:not(.hv3-reduce) .hv3-gate-hint { display: flex; justify-content: center; align-items: center; gap: 8px; margin: 14px 0 0; font-size: .9rem; color: var(--ms-g700); }
.hv3-gate-hint i { color: var(--ms-red-ink); animation: hv3-nudge 1.8s var(--ms-ease) infinite; }
@keyframes hv3-nudge { 50% { transform: translateY(4px); } }
.js-hv3:not(.hv3-reduce) .hv3-gate-after { padding-top: 48px; }

/* ---------- reviews: template testimonials columns ---------- */
.hv3-reviews { background: var(--ms-g100); }
.hv3-tm {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; height: 620px; overflow: hidden; margin-top: 48px;
  -webkit-mask-image: linear-gradient(transparent 0, #000 12%, #000 88%, transparent 100%);
  mask-image: linear-gradient(transparent 0, #000 12%, #000 88%, transparent 100%);
}
.hv3-tm-col { min-width: 0; }
.hv3-tm-track { animation: hv3-tm-up var(--dur, 48s) linear infinite; will-change: transform; }
.hv3-tm-track.is-rev { animation-direction: reverse; }
.hv3-tm:hover .hv3-tm-track, .hv3-tm:focus-within .hv3-tm-track { animation-play-state: paused; }
@keyframes hv3-tm-up { to { transform: translate3d(0, -33.3333%, 0); } }
.hv3-tm-card { background: #fff; border: 1px solid var(--ms-g200); border-radius: 4px; padding: 28px; margin-bottom: 24px; box-shadow: 0 10px 30px rgba(17,17,17,.06); }
.hv3-tm-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; }
.hv3-tm-stars { color: var(--ms-red); letter-spacing: 3px; font-size: 1.05rem; }
.hv3-g { display: block; width: 22px; height: 22px; }
.hv3-tm-quote { color: var(--ms-g900) !important; font-size: .98rem; line-height: 1.7; margin: 0 0 22px; }
.hv3-tm-author { display: flex; gap: 12px; align-items: center; padding-top: 18px; border-top: 1px solid var(--ms-g200); }
.hv3-tm-avatar { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: var(--ms-black); color: #fff; font: 700 .9rem/1 'Montserrat', sans-serif; flex: none; }
.hv3-tm-author strong { display: block; color: var(--ms-black); font-size: .98rem; }
.hv3-tm-author small { color: var(--ms-g500); font-size: .8rem; }
.hv3-tm-score { text-align: center; display: grid; justify-items: center; gap: 14px; padding: 36px 28px; }
.hv3-tm-score .hv3-g { width: 34px; height: 34px; }
.hv3-tm-score .rv-score { margin: 0; color: var(--ms-g700); font-size: .95rem; line-height: 1.6; }
.hv3-tm-score .rv-score strong { display: block; font: 800 3rem/1 'Montserrat', sans-serif; color: var(--ms-black); margin-bottom: 6px; }
.hv3-tm-score .hv3-tm-stars { display: block; margin-bottom: 6px; }

/* ---------- process: template process-v1 with a bright project photo ---------- */
.hv3-process { position: relative; background: #fff; }
.hv3-process-dark { background: var(--ms-black); color: #fff; padding: var(--section-py) 0 0; position: relative; }
.hv3-process-dark > .container { position: relative; z-index: 3; }
.hv3-process-dark::before { content: ''; position: absolute; inset: 0; z-index: 0; background: url("assets/decor/cleavage.svg") repeat 0 0 / 320px 160px; filter: invert(1); opacity: .06; pointer-events: none; }
.hv3-process-head { text-align: center; max-width: 720px; margin: 0 auto 72px; }
.hv3-process-head .section-subtitle { color: #fff !important; }
.hv3-process-head .section-title { color: #fff; }
.hv3-process-head .section-title::after { filter: invert(1) hue-rotate(180deg); }
.hv3-process-head p { color: rgba(255,255,255,.8); font-size: 1.08rem; margin: 0; }
.hv3-steps { list-style: none; margin: 0 0 -150px; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 20px; position: relative; z-index: 2; }
.hv3-steps::before { content: ''; position: absolute; left: 10%; right: 10%; top: 0; height: 1px; background: rgba(255,255,255,.22); }
.hv3-step { position: relative; background: #fff; border-radius: 4px; padding: 48px 22px 30px; text-align: center; box-shadow: 0 24px 50px rgba(0,0,0,.18); transition: transform .45s var(--ms-ease), box-shadow .45s var(--ms-ease); }
.hv3-step:hover { transform: translateY(-6px); box-shadow: 0 30px 60px rgba(0,0,0,.22); }
.hv3-step-no { position: absolute; top: -22px; left: 50%; transform: translateX(-50%); display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--ms-red); color: #fff; font: 800 1rem/1 'Montserrat', sans-serif; box-shadow: 0 0 0 6px var(--ms-black); }
.hv3-step > i { display: block; font-size: 2rem; color: var(--ms-black); margin-bottom: 14px; }
.hv3-step h3 { font-size: 1.05rem; margin: 0 0 10px; color: var(--ms-black) !important; }
.hv3-step p { margin: 0; font-size: .92rem; line-height: 1.6; color: var(--ms-g700) !important; }
.hv3-process-photo { position: relative; z-index: 1; height: clamp(420px, 44vw, 580px); overflow: hidden; }
.hv3-process-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 50%; display: block; }

/* ---------- general contracting: trust band ---------- */
.hv3-general { background: var(--ms-black) !important; color: #fff; padding: var(--section-py) 0; }
.hv3-trust { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); border: 1px solid var(--hv3-line); border-radius: 4px; }
.hv3-trust-intro { padding: clamp(32px, 4vw, 56px); border-right: 1px solid var(--hv3-line); }
.hv3-trust-intro .section-title { color: #fff; font-size: clamp(1.7rem, 2.6vw, 2.3rem); margin: 8px 0 20px; }
.hv3-trust-intro p { color: rgba(255,255,255,.8) !important; font-size: 1.05rem; line-height: 1.7; margin: 0 0 32px; }
.hv3-trust-badges { list-style: none; margin: 0; padding: 0; display: grid; grid-template-rows: repeat(3, 1fr); }
.hv3-trust-badges li { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: 18px; align-items: center; padding: 0 clamp(24px, 3vw, 40px); border-bottom: 1px solid var(--hv3-line); }
.hv3-trust-badges li:last-child { border-bottom: 0; }
.hv3-trust-badges i { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 4px; border: 1px solid var(--hv3-line); color: #fff; font-size: 1.6rem; }
.hv3-trust-badges strong { font: 700 1.12rem/1.3 'Montserrat', sans-serif; color: #fff; }
.hv3-tb-no { grid-column: 3; grid-row: 1; font: 700 .78rem/1 'Montserrat', sans-serif; letter-spacing: .12em; color: rgba(255,255,255,.42); }

/* ---------- coverage: white full width, no red mist, travelling outline ---------- */
.hv3-coverage .cov-grid { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); }
.hv3-coverage .map-land { fill: var(--ms-g100); stroke: var(--ms-g300); }
.hv3-coverage .hv3-map-trace { fill: none; stroke: var(--ms-red); stroke-width: 4; stroke-linecap: round; stroke-dasharray: 70 930; animation: hv3-trace 9s linear infinite; }
.hv3-coverage .hv3-map-trace.is-2 { stroke: var(--ms-black); stroke-width: 3; stroke-dasharray: 30 970; animation-delay: -4.5s; opacity: .55; }
@keyframes hv3-trace { from { stroke-dashoffset: 1000; } to { stroke-dashoffset: 0; } }
.hv3-coverage .m-dot { fill: var(--ms-red) !important; }
.hv3-coverage .m-pulse { fill: var(--ms-red) !important; }
.hv3-coverage .cov-list i { color: var(--ms-red-ink); }

/* ---------- contact: solid black with the faded pattern ---------- */
.hv3-contact { background: var(--ms-black) !important; background-image: none !important; }

/* ---------- lightbox focus ---------- */
.home-v3 .lightbox .lb-close:focus-visible, .home-v3 .lightbox .lb-nav:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }

/* ---------- responsive (secondary, desktop QA at 1280) ---------- */
@media (max-width: 1080px) {
  .hv3-stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hv3-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 44px; }
  .hv3-offer { grid-template-columns: 56px minmax(0, 1fr); }
  .hv3-offer-price { grid-column: 2; text-align: left; justify-items: start; }
  .hv3-op-row { justify-items: start; }
}
@media (max-width: 860px) {
  .hv3-stats-head, .hv3-why-grid, .hv3-docs, .hv3-trust, .hv3-coverage .cov-grid { grid-template-columns: minmax(0, 1fr); }
  .hv3-docs-intro { position: static; }
  .hv3-trust-intro { border-right: 0; border-bottom: 1px solid var(--hv3-line); }
  .hv3-trust-badges li { padding: 20px 24px; }
  .hv3-tm { grid-template-columns: minmax(0, 1fr); height: 560px; }
  .hv3-tm-col:nth-child(n+2) { display: none; }
  .hv3-factors .price-list { grid-template-columns: minmax(0, 1fr); }
  .hv3-gate-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 200px; }
  .hv3-mq-item { width: 280px; height: 172px; }
}
@media (max-width: 600px) {
  .hv3-steps { grid-template-columns: minmax(0, 1fr); margin-bottom: -80px; }
  .hv3-stats-grid { grid-template-columns: minmax(0, 1fr); }
  .hv3-why-media img { min-height: 340px; }
}

/* ---------- reduced motion: everything static and readable ---------- */
@media (prefers-reduced-motion: reduce) {
  .hv3-mq-track, .hv3-tm-track, .hv3-coverage .hv3-map-trace, .hv3-gate-hint i { animation: none !important; }
  .hv3-mq-tracks { transform: none; }
  .hv3-mq-track { flex-wrap: wrap; width: auto; justify-content: center; padding: 0 24px; }
  .hv3-mq-item[aria-hidden="true"], .hv3-tm-card[aria-hidden="true"] { display: none; }
  .hv3-tm { height: auto; -webkit-mask-image: none; mask-image: none; }
  .hv3-coverage .hv3-map-trace { display: none; }
  .hv3-step, .hv3-mq-item img, .hv3-gate-item img { transition: none !important; }
}

/* ==========================================================================
   v4 (builder A1): service blocks, translucent stripe, image reveal
   ========================================================================== */

/* ---------- service detail blocks: main photo + 3-photo mini gallery (steelinvest service layout) ---------- */
.hv3-sd { padding: clamp(72px, 8vw, 104px) 0; }
.hv3-sd-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(48px, 6vw, 88px); align-items: center; }
.hv3-sd-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; min-width: 0; }
.hv3-sd-item {
  position: relative; display: block; width: 100%; padding: 0; border: 0; border-radius: 4px; overflow: hidden;
  background: var(--ms-g200); cursor: zoom-in; aspect-ratio: 5 / 4; font: inherit; box-shadow: 0 10px 24px rgba(17,17,17,.10);
}
.hv3-sd-item img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 0; box-shadow: none; transition: transform 1.1s var(--ms-ease), opacity .9s var(--ms-ease), scale 1.2s var(--ms-ease); }
.hv3-sd-item:hover img, .hv3-sd-item:focus-visible img { transform: scale(1.05); }
.hv3-sd-item:focus-visible { outline: 3px solid var(--ms-red); outline-offset: 3px; }
.hv3-sd-item::after { content: ''; position: absolute; inset: 0; border: 2px solid transparent; border-radius: 4px; pointer-events: none; transition: border-color .4s var(--ms-ease); }
.hv3-sd-item.is-current::after { border-color: var(--ms-red); }
.hv3-sd-main, .hv3-sd-mainwrap { grid-column: span 3; }
.hv3-sd-main { box-shadow: 0 24px 56px rgba(17,17,17,.18); }
.hv3-sd-mainwrap { position: relative; }
/* rotating main photo: stacked layers crossfade */
.hv3-sd-main img.hv3-sd-layer { opacity: 0; }
.hv3-sd-main img.hv3-sd-layer.is-on { opacity: 1; }
.hv3-sd-prog { position: absolute; z-index: 3; top: 16px; left: 16px; display: flex; gap: 6px; pointer-events: none; }
.hv3-sd-prog span { position: relative; width: 26px; height: 3px; border-radius: 2px; overflow: hidden; background: rgba(255,255,255,.55); box-shadow: 0 1px 4px rgba(0,0,0,.3); transition: width .3s var(--ms-ease); }
.hv3-sd-prog span.is-done { background: rgba(255,255,255,.92); }
.hv3-sd-prog span.is-active { width: 42px; }
.hv3-sd-prog b { position: absolute; inset: 0; background: var(--ms-red); transform-origin: left center; transform: scaleX(0); }
.hv3-sd-prog span.is-active b { animation: hv3-sd-fill var(--sd-dur, 4.5s) linear forwards; }
.hv3-sd-gallery.is-paused .hv3-sd-prog b { animation-play-state: paused; }
@keyframes hv3-sd-fill { to { transform: scaleX(1); } }
.hv3-sd-ctrl { position: absolute; z-index: 3; bottom: 16px; left: 16px; display: flex; gap: 8px; }
.hv3-sd-ctrl button {
  width: 40px; height: 40px; display: grid; place-items: center; padding: 0; border: 1px solid rgba(255,255,255,.6); border-radius: 4px;
  background: rgba(17,17,17,.72); color: #fff; font-size: 1.05rem; cursor: pointer; backdrop-filter: blur(4px); transition: background .3s var(--ms-ease);
}
.hv3-sd-ctrl button:hover { background: var(--ms-red); border-color: var(--ms-red); }
.hv3-sd-ctrl button:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
.hv3-sd .sd-content h3 { font-size: clamp(1.75rem, 2.4vw, 2.15rem); }
.hv3-sd .sd-content > p:last-of-type { margin-bottom: 0; }
.hv3-sd-actions { margin-top: 28px; }
.hv3-sd-actions .btn { margin-top: 0; }

/* ---------- material stripes: third stripe of translucent stones, lit on hover ---------- */
.hv3-mq-track.is-lit { animation-duration: 84s; }
.hv3-lt { cursor: pointer; }
.hv3-lt .hv3-lt-lit { position: absolute; inset: 0; opacity: 0; transition: opacity .8s var(--ms-ease); }
.hv3-lt { transition: box-shadow .8s var(--ms-ease); }
.hv3-lt-bulb {
  position: absolute; z-index: 2; right: 12px; bottom: 12px; width: 42px; height: 42px; display: grid; place-items: center;
  border-radius: 4px; background: rgba(17,17,17,.66); color: rgba(255,255,255,.82); font-size: 1.35rem; backdrop-filter: blur(4px);
  box-shadow: 0 0 0 1px rgba(255,255,255,.24); transition: background .5s var(--ms-ease), box-shadow .5s var(--ms-ease);
}
.hv3-lt-bulb i { grid-area: 1 / 1; transition: opacity .45s var(--ms-ease), filter .45s var(--ms-ease); }
.hv3-lt-bulb i.is-on { opacity: 0; color: #FFC928; }
.hv3-lt:hover .hv3-lt-lit, .hv3-lt:focus-visible .hv3-lt-lit, .hv3-lt[aria-pressed="true"] .hv3-lt-lit { opacity: 1; }
.hv3-lt:hover, .hv3-lt:focus-visible, .hv3-lt[aria-pressed="true"] { box-shadow: 0 0 48px rgba(255, 190, 60, .30); }
.hv3-lt:hover .hv3-lt-bulb, .hv3-lt:focus-visible .hv3-lt-bulb, .hv3-lt[aria-pressed="true"] .hv3-lt-bulb {
  background: rgba(40,30,8,.82); box-shadow: 0 0 0 1px rgba(255,201,40,.7), 0 0 26px rgba(255,190,40,.65);
}
.hv3-lt:hover .hv3-lt-bulb i.is-off, .hv3-lt:focus-visible .hv3-lt-bulb i.is-off, .hv3-lt[aria-pressed="true"] .hv3-lt-bulb i.is-off { opacity: 0; }
.hv3-lt:hover .hv3-lt-bulb i.is-on, .hv3-lt:focus-visible .hv3-lt-bulb i.is-on, .hv3-lt[aria-pressed="true"] .hv3-lt-bulb i.is-on { opacity: 1; filter: drop-shadow(0 0 5px rgba(255,200,40,.9)); }

/* ---------- image reveal (home-v3.js adds .hv3-rv-on, below-the-fold images only) ---------- */
.hv3-rv-on img.hv3-rv { opacity: 0; scale: 1.04; transition: opacity .9s var(--ms-ease), scale 1.3s var(--ms-ease), transform 1.1s var(--ms-ease); }
.hv3-rv-on img.hv3-rv.is-in { opacity: 1; scale: 1; }
.hv3-rv-on .hv3-sd-main img.hv3-rv.hv3-sd-layer:not(.is-on) { opacity: 0; }

@media (max-width: 860px) {
  .hv3-sd-grid { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .hv3-sd-grid.is-flip .hv3-sd-gallery { order: -1; }
  .hv3-sd-gallery { gap: 10px; }
}
/* 64cc98ed: Beltér swapped versus v3 (photos left, text right), Kültér and Átvilágítható keep text left, photos right */
@media (min-width: 861px) {
  .hv3-sd-grid.is-flip .hv3-sd-gallery { order: -1; }
  #szolgaltatasok-kulter .hv3-sd-gallery, #szolgaltatasok-atvilagithato .hv3-sd-gallery { order: 2; }
}
@media (prefers-reduced-motion: reduce) {
  .hv3-sd-item img, .hv3-lt .hv3-lt-lit, .hv3-lt-bulb, .hv3-lt-bulb i { transition: none !important; }
  .hv3-sd-prog, .hv3-sd-ctrl { display: none; }
}
