/* Inner pages use the site's palette and the existing CMS content block. */
.inner-view { --inner-ink: #103e4b; --inner-muted: #5d7077; --inner-accent: #00777b; background: #fff; }
.inner-view #site-header { border-bottom: 1px solid rgb(255 255 255 / 14%); }
.inner-view .footer-28 .site-contact-list a { overflow-wrap: anywhere; }

.page-inner .catalog-banner { min-height: 390px; padding: 155px 0 62px; background-position: center 52%; background-color: #102b35; }
.page-inner .catalog-banner::before { background: linear-gradient(90deg, rgb(5 29 40 / 91%) 0%, rgb(5 29 40 / 62%) 48%, rgb(5 29 40 / 24%) 100%); }
.page-inner .w3l-breadcrumb { background: transparent; }
.page-inner .catalog-banner__content { position: relative; }
.page-inner .catalog-breadcrumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin: 0; padding: 0; list-style: none; }
.page-inner .catalog-breadcrumbs li { display: flex; align-items: center; gap: 14px; color: #fff; font-size: 12px; font-weight: 500; line-height: 1.6; }
.page-inner .catalog-breadcrumbs li + li::before { content: '/'; color: #83b4b8; }
.page-inner .catalog-breadcrumbs a { color: #c6d6d9; }
.page-inner .catalog-breadcrumbs a:hover { color: #fff; }
.page-inner .inner-banner-heading { margin-top: 29px; }
.inner-banner-heading__line { display: block; width: 42px; height: 3px; background: #5ad2c4; margin-bottom: 17px; }
.page-inner .inner-banner-heading h1 { margin: 0; color: #fff; font-size: clamp(42px, 5.5vw, 68px); line-height: 1.1; font-weight: 600; letter-spacing: -2px; overflow-wrap: anywhere; }

.page-inner .page-main { padding: 88px 0 110px; background: #fff; }
.page-inner .inner-content { color: var(--inner-muted); font-size: 16px; line-height: 1.85; }
.page-inner .inner-content > :last-child { margin-bottom: 0; }
.page-inner .inner-content p { margin: 0 0 22px; color: var(--inner-muted); font-size: 15px; line-height: 1.9; }
.page-inner .inner-content h2 { margin: 0 0 25px; color: var(--inner-ink); font-size: clamp(27px, 3.2vw, 40px); font-weight: 600; line-height: 1.28; letter-spacing: -1.2px; }
.page-inner .inner-content h3 { color: var(--inner-ink); font-size: 21px; font-weight: 600; line-height: 1.45; }
.page-inner .inner-content h2 em { color: var(--inner-accent); font-style: normal; }
.page-inner .inner-content a:focus-visible, .page-inner .catalog-breadcrumbs a:focus-visible { outline: 2px solid #43bfb4; outline-offset: 6px; }
.page-inner .inner-content .inner-eyebrow { margin: 0 0 18px; color: var(--inner-accent); font-size: 11px; font-weight: 700; line-height: 1.5; letter-spacing: 2px; }
.page-inner .inner-content .inner-lead { color: #31545e; font-size: 18px; font-weight: 500; line-height: 1.75; }
.page-inner .inner-content blockquote { margin: 28px 0; padding: 22px 28px; border-left: 3px solid var(--inner-accent); background: #f2f7f6; }
.page-inner .inner-content ol { padding-left: 24px; margin-bottom: 24px; }
.page-inner .inner-content table { display: block; max-width: 100%; overflow-x: auto; border-collapse: collapse; }
.page-inner .inner-content th, .page-inner .inner-content td { padding: 12px 16px; border: 1px solid #dce7e7; }
.page-inner .inner-content > h2:not(:first-child), .page-inner .inner-content > h3:not(:first-child) { margin-top: 36px; }

/* Not-found pages keep the inner page banner and footer clearance. */
.page-404__content { display: grid; grid-template-columns: 1fr 1.5fr; align-items: center; gap: 64px; max-width: 960px; margin: 0 auto; padding: 28px 0; }
.page-404 .page-404__code { margin: 0; padding: 24px 48px 24px 0; border-right: 1px solid #dfe8e6; color: var(--inner-accent); font-size: clamp(100px, 14vw, 170px); font-weight: 600; line-height: 1; letter-spacing: -8px; }
.page-404__message { min-width: 0; }
.page-404__message h2 { margin: 0 0 18px; color: var(--inner-ink); font-size: clamp(27px, 3.2vw, 38px); font-weight: 600; line-height: 1.3; letter-spacing: -1px; }
.page-404__message p { margin: 0 0 28px; color: var(--inner-muted); font-size: 15px; line-height: 1.9; }
.page-404__home { display: inline-flex; align-items: center; justify-content: center; gap: 24px; min-height: 54px; padding: 15px 24px; border: 1px solid var(--inner-accent); border-radius: 3px; background: var(--inner-accent); color: #fff; font-size: 13px; font-weight: 600; line-height: 1.6; }
.page-404__home:hover { border-color: var(--inner-ink); background: var(--inner-ink); color: #fff; }
.page-404__home:focus-visible { outline: 2px solid #23a69d; outline-offset: 4px; }

@media (max-width: 767px) {
  .page-404__content { grid-template-columns: 1fr; gap: 28px; padding: 0; }
  .page-404 .page-404__code { padding: 0 0 28px; border-right: 0; border-bottom: 1px solid #dfe8e6; font-size: 100px; letter-spacing: -5px; }
  .page-404__home { gap: 18px; max-width: 100%; }
}

/* Newsletter confirmation shares the inner page banner and content spacing. */
.subscription-result { max-width: 760px; }
.page-subscription .subscription-result p { margin-bottom: 28px; font-size: 18px; }
.subscription-result__home { display: inline-flex; align-items: center; justify-content: center; gap: 24px; min-height: 54px; max-width: 100%; padding: 15px 24px; border: 1px solid var(--inner-accent); border-radius: 3px; background: var(--inner-accent); color: #fff; font-size: 13px; font-weight: 600; line-height: 1.6; }
.subscription-result__home:hover { border-color: var(--inner-ink); background: var(--inner-ink); color: #fff; }
.subscription-result__home:focus-visible { outline: 2px solid #23a69d; outline-offset: 4px; }

/* Search shares the inner page banner, spacing and palette. */
.page-search .search-form { margin: 0 0 36px; padding: 28px; border: 1px solid #dfe8e6; border-radius: 4px; background: #f3f8f6; }
.search-form label { display: block; margin: 0 0 12px; color: var(--inner-ink); font-size: 13px; font-weight: 600; line-height: 1.6; }
.search-form__controls { display: flex; gap: 12px; }
.search-form__field { position: relative; flex: 1; min-width: 0; }
.search-form__field > .fa { position: absolute; top: 50%; left: 18px; transform: translateY(-50%); color: var(--inner-accent); pointer-events: none; }
.search-form input { display: block; width: 100%; min-width: 0; height: 54px; padding: 14px 18px 14px 46px; border: 1px solid #d4e2de; border-radius: 3px; background: #fff; color: var(--inner-ink); font: inherit; font-size: 15px; }
.search-form__submit { display: inline-flex; align-items: center; justify-content: center; gap: 32px; min-height: 54px; padding: 14px 25px; border: 1px solid var(--inner-accent); border-radius: 3px; background: var(--inner-accent); color: #fff; font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; }
.search-form__submit:hover { border-color: var(--inner-ink); background: var(--inner-ink); }
.page-search a:focus-visible, .page-search button:focus-visible, .page-search input:focus-visible { outline: 2px solid #23a69d; outline-offset: 4px; }
.page-search .search-status { margin: 0 0 22px; color: var(--inner-muted); font-size: 13px; line-height: 1.8; overflow-wrap: anywhere; }
.search-status strong { color: var(--inner-ink); font-weight: 600; }
.page-search .search-status--empty { margin: 0; padding: 28px; border: 1px solid #dfe8e6; border-radius: 4px; background: #f8faf9; font-size: 15px; }
.search-results { border-top: 1px solid #dfe8e6; }
.search-result { padding: 30px 0; border-bottom: 1px solid #dfe8e6; }
.search-result__type { display: block; margin-bottom: 12px; color: var(--inner-accent); font-size: 10px; font-weight: 700; letter-spacing: 1.5px; line-height: 1.6; text-transform: uppercase; }
.search-result h2 { margin: 0 0 14px; color: var(--inner-ink); font-size: clamp(21px, 2.5vw, 28px); font-weight: 600; line-height: 1.4; letter-spacing: -.6px; }
.search-result h2 a { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; color: inherit; overflow-wrap: anywhere; }
.search-result h2 a:hover { color: var(--inner-accent); }
.search-result h2 a > span:first-child { min-width: 0; }
.search-result h2 .fa { flex-shrink: 0; color: var(--inner-accent); font-size: 15px; }
.page-search .search-result__snippet { max-width: 900px; margin: 0; color: var(--inner-muted); font-size: 14px; line-height: 1.9; overflow-wrap: anywhere; }
.search-result mark { padding: 1px 3px; border-radius: 2px; background: #d9f0e5; color: var(--inner-ink); }
.search-pagination { margin-top: 36px; }
.search-pagination .pagination { gap: 8px; margin: 0; }
.search-pagination .page-link { display: flex; align-items: center; justify-content: center; min-width: 42px; min-height: 42px; margin: 0; padding: 8px 12px; border: 1px solid #dce5e3; border-radius: 3px; background: #fff; color: var(--inner-ink); font-size: 13px; }
.search-pagination .page-item:first-child .page-link, .search-pagination .page-item:last-child .page-link { border-radius: 3px; }
.search-pagination a.page-link:hover, .search-pagination .page-item.active .page-link { border-color: var(--inner-accent); background: var(--inner-accent); color: #fff; }
.search-pagination .page-item.disabled .page-link { color: var(--inner-muted); }
.search-content { margin-top: 40px; }

@media (max-width: 767px) {
  .page-search .search-form { padding: 20px; margin-bottom: 28px; }
  .search-form__controls { flex-direction: column; }
  .search-form__submit { justify-content: space-between; width: 100%; }
  .search-result { padding: 24px 0; }
  .search-result h2 a { gap: 16px; }
  .page-search .search-status--empty { padding: 22px; }
}

.about-intro { display: grid; grid-template-columns: 1.05fr 1fr; align-items: center; gap: 70px; }
.about-intro__copy { min-width: 0; }
.page-inner .inner-text-link { display: inline-flex; align-items: center; gap: 24px; padding: 4px 0 10px; border-bottom: 1px solid #b8cecc; color: var(--inner-accent); font-size: 13px; font-weight: 700; line-height: 1.6; }
.inner-text-link .fa { transition: transform .2s; }
.inner-text-link:hover .fa { transform: translateX(5px); }
.about-intro__visual { position: relative; min-width: 0; margin: 0 0 25px; }
.site-theme .about-intro__visual img { position: relative; display: block; width: 100%; height: 430px; border-radius: 4px; object-fit: cover; object-position: 67% center; }
.about-intro__visual::before { content: ''; position: absolute; inset: 24px -18px -24px 30px; border: 1px solid #d8e6e1; border-radius: 4px; pointer-events: none; }
.about-intro__visual figcaption { display: flex; align-items: center; gap: 17px; position: absolute; bottom: -24px; left: 24px; right: 24px; padding: 22px 25px; background: var(--inner-accent); border-radius: 3px; color: #fff; font-size: 13px; line-height: 1.8; box-shadow: 0 12px 30px rgb(12 62 62 / 12%); }
.about-intro__visual figcaption > .fa { color: #a9ead8; font-size: 33px; }
.about-intro__visual figcaption strong { font-weight: 600; }

.about-principles { margin-top: 104px; padding-top: 65px; border-top: 1px solid #dfe8e6; }
.about-principles__heading { display: grid; grid-template-columns: 1.4fr 1fr; align-items: end; gap: 70px; margin-bottom: 42px; }
.page-inner .about-principles__heading h2 { margin-bottom: 0; font-size: clamp(26px, 2.8vw, 34px); }
.page-inner .about-principles__heading > p { margin-bottom: 3px; max-width: 350px; }
.about-principles__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px; }
.about-principle { border-top: 1px solid #cfdfdc; padding-top: 25px; }
.about-principle__number { display: block; margin-bottom: 24px; color: var(--inner-accent); font-size: 13px; font-weight: 600; letter-spacing: 1px; }
.page-inner .about-principle h3 { min-height: 60px; margin-bottom: 14px; font-size: 19px; }
.page-inner .about-principle p { margin: 0; font-size: 14px; }

.inner-contact { display: flex; align-items: center; justify-content: space-between; gap: 40px; margin-top: 76px; padding: 48px 56px; border-radius: 5px; background: #103e4b; }
.page-inner .inner-contact .inner-eyebrow { color: #80d7cb; }
.page-inner .inner-contact h2 { color: #fff; font-size: clamp(26px, 3vw, 36px); margin-bottom: 17px; }
.page-inner .inner-contact p:last-child { color: #c2d6d9; margin-bottom: 0; font-size: 14px; }
.inner-contact__button { flex-shrink: 0; display: inline-flex; justify-content: center; align-items: center; gap: 32px; padding: 17px 24px; border: 1px solid #b4ead7; border-radius: 3px; background: #b4ead7; color: #103e4b; font-size: 13px; font-weight: 700; transition: background .2s, color .2s; }
.inner-contact__button:hover { background: #fff; color: #103e4b; }

@media (min-width: 992px) and (max-width: 1199px) {
  .inner-view .navbar-brand img { max-width: 190px; }
  .inner-view .site-header-actions .search-bar { flex-basis: 180px; width: 180px; }
  .inner-view .navbar-expand-lg .navbar-nav .nav-link { padding-left: 10px; padding-right: 10px; font-size: 14px; }
  .about-intro { gap: 42px; }
}

@media (max-width: 991px) {
  .inner-view .navbar-brand img { max-width: 170px; }
  .inner-view .site-header-actions .search-bar { flex-basis: auto; width: 100%; }
  .page-inner .catalog-banner { min-height: 330px; padding-top: 130px; padding-bottom: 50px; }
  .page-inner .page-main { padding: 65px 0 105px; }
  .about-intro { gap: 36px; }
  .site-theme .about-intro__visual img { height: 450px; }
  .about-intro__visual figcaption { left: 12px; right: 12px; padding: 18px; }
  .about-principles { margin-top: 76px; padding-top: 48px; }
  .about-principles__heading { gap: 30px; }
  .about-principles__grid { gap: 23px; }
  .page-inner .about-principle h3 { min-height: 80px; font-size: 17px; }
  .inner-contact { padding: 36px; gap: 25px; }
}

@media (max-width: 767px) {
  .page-inner .catalog-banner { min-height: 300px; padding: 122px 0 43px; }
  .page-inner .inner-banner-heading { margin-top: 22px; }
  .page-inner .inner-banner-heading h1 { letter-spacing: -1px; }
  .page-inner .page-main { padding: 48px 0 100px; }
  .about-intro { grid-template-columns: 1fr; gap: 36px; }
  .about-intro__visual { margin-right: 14px; }
  .site-theme .about-intro__visual img { height: 330px; }
  .about-intro__visual::before { right: -14px; }
  .about-principles { margin-top: 65px; padding-top: 40px; }
  .about-principles__heading { grid-template-columns: 1fr; gap: 20px; margin-bottom: 30px; }
  .about-principles__heading > p { max-width: none; }
  .about-principles__grid { grid-template-columns: 1fr; gap: 28px; }
  .about-principle { padding-top: 20px; }
  .about-principle__number { margin-bottom: 13px; }
  .page-inner .about-principle h3 { min-height: 0; font-size: 20px; }
  .inner-contact { align-items: flex-start; flex-direction: column; padding: 32px 25px; margin-top: 48px; }
  .inner-contact__button { width: 100%; justify-content: space-between; }
  .page-inner .inner-content .inner-lead { font-size: 17px; }
}

@media (prefers-reduced-motion: reduce) {
  .inner-text-link .fa, .inner-contact__button { transition: none; }
}
