/* Fixes found while building on WordPress. Loaded after the package stylesheets. */

/* Core's flex layout rule (body .is-layout-flex) outranks the design's hide rule,
   which pushed the header buttons off small screens. */
@media (max-width: 1023px) {
  .ld-site-header .ld-site-header__actions { display: none; }
}

/* The news breadcrumb is two blocks (link and category) instead of one line of text. */
.ld-article__breadcrumb { gap: 0.35em; }
.ld-article__breadcrumb > p { margin: 0; }

/* Links to outside articles on media coverage and industry news posts (liberty-core). */
.ld-publications { margin-block-start: var(--ld-sp-24); }
.ld-publications__label {
  margin: 0 0 var(--ld-sp-8);
  font-size: var(--ld-fs-eyebrow);
  font-weight: var(--ld-fw-semibold);
  letter-spacing: var(--ld-ls-eyebrow);
  text-transform: uppercase;
  color: var(--ld-grey-600);
}
.ld-publications__list { margin: 0; padding-inline-start: var(--ld-sp-20); }
.ld-publications__list li + li { margin-block-start: var(--ld-sp-6); }

/* Keyboard focus on the scrollable warrants table (see inc/render.php). */
.ld-share-structure__group-2:focus-visible { outline: var(--ld-border-2) solid var(--ld-focus); outline-offset: var(--ld-sp-2); }

/* A decorative circle in the package CSS is attached to the whole "How it works" section, so it sits
   off-screen to the right and makes Home and HEXWAVE scroll sideways by 28px. It is never visible
   (same in the design's own preview), so it is switched off. */
.ld-how-it-works::before { content: none; }

/* Media inside post text never wider than its column. Older posts use the classic [caption]
   shortcode, which fixes the frame width inline (for example width: 1024px), and fixed-size
   images, videos and embeds; these overlapped the article sidebar. max-width wins over the inline width. */
.single .wp-block-post-content :is(.wp-caption, figure, img, video, iframe, embed, object, table, .wp-video, .wp-block-embed) {
  max-width: 100%;
}
.single .wp-block-post-content img { height: auto; }
.single .wp-block-post-content .wp-caption { box-sizing: border-box; }
.single .wp-block-post-content .wp-caption.aligncenter { margin-inline: auto; }
.single .wp-block-post-content .wp-caption-text { margin-block-start: var(--ld-sp-8); font-size: var(--ld-fs-small); color: var(--ld-light-navy); }
.single .wp-block-post-content :is(.alignleft, .alignright) { max-width: 50%; }
.single .wp-block-post-content .alignleft { float: left; margin: 0 var(--ld-sp-24) var(--ld-sp-16) 0; }
.single .wp-block-post-content .alignright { float: right; margin: 0 0 var(--ld-sp-16) var(--ld-sp-24); }
/* Wide tables scroll inside the column instead of pushing it wider. */
.single .wp-block-post-content table { display: block; overflow-x: auto; }
/* Long web addresses written out in post text wrap instead of running past the column. */
.single .wp-block-post-content :is(p, li, td, a) { overflow-wrap: anywhere; }
/* Long words and domain names in article headlines and summaries wrap on small screens. */
.ld-article :is(h1, .ld-article__lead) { overflow-wrap: break-word; }

/* "Don't see your facility?" box is a link to Talk to Sales (inc/render.php). */
a.ld-industry-doors__list-item-2 { color: inherit; text-decoration: none; }
a.ld-industry-doors__list-item-2:hover .ld-industry-doors__link { background: var(--ld-white); }
a.ld-industry-doors__list-item-2:focus-visible { outline: var(--ld-border-2) solid var(--ld-focus); outline-offset: var(--ld-sp--2); }

/* Homepage hero list: hexagon check bullets as in the design (the package styles left them out). */
.ld-hero-home__list-item::before {
  content: "";
  flex: none;
  inline-size: var(--ld-size-20);
  block-size: var(--ld-size-18);
  margin-block-start: 0.2em;
  background: var(--ld-blue-700);
  -webkit-mask: url("../assets/icons/ld-icon-hex-check-cutout.svg") center / contain no-repeat;
  mask: url("../assets/icons/ld-icon-hex-check-cutout.svg") center / contain no-repeat;
}

