:root {
  --night: #07040c;
  --night-2: #120719;
  --ink: #181219;
  --paper: #faf8ff;
  --soft: #f3eefb;
  --muted: #6c6373;
  --line-dark: rgba(255, 255, 255, .14);
  --line-light: rgba(24, 18, 25, .12);
  --white: #fff;
  --purple: #7b168f;
  --violet: #39258c;
  --accent: #7f43b3;
  --focus: #8f4dc2;
  --shadow: 0 28px 70px rgba(12, 5, 22, .24);
  --max: 1360px;
  --anchor-offset: 104px;
}

* { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  scroll-padding-top: var(--anchor-offset);
}

body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: "Segoe UI", Arial, Helvetica, sans-serif;
  line-height: 1.45;
}

body.menu-open { overflow: hidden; }

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

a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }

.fa-local {
  --fa-url: none;
  width: 1em;
  height: 1em;
  display: inline-block;
  flex: 0 0 auto;
  background: currentColor;
  -webkit-mask: var(--fa-url) center / contain no-repeat;
  mask: var(--fa-url) center / contain no-repeat;
}

.fa-arrow-right { --fa-url: url("../icons/fa/arrow-right.svg?v=1786085711"); }
.fa-arrow-up { --fa-url: url("../icons/fa/arrow-up.svg?v=1786085711"); }
.fa-whatsapp { --fa-url: url("../icons/fa/whatsapp.svg?v=1786085711"); }
.fa-envelope { --fa-url: url("../icons/fa/envelope.svg?v=1786085711"); }
.fa-instagram { --fa-url: url("../icons/fa/instagram.svg?v=1786085711"); }
.fa-object-group { --fa-url: url("../icons/fa/object-group.svg?v=1786085711"); }
.fa-wand-magic-sparkles { --fa-url: url("../icons/fa/wand-magic-sparkles.svg?v=1786085711"); }
.fa-location-dot { --fa-url: url("../icons/fa/location-dot.svg?v=1786085711"); }
.fa-clock { --fa-url: url("../icons/fa/clock.svg?v=1786085711"); }
.fa-tv { --fa-url: url("../icons/fa/tv.svg?v=1786085711"); }
.fa-rectangle-ad { --fa-url: url("../icons/fa/rectangle-ad.svg?v=1786085711"); }
.fa-tower-broadcast { --fa-url: url("../icons/fa/tower-broadcast.svg?v=1786085711"); }
.fa-city { --fa-url: url("../icons/fa/city.svg?v=1786085711"); }
.fa-bus { --fa-url: url("../icons/fa/bus.svg?v=1786085711"); }
.fa-bullhorn { --fa-url: url("../icons/fa/bullhorn.svg?v=1786085711"); }

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

.skip-link {
  position: fixed;
  left: 16px;
  top: 0;
  z-index: 999;
  transform: translateY(calc(-100% - 8px));
  border-radius: 7px;
  padding: 10px 14px;
  color: #001018;
  background: var(--focus);
  font-weight: 800;
}

.skip-link:focus { transform: translateY(12px); }

.site-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 50;
  padding: 24px clamp(18px, 5vw, 64px);
  transition: padding .25s ease, background .25s ease, box-shadow .25s ease;
}

.site-header.is-scrolled {
  padding-top: 12px;
  padding-bottom: 12px;
  background: rgba(6, 3, 12, .84);
  box-shadow: 0 18px 44px rgba(0, 0, 0, .28);
  backdrop-filter: blur(18px);
}

.nav-shell {
  width: min(100%, var(--max));
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 26px;
}

.brand {
  width: clamp(160px, 17vw, 245px);
  flex: 0 0 auto;
}

.nav-menu {
  display: flex;
  align-items: center;
  gap: 10px;
  color: rgba(255, 255, 255, .86);
  font-size: 13px;
  font-weight: 700;
}

