/* ==========================================================
   ORBICRAFT SHARED PUBLIC LAYOUT + READABILITY SYSTEM
   File: assets/css/orbi-global-layout.css
   Version: 20260718-4

   Scope: public marketing pages only:
   body#orbi-public-layout.orbi-global-layout

   This file is intentionally loaded after all existing page CSS.
   It preserves colours, backgrounds, glows, gradients, cards,
   buttons, animations, menus, PHP and page-specific components.
   ========================================================== */

:root {
  --orbi-content-width: 1240px;
  --orbi-wide-width: 1320px;
  --orbi-page-gutter: clamp(20px, 4vw, 64px);
  --orbi-header-gutter: clamp(18px, 2.5vw, 48px);
  --orbi-section-space: clamp(64px, 8vw, 110px);
  --orbi-compact-section-space: clamp(40px, 5vw, 70px);
  --orbi-grid-gap: clamp(24px, 3vw, 44px);
}

/* ---------- Safe sizing and overflow ---------- */
body#orbi-public-layout.orbi-global-layout {
  width: 100%;
  min-width: 0;
  overflow-x: clip;
  font-weight: 400;
}

body#orbi-public-layout.orbi-global-layout *,
body#orbi-public-layout.orbi-global-layout *::before,
body#orbi-public-layout.orbi-global-layout *::after {
  box-sizing: border-box;
}

body#orbi-public-layout.orbi-global-layout :is(img, svg, video, canvas, iframe) {
  max-width: 100%;
}

/* ---------- One shared header width ---------- */
#orbi-public-layout #header.header > :is(.container, .container-fluid) {
  width: min(calc(100% - (var(--orbi-header-gutter) * 2)), var(--orbi-wide-width)) !important;
  max-width: none !important;
  margin-inline: auto !important;
  padding-inline: 0 !important;
}

/* Keep every dropdown item left aligned. */
#orbi-public-layout #navmenu .dropdown ul li a {
  text-align: left !important;
  justify-content: flex-start !important;
}

/* ---------- One shared hero width ---------- */
#orbi-public-layout #hero > :is(.container, .container-fluid),
#orbi-public-layout #hero.orbi-fixed-home-hero > .orbi-fixed-hero-wrap,
#orbi-public-layout :is(
  .orbi-web-hero,
  .orbi-premium-hero,
  .software-premium-hero,
  .orbi-platform-hero,
  .orbi-dynamic-hero,
  .orbi-ai-hero,
  .hosting-hero,
  .orbicrm-hero,
  .orbipayroll-hero,
  .orbibook-hero,
  .orbicampus-hero,
  .orbidesk-hero,
  .orbiai-hero,
  .quote-hero,
  .terms-hero,
  .privacy-hero,
  .page-title
) > :is(.container, .container-fluid) {
  width: min(calc(100% - (var(--orbi-page-gutter) * 2)), var(--orbi-content-width)) !important;
  max-width: none !important;
  margin-inline: auto !important;
  padding-inline: 0 !important;
}

/* ---------- One shared body-section width ---------- */
#orbi-public-layout main.main > section > :is(.container, .container-fluid),
#orbi-public-layout main.main .orbi-home-additions > section > :is(.container, .container-fluid),
#orbi-public-layout main.main :is(
  .orbi-badge-strip-inner,
  .orbi-ecosystem-grid,
  .orbi-why-grid,
  .orbi-portal-preview-grid,
  .orbi-products-grid,
  .faq-container,
  .orbi-project-wrapper,
  .terms-shell,
  .privacy-shell
) {
  width: min(calc(100% - (var(--orbi-page-gutter) * 2)), var(--orbi-content-width)) !important;
  max-width: none !important;
  margin-inline: auto !important;
}

#orbi-public-layout main.main > section > :is(.container, .container-fluid),
#orbi-public-layout main.main .orbi-home-additions > section > :is(.container, .container-fluid) {
  padding-inline: 0 !important;
}