/* Form section lists. The package draws a hexagon check before every list item. Numbered steps
   (Request a Demo) already show a number in a circle, and the extra hexagon took the number's grid
   column, squeezing the text into a 32 px column. Checklists (Support) keep the hexagon, drawn with
   the check cut out so it is visible. */
.ld-form-section__list-item:has(.ld-form-section__item-text-2)::before { content: none; }
.ld-form-section__list-item::before {
  -webkit-mask-image: url("../assets/icons/ld-icon-hex-check-cutout.svg");
  mask-image: url("../assets/icons/ld-icon-hex-check-cutout.svg");
}

/* The package's "--ld-border-1.5" token is not a valid CSS name, so borders using it were dropped
   (step number circles). Same 1.5 px value, written directly. */
.ld-form-section__item-text,
.ld-demo-form__note { border: 1.5px solid var(--ld-bright-blue); }
.ld-form-section--support .ld-form-section__item-text { border: unset; }

/* Footer: "Customer updates" heading, text and form form one stack on the right, beside the logo
   and sales contact (the package left them as separate grid cells, giving three columns). */
.ld-site-footer__updates { display: flex; flex-direction: column; gap: var(--ld-sp-12); }
/* Footer link columns: white, no underline, underline on hover, as in the design. */
.ld-site-footer__item-list .ld-site-footer__list-item a { color: var(--ld-white); text-decoration: none; }
.ld-site-footer__item-list .ld-site-footer__list-item a:hover { color: var(--ld-white); text-decoration: underline; }
.ld-site-footer__item-list { gap: var(--ld-sp-12); font-size: var(--ld-fs-15); line-height: 1.4; }

/* Dark sections: bold lead-ins and links inside running text are white, as in the design. The package's
   general dark-section link rule (light blue, base.css) outranked the component rules that ask for white. */
.ld-is-dark strong { color: var(--ld-white); }
.ld-is-dark :is(.ld-demo-form__text, .ld-demo-form__text-2, .ld-form-section__value, .ld-form-section__value-2, .ld-site-footer__text, .ld-site-footer__link-2, .ld-procurement__link) a:not(.wp-block-button__link),
.ld-is-dark :is(.ld-demo-form__text, .ld-demo-form__text-2, .ld-form-section__value, .ld-form-section__value-2, .ld-site-footer__text, .ld-site-footer__link-2, .ld-procurement__link) a:not(.wp-block-button__link):hover { color: var(--ld-white); }
.ld-demo-form__text-2 a { font-weight: 700; }

/* Product hero: the white card overlaps the bottom of the photo, as designed. WordPress's own
   spacing rule for the first item in a group reset the card's negative top margin to 0. */
.ld-hero-product__inner > .ld-hero-product__stack { margin-top: var(--ld-sp-fluid-11); }

/* Links with their own icon (down arrow, download, external) also got the site-wide right arrow,
   and the package placed their icon before the text. The design shows one icon, after the text.
   The hero "Request a Demo" text links show no icon in the design. */
:is(.ld-hero-home__link, .ld-pillar-index__item-link, .ld-stock-quotes__item-link, .ld-hero-product__link, .ld-hero-split__link, .ld-hero-industry__link) a::after { content: none; }
:is(.ld-hero-home__link, .ld-pillar-index__item-link, .ld-stock-quotes__item-link) a { display: inline-flex; align-items: center; gap: var(--ld-sp-8); }
:is(.ld-hero-home__link, .ld-pillar-index__item-link, .ld-stock-quotes__item-link) a::before { order: 1; }
:is(.ld-hero-product__link, .ld-hero-split__link, .ld-hero-industry__link) a::before { content: none; }

