/* Layout: mirror of the DTI subpage — black header band, full-bleed photo hero with white fade,
   speed-line icon strip, alternating photo/text rows, print-structure diagram, logo divider,
   partner block, machinery panel, applications mosaic, 3 steps, orange service strip, price banner, footer.
   Single deliberate light brand look (the brand's own white / black / orange). */
:root {
  --orange: #E9562C;
  --orange-hot: #EF4622;
  --ink: #161616;
  --charcoal: #2A2A2A;
  --paper: #FFFFFF;
  --nav: #F4F4F4;
  --sand: #F3EEE7;
  --step1: #E2E2E2;
  --step2: #C4C4C4;
  --step3: #8E8E8E;
  --muted: #4A4A4A;
  --line: #DADADA;
  --display: "Anton", "Impact", "Arial Narrow Bold", sans-serif;
  --label: "Barlow Condensed", "Arial Narrow", sans-serif;
  --body: "Source Sans 3", "Myriad Pro", "Segoe UI", Arial, sans-serif;
  --wrap: 1180px;
  color-scheme: light;
}

* {
  box-sizing: border-box
}

body {
  background: var(--paper);
  color: var(--ink);
  font-family: var(--body);
  font-size: 16px;
  line-height: 1.45;
  margin: 0;
  overflow-x: hidden
}

img {
  max-width: 100%;
  display: block
}

a {
  color: inherit
}

.wrap {
  max-width: var(--wrap);
  margin: 0 auto;
  padding-left: max(16px, 0px);
  padding-right: max(16px, 0px)
}

h1,
h2,
h3 {
  font-family: var(--display);
  font-weight: 400;
  text-transform: uppercase;
  line-height: .98;
  margin: 0;
  text-wrap: balance
}

.o {
  color: var(--orange)
}

:focus-visible {
  outline: 3px solid var(--orange);
  outline-offset: 3px
}

/* black header band */
.band {
  background: var(--ink);
  color: #fff
}

.band .wrap {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 10px 36px;
  align-items: center;
  padding-block: 20px 18px
}

.band .seal {
  width: 120px
}

.band h1 {
  font-size: clamp(30px, 4.6vw, 56px)
}

.band .cert {
  grid-column: 1/-1;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
  border-top: 1px solid #333;
  padding-top: 16px;
  margin-top: 6px
}

.band .cert h2 {
  font-size: clamp(26px, 3.4vw, 42px)
}

.band .cert img {
  width: min(230px, 50vw)
}

/* hero */
.hero {
  position: relative;
  background: #111 url(../img/hero.jpg) 70% 50%/cover no-repeat;
  min-height: clamp(400px, 46vw, 580px);
  display: flex;
  align-items: center;
  overflow: hidden
}

.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(255, 255, 255, .95) 0%, rgba(255, 255, 255, .86) 32%, rgba(255, 255, 255, .2) 56%, rgba(255, 255, 255, 0) 72%)
}

.hero .wrap {
  position: relative;
  width: 100%;
  padding-block: 40px
}

.hero h2 {
  font-size: clamp(44px, 7vw, 92px);
  max-width: 9ch
}

.hero p {
  max-width: 40ch;
  margin: 18px 0 0;
  font-size: 15px;
  font-weight: 600
}

.hero .tech {
  position: absolute;
  top: 26px;
  right: max(16px, 0px);
  width: clamp(150px, 22vw, 260px);
  filter: drop-shadow(0 2px 10px rgba(0, 0, 0, .5))
}

/* speed-line icons */
.si {
  display: inline-flex;
  align-items: center;
  gap: 2px
}

.si svg {
  width: 58px;
  height: 40px;
  fill: var(--ink);
  flex: none
}

.si img {
  height: 64px;
  width: auto
}

.strip .wrap {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  padding-block: 44px;
  text-align: center
}

.strip figure {
  margin: 0;
  display: grid;
  justify-items: center;
  gap: 12px
}