/* Prevent a nested Bootstrap container from receiving the width twice. */
#orbi-public-layout main.main section :is(.container, .container-fluid) :is(.container, .container-fluid) {
  width: 100% !important;
  max-width: 100% !important;
  margin-inline: 0 !important;
}

/* ---------- One shared footer width ---------- */
#orbi-public-layout #footer.footer > :is(.container, .container-fluid),
#orbi-public-layout #footer.footer .footer-top > :is(.container, .container-fluid),
#orbi-public-layout #footer.footer .copyright > .container,
#orbi-public-layout #footer.footer > .copyright.container,
#orbi-public-layout #footer.footer .container.copyright {
  width: min(calc(100% - (var(--orbi-page-gutter) * 2)), var(--orbi-content-width)) !important;
  max-width: none !important;
  margin-inline: auto !important;
  padding-inline: 0 !important;
}

#orbi-public-layout #footer.footer .orbi-footer-cta {
  width: 100% !important;
  max-width: 100% !important;
  margin-inline: auto !important;
}

/* ---------- Conservative section rhythm ---------- */
#orbi-public-layout main.main > section.section:not(#hero):not(#clients):not(#stats),
#orbi-public-layout main.main .orbi-home-additions > .orbi-addition-section {
  padding-top: var(--orbi-section-space) !important;
  padding-bottom: var(--orbi-section-space) !important;
}

#orbi-public-layout main.main > :is(#clients, #stats, #blog-pagination) {
  padding-top: var(--orbi-compact-section-space) !important;
  padding-bottom: var(--orbi-compact-section-space) !important;
}

/* ---------- Shared Bootstrap/custom grid gaps ---------- */
#orbi-public-layout main.main > section > :is(.container, .container-fluid) > .row,
#orbi-public-layout main.main .orbi-home-additions > section > :is(.container, .container-fluid) > .row,
#orbi-public-layout #footer.footer .footer-top .row {
  --bs-gutter-x: var(--orbi-grid-gap) !important;
  --bs-gutter-y: var(--orbi-grid-gap) !important;
}

#orbi-public-layout main.main :is(
  .orbi-ecosystem-grid,
  .orbi-why-grid,
  .orbi-portal-preview-grid,
  .orbi-products-grid,
  .orbi-trust-grid,
  .web-check-grid,
  .software-check-grid,
  .platform-check-grid,
  .ai-check-grid,
  .feature-grid,
  .benefit-grid,
  .outcome-grid,
  .terms-contact-grid,
  .privacy-contact-grid
) {
  gap: var(--orbi-grid-gap) !important;
}

/* ==========================================================
   TARGETED READABILITY FIX
   Existing page CSS uses 700-900 on most supporting copy.
   These selectors override only readable text and headings;
   navigation, CTA buttons, badges and numeric stats stay bold.
   ========================================================== */

/* Normal reading weight for body copy and lists inside content. */
body#orbi-public-layout.orbi-global-layout main.main section.section p,
body#orbi-public-layout.orbi-global-layout main.main section.section li:not(.nav-item),
body#orbi-public-layout.orbi-global-layout #footer.footer p,
body#orbi-public-layout.orbi-global-layout #footer.footer li {
  font-weight: 400 !important;
}

/* Comfortable paragraph rhythm without changing colours or sizes. */
body#orbi-public-layout.orbi-global-layout main.main section.section p,
body#orbi-public-layout.orbi-global-layout main.main section.section .card p,
body#orbi-public-layout.orbi-global-layout #footer.footer p,
body#orbi-public-layout.orbi-global-layout #hero :is(
  .home-hero-lead,
  .orbi-fixed-hero-copy > p,
  .orbi-hero-copy > p,
  .hero-copy > p,
  .hero-content > p,
  .hero-lead,
  .lead
) {
  font-weight: 400 !important;
  line-height: 1.65 !important;
}

/* Hero service/module descriptions were explicitly forced to 700. */
body#orbi-public-layout.orbi-global-layout #hero :is(
  .home-module-card p,
  .orbi-fixed-module-card p,
  .module-card p,
  .service-card p,
  .feature-card p
) {
  font-weight: 400 !important;
  line-height: 1.55 !important;
}