/* Specifications: the button links to Request a Demo, so no download icon (the design shows none). */
.ld-specifications__button .wp-block-button__link::before { content: none; }
/* Specifications panel photo: the package fixes it at 380 px tall, which is wider than the column
   allows, so it was cropped at both sides. The whole panel now scales to fit (at most 380 px tall),
   and the height line beside it matches the picture's height. */
.ld-specifications__row-2 { height: auto; max-width: 100%; }
.ld-specifications__media { flex: 0 1 auto; min-width: 0; margin: 0; display: flex; align-items: flex-end; }
.ld-specifications__media img { width: auto; height: auto; max-width: 100%; max-height: var(--ld-size-380); object-fit: contain; }
/* Panel column a little wider than the package's (0.42fr) so the panel shows larger on desktop. */
@media (min-width: 1024px) {
  .ld-specifications__grid { grid-template-columns: minmax(0, 0.56fr) minmax(0, 1.44fr); }
}

/* Safety and privacy lists: the package sets up an icon column for each line but never draws the icon,
   so the text fell into the 20 px icon column. The hexagon check fills that column, as in the design. */
.ld-safety-privacy__list-item::before {
  content: "";
  inline-size: var(--ld-size-20);
  block-size: var(--ld-size-18);
  margin-block-start: 0.15em;
  background: var(--ld-blue-700);
  -webkit-mask: url("../assets/icons/ld-icon-hex-check-cutout.svg") center / contain no-repeat;
  mask: url("../assets/icons/ld-icon-hex-check-cutout.svg") center / contain no-repeat;
}
/* Same missing icon in two more lists: HD-AIT key features and the portability band (dark). */
:is(.ld-kit-features__list-item, .ld-portability-band__list-item)::before {
  content: "";
  inline-size: var(--ld-size-20);
  block-size: var(--ld-size-18);
  margin-block-start: 0.15em;
  background: var(--ld-blue-700);
  -webkit-mask: url("../assets/icons/ld-icon-hex-check-cutout.svg") center / contain no-repeat;
  mask: url("../assets/icons/ld-icon-hex-check-cutout.svg") center / contain no-repeat;
}
.ld-kit-features__list-item::before { inline-size: var(--ld-size-24); block-size: var(--ld-size-22, 22px); }
.ld-portability-band__list-item::before { background: var(--ld-bright-blue); }

/* Field proof box: the quotation mark belongs only on boxes that hold a quote (Aviation, Courts,
   Loss Prevention). HEXWAVE's box is a field evaluation summary, not a quote. */
.ld-field-proof__stack-3:not(:has(.ld-field-proof__quote))::before { content: none; }

/* HEXWAVE hero buttons: same 12 px gap as the industry heroes (the package left this button group without one). */
.ld-hero-product__actions { gap: var(--ld-sp-12); }

/* Industry split hero (Loss Prevention, Museums, Federal and DoD, State Capitols, National Labs): the package
   rule sets the grey grid background, then "background: unset" later in the same rule wipes it.
   Same grey grid as the other industry heroes. */
.ld-hero-split.ld-hero-split--industry {
  background-color: var(--ld-grey-50);
  background-image: linear-gradient(var(--ld-navy-a055) var(--ld-border-1), transparent var(--ld-border-1)), linear-gradient(90deg, var(--ld-navy-a055) var(--ld-border-1), transparent var(--ld-border-1));
  background-size: var(--ld-grid-size) var(--ld-grid-size);
  background-position: var(--ld-sp--1) var(--ld-sp--1);
}
/* The dark split hero's light blue grid overlay was still on in the industry version, spread across the screen. */
.ld-hero-split.ld-hero-split--industry::before,
.ld-hero-split.ld-hero-split--industry::after { content: none; }
/* Loss Prevention's box is a product testing statement, not a quote: no quotation mark. */
.page-id-5211 .ld-field-proof__stack-3::before { content: none; }
/* Loss Prevention sales contact links in the demo section: bold white, as in the design. */
.ld-demo-form__text a[href^="mailto:"], .ld-demo-form__text a[href^="tel:"] { font-weight: 700; }

