/*
 * Saburi brand surface sizing.
 * DB-backed through resources/views/partials/brand-surface-style.blade.php.
 *
 * Important:
 * - Home header/footer are separate from public header/footer.
 * - X/Y shift uses margins, not transform, so footer/header layout spacing follows the visual position.
 */

.saburi-brand-logo,
img[data-brand-surface],
.brand-logo,
.footer-brand-logo,
.app-brand-logo img {
  display: block;
  height: auto;
  max-width: 100%;
  object-fit: contain;
  object-position: center;
}

.app-brand {
  min-height: calc(var(--saburi-brand-admin-sidebar-max-height-px, 102) * 1px + 28px);
  padding-top: 8px;
  padding-bottom: 8px;
}

.app-brand-link {
  width: 100%;
}

.app-brand-logo,
.saburi-brand-frame {
  width: 100%;
  max-width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  overflow: visible;
}

.app-brand-logo img,
img[data-brand-surface="admin-sidebar"] {
  width: min(
    calc(var(--saburi-brand-admin-sidebar-width-percent, 100) * 1%),
    calc(var(--saburi-brand-admin-sidebar-max-width-px, 260) * 1px)
  );
  max-width: calc(var(--saburi-brand-admin-sidebar-max-width-px, 260) * 1px);
  max-height: calc(var(--saburi-brand-admin-sidebar-max-height-px, 102) * 1px);
  margin-left: calc(var(--saburi-brand-admin-sidebar-shift-x-px, 0) * 1px);
  margin-top: calc(var(--saburi-brand-admin-sidebar-shift-y-px, 0) * 1px);
}

.navbar-brand .app-brand-logo img,
img[data-brand-surface="admin-navbar"] {
  width: min(
    calc(var(--saburi-brand-admin-navbar-width-percent, 100) * 1%),
    calc(var(--saburi-brand-admin-navbar-max-width-px, 190) * 1px)
  );
  max-width: calc(var(--saburi-brand-admin-navbar-max-width-px, 190) * 1px);
  max-height: calc(var(--saburi-brand-admin-navbar-max-height-px, 56) * 1px);
  margin-left: calc(var(--saburi-brand-admin-navbar-shift-x-px, 0) * 1px);
  margin-top: calc(var(--saburi-brand-admin-navbar-shift-y-px, 0) * 1px);
}

/* /home header */
img[data-brand-surface="home-header"] {
  width: min(
    calc(var(--saburi-brand-home-header-width-percent, 120) * 1%),
    calc(var(--saburi-brand-home-header-max-width-px, 360) * 1px)
  );
  max-width: calc(var(--saburi-brand-home-header-max-width-px, 360) * 1px);
  max-height: calc(var(--saburi-brand-home-header-max-height-px, 120) * 1px);
  margin-left: calc(var(--saburi-brand-home-header-shift-x-px, -58) * 1px);
  margin-top: calc(var(--saburi-brand-home-header-shift-y-px, 0) * 1px);
}

/* /home footer */
img[data-brand-surface="home-footer"] {
  width: min(
    calc(var(--saburi-brand-home-footer-width-percent, 112) * 1%),
    calc(var(--saburi-brand-home-footer-max-width-px, 320) * 1px)
  );
  max-width: calc(var(--saburi-brand-home-footer-max-width-px, 320) * 1px);
  max-height: calc(var(--saburi-brand-home-footer-max-height-px, 96) * 1px);
  margin-left: calc(var(--saburi-brand-home-footer-shift-x-px, -28) * 1px);
  margin-top: calc(var(--saburi-brand-home-footer-shift-y-px, 0) * 1px);
  margin-bottom: 0.75rem;
}

/* Generic public page header: Track, Quote, Ship Now, etc. */
body:not(.saburi-admin-body) header img[src*="logo" i],
body:not(.saburi-admin-body) nav img[src*="logo" i],
body:not(.saburi-admin-body) .navbar img[src*="logo" i],
body:not(.saburi-admin-body) img[data-brand-surface="public-header"] {
  width: min(
    calc(var(--saburi-brand-public-header-width-percent, 125) * 1%),
    calc(var(--saburi-brand-public-header-max-width-px, 360) * 1px)
  );
  max-width: calc(var(--saburi-brand-public-header-max-width-px, 360) * 1px);
  max-height: calc(var(--saburi-brand-public-header-max-height-px, 112) * 1px);
  margin-left: calc(var(--saburi-brand-public-header-shift-x-px, -62) * 1px);
  margin-top: calc(var(--saburi-brand-public-header-shift-y-px, 0) * 1px);
}

/* Generic public page footer */
body:not(.saburi-admin-body) footer img[src*="logo" i],
body:not(.saburi-admin-body) img[data-brand-surface="public-footer"] {
  width: min(
    calc(var(--saburi-brand-public-footer-width-percent, 112) * 1%),
    calc(var(--saburi-brand-public-footer-max-width-px, 320) * 1px)
  );
  max-width: calc(var(--saburi-brand-public-footer-max-width-px, 320) * 1px);
  max-height: calc(var(--saburi-brand-public-footer-max-height-px, 96) * 1px);
  margin-left: calc(var(--saburi-brand-public-footer-shift-x-px, -28) * 1px);
  margin-top: calc(var(--saburi-brand-public-footer-shift-y-px, 0) * 1px);
  margin-bottom: 0.75rem;
}

body:not(.saburi-admin-body) footer {
  overflow: hidden;
}

img[data-brand-surface="customer-dashboard"] {
  width: min(
    calc(var(--saburi-brand-customer-dashboard-width-percent, 100) * 1%),
    calc(var(--saburi-brand-customer-dashboard-max-width-px, 230) * 1px)
  );
  max-width: calc(var(--saburi-brand-customer-dashboard-max-width-px, 230) * 1px);
  max-height: calc(var(--saburi-brand-customer-dashboard-max-height-px, 80) * 1px);
  margin-left: calc(var(--saburi-brand-customer-dashboard-shift-x-px, 0) * 1px);
  margin-top: calc(var(--saburi-brand-customer-dashboard-shift-y-px, 0) * 1px);
}