.strip figcaption {
  font: 700 17px/1.05 var(--label);
  text-transform: uppercase;
  letter-spacing: .06em
}

/* alternating rows */
.rows {
  display: grid;
  gap: 6px
}

.row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 320px
}

.row .ph {
  background-size: cover;
  background-position: center;
  min-height: 280px
}

.row .tx {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 40px clamp(20px, 6vw, 80px);
  position: relative;
  min-width: 0
}

.row .tx .si {
  position: absolute;
  top: 22px;
  right: clamp(20px, 4vw, 48px);
  transform: scale(.8);
  transform-origin: top right
}

.row h3 {
  font-size: clamp(34px, 4.2vw, 50px)
}

.row p {
  margin: 12px 0 0;
  font-size: 17px;
  max-width: 44ch
}

.row.flip .ph {
  order: 2
}

/* print structure */
.structure {
  background: var(--sand)
}

.structure .wrap {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr);
  gap: 40px;
  align-items: center;
  padding-block: 60px
}

.structure h2 {
  font-size: clamp(36px, 4.6vw, 58px)
}

.structure h2::after {
  content: "";
  display: block;
  width: 60px;
  height: 4px;
  background: var(--orange);
  margin-top: 16px
}

.structure .lead {
  margin: 18px 0 0;
  font-size: 17px;
  max-width: 42ch
}

.structure ol {
  list-style: none;
  margin: 24px 0 0;
  padding: 0;
  display: grid;
  gap: 12px;
  counter-reset: l
}

.structure li {
  display: grid;
  grid-template-columns: 34px 1fr;
  gap: 12px;
  align-items: start;
  font-size: 15px
}

.structure li::before {
  counter-increment: l;
  content: counter(l);
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  background: var(--ink);
  color: #fff;
  font: 700 18px/1 var(--label)
}

.structure li b {
  display: block;
  font: 700 18px/1.1 var(--label);
  text-transform: uppercase;
  letter-spacing: .04em
}

.structure .diagram {
  overflow-x: auto
}

.structure svg.stack {
  width: 100%;
  min-width: 520px;
  height: auto;
  display: block
}

.stack text {
  font-family: var(--label);
  font-weight: 700;
  letter-spacing: .06em
}

/* divider */
.divider {
  display: grid;
  place-items: center;
  padding-block: 56px 20px
}

.divider img {
  width: min(430px, 80vw)
}

/* partner */
.partner .wrap {
  padding-block: 20px 60px
}

.partner .head {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 24px
}

.partner .head img.seal {
  width: 118px
}

.partner .head h2 {
  font-size: clamp(32px, 4.6vw, 56px);
  text-align: center
}

.partner .head .brands {
  display: grid;
  gap: 8px;
  justify-items: end
}

.partner .head .brands img {
  width: 170px
}

.partner .grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
  margin-top: 36px;
  align-items: stretch
}

.partner .copy {
  text-align: right;
  display: grid;
  gap: 28px;
  align-content: start;
  min-width: 0
}

.partner .copy h3 {
  font-size: clamp(32px, 3.8vw, 46px)
}

.partner .copy h3 small {
  display: block;
  font-size: .66em;
  margin-top: 4px
}

.partner .copy p {
  margin: 12px 0 0 auto;
  max-width: 48ch
}

.partner .machine {
  border-radius: 6px;
  overflow: hidden;
  min-height: 360px;
  background: url(../img/maquinas-3dti.jpg) center/cover
}

.spec {
  display: inline-flex;
  gap: 10px;
  align-items: center;
  font: 700 16px/1 var(--label);
  letter-spacing: .06em;
  text-transform: uppercase;
  border: 1.5px solid var(--ink);
  padding: 9px 14px;
  border-radius: 999px;
  justify-self: end
}

.spec b {
  color: var(--orange)
}

.panel {
  background: var(--ink)
}

.panel img {
  width: 100%;
  max-width: 1600px;
  margin: 0 auto
}

/* applications mosaic */
.apps {
  background: var(--ink);
  color: #fff
}