/* Resources hub tiles: headline in dark navy, not the default blue underlined link; "Read ..." line with
   its arrow (it is plain text, so the link arrow rule never applied); the whole tile is clickable. */
.ld-card-grid--resources .ld-card-grid__item-link { position: relative; }
.ld-card-grid--resources .ld-card-grid__item-text a { color: var(--ld-navy); text-decoration: none; }
.ld-card-grid--resources .ld-card-grid__item-text a::after { content: ""; position: absolute; inset: 0; }
.ld-card-grid--resources .ld-card-grid__item-text a:focus-visible { outline: none; }
.ld-card-grid--resources .ld-card-grid__item-link:has(a:focus-visible) { outline: var(--ld-border-2) solid var(--ld-focus); outline-offset: var(--ld-sp-2); }
.ld-card-grid--resources .ld-card-grid__item-text-3.ld-has-arrow::after {
  content: "";
  inline-size: var(--ld-size-16);
  block-size: var(--ld-size-16);
  flex: none;
  background: currentColor;
  -webkit-mask: url("../assets/icons/ld-icon-arrow-right.svg") center / contain no-repeat;
  mask: url("../assets/icons/ld-icon-arrow-right.svg") center / contain no-repeat;
}

/* Event rows, 520 to 859 px: the buttons fell into the 96 px date column; they span the row instead. */
@media (min-width: 520px) and (max-width: 859px) {
  .ld-event-list__item-row-2 { grid-column: 1 / -1; }
}

/* Insights "More insights" cards: each card fills its grid row, so cards in a row are the same height. */
.ld-post-grid .wp-block-post-template > li { display: flex; }
.ld-post-grid .wp-block-post-template > li > .ld-post-grid__list-item { flex: 1 1 auto; }

/* Tiles the design styles as clickable (navy outline or shadow on hover): the whole tile opens the title's
   link, not only the title. The title link's overlay covers the tile. */
:is(.ld-card-grid__item-link, .ld-post-lead__link, .ld-post-grid__item-link, .ld-story-listing__link, .ld-news-lead__link, .ld-news-lead__item-link, .ld-related-list__item-link) { position: relative; }
:is(.ld-card-grid__item-link, .ld-post-lead__link, .ld-post-grid__item-link, .ld-story-listing__link, .ld-news-lead__link, .ld-news-lead__item-link, .ld-related-list__item-link) :is(h2, h3, h4, .wp-block-post-title) a::after { content: ""; position: absolute; inset: 0; }
/* Newsroom lead tile: its headline and summary are positioned in the package, which confined the overlay to the headline. */
.ld-news-lead__link :is(.ld-news-lead__text, .ld-news-lead__text-2) { position: static; }
/* Plain-text "Read ..." lines marked for an arrow (tiles): the arrow rule only covered links. */
p.ld-has-arrow:not(:has(a)) { display: inline-flex; align-items: center; gap: var(--ld-sp-8); }
p.ld-has-arrow:not(:has(a))::after {
  content: "";
  inline-size: var(--ld-size-16);
  block-size: var(--ld-size-16);
  flex: none;
  background: currentColor;
  -webkit-mask: url("../assets/icons/ld-icon-arrow-right.svg") center / contain no-repeat;
  mask: url("../assets/icons/ld-icon-arrow-right.svg") center / contain no-repeat;
}
/* In clickable tiles the outline is the hover signal; the title does not underline (as on the Resources tiles). */
:is(.ld-card-grid__item-link, .ld-post-lead__link, .ld-post-grid__item-link, .ld-story-listing__link, .ld-news-lead__link, .ld-news-lead__item-link, .ld-related-list__item-link) :is(h2, h3, h4, .wp-block-post-title) a:hover { text-decoration: none; }

/* FAQ page: the package ships the search box, the topic list (built by ld-accordion.js) and the
   question buttons without styles of their own. Styled to the approved FAQ design. */
