/* Final shared theme layer: loaded after section- and category-specific styles. */
:root,
[data-bs-theme="light"] {
  --navy-900: #08152b;
  --navy-800: #0a1b36;
  --navy-700: #0e2547;
  --brand-blue: #1c57ae;
  --brand-blue-bright: #2b6fd6;
  --blue-100: #e9f1fb;
  --blue-050: #f4f8fd;
  --brand-blue-soft: #2b6fd6;
  --brand-cyan: #2bb6c9;
  --brand-cyan-bright: #5be8da;
  --brand-red: #f08a3c;
  --brand-accent-dark: #d9742a;
  --ink: #0f1d30;
  --text-soft: #566479;
  --text-light: #7c8aa0;
  --border-soft: #e4e9f1;
  --bg-soft: #f6f9fc;
  --font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;

  --bs-font-sans-serif: var(--font);
  --bs-body-font-family: var(--font);
  --bs-body-color: #0f1d30;
  --bs-body-color-rgb: 15, 29, 48;
  --bs-secondary-color: #566479;
  --bs-secondary-color-rgb: 86, 100, 121;
  --bs-primary: #1c57ae;
  --bs-primary-rgb: 28, 87, 174;
  --bs-danger: #f08a3c;
  --bs-danger-rgb: 240, 138, 60;
  --bs-link-color: #1c57ae;
  --bs-link-color-rgb: 28, 87, 174;
  --bs-link-hover-color: #d9742a;
  --bs-link-hover-color-rgb: 217, 116, 42;
  --bs-border-color: #e4e9f1;
  --bs-focus-ring-color: rgba(43, 182, 201, 0.25);
}

body {
  --quote-blue: #1c57ae !important;
  --quote-red: #f08a3c !important;
  --rental-blue: #1c57ae !important;
  --rental-red: #f08a3c !important;
  --solution-red: #f08a3c !important;
  font-family: var(--font);
  color: var(--ink);
}

button,
input,
select,
textarea,
.modal,
.offcanvas,
.dropdown-menu {
  font-family: var(--font);
}

main :where(h1, h2, h3, h4, h5, h6) {
  font-family: var(--font);
  color: var(--ink);
}

main h1,
main h2,
main h3,
main h4,
main h5,
main h6,
main p,
main li,
main dd,
main dt,
main label,
main input,
main select,
main textarea,
main button,
main table,
main th,
main td,
.ui-widget,
.ui-widget input,
.ui-widget select,
.ui-widget textarea,
.ui-widget button {
  font-family: var(--font) !important;
}

body a {
  --bs-link-color-rgb: 28, 87, 174;
}

.text-primary {
  color: var(--brand-blue) !important;
}

.text-danger {
  color: var(--brand-accent-dark) !important;
}

.bg-primary {
  background-color: var(--brand-blue) !important;
}

.bg-danger {
  background-color: var(--brand-red) !important;
}

.border-primary {
  border-color: var(--brand-blue) !important;
}

.border-danger {
  border-color: var(--brand-red) !important;
}

.btn-primary,
.btn-danger {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--brand-red);
  --bs-btn-border-color: var(--brand-red);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--brand-accent-dark);
  --bs-btn-hover-border-color: var(--brand-accent-dark);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #c56622;
  --bs-btn-active-border-color: #c56622;
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: #e8aa7b;
  --bs-btn-disabled-border-color: #e8aa7b;
}

.btn-outline-primary,
.btn-outline-danger {
  --bs-btn-color: var(--brand-accent-dark);
  --bs-btn-border-color: var(--brand-red);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--brand-red);
  --bs-btn-hover-border-color: var(--brand-red);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--brand-accent-dark);
  --bs-btn-active-border-color: var(--brand-accent-dark);
}

main [class*="primary-cta"] {
  border-color: var(--brand-red) !important;
  background: var(--brand-red) !important;
  color: #fff !important;
  box-shadow: 0 0.625rem 1.375rem -0.625rem rgba(240, 138, 60, 0.55) !important;
}

main [class*="primary-cta"]:hover,
main [class*="primary-cta"]:focus {
  border-color: var(--brand-accent-dark) !important;
  background: var(--brand-accent-dark) !important;
  color: #fff !important;
}