.apps .wrap {
  padding-block: 60px
}

.apps .top {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 20px;
  flex-wrap: wrap;
  margin-bottom: 28px
}

.apps h2 {
  font-size: clamp(38px, 5.4vw, 66px)
}

.apps .top p {
  margin: 0;
  max-width: 44ch;
  color: #d4d4d4
}

.mosaic {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px
}

.mosaic figure {
  margin: 0;
  display: grid;
  grid-template-rows: auto 1fr;
  background: #1f1f1f;
  border-radius: 6px;
  overflow: hidden
}

.mosaic .im {
  aspect-ratio: 4/5;
  max-width: 100%;
  background-size: cover;
  background-position: center
}

.mosaic figcaption {
  padding: 14px 16px 18px
}

.mosaic b {
  display: block;
  font: 400 22px/1 var(--display);
  text-transform: uppercase;
  color: var(--orange-hot)
}

.mosaic span {
  display: block;
  margin-top: 6px;
  font-size: 14px;
  color: #cfcfcf
}

/* merch */
.merch .wrap {
  padding-block: 56px 30px
}

.merch .intro {
  display: grid;
  grid-template-columns: minmax(0, 330px) 1fr;
  gap: 30px;
  align-items: center
}

.merch h2 {
  font: 700 clamp(28px, 3vw, 36px)/1 var(--label)
}

.merch h2::after {
  content: "";
  display: block;
  width: 34px;
  height: 3px;
  background: var(--orange);
  margin-top: 12px
}

.merch .intro p {
  margin: 12px 0 0;
  font-size: 15px
}

.merch .intro ul.tags {
  list-style: disc;
  margin: 12px 0 0;
  padding-left: 18px;
  font-size: 15px;
  display: grid;
  gap: 2px
}

.merch ul.items {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 14px
}

.merch ul.items li {
  display: grid;
  justify-items: center;
  gap: 10px;
  font: 700 15px/1 var(--label);
  letter-spacing: .06em;
  text-transform: uppercase;
  text-align: center
}

.merch ul.items span {
  width: 100%;
  aspect-ratio: 1;
  max-width: 120px;
  display: grid;
  place-items: center;
  background: var(--nav);
  border-radius: 6px
}

.merch ul.items img {
  width: 56%;
  height: 56%;
  object-fit: contain
}

/* 3 steps */
.steps .wrap {
  padding-block: 46px 40px
}

.steps h2 {
  font: 700 clamp(22px, 2.6vw, 30px)/1.15 var(--body);
  text-transform: none;
  text-align: center;
  margin-bottom: 32px
}

.steps ol {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px
}

.steps li {
  display: grid;
  gap: 14px;
  align-content: start;
  min-width: 0
}

.steps .card {
  position: relative;
  border-radius: 8px;
  min-height: 150px;
  display: grid;
  place-items: center;
  padding: 52px 18px 26px;
  text-align: center;
  font: 600 clamp(20px, 2.2vw, 26px)/1.15 var(--body)
}

.steps .card::before {
  content: attr(data-n);
  position: absolute;
  left: 0;
  top: 0;
  width: 56px;
  height: 40px;
  background: var(--orange-hot);
  color: #fff;
  display: grid;
  place-items: center;
  font: 700 26px/1 var(--body);
  border-radius: 8px 0 0 0
}

.steps li:nth-child(1) .card {
  background: var(--step1)
}

.steps li:nth-child(2) .card {
  background: var(--step2)
}

.steps li:nth-child(3) .card {
  background: var(--step3)
}

.steps li p {
  margin: 0;
  padding: 0 22px;
  font-size: 14px;
  color: var(--muted)
}

.steps li img {
  height: 80px;
  width: auto;
  justify-self: center;
  margin-top: 8px
}

/* orange service strip */
.service {
  background: var(--orange-hot);
  color: #fff
}

.service .wrap {
  display: grid;
  grid-template-columns: auto auto repeat(4, minmax(0, 1fr));
  align-items: center;
  gap: 0;
  padding-block: 18px
}