.ld-faq-search { display: flex; flex-direction: column; gap: var(--ld-sp-10); }
.ld-faq-search__label { font-size: var(--ld-fs-15); font-weight: var(--ld-fw-bold); color: var(--ld-navy); }
.ld-faq-search__input { box-sizing: border-box; inline-size: 100%; min-height: var(--ld-size-46); padding: var(--ld-sp-10) var(--ld-sp-16); border: var(--ld-border-1) solid var(--ld-grey); border-radius: var(--ld-radius-sm); background: var(--ld-white); color: var(--ld-navy); font: var(--ld-fs-body)/1.4 var(--ld-font-brand); transition: border-color var(--ld-dur) var(--ld-ease); }
.ld-faq-search__input::placeholder { color: var(--ld-grey-600); }
.ld-faq-search__input:hover { border-color: var(--ld-navy); }
.ld-faq-search__input:focus-visible { outline: var(--ld-border-2) solid var(--ld-focus); outline-offset: var(--ld-sp-2); border-color: var(--ld-navy); }
.ld-faq-search__empty { display: flex; flex-direction: column; gap: var(--ld-sp-6); padding: var(--ld-sp-14) var(--ld-sp-16); border-inline-start: var(--ld-border-2) solid var(--ld-blue-700); background: var(--ld-grey-50); font-size: var(--ld-fs-small); line-height: 1.5; color: var(--ld-light-navy); }
.ld-faq-search__empty[hidden] { display: none; }
.ld-faq-search__empty p { margin: 0; }
.ld-faq-library__topics { display: flex; flex-direction: column; gap: var(--ld-sp-3); }
.ld-faq-library__topic { display: flex; align-items: center; justify-content: space-between; gap: var(--ld-sp-12); padding: var(--ld-sp-12) 0 var(--ld-sp-12) var(--ld-sp-16); border-inline-start: var(--ld-border-2) solid var(--ld-grey-300); color: var(--ld-navy); font-size: var(--ld-fs-15); font-weight: var(--ld-fw-semibold); line-height: 1.3; text-decoration: none; transition: border-color var(--ld-dur) var(--ld-ease); }
.ld-faq-library__topic:hover { border-inline-start-color: var(--ld-navy); color: var(--ld-navy); text-decoration: none; }
.ld-faq-library__topic:focus-visible { outline: var(--ld-border-2) solid var(--ld-focus); outline-offset: var(--ld-sp-2); }
.ld-faq-library__count { flex: none; font-size: var(--ld-fs-xs); font-weight: var(--ld-fw-bold); color: var(--ld-grey-600); }
.ld-faq-library__subitem .ld-accordion__button { padding-block: var(--ld-sp-20); font-size: var(--ld-fs-h4); font-weight: var(--ld-fw-bold); line-height: var(--ld-lh-heading); color: var(--ld-navy); }
.ld-faq-library__subitem .ld-accordion__button::after { color: var(--ld-navy); }

/* FAQ page: Expand all and Collapse all. */
.ld-faq-library__controls { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--ld-sp-20); margin-block-end: calc(var(--ld-sp-4) - var(--ld-sp-fluid-42)); }
.ld-faq-library__control { padding: var(--ld-sp-4) 0; border: 0; background: none; color: var(--ld-link); font: var(--ld-fw-semibold) var(--ld-fs-15)/1.4 var(--ld-font-brand); text-decoration: underline; text-underline-offset: 0.2em; cursor: pointer; }
.ld-faq-library__control:hover { color: var(--ld-link-hover); }
.ld-faq-library__control:focus-visible { outline: var(--ld-border-2) solid var(--ld-focus); outline-offset: var(--ld-sp-2); }

/* About hero: the package's "unset" lines shrank the photo to its natural 600 px and wiped the navy gradient,
   and the photo painted over the gradient. Photo fills the section, gradient on top, text above both. */