img[data-brand-surface="pdf-document"],
img[data-brand-surface="pdf-header"] {
  width: min(
    calc(var(--saburi-brand-pdf-document-width-percent, 100) * 1%),
    calc(var(--saburi-brand-pdf-document-max-width-px, 240) * 1px)
  );
  max-width: calc(var(--saburi-brand-pdf-document-max-width-px, 240) * 1px);
  max-height: calc(var(--saburi-brand-pdf-document-max-height-px, 86) * 1px);
  margin-left: calc(var(--saburi-brand-pdf-document-shift-x-px, 0) * 1px);
  margin-top: calc(var(--saburi-brand-pdf-document-shift-y-px, 0) * 1px);
}

img[data-brand-surface="qr-label"] {
  width: min(
    calc(var(--saburi-brand-qr-label-width-percent, 100) * 1%),
    calc(var(--saburi-brand-qr-label-max-width-px, 220) * 1px)
  );
  max-width: calc(var(--saburi-brand-qr-label-max-width-px, 220) * 1px);
  max-height: calc(var(--saburi-brand-qr-label-max-height-px, 82) * 1px);
  margin-left: calc(var(--saburi-brand-qr-label-shift-x-px, 0) * 1px);
  margin-top: calc(var(--saburi-brand-qr-label-shift-y-px, 0) * 1px);
}

/* === SABURI BRAND CHROME SPACING FIX START ===
 * Keep per-surface dials active, but do not let X/Y movement create real
 * layout margin/padding. This fixes the public header/footer gaps.
 */

body:not(.saburi-admin-body) a:has(> img[data-brand-surface]),
body:not(.saburi-admin-body) .brand:has(> img[data-brand-surface]),
body:not(.saburi-admin-body) .footer-brand:has(img[data-brand-surface]) {
  line-height: 0 !important;
}

body:not(.saburi-admin-body) img[data-brand-surface="home-header"],
body:not(.saburi-admin-body) img[data-brand-surface="home-footer"],
body:not(.saburi-admin-body) img[data-brand-surface="public-header"],
body:not(.saburi-admin-body) img[data-brand-surface="public-footer"],
body:not(.saburi-admin-body) header img[src*="logo" i],
body:not(.saburi-admin-body) nav img[src*="logo" i],
body:not(.saburi-admin-body) footer img[src*="logo" i] {
  margin: 0 !important;
  padding: 0 !important;
  line-height: 0 !important;
  vertical-align: top !important;
}

/* /home header logo: visual shift only, no layout shift */
body:not(.saburi-admin-body) img[data-brand-surface="home-header"] {
  transform:
    translateX(calc(var(--saburi-brand-home-header-shift-x-px, -58) * 1px))
    translateY(calc(var(--saburi-brand-home-header-shift-y-px, 0) * 1px)) !important;
}

/* /home footer logo: visual shift only, no layout shift */
body:not(.saburi-admin-body) img[data-brand-surface="home-footer"] {
  transform:
    translateX(calc(var(--saburi-brand-home-footer-shift-x-px, -28) * 1px))
    translateY(calc(var(--saburi-brand-home-footer-shift-y-px, 0) * 1px)) !important;
}

/* Generic public page header logo: visual shift only, no layout shift */
body:not(.saburi-admin-body) img[data-brand-surface="public-header"],
body:not(.saburi-admin-body) header img[src*="logo" i],
body:not(.saburi-admin-body) nav img[src*="logo" i] {
  transform:
    translateX(calc(var(--saburi-brand-public-header-shift-x-px, -62) * 1px))
    translateY(calc(var(--saburi-brand-public-header-shift-y-px, 0) * 1px)) !important;
}

/* Generic public page footer logo: visual shift only, no layout shift */
body:not(.saburi-admin-body) img[data-brand-surface="public-footer"],
body:not(.saburi-admin-body) footer img[src*="logo" i] {
  transform:
    translateX(calc(var(--saburi-brand-public-footer-shift-x-px, -28) * 1px))
    translateY(calc(var(--saburi-brand-public-footer-shift-y-px, 0) * 1px)) !important;
}

/* Tighten top public nav bars that only contain logo/nav. */
body:not(.saburi-admin-body) header:has(img[data-brand-surface="public-header"]),
body:not(.saburi-admin-body) nav:has(img[data-brand-surface="public-header"]),
body:not(.saburi-admin-body) .topbar:has(img[data-brand-surface="home-header"]) {
  min-height: 0 !important;
}

/* Do not let the logo image create phantom footer height. */
body:not(.saburi-admin-body) footer .footer-brand,
body:not(.saburi-admin-body) .footer-brand {
  margin-top: 0 !important;
  margin-bottom: 0.85rem !important;
}

body:not(.saburi-admin-body) footer img[data-brand-surface="home-footer"],
body:not(.saburi-admin-body) footer img[data-brand-surface="public-footer"] {
  margin-bottom: 0.35rem !important;
}

/* Reduce bottom-heavy public footer chrome without changing its structure. */
body:not(.saburi-admin-body) footer {
  overflow: hidden;
}

body:not(.saburi-admin-body) footer .container,
body:not(.saburi-admin-body) footer .content,
body:not(.saburi-admin-body) footer .footer-inner {
  padding-bottom: 0 !important;
}

/* === SABURI BRAND CHROME SPACING FIX END === */

/* === SABURI BRAND FOOTER MARGIN START START ===
 * User-tested starting values.
 * Keep these separated by surface so /home and generic public pages can tune independently.
 */

/* /home footer */
body:not(.saburi-admin-body) footer .footer-brand:has(img[data-brand-surface="home-footer"]),
body:not(.saburi-admin-body) .footer-brand:has(img[data-brand-surface="home-footer"]) {
  margin-top: 0 !important;
  margin-bottom: -3rem !important;
}

/* Generic public-page footer: track, quote, ship-now, etc. */
body:not(.saburi-admin-body) footer .footer-brand:has(img[data-brand-surface="public-footer"]),
body:not(.saburi-admin-body) .footer-brand:has(img[data-brand-surface="public-footer"]) {
  margin-top: 0 !important;
  margin-bottom: -2rem !important;
}

/* Defensive fallback for footer logos that are not inside .footer-brand. */
body:not(.saburi-admin-body) footer img[data-brand-surface="home-footer"] {
  margin-top: 0 !important;
}

body:not(.saburi-admin-body) footer img[data-brand-surface="public-footer"] {
  margin-top: 0 !important;
}

