/*
Theme Name: STi Impreza Child
Template: Impreza
Version: 1.5.0
Text Domain: sti-impreza-child
*/
.sti-corporate-site { margin: 0; background-color: #f5f7fa; background-image: linear-gradient(#ffffffec, #ffffffec), url('assets/sti-background-tile.jpg'); background-repeat: repeat; background-size: auto, 300px 300px; color: #1d2d3d; font-family: Arial, Helvetica, sans-serif; line-height: 1.65; }
.sti-corporate-site *, .sti-corporate-site *::before, .sti-corporate-site *::after { box-sizing: border-box; }
.sti-corporate-site .sti-site-canvas { background: transparent; min-width: 0; }
.sti-corporate-site a { color: #185a90; text-underline-offset: .2em; }
.sti-corporate-site h1, .sti-corporate-site h2, .sti-corporate-site h3 { color: #143956; line-height: 1.25; }
.sti-corporate-site img { max-width: 100%; height: auto; }
.sti-corporate-site a:focus-visible, .sti-corporate-site button:focus-visible { outline: 3px solid #d39828; outline-offset: 4px; }
.sti-skip-link { position: absolute; left: 1rem; top: -5rem; z-index: 10000; background: white; padding: .7rem; }
.sti-skip-link:focus { top: .5rem; }
.sti-site-header { background: linear-gradient(115deg, #24496f, #102b48); border-top: 4px solid #527aa4; box-shadow: 0 2px 8px #153b5522; position: relative; z-index: 50; }
.sti-topbar { background: #edf2f7; font-size: .8rem; }
.sti-toolbar-menu { margin: 0 auto; padding: .3rem 1.5rem; max-width: 1180px; display: flex; flex-wrap: wrap; gap: .9rem; list-style: none; justify-content: flex-end; }
.sti-toolbar-menu ul { list-style: none; padding-left: .5rem; }
.sti-toolbar-menu a { text-decoration: none; }
.sti-restored-button { display: inline-block; background: #185a90; color: white !important; border-radius: 3px; padding: .65rem 1.15rem; text-decoration: none; margin-block: .5rem; }
.sti-header-inner, .sti-navigation, .sti-page-content, .sti-footer-inner { width: min(1180px, calc(100% - 3rem)); margin-inline: auto; }
.sti-header-inner { display: flex; align-items: center; gap: 1.5rem; min-height: 105px; padding-block: 1rem; }
.sti-brand { display: flex; align-items: center; gap: 1rem; margin-right: auto; text-decoration: none; color: #fff !important; }
.sti-brand img { width: auto; max-width: 280px; max-height: 94px; object-fit: contain; background: white; padding: .3rem; border-radius: 3px; }
.sti-wordmark { font-size: 3.5rem; font-weight: 800; font-style: italic; line-height: 1; letter-spacing: -.05em; }
.sti-brand-name { font-size: 1.1rem; font-weight: 700; max-width: 20rem; line-height: 1.35; }
.sti-employee-login { color: #fff !important; border: 1px solid #91a8c1; border-radius: 3px; padding: .6rem 1rem; white-space: nowrap; text-decoration: none; font-size: .9rem; font-weight: bold; }
.sti-menu-toggle { display: none; color: #153b55; background: white; border: 1px solid #c5d0db; padding: .6rem; border-radius: 3px; }
.sti-navigation { border-top: 1px solid #ffffff26; }
.sti-primary-menu, .sti-primary-menu ul, .sti-footer-menu { list-style: none; padding: 0; margin: 0; }
.sti-primary-menu { display: flex; flex-wrap: wrap; }
.sti-primary-menu > li { position: relative; }
.sti-primary-menu a { display: block; padding: .85rem 1rem; color: #fff; text-decoration: none; font-weight: 650; font-size: .95rem; }
.sti-primary-menu a:hover, .sti-primary-menu a:focus, .sti-primary-menu .current-menu-item > a { background: #ffffff15; }
.sti-primary-menu ul { display: none; position: absolute; min-width: 240px; max-width: 340px; background: white; border: 1px solid #d5dee7; box-shadow: 0 10px 20px #1639541a; z-index: 80; }
.sti-primary-menu li:hover > ul, .sti-primary-menu li:focus-within > ul { display: block; }
.sti-primary-menu ul li { position: relative; }
.sti-primary-menu ul a { color: #173e5b; }
.sti-primary-menu ul a:hover, .sti-primary-menu ul a:focus { background: #ecf2f7; }
.sti-primary-menu ul ul { left: 100%; top: 0; }
.sti-page-main { padding-block: 2.5rem 3.5rem; min-height: 55vh; background: transparent; }
.sti-page-content { background: white; border: 1px solid #e4e9ee; border-radius: 5px; display: flow-root; min-width: 0; }
.sti-page-title { border-bottom: 1px solid #dce4ec; padding: 1.75rem 2.25rem; background: #f0f4f8; }
.sti-page-title h1 { font-size: clamp(1.65rem, 3vw, 2.4rem); margin: 0; }
.sti-content-inner { padding: 2.25rem; overflow-wrap: anywhere; display: flow-root; }
.sti-content-inner .g-cols.vc_row { margin: 0; max-width: none; width: 100%; }
/* WPBakery clearfix pseudo-elements otherwise occupy two CSS-grid cells. */
.sti-content-inner .g-cols.via_grid::before, .sti-content-inner .g-cols.via_grid::after { content: none !important; display: none !important; }
.sti-content-inner .g-cols.via_grid { display: grid; gap: 1.5rem; align-items: start; }
.sti-content-inner .g-cols.cols_1 { grid-template-columns: minmax(0, 1fr); }
.sti-content-inner .g-cols.cols_2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sti-content-inner .g-cols.cols_3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sti-content-inner .g-cols.cols_4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.sti-content-inner .g-cols.cols_5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.sti-content-inner .g-cols.cols_6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.sti-content-inner .g-cols.cols_custom { grid-template-columns: var(--custom-columns, minmax(0, 1fr)); }
.sti-content-inner .g-cols.via_grid > * { min-width: 0; margin: 0; }
.sti-content-inner .g-cols.via_grid > .wpb_column { width: 100%; padding: 0; float: none; }
.sti-content-inner .vc_column-inner, .sti-content-inner .wpb_wrapper { display: flow-root; width: 100%; min-width: 0; min-height: 0; height: auto !important; }
/* Recovered columns can contain several stacked cards. Percent heights make
   every card as tall as its whole column, so following rows overlap them. */
.sti-content-inner .g-cols.equal_height > div > .vc_column-inner > :only-child,
.sti-content-inner .g-cols.equal_height > div > .vc_column-inner > .wpb_wrapper > :only-child { height: auto !important; }
.sti-content-inner > .l-section { padding: 1rem 0 !important; }
.sti-content-inner .l-section-h { padding: 0; margin: 0; max-width: none; }
.sti-content-inner .wpb_text_column { margin-bottom: 0; }
.sti-content-inner .wpb_animate_when_almost_visible, .sti-content-inner .us_animate_this { opacity: 1 !important; visibility: visible !important; transform: none !important; animation: none !important; }
.sti-content-inner iframe { max-width: 100%; }
.sti-content-inner .wpb_text_column { display: flow-root; }
.sti-site-footer { background: #14364f; color: #fff; padding-block: 2rem; }
.sti-footer-inner { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 1rem; }
.sti-footer-menu { display: flex; flex-wrap: wrap; gap: 1rem; }
.sti-footer-menu a { color: white; font-size: .9rem; }
.sti-content-box { border: 1px solid #d3dce5; border-radius: .35rem; background: #fff; height: auto; display: flow-root; box-shadow: 0 2px 5px #153b550b; }
.sti-content-box:not(:last-child) { margin-bottom: 1.5rem; }
.sti-content-box > h3 { padding: .85rem 1.1rem; margin: 0; background: #22496e; color: white; font-size: .95rem; line-height: 1.5; border-radius: .3rem .3rem 0 0; }
.sti-content-box-body { padding: 1.15rem; display: flow-root; }
.sti-content-box-body > :last-child { margin-bottom: 0; }
.sti-capability { padding: 1.75rem 1.25rem; border: 1px solid #d3dce5; border-radius: .4rem; background: #fff; height: auto; text-align: center; box-shadow: 0 3px 8px #153b5510; }
.sti-capability-icon { display: inline-flex; align-items: center; justify-content: center; width: 3.5rem; height: 3.5rem; border-radius: 50%; background: #315e8b; color: white; margin-bottom: 1rem; }
.sti-capability-icon svg { width: 1.9rem; height: 1.9rem; }
.sti-capability h1, .sti-capability h2, .sti-capability h3 { margin: 0; font-size: 1.3rem; }
.sti-capability a { text-decoration: none; }
.sti-section-heading { text-align: center; padding-block: .5rem; font-size: 1.5rem; font-weight: 600; }
.home .sti-content-inner > .l-section:first-child { text-align: center; }
.home .sti-content-inner blockquote { margin: 0; padding: 0; border: 0; font-style: normal; }
.home .sti-content-inner blockquote::before, .home .sti-content-inner blockquote::after { display: none; }
.home .sti-content-inner blockquote h1, .home .sti-content-inner blockquote h2, .home .sti-content-inner blockquote h3 { font-size: clamp(1.4rem, 2.5vw, 2rem); }
.sti-context-navigation { margin: 0 0 1.5rem; padding: 0 0 1.25rem; border-bottom: 1px solid #d4dee7; }
.sti-context-menu { display: flex; flex-wrap: wrap; gap: .55rem; list-style: none; margin: 0; padding: 0; }
.sti-context-menu a { display: block; padding: .5rem .8rem; border: 1px solid #ccd8e2; border-radius: 3px; font-size: .9rem; text-decoration: none; background: #f5f8fb; }
.sti-context-menu .current-menu-item > a { background: #22496e; border-color: #22496e; color: white; }
.sti-context-menu > li { position: relative; }
.sti-context-menu .sub-menu { display: none; position: absolute; z-index: 30; min-width: 220px; list-style: none; padding: .4rem; margin: 0; background: white; border: 1px solid #ccd8e2; box-shadow: 0 5px 15px #14364f18; }
.sti-context-menu li:hover > .sub-menu, .sti-context-menu li:focus-within > .sub-menu { display: block; }
.sti-context-menu .sub-menu li + li { margin-top: .35rem; }
.page-id-619 .sti-restored-button { display: block; text-align: center; padding: 1rem; margin-block: .8rem; width: 100%; }
.sti-recovered-column { float: left; padding-inline: .65rem; margin-bottom: 1.5rem; }
.sti-recovered-column.one_third, .sti-recovered-column.one_third_last { width: 33.333%; }
.sti-recovered-column.two_thirds { width: 66.667%; }
.sti-recovered-column.one_third_last + * { clear: both; }
.sti-number { text-align: center; padding: 1rem; }
.sti-number strong { display: block; font-size: 2.5rem; color: #185a90; }
.sti-number span { display: block; }
.sti-dropcap { float: left; font-size: 3rem; line-height: 1; margin-right: .4rem; }
.sti-team-member { padding: 1rem; margin-bottom: 1.5rem; }
.sti-team-member img { max-height: 280px; width: auto; object-fit: contain; }
.page-id-352 .sti-team-member { display: grid; grid-template-columns: 180px minmax(0,1fr); column-gap: 2rem; padding: 1.5rem 0 2rem; border-bottom: 1px solid #d6dfe7; }
.page-id-352 .sti-team-member > img { grid-column: 1; grid-row: 1 / span 3; width: 180px; max-height: 190px; }
.page-id-352 .sti-team-member > h3, .page-id-352 .sti-team-member > p, .page-id-352 .sti-team-member > div { grid-column: 2; margin-top: 0; }
.sti-testimonial blockquote { margin: 0 0 .5rem; border-left: 3px solid #d0a34f; padding-left: 1.25rem; }
.sti-testimonial figcaption { font-weight: bold; }
.sti-business-contact { font-style: normal; }
/* The recovered Contact form uses a layout table with a 10% input column.
   Override its presentation only; keep the original fields and preview lock. */
.page-id-170 .wpcf7, .page-id-170 .wpcf7 form, .page-id-170 .wpcf7 fieldset { width: 100%; min-width: 0; }
.page-id-170 .wpcf7 fieldset { display: block; margin: 0; padding: 0; border: 0; }
.page-id-170 .wpcf7 .sti-private-form-note { margin-bottom: 1.5rem; text-align: left; }
.page-id-170 .wpcf7 table { width: 100% !important; table-layout: fixed; border-collapse: separate; border-spacing: 0; margin: 0; }
.page-id-170 .wpcf7 table td { vertical-align: top; border: 0; padding: 0 0 1.25rem; text-align: left !important; }
.page-id-170 .wpcf7 table td:first-child { width: 50% !important; padding-right: 1.5rem; }
.page-id-170 .wpcf7 table td:nth-child(2) { width: 50%; padding-left: 1.5rem; }
.page-id-170 .wpcf7 table p { margin: 0 0 .75rem; }
.page-id-170 .wpcf7 label, .page-id-170 .wpcf7 .wpcf7-form-control-wrap { display: block; width: 100%; min-width: 0; }
.page-id-170 .wpcf7 label { overflow-wrap: break-word; word-break: normal; }
.page-id-170 .wpcf7 input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.page-id-170 .wpcf7 textarea, .page-id-170 .wpcf7 select { width: 100%; max-width: 100%; min-width: 0; padding: .7rem .8rem; font: inherit; line-height: 1.5; }
.page-id-170 .wpcf7 textarea { min-height: 12rem; resize: vertical; }
.page-id-170 .wpcf7 input[type="submit"], .page-id-170 .wpcf7 button[type="submit"] { padding: .7rem 1.4rem; font: inherit; }
@media (max-width: 700px) {
  .page-id-170 .wpcf7 table, .page-id-170 .wpcf7 table tbody, .page-id-170 .wpcf7 table tr { display: block; width: 100%; }
  .page-id-170 .wpcf7 table td, .page-id-170 .wpcf7 table td:first-child, .page-id-170 .wpcf7 table td:nth-child(2) { display: block; width: 100% !important; padding: 0 0 1.25rem; }
}
@media (max-width: 900px) {
  .sti-header-inner, .sti-navigation, .sti-page-content, .sti-footer-inner { width: min(100% - 1.5rem, 1180px); }
  .sti-header-inner { gap: .7rem; min-height: 85px; flex-wrap: wrap; }
  .sti-brand-name { font-size: .9rem; max-width: 13rem; }
  .sti-brand img { max-width: 230px; max-height: 65px; }
  .sti-wordmark { font-size: 2.7rem; }
  .sti-menu-toggle { display: block; }
  .sti-navigation-ready .sti-navigation { display: none; }
  .sti-navigation-ready .sti-navigation.is-open { display: block; }
  .sti-primary-menu { display: block; padding-bottom: 1rem; }
  .sti-primary-menu ul, .sti-primary-menu ul ul { display: block; position: static; box-shadow: none; border: none; min-width: 0; max-width: none; padding-left: 1rem; }
  .sti-primary-menu a { padding: .55rem .75rem; }
  .sti-primary-menu ul, .sti-primary-menu ul a { background: transparent; color: white; }
  .sti-context-menu .sub-menu { position: static; box-shadow: none; }
  .sti-content-inner .g-cols.cols_4, .sti-content-inner .g-cols.cols_5, .sti-content-inner .g-cols.cols_6 { grid-template-columns: repeat(2, minmax(0,1fr)); --cols: 2; }
  .sti-content-inner { padding: 1.25rem; }
  .sti-page-title { padding: 1.25rem; }
  .sti-page-main { padding-block: 1.25rem 2rem; }
}
@media (max-width: 600px) {
  .sti-brand { flex: 1 1 70%; }
  .sti-employee-login { order: 3; padding: .4rem .65rem; font-size: .85rem; }
  .sti-menu-toggle { margin-left: auto; }
  .sti-content-inner .g-cols.via_grid { grid-template-columns: minmax(0,1fr) !important; --cols: 1; }
  .sti-content-inner .g-cols.via_grid > .wpb_column { grid-column: auto !important; }
  .sti-content-inner .g-cols.via_flex > .wpb_column { width: 100% !important; flex-basis: 100%; margin-inline: 0; }
  .sti-content-inner .g-cols.via_flex > .wpb_column + .wpb_column { margin-top: 1.5rem; }
  .page-id-352 .sti-team-member { display: block; }
  .page-id-352 .sti-team-member > img { margin-bottom: 1rem; }
  .sti-recovered-column.one_third, .sti-recovered-column.one_third_last, .sti-recovered-column.two_thirds { float: none; width: 100%; padding: 0; }
}
.sti-portal-accordion { margin-block: 1rem 1.5rem; }
.sti-portal-panel { margin-block: .65rem; border: 1px solid #cbd2d9; border-radius: .35rem; background: #fff; color: #162332; }
.sti-portal-panel > summary { padding: .9rem 1rem; cursor: pointer; font-weight: 650; line-height: 1.5; overflow-wrap: anywhere; }
.sti-portal-panel > summary:focus-visible { outline: 3px solid #285d91; outline-offset: 3px; }
.sti-portal-panel[open] > summary { border-bottom: 1px solid #dbe1e7; background: #f2f5f8; }
.sti-portal-panel-content { padding: 1rem; min-width: 0; display: flow-root; }
/* The vendor emits a legacy inline max-width on each secure iframe. Expand
   the outer frame to the available panel width; its own viewer handles fit. */
.sti-content-inner [class^="wppdfemb-frame-container-"] { width: 100%; max-width: 100%; margin-inline: auto; }
.sti-content-inner iframe.pdfembed-iframe { width: 100% !important; max-width: 100% !important; display: block; margin-inline: auto; border: 0; }
.sti-portal-panel-content iframe.pdfembed-iframe { min-height: 650px; }
@media (max-width: 600px) {
  .sti-portal-panel-content { padding: .6rem; }
  .sti-portal-panel > summary { padding: .8rem; }
  .sti-portal-panel-content iframe.pdfembed-iframe { min-height: 420px; }
}