.ld-hero-split--about .ld-hero-split__media { position: absolute; inset: 0; margin: 0; }
.ld-hero-split--about .ld-hero-split__media img { position: absolute; inset: 0; inline-size: 100%; block-size: 100%; object-fit: cover; }
.ld-hero-split.ld-hero-split--about::before { z-index: 1; background-image: linear-gradient(90deg, var(--ld-navy-900-a940) 0%, var(--ld-navy-900-a860) 42%, var(--ld-navy-900-a350) 100%); }
.ld-hero-split--about .ld-hero-split__inner { z-index: 2; }
/* Careers hero: the same "unset" left the photo at its own height inside the framed box, cut off at the bottom. */
.ld-hero-split--careers .ld-hero-split__media img { position: absolute; inset: 0; inline-size: 100%; block-size: 100%; object-fit: cover; }
/* Financial reports: year tabs as pills and each year's table as a white card with document icons, per the design. */
.ld-reports-table .ld-tabs__list { gap: var(--ld-sp-10); margin-block-end: var(--ld-sp-16); }
.ld-reports-table .ld-tabs__tab { min-height: var(--ld-size-46); padding: 0 var(--ld-sp-22); border-color: var(--ld-navy); border-radius: var(--ld-radius-sm); font-weight: var(--ld-fw-bold); font-size: var(--ld-fs-15); }
.ld-reports-table .ld-tabs__tab:hover { background: var(--ld-grey-100); }
.ld-reports-table .ld-tabs__tab[aria-selected="true"] { background: var(--ld-navy); }
.ld-reports-table__table { background: var(--ld-white); border: var(--ld-border-1) solid var(--ld-grey-300); border-radius: var(--ld-radius-md); overflow: hidden; }
.ld-reports-table__table table { border: 0; }
.ld-reports-table__table tr { display: grid; grid-template-columns: 1fr; gap: var(--ld-sp-4) var(--ld-sp-24); align-items: center; padding: var(--ld-sp-16) var(--ld-sp-20); }
.ld-reports-table__table tr + tr { border-block-start: var(--ld-border-1) solid var(--ld-grey-300); }
.ld-reports-table__table tr:hover { background: var(--ld-grey-100); }
.ld-reports-table__table td, .ld-reports-table__table tr:last-child td { padding: 0; border: 0; font-size: var(--ld-fs-small); color: var(--ld-light-navy); }
.ld-reports-table__table td:first-child a { display: inline-flex; align-items: center; gap: var(--ld-sp-10); font-size: var(--ld-fs-body); font-weight: var(--ld-fw-bold); color: var(--ld-blue-700); text-decoration: none; }
.ld-reports-table__table td:first-child a:hover { text-decoration: underline; }
.ld-reports-table__table td:first-child a::before { content: ""; flex: none; inline-size: var(--ld-size-18); block-size: var(--ld-size-18); background: currentColor; -webkit-mask: url("../assets/icons/ld-icon-document.svg") center / contain no-repeat; mask: url("../assets/icons/ld-icon-document.svg") center / contain no-repeat; }
@media (min-width: 640px) {
  .ld-reports-table__table tr { grid-template-columns: minmax(0, 1fr) auto; }
  .ld-reports-table__table td:last-child { text-align: end; }
}
/* Contact columns (Investors, Support): the package's "display: unset" made the inner wrapper inline, so the cards ignored the page width and margins. */
.ld-contact-columns--investors .ld-contact-columns__inner,
.ld-contact-columns--support .ld-contact-columns__inner { display: block; }
.ld-contact-columns--investors .ld-contact-columns__link a { font-size: var(--ld-fs-small); text-underline-offset: var(--ld-sp-2); }
/* Governance documents: each document as a bold blue link with a document icon, per the design. */
.ld-docs-columns__list-item { display: flex; align-items: center; min-block-size: var(--ld-size-52); padding-block: var(--ld-sp-8); }
.ld-docs-columns__list-item a { display: inline-flex; align-items: flex-start; gap: var(--ld-sp-10); font-size: var(--ld-fs-small); font-weight: var(--ld-fw-bold); line-height: 1.35; color: var(--ld-blue-700); text-decoration: none; }
.ld-docs-columns__list-item a:hover { color: var(--ld-navy); text-decoration: underline; }
.ld-docs-columns__list-item a:focus-visible { outline: var(--ld-border-2) solid var(--ld-focus); outline-offset: var(--ld-sp-2); }
.ld-docs-columns__list-item a::before { content: ""; flex: none; inline-size: var(--ld-size-16); block-size: var(--ld-size-16); margin-block-start: 0.1em; background: currentColor; -webkit-mask: url("../assets/icons/ld-icon-document.svg") center / contain no-repeat; mask: url("../assets/icons/ld-icon-document.svg") center / contain no-repeat; }
/* Warrants table: WordPress's default table block borders drew vertical lines and a heavy header rule. Per the design: grey rules between rows only, figures right-aligned. */
.ld-share-structure__table { margin: 0; }
.ld-share-structure__table table { inline-size: 100%; border: 0; border-collapse: collapse; }
.ld-share-structure__table thead { border: 0; }
.ld-share-structure__table th, .ld-share-structure__table td { border: 0; border-bottom: var(--ld-border-1) solid var(--ld-grey-300); }
.ld-share-structure__table td:not(:first-child) { font-weight: var(--ld-fw-regular); }
.ld-share-structure__table th:not(:first-child), .ld-share-structure__table td:not(:first-child) { text-align: end; }
.ld-share-structure__table th:last-child, .ld-share-structure__table td:last-child { padding-inline-end: 0; }
/* News listing cards (Newsroom categories, archives, related lists): cards in a row share one height, and summaries stop at 3 lines so uneven excerpts no longer make the grid ragged. */
.ld-related-list__list > .wp-block-post { display: flex; }
.ld-related-list__list > .wp-block-post > .ld-related-list__list-item { display: flex; flex: 1; min-inline-size: 0; }
.ld-related-list__list > .wp-block-post .ld-related-list__item-link { flex: 1; }
.ld-related-list__item-excerpt p { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; overflow: hidden; margin: 0; }
/* Legal pages "On this page" list: the package left it unstyled (plain underlined links). Per the design: small uppercase label, each link as plain navy text beside a thin grey rule. */
.ld-legal-body__breadcrumb { gap: var(--ld-sp-4); top: var(--ld-sp-120); font-size: var(--ld-fs-11); font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ld-navy); }
.ld-legal-body__breadcrumb a { display: block; padding: var(--ld-sp-4) 0 var(--ld-sp-4) var(--ld-sp-10); border-inline-start: var(--ld-border-1) solid var(--ld-grey-300); font-size: var(--ld-fs-xs); font-weight: 400; line-height: 1.4; letter-spacing: normal; text-transform: none; color: var(--ld-navy); text-decoration: none; }
.ld-legal-body__breadcrumb a:first-of-type { margin-block-start: var(--ld-sp-8); }
.ld-legal-body__breadcrumb a:hover { border-inline-start-color: var(--ld-navy); text-decoration: underline; }
.ld-legal-body__breadcrumb a:focus-visible { outline: var(--ld-border-2) solid var(--ld-focus); outline-offset: var(--ld-sp-2); }
/* Form sections: the grid background (::before, absolute) had no positioned parent, so it spread over the sections above and blocked clicks (Support "Request support" button). Anchor it to its own section and keep it behind the content. */
.ld-form-section { position: relative; isolation: isolate; }
.ld-form-section::before { z-index: -1; pointer-events: none; }