/* Keep quote actions consistent across product, solution, rental and designer pages. */
main .btn-red-solid,
main .articles-solutions-feature-cta,
main .printer-advisor-cta,
main .supply-type-primary-cta,
main .id-software-primary-cta,
main .iclass-primary-cta,
main .printer-zoom-primary-cta,
main .printer-zoom-help-cta,
main .design-oversized-primary-cta,
main .js-lanyard-submit,
main .rent-quote-btn,
main .product-quote-submit,
main .id-software-form-submit,
main .quote-request-submit,
main .btn-special,
main .submit_button {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--brand-red);
  --bs-btn-border-color: var(--brand-red);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--brand-accent-dark);
  --bs-btn-hover-border-color: var(--brand-accent-dark);
  border-color: var(--brand-red) !important;
  background: var(--brand-red) !important;
  color: #fff !important;
}

main .btn-red-solid:hover,
main .btn-red-solid:focus,
main .articles-solutions-feature-cta:hover,
main .articles-solutions-feature-cta:focus,
main .printer-advisor-cta:hover,
main .printer-advisor-cta:focus,
main .supply-type-primary-cta:hover,
main .supply-type-primary-cta:focus,
main .id-software-primary-cta:hover,
main .id-software-primary-cta:focus,
main .iclass-primary-cta:hover,
main .iclass-primary-cta:focus,
main .printer-zoom-primary-cta:hover,
main .printer-zoom-primary-cta:focus,
main .printer-zoom-help-cta:hover,
main .printer-zoom-help-cta:focus,
main .design-oversized-primary-cta:hover,
main .design-oversized-primary-cta:focus,
main .js-lanyard-submit:hover,
main .js-lanyard-submit:focus,
main .rent-quote-btn:hover,
main .rent-quote-btn:focus,
main .product-quote-submit:hover,
main .product-quote-submit:focus,
main .id-software-form-submit:hover,
main .id-software-form-submit:focus,
main .quote-request-submit:hover,
main .quote-request-submit:focus,
main .btn-special:hover,
main .btn-special:focus,
main .submit_button:hover,
main .submit_button:focus {
  border-color: var(--brand-accent-dark) !important;
  background: var(--brand-accent-dark) !important;
  color: #fff !important;
}

/* Industry solution feature line beside the introductory text. */
.articles-solutions-feature-solution::before {
  background: linear-gradient(180deg, var(--brand-red), var(--brand-accent-dark)) !important;
}

main [class*="outline-cta"] {
  border-color: var(--brand-red) !important;
  color: var(--brand-accent-dark) !important;
}

main [class*="outline-cta"]:hover,
main [class*="outline-cta"]:focus {
  background: #fff8f2 !important;
  color: var(--brand-accent-dark) !important;
}

.form-control:focus,
.form-select:focus,
input:focus,
select:focus,
textarea:focus {
  border-color: var(--brand-cyan);
  box-shadow: 0 0 0 0.2rem rgba(43, 182, 201, 0.18);
}

.page-link {
  color: var(--brand-blue);
}

.active > .page-link,
.page-link.active,
.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
  border-color: var(--brand-blue);
  background-color: var(--brand-blue);
  color: #fff;
}

::selection {
  background: rgba(43, 182, 201, 0.28);
  color: var(--navy-900);
}

/* Carry the homepage visual language through all inner-page templates. */
.articles-solutions-page {
  --solution-blue: var(--brand-blue);
  --solution-navy: var(--ink);
  --solution-red: var(--brand-red);
  --solution-ink: var(--text-soft);
  --solution-muted: var(--text-soft);
  --solution-line: var(--border-soft);
  --solution-soft: var(--blue-050);
}

.articles-zoom-page,
.articles-solutions-page,
.products_list,
.printer-landing,
.iclass-cards-category,
.id-software-page,
.oversized-page {
  color: var(--ink);
}

.articles-zoom-title-block,
.articles-solutions-hero {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--border-soft);
  border-radius: 1.875rem;
  background:
    radial-gradient(circle at 96% 4%, rgba(240, 138, 60, 0.12), transparent 28%),
    linear-gradient(135deg, #fff 0%, var(--blue-050) 68%, #fff8f2 100%);
  box-shadow: 0 1.125rem 2.625rem rgba(17, 67, 163, 0.08);
}

.articles-zoom-title-block {
  padding: clamp(1.5rem, 3.2vw, 2.5rem);
}

.articles-solutions-hero {
  margin-bottom: 2.5rem;
  padding: clamp(1.5rem, 3.2vw, 2.5rem);
}