/* === SABURI BRAND FOOTER MARGIN START END === */

/* === SABURI BRAND HOME PUBLIC HEADER CHROME FIX START ===
 * Final chrome-level binding fix.
 *
 * Problem:
 * - The homepage has its own .hero-inner/.topbar/.brand-logo geometry.
 * - Logo surface dials were applied to the image, but the wrapper still had
 *   old spacing and sizing assumptions.
 *
 * Approach:
 * - Give logo wrappers a real max-width-based box.
 * - Let Width % scale inside that box.
 * - Use transform only for visual X/Y movement.
 * - Keep layout padding tight and predictable.
 */

/* HOME: pull the top chrome closer to the top edge. */
body:not(.saburi-admin-body) .hero .hero-inner {
  padding-top: 6px !important;
}

body:not(.saburi-admin-body) .hero .topbar {
  padding: 0 !important;
  margin-top: -8px !important;
  align-items: flex-start !important;
}

/* HOME: remove the hidden right-side shove from the nav/ticker block. */
body:not(.saburi-admin-body) .hero .nav-side {
  padding-right: 0 !important;
  gap: 0 !important;
}

/* HOME: make the header logo use a real surface box. */
body:not(.saburi-admin-body) .hero .brand:has(> img[data-brand-surface="home-header"]) {
  width: calc(var(--saburi-brand-home-header-max-width-px, 360) * 1px) !important;
  max-width: calc(var(--saburi-brand-home-header-max-width-px, 360) * 1px) !important;
  min-width: 0 !important;
  line-height: 0 !important;
  align-items: flex-start !important;
  gap: 0 !important;
  overflow: visible !important;
}

body:not(.saburi-admin-body) .hero img[data-brand-surface="home-header"] {
  width: calc(var(--saburi-brand-home-header-width-percent, 140) * 1%) !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: calc(var(--saburi-brand-home-header-max-height-px, 140) * 1px) !important;
  margin: 0 !important;
  padding: 0 !important;
  transform:
    translateX(calc(var(--saburi-brand-home-header-shift-x-px, -58) * 1px))
    translateY(calc(var(--saburi-brand-home-header-shift-y-px, 0) * 1px)) !important;
}

/* HOME: keep ticker tight under nav. */
body:not(.saburi-admin-body) .hero .ticker {
  margin-top: 0 !important;
  padding-top: 0 !important;
  min-height: 18px !important;
  height: 20px !important;
}

body:not(.saburi-admin-body) .hero .ticker-rotator {
  padding-top: 2px !important;
  margin-top: 0 !important;
}

/* PUBLIC PAGES: tighten dark header bars and make public header dials real. */
body:not(.saburi-admin-body) header:has(img[data-brand-surface="public-header"]),
body:not(.saburi-admin-body) nav:has(img[data-brand-surface="public-header"]) {
  padding-top: 4px !important;
  padding-bottom: 4px !important;
  min-height: 0 !important;
}

body:not(.saburi-admin-body) header a:has(> img[data-brand-surface="public-header"]),
body:not(.saburi-admin-body) nav a:has(> img[data-brand-surface="public-header"]) {
  width: calc(var(--saburi-brand-public-header-max-width-px, 360) * 1px) !important;
  max-width: calc(var(--saburi-brand-public-header-max-width-px, 360) * 1px) !important;
  min-width: 0 !important;
  line-height: 0 !important;
  overflow: visible !important;
}

body:not(.saburi-admin-body) img[data-brand-surface="public-header"] {
  width: calc(var(--saburi-brand-public-header-width-percent, 140) * 1%) !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: calc(var(--saburi-brand-public-header-max-height-px, 140) * 1px) !important;
  margin: 0 !important;
  padding: 0 !important;
  transform:
    translateX(calc(var(--saburi-brand-public-header-shift-x-px, -58) * 1px))
    translateY(calc(var(--saburi-brand-public-header-shift-y-px, 0) * 1px)) !important;
}

/* FOOTERS: preserve tested starting values. */
body:not(.saburi-admin-body) footer .footer-brand:has(img[data-brand-surface="home-footer"]),
body:not(.saburi-admin-body) .footer-brand:has(img[data-brand-surface="home-footer"]) {
  margin-top: 0 !important;
  margin-bottom: -3rem !important;
}

body:not(.saburi-admin-body) footer .footer-brand:has(img[data-brand-surface="public-footer"]),
body:not(.saburi-admin-body) .footer-brand:has(img[data-brand-surface="public-footer"]) {
  margin-top: 0 !important;
  margin-bottom: -2rem !important;
}

/* Footer logo wrapper: also make footer dials predictable. */
body:not(.saburi-admin-body) footer .footer-brand:has(img[data-brand-surface="home-footer"]) {
  width: calc(var(--saburi-brand-home-footer-max-width-px, 320) * 1px) !important;
  max-width: calc(var(--saburi-brand-home-footer-max-width-px, 320) * 1px) !important;
  line-height: 0 !important;
  overflow: visible !important;
}

body:not(.saburi-admin-body) footer .footer-brand:has(img[data-brand-surface="public-footer"]) {
  width: calc(var(--saburi-brand-public-footer-max-width-px, 320) * 1px) !important;
  max-width: calc(var(--saburi-brand-public-footer-max-width-px, 320) * 1px) !important;
  line-height: 0 !important;
  overflow: visible !important;
}

body:not(.saburi-admin-body) footer img[data-brand-surface="home-footer"] {
  width: calc(var(--saburi-brand-home-footer-width-percent, 130) * 1%) !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: calc(var(--saburi-brand-home-footer-max-height-px, 130) * 1px) !important;
  margin: 0 !important;
  padding: 0 !important;
  transform:
    translateX(calc(var(--saburi-brand-home-footer-shift-x-px, -28) * 1px))
    translateY(calc(var(--saburi-brand-home-footer-shift-y-px, 0) * 1px)) !important;
}

body:not(.saburi-admin-body) footer img[data-brand-surface="public-footer"] {
  width: calc(var(--saburi-brand-public-footer-width-percent, 130) * 1%) !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: calc(var(--saburi-brand-public-footer-max-height-px, 130) * 1px) !important;
  margin: 0 !important;
  padding: 0 !important;
  transform:
    translateX(calc(var(--saburi-brand-public-footer-shift-x-px, -28) * 1px))
    translateY(calc(var(--saburi-brand-public-footer-shift-y-px, 0) * 1px)) !important;
}