.nav-menu a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border-radius: 7px;
  padding: 10px 11px;
  transition: background .2s ease, color .2s ease;
}

.nav-menu a:hover {
  color: #fff;
  background: rgba(255, 255, 255, .09);
}

.nav-menu .nav-cta {
  margin-left: 8px;
  padding-inline: 18px;
  color: #fff;
  background: linear-gradient(135deg, var(--purple), var(--violet));
  box-shadow: 0 12px 28px rgba(64, 37, 140, .28);
}

.menu-toggle {
  display: none;
  width: 44px;
  height: 44px;
  border: 1px solid var(--line-dark);
  border-radius: 8px;
  color: #fff;
  background: rgba(255, 255, 255, .08);
  cursor: pointer;
}

.menu-toggle span {
  display: block;
  width: 20px;
  height: 2px;
  margin: 5px auto;
  background: currentColor;
  transition: transform .22s ease, opacity .22s ease;
}

.menu-toggle.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.menu-toggle.is-open span:nth-child(2) { opacity: 0; }
.menu-toggle.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.hero {
  position: relative;
  min-height: 100svh;
  display: grid;
  align-items: center;
  overflow: hidden;
  color: #fff;
  background: var(--night);
}

.hero-media,
.hero-overlay {
  position: absolute;
  inset: 0;
}

.hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 69% 50%;
  filter: saturate(1.08) contrast(1.05);
}

.hero-overlay {
  background:
    linear-gradient(90deg, rgba(6, 3, 12, .96) 0%, rgba(6, 3, 12, .78) 34%, rgba(6, 3, 12, .12) 72%),
    linear-gradient(0deg, rgba(6, 3, 12, .76), rgba(6, 3, 12, .08) 52%, rgba(6, 3, 12, .78));
}

.hero-content {
  position: relative;
  z-index: 1;
  width: min(100%, var(--max));
  margin: 0 auto;
  padding: 132px clamp(22px, 4vw, 58px) 116px;
}