.articles-zoom-title-block .stack-main-title,
.articles-solutions-hero h1 {
  margin-bottom: 1rem !important;
  color: var(--ink) !important;
  font-size: clamp(2.5rem, 4.5vw, 3.75rem) !important;
  font-weight: 500 !important;
  line-height: 1.02 !important;
  letter-spacing: -0.045em !important;
}

.body_products .products_list .products-category-head h1,
.printer-landing-hero-copy h1,
.iclass-hero-copy h1,
.id-software-hero-copy h1,
.oversized-hero h1,
.printer-finder-page-head h1,
.rent-printer-page h1,
.printer-zoom-page h1 {
  color: var(--ink) !important;
  font-weight: 500 !important;
  letter-spacing: -0.04em !important;
}

.rent-hero-copy h1 {
  max-width: 15ch;
  font-size: clamp(2.3rem, 4.2vw, 3.6rem) !important;
  line-height: 1.02 !important;
}

/* Match rental landing and rental model views to the product-category system. */
.body_rental-printers {
  --rental-blue: var(--brand-blue);
  --rental-red: var(--brand-red);
  --rental-soft-blue: #f8fbff;
  --rental-text: var(--ink);
  --rental-muted: var(--text-soft);
  --rental-border: #e6ecf5;
}

.rent-hero {
  padding: clamp(2rem, 4vw, 2.75rem) 0;
  border-top: 1px solid #e6ecf5;
  border-bottom: 1px solid #e6ecf5;
  background: linear-gradient(180deg, #f8fbff 0%, #eef4fb 100%);
}

.rent-hero-shell {
  overflow: visible;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.rent-hero-grid {
  gap: clamp(1.5rem, 4vw, 3rem);
}

.rent-hero-visual {
  padding: 1rem;
  border: 1px solid var(--border-soft);
  border-radius: 1.4rem;
  background: #fff;
  box-shadow: 0 1.125rem 2.625rem rgba(17, 67, 163, 0.08);
}

.rent-hero-card {
  border: 1px solid var(--border-soft);
  border-radius: 0.9rem;
  box-shadow: 0 0.75rem 1.5rem rgba(23, 60, 143, 0.12);
}

.rent-intro-card,
.rent-model-card,
.rent-model-feature {
  border-color: #dfe5f1;
  border-radius: 1rem;
  background: #fff;
  box-shadow: 0 0.75rem 1.5rem rgba(23, 60, 143, 0.05);
}

.rent-intro-card,
.rent-model-trigger {
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.rent-intro-card:hover,
.rent-model-trigger:hover,
.rent-model-trigger:focus {
  transform: translateY(-0.1875rem);
  border-color: rgba(28, 87, 174, 0.28);
  box-shadow: 0 0.75rem 1.5rem rgba(23, 60, 143, 0.12);
}

.rent-intro-card h2,
.rent-model-card h3,
.rent-model-copy h3 {
  color: var(--brand-blue) !important;
  font-weight: 500 !important;
}

.rent-intro-card p,
.rent-section-head p,
.rent-model-copy p,
.rent-model-card p,
.rent-gallery-shell p,
.rent-quote-shell p {
  color: var(--text-soft);
}

.rent-quote-band {
  margin-inline: calc(50% - 50vw);
  padding: clamp(2rem, 4vw, 2.75rem) 0;
  border-top: 1px solid #e6ecf5;
  border-bottom: 1px solid #e6ecf5;
  background: #f8fbff;
}

.rent-quote-shell {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--ink);
  box-shadow: none;
}

.rent-quote-shell .eyebrow {
  color: var(--brand-accent-dark);
}

.rent-quote-shell h2 {
  color: var(--ink) !important;
  font-weight: 500 !important;
  letter-spacing: -0.025em !important;
}

.body_rental-printers .rent-quote-btn {
  border-color: var(--brand-red) !important;
  border-radius: 0.8rem;
  background: var(--brand-red) !important;
  color: #fff !important;
  box-shadow: 0 0.625rem 1.375rem -0.625rem rgba(240, 138, 60, 0.55);
}

.body_rental-printers .rent-quote-btn:hover,
.body_rental-printers .rent-quote-btn:focus {
  border-color: var(--brand-accent-dark) !important;
  background: var(--brand-accent-dark) !important;
  color: #fff !important;
}

.rent-section-head h2,
.rent-gallery-shell h2 {
  color: var(--ink) !important;
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  font-weight: 500 !important;
  letter-spacing: -0.025em !important;
}

.rent-model-image-panel,
.rent-spec-grid span {
  border: 1px solid #e6ecf5;
  background: #f8fbff;
}

.rent-badge-gallery {
  border-top: 1px solid #e6ecf5;
  border-bottom: 1px solid #e6ecf5;
  background: #f8fbff;
}

.rent-final-cta h2 {
  color: var(--ink) !important;
  font-weight: 500 !important;
}

.rental-detail-modal .modal-content,
.quote-request-modal .modal-content {
  border-color: #dfe5f1;
  border-radius: 1rem;
  box-shadow: 0 1.5rem 4rem rgba(23, 60, 143, 0.16);
}

.rental-detail-header,
.quote-request-header {
  border-bottom-color: #e6ecf5;
  background: #f8fbff;
}

.rental-detail-header .modal-title,
.quote-request-header .modal-title,
.rental-detail-body h2.name {
  color: var(--ink) !important;
  font-weight: 500 !important;
}

.rental-detail-body h2,
.rental-detail-body h3 {
  color: var(--brand-blue) !important;
}

.articles-zoom-slogan,
.articles-zoom-summary,
.articles-zoom-body,
.articles-solutions-lead,
.articles-solutions-content-copy {
  color: var(--text-soft);
}

.articles-zoom-body h2,
.articles-solutions-content-copy h2,
.articles-solutions-feature-head h2,
.products_list .products-category-head h2,
.printer-landing h2,
.iclass-cards-category h2,
.id-software-page h2,
.oversized-page h2,
.rent-intro-card h2,
.rent-section-head h2,
.printer-zoom-summary h2 {
  color: var(--ink) !important;
  font-weight: 500 !important;
  letter-spacing: -0.025em !important;
}

.articles-zoom-body h3,
.articles-zoom-body h4,
.articles-solutions-content-copy h3,
.articles-solutions-content-copy h4,
.articles-solutions-printer-body h3,
.articles-solutions-sidebar-heading h2 {
  color: var(--brand-blue) !important;
  font-weight: 600 !important;
}

main .eyebrow,
main .eyebrow-red,
main [class*="-kicker"] {
  color: var(--brand-accent-dark);
}

main .breadcrumb a,
main [class*="breadcrumb"] a {
  color: var(--brand-blue);
  font-weight: 600;
}

main .breadcrumb a:hover,
main [class*="breadcrumb"] a:hover {
  color: var(--brand-accent-dark);
}

.articles-zoom-content-card,
.articles-zoom-action-card,
.articles-zoom-hero-illustration,
.articles-zoom-tearsheet-card,
.articles-solutions-feature-solution,
.articles-solutions-resource-card,
.articles-solutions-printer-card,
.printer-program-card {
  border-color: var(--border-soft);
  box-shadow: 0 1rem 2.125rem rgba(17, 67, 163, 0.07);
}

.articles-zoom-content-card,
.articles-zoom-action-card,
.articles-zoom-hero-illustration,
.articles-solutions-feature-solution,
.articles-solutions-resource-card {
  border-radius: 1.375rem;
}

.articles-solutions-feature-solution {
  background: linear-gradient(135deg, var(--blue-050), #fff 72%);
}

main .articles-zoom-cta {
  min-height: 2.875rem;
  border-color: var(--brand-red) !important;
  border-radius: 1rem;
  background: var(--brand-red) !important;
  color: #fff !important;
  font-weight: 700;
  box-shadow: 0 0.625rem 1.375rem -0.625rem rgba(240, 138, 60, 0.55);
}

main .articles-zoom-cta:hover,
main .articles-zoom-cta:focus-visible {
  border-color: var(--brand-accent-dark) !important;
  background: var(--brand-accent-dark) !important;
  color: #fff !important;
}

main :where(.form-control, .form-select, input[type="text"], input[type="email"], input[type="tel"], input[type="search"], input[type="password"], textarea) {
  border-color: var(--border-soft);
  border-radius: 0.85rem;
  color: var(--ink);
}

main :where(.card, [class*="-card"]) {
  --bs-card-border-color: var(--border-soft);
}

@media (min-width: 992px) {
  .printer-section-head {
    max-width: 74rem !important;
  }

  .printer-section-head h2 {
    white-space: nowrap;
  }
}

@media (max-width: 620px) {
  .articles-zoom-title-block,
  .articles-solutions-hero {
    border-radius: 1.375rem;
  }

  .articles-zoom-title-block .stack-main-title,
  .articles-solutions-hero h1 {
    font-size: clamp(2.25rem, 11vw, 3rem) !important;
  }
}
