/* ============================= TOKENS ============================= */:root{  --navy: #0B1F33;  --navy-deep: #071522;  --accent-blue: #376ba7;  --accent-blue-light: #99bde2;  --grey-mid: #6B737C;  --grey-light: #EEF1F3;  --off-white: #F7F8F8;  --white: #FFFFFF;  --charcoal: #1B1F23;  --line: rgba(11,31,51,0.14);  --line-on-navy: rgba(247,248,248,0.18);  --font-sans: 'Archivo', -apple-system, 'Helvetica Neue', Arial, sans-serif;  --font-serif: 'Fraunces', Georgia, 'Times New Roman', serif;  --max: 1240px;  --gutter: clamp(20px, 5vw, 64px);  --radius: 3px;}*,*::before,*::after{ box-sizing: border-box; }html{ scroll-behavior: smooth; }@media (prefers-reduced-motion: reduce){  html{ scroll-behavior: auto; }  *,*::before,*::after{ animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; scroll-behavior: auto !important; }}body{  margin:0;  min-width: 320px;  font-family: var(--font-sans);  background: var(--off-white);  color: var(--charcoal);  -webkit-font-smoothing: antialiased;  line-height: 1.5;}img,svg{ display:block; max-width:100%; height: auto;}a{ color: inherit; text-decoration: none; }h1,h2,h3,h4,p{ margin:0; }ul{ margin:0; padding:0; list-style:none; }button{ font-family: inherit; cursor:pointer; }.skip-link{  position:absolute; left:-9999px; top:auto; background:var(--navy); color:var(--white);  padding:12px 20px; z-index:200; font-size:14px;}.skip-link:focus{ left: var(--gutter); top: 12px; }:focus-visible{ outline: 2px solid var(--navy); outline-offset: 3px; }/* Uppercase label utility */.eyebrow{  font-family: var(--font-sans);  font-weight: 600;  font-size: 12px;  letter-spacing: 0.16em;  text-transform: uppercase;  color: var(--grey-mid);}.eyebrow.on-navy{ color: rgba(247,248,248,0.62); }.serif-italic{ font-family: var(--font-serif); font-style: italic; font-weight: 400; }/* Links with underline animation */.text-link{  position:relative;  display:inline-flex; align-items:center; gap:8px;  font-weight:600; font-size:14px; letter-spacing:0.02em;  color: var(--navy);  padding-bottom: 3px;  border-bottom: 1px solid var(--line);  transition: border-color .25s ease, gap .25s ease;}.text-link:hover, .text-link:focus-visible{ border-color: var(--accent-blue); gap:12px; }.text-link.on-navy{ color: var(--white); border-color: var(--line-on-navy); }.text-link.on-navy:hover{ border-color: var(--white); }.text-link .arrow{ transition: transform .25s ease; }.text-link:hover .arrow{ transform: translateX(2px); }/* Buttons */.btn{  display:inline-flex; align-items:center; justify-content:center; gap:10px;  font-family: var(--font-sans); font-weight:700; font-size:13px; letter-spacing:0.08em; text-transform: uppercase;  padding: 16px 28px;  border: 1px solid transparent;  border-radius: var(--radius);  transition: background-color .2s ease, color .2s ease, border-color .2s ease;  white-space: nowrap;}.btn-primary{ background: var(--navy); color: var(--white); border-color: var(--navy); }.btn-primary:hover, .btn-primary:focus-visible{ background: #14324f; border-color:#14324f; }.btn-accent{ background: #2c5686; color: var(--white); border-color: #2c5686; }.btn-accent:hover, .btn-accent:focus-visible{ background: #1f3e61; border-color:#1f3e61; }.btn-ghost-light{ background: transparent; color: var(--white); border-color: rgba(247,248,248,0.55); }.btn-ghost-light:hover, .btn-ghost-light:focus-visible{ background: rgba(247,248,248,0.1); border-color: var(--white); }.btn-white{ background: var(--white); color: var(--navy); border-color: var(--white); }.btn-white:hover, .btn-white:focus-visible{ background: var(--grey-light); border-color: var(--grey-light); }.btn-ghost-dark{ background: transparent; color: var(--navy); border-color: var(--line); }.btn-ghost-dark:hover, .btn-ghost-dark:focus-visible{ background: var(--navy); color: var(--white); border-color: var(--navy); }.btn-small{ padding: 12px 20px; font-size: 12px; }/* ============================= HEADER ============================= */.site-header{  position: static;  background: rgba(247,248,248,0.92);  backdrop-filter: saturate(140%) blur(10px);  -webkit-backdrop-filter: saturate(140%) blur(10px);  border-bottom: 1px solid var(--line);  transition: box-shadow .25s ease, border-color .25s ease;}.site-header.is-scrolled{ box-shadow: 0 8px 24px -18px rgba(11,31,51,0.35); }.header-inner{  display:flex; align-items:center; justify-content:space-between;  padding-top: 18px; padding-bottom: 18px; gap: 24px;}.header-inner::before, .header-inner::after{ content: none; }.brand{  display: flex;  align-items: center;  white-space: nowrap;}.brand-logo{  height: 96px;  width: auto;  display: block;}.nav-actions{ display:flex; align-items:center; gap: clamp(24px, 3vw, 44px); }/* ---- Primary navigation ----   Styled from the CMS output exactly as generated:     <div class="nav" id="navInsprimary"><ul id="primary" class="menu"><li class="nodiv ..."><a>…</a></li>…</ul></div>   .main-nav is just the <nav aria-label="Primary"> landmark wrapper in the header template. */.main-nav{ display:flex; align-items:center; }.site-header .nav .menu{ display:flex; align-items:center; gap: clamp(18px, 2.4vw, 34px); }.site-header .nav .menu a{  display: block;  font-size: 13px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase;  color: var(--charcoal); position:relative; padding: 6px 0;}.site-header .nav .menu a::after{  content:""; position:absolute; left:0; right:0; bottom:0; height:1px; background: var(--accent-blue);  transform: scaleX(0); transform-origin: left; transition: transform .25s ease;}/* underline on hover/focus, and kept on for the current page (the CMS adds .linkActive) */.site-header .nav .menu a:hover::after,.site-header .nav .menu a:focus-visible::after,.site-header .nav .menu a.linkActive::after{ transform: scaleX(1); }/* The LAST item in the menu (Contact) is styled as a button purely by position, so the CMS   markup needs no extra class. Child combinators keep this from reaching into any future   sub-menus. Drops the underline animation, as a button shouldn't have one. */.site-header .nav .menu > li:last-child > a{  padding: 10px 22px;  color: var(--white);  background: var(--navy);  border-radius: var(--radius);  font-weight: 700;  letter-spacing: 0.08em;  transition: background-color .2s ease;}.site-header .nav .menu > li:last-child > a:hover,.site-header .nav .menu > li:last-child > a:focus-visible{  background: #14324f;  color: var(--white);}.site-header .nav .menu > li:last-child > a::after{ content: none; }/* Below the mobile-menu breakpoint the primary nav is hidden and the hamburger (pushy.css) takes over.   MUST match the 900px breakpoint in pushy.css. It lives here, beside the nav's own rules, so it works   whatever order the stylesheets load in and with or without the <nav class="main-nav"> wrapper.   (.site-header prefix = higher specificity than the base .main-nav rule above.) */@media (max-width: 900px){  .site-header .main-nav,  .site-header .nav{ display: none; }}.header-actions{ display:flex; align-items:center; gap:18px; }/* ============================= PHOTO PANELS (art-directed photo / placeholder blocks) ============================= */.photo-panel{  position:relative; overflow:hidden; background: var(--navy);  color: var(--off-white);}.photo-panel::before{  content:""; position:absolute; inset:0;  background-image:    repeating-linear-gradient(var(--panel-angle, 132deg), rgba(247,248,248,var(--panel-line-op,0.06)) 0 1px, transparent 1px calc(var(--panel-gap, 26px)));}.photo-panel::after{  content:""; position:absolute; inset:0;  background: radial-gradient(120% 140% at var(--panel-focus, 30% 20%), rgba(247,248,248,0.10), transparent 55%),              linear-gradient(180deg, rgba(7,21,34,0) 0%, rgba(7,21,34,0.55) 100%);}.panel-navy-deep{ background: var(--navy-deep); }.panel-tone{ background: linear-gradient(150deg, #0B1F33 0%, #142c46 55%, #1f4874 100%); }/* Real photograph fills a panel: drop the diagonal placeholder texture, keep the legibility gradient */.has-photo{ background-size: cover; background-position: var(--panel-focus, 50% 50%); background-repeat: no-repeat; }.has-photo::before{ content: none; }/* Hero photo: flat dark overlay across the whole image, in addition to the bottom legibility gradient */.hero.has-photo::before{  content: "";  position: absolute; inset: 0;  background: rgba(7,21,34,0.6);  z-index: 1;}/* ============================= HERO ============================= */.hero{  position:relative; color: var(--white); overflow:hidden;  --panel-angle: 118deg; --panel-gap: 34px; --panel-line-op: 0.08; --panel-focus: 22% 18%;}.hero-inner{  position:relative; z-index:2;  min-height: min(88vh, 780px);  display:flex; flex-direction:column; justify-content:flex-end;  padding-top: 64px; padding-bottom: 72px;}.hero-eyebrow{ margin-bottom: 22px; }.hero-headline{  font-family: var(--font-sans); font-weight:800;  font-size: clamp(44px, 7.8vw, 96px);  line-height: 0.94; letter-spacing: -0.01em;  text-transform: uppercase;  margin-bottom: 30px;}.hero-sub{  font-family: var(--font-serif); font-style: italic; font-weight:400;  font-size: clamp(18px, 2vw, 23px); line-height:1.5;  max-width: 34ch; color: rgba(247,248,248,0.92);  margin-bottom: 40px;}.hero-ctas{ display:flex; flex-wrap:wrap; gap:16px; }/* ============================= SECTION SCAFFOLD ============================= */section{ position:relative; }.section-pad{ padding-top: clamp(64px, 9vw, 128px); padding-bottom: clamp(64px, 9vw, 128px); }.section-head{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-end; gap: 24px; margin-bottom: 56px; }.section-title{  font-family: var(--font-sans); font-weight:800; text-transform:uppercase;  font-size: clamp(30px, 4vw, 44px); line-height:1.08; letter-spacing:-0.01em; color: var(--navy);}.section-kicker{ max-width: 46ch; color: var(--grey-mid); font-size:15px; }.hr-thin{ border:none; border-top:1px solid var(--line); }/* Reveal-on-scroll (single quiet orchestrated pass) */.reveal{ opacity:0; transform: translateY(18px); transition: opacity .7s ease, transform .7s ease; }.reveal.is-visible{ opacity:1; transform:none; }/* ============================= INTRO ============================= */.intro{ background: var(--off-white); }.intro-grid .columns{ padding-right: clamp(16px,4vw,48px); }.intro-title{  font-family: var(--font-sans); font-weight:800; text-transform:uppercase;  font-size: clamp(30px, 4.2vw, 46px); line-height:1.08; color: var(--navy);}.intro-copy p{ font-size: 17px; color:#3A4048; margin-bottom: 20px; max-width: 58ch; }.intro-copy p:last-of-type{ margin-bottom: 28px; }/* ============================= OFFER CARDS ============================= */.offer-section{ background: var(--grey-light); }.offer-grid{ border-top:1px solid var(--line); border-left:1px solid var(--line); }.offer-grid .columns{ border-right:1px solid var(--line); border-bottom:1px solid var(--line); }.offer-card{  background: var(--off-white); padding: 0 0 30px; display:flex; flex-direction:column; height:100%;}.offer-photo{ aspect-ratio: 4 / 5; }.offer-body{ padding: 26px 26px 0; display:flex; flex-direction:column; flex:1; }.offer-num{ font-family: var(--font-serif); font-style:italic; font-size:15px; color: var(--grey-mid); margin-bottom:14px; }.offer-title{ font-family: var(--font-sans); font-weight:700; font-size:18px; color: var(--navy); margin-bottom:10px; text-transform:uppercase; letter-spacing:0.01em; }.offer-desc{ font-size:14.5px; color:#4A5058; line-height:1.55; margin-bottom:20px; flex:1; }/* ============================= NOTEBOOK / ARTICLES ============================= */.notebook{ background: var(--grey-light); }.article-card{  display:flex; flex-direction:column; height:100%;  background: var(--white);  border: 1px solid var(--line);  border-radius: var(--radius);  overflow: hidden;  transition: border-color .2s ease;}.article-card:hover{ border-color: var(--accent-blue-light); }.article-photo{ aspect-ratio: 16/11; margin-bottom: 0; }.article-body{ padding: 22px 22px 26px; display:flex; flex-direction:column; flex:1; }.article-meta{ display:flex; gap:14px; align-items:center; margin-bottom:12px; }.article-cat{ font-size:11px; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color: var(--navy); }.article-date{ font-size:12px; color: var(--grey-mid); }.article-title{ font-family: var(--font-serif); font-weight:600; font-size: 22px; line-height:1.28; color: var(--charcoal); margin-bottom:12px; }.article-desc{ font-size:14.5px; color:#4A5058; line-height:1.55; margin-bottom:18px; }.article-card a.article-title-link{ transition: color .2s ease; }.article-card:hover .article-title{ color: var(--navy); }/* ============================= HERITAGE ============================= */.heritage{ background: var(--navy); color: var(--white); }.heritage-grid{ display:grid; grid-template-columns: 1.05fr 1fr; }.heritage-photo{ min-height: 480px; --panel-angle: 60deg; --panel-gap: 22px; --panel-line-op:0.09; --panel-focus: 70% 30%; }.heritage-text{ padding: clamp(48px,6vw,88px) clamp(28px,5vw,80px); display:flex; flex-direction:column; justify-content:center; }.heritage-title{  font-family: var(--font-sans); font-weight:800; text-transform:uppercase; letter-spacing:-0.01em;  font-size: clamp(28px, 3.4vw, 42px); line-height:1.1; margin-bottom:26px;}.heritage-copy{ font-family: var(--font-serif); font-size: clamp(17px,1.6vw,20px); line-height:1.65; color: rgba(247,248,248,0.9); max-width:46ch; }@media (max-width: 860px){  .heritage-grid{ grid-template-columns: 1fr; }  .heritage-photo{ min-height: 320px; }}/* ============================= TESTIMONIAL ============================= */.testimonial{ background: var(--navy-deep); color: var(--white); }.testimonial-quote{  font-family: var(--font-serif); font-style: italic; font-weight:400;  font-size: clamp(24px, 3.6vw, 38px); line-height:1.4; color: var(--white);  margin: 28px 0 26px;}.testimonial-attr{ font-size:13px; letter-spacing:0.06em; color: rgba(247,248,248,0.6); text-transform:uppercase; }.quote-mark{ font-family: var(--font-sans); font-size: 64px; color: rgba(153,189,226,0.35); line-height:1; }/* ============================= MEMBERSHIP CTA ============================= */.membership{ color: var(--white); --panel-angle: 100deg; --panel-gap: 30px; --panel-line-op:0.07; --panel-focus: 50% 10%; }.membership-inner{ display:flex; flex-direction:column; align-items:flex-start; gap: 28px; position:relative; z-index:2; }.membership-title{  font-family: var(--font-sans); font-weight:800; text-transform:uppercase; letter-spacing:-0.01em;  font-size: clamp(34px, 5.6vw, 60px); line-height: 1.02;}.membership-copy{ font-family: var(--font-serif); font-style:italic; font-size: clamp(17px,1.8vw,20px); color: rgba(247,248,248,0.9); max-width:44ch; }.membership-ctas{ display:flex; flex-wrap:wrap; gap:16px; margin-top:6px; }/* ============================= FOOTER ============================= */.site-footer{ background: var(--navy-deep); color: rgba(247,248,248,0.78); }.footer-top{ padding-top: 72px; padding-bottom: 40px; }.footer-top .columns{ margin-bottom: 32px; }.footer-nav-row{ padding-top: 8px; }.footer-brand{ font-family: var(--font-sans); font-weight:800; font-size:15px; letter-spacing:0.04em; text-transform:uppercase; color: var(--white); margin-bottom:16px; }.footer-tag{ font-family: var(--font-serif); font-style:italic; font-size:16px; color: rgba(247,248,248,0.65); max-width:32ch; margin-bottom:20px; }.footer-col h4{ font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color: rgba(247,248,248,0.45); margin-bottom:18px; }.footer-col ul li{ margin-bottom:12px; }.footer-col a{ font-size:14px; color: rgba(247,248,248,0.82); transition: color .2s ease; }.footer-col a:hover{ color: var(--white); }.footer-col address{ font-style: normal; font-size:14px; line-height:1.8; color: rgba(247,248,248,0.82); }.footer-social{ display:flex; gap:16px; }.social-btn{  width:36px; height:36px; border:1px solid var(--line-on-navy); border-radius:50%;  display:flex; align-items:center; justify-content:center; transition: border-color .2s ease, background-color .2s ease;}.social-btn:hover{ border-color: var(--white); background: rgba(247,248,248,0.06); }.social-btn .fa{ font-size:15px; }.footer-bottom{  border-top: 1px solid var(--line-on-navy); padding-top: 22px; padding-bottom: 32px;  display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px;  font-size:12px; color: rgba(247,248,248,0.45);}/* ======================================================================================   HERO CAROUSEL (Slick)  — merged from hero-carousel.css   ===================================================================================== *//* The background photo now lives here, behind the hero's own ::before (dark overlay) and   ::after (radial/linear gradient) pseudo-elements, and behind the fixed headline/CTA text.   Arrows are disabled (arrows:false in hero-carousel.js) — navigation is by dots and swipe. */.hero-carousel{  position: absolute;  inset: 0;}.hero-carousel,.hero-carousel .slick-list,.hero-carousel .slick-track,.hero-carousel .slick-slide{  height: 100%;}.hero-slide{  height: 100%;  background-size: cover;  background-position: var(--panel-focus, 50% 50%);  background-repeat: no-repeat;}.hero-carousel .slick-dots{  position: absolute;  left: 0;  right: 0;  bottom: 22px;  z-index: 3;  text-align: center;  margin: 0;}.hero-carousel .slick-dots li button{  background: rgba(247,248,248,0.4);}.hero-carousel .slick-dots li button:hover,.hero-carousel .slick-dots li button:focus,.hero-carousel .slick-dots li.slick-active button{  background: var(--accent-blue-light);}.testimonial-carousel{  position: relative;  max-width: 860px;  margin: 0 auto;}.testimonial-slide{  text-align: center;  outline: none;  padding: 0 4px;}/* Dots: theme's white-by-default / dark-blue-active pairing inverts badly on a dark background   (an active dot the same colour as the page would vanish), so default dim / active bright instead */.testimonial-carousel .slick-dots{ margin-top: 32px; text-align: center; }.testimonial-carousel .slick-dots li button{  background: rgba(247,248,248,0.3);}.testimonial-carousel .slick-dots li button:hover,.testimonial-carousel .slick-dots li button:focus,.testimonial-carousel .slick-dots li.slick-active button{  background: var(--accent-blue-light);}.testimonial-carousel .slick-dots li button:before{  content: none; /* theme sets font-family/size for this but never a content value, so it's inert; explicit here to avoid relying on that */}.title-strip{  color: var(--white);  padding-top: clamp(44px, 7vw, 76px);  padding-bottom: clamp(36px, 6vw, 60px);  --panel-angle: 125deg; --panel-gap: 30px; --panel-line-op: 0.07; --panel-focus: 85% 15%;}.title-strip .siteBreadcrumbs{  position: relative; z-index: 2;  display:flex; flex-wrap:wrap; align-items:center; gap:8px;  font-size: 12px; font-weight:600; letter-spacing:0.04em; text-transform:uppercase;  color: rgba(247,248,248,0.6);  margin-bottom: 18px;}.title-strip .siteBreadcrumbs a{ color: rgba(247,248,248,0.85); }.title-strip .siteBreadcrumbs a:last-child{ color: rgba(247,248,248,0.55); }.title-strip .siteBreadcrumbs a:hover,.title-strip .siteBreadcrumbs a:focus-visible,.title-strip .siteBreadcrumbs a:last-child:hover,.title-strip .siteBreadcrumbs a:last-child:focus-visible{ color: var(--white); }.title-strip-inner{ position:relative; z-index:2; }/* Page title: styles the plain <h1> inside the banner — no class needed on the heading itself. */.title-strip h1{  font-family: var(--font-sans); font-weight:800; text-transform:uppercase; letter-spacing:-0.01em;  font-size: clamp(34px, 5vw, 56px); line-height:1.05; margin-bottom:0; max-width: 20ch;}.float--right {float: right; margin: 10px;}.float--left {float: left; margin: 10px;}/* ============================= INNER PAGE: CONTENT + SIDEBAR LAYOUT ============================= */.page-layout{ align-items:flex-start; }.page-main{ min-width:0; } .page-sidebar{ min-width:0; }@media (max-width: 860px){  .page-sidebar{ margin-top: 48px; }}/* ============================= INNER PAGE: SIDEBAR LINK CARD ============================= */.sidebar-card{  background: var(--white);  border: 1px solid var(--line);  border-radius: var(--radius);  padding: 28px;  position: sticky;  top: calc(var(--header-h, 84px) + 24px);}.sidebar-card h4{  font-family: var(--font-sans); font-weight:800; text-transform:uppercase; letter-spacing:0.08em;  font-size: 12px; color: var(--grey-mid); margin-bottom:18px;}.sidebar-nav{ display:flex; flex-direction:column; }.sidebar-nav li + li{ margin-top: 2px; }.sidebar-nav a{  display:flex; align-items:center; justify-content:space-between; gap:12px;  padding: 11px 4px; font-size:14.5px; font-weight:600; color: var(--charcoal);  border-bottom: 1px solid var(--line);  transition: color .2s ease, padding-left .2s ease;}.sidebar-nav li:last-child a{ border-bottom:none; }.sidebar-nav a:hover{ color: var(--navy); padding-left: 8px; }.sidebar-nav a.is-current{ color: var(--navy); font-weight:700; }.sidebar-nav a .fa{ font-size:11px; opacity:0.5; flex:none; }.sidebar-card-note{  margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--line);  font-family: var(--font-serif); font-style:italic; font-size:13.5px; line-height:1.55; color: var(--grey-mid);}/* ============================= INNER PAGE: PROSE (default body copy styling) ============================= */.prose h2{  font-family: var(--font-sans); font-weight:800; text-transform:uppercase; letter-spacing:-0.01em;  font-size: clamp(22px, 2.6vw, 30px); color: var(--navy); line-height:1.15;  margin-top: 44px; margin-bottom: 18px;}.prose h2:first-child{ margin-top:0; }.prose h3{  font-family: var(--font-sans); font-weight:700; font-size: 18px; color: var(--charcoal);  margin-top: 32px; margin-bottom: 12px;}.prose p{ font-size:16px; line-height:1.7; color:#3A4048; margin-bottom:20px; }.prose ul{ margin: 0 0 20px; padding-left: 22px; max-width: 68ch; list-style: disc; }.prose ol{ margin: 0 0 20px; padding-left: 22px; max-width: 68ch; list-style: decimal; }.prose li{ font-size:16px; line-height:1.7; color:#3A4048; margin-bottom:8px; display: list-item; }.prose li::marker{ color: var(--accent-blue); }.prose a:not(.btn){ color: var(--navy); text-decoration: underline; text-underline-offset:3px; text-decoration-color: var(--line); }.prose a:not(.btn):hover{ text-decoration-color: var(--navy); }.prose blockquote{  margin: 28px 0; padding: 4px 0 4px 22px; border-left: 3px solid var(--accent-blue-light);  font-family: var(--font-serif); font-style:italic; font-size:19px; line-height:1.55; color: var(--charcoal);  max-width: 60ch;}.prose figure{ margin: 28px 0; }.prose figure img{ border-radius: var(--radius); width:100%; height:auto; }.prose figcaption{ margin-top:10px; font-size:13px; color:var(--grey-mid); }.prose hr{ border:none; border-top:1px solid var(--line); margin: 36px 0; }.prose code{  font-family: ui-monospace, 'SF Mono', Consolas, monospace; font-size: 0.9em;  background: var(--grey-light); padding: 2px 6px; border-radius: 3px; color: var(--navy);}.section-pad.grey {background: var(--grey-light)}.page-side .article-card .article-body a.btn.btn-accent {margin-top: 20px;}.sub-nav-wrapper {width: 100%; padding: 25px 0px; background: var(--accent-blue);}.sub-nav-wrapper p {color: var(--white)}.sub-nav-wrapper p a {border-bottom: 1px solid var(--white); margin: 0 10px;}.contact-aside{ display:flex; flex-direction:column; gap:24px; }.contact-aside .sidebar-card{ position: static; }.contact-card{  padding: 32px 28px 28px; border-radius: var(--radius); color: var(--white);  --panel-angle: 125deg; --panel-gap: 26px; --panel-line-op: 0.07; --panel-focus: 90% 5%;}.contact-card > *{ position: relative; z-index: 2; }.contact-card-icon{  width: 52px; height: 52px; border-radius: 50%;  display:flex; align-items:center; justify-content:center;  background: rgba(153,189,226,0.14); border: 1px solid rgba(153,189,226,0.45);  color: var(--accent-blue-light); font-size: 20px; margin-bottom: 22px;}.contact-card h4{  font-family: var(--font-sans); font-weight:800; font-size:12px; letter-spacing:0.12em; text-transform:uppercase;  color: rgba(247,248,248,0.6); margin-bottom: 10px;}.contact-card-email{  display: block; width: fit-content; max-width: 100%;  font-family: var(--font-serif); font-size: 19px; line-height: 1.3; color: var(--white);  padding-bottom: 5px; border-bottom: 1px solid rgba(153,189,226,0.45);  transition: border-color .2s ease;}.contact-card-email:hover, .contact-card-email:focus-visible{ border-color: var(--accent-blue-light); }.contact-card p{ margin-top: 18px; font-size: 14.5px; line-height: 1.6; color: rgba(247,248,248,0.8); }.contact-card .footer-social{ margin-top: 24px; padding-top: 22px; border-top: 1px solid var(--line-on-navy); }/* ---- Topics card ---- */.topic-list{ display:flex; flex-direction:column; gap:16px; }.topic-list li{ display:flex; align-items:flex-start; gap:14px; font-size:14.5px; line-height:1.5; color:#3A4048; }.topic-icon{  flex: none; width: 34px; height: 34px; border-radius: 50%;  display:flex; align-items:center; justify-content:center;  background: rgba(55,107,167,0.1); color: var(--accent-blue); font-size: 14px;}.topic-list strong{ color: var(--navy); font-weight: 700; }.defaultForm{  background: var(--white);  border: 1px solid var(--line); border-top: 3px solid var(--accent-blue);  border-radius: var(--radius);  padding: clamp(22px, 4vw, 40px);  margin-top: 32px;  box-shadow: 0 22px 44px -32px rgba(11,31,51,0.4);}.defaultForm form{ margin: 0; }.defaultForm .inputset{ margin-bottom: 22px; }.defaultForm label{  display: block; margin-bottom: 8px;  font-family: var(--font-sans); font-weight: 700; font-size: 12px; line-height: 1.4;  letter-spacing: 0.08em; text-transform: uppercase; color: var(--navy);}.defaultForm #captchaSumLabel{ text-transform: none; letter-spacing: 0; font-size: 14px; font-weight: 600; }.defaultForm input.text,.defaultForm textarea{  display: block; width: 100%;  padding: 14px 16px;  font-family: var(--font-sans); font-size: 16px; line-height: 1.5;   color: var(--charcoal); background: var(--off-white);  border: 1px solid rgba(11,31,51,0.22); border-radius: var(--radius);  -webkit-appearance: none; appearance: none;  transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;}.defaultForm input.text{ text-overflow: ellipsis; }.defaultForm input.text:hover,.defaultForm textarea:hover{ border-color: rgba(11,31,51,0.4); }.defaultForm input.text:focus,.defaultForm textarea:focus{  outline: none; background: var(--white);  border-color: var(--accent-blue); box-shadow: 0 0 0 3px rgba(55,107,167,0.22);}.defaultForm textarea{ min-height: 170px; line-height: 1.6; resize: vertical; }.defaultForm ::placeholder{ color: var(--grey-mid); opacity: 0.75; }.defaultForm .text-firstLine{ display: none; }.defaultForm .form_submit{ margin-top: 8px; }.defaultForm .fbElementButton{  display: inline-flex; align-items: center; justify-content: center;  padding: 16px 36px;  font-family: var(--font-sans); font-weight: 700; font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase;  color: var(--white); background: var(--navy); border: 1px solid var(--navy); border-radius: var(--radius);  -webkit-appearance: none; appearance: none; cursor: pointer;  transition: background-color .2s ease, border-color .2s ease;}.defaultForm .fbElementButton:hover,.defaultForm .fbElementButton:focus-visible{ background: #14324f; border-color: #14324f; }.defaultForm .fbElementButton:focus-visible{ outline: 2px solid var(--accent-blue); outline-offset: 3px; }@media (max-width: 480px){ .defaultForm .fbElementButton{ width: 100%; } }.form_error_wrap{ color: #7a1a14; font-size: 14.5px; line-height: 1.55; } .form_error_wrap > *,.prose .form_error_wrap > *{  margin: 0 0 24px; padding: 14px 18px;  background: #fdf3f2; border: 1px solid #f0c4c0; border-left: 3px solid #b3261e; border-radius: var(--radius);  color: #7a1a14; font-size: 14.5px; line-height: 1.55; max-width: none;}.form_error_wrap > * p, .form_error_wrap > * li,.prose .form_error_wrap > * p, .prose .form_error_wrap > * li{ color: inherit; font-size: inherit; line-height: inherit; margin: 0; }.form_error_wrap > * p + p,.prose .form_error_wrap > * p + p{ margin-top: 8px; }.form_error_wrap > * ul,.prose .form_error_wrap > * ul{ margin: 6px 0 0; padding-left: 18px; list-style: disc; }.form_error_wrap > * li + li,.prose .form_error_wrap > * li + li{ margin-top: 4px; }.form_error_wrap li::marker,.prose .form_error_wrap li::marker{ color: currentColor; }/* if the CMS makes the list itself the message box, keep its bullets inside the padding */.form_error_wrap > ul, .form_error_wrap > ol,.prose .form_error_wrap > ul, .prose .form_error_wrap > ol{ list-style: disc inside; } .txt--hlght--1 {  margin: 0 0 24px;  padding: 14px 18px;  background: #cce5ff;  border: 1px solid #004085;    border-left-width: 1px;    border-left-style: solid;    border-left-color: rgb(240, 196, 192);  border-left: 3px solid #004085;  border-radius: var(--radius);  color: #004085;  font-size: 14.5px;  line-height: 1.55;  width: 100%; display: block;}@media all and (max-width: 880px) and (min-width: 0px) {.testimonial-side div.article-body .article-title.article-title-link {font-size: 19px;}}@media all and (max-width: 480px) and (min-width: 0px) {.sub-nav-wrapper p a {margin: 0px; display:  inline-block; width: 100%; border: 0px;}}
/* not required */