.eyebrow {
  margin: 0 0 14px;
  color: var(--accent);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.hero h1 {
  max-width: 650px;
  margin: 0;
  font-size: clamp(46px, 7vw, 96px);
  font-weight: 800;
  line-height: .92;
  letter-spacing: 0;
}

.hero h1::after {
  content: "";
  display: block;
  width: 56px;
  height: 4px;
  margin-top: 28px;
  background: linear-gradient(90deg, var(--purple), var(--accent));
}

.hero p:not(.eyebrow) {
  max-width: 465px;
  margin: 24px 0 0;
  color: rgba(255, 255, 255, .78);
  font-size: clamp(17px, 1.7vw, 22px);
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 34px;
}

.button {
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border: 0;
  border-radius: 7px;
  padding: 13px 22px;
  cursor: pointer;
  font-size: 14px;
  font-weight: 800;
  transition: transform .22s ease, box-shadow .22s ease, background .22s ease;
}

.button:hover { transform: translateY(-2px); }

.button-primary {
  color: #fff;
  background: linear-gradient(135deg, var(--purple), var(--violet));
  box-shadow: 0 18px 38px rgba(64, 37, 140, .26);
}

.button-ghost {
  color: #fff;
  border: 1px solid rgba(255, 255, 255, .36);
  background: rgba(255, 255, 255, .06);
}

.hero-places {
  position: absolute;
  z-index: 2;
  left: max(22px, calc((100vw - var(--max)) / 2 + 58px));
  right: clamp(22px, 4vw, 58px);
  bottom: 42px;
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

.hero-places span,
.location-tags span {
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 999px;
  padding: 9px 13px;
  color: #fff;
  background: rgba(255, 255, 255, .08);
  font-size: 12px;
  font-weight: 800;
  backdrop-filter: blur(14px);
}

.borderline {
  display: grid;
  grid-template-columns: .72fr 1.28fr;
  gap: clamp(34px, 6vw, 88px);
  width: min(100%, var(--max));
  margin: 0 auto;
  padding: clamp(64px, 7vw, 104px) clamp(22px, 4vw, 58px);
}

.borderline h2,
.section-head h2,
.location-copy h2,
.differential-title h2,
.premium-cta h2,
.contact h2 {
  margin: 0;
  font-size: clamp(34px, 4.75vw, 68px);
  line-height: .94;
  letter-spacing: 0;
}

.borderline h2::after {
  content: "";
  display: block;
  width: 58px;
  height: 4px;
  margin-top: 20px;
  background: linear-gradient(90deg, var(--purple), var(--violet));
}

.borderline-points {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(18px, 3vw, 44px);
  align-items: start;
}

.borderline-points article {
  display: grid;
  align-content: start;
}

.borderline-points article > span:not(.point-icon) {
  display: none;
}

.point-icon {
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
  color: var(--accent);
  font-size: 21px;
  line-height: 1;
}

.differential-track h3::before {
  color: var(--purple);
  font-weight: 800;
}

.borderline-points h3 {
  margin: 0 0 8px;
  font-size: 16px;
  font-weight: 800;
}

.borderline-points p,
.location-copy p,
.differential-track p,
.contact-copy address,
.contact-copy p {
  margin: 0;
  color: var(--muted);
}

.section-dark {
  color: #fff;
  background:
    radial-gradient(circle at 50% 0, rgba(78, 43, 145, .18), transparent 34%),
    linear-gradient(135deg, #07040d, #100617 56%, #05030a);
}

.assets,
.portfolio {
  padding: clamp(72px, 8vw, 118px) clamp(22px, 4vw, 58px);
}

.section-head {
  width: min(100%, var(--max));
  margin: 0 auto 28px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 24px;
  align-items: end;
}

.section-head h2 {
  max-width: 760px;
}

.section-head a {
  color: rgba(255, 255, 255, .86);
  font-size: 13px;
  font-weight: 800;
}

.asset-grid {
  width: min(100%, var(--max));
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 14px;
}

.asset-card {
  position: relative;
  min-height: 350px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 8px;
  background: #08040d;
  box-shadow: 0 20px 44px rgba(0, 0, 0, .26);
  transition: transform .25s ease, border-color .25s ease;
}

.asset-card:hover {
  transform: translateY(-5px);
  border-color: rgba(127, 67, 179, .46);
}

.asset-card::after {
  content: "";
  position: absolute;
  inset: 36% 0 0;
  background: linear-gradient(180deg, transparent, rgba(3, 2, 8, .96) 46%);
}

.asset-card img {
  width: 100%;
  height: 100%;
  min-height: 350px;
  object-fit: cover;
  transition: transform .45s ease;
}

.asset-card:hover img {
  transform: scale(1.04);
}

.asset-card-content {
  position: absolute;
  z-index: 1;
  left: 18px;
  right: 18px;
  bottom: 20px;
  display: grid;
  gap: 9px;
}

.asset-icon,
.asset-card h3,
.asset-card p {
  position: static;
}

.asset-icon {
  width: 43px;
  height: 43px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  color: #fff;
  background: linear-gradient(135deg, var(--purple), var(--violet));
  box-shadow: 0 12px 26px rgba(64, 37, 140, .32);
  font-size: 17px;
  font-weight: 800;
}

.asset-card h3 {
  margin: 0;
  color: #fff;
  font-size: 15px;
  line-height: 1.15;
}

.asset-card p {
  margin: 0;
  color: rgba(255, 255, 255, .74);
  font-size: 12px;
  line-height: 1.42;
}

.locations {
  width: min(100%, var(--max));
  margin: 0 auto;
  padding: clamp(72px, 8vw, 118px) clamp(22px, 4vw, 58px);
  display: grid;
  grid-template-columns: .58fr 1fr;
  gap: clamp(34px, 5vw, 76px);
  align-items: center;
}

.location-copy h2 {
  max-width: 470px;
}

.location-copy p {
  max-width: 390px;
  margin: 22px 0 30px;
  font-size: 17px;
}

.location-gallery {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 7px;
}

.location-gallery figure {
  position: relative;
  min-height: 222px;
  margin: 0;
  overflow: hidden;
  border-radius: 8px;
  background: var(--night);
}

.location-gallery figure::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  opacity: 1;
  background: linear-gradient(180deg, rgba(7, 4, 13, .28), rgba(7, 4, 13, .48));
  transition: opacity .25s ease;
}

.location-gallery figure:hover::after {
  opacity: 0;
}

.location-gallery img {
  width: 100%;
  height: 100%;
  min-height: 222px;
  object-fit: cover;
  filter: saturate(1.05) contrast(1.04);
  transition: transform .45s ease;
}

.location-gallery figure:hover img {
  transform: scale(1.05);
}

.location-gallery figcaption {
  position: absolute;
  left: 12px;
  top: 12px;
  z-index: 2;
  border-radius: 999px;
  padding: 7px 11px;
  color: #fff;
  background: rgba(6, 3, 12, .7);
  font-size: 12px;
  font-weight: 800;
  backdrop-filter: blur(10px);
}

.location-tags {
  grid-column: 2;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.location-tags span {
  color: var(--ink);
  border-color: var(--line-light);
  background: #fff;
}

.portfolio-grid {
  width: min(100%, var(--max));
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.42fr .86fr .72fr .86fr;
  grid-auto-rows: 250px;
  gap: 8px;
}

.portfolio-card {
  position: relative;
  min-height: 250px;
  margin: 0;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 8px;
  background: #07040d;
  box-shadow: 0 18px 42px rgba(0, 0, 0, .28);
  transition: transform .25s ease, border-color .25s ease;
}

.portfolio-card:hover {
  transform: translateY(-4px);
  border-color: rgba(127, 67, 179, .42);
}

.portfolio-card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  opacity: 1;
  background: linear-gradient(180deg, rgba(7, 4, 13, .34), rgba(7, 4, 13, .52));
  transition: opacity .25s ease;
}

.portfolio-card:hover::after {
  opacity: 0;
}

.portfolio-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .45s ease;
}

.portfolio-card:hover img {
  transform: scale(1.035);
}

.portfolio-card-large {
  grid-row: span 2;
}

.portfolio-card-wide {
  grid-column: span 2;
}

.portfolio-shell {
  width: min(100%, var(--max));
  margin: 0 auto;
}

.portfolio-top {
  display: block;
  margin-bottom: 24px;
}

.portfolio-top h2 {
  margin: 0;
  max-width: 520px;
  font-size: clamp(34px, 3.5vw, 56px);
  line-height: .98;
  letter-spacing: 0;
}

.differentials {
  width: min(100%, var(--max));
  margin: 0 auto;
  padding: clamp(50px, 6vw, 76px) clamp(22px, 4vw, 58px) clamp(34px, 4vw, 48px);
  display: grid;
  grid-template-columns: .62fr 1.58fr;
  gap: clamp(34px, 4.5vw, 66px);
  align-items: start;
}

.differential-title h2 {
  max-width: 440px;
  font-size: clamp(30px, 3.25vw, 46px);
  line-height: 1.02;
}

.differential-track {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: clamp(18px, 2.4vw, 30px);
}

.differential-track h3 {
  margin: 0 0 10px;
  font-size: 14px;
  font-weight: 800;
}

.differential-track p {
  font-size: 14px;
  line-height: 1.42;
}

.diff-icon {
  width: 32px;
  height: 32px;
  margin-bottom: 16px;
  color: var(--accent);
  font-size: 19px;
  opacity: .78;
}

.premium-cta {
  position: relative;
  width: min(calc(100% - 44px), var(--max));
  min-height: 178px;
  margin: 0 auto clamp(64px, 7vw, 96px);
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 32px;
  align-items: center;
  overflow: hidden;
  border-radius: 8px;
  padding: clamp(30px, 4vw, 50px) clamp(34px, 5vw, 70px);
  box-shadow: var(--shadow);
}

.premium-cta > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: .42;
}