/* Keep emphasis meaningful rather than making every sentence bold. */
body#orbi-public-layout.orbi-global-layout main.main section.section :is(strong, b),
body#orbi-public-layout.orbi-global-layout #footer.footer :is(strong, b) {
  font-weight: 700 !important;
}

/* Premium but less block-like heading hierarchy. */
body#orbi-public-layout.orbi-global-layout #hero h1 {
  font-size: clamp(48px, 4.15vw, 64px) !important;
  line-height: 1.08 !important;
  font-weight: 700 !important;
  letter-spacing: clamp(-2px, -0.12vw, -0.8px) !important;
  text-wrap: balance;
}

body#orbi-public-layout.orbi-global-layout main.main section.section :is(h2, .section-title h2) {
  font-weight: 700 !important;
  line-height: 1.16 !important;
}

body#orbi-public-layout.orbi-global-layout main.main section.section :is(h3, h4, .card-title),
body#orbi-public-layout.orbi-global-layout #hero :is(
  .home-command-top h3,
  .orbi-fixed-console-top h3,
  .home-module-card h4,
  .orbi-fixed-module-card h4
) {
  font-weight: 700 !important;
}

/* ---------- Tablet gutters ---------- */
@media (max-width: 1199.98px) {
  :root {
    --orbi-page-gutter: clamp(24px, 4vw, 44px);
    --orbi-header-gutter: clamp(16px, 2.5vw, 28px);
  }
}

@media (max-width: 991.98px) {
  :root {
    --orbi-page-gutter: clamp(24px, 4vw, 34px);
    --orbi-section-space: clamp(54px, 8vw, 76px);
    --orbi-grid-gap: clamp(22px, 3.5vw, 32px);
  }
}

/* ---------- Mobile readability and reduced scrolling ---------- */
@media (max-width: 767.98px) {
  :root {
    --orbi-page-gutter: 22px;
    --orbi-header-gutter: 18px;
    --orbi-section-space: clamp(48px, 9vw, 64px);
    --orbi-compact-section-space: clamp(34px, 7vw, 48px);
    --orbi-grid-gap: 22px;
  }

  body#orbi-public-layout.orbi-global-layout #hero h1 {
    font-size: clamp(32px, 8.8vw, 39px) !important;
    line-height: 1.08 !important;
    font-weight: 700 !important;
    letter-spacing: -1px !important;
    margin-bottom: 18px !important;
  }

  body#orbi-public-layout.orbi-global-layout #hero :is(
    .home-hero-lead,
    .orbi-fixed-hero-copy > p,
    .orbi-hero-copy > p,
    .hero-copy > p,
    .hero-content > p,
    .hero-lead,
    .lead
  ) {
    font-size: 16px !important;
    line-height: 1.6 !important;
    font-weight: 400 !important;
  }

  body#orbi-public-layout.orbi-global-layout main.main section.section :is(h2, .section-title h2) {
    font-size: clamp(27px, 7.3vw, 34px) !important;
    line-height: 1.14 !important;
    font-weight: 700 !important;
  }

  /* Reduce unnecessary vertical expansion in the homepage hero only. */
  body#orbi-public-layout.orbi-global-layout.index-page #hero.orbi-fixed-home-hero {
    padding-top: 92px !important;
    padding-bottom: 52px !important;
  }

  body#orbi-public-layout.orbi-global-layout.index-page #hero .orbi-fixed-hero-badge {
    margin-bottom: 18px !important;
  }

  body#orbi-public-layout.orbi-global-layout.index-page #hero .orbi-fixed-hero-actions {
    margin-top: 24px !important;
  }

  body#orbi-public-layout.orbi-global-layout.index-page #hero .orbi-fixed-hero-trust {
    margin-top: 20px !important;
  }

  body#orbi-public-layout.orbi-global-layout.index-page #hero .orbi-fixed-hero-console {
    margin-top: 6px !important;
  }
}

