/* Digital Data Software LLC — V10.6 Production Release / 2026-10-15
   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%);
  }
}


/* ===========================================================
   DDSW V10.6.1 — accessible Our Brands header menu + cards.
   Overrides the V10.5 baseline above, no third stylesheet.
   =========================================================== */
body > .site-header .site-nav > .dds-nav-dropdown {
  position: relative;
  flex: 0 0 auto;
  align-self: center;
}
body > .site-header .site-nav .dds-nav-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 8px;
  border: 0;
  background: transparent;
  border-radius: 8px;
  font: inherit;
  color: #1b3146;
  font-size: 12px;
  font-weight: 650;
  line-height: 1.35;
  cursor: pointer;
  white-space: nowrap;
}
body > .site-header .site-nav .dds-nav-trigger:hover,
body > .site-header .site-nav .dds-nav-dropdown.is-open .dds-nav-trigger { color: #087fa9; background: #eaf5f9; }
body > .site-header .site-nav .dds-nav-trigger:focus-visible,
body .dds-brands a:focus-visible {
  outline: 2px solid #1c9ac0;
  outline-offset: 3px;
}
body .dds-nav-chevron { font-size: 17px; line-height: .8; transition: transform .18s ease; }
body .dds-nav-dropdown.is-open .dds-nav-chevron { transform: rotate(180deg); }
body > .site-header .site-nav .dds-brands-menu {
  display: none;
  position: absolute;
  top: calc(100% + 10px);
  left: 0;
  z-index: 1005;
  width: 294px;
  max-width: calc(100vw - 45px);
  padding: 9px;
  background: #fff;
  border: 1px solid #cee0ea;
  border-radius: 13px;
  box-shadow: 0 15px 30px rgba(8,34,54,.16);
}
body > .site-header .site-nav .dds-nav-dropdown.is-open .dds-brands-menu { display: grid; gap: 3px; }
body > .site-header .site-nav .dds-brands-menu a.dds-brands-menu-link {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 3px;
  padding: 11px 12px;
  color: #143d57;
  border-radius: 8px;
  text-decoration: none;
  font-size: 12px;
}
body > .site-header .site-nav .dds-brands-menu a.dds-brands-menu-link:hover { background: #eef7fa; }
body > .site-header .site-nav .dds-brands-menu a.dds-brands-menu-link::after { content: none; }
body .dds-brands-menu-link strong { font-size: 13px; font-weight: 750; }
body .dds-brands-menu-link span { color: #58778a; font-size: 11px; }

/* Brand section follows expertise; LinRT photo and existing sections untouched. */
body .section.dds-brands {
  padding-block: clamp(47px, 5vw, 70px);
  background: linear-gradient(180deg, #f4f9fc 0%, #fff 98%);
  border-top: 1px solid #dfebf2;
  border-bottom: 1px solid #dfebf2;
}
body .dds-brands-heading { max-width: 920px; }
body .dds-brands .section-heading h2 { max-width: 820px; }
body .dds-brands .dds-brands-intro { max-width: 860px; margin-top: 15px; color: #526e81; font-size: 14px; line-height: 1.7; }
body .dds-brands-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; align-items: stretch; }
body .dds-brand-card {
  --brand-accent: #0c76a2;
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 25px 23px 22px;
  background: #fff;
  border: 1px solid #d7e6ed;
  border-top: 3px solid var(--brand-accent);
  border-radius: 17px;
  box-shadow: 0 10px 25px rgba(17,48,72,.075);
  transition: box-shadow .18s ease,transform .18s ease;
}
body .dds-brand-linrt { --brand-accent: #0074a7; }
body .dds-brand-kingsail { --brand-accent: #087a9a; }
body .dds-brand-bluecoral { --brand-accent: #00a4c4; }
@media (hover:hover) {
  body .dds-brand-card:hover { box-shadow: 0 16px 32px rgba(17,48,72,.14); transform: translateY(-3px); }
}
body .dds-brand-card-top { display:flex; align-items:center; justify-content:space-between; min-height:78px; gap:10px; margin-bottom:14px; }
body .dds-brand-logo { width:78px; height:78px; flex:0 0 78px; display:flex; align-items:center; justify-content:center; }
body .dds-brand-logo img { display:block; width:72px; height:72px; max-width:100%; object-fit:contain; }
body .dds-brand-category { color:#648194; font-size:10px; font-weight:800; letter-spacing:.07em; text-align:right; line-height:1.45; }
body .dds-brand-card h3 { color: #17374b; font-size:22px; line-height:1.22; margin: 0 0 7px; letter-spacing:-.015em; }
body .dds-brand-tagline { font-size:13px; color:#08799b; font-weight:750; margin: 0 0 13px; line-height:1.4; }
body .dds-brand-card > p:not(.dds-brand-tagline):not(.dds-brand-technologies) { color:#4e6778; font-size:13px; line-height:1.7; margin:0 0 16px; }
body .dds-brand-technologies { color:#254e65; font-size:12px; font-weight:750; line-height:1.7; margin:auto 0 19px; padding-top:10px; }
body .dds-brand-status { display:block; color:#6b7d8a; font-size:11px; font-weight:650; margin-top:5px; }
body .dds-brand-link {
  display:inline-flex; align-items:center; justify-content:space-between;
  width:100%; min-height:42px;
  padding:9px 13px;
  border:1px solid #cae4ed;
  background:#edf7fa;
  color:#075b82;
  border-radius:9px;
  font-size:12px; font-weight:750; line-height:1.3;
  text-decoration:none;
}
body .dds-brand-link:hover { color:#064d73; background:#dff1f7; border-color:#8fc9df; }
body .dds-brand-link span { font-size:16px; }
body .dds-brands-note { font-size:12px; color:#61798a; line-height:1.65; margin:19px 0 0; }
@media (max-width:1030px) {
  body > .site-header .site-nav { max-height: calc(100dvh - 78px); overflow-y:auto; overscroll-behavior:contain; }
  body > .site-header .site-nav > .dds-nav-dropdown { width:100%; align-self:stretch; }
  body > .site-header .site-nav .dds-nav-trigger { justify-content:space-between; width:100%; text-align:left; padding:10px 12px; font-size:13px; }
  body > .site-header .site-nav .dds-brands-menu {
    position:static;
    width:100%;
    max-width:100%;
    margin:0 0 8px;
    box-shadow:none;
    border:1px solid #e1edf3;
    border-radius:9px;
    background:#f6fafc;
  }
  body .dds-brands-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  body .dds-brand-card:last-child { grid-column:1 / -1; }
}
@media (max-width:700px) {
  body .dds-brands-grid { grid-template-columns:minmax(0,1fr); }
  body .dds-brand-card:last-child { grid-column:auto; }
  body .dds-brand-card { padding:22px; }
  body .dds-brand-card-top { margin-bottom:10px; }
  body .dds-brand-logo { height:66px; width:66px; flex-basis:66px; }
  body .dds-brand-logo img { width:62px; height:62px; }
}
@media (prefers-reduced-motion:reduce) {
  body .dds-brand-card, body .dds-nav-chevron { transition:none; }
}


/* ================================================================
   DDSW V10.6.2 — short, technical KingSail overview.
   Retains all five frameworks and core protocol details without
   duplicating the detailed catalogue at kingsailsw.com.
   ================================================================ */
body .section.dds-ks-snapshot {
  padding: clamp(32px, 4vw, 52px) 0;
  background: #f5f9fc;
  border-top: 1px solid #e1eaf0;
  border-bottom: 1px solid #dbe9f0;
}
body .dds-ks-heading {
  display: grid;
  grid-template-columns: minmax(0,1.1fr) minmax(0,.9fr);
  gap: 35px;
  align-items: end;
  margin-bottom: 24px;
}
body .dds-ks-heading .section-index { margin-bottom: 9px; }
body .dds-ks-heading h2 {
  color:#14334b;
  font-size: clamp(24px,2.6vw,31px);
  line-height:1.23;
  letter-spacing: -.023em;
  margin:0;
}
body .dds-ks-heading > p {
  color:#526c7e;
  font-size:13px;
  line-height:1.65;
  margin:0;
}
body .dds-ks-overview {
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:0;
  background:#fff;
  border:1px solid #dbe8ef;
  border-radius:14px;
  box-shadow: 0 7px 21px rgba(15,50,75,.055);
  overflow:hidden;
}
body .dds-ks-item {
  min-width:0;
  padding:17px 16px 18px;
  border-right:1px solid #e0ebf1;
}
body .dds-ks-item:last-child { border-right:0; }
body .dds-ks-item strong {
  display:block;
  font-size:14px;
  line-height:1.4;
  margin-bottom:7px;
  color:#105a7b;
}
body .dds-ks-item span {
  display:block;
  font-size:12px;
  color:#536d7d;
  line-height:1.6;
}
body .dds-ks-footer {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:28px;
  margin-top:18px;
}
body .dds-ks-footer p { flex:1; margin:0; font-size:11.5px; line-height:1.65; color:#61798a; }
body .dds-ks-footer p strong { color:#35576c; }
body .dds-ks-action {
  display:inline-flex;
  flex:0 0 auto;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  min-height:41px;
  padding:10px 14px;
  background:#e4f3f7;
  border:1px solid #b7dae5;
  border-radius:9px;
  color:#125a77;
  text-decoration:none;
  font-size:12px;
  font-weight:750;
  white-space:nowrap;
}
body .dds-ks-action:hover { background:#d3eaf1; color:#073e57; }
body .dds-ks-action:focus-visible { outline:2px solid #1c9ac0; outline-offset:3px; }
@media (max-width:1000px) {
  body .dds-ks-overview { grid-template-columns:repeat(3,minmax(0,1fr)); }
  body .dds-ks-item:nth-child(3) { border-right:0; }
  body .dds-ks-item:nth-child(n+4) { border-top:1px solid #e0ebf1; }
  body .dds-ks-footer { align-items:flex-start; }
}
@media (max-width:700px) {
  body .dds-ks-heading { grid-template-columns:1fr; gap:10px; }
  body .dds-ks-overview { grid-template-columns:repeat(2,minmax(0,1fr)); }
  body .dds-ks-item:nth-child(3) { border-right:1px solid #e0ebf1; }
  body .dds-ks-item:nth-child(even) { border-right:0; }
  body .dds-ks-item:nth-child(n+3) { border-top:1px solid #e0ebf1; }
  body .dds-ks-footer { flex-direction:column; gap:14px; }
  body .dds-ks-action { max-width:100%; white-space:normal; }
}
@media (max-width:390px) {
  body .dds-ks-overview { grid-template-columns:1fr; }
  body .dds-ks-item { border-right:0 !important; border-top:1px solid #e0ebf1; padding:13px 15px; }
  body .dds-ks-item:first-child { border-top:0; }
}


/* ================================================================
   DDSW V10.6.3 — sticky navigation + pointer-safe Our Brands dropdown
   Fixes V10.6.2 dead zone under the trigger when the page is scrolled.
   ================================================================ */
body > .site-header {
  position: sticky;
  top: 0;
  z-index: 2500;
  overflow: visible;
}
body > .site-header .header-inner,
body > .site-header .site-nav,
body > .site-header .site-nav > .dds-nav-dropdown {
  overflow: visible;
}
@media (min-width: 1031px) {
  body > .site-header .site-nav .dds-brands-menu {
    /* The menu begins EXACTLY where its trigger ends: no hover gap. */
    top: 100%;
    margin-top: 0;
    z-index: 2600;
  }
}
body > .site-header .site-nav .dds-nav-dropdown.is-open .dds-brands-menu {
  pointer-events: auto;
}
/* Distinguish a click-pinned menu from a merely hovered menu. */
body > .site-header .site-nav .dds-nav-dropdown.is-pinned > .dds-nav-trigger {
  color: #075f89;
  background: #e3f3f8;
}

/* V10.6 — Footer: five balanced columns matching the brand portfolio. */
body .site-footer.dds-footer .dds-footer-grid {
  grid-template-columns: 1.08fr 1.12fr .98fr 1fr 1.06fr;
  gap: 12px;
  align-items: stretch;
  padding-top: 39px;
  padding-bottom: 31px;
}
body .site-footer.dds-footer .dds-footer-grid > .dds-footer-card {
  min-width: 0;
  padding: 19px 16px 20px;
}
body .site-footer.dds-footer .dds-footer-grid > .dds-footer-card h3 {
  font-size: 11px;
  letter-spacing: .075em;
  line-height: 1.45;
  margin-bottom: 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,
body .site-footer.dds-footer .dds-footer-menu > a {
  font-size: 11.5px;
  line-height: 1.7;
  overflow-wrap: anywhere;
}
body .site-footer.dds-footer .dds-footer-menu {
  gap: 8px;
}
body .site-footer.dds-footer .dds-footer-menu a {
  padding-block: 2px;
}
body .site-footer.dds-footer .dds-footer-location .dds-footer-map {
  max-width: 100%;
  margin-bottom: 11px;
  object-fit: contain;
}
body .site-footer.dds-footer .dds-footer-location p {
  margin-top: 8px;
}
/* Transition to three, two, then one column without cramped text. */
@media (max-width: 1120px) {
  body .site-footer.dds-footer .dds-footer-grid {
    grid-template-columns: repeat(3, minmax(0,1fr));
  }
  body .site-footer.dds-footer .dds-footer-grid > .dds-footer-card {
    padding: 20px;
  }
}
@media (max-width: 850px) {
  body .site-footer.dds-footer .dds-footer-grid {
    grid-template-columns: repeat(2, minmax(0,1fr));
  }
}
@media (max-width: 620px) {
  body > .site-header .header-inner,
  body > .site-header .site-nav { overflow: visible; }
  body > .site-header .site-nav.is-open {
    max-height: calc(100dvh - 78px);
    overflow-y: auto;
    overflow-x: hidden;
  }
  body .site-footer.dds-footer .dds-footer-grid {
    grid-template-columns: minmax(0,1fr);
  }
  body .site-footer.dds-footer .dds-footer-grid > .dds-footer-card { padding: 18px; }
}
/* Keep the mobile flyout scrollable below the sticky header. */
@media (min-width: 621px) and (max-width: 1030px) {
  body > .site-header .site-nav.is-open {
    max-height: calc(100dvh - 90px);
    overflow-y: auto;
    overflow-x: hidden;
  }
}
@media print {
  body > .site-header {position: static;}
}