.service .cell {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 6px 18px;
  border-left: 1.5px solid rgba(255, 255, 255, .55);
  font: 600 15px/1.15 var(--body);
  text-transform: uppercase;
  min-width: 0
}

.service .cell:first-child {
  border: 0;
  padding-left: 0;
  white-space: nowrap;
  font: 600 clamp(18px, 1.9vw, 24px)/1.1 var(--body)
}

.service .cell svg {
  flex: none;
  width: 40px;
  height: 40px;
  fill: none;
  stroke: #fff;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round
}

.service .cell:first-child svg {
  width: 64px;
  height: 44px
}

.service .pill {
  background: var(--charcoal);
  border-radius: 999px;
  padding: 12px 26px;
  margin-inline: 18px
}

.service .pill img {
  width: 170px
}

/* banner */
.promo .wrap {
  padding-block: 40px 50px
}

.promo a {
  display: block;
  max-width: 1000px;
  margin: 0 auto;
  border-radius: 4px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .18);
  transition: transform .25s
}

.promo a:hover {
  transform: translateY(-3px)
}

.promo img {
  width: 100%
}

@media (prefers-reduced-motion:no-preference) {
  .hero h2 span {
    display: inline-block;
    animation: rise .7s cubic-bezier(.2, .8, .2, 1) both
  }

  .hero h2 span:nth-of-type(2) {
    animation-delay: .08s
  }

  .hero h2 span:nth-of-type(3) {
    animation-delay: .16s
  }

  .hero h2 span:nth-of-type(4) {
    animation-delay: .24s
  }

  @keyframes rise {
    from {
      transform: translateY(18px)
    }

    to {
      transform: none
    }
  }

  .stack .ly {
    transition: transform .35s cubic-bezier(.2, .8, .2, 1)
  }

  .diagram:hover .ly {
    transform: translateY(calc(var(--i) * -6px))
  }

  .strip .si svg {
    transition: transform .25s
  }

  .strip figure:hover .si svg {
    transform: translateX(-6px)
  }
}

@media (max-width:1000px) {
  .service .wrap {
    grid-template-columns: 1fr 1fr;
    gap: 14px 0
  }

  .service .cell:first-child {
    grid-column: 1/-1
  }

  .service .pill {
    display: none
  }

  .service .cell:nth-child(3),
  .service .cell:nth-child(5) {
    border-left: 0;
    padding-left: 0
  }
}

@media (max-width:900px) {
  .strip .wrap {
    grid-template-columns: repeat(2, 1fr)
  }

  .mosaic {
    grid-template-columns: repeat(2, 1fr)
  }

  .structure .wrap {
    grid-template-columns: 1fr
  }

  .merch .intro {
    grid-template-columns: 1fr
  }

  .merch ul.items {
    grid-template-columns: repeat(3, 1fr)
  }

  .partner .head {
    grid-template-columns: auto 1fr
  }

  .partner .head .brands {
    grid-column: 1/-1;
    justify-items: center;
    grid-auto-flow: column;
    align-items: center
  }
}

@media (max-width:720px) {
  .band .wrap {
    grid-template-columns: 1fr
  }

  .band .seal {
    width: 84px
  }

  .row,
  .partner .grid {
    grid-template-columns: 1fr
  }

  .row.flip .ph {
    order: 0
  }

  .row .tx {
    padding: 28px 20px 34px
  }

  .partner .copy {
    text-align: left
  }

  .partner .copy p {
    margin-left: 0
  }

  .spec {
    justify-self: start
  }

  .steps ol {
    grid-template-columns: 1fr
  }

  .hero {
    background-position: 72% 50%
  }

  .hero::before {
    background: linear-gradient(180deg, rgba(255, 255, 255, .94) 0%, rgba(255, 255, 255, .8) 55%, rgba(255, 255, 255, .25) 100%)
  }

  .hero .wrap {
    padding-top: 80px
  }

  .hero .tech {
    top: 18px;
    width: 110px
  }
}