/* === SABURI BRAND HOME PUBLIC HEADER CHROME FIX END === */

/* === SABURI HOME TOPBAR TESTED MARGIN START ===
 * User-tested homepage header value.
 * Keep this at the end of the brand surface CSS so it wins over earlier
 * topbar/header chrome experiments.
 */
body:not(.saburi-admin-body) .hero .topbar {
  padding: 0 !important;
  margin-top: 18px !important;
  align-items: flex-start !important;
}
/* === SABURI HOME TOPBAR TESTED MARGIN END === */

/* === SABURI PUBLIC FIXED HEADER OVERLAP FIX START ===
 * Public pages use Bootstrap fixed-top header chrome.
 * After logo sizing became adjustable, the old content offset was too small,
 * so the fixed header could cover page titles and first content.
 */

body:not(.saburi-admin-body) {
  --saburi-public-fixed-header-reserve: clamp(
    126px,
    calc(var(--saburi-brand-public-header-max-height-px, 140) * 1px + 24px),
    164px
  );
}

/* Keep the visual header predictable. */
body:not(.saburi-admin-body) .sc-navbar.fixed-top {
  min-height: auto !important;
  padding-top: 8px !important;
  padding-bottom: 8px !important;
  z-index: 1040 !important;
}

/* Reserve enough space below fixed public nav on standard public pages. */
body.sc-route-track .sc-main,
body.sc-route-quote .sc-main,
body.sc-route-ship-now .sc-main,
body.sc-route-services .sc-main,
body.sc-route-contact .sc-main,
body.sc-route-faq .sc-main,
body.sc-route-blog .sc-main,
body.sc-route-prohibited-items .sc-main,
body.sc-route-privacy-policy .sc-main,
body.sc-route-terms-of-service .sc-main {
  padding-top: var(--saburi-public-fixed-header-reserve) !important;
}

/* Once main reserves the fixed header, the page hero should not add another huge offset. */
body.sc-route-track .sc-page-hero,
body.sc-route-services .sc-page-hero,
body.sc-route-contact .sc-page-hero,
body.sc-route-faq .sc-page-hero,
body.sc-route-blog .sc-page-hero,
body.sc-route-prohibited-items .sc-page-hero,
body.sc-route-privacy-policy .sc-page-hero,
body.sc-route-terms-of-service .sc-page-hero {
  padding-top: 0.85rem !important;
  padding-bottom: 1.25rem !important;
}

/* Quote and Ship Now use custom top panels, so keep their first block safely below nav. */
body.sc-route-quote main > *:first-child,
body.sc-route-ship-now main > *:first-child,
body.sc-route-quote section:first-of-type,
body.sc-route-ship-now section:first-of-type {
  margin-top: 0 !important;
  padding-top: 0.85rem !important;
}

/* Standard public page first section should start below, not under, the fixed bar. */
body.sc-route-track main > *:first-child,
body.sc-route-services main > *:first-child,
body.sc-route-contact main > *:first-child,
body.sc-route-faq main > *:first-child,
body.sc-route-blog main > *:first-child,
body.sc-route-prohibited-items main > *:first-child,
body.sc-route-privacy-policy main > *:first-child,
body.sc-route-terms-of-service main > *:first-child {
  margin-top: 0 !important;
}

/* Prevent old page-level header scripts from pulling plain headers up under the fixed nav. */
body.sc-route-track .sc-standard-hero,
body.sc-route-quote .sc-standard-hero,
body.sc-route-ship-now .sc-standard-hero,
body.sc-route-services .sc-standard-hero,
body.sc-route-contact .sc-standard-hero,
body.sc-route-faq .sc-standard-hero,
body.sc-route-blog .sc-standard-hero,
body.sc-route-prohibited-items .sc-standard-hero,
body.sc-route-privacy-policy .sc-standard-hero,
body.sc-route-terms-of-service .sc-standard-hero {
  margin-top: 0 !important;
}

/* Mobile reserve can be a touch smaller, but still must clear the fixed nav. */
@media (max-width: 767.98px) {
  body:not(.saburi-admin-body) {
    --saburi-public-fixed-header-reserve: clamp(
      104px,
      calc(var(--saburi-brand-public-header-max-height-px, 100) * 1px + 18px),
      138px
    );
  }

  body:not(.saburi-admin-body) .sc-navbar.fixed-top {
    padding-top: 6px !important;
    padding-bottom: 6px !important;
  }
}

/* === SABURI PUBLIC FIXED HEADER OVERLAP FIX END === */

/* === SABURI PUBLIC HEADER TOPBAR BOTTOM TRIM START ===
 * User-tested public header starting point:
 * .topbar padding: 20px 6px
 *
 * The bottom of the blue header was still too tall, so trim the navbar
 * bottom chrome separately while preserving the tested topbar row.
 */