/* Stock Information: TradingView live quote in each quote box (replaces the design's "Last / Change / Volume" placeholder line). */
.ld-stock-quotes__live { min-height: var(--ld-size-92); }
.ld-stock-quotes__live .tradingview-widget-copyright { margin: var(--ld-sp-4) 0 0; text-align: start; font-size: var(--ld-fs-xs); color: var(--ld-grey-600); }
.ld-stock-quotes__live .tradingview-widget-copyright a { color: var(--ld-blue-700); }

/* Stock Information: TradingView one-year chart (DETX and SCAN tabs) in the design's empty chart frame. */
.ld-stock-quotes__chart { height: 420px !important; padding: var(--ld-sp-12); } /* TradingView sets height: 100% inline */
.ld-stock-quotes__chart-credit { margin: 0; padding: 0 var(--ld-sp-18) var(--ld-sp-12); font-size: var(--ld-fs-xs); color: var(--ld-grey-600); }
.ld-stock-quotes__chart-credit a { color: var(--ld-blue-700); }
@media (max-width: 600px) { .ld-stock-quotes__chart { height: 360px !important; padding: var(--ld-sp-6); } }
.ld-stock-quotes__chart .tradingview-widget-container__widget { height: 100%; }
.ld-stock-quotes__chart-credit { text-align: start; }
/* TradingView's own stylesheet greys out its credit line below the contrast minimum; use the site's text colours. */
.ld-stock-quotes .tradingview-widget-copyright, .ld-stock-quotes .tradingview-widget-copyright * { color: var(--ld-grey-600) !important; }
.ld-stock-quotes .tradingview-widget-copyright a, .ld-stock-quotes .tradingview-widget-copyright a * { color: var(--ld-blue-700) !important; }