@media (max-width:460px) {
  .strip .wrap {
    gap: 28px 10px
  }

  .si svg {
    width: 40px
  }

  .si img {
    height: 48px
  }

  .merch ul.items {
    grid-template-columns: repeat(2, 1fr)
  }

  .mosaic {
    grid-template-columns: 1fr 1fr;
    gap: 10px
  }

  .mosaic b {
    font-size: 18px
  }

  .partner .head .brands {
    grid-auto-flow: row
  }

  .service .wrap {
    grid-template-columns: 1fr
  }

  .service .cell {
    border-left: 0;
    padding-left: 0
  }
}

/* ---- Galería ---- */
.service .cell {
  padding: 6px 12px;
  font-size: 14px;
  gap: 10px
}

.service .cell svg {
  width: 32px;
  height: 32px
}

.ghero {
  background: var(--ink);
  color: #fff
}

.ghero .in {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  min-height: clamp(420px, 44vw, 600px)
}

.ghero .txt {
  padding: 48px max(16px, 0px) 44px max(24px, calc((100vw - var(--wrap))/2 + 16px));
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 20px;
  min-width: 0
}

.ghero h1 {
  font-size: clamp(44px, 6.2vw, 84px)
}

.ghero p {
  margin: 0;
  font-size: 18px;
  max-width: 40ch;
  color: #dcdcdc
}

.ghero .pic {
  background: url(../img/gal-hero.jpg) center/cover;
  min-height: 300px
}

.ghero ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px 18px;
  max-width: 440px
}

.ghero li {
  display: flex;
  gap: 10px;
  align-items: center;
  font: 700 15px/1.05 var(--label);
  letter-spacing: .06em;
  text-transform: uppercase
}

.ghero li svg {
  width: 28px;
  height: 28px;
  flex: none;
  fill: none;
  stroke: var(--orange-hot);
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round
}

.btn {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  background: var(--orange-hot);
  color: #fff;
  text-decoration: none;
  font: 700 18px/1 var(--body);
  padding: 14px 22px;
  border-radius: 999px;
  border: 0;
  cursor: pointer;
  align-self: flex-start
}

.btn svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: #fff;
  stroke-width: 2.4;
  stroke-linecap: round;
  stroke-linejoin: round
}

.btn.ghost {
  background: transparent;
  border: 2px solid currentColor;
  color: inherit
}

.btn.ghost svg {
  stroke: currentColor
}

.ctas {
  display: flex;
  gap: 12px;
  flex-wrap: wrap
}

.props {
  border-bottom: 1px solid var(--line)
}

.props .wrap {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
  padding-block: 34px
}

.prop {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 4px 14px;
  align-items: center
}

.prop .si svg {
  width: 44px;
  height: 30px
}

.prop .si img {
  height: 46px
}

.prop b {
  font: 400 24px/1 var(--display);
  text-transform: uppercase
}

.prop .si {
  grid-row: 1/3
}

.prop>span:last-child {
  grid-column: 2;
  font-size: 14px;
  color: var(--muted)
}

.gallery .wrap {
  padding-block: 60px 50px
}

.ghead {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 20px;
  flex-wrap: wrap
}

.ghead h2 {
  font-size: clamp(40px, 5.6vw, 72px)
}

.ghead p {
  margin: 0;
  max-width: 46ch;
  color: var(--muted);
  font-size: 17px
}

.filters {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 28px 0 24px
}

.filters button {
  font: 700 16px/1 var(--label);
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: 11px 18px;
  border-radius: 999px;
  border: 1.5px solid var(--ink);
  background: #fff;
  color: var(--ink);
  cursor: pointer
}

.filters button[aria-pressed="true"] {
  background: var(--ink);
  color: #fff
}

.filters button span {
  color: var(--orange-hot);
  margin-left: 6px
}

.masonry {
  columns: 4 260px;
  column-gap: 14px
}