body:not(.saburi-admin-body) .sc-navbar.fixed-top {
  min-height: 0 !important;
  height: auto !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

body:not(.saburi-admin-body) .sc-navbar.fixed-top .topbar {
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 20px !important;
  width: 100% !important;
  padding: 20px 6px !important;
}

/* Remove dead bottom space created by line-height/collapse wrappers. */
body:not(.saburi-admin-body) .sc-navbar.fixed-top .container,
body:not(.saburi-admin-body) .sc-navbar.fixed-top .navbar-collapse,
body:not(.saburi-admin-body) .sc-navbar.fixed-top .nav-side,
body:not(.saburi-admin-body) .sc-navbar.fixed-top .nav {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

body:not(.saburi-admin-body) .sc-navbar.fixed-top .brand {
  line-height: 0 !important;
  align-items: flex-start !important;
}

/* Pull the dark bar's lower edge closer to the actual header contents. */
body:not(.saburi-admin-body) .sc-navbar.fixed-top {
  margin-bottom: -22px !important;
}

/* Because the fixed header is visually shorter now, reduce the reserved top space. */
body:not(.saburi-admin-body) {
  --saburi-public-fixed-header-reserve: clamp(
    102px,
    calc(var(--saburi-brand-public-header-max-height-px, 140) * 1px + 2px),
    132px
  );
}

@media (max-width: 767.98px) {
  body:not(.saburi-admin-body) .sc-navbar.fixed-top .topbar {
    padding: 14px 6px !important;
  }

  body:not(.saburi-admin-body) .sc-navbar.fixed-top {
    margin-bottom: -14px !important;
  }

  body:not(.saburi-admin-body) {
    --saburi-public-fixed-header-reserve: clamp(
      88px,
      calc(var(--saburi-brand-public-header-max-height-px, 100) * 1px + 4px),
      116px
    );
  }
}

/* === SABURI PUBLIC HEADER TOPBAR BOTTOM TRIM END === */

/* === SABURI PUBLIC TOPBAR BOTTOM PADDING TRIM START ===
 * User-directed adjustment:
 * - Keep the public topbar top padding at 20px.
 * - Reduce only the bottom padding.
 * - Do not change .sc-main padding/reserve or page-title position.
 */
body:not(.saburi-admin-body) .sc-navbar.fixed-top .topbar {
  padding: 20px 6px 4px 6px !important;
}

/* Keep the public fixed header itself from adding extra bottom chrome. */
body:not(.saburi-admin-body) .sc-navbar.fixed-top {
  padding-bottom: 0 !important;
}

body:not(.saburi-admin-body) .sc-navbar.fixed-top .container,
body:not(.saburi-admin-body) .sc-navbar.fixed-top .navbar-collapse,
body:not(.saburi-admin-body) .sc-navbar.fixed-top .nav-side,
body:not(.saburi-admin-body) .sc-navbar.fixed-top .nav {
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}

@media (max-width: 767.98px) {
  body:not(.saburi-admin-body) .sc-navbar.fixed-top .topbar {
    padding: 14px 6px 4px 6px !important;
  }
}
/* === SABURI PUBLIC TOPBAR BOTTOM PADDING TRIM END === */

/* === SABURI PUBLIC TOPBAR AGGRESSIVE TIGHTEN START ===
 * Tighten public fixed header only.
 * Do not alter .sc-main padding/reserve or page title position.
 */

body:not(.saburi-admin-body) .sc-navbar.fixed-top {
  min-height: 0 !important;
  height: auto !important;
  padding: 0 !important;
  border-bottom-width: 0 !important;
}

body:not(.saburi-admin-body) .sc-navbar.fixed-top .topbar {
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 20px !important;
  width: 100% !important;
  min-height: 0 !important;
  padding: 14px 6px 0 6px !important;
}

/* Cap the row box. The uploaded logo can have internal whitespace, which was
   keeping the blue header taller than the visible logo/nav needed. */
body:not(.saburi-admin-body) .sc-navbar.fixed-top .brand {
  height: 62px !important;
  max-height: 62px !important;
  min-height: 0 !important;
  line-height: 0 !important;
  align-items: flex-start !important;
  overflow: visible !important;
}

body:not(.saburi-admin-body) .sc-navbar.fixed-top img[data-brand-surface="public-header"] {
  max-height: 76px !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Remove dead bottom from nav/collapse wrappers. */
body:not(.saburi-admin-body) .sc-navbar.fixed-top .container,
body:not(.saburi-admin-body) .sc-navbar.fixed-top .navbar-collapse,
body:not(.saburi-admin-body) .sc-navbar.fixed-top .nav-side,
body:not(.saburi-admin-body) .sc-navbar.fixed-top .nav {
  min-height: 0 !important;
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

body:not(.saburi-admin-body) .sc-navbar.fixed-top .nav-side {
  gap: 0 !important;
}

body:not(.saburi-admin-body) .sc-navbar.fixed-top .nav {
  line-height: 1 !important;
  align-items: flex-start !important;
}

/* Keep mobile sane. */
@media (max-width: 767.98px) {
  body:not(.saburi-admin-body) .sc-navbar.fixed-top .topbar {
    padding: 10px 6px 0 6px !important;
  }

  body:not(.saburi-admin-body) .sc-navbar.fixed-top .brand {
    height: 52px !important;
    max-height: 52px !important;
  }

  body:not(.saburi-admin-body) .sc-navbar.fixed-top img[data-brand-surface="public-header"] {
    max-height: 64px !important;
  }
}

/* === SABURI PUBLIC TOPBAR AGGRESSIVE TIGHTEN END === */

/* === SABURI PUBLIC HEADER PADDING VARIABLE LOGO FIX START ===
 * User-tested direction:
 * - Header chrome owns top spacing: padding: 30px 0 0 0.
 * - Do not hard cap the public header logo at 76px.
 * - Let /admin/settings/branding control public header logo height.
 * - Do not touch .sc-main reserve/page-title position.
 */

body:not(.saburi-admin-body) .sc-navbar.fixed-top {
  min-height: 0 !important;
  height: auto !important;
  padding: 30px 0 0 0 !important;
  border-bottom-width: 0 !important;
}

/* Topbar should not add another vertical padding layer on top of .sc-navbar. */
body:not(.saburi-admin-body) .sc-navbar.fixed-top .topbar {
  padding: 0 6px 0 6px !important;
  min-height: 0 !important;
  align-items: flex-start !important;
}

/* Keep public logo sizing controlled by branding settings, not a hard 76px cap. */
body:not(.saburi-admin-body) .sc-navbar.fixed-top img[data-brand-surface="public-header"] {
  max-height: calc(var(--saburi-brand-public-header-max-height-px, 140) * 1px) !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Keep the logo wrapper tight without changing the logo itself. */
body:not(.saburi-admin-body) .sc-navbar.fixed-top .brand {
  min-height: 0 !important;
  line-height: 0 !important;
  align-items: flex-start !important;
  overflow: visible !important;
}

/* Remove bottom contribution from nav wrappers only. */
body:not(.saburi-admin-body) .sc-navbar.fixed-top .container,
body:not(.saburi-admin-body) .sc-navbar.fixed-top .navbar-collapse,
body:not(.saburi-admin-body) .sc-navbar.fixed-top .nav-side,
body:not(.saburi-admin-body) .sc-navbar.fixed-top .nav {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

/* === SABURI PUBLIC HEADER PADDING VARIABLE LOGO FIX END === */

/* === SABURI PUBLIC HERO PLAIN MOVE UP START ===
 * Public page content correction:
 * - remove sc-page-hero background and border
 * - reduce vertical reserve so body starts higher
 * - keep fixed header/logo position untouched
 */

body:not(.saburi-admin-body) {
  --saburi-public-fixed-header-reserve: clamp(
    88px,
    calc(var(--saburi-brand-public-header-max-height-px, 140) * 1px - 26px),
    118px
  );
}

body.sc-route-track .sc-main,
body.sc-route-quote .sc-main,
body.sc-route-ship-now .sc-main,
body.sc-route-services .sc-main,
body.sc-route-contact .sc-main,
body.sc-route-faq .sc-main,
body.sc-route-blog .sc-main,
body.sc-route-prohibited-items .sc-main,
body.sc-route-privacy-policy .sc-main,
body.sc-route-terms-of-service .sc-main {
  padding-top: var(--saburi-public-fixed-header-reserve) !important;
}

/* Make the page hero plain text, not a visible band/card. */
body:not(.saburi-admin-body) .sc-page-hero {
  background: transparent !important;
  border: 0 !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
  padding-top: 0.25rem !important;
  padding-bottom: 0.85rem !important;
}

/* Keep title text compact and close to the content. */
body:not(.saburi-admin-body) .sc-page-hero h1 {
  margin-bottom: 0.35rem !important;
}

body:not(.saburi-admin-body) .sc-page-hero p {
  margin-bottom: 0 !important;
}

/* Pull the first actual content card closer to the hero text. */
body.sc-route-track .track-page-section,
body.sc-route-services .sc-page-shell,
body.sc-route-contact .sc-page-shell,
body.sc-route-faq .sc-page-shell,
body.sc-route-blog .sc-page-shell,
body.sc-route-prohibited-items .sc-page-shell {
  padding-top: 0.4rem !important;
}

/* Quote and Ship Now have custom bodies. Move only the first content block up. */
body.sc-route-quote main > *:first-child,
body.sc-route-ship-now main > *:first-child,
body.sc-route-quote section:first-of-type,
body.sc-route-ship-now section:first-of-type {
  padding-top: 0.4rem !important;
}

/* Mobile reserve stays safe but still tighter. */
@media (max-width: 767.98px) {
  body:not(.saburi-admin-body) {
    --saburi-public-fixed-header-reserve: clamp(
      78px,
      calc(var(--saburi-brand-public-header-max-height-px, 100) * 1px - 12px),
      104px
    );
  }

  body:not(.saburi-admin-body) .sc-page-hero {
    padding-top: 0.2rem !important;
    padding-bottom: 0.65rem !important;
  }
}

/* === SABURI PUBLIC HERO PLAIN MOVE UP END === */

/* === SABURI PUBLIC BODY MOVE UP MORE START ===
 * Final public content nudge:
 * - Header/logo position is now acceptable.
 * - Move only the page content reserve upward a little more.
 */

body:not(.saburi-admin-body) {
  --saburi-public-fixed-header-reserve: clamp(
    78px,
    calc(var(--saburi-brand-public-header-max-height-px, 140) * 1px - 40px),
    104px
  );
}

body.sc-route-track .sc-main,
body.sc-route-quote .sc-main,
body.sc-route-ship-now .sc-main,
body.sc-route-services .sc-main,
body.sc-route-contact .sc-main,
body.sc-route-faq .sc-main,
body.sc-route-blog .sc-main,
body.sc-route-prohibited-items .sc-main,
body.sc-route-privacy-policy .sc-main,
body.sc-route-terms-of-service .sc-main {
  padding-top: var(--saburi-public-fixed-header-reserve) !important;
}

/* Keep hero itself plain and compact. */
body:not(.saburi-admin-body) .sc-page-hero {
  padding-top: 0 !important;
  padding-bottom: 0.7rem !important;
  background: transparent !important;
  border: 0 !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
}

/* Bring the first real content block a touch closer. */
body.sc-route-track .track-page-section,
body.sc-route-services .sc-page-shell,
body.sc-route-contact .sc-page-shell,
body.sc-route-faq .sc-page-shell,
body.sc-route-blog .sc-page-shell,
body.sc-route-prohibited-items .sc-page-shell {
  padding-top: 0.2rem !important;
}

@media (max-width: 767.98px) {
  body:not(.saburi-admin-body) {
    --saburi-public-fixed-header-reserve: clamp(
      72px,
      calc(var(--saburi-brand-public-header-max-height-px, 100) * 1px - 18px),
      96px
    );
  }
}
/* === SABURI PUBLIC BODY MOVE UP MORE END === */

/* === SABURI PUBLIC BODY FINAL NUDGE START ===
 * Tiny final nudge only.
 * Header/logo/footer stay unchanged.
 */
body:not(.saburi-admin-body) {
  --saburi-public-fixed-header-reserve: clamp(
    70px,
    calc(var(--saburi-brand-public-header-max-height-px, 140) * 1px - 52px),
    96px
  );
}

body.sc-route-track .sc-main,
body.sc-route-quote .sc-main,
body.sc-route-ship-now .sc-main,
body.sc-route-services .sc-main,
body.sc-route-contact .sc-main,
body.sc-route-faq .sc-main,
body.sc-route-blog .sc-main,
body.sc-route-prohibited-items .sc-main,
body.sc-route-privacy-policy .sc-main,
body.sc-route-terms-of-service .sc-main {
  padding-top: var(--saburi-public-fixed-header-reserve) !important;
}

body:not(.saburi-admin-body) .sc-page-hero {
  padding-top: 0 !important;
  padding-bottom: 0.55rem !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

body.sc-route-track .track-page-section,
body.sc-route-services .sc-page-shell,
body.sc-route-contact .sc-page-shell,
body.sc-route-faq .sc-page-shell,
body.sc-route-blog .sc-page-shell,
body.sc-route-prohibited-items .sc-page-shell {
  padding-top: 0 !important;
}

@media (max-width: 767.98px) {
  body:not(.saburi-admin-body) {
    --saburi-public-fixed-header-reserve: clamp(
      68px,
      calc(var(--saburi-brand-public-header-max-height-px, 100) * 1px - 24px),
      88px
    );
  }
}
/* === SABURI PUBLIC BODY FINAL NUDGE END === */

/* ===

/* ===

/* === SABURI SECONDARY PAGE TITLE POSITION SINGLE SOURCE START ===
 * Final single source of truth for secondary public page vertical position.
 *
 * Scope:
 * - /services
 * - /contact
 * - /faq
 * - /prohibited-items
 * - /blog
 * - /about
 *
 * Do not affect:
 * - /track
 * - public fixed header
 * - logo controls
 * - footer
 */

/* Use the real page-title wrappers found by inspection. */
body.sc-route-services .services-hero,
body.sc-route-contact .contact-hero,
body.sc-route-faq .faq-hero {
  padding-top: 3rem !important;
  padding-bottom: 0.65rem !important;
  margin-top: 0 !important;
}

body.sc-route-prohibited-items .prohibited-hero {
  padding-top: 3rem !important;
  padding-bottom: 0.65rem !important;
  margin-top: 0 !important;
}

body.sc-route-blog .saburi-blog-hero {
  padding-top: 3rem !important;
  padding-bottom: 0.75rem !important;
  margin-top: 0 !important;
}

body.sc-route-about .sc-page-hero {
  padding-top: 3rem !important;
  padding-bottom: 0.65rem !important;
  margin-top: 0 !important;
}

/* Keep the old accidental brand title hidden on Blog. */
body.sc-route-blog .sc-page-hero {
  display: none !important;
}

/* Keep custom page chrome plain and aligned. */
body.sc-route-services .services-hero,
body.sc-route-contact .contact-hero,
body.sc-route-faq .faq-hero,
body.sc-route-prohibited-items .prohibited-hero,
body.sc-route-blog .saburi-blog-hero,
body.sc-route-about .sc-page-hero {
  background: transparent !important;
  border: 0 !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
}

/* Title styling consistency. */
body.sc-route-services .services-title,
body.sc-route-contact .contact-title,
body.sc-route-faq .faq-title,
body.sc-route-prohibited-items .prohibited-hero h1,
body.sc-route-blog .saburi-blog-hero h1,
body.sc-route-about .sc-page-hero h1 {
  margin-top: 0 !important;
  margin-bottom: 0.35rem !important;
  color: #1f2f67 !important;
  font-size: clamp(1.15rem, 1.9vw, 1.55rem) !important;
  line-height: 1.15 !important;
  font-weight: 850 !important;
  letter-spacing: -0.025em !important;
}

/* Subtitle styling consistency. */
body.sc-route-services .services-intro,
body.sc-route-contact .contact-intro,
body.sc-route-faq .faq-intro,
body.sc-route-prohibited-items .prohibited-hero p,
body.sc-route-blog .saburi-blog-hero p,
body.sc-route-about .sc-page-hero p {
  max-width: 780px !important;
  margin: 0 !important;
  color: #5f6f99 !important;
  font-size: 0.84rem !important;
  line-height: 1.55 !important;
}

/* Let first content follow naturally from title area. */
body.sc-route-services .services-block,
body.sc-route-contact .contact-page-shell > .container,
body.sc-route-faq .faq-page-shell > .container,
body.sc-route-prohibited-items .prohibited-search,
body.sc-route-about .about-page-shell,
body.sc-route-blog .saburi-blog-toggle {
  margin-top: 0.35rem !important;
}

/* Prohibited custom kicker stays hidden. */
body.sc-route-prohibited-items .prohibited-kicker {
  display: none !important;
}

/* Keep page shells from adding their old top stacks. */
body.sc-route-services .services-page-shell,
body.sc-route-contact .contact-page-shell,
body.sc-route-faq .faq-page-shell,
body.sc-route-prohibited-items .prohibited-page,
body.sc-route-about .about-page-shell {
  padding-top: 0 !important;
}

@media (max-width: 767.98px) {
  body.sc-route-services .services-hero,
  body.sc-route-contact .contact-hero,
  body.sc-route-faq .faq-hero,
  body.sc-route-prohibited-items .prohibited-hero,
  body.sc-route-blog .saburi-blog-hero,
  body.sc-route-about .sc-page-hero {
    padding-top: 1.5rem !important;
  }
}

/* === SABURI SECONDARY PAGE TITLE POSITION SINGLE SOURCE END === */

/* === SABURI ABOUT ONLY TITLE POSITION FIX START ===
 * About uses a different structure:
 * .sc-page-hero + .about-page-shell
 *
 * Keep all other secondary pages as-is.
 */

body.sc-route-about .sc-page-hero {
  display: block !important;
  padding-top: 4rem !important;
  padding-bottom: 0.75rem !important;
  margin-top: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
}

body.sc-route-about .sc-page-hero h1 {
  margin-top: 0 !important;
  margin-bottom: 0.35rem !important;
  color: #1f2f67 !important;
  font-size: clamp(1.15rem, 1.9vw, 1.55rem) !important;
  line-height: 1.15 !important;
  font-weight: 850 !important;
  letter-spacing: -0.025em !important;
}

body.sc-route-about .sc-page-hero p {
  max-width: 780px !important;
  margin: 0 !important;
  color: #5f6f99 !important;
  font-size: 0.84rem !important;
  line-height: 1.55 !important;
}

body.sc-route-about .about-page-shell {
  padding-top: 0.35rem !important;
  margin-top: 0 !important;
}

@media (max-width: 767.98px) {
  body.sc-route-about .sc-page-hero {
    padding-top: 2rem !important;
  }
}

/* === SABURI ABOUT ONLY TITLE POSITION FIX END === */

/* === SABURI ABOUT TITLE TEXT LINE FINAL START ===
 * About-only final title/text adjustment.
 * Requested:
 * - h1 margin-top: 3rem
 * - intro line stays on one line on desktop
 */

body.sc-route-about .sc-page-hero h1 {
  margin-top: 3rem !important;
  margin-bottom: 0.35rem !important;
  color: #1f2f67 !important;
  font-size: clamp(1.15rem, 1.9vw, 1.55rem) !important;
  line-height: 1.15 !important;
  font-weight: 850 !important;
  letter-spacing: -0.025em !important;
}

body.sc-route-about .sc-page-hero p {
  max-width: none !important;
  width: 100% !important;
  white-space: nowrap !important;
  overflow: visible !important;
  margin: 0 !important;
  color: #5f6f99 !important;
  font-size: 0.84rem !important;
  line-height: 1.55 !important;
}

/* Preserve the about shell directly under the adjusted title area. */
body.sc-route-about .about-page-shell {
  padding-top: 0.35rem !important;
  margin-top: 0 !important;
}

@media (max-width: 991.98px) {
  body.sc-route-about .sc-page-hero p {
    white-space: normal !important;
  }
}

@media (max-width: 767.98px) {
  body.sc-route-about .sc-page-hero h1 {
    margin-top: 1.5rem !important;
  }
}

/* === SABURI ABOUT TITLE TEXT LINE FINAL END === */

/* === SABURI SERVICES INTRO STANDARD HERO WIDTH FIX START ===
 * Services page only.
 *
 * The public header JS wraps the Services h1 + .services-intro in .sc-standard-hero.
 * The inline public-header CSS then limits .sc-standard-hero .services-intro.
 * This selector is intentionally more specific, but does not change hero/container position.
 */

body.sc-route-services.sc-public-header-standard-page .services-page-shell .services-hero .sc-standard-hero .services-intro,
body.sc-route-services.sc-public-header-standard-page .sc-standard-hero .services-intro {
  width: 100% !important;
  max-width: 1250px !important;
  margin: 0 !important;
  color: #5f6f99 !important;
  font-size: 0.84rem !important;
  line-height: 1.55 !important;
  white-space: normal !important;
  text-wrap: pretty;
}

/* Keep the generated hero itself plain and aligned, but do not move it. */
body.sc-route-services.sc-public-header-standard-page .services-page-shell .services-hero .sc-standard-hero {
  width: 100% !important;
  max-width: 100% !important;
}

/* === SABURI SERVICES INTRO STANDARD HERO WIDTH FIX END === */

/* === SABURI CONTACT INTRO STANDARD HERO WIDTH FIX START ===
 * Contact page only.
 *
 * The public header JS may wrap the Contact h1 + .contact-intro in .sc-standard-hero.
 * This targets that final shape without changing .contact-hero or container geometry.
 */

body.sc-route-contact.sc-public-header-standard-page .contact-page-shell .contact-hero .sc-standard-hero .contact-intro,
body.sc-route-contact.sc-public-header-standard-page .sc-standard-hero .contact-intro,
body.sc-route-contact .contact-intro {
  width: 100% !important;
  max-width: 1250px !important;
  margin: 0 !important;
  color: #5f6f99 !important;
  font-size: 0.84rem !important;
  line-height: 1.55 !important;
  white-space: normal !important;
  text-wrap: pretty;
}

/* Keep the generated hero full-width, but do not move it. */
body.sc-route-contact.sc-public-header-standard-page .contact-page-shell .contact-hero .sc-standard-hero {
  width: 100% !important;
  max-width: 100% !important;
}

/* === SABURI CONTACT INTRO STANDARD HERO WIDTH FIX END === */

/* === SABURI FAQ INTRO STANDARD HERO WIDTH FIX START ===
 * FAQ page only.
 *
 * The public header JS may wrap the FAQ h1 + .faq-intro in .sc-standard-hero.
 * This targets that final shape without changing .faq-hero or container geometry.
 */

body.sc-route-faq.sc-public-header-standard-page .faq-page-shell .faq-hero .sc-standard-hero .faq-intro,
body.sc-route-faq.sc-public-header-standard-page .sc-standard-hero .faq-intro,
body.sc-route-faq .faq-intro {
  width: 100% !important;
  max-width: 1250px !important;
  margin: 0 !important;
  color: #5f6f99 !important;
  font-size: 0.84rem !important;
  line-height: 1.55 !important;
  white-space: normal !important;
  text-wrap: pretty;
}

/* Keep the generated hero full-width, but do not move it. */
body.sc-route-faq.sc-public-header-standard-page .faq-page-shell .faq-hero .sc-standard-hero {
  width: 100% !important;
  max-width: 100% !important;
}

/* === SABURI FAQ INTRO STANDARD HERO WIDTH FIX END === */

/* === SABURI PROHIBITED INTRO WIDTH FIX START ===
 * Prohibited Items page only.
 * Widen intro copy without moving the page title area or changing the grid.
 */

body.sc-route-prohibited-items .prohibited-hero p,
body.sc-route-prohibited-items.sc-public-header-standard-page .prohibited-hero p {
  width: 100% !important;
  max-width: 1250px !important;
  margin: 0 !important;
  color: #5f6f99 !important;
  font-size: 0.84rem !important;
  line-height: 1.55 !important;
  white-space: normal !important;
  text-wrap: pretty;
}

/* Keep the hero itself full-width inside its existing shell, without moving it. */
body.sc-route-prohibited-items .prohibited-hero {
  width: 100% !important;
  max-width: 100% !important;
}

/* === SABURI PROHIBITED INTRO WIDTH FIX END === */

/* === SABURI LEGAL INTRO WIDTH FIX START ===
 * Terms / Privacy only.
 * Widen legal header copy without moving page position.
 */

body.sc-route-terms-of-service .sc-standard-hero,
body.sc-route-privacy-policy .sc-standard-hero {
  width: 100% !important;
  max-width: 100% !important;
}

body.sc-route-terms-of-service .sc-standard-hero p,
body.sc-route-privacy-policy .sc-standard-hero p,
body.sc-route-terms-of-service .sc-standard-hero .lead,
body.sc-route-privacy-policy .sc-standard-hero .lead,
body.sc-route-terms-of-service .sc-standard-hero .legal-copy,
body.sc-route-privacy-policy .sc-standard-hero .legal-copy,
body.sc-route-terms-of-service .sc-standard-hero small,
body.sc-route-privacy-policy .sc-standard-hero small {
  width: 100% !important;
  max-width: 1250px !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  color: #5f6f99 !important;
  font-size: 0.84rem !important;
  line-height: 1.55 !important;
  white-space: normal !important;
  text-wrap: pretty;
}

/* Keep title style stable. */
body.sc-route-terms-of-service .sc-standard-hero h1,
body.sc-route-privacy-policy .sc-standard-hero h1 {
  margin-top: 0 !important;
  margin-bottom: 0.35rem !important;
  color: #1f2f67 !important;
  font-size: clamp(1.15rem, 1.9vw, 1.55rem) !important;
  line-height: 1.15 !important;
  font-weight: 850 !important;
  letter-spacing: -0.025em !important;
}

/* === SABURI LEGAL INTRO WIDTH FIX END === */