/* Investors hero: TradingView live quote in each dark quote card (replaces the design's "Last / Change / Volume" placeholder line). */
.ld-hero-investors__live { min-height: var(--ld-size-92); }
.ld-hero-investors__live .tradingview-widget-copyright { margin: var(--ld-sp-4) 0 0; text-align: start; font-size: var(--ld-fs-xs); }
.ld-hero-investors__live .tradingview-widget-copyright, .ld-hero-investors__live .tradingview-widget-copyright * { color: var(--ld-ice) !important; }
.ld-hero-investors__live .tradingview-widget-copyright a, .ld-hero-investors__live .tradingview-widget-copyright a * { color: var(--ld-white) !important; }
/* Each live quote needs about 210 px; the two cards stack instead of squeezing when the hero column is narrower. */
.ld-hero-investors__grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr)) !important; }

/* ===== Homepage hero: walk-through photo across the top =====
   Add to the end of themes/liberty-defense/css/adjustments.css.
   The photo runs across the top of the homepage hero and fades into the grey grid; the grid lines carry up
   over the photo's lower edge. The headline sits on the faded photo with no box behind it.
   Photo: the T-Configuration walk-through photo already in the media library. */
.ld-hero-home { position: relative; isolation: isolate; }
.ld-hero-home::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: clamp(320px, 36vw, 520px);
	z-index: -2;
	background:
		linear-gradient(180deg, rgba(246,248,250,0) 30%, rgba(246,248,250,.72) 55%, rgba(246,248,250,.95) 78%, rgba(246,248,250,.97) 100%),
		linear-gradient(90deg, rgba(246,248,250,.55) 0%, rgba(246,248,250,0) 45%),
		url(/wp-content/uploads/ld-shared-photo-t-configuration-1214.jpg) center 30% / cover no-repeat;
	-webkit-mask-image: linear-gradient(180deg, #000 80%, transparent 100%);
	mask-image: linear-gradient(180deg, #000 80%, transparent 100%);
}
.ld-hero-home::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	background-image: linear-gradient(var(--ld-navy-a055) var(--ld-border-1), transparent var(--ld-border-1)), linear-gradient(90deg, var(--ld-navy-a055) var(--ld-border-1), transparent var(--ld-border-1));
	background-size: var(--ld-grid-size) var(--ld-grid-size);
	background-position: var(--ld-sp--1) var(--ld-sp--1);
	-webkit-mask-image: linear-gradient(180deg, transparent clamp(140px, 16vw, 240px), #000 clamp(320px, 36vw, 520px));
	mask-image: linear-gradient(180deg, transparent clamp(140px, 16vw, 240px), #000 clamp(320px, 36vw, 520px));
}
.ld-hero-home__inner { padding-top: clamp(180px, 19vw, 280px); align-items: start; }
.ld-hero-home__eyebrow { font-size: clamp(0.875rem, 0.8rem + 0.35vw, 1rem); letter-spacing: 0.18em; }