.premium-cta::after {
  content: "";
  position: absolute;
  inset: 0;
  /*background: linear-gradient(90deg, rgba(6, 3, 12, .92), rgba(6, 3, 12, .48));*/
}

.premium-cta > div,
.premium-cta > a {
  position: relative;
  z-index: 1;
}

.premium-cta h2 {
  max-width: 560px;
  font-size: clamp(30px, 3.1vw, 42px);
  line-height: 1;
}

.premium-cta p {
  max-width: 530px;
  margin: 14px 0 0;
  color: rgba(255, 255, 255, .72);
}

.contact {
  width: min(100%, var(--max));
  margin: 0 auto;
  padding: 0 clamp(22px, 4vw, 58px) clamp(76px, 8vw, 120px);
  display: grid;
  grid-template-columns: .78fr 1.22fr;
  gap: clamp(34px, 6vw, 86px);
  align-items: start;
}

.contact h2 {
  max-width: 580px;
  font-size: clamp(34px, 4.2vw, 56px);
}

.contact-links {
  display: grid;
  gap: 10px;
  margin: 32px 0 22px;
}

.contact-links a {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  width: fit-content;
  color: var(--purple);
  font-weight: 800;
}

address { font-style: normal; }

.contact-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  border: 1px solid var(--line-light);
  border-radius: 8px;
  padding: clamp(22px, 4vw, 36px);
  background: rgba(255, 255, 255, .82);
  box-shadow: var(--shadow);
}

