/* Shared brand refresh and ServicePage-v02 layout. */
:root { --bd-menu-line-height: 50px; --bd-navy: #293273; --bd-gold: #f3aa1d; --bd-ink: #55586b; --bd-muted: #626474; --bd-paper: #f5f5f7; --bd-header: #e8e6e6; --bd-gutter: 40px; }
body { background: #fff; color: var(--bd-ink); font-size: clamp(18px, 1.5vw, 22.8px); font-weight: 400; }
h1, h2, h3, h4 { color: var(--bd-navy); }
a { color: var(--bd-navy); }
a:hover, a:focus { color: #78500b; }
a:focus-visible, button:focus-visible, summary:focus-visible { outline: 3px solid var(--bd-gold); outline-offset: 4px; }
.button, .searchform input[type=submit] { background: var(--bd-gold); color: var(--bd-navy); }
.button:hover, .button:focus { background: var(--bd-navy); color: #fff; }
.wrapper-header { position: relative; overflow: hidden; background: var(--bd-header); color: var(--bd-navy); padding: 58px var(--bd-gutter); font-size: clamp(19.2px, 1.92vw, 28.8px); }
.wrapper-header::after { content: ''; position: absolute; pointer-events: none; width: 1372px; height: 660px; right: -686px; top: 20px; opacity: .28; transform: rotate(20deg); background: #fff; -webkit-mask: url('../img/service/grid-tile.svg') 0 0 / 74.54px 74.54px repeat; mask: url('../img/service/grid-tile.svg') 0 0 / 74.54px 74.54px repeat; }
.wrapper-header > * { position: relative; z-index: 1; }
.wrapper-header span { color: #98630b; }
.wrapper-header a { color: var(--bd-navy); }
#logo { max-width: 480px; width: 100%; margin: 0; background: var(--bd-header); }
#logo img { mix-blend-mode: multiply; }
.wrapper-navigation { background: #fff; color: var(--bd-navy); border-bottom: var(--bd-menu-line-height) solid var(--bd-navy); padding: 25px var(--bd-gutter); font-size: clamp(14.4px, 1.44vw, 21.6px); }
.wrapper-navigation a { color: var(--bd-navy); }
.wrapper-navigation .top-bar ul li a { border-color: #a4a8c3; }
.wrapper-navigation .grid-x > .cell:first-child { width: 100%; }
.wrapper-navigation .grid-x > .cell:last-child { display: none; }
.wrapper-navigation .dropdown.menu { justify-content: center; flex-wrap: wrap; gap: 10px 0; }
.wrapper-navigation .top-bar { display: block; }
.wrapper-navigation .dropdown.menu > li > a { padding: 0 12px; }
.wrapper-navigation .dropdown.menu > li.is-active > a, .wrapper-navigation .menu .is-active > a { background: transparent; color: var(--bd-navy); text-decoration: none; }
.wrapper-navigation .dropdown.menu > li.current-menu-item > a, .wrapper-navigation .dropdown.menu > li.current-menu-ancestor > a, .wrapper-navigation .menu .current-menu-item > a, .wrapper-navigation .menu .current-menu-ancestor > a { text-decoration: underline; text-underline-offset: 5px; }
.wrapper-navigation .is-dropdown-submenu { background: #fff !important; padding: 12px 0; border: 1px solid #ddd; box-shadow: 0 8px 24px #2932731a; }
.wrapper-navigation .is-dropdown-submenu a { padding: 12px 18px; }
.wrapper-navigation .is-dropdown-submenu li a:hover { background: var(--bd-paper) !important; }
.wrapper-navigation .dropdown.menu > li.is-dropdown-submenu-parent > a::after { border-color: var(--bd-navy) transparent transparent !important; }
.wrapper-navigation .title-bar { background: #fff; color: var(--bd-navy); justify-content: center; }
.wrapper-navigation .menu-icon::after { background: var(--bd-navy); box-shadow: 0 7px 0 var(--bd-navy), 0 14px 0 var(--bd-navy); }
.wrapper-navigation .drilldown a, .wrapper-navigation .drilldown .is-drilldown-submenu { background: #fff; }
.menu-sticky { padding-top: 0; }
.menu-sticky .wrapper-navigation { position: relative; top: auto; background: #fff; padding: 25px var(--bd-gutter); }
.wrapper.wrapper-message { background: var(--bd-navy); padding: 20px 40px; }
.wrapper-message p { margin-bottom: 0; }
.wrapper-banner, .wrapper-featured { background: var(--bd-gold); color: var(--bd-navy); }
.wrapper-banner .page-banner-text a { color: var(--bd-navy); }
.wrapper-featured .cell:nth-child(2) .mask { background: #29327380; }
.wrapper-featured .cell:nth-child(3) .mask { background: #f3aa1d80; }
.wrapper-footer { background: var(--bd-gold); color: var(--bd-navy); font-size: 13.2px; line-height: 1.9; padding: 34px var(--bd-gutter); }
.wrapper-footer .cell:first-child { text-align: left; }
.wrapper-footer a { color: var(--bd-navy); }
.wrapper-footer p + p { margin-top: 22px; }
.wrapper-footer iframe { background: #fff; }
.wrapper-footer .cell:last-child > div { margin-left: auto; max-width: 230px !important; }
.wrapper-foot-note { background: var(--bd-paper); color: var(--bd-navy); border: 0; padding: 22px var(--bd-gutter); font-size: 15.6px; }
.wrapper-foot-note ul { display: flex; flex-wrap: wrap; list-style: none; margin: 0; }
.wrapper-foot-note ul li a { border-color: #b0b3c7; color: var(--bd-navy); }
.wrapper-foot-note .design-by { font-size: 14.4px; color: var(--bd-navy); }
.service-page { font-size: clamp(18px, 1.5vw, 22.8px); line-height: 1.35; color: var(--bd-muted); font-weight: 300; }
.service-page h2 { font-size: 1.44em; line-height: 1.3; margin: 0 0 28px; }
.service-page p { line-height: inherit; margin: 0 0 20px; }
.brand-pattern { position: relative; overflow: hidden; }
.brand-pattern::before { content: ''; position: absolute; pointer-events: none; inset: -80px auto -80px -90px; width: 298.16px; opacity: .07; transform: rotate(20deg); background: currentColor; -webkit-mask: url('../img/service/grid-tile.svg') 0 0 / 74.54px 74.54px repeat; mask: url('../img/service/grid-tile.svg') 0 0 / 74.54px 74.54px repeat; }
.brand-pattern > * { position: relative; }
.service-hero { display: grid; grid-template-columns: 1fr 2fr; min-height: 440px; width: 100vw; margin-left: calc(50% - 50vw); background: var(--bd-gold); }
.service-hero-copy { padding: 54px var(--bd-gutter); color: var(--bd-navy); font-weight: 300; }
.service-hero h1 { font-size: clamp(30px, 3vw, 46px); line-height: 1.02; max-width: none; margin: 0 0 28px; }
.service-hero-copy p { font-size: 1.15em; max-width: none; }
.service-hero-image { width: 100%; height: 100%; max-height: 520px; object-fit: cover; object-position: center 38%; }
.service-intro { position: relative; padding: 42px var(--bd-gutter) 38px; }
.service-intro-copy { width: 64%; padding-right: 30px; }
.service-contact { position: relative; float: right; width: 33.333%; margin: -95px -10px 24px 30px; background: var(--bd-navy); border-left: 7px solid var(--bd-gold); padding: 20px 18px; color: #ececf4; z-index: 2; font-size: .95em; }
.service-contact h2 { color: var(--bd-gold); font-size: 1.2em; margin-bottom: 34px; }
.service-contact p { line-height: 1.6; margin-bottom: 24px; }
.service-contact a { color: #fff; overflow-wrap: anywhere; }
.service-contact span { color: var(--bd-gold); }
.service-list-title { clear: both; color: var(--bd-ink); margin: 16px 0 14px; }
.service-list { columns: 3; column-gap: 48px; list-style: none; margin: 0; padding: 0; }
.service-list li, .service-accordion-body li { position: relative; padding-left: 22px; margin-bottom: 6px; line-height: 1.3; break-inside: avoid; }
.service-list li::before, .service-accordion-body li::before { content: ''; position: absolute; left: 0; top: .35em; width: 12px; height: 12px; background: var(--bd-gold); }
/* Match legacy page-content bullets to the new service-page squares. */
.wrapper-content article ul { list-style: none; margin-left: 0; padding-left: 0; }
.wrapper-content article ul > li { position: relative; padding-left: 22px; margin-bottom: 6px; }
.wrapper-content article ul > li::before { content: ''; position: absolute; left: 0; top: .5em; width: 12px; height: 12px; background: var(--bd-gold); }
.wrapper-content article li > ul { margin-top: 6px; }
.service-section { position: relative; display: grid; grid-template-columns: 2fr 1fr; align-items: stretch; width: 100vw; margin-left: calc(50% - 50vw); background: var(--bd-paper); }
.service-section-copy { padding: 46px var(--bd-gutter); }
.service-section-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; margin-bottom: 30px; }
.service-section-heading h2 { margin: 0; }
.service-section-heading > span { color: var(--bd-muted); font-size: .65em; white-space: nowrap; }
.service-section-image { position: absolute; top: 0; right: 0; display: block; width: 33.333%; height: 100%; object-fit: cover; }
.service-section--reverse { grid-template-columns: 1fr 2fr; background: #fff; }
.service-section--reverse .service-section-copy { grid-column: 2; grid-row: 1; }
.service-section--reverse .service-section-image { right: auto; left: 0; }
.service-section--no-image { grid-template-columns: 1fr; }
.service-section--no-image .service-section-copy { grid-column: 1; }
.service-accordion { margin: 0 0 44px; }
.service-accordion:last-child { margin-bottom: 0; }
.service-accordion summary { list-style: none; cursor: pointer; position: relative; padding-left: 20px; }
.service-accordion summary:focus:not(:focus-visible) { outline: none; }
.service-accordion summary::-webkit-details-marker { display: none; }
.service-accordion summary::before { content: ''; position: absolute; left: 0; top: 10px; width: 10px; height: 10px; border: solid var(--bd-navy); border-width: 0 2px 2px 0; transform: rotate(-45deg); transition: transform .35s ease, top .35s ease; }
.service-accordion[open]:not(.is-closing) summary::before { transform: rotate(45deg); top: 7px; }
.service-accordion-title { display: block; color: var(--bd-navy); font-weight: 700; margin-bottom: 24px; }
.service-accordion-summary { display: block; font-weight: 300; }
.service-accordion-panel { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .4s ease; }
.service-accordion[open]:not(.is-closing) > .service-accordion-panel { grid-template-rows: 1fr; }
.service-accordion-panel-inner { min-height: 0; overflow: hidden; }
.service-accordion-body { padding: 20px 0 0 20px; }
.service-accordion-body p:has(+ ul) { margin-bottom: 0; }
.service-accordion-body ul { list-style: none; margin: 0 0 26px; padding: 0; }
.service-accordion-body li { margin: 0; }
.service-faq { position: relative; display: grid; grid-template-columns: 60% 40%; width: 100vw; margin-left: calc(50% - 50vw); background: var(--bd-navy); color: #e3e5f0; }
.service-faq::before { inset: auto auto calc(-8% + 12.2567vw - 50px) calc(-18.2567% + 100px); width: 73.54%; height: 101.82%; opacity: .55; z-index: 0; background-color: #161d4b; transform-origin: left bottom; -webkit-mask-position: left bottom; mask-position: left bottom; -webkit-mask-size: 149.08px 149.08px; mask-size: 149.08px 149.08px; -webkit-mask-repeat: space repeat; mask-repeat: space repeat; }
.service-faq-copy { position: relative; z-index: 1; padding: 42px var(--bd-gutter); }
.service-faq h2 { color: var(--bd-gold); margin-bottom: 24px; }
.service-faq h3 { color: #fff; margin: 0; line-height: 1.25; }
.service-faq p { margin: 0; }
.service-faq-item { margin-bottom: 26px; }
.service-faq-item:last-child { margin-bottom: 0; }
.service-faq-image { position: absolute; top: auto; right: -8%; bottom: -20%; z-index: 1; display: block; width: 48%; height: 120%; object-fit: cover; object-position: right bottom; }
@media (min-width: 1700px) { .wrapper-header > .grid-x, .wrapper-navigation > .grid-x { max-width: 1700px; margin-left: auto; margin-right: auto; } }
@media (min-width: 901px) { .wrapper-header .grid-x { display: flex; align-items: center; justify-content: space-between; } .wrapper-header .cell:first-child { width: auto; flex: 0 1 65%; } .wrapper-header .cell:last-child { width: auto; max-width: 35%; flex: 0 0 auto; margin-left: auto; text-align: left; } }
@media (max-width: 900px) {
  .wrapper-header { padding-top: 28px; padding-bottom: 28px; font-size: 16.8px; }
  #logo { max-width: 300px; }
  .service-hero { min-height: 350px; grid-template-columns: 40% 60%; }
  .service-hero-copy { padding: 36px var(--bd-gutter); }
  .service-intro-copy { width: 60%; padding-right: 10px; }
  .service-contact { width: 38%; margin-right: 0; }
  .service-list { column-gap: 24px; }
  .service-section-copy { padding: 34px var(--bd-gutter); }
  .service-section-heading { flex-wrap: wrap; gap: 8px; }
  .service-accordion-title { margin-bottom: 16px; }
  .service-faq-copy { padding: 34px var(--bd-gutter); }
}
@media (min-width: 640px) and (max-width: 1023px) {
  .service-faq { grid-template-columns: 1fr; }
  .service-faq-copy { z-index: 2; }
  .service-faq-image { right: 0; bottom: 0; width: 65%; height: 100%; object-fit: contain; object-position: right bottom; opacity: .3; pointer-events: none; }
}
@media (max-width: 639px) {
  :root { --bd-gutter: 24px; }
  .wrapper-header .cell:last-child { margin-top: 20px; }
  .wrapper-navigation, .menu-sticky .wrapper-navigation { padding: 10px 20px; border-bottom-width: var(--bd-menu-line-height); }
  .wrapper-navigation .dropdown.menu { display: block; }
  .wrapper-navigation .top-bar ul li a { padding: 14px 12px; border-left: 0; }
  .service-hero { grid-template-columns: 1fr; }
  .service-hero-copy { padding: 34px 24px; }
  .service-hero h1 { max-width: 100%; font-size: clamp(30px, 8vw, 38px); }
  .service-hero-copy p { max-width: 100%; }
  .service-hero-image { height: 260px; }
  .service-intro { padding: 0 24px 32px; display: flex; flex-direction: column; }
  .service-contact { float: none; width: 100%; margin: -20px 0 30px; padding: 24px; }
  .service-contact h2 { margin-bottom: 18px; }
  .service-intro-copy { width: 100%; padding: 0; }
  .service-list { columns: 1; }
  .service-section, .service-section--reverse { display: flex; flex-direction: column; min-height: 0; }
  .service-section-copy { padding: 32px 24px; }
  .service-section-image { position: static; width: 100%; height: 300px; max-height: 360px; object-position: center 30%; }
  .service-accordion { margin-bottom: 32px; }
  .service-faq { grid-template-columns: 1fr; }
  /* Keep the desktop pattern intact; crop it within the narrower FAQ section. */
  .service-faq::before { width: 1103.1px; height: 1065.22px; inset: auto auto -50px -450px; }
  .service-faq-copy { padding: 34px 24px; }
  .service-faq-image { position: static; width: 100%; height: 400px; object-fit: contain; object-position: center top; }
  .wrapper-footer .cell:last-child > div { margin: 24px auto 0; }
  .wrapper-foot-note ul { justify-content: center; gap: 10px 0; }
  .wrapper-foot-note .design-by { display: inline-block; margin-top: 20px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .service-accordion summary::before, .service-accordion-panel { transition: none; } }

/* Shared full-width copy alignment across standard and service templates. */
.wrapper-content:not(.wrapper-header) { padding-inline: var(--bd-gutter); }
.wrapper-content:not(.wrapper-header, .wrapper-footer, .wrapper-foot-note) { font-weight: 300; line-height: 1.35; color: var(--bd-muted); }
.wrapper-content:not(.wrapper-header) > .grid-padding-x { margin-inline: -15px; }
.wrapper-content:not(.wrapper-header) > .grid-padding-x > .cell { padding-inline: 15px; }
.wrapper-content article p { line-height: inherit; margin-bottom: 20px; }
.wrapper-content article h2 { font-size: 1.44em; line-height: 1.3; margin-bottom: 28px; }
.wrapper-banner .page-banner-text { padding-inline: var(--bd-gutter); }
.wrapper-banner { font-size: clamp(18px, 1.5vw, 22.8px); line-height: 1.35; }
.wrapper-banner .page-banner-text h1 { font-size: clamp(30px, 3vw, 46px); line-height: 1.02; }
.wrapper-banner .page-banner-text p { font-size: 1.15em; line-height: inherit; }
@media (max-width: 639px) {
  .wrapper-banner .page-banner-text h1 { font-size: clamp(30px, 8vw, 38px); }
}

/* One typography scale for all page templates, independent of nested columns. */
:root {
  --bd-copy-size: clamp(18px, 1.5vw, 22.8px);
  --bd-h1-size: clamp(30px, 3vw, 46px);
  --bd-h2-size: clamp(25.92px, 2.16vw, 32.832px);
  --bd-h3-size: clamp(22px, 1.8vw, 28.8px);
}
:is(.service-page > :not(.service-hero), .wrapper-content:not(.wrapper-header, .wrapper-footer, .wrapper-foot-note)) {
  font-family: "Open Sans", sans-serif;
  font-size: var(--bd-copy-size);
  font-weight: 300;
  line-height: 1.35;
}
.service-contact { font-size: var(--bd-copy-size); }
:is(.service-page > :not(.service-hero), .wrapper-content:not(.wrapper-header, .wrapper-footer, .wrapper-foot-note)) :is(p, ul, ol, li, blockquote, label, input, textarea, select) {
  font-family: "Open Sans", sans-serif;
  font-size: var(--bd-copy-size);
  font-weight: 300;
  line-height: 1.35;
}
:is(.service-page > :not(.service-hero), .wrapper-content:not(.wrapper-header, .wrapper-footer, .wrapper-foot-note)) :is(h1, h2, h3, h4, h5, h6) {
  font-family: "Open Sans", sans-serif;
  font-weight: 700;
  font-style: normal;
  letter-spacing: normal;
  text-transform: none;
  line-height: 1.3;
}
:is(.service-page > :not(.service-hero), .wrapper-content:not(.wrapper-header, .wrapper-footer, .wrapper-foot-note)) h1 { font-size: var(--bd-h1-size); line-height: 1.02; }
:is(.service-page > :not(.service-hero), .wrapper-content:not(.wrapper-header, .wrapper-footer, .wrapper-foot-note)) h2 { font-size: var(--bd-h2-size); }
:is(.service-page > :not(.service-hero), .wrapper-content:not(.wrapper-header, .wrapper-footer, .wrapper-foot-note)) h3 { font-size: var(--bd-h3-size); }
:is(.service-page > :not(.service-hero), .wrapper-content:not(.wrapper-header, .wrapper-footer, .wrapper-foot-note)) :is(h4, h5, h6) { font-size: var(--bd-copy-size); }
/* Editor-added font sizes should inherit the shared text or heading style. */
:is(.service-page > :not(.service-hero), .wrapper-content article) :is(span, a, strong, em)[style*="font-size"] { font-size: inherit !important; }
@media (max-width: 639px) {
  :root { --bd-h1-size: clamp(30px, 8vw, 38px); }
}
.wrapper-content article :is(td, th) { overflow-wrap: anywhere; }

/* Distribute footer groups across the shared page margins. */
.wrapper-footer > .grid-x, .wrapper-foot-note > .grid-x { justify-content: space-between; }
@media (min-width: 640px) {
  .wrapper-footer > .grid-x > .cell, .wrapper-foot-note > .grid-x > .cell { width: auto; min-width: 0; flex: 0 1 auto; }
  .wrapper-footer > .grid-x > .cell:first-child { max-width: calc(100% - 260px); }
  .wrapper-footer > .grid-x > .cell:last-child { flex: 0 0 260px; text-align: right; }
  .wrapper-foot-note > .grid-x > .cell:last-child { text-align: right; }
}
