/* Digital Data Software LLC — V10.4 / 2026-10-14
   Commercial visual harmonisation with LinRT V13.6 and KingSail light site.
   This file is LINKED after assets/site.css in index.html. (V10.0 had been copied but not linked.)
   Scope: 1160px frame, compact typography/header, cards, footer, responsive.
   Preserve English-only navigation, Miami LinRT image, content and SEO. */

:root {
  --ddsw-frame-bg: #f5f8fa;
  --ddsw-frame-border: #dbe6ee;
  --ddsw-navy: #091c35;
  --ddsw-ink: #14364d;
  --ddsw-muted: #526d80;
  --ddsw-teal: #177f99;
  --ddsw-footer: #071a2f;
  --ddsw-footer-link: #c5edf2;
  --ddsw-card-radius: 17px;
}
html { background: var(--ddsw-frame-bg); }
body {
  box-sizing: border-box;
  width: calc(100% - 32px);
  max-width: 1160px;
  min-width: 0;
  margin: 16px auto 22px;
  background: #fff;
  border: 1px solid var(--ddsw-frame-border);
  border-radius: 17px;
  box-shadow: 0 12px 34px rgba(12,37,58,.08);
}
body .shell {
  width: min(1090px, calc(100% - 48px));
  max-width: 1090px;
  margin-inline: auto;
}
/* Keep sticky behavior and the existing V9 mobile menu script. */
body .site-header {
  background: #fff;
  border-bottom: 1px solid #dce8ee;
  border-radius: 16px 16px 0 0;
  box-shadow: none;
  z-index: 40;
}
body .site-header .header-inner { min-height: 80px; gap: 16px; }
body .site-header .brand img { max-height: 55px; object-fit: contain; }
body .site-header .site-nav { gap: 3px; }
body .site-header .site-nav a:not(.nav-cta) {
  font-size: 12px;
  font-weight: 650;
  line-height: 1.35;
  padding: 8px;
  border-radius: 8px;
}
body .site-header .site-nav .nav-cta {
  font-size: 12px;
  font-weight: 750;
  border-radius: 9px;
  padding: 9px 13px;
}
body .site-header a:focus-visible,
body .dds-footer a:focus-visible,
body .button:focus-visible {
  outline: 2px solid #36c2c9;
  outline-offset: 3px;
}