.tile {
  break-inside: avoid;
  margin: 0 0 14px;
  position: relative;
  border-radius: 6px;
  overflow: hidden;
  background: #eee;
  cursor: zoom-in;
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  text-align: left;
  font: inherit;
  color: inherit
}

.tile img {
  width: 100%;
  height: auto;
  display: block;
  transition: transform .5s cubic-bezier(.2, .8, .2, 1)
}

.tile .cap {
  position: absolute;
  inset: auto 0 0 0;
  padding: 40px 14px 12px;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, .78));
  color: #fff
}

.tile .tag {
  display: inline-block;
  background: var(--orange-hot);
  color: #fff;
  font: 700 12px/1 var(--label);
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: 5px 8px;
  border-radius: 2px
}

.tile .cap b {
  display: block;
  margin-top: 7px;
  font: 400 21px/1.02 var(--display);
  text-transform: uppercase
}

.tile .cap span:not(.tag) {
  display: block;
  margin-top: 4px;
  font-size: 13.5px;
  color: #e6e6e6
}

.tile:hover img {
  transform: scale(1.04)
}

.tile[hidden] {
  display: none !important
}

.sectors {
  background: var(--sand)
}

.sectors .wrap {
  padding-block: 60px
}

.sectors h2 {
  font-size: clamp(38px, 5.2vw, 64px)
}

.sectors .sub {
  margin: 12px 0 28px;
  max-width: 56ch;
  font-size: 17px
}

.sgrid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px
}

.scard {
  background: #fff;
  border-radius: 8px;
  overflow: hidden;
  display: grid;
  grid-template-rows: auto 1fr
}

.scard .im {
  aspect-ratio: 16/9;
  max-width: 100%;
  background-size: cover;
  background-position: center
}

.scard .bd {
  padding: 20px 22px 24px;
  display: grid;
  gap: 10px;
  align-content: start
}

.scard h3 {
  font-size: clamp(28px, 3vw, 36px)
}

.scard p {
  margin: 0;
  font-size: 15.5px
}

.scard ul {
  list-style: none;
  margin: 4px 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px
}

.scard li {
  font: 700 13px/1 var(--label);
  letter-spacing: .08em;
  text-transform: uppercase;
  background: var(--nav);
  padding: 7px 10px;
  border-radius: 3px
}

.techs {
  background: var(--ink);
  color: #fff
}

.techs .wrap {
  padding-block: 56px
}

.techs h2 {
  font-size: clamp(36px, 4.8vw, 58px)
}

.tgrid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-top: 28px
}

.tcard {
  background: #1f1f1f;
  border-radius: 6px;
  padding: 20px 18px 22px;
  display: grid;
  gap: 10px;
  align-content: start;
  border-top: 4px solid var(--orange-hot)
}

.tcard img {
  height: 34px;
  width: auto;
  justify-self: start
}

.tcard p {
  margin: 0;
  color: #d0d0d0;
  font-size: 14.5px
}

.tcard .price {
  font: 400 34px/1 var(--display);
  color: var(--orange-hot)
}

.tcard .price small {
  font: 600 14px/1 var(--body);
  color: #bdbdbd;
  margin-left: 6px
}

.tcard a {
  color: #fff;
  font: 700 14px/1 var(--label);
  letter-spacing: .08em;
  text-transform: uppercase;
  text-decoration: none;
  border-bottom: 2px solid var(--orange-hot);
  justify-self: start;
  padding-bottom: 3px
}

.advice .wrap {
  padding-block: 64px
}

.advice h2 {
  font-size: clamp(40px, 5.6vw, 72px)
}

.advice .lead {
  margin: 14px 0 0;
  max-width: 58ch;
  font-size: 18px
}

.agrid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-top: 30px
}

.acard {
  border: 1.5px solid var(--ink);
  border-radius: 8px;
  padding: 24px 24px 26px;
  display: grid;
  gap: 14px;
  align-content: start
}

.acard h3 {
  font-size: clamp(28px, 3vw, 38px)
}

.acard ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 10px
}