@media (max-width: 575.98px) {
  :root {
    --orbi-page-gutter: 20px;
    --orbi-header-gutter: 16px;
    --orbi-section-space: 50px;
    --orbi-compact-section-space: 38px;
    --orbi-grid-gap: 20px;
  }
}

@media (max-width: 390px) {
  body#orbi-public-layout.orbi-global-layout #hero h1 {
    font-size: 30px !important;
    line-height: 1.1 !important;
  }
}

@supports not (overflow: clip) {
  body#orbi-public-layout.orbi-global-layout {
    overflow-x: hidden;
  }
}

/* ==========================================================
   ORBICRAFT FULL-PAGE COMPLETION FIX
   Version: 20260718-4

   Completes the same container and readable typography system
   through every homepage section and the footer. It does not
   alter colours, backgrounds, glows, animations, buttons,
   navigation, PHP, links or component behaviour.
   ========================================================== */

/* ---------- Stop nested custom grids from receiving page gutters twice ---------- */
body#orbi-public-layout.orbi-global-layout main.main
:is(.container, .container-fluid) > :is(
  .orbi-badge-strip-inner,
  .orbi-ecosystem-grid,
  .orbi-build-panel,
  .orbi-build-steps,
  .orbi-why-grid,
  .orbi-portal-preview,
  .orbi-portal-preview-grid,
  .orbi-products-grid,
  .orbi-business-faq,
  .faq-container,
  .orbi-project-wrapper,
  .terms-shell,
  .privacy-shell
) {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* ---------- Complete readable body copy through every section ---------- */
body#orbi-public-layout.orbi-global-layout main.main section p,
body#orbi-public-layout.orbi-global-layout main.main section li,
body#orbi-public-layout.orbi-global-layout main.main section small,
body#orbi-public-layout.orbi-global-layout #footer.footer p,
body#orbi-public-layout.orbi-global-layout #footer.footer li,
body#orbi-public-layout.orbi-global-layout #footer.footer small {
  font-weight: 400 !important;
}

/* Normal reading rhythm for custom sections that were previously missed. */
body#orbi-public-layout.orbi-global-layout main.main :is(
  .orbi-addition-section,
  .orbi-project-section,
  #contact
) p,
body#orbi-public-layout.orbi-global-layout main.main :is(
  .orbi-ecosystem-card,
  .orbi-build-step,
  .orbi-why-card,
  .orbi-product-card,
  .orbi-portal-copy,
  .orbi-screen-card,
  .orbi-faq-item,
  .orbi-contact-panel,
  .orbi-project-form
) p {
  font-weight: 400 !important;
  line-height: 1.65 !important;
}

/* ---------- One consistent heading hierarchy below the hero ---------- */
body#orbi-public-layout.orbi-global-layout main.main section:not(#hero) h2,
body#orbi-public-layout.orbi-global-layout main.main section:not(#hero) .section-title h2,
body#orbi-public-layout.orbi-global-layout main.main :is(
  .orbi-section-header h2,
  .orbi-build-header h2,
  .orbi-portal-copy h2,
  .orbi-project-title h2
),
body#orbi-public-layout.orbi-global-layout #footer.footer .orbi-footer-cta h2 {
  font-weight: 700 !important;
  line-height: 1.14 !important;
  letter-spacing: -1px !important;
  text-wrap: balance;
}

body#orbi-public-layout.orbi-global-layout main.main :is(
  .orbi-section-header h2,
  .orbi-build-header h2,
  .orbi-portal-copy h2,
  .orbi-project-title h2
) {
  font-size: clamp(36px, 3.6vw, 54px) !important;
}

body#orbi-public-layout.orbi-global-layout main.main section:not(#hero) :is(h3, h4, .card-title),
body#orbi-public-layout.orbi-global-layout #footer.footer :is(h3, h4) {
  font-weight: 700 !important;
}