.form-row { display: grid; gap: 7px; }
.form-wide { grid-column: 1 / -1; }

.form-honeypot {
  position: absolute;
  left: -10000px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

label {
  font-size: 12px;
  font-weight: 800;
}

input,
select,
textarea {
  width: 100%;
  border: 1px solid rgba(24, 18, 25, .14);
  border-radius: 7px;
  padding: 13px 14px;
  color: var(--ink);
  background: #fff;
}

textarea { resize: vertical; }

input[aria-invalid],
select[aria-invalid],
textarea[aria-invalid] {
  border-color: #d01b4f;
  box-shadow: 0 0 0 3px rgba(208, 27, 79, .12);
}

.form-status {
  min-height: 22px;
  margin: 0;
  color: var(--violet);
  font-weight: 800;
}

.form-status.is-error {
  color: #b20f42;
}

.form-status.is-success {
  color: #166b3a;
}

.site-footer {
  padding: 50px clamp(22px, 4vw, 58px) 28px;
  color: #fff;
  background:
    radial-gradient(circle at 20% 0, rgba(78, 43, 145, .12), transparent 32%),
    var(--night);
}

.footer-grid {
  width: min(100%, var(--max));
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.4fr .8fr .8fr;
  gap: 42px;
}

.footer-grid img {
  width: 245px;
  margin-bottom: 18px;
}

.footer-grid p,
.footer-grid a {
  color: rgba(255, 255, 255, .68);
}

.footer-grid p {
  max-width: 430px;
  margin: 0;
}

.footer-grid h2 {
  margin: 0 0 15px;
  font-size: 13px;
  text-transform: uppercase;
}

.footer-grid a {
  display: block;
  width: fit-content;
  margin-bottom: 9px;
}

.footer-bottom {
  width: min(100%, var(--max));
  margin: 34px auto 0;
  padding-top: 22px;
  border-top: 1px solid var(--line-dark);
  display: flex;
  justify-content: space-between;
  gap: 18px;
  color: rgba(255, 255, 255, .56);
  font-size: 13px;
}

.whatsapp-float,
.to-top {
  position: fixed;
  z-index: 45;
  right: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 8px;
  box-shadow: 0 14px 34px rgba(0, 0, 0, .24);
}

.whatsapp-float {
  bottom: 20px;
  width: 54px;
  height: 54px;
  color: #fff;
  background: #16a34a;
  font-size: 24px;
  font-weight: 800;
}

.to-top {
  bottom: 84px;
  width: 40px;
  height: 40px;
  color: #fff;
  background: rgba(6, 3, 12, .8);
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s ease, transform .2s ease;
}

.to-top.is-visible {
  opacity: 1;
  pointer-events: auto;
}

.reveal {
  opacity: 1;
  transform: none;
  transition: opacity .55s ease, transform .55s ease;
}

.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

@media (max-width: 1120px) {
  .nav-menu {
    position: fixed;
    inset: 76px 18px auto;
    display: grid;
    padding: 14px;
    border: 1px solid var(--line-dark);
    border-radius: 8px;
    background: rgba(6, 3, 12, .96);
    box-shadow: var(--shadow);
    opacity: 0;
    transform: translateY(-14px);
    pointer-events: none;
    transition: opacity .22s ease, transform .22s ease;
  }

  .nav-menu.is-open {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
  }

  .nav-menu .nav-cta {
    margin-left: 0;
    text-align: center;
  }

  .menu-toggle { display: block; }

  .borderline,
  .locations,
  .differentials,
  .contact {
    grid-template-columns: 1fr;
  }

  .location-tags { grid-column: auto; }

  .borderline-points,
  .differential-track {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .asset-grid,
  .portfolio-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .portfolio-grid {
    grid-auto-rows: 250px;
  }

  .portfolio-card-large,
  .portfolio-card-wide {
    grid-column: span 1;
    grid-row: span 1;
  }
}

@media (max-width: 700px) {
  :root {
    --anchor-offset: 86px;
  }

  .site-header {
    padding: 14px 18px;
  }

  .hero {
    min-height: 760px;
  }

  .hero-media img {
    object-position: 64% 50%;
  }

  .hero-overlay {
    background:
      linear-gradient(180deg, rgba(6, 3, 12, .88), rgba(6, 3, 12, .45) 44%, rgba(6, 3, 12, .95)),
      linear-gradient(90deg, rgba(6, 3, 12, .78), rgba(6, 3, 12, .18));
  }

  .hero-content {
    padding: 108px 18px 130px;
    align-self: end;
  }

  .hero h1 {
    font-size: clamp(42px, 14vw, 66px);
  }

  .hero-actions {
    display: grid;
  }

  .hero-places {
    left: 18px;
    bottom: 32px;
  }

  .borderline,
  .assets,
  .locations,
  .portfolio,
  .differentials,
  .contact {
    padding-left: 18px;
    padding-right: 18px;
  }

  .borderline-points,
  .location-gallery,
  .differential-track,
  .contact-form,
  .footer-grid {
    grid-template-columns: 1fr;
  }

  .section-head,
  .premium-cta {
    grid-template-columns: 1fr;
  }

  .asset-grid {
    display: flex;
    gap: 12px;
    overflow-x: auto;
    padding: 8px 8px 14px;
    scroll-snap-type: x mandatory;
  }

  .asset-card {
    flex: 0 0 224px;
    min-height: 378px;
    scroll-snap-align: start;
  }

  .asset-card img {
    min-height: 378px;
  }

  .portfolio-grid {
    grid-template-columns: 1fr;
    grid-auto-rows: auto;
    gap: 12px;
  }

  .portfolio-card,
  .portfolio-card img {
    min-height: 300px;
  }

  .location-gallery figure,
  .location-gallery img {
    min-height: 220px;
  }

  .premium-cta {
    width: calc(100% - 36px);
  }

  .footer-bottom {
    display: grid;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
  }

  .reveal {
    opacity: 1;
    transform: none;
  }
}