.acard li {
  display: grid;
  grid-template-columns: 22px 1fr;
  gap: 10px;
  font-size: 15.5px
}

.acard li::before {
  content: "";
  width: 22px;
  height: 22px;
  margin-top: 1px;
  border-radius: 50%;
  background: var(--orange-hot) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4 8-9' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/14px no-repeat
}

.acard .spec-line {
  font: 700 14px/1.3 var(--label);
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--muted);
  border-top: 1px solid var(--line);
  padding-top: 12px
}

.finder {
  margin-top: 26px;
  background: var(--ink);
  color: #fff;
  border-radius: 8px;
  padding: 26px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 26px;
  align-items: center
}

.finder h3 {
  font-size: clamp(28px, 3vw, 38px)
}

.finder p.q {
  margin: 8px 0 14px;
  color: #cfcfcf
}

.opts {
  display: flex;
  flex-wrap: wrap;
  gap: 8px
}

.opts button {
  font: 700 15px/1 var(--label);
  letter-spacing: .05em;
  text-transform: uppercase;
  padding: 10px 14px;
  border-radius: 999px;
  border: 1.5px solid #555;
  background: transparent;
  color: #fff;
  cursor: pointer
}

.opts button[aria-pressed="true"] {
  background: var(--orange-hot);
  border-color: var(--orange-hot)
}

.answer {
  background: #fff;
  color: var(--ink);
  border-radius: 6px;
  padding: 20px;
  display: grid;
  gap: 8px;
  min-height: 180px;
  align-content: start
}

.answer small {
  font: 700 13px/1 var(--label);
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--muted)
}

.answer b {
  font: 400 34px/1 var(--display);
  text-transform: uppercase;
  color: var(--orange)
}

.answer p {
  margin: 0;
  font-size: 15px
}

dialog.lb {
  border: 0;
  padding: 0;
  background: transparent;
  max-width: min(92vw, 1200px);
  max-height: 92vh;
  overflow: hidden;
  border: 9px solid #ff390221;
  border-radius: 20px;
  border-bottom: 0px;
}

dialog.lb::backdrop {
  background: rgba(10, 10, 10, .88)
}

dialog.lb img {
  max-width: 100%;
  max-height: 82vh;
  display: block;
  margin: 0 auto;
  border-radius: 4px
}

dialog.lb p {
  color: #fff;
  text-align: center;
  margin: 12px 0 0;
  font: 400 22px/1.1 var(--display);
  text-transform: uppercase
}

dialog.lb button {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 0;
  background: #fff;
  color: var(--ink);
  font: 700 22px/1 var(--body);
  cursor: pointer
}

@media (max-width:1000px) {
  .props .wrap {
    grid-template-columns: repeat(2, minmax(0, 1fr))
  }

  .tgrid {
    grid-template-columns: repeat(2, minmax(0, 1fr))
  }

  .service .wrap {
    grid-template-columns: 1fr 1fr;
    gap: 14px 0
  }

  .service .cell:first-child {
    grid-column: 1/-1
  }

  .service .pill {
    display: none
  }
}

@media (max-width:820px) {
  .ghero .in {
    grid-template-columns: 1fr
  }

  .ghero .txt {
    padding: 36px max(16px, 0px) 36px max(16px, 0px)
  }

  .ghero .pic {
    min-height: 260px;
    order: -1
  }

  .sgrid,
  .agrid,
  .finder {
    grid-template-columns: 1fr
  }
}

@media (max-width:520px) {

  .props .wrap,
  .tgrid {
    grid-template-columns: 1fr
  }

  .masonry {
    columns: 2 150px;
    column-gap: 10px
  }

  .tile {
    margin-bottom: 10px
  }

  .tile .cap b {
    font-size: 17px
  }

  .tile .cap span:not(.tag) {
    display: none
  }

  .ghero ul {
    grid-template-columns: 1fr
  }
}

@media (prefers-reduced-motion:reduce) {
  .tile img {
    transition: none
  }

  .tile:hover img {
    transform: none
  }
}