/* ---------- Supporting UI text: readable, but still clearly structured ---------- */
body#orbi-public-layout.orbi-global-layout main.main :is(
  .orbi-portal-list div,
  .orbi-screen-title small,
  .orbi-screen-row span,
  .orbi-product-best,
  .orbi-process-item p,
  .orbi-trust-card span,
  .orbi-form-header p,
  .orbi-form-note,
  .orbi-project-form .form-control
) {
  font-weight: 400 !important;
}

body#orbi-public-layout.orbi-global-layout main.main :is(
  .orbi-portal-list div,
  .footer-link-card ul li a
) {
  font-weight: 600 !important;
}

body#orbi-public-layout.orbi-global-layout main.main :is(
  .orbi-product-best strong,
  .orbi-screen-row strong,
  .orbi-trust-card strong,
  .orbi-project-form label,
  .orbi-faq-item summary
),
body#orbi-public-layout.orbi-global-layout #footer.footer :is(
  strong,
  .footer-link-card h4,
  .footer-contact-card h4
) {
  font-weight: 700 !important;
}

/* Footer CTA should match the calmer heading style used above it. */
body#orbi-public-layout.orbi-global-layout #footer.footer .orbi-footer-cta h2 {
  font-size: clamp(30px, 2.7vw, 42px) !important;
}

body#orbi-public-layout.orbi-global-layout #footer.footer .orbi-footer-cta p {
  font-weight: 400 !important;
  line-height: 1.65 !important;
}

/* ---------- Tablet: use the available width instead of a narrow 420px text block ---------- */
@media (max-width: 991.98px) {
  body#orbi-public-layout.orbi-global-layout.index-page :is(
    .orbi-section-header,
    .section-title,
    .orbi-project-title,
    .orbi-build-header
  ) {
    width: 100% !important;
    max-width: 760px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  body#orbi-public-layout.orbi-global-layout.index-page .orbi-portal-preview {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  body#orbi-public-layout.orbi-global-layout main.main :is(
    .orbi-section-header h2,
    .orbi-build-header h2,
    .orbi-portal-copy h2,
    .orbi-project-title h2
  ) {
    font-size: clamp(32px, 5.2vw, 42px) !important;
  }
}

/* ---------- Mobile: normal-sized content, shorter headings and no narrow preview card ---------- */
@media (max-width: 575.98px) {
  body#orbi-public-layout.orbi-global-layout.index-page :is(
    .orbi-section-header,
    .section-title,
    .orbi-project-title,
    .orbi-build-header
  ) {
    width: 100% !important;
    max-width: 100% !important;
  }

  body#orbi-public-layout.orbi-global-layout main.main :is(
    .orbi-section-header h2,
    .orbi-build-header h2,
    .orbi-portal-copy h2,
    .orbi-project-title h2
  ) {
    font-size: clamp(28px, 8vw, 34px) !important;
    line-height: 1.15 !important;
    letter-spacing: -.7px !important;
  }

  body#orbi-public-layout.orbi-global-layout.index-page .orbi-portal-preview {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
  }

  body#orbi-public-layout.orbi-global-layout.index-page .orbi-portal-copy {
    padding: 28px 20px !important;
  }

  body#orbi-public-layout.orbi-global-layout.index-page .orbi-portal-copy h2 {
    width: 100% !important;
    max-width: 100% !important;
    font-size: 29px !important;
  }

  body#orbi-public-layout.orbi-global-layout.index-page .orbi-portal-copy p {
    width: 100% !important;
    max-width: 100% !important;
    font-size: 15px !important;
    font-weight: 400 !important;
    line-height: 1.6 !important;
  }

  body#orbi-public-layout.orbi-global-layout.index-page .orbi-portal-list,
  body#orbi-public-layout.orbi-global-layout.index-page .orbi-portal-btn,
  body#orbi-public-layout.orbi-global-layout.index-page .orbi-screen-card {
    max-width: 100% !important;
  }

  body#orbi-public-layout.orbi-global-layout #footer.footer .orbi-footer-cta h2 {
    font-size: 28px !important;
    line-height: 1.16 !important;
  }
}