/* LinRT/DokuWiki hero density, keeping DDSW's own 2-column hero layout. */
body .hero {
  padding-block: clamp(31px, 4.2vw, 50px);
  background: linear-gradient(116deg, #091c35 7%, #0e3150 63%, #0b5766 135%);
}
body .hero .eyebrow { font-size: 10px; letter-spacing: 1.35px; }
body .hero h1 {
  font-size: clamp(29px, 3.2vw, 40px);
  line-height: 1.17;
  letter-spacing: -.85px;
}
body .hero .hero-lead { font-size: 14px; line-height: 1.57; }
body .hero .hero-actions { gap: 10px; margin-top: 19px; }
body .hero .button { padding: 10px 14px; font-size: 12px; border-radius: 9px; }
body .hero .hero-panel {
  padding: 19px 21px;
  border-radius: 16px;
  border: 1px solid rgba(181,214,229,.26);
}
body .hero .hero-panel .cap-line { border-radius: 9px; }
body .hero .hero-meta { font-size: 11px; }

/* A consistent heading scale; all V9 commercial copy is left intact. */
body .section h2,
body .linrt-hero h2,
body .cta-section h2 {
  font-size: clamp(24px, 2.8vw, 33px);
  line-height: 1.2;
  letter-spacing: -.55px;
}
body .section h3,
body .linrt-hero h3 { line-height: 1.28; }
body .section .section-heading { margin-bottom: 28px; }
body .section .section-index,
body .section .card-index,
body .section .stack-number,
body .linrt-hero .linrt-product-number {
  letter-spacing: 1px;
  font-size: 11px;
}
body .section .section-intro,
body .section .section-heading > p,
body .section .split-heading > p {
  color: var(--ddsw-muted);
  line-height: 1.65;
}
body .section :is(.feature-card, .stack-card, .ks-pillars > div, .process-grid > div),
body .linrt-hero .linrt-product-card {
  border-radius: var(--ddsw-card-radius);
}
body .section :is(.feature-card, .stack-card) {
  box-shadow: 0 9px 23px rgba(16,50,70,.055);
}
body .section :is(.feature-card, .stack-card):hover {
  box-shadow: 0 12px 26px rgba(16,50,70,.09);
}
body .linrt-hero .linrt-product-card {
  border: 1px solid rgba(211,231,239,.38);
}
/* The Miami photo in the V9 LinRT panel must remain visible: no background reset. */
body .linrt-hero { isolation: isolate; }
body [id]:is(section, footer) { scroll-margin-top: 86px; }

/* Shared footer composition from LinRT's validated commercial stylesheet. */
body .site-footer.dds-footer {
  background: var(--ddsw-footer);
  color: #c0d2dc;
  border-radius: 0 0 16px 16px;
}
body .site-footer.dds-footer a {
  color: var(--ddsw-footer-link);
  text-decoration: none;
}
body .site-footer.dds-footer a:hover { color: #fff; text-decoration: underline; }
body .site-footer.dds-footer .dds-footer-grid {
  display: grid;
  grid-template-columns: 1.25fr 1fr 1fr 1.12fr;
  gap: 20px;
  align-items: stretch;
  padding-top: 43px;
  padding-bottom: 29px;
}
body .site-footer.dds-footer .dds-footer-card {
  min-width: 0;
  box-sizing: border-box;
  background: rgba(255,255,255,.02);
  border: 1px solid rgba(148,184,204,.15);
  border-radius: 17px;
  padding: 20px;
  box-shadow: none;
}
body .site-footer.dds-footer .dds-footer-card h3 {
  color: #fff;
  text-transform: uppercase;
  font-size: 12px;
  font-weight: 750;
  letter-spacing: 1px;
  line-height: 1.5;
  margin: 0 0 13px;
}
body .site-footer.dds-footer .dds-footer-card p,
body .site-footer.dds-footer .dds-footer-card address,
body .site-footer.dds-footer .dds-footer-card > a {
  color: #b9cdd8;
  font-size: 12px;
  line-height: 1.8;
}
body .site-footer.dds-footer .dds-footer-card p { margin: 8px 0; }
body .site-footer.dds-footer .dds-footer-card address { font-style: normal; }
body .site-footer.dds-footer .dds-footer-card address strong { color: #eff9fb; }
body .site-footer.dds-footer .dds-footer-card address span {
  display: inline-block;
  margin-top: 7px;
}
body .site-footer.dds-footer .dds-footer-menu {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 5px;
}
body .site-footer.dds-footer .dds-footer-menu h3 { margin-bottom: 8px; }
body .site-footer.dds-footer .dds-footer-menu a {
  display: inline-block;
  padding: 1px 0;
  line-height: 1.7;
}
body .site-footer.dds-footer .dds-footer-map-link { display: block; }
body .site-footer.dds-footer .dds-footer-map {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
  object-fit: contain;
  background: #102c3c;
  border-radius: 9px;
  margin: 0 0 14px;
}
body .site-footer.dds-footer .dds-footer-location p { margin-top: 10px; }

body .site-footer.dds-footer .dds-footer-social {
  border-top: 1px solid rgba(152,198,216,.2);
  padding-block: 21px 25px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 15px 20px;
}
body .site-footer.dds-footer .dds-footer-social > strong {
  display: inline-block;
  color: #fff;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.1px;
  line-height: 1.4;
}
body .site-footer.dds-footer .dds-footer-social nav {
  display: flex;
  gap: 9px;
  flex-wrap: wrap;
  align-items: center;
}
body .site-footer.dds-footer .dds-footer-social nav a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 5px 11px 5px 6px;
  border: 1px solid rgba(132,182,202,.28);
  background: rgba(255,255,255,.05);
  border-radius: 10px;
  font-size: 12px;
  font-weight: 750;
  line-height: 1.35;
  color: #eff9fb;
  text-decoration: none;
}
body .site-footer.dds-footer .dds-footer-social nav a:hover {
  background: rgba(100,205,198,.12);
  border-color: #7bdbd5;
  text-decoration: none;
}
body .site-footer.dds-footer .dds-footer-social nav img {
  display: block;
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  border-radius: 6px;
}
body .site-footer.dds-footer .dds-footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px 18px;
  border-top: 1px solid #244058;
  padding-block: 18px 24px;
  font-size: 11px;
  line-height: 1.65;
  color: #97adbb;
}

@media (max-width: 1000px) {
  body .site-footer.dds-footer .dds-footer-grid {
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 16px;
  }
}
@media (max-width: 850px) {
  body .site-header .header-inner { min-height: 73px; }
  body .hero { padding-block: 34px 30px; }
  body .hero .hero-inner { gap: 22px; }
}
@media (max-width: 620px) {
  body {
    width: calc(100% - 16px);
    margin-block: 8px 14px;
  }
  body .shell { width: calc(100% - 30px); }
  body .site-header .brand img { max-height: 49px; }
  body .hero { padding-block: 27px 26px; }
  body .hero h1 { font-size: clamp(28px, 7.5vw, 35px); }
  body .hero .hero-lead { font-size: 13px; }
  body .hero .hero-panel { padding: 17px 18px; }
  body .section h2,
  body .linrt-hero h2,
  body .cta-section h2 { font-size: clamp(24px, 6vw, 29px); }
  body .site-footer.dds-footer .dds-footer-grid {
    grid-template-columns: minmax(0,1fr);
    padding-top: 28px;
    padding-bottom: 24px;
    gap: 12px;
  }
  body .site-footer.dds-footer .dds-footer-card { padding: 18px; }
  body .site-footer.dds-footer .dds-footer-social {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }
  body .site-footer.dds-footer .dds-footer-social nav { width: 100%; }
  body .site-footer.dds-footer .dds-footer-social nav a {
    flex: 1 1 43%;
    justify-content: center;
  }
  body .site-footer.dds-footer .dds-footer-bottom {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
  }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  body .section :is(.feature-card,.stack-card) { transition: none; }
}
@media print {
  html, body { background: #fff; }
  body { width:100%;max-width:none;margin:0;border:0;box-shadow:none; }
  body .site-header {position:static;}
}


/* ============================================================
   V10.2 — fixes for the REAL V9.1 source provided 2026-10-14.
   Keep at END to win against V9 -> V7 component cascade.
   Reason: V9 .site-header was position:fixed and .hero min-height:760px;
   both made the original V10 overlay ineffective or structurally wrong.
   ============================================================ */
:root {
  --ddsw-main-width: 1090px;
  --ddsw-section-gap: clamp(48px, 5.5vw, 78px);
}
html { scroll-padding-top: 95px; }
body { overflow-x: clip; }
body .shell { width: min(var(--ddsw-main-width), calc(100% - 48px)); }

/* Header must remain INSIDE the same framed site — not fixed viewport-wide. */
body > .site-header {
  position: sticky;
  inset: auto;
  top: 0;
  width: 100%;
  height: 80px;
  min-height: 80px;
  border-radius: 16px 16px 0 0;
  background: #fff;
  border-bottom: 1px solid #dbe6ee;
  box-shadow: 0 2px 8px rgba(10,48,77,.045);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
body > .site-header .header-inner {
  height: 100%; min-height: 0;
  padding: 0;
  background: #fff;
  gap: 12px;
}
body > .site-header .brand { flex: 0 0 auto; }
body > .site-header .brand img {
  width: 200px;
  max-width: 100%;
  max-height: 59px;
  height: auto;
  object-fit: contain;
}
body > .site-header .site-nav { margin-left: auto; min-width: 0; gap: 2px; color: #1b3146; }
body > .site-header .site-nav > a:not(.nav-cta) { color: #1b3146; }
body > .site-header .site-nav > a:not(.nav-cta):hover { color: #087fa9; }
body > .site-header .site-nav .nav-cta {
  color: #103d52;
  background: #e9f5f9;
  border: 1px solid #a9d7e3;
  line-height: 1.4;
}
body > .site-header .site-nav .nav-cta:hover { background: #d7eff5; }
body > .site-header .nav-toggle { cursor: pointer; }

/* Rein in the huge legacy hero (760px + 180px top padding). */
body .hero {
  min-height: 0;
  padding: clamp(42px, 5.5vw, 70px) 0 26px;
  background: linear-gradient(115deg,#0b2643 0%,#123b59 70%,#155169 100%);
}
body .hero::after { opacity: .33; pointer-events: none; }
body .hero .hero-grid { opacity: .10; }
body .hero .hero-inner {
  grid-template-columns: minmax(0, 1.13fr) minmax(0, .87fr);
  gap: clamp(26px, 3vw, 40px);
  align-items: center;
}
body .hero h1 {
  font-size: clamp(32px, 3.5vw, 43px);
  line-height: 1.13;
  letter-spacing: -.025em;
  max-width: 730px;
}
body .hero .eyebrow { font-size: 11px; letter-spacing: .12em; margin-bottom: 16px; }
body .hero .hero-lead { color: #d8e9f2; font-size: 15px; line-height: 1.65; margin-top: 18px; }
body .hero .hero-actions { margin-top: 24px; }
body .hero .button { min-height: 44px; }
body .hero .hero-panel { padding: 0; border-radius: 16px; }
body .hero .panel-kicker { padding: 16px 20px 7px; font-size: 11px; margin: 0; }
body .hero .cap-line { padding: 11px 18px; grid-template-columns: 33px 1fr; gap: 2px 12px; }
body .hero .cap-line strong { font-size: 13px; }
body .hero .cap-line small { font-size: 11px; }
body .hero .cap-line:last-child { padding-bottom: 15px; }
body .hero .hero-meta { margin-top: 30px; padding-top: 18px; padding-bottom: 0; gap: 8px 12px; }
body .hero .hero-meta span { padding: 5px 10px; border-color: rgba(190,225,240,.25); }

/* Consistent light, compact commercial typography and cards. */
body .section { padding: var(--ddsw-section-gap) 0; }
body .section .section-index, body .cta-section .section-index { margin-bottom: 13px; }
body .section .section-heading { margin-bottom: 30px; }
body .section .section-heading h2,
body .section .industry-copy h2,
body .cta-section h2,
body .linrt-hero .linrt-copy h2 {
  font-size: clamp(26px, 2.8vw, 35px);
  line-height: 1.18;
  letter-spacing: -.02em;
}
body .section .section-heading p:not(.section-index),
body .section .section-intro { font-size: 15px; }
body .section .feature-grid { gap: 16px; }
body .section .feature-card { min-height: auto; padding: 25px; }
body .section .feature-card .card-index { margin-bottom: 28px; }
body .section .feature-card h3 { font-size: 21px; margin-bottom: 12px; }
body .section .feature-card p:not(.card-index) { font-size: 14px; }
body .section .feature-card .tag-row { margin-top: 17px; }
body .section .stack-intro { padding: 27px 29px; margin: 23px 0 18px; }
body .section .stack-intro h3 { font-size: clamp(25px, 3vw, 32px); }
body .section .stack-grid { gap: 15px; }
body .section .stack-card { padding: 24px; }
body .section .stack-card h3 { font-size: 22px; }
body .section .ks-pillars { gap: 12px; }
body .section .ks-pillars > div { padding: 20px; }
body .section .ks-pillars strong { font-size: 16px; }
body .section .service-list { gap: 15px; }
body .section .service-row { padding: 22px; }
body .section .service-row h3 { font-size: 19px; }
body .section .service-row p { font-size: 13px; }
body .section .process-grid > div { min-height: 0; padding: 23px; }
body .section .process-grid h3 { margin-top: 34px; }
body .linrt-hero { min-height: 0; background-size: 100% auto; }
body .linrt-hero .linrt-inner { padding-block: 60px; gap: 35px; }
body .linrt-hero .linrt-products { gap: 12px; }
body .linrt-hero .linrt-product-card.rounded-frame { padding: 17px 19px; }
body .linrt-hero .linrt-product-card h3 { font-size: 21px; }
body .linrt-hero .linrt-product-card p { font-size: 12px; }
body .linrt-hero .linrt-copy > p:not(.eyebrow) { font-size: 15px; }
body .cta-section { padding: 42px 0; }
body .cta-section .cta-inner { padding: 32px 34px; }

/* Footer directly models the validated LinRT cards and social bar. */
body .site-footer.dds-footer { padding: 0; border-top: 0; }
body .site-footer.dds-footer .dds-footer-grid { padding-top: 43px; padding-bottom: 29px; }
body .site-footer.dds-footer .dds-footer-card { padding: 20px; }
body .site-footer.dds-footer .dds-footer-card h3 { color: #f7fbff; font-size: 12px; margin-bottom: 13px; letter-spacing: 1px; }
body .site-footer.dds-footer .dds-footer-card .dds-footer-action { font-size: 12px; }
body .site-footer.dds-footer .dds-footer-social { border-bottom: 0; }
body .site-footer.dds-footer .dds-footer-social > strong { letter-spacing: 1.1px; }
body .site-footer.dds-footer .dds-footer-bottom { margin-top: 0; }

/* Compact nav at small desktops and tablets; no horizontal overflow. */
@media (max-width: 1030px) {
  body > .site-header { height: 74px; min-height: 74px; }
  body > .site-header .brand img { width: 190px; }
  body > .site-header .nav-toggle {
    display: inline-flex; flex-direction: column; gap: 5px;
    align-items: center; justify-content: center;
    width: 42px; min-width: 42px; height: 42px;
    padding: 8px; margin-left: auto; border: 1px solid #cbdde8;
    border-radius: 9px; background: #f8fbfd;
  }
  body > .site-header .nav-toggle span:not(.sr-only) {
    display: block; width: 23px; height: 2px; background: #163a52;
  }
  body > .site-header .site-nav {
    position: absolute;
    top: 100%; left: 0; right: 0; bottom: auto; inset-inline: 0;
    display: none; margin: 0; padding: 13px 20px 20px;
    background: #fff; color: #1b3146; border: 1px solid #dbe6ee;
    border-top: 0; border-radius: 0 0 14px 14px;
    box-shadow: 0 14px 28px rgba(3,24,45,.12);
    flex-direction: column; align-items: stretch; gap: 1px; z-index: 1001;
  }
  body > .site-header .site-nav.is-open { display: flex; }
  body > .site-header .site-nav a { padding: 10px 12px; font-size: 13px; }
  body > .site-header .site-nav .nav-cta { margin-top: 8px; text-align: center; }
  body .hero .hero-inner { grid-template-columns: minmax(0,1fr); gap: 26px; }
  body .hero .hero-panel { max-width: none; }
  body .hero .cap-line { grid-template-columns: 30px 1fr; }
  body .linrt-hero .linrt-inner { grid-template-columns: 1fr; gap: 24px; }
  body .linrt-hero .linrt-products { grid-template-columns: repeat(3, minmax(0,1fr)); }
}
@media (max-width: 770px) {
  body .section .split-heading { grid-template-columns: 1fr; gap: 15px; }
  body .hero { padding: 34px 0 25px; }
  body .linrt-hero { background-size: cover; background-position: 53% center; }
  body .linrt-hero .linrt-products { grid-template-columns: 1fr; }
  body .linrt-hero .linrt-inner { padding-block: 44px; }
  body .section .ks-pillars { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body .section .stack-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body .section .stack-card-wide { grid-column: 1 / -1; }
  body .section .feature-grid { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  body { width: calc(100% - 16px); margin: 8px auto 14px; }
  body .shell { width: calc(100% - 30px); }
  body > .site-header { height: 68px; min-height: 68px; }
  body > .site-header .header-inner { width: calc(100% - 26px); }
  body > .site-header .brand img { width: min(195px,58vw); max-height: 51px; }
  body .hero { padding: 27px 0 23px; }
  body .hero h1 { font-size: clamp(29px, 7vw, 35px); }
  body .hero .hero-lead { font-size: 13px; text-align: left; }
  body .hero .hero-actions { flex-direction: column; }
  body .hero .hero-actions .button { width: 100%; }
  body .hero .hero-meta { margin-top: 20px; gap: 6px; }
  body .hero .hero-meta span { font-size: 9px; }
  body .section { padding: 44px 0; }
  body .section .section-heading h2,
  body .section .industry-copy h2,
  body .linrt-hero .linrt-copy h2,
  body .cta-section h2 { font-size: clamp(25px, 6vw, 31px); }
  body .section .ks-pillars,
  body .section .stack-grid,
  body .section .service-list,
  body .section .process-grid { grid-template-columns: 1fr; }
  body .section .stack-card-wide { grid-column: auto; }
  body .section .stack-intro { grid-template-columns: 1fr; gap: 15px; padding: 23px; }
  body .section .feature-card,
  body .section .stack-card,
  body .section .service-row { padding: 22px; }
  body .cta-section .cta-inner { padding: 24px 21px; }
  body .site-footer.dds-footer .dds-footer-grid { padding-top: 26px; padding-bottom: 24px; }
}
@media (max-width: 390px) {
  body > .site-header .brand img { width: min(170px,55vw); }
  body .section .service-row { grid-template-columns: 27px 1fr; }
  body .section .service-row p { grid-column: 2; }
}
@media print {
  body > .site-header { position: static; }
  body { width: 100%; max-width: none; margin: 0; border: 0; box-shadow: none; }
}

/* ============================================================
   V10.3 — Original DDSW symbol + live text in HTML header
   No text burned into a logo image. The SEO/OG logo is unchanged.
   Logo file: assets/Logo-simple.png (original provided by client).
   ============================================================ */
body > .site-header a.dds-brand {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  gap: 10px;
  white-space: nowrap;
  text-decoration: none;
  color: #10466b;
}
body > .site-header a.dds-brand > img.dds-brand-icon {
  display: block;
  flex: 0 0 56px;
  width: 56px;
  height: 56px;
  max-width: none;
  max-height: none;
  object-fit: contain;
}
body > .site-header a.dds-brand > .dds-brand-name {
  display: block;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 19px;
  font-weight: 800;
  letter-spacing: -.65px;
  line-height: 1.18;
  color: #0b4f7c;
}
body > .site-header a.dds-brand:hover .dds-brand-name { color: #087fa9; }
@media (max-width: 1030px) {
  body > .site-header a.dds-brand > img.dds-brand-icon {
    width: 54px; height: 54px; flex-basis: 54px;
  }
}
@media (max-width: 620px) {
  body > .site-header a.dds-brand { gap: 8px; }
  body > .site-header a.dds-brand > img.dds-brand-icon {
    width: 49px; height: 49px; flex-basis: 49px;
  }
  body > .site-header a.dds-brand > .dds-brand-name {
    font-size: 17px;
    letter-spacing: -.55px;
  }
}
@media (max-width: 390px) {
  body > .site-header a.dds-brand { gap: 7px; }
  body > .site-header a.dds-brand > img.dds-brand-icon {
    width: 42px; height: 42px; flex-basis: 42px;
  }
  body > .site-header a.dds-brand > .dds-brand-name {
    font-size: 15px;
    letter-spacing: -.45px;
  }
}


/* ==============================================================
   V10.4 — LinRT Miami panorama visibility
   The V9 overlay was ~90–96% opaque across the editorial column,
   effectively hiding the supplied photograph. A balanced overlay
   preserves contrast, while the photo is visible on both columns.
   ============================================================= */
body #linrt {
  background-image: var(--linrt-bg);
  background-size: cover;
  background-repeat: no-repeat;
  background-position: 50% 50%;
}
body #linrt .linrt-overlay {
  background: linear-gradient(90deg,
      rgba(4, 13, 25, .67) 0%,
      rgba(4, 13, 25, .54) 43%,
      rgba(4, 13, 25, .24) 100%);
  pointer-events: none;
}
body #linrt .linrt-copy h2,
body #linrt .linrt-copy > p {
  text-shadow: 0 2px 16px rgba(0, 9, 20, .50);
}
/* V6 cards had near-opaque (!important) backgrounds; reveal more
   of the city without compromising the cards' text legibility. */
body #linrt .linrt-product-card.rounded-frame {
  background: linear-gradient(145deg,
      rgba(9, 36, 61, .87), rgba(15, 57, 85, .81)) !important;
  box-shadow: 0 12px 30px rgba(0, 10, 20, .35) !important;
}
@media (max-width: 770px) {
  body #linrt { background-position: 51% center; }
  body #linrt .linrt-overlay {
    background: linear-gradient(180deg,
      rgba(4, 13, 25, .75) 0%,
      rgba(4, 13, 25, .61) 48%,
      rgba(4, 13, 25, .47) 100%);
  }
  body #linrt .linrt-product-card.rounded-frame {
    background: rgba(9, 36, 61, .88) !important;
  }
}


/* ================================================================
   DDSW V10.5 — Reliable visible Miami photograph in the LinRT block

   Instead of a CSS custom property + background-image, V10.5 uses a
   physical <img> with src relative to index.html. This means a browser
   Network panel and a direct GET can both verify image loading.
   ================================================================ */
body #linrt.linrt-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background-image: none !important;
  background-color: #10283c;
}
body #linrt > img.linrt-backdrop-image {
  display: block !important;
  position: absolute !important;
  top: 0;
  left: 0;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  object-position: center center;
  filter: brightness(1.40) saturate(1.12);
  opacity: 1;
  z-index: 0;
  pointer-events: none;
  max-width: none;
}
body #linrt > .linrt-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(90deg,
    rgba(4, 13, 25, .44) 0%,
    rgba(4, 13, 25, .29) 53%,
    rgba(4, 13, 25, .17) 100%);
}
body #linrt > .linrt-inner {
  position: relative;
  z-index: 2;
}
body #linrt .linrt-copy h2,
body #linrt .linrt-copy > p:not(.eyebrow) {
  text-shadow: 0 2px 14px rgba(0, 7, 20, .85);
}
body #linrt .linrt-product-card.rounded-frame {
  background: linear-gradient(145deg, rgba(9, 29, 48, .89), rgba(11, 45, 72, .83)) !important;
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
}
@media (max-width: 770px) {
  body #linrt > img.linrt-backdrop-image {
    object-position: 52% center;
    filter: brightness(1.34) saturate(1.08);
  }
  body #linrt > .linrt-overlay {
    background: linear-gradient(180deg,
      rgba(4, 13, 25, .49) 0%,
      rgba(4, 13, 25, .37) 55%,
      rgba(4, 13, 25, .27) 100%);
  }
}
