@import url("https://fonts.googleapis.com/css2?family=Abril+Fatface&family=Alegreya:wght@500;700&family=Bitter:wght@400;500;700&family=Cinzel:wght@500;600;700&family=Cormorant+Garamond:wght@500;600;700&family=DM+Serif+Display:ital@0;1&family=Figtree:wght@400;500;600;700;800&family=Fraunces:opsz,wght@9..144,500;9..144,700&family=Inter:wght@400;500;600;700;800&family=Karla:wght@400;500;600;700&family=Lato:wght@400;700;900&family=Libre+Baskerville:wght@400;700&family=Lora:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&family=Merriweather:wght@400;700&family=Merriweather+Sans:wght@400;500;600;700;800&family=Montserrat:wght@500;600;700;800&family=Noto+Sans:wght@400;500;600;700&family=Nunito+Sans:wght@400;500;600;700;800&family=Outfit:wght@400;500;600;700;800&family=Playfair+Display:wght@500;600;700;800&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Poppins:wght@400;500;600;700;800&family=Prata&family=Raleway:wght@500;600;700;800&family=Rubik:wght@400;500;600;700;800&family=Sora:wght@400;500;600;700;800&family=Source+Sans+3:wght@400;500;600;700;800&family=Space+Grotesk:wght@500;600;700&family=Syne:wght@500;600;700;800&family=Urbanist:wght@400;500;600;700;800&family=Work+Sans:wght@400;500;600;700;800&display=swap");

:root{
  --public-bg:#eef3fb;
  --public-bg-soft:#f9fbff;
  --public-bg-strong:#dfe7f3;
  --public-ink:#2e3e52;
  --public-muted:#607287;
  --public-heading:#16283d;
  --public-primary:#174a8c;
  --public-primary-strong:#0f3261;
  --public-secondary:#2f6bc2;
  --public-accent:#c51f3a;
  --public-surface:#fffefe;
  --public-surface-alt:#f4f7fd;
  --public-line:rgba(22,40,61,.12);
  --public-line-strong:rgba(22,40,61,.18);
  --public-shadow:0 22px 54px rgba(22,40,61,.10);
  --public-shadow-strong:0 26px 70px rgba(22,40,61,.16);
  --public-body-font-family:"Source Sans 3",ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --public-heading-font-family:"Cormorant Garamond",ui-serif,Georgia,Cambria,"Times New Roman",serif;
  --public-hero-title-font-family:"Cormorant Garamond",ui-serif,Georgia,Cambria,"Times New Roman",serif;
  --public-menu-font-family:"Source Sans 3",ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --public-menu-color:var(--public-heading);
  --public-hero-title-color:#ffffff;
  --public-hero-text-color:#ffffff;
  --public-body-size:17px;
  --public-small-size:15px;
  --public-menu-size:16px;
  --public-heading-scale:1;
  --bs-body-font-family:var(--public-body-font-family);
  --bs-primary:var(--public-primary);
  --bs-primary-rgb:23,74,140;
  --bs-border-color:var(--public-line);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}

body.public-body{
  margin:0;
  min-height:100vh;
  display:flex;
  flex-direction:column;
  font-size:var(--public-body-size);
  color:var(--public-ink);
  background:
    linear-gradient(180deg, rgba(23,74,140,.08), rgba(23,74,140,0) 180px),
    linear-gradient(180deg, var(--public-bg-soft) 0%, var(--public-bg) 42%, var(--public-bg-strong) 100%);
  font-family:var(--bs-body-font-family);
}

.public-main{
  flex:1;
  display:flex;
  flex-direction:column;
}

.public-body .container{
  width:min(100% - 40px, 1280px);
  max-width:none;
}

a{
  color:var(--public-primary);
  text-decoration:none;
}

a:hover{
  color:var(--public-primary-strong);
}

.public-body p,
.public-body li,
.public-body .text-secondary{
  font-size:var(--public-body-size);
}

.public-body .small{
  font-size:var(--public-small-size);
}

.public-body h1,
.public-body h2,
.public-body h3,
.public-body h4,
.public-body h5,
.public-body h6{
  color:var(--public-heading);
  font-family:var(--public-heading-font-family);
}

.public-navbar{
  background:rgba(247,250,254,.92);
  backdrop-filter:blur(22px);
  border-bottom:1px solid rgba(22,40,61,.12);
  box-shadow:0 18px 44px rgba(22,40,61,.10);
}

.public-navbar .container{
  min-height:100px;
  padding-top:.7rem;
  padding-bottom:.7rem;
}

.public-navbar .navbar-brand{
  display:inline-flex;
  align-items:center;
  gap:1rem;
  color:var(--public-menu-color);
  font-family:var(--public-menu-font-family);
  font-weight:800;
  letter-spacing:-.02em;
  padding:.45rem .55rem .45rem .2rem;
}

.public-brand-lockup{
  display:flex;
  flex-direction:column;
  line-height:1.04;
}

.public-brand-kicker{
  font-size:.72rem;
  font-family:var(--public-menu-font-family);
  font-weight:800;
  letter-spacing:.17em;
  text-transform:uppercase;
  color:var(--public-accent);
}

.public-brand-city{
  font-size:calc(var(--public-menu-size) * 1.24);
  font-family:var(--public-menu-font-family);
  font-weight:800;
  color:var(--public-menu-color);
}

.brand-mark{
  width:52px;
  height:52px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:18px;
  color:#fff;
  background:linear-gradient(135deg, var(--public-primary-strong), var(--public-primary) 62%, var(--public-accent) 160%);
  box-shadow:0 14px 28px rgba(23,74,140,.22);
  font-size:1.28rem;
}

.brand-mark.has-image{
  padding:.45rem;
  background:rgba(255,255,255,.96);
}

.brand-mark.has-image img{
  width:100%;
  height:100%;
  object-fit:contain;
}

.public-navbar .navbar-toggler{
  width:50px;
  height:50px;
  display:none;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(22,40,61,.14);
  border-radius:16px;
  padding:0;
  background:#fffdf8;
  color:var(--public-heading);
  font-size:1.5rem;
}

.public-navbar .navbar-toggler:focus{
  box-shadow:0 0 0 .22rem rgba(23,74,140,.12);
}

.public-navbar .navbar-collapse{
  align-items:center;
  gap:1.1rem;
}

.public-navbar .navbar-nav,
.public-nav-list{
  align-items:center;
  gap:.85rem;
  padding:.5rem;
  border-radius:999px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(22,40,61,.12);
  box-shadow:0 12px 28px rgba(22,40,61,.08);
}

.public-navbar .nav-link{
  color:var(--public-menu-color);
  font-family:var(--public-menu-font-family);
  font-weight:700;
  font-size:var(--public-menu-size);
  padding:.9rem 1.22rem;
  border-radius:999px;
  transition:all .18s ease;
}

.public-navbar .nav-link:hover,
.public-navbar .nav-link:focus{
  color:var(--public-primary);
  background:rgba(23,74,140,.12);
}

.public-navbar .nav-link.is-active{
  color:#fff;
  background:linear-gradient(135deg, var(--public-primary), var(--public-secondary));
  box-shadow:0 12px 26px rgba(23,74,140,.18);
}

.public-portal-home .public-navbar{
  background:rgba(250,252,255,.95);
  backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(22,40,61,.10);
  box-shadow:0 14px 34px rgba(22,40,61,.06);
}

.public-portal-home .public-navbar .navbar-brand{
  padding:0;
}

.public-portal-home .public-navbar .navbar-nav,
.public-portal-home .public-nav-list{
  gap:.85rem;
  padding:0;
  border-radius:0;
  background:transparent;
  border:0;
  box-shadow:none;
}

.public-portal-home .public-navbar .nav-link{
  font-size:1rem;
  padding:.95rem 1.3rem;
}

.public-portal-home .public-navbar .nav-link:hover,
.public-portal-home .public-navbar .nav-link:focus{
  background:rgba(23,74,140,.08);
}

.hero-showcase-section{
  position:relative;
  padding:1rem 0 0;
}

.hero-showcase-frame{
  --hero-overlay-opacity:72%;
  position:relative;
  min-height:76vh;
  overflow:hidden;
  background:
    linear-gradient(135deg, rgba(15,50,97,.98), rgba(23,74,140,.96) 58%, rgba(197,31,58,.82));
}

.hero-showcase-slides{
  position:absolute;
  inset:0;
}

.hero-showcase-slide{
  position:absolute;
  inset:0;
  opacity:0;
  transform:scale(1.04);
  transition:opacity 1.1s ease, transform 6.2s ease;
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
}

.hero-showcase-slide.is-active{
  opacity:1;
  transform:scale(1);
}

.hero-showcase-slide-fallback{
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.18), rgba(255,255,255,0) 32%),
    linear-gradient(135deg, rgba(15,50,97,.98), rgba(23,74,140,.96) 58%, rgba(197,31,58,.84));
}

.hero-showcase-overlay{
  position:relative;
  z-index:1;
  min-height:76vh;
  display:flex;
  align-items:end;
}

.hero-showcase-overlay::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(7,18,35,.34) 0%, rgba(7,18,35,.56) 28%, rgba(7,18,35,.86) 68%, rgba(7,18,35,.94) 100%);
  opacity:calc(var(--hero-overlay-opacity) / 72%);
  pointer-events:none;
}

.hero-showcase-overlay > .container{
  position:relative;
  z-index:1;
}

.hero-showcase-content{
  max-width:58rem;
  padding:4.5rem 0 3.4rem;
  color:#fff;
  text-shadow:0 2px 20px rgba(7,18,35,.28);
}

.hero-showcase-topline{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:1rem;
  margin-bottom:1.25rem;
}

.hero-showcase-logo{
  width:6rem;
  height:6rem;
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.7rem;
  border-radius:1.6rem;
  background:rgba(255,255,255,.96);
  box-shadow:0 16px 40px rgba(7,18,35,.24);
}

.hero-showcase-logo img{
  width:100%;
  height:100%;
  object-fit:contain;
}

.hero-showcase-content .eyebrow{
  background:rgba(255,255,255,.18);
  border-color:rgba(255,255,255,.28);
  color:#fff;
}

.hero-showcase-title{
  margin:0 0 1rem;
  max-width:14ch;
  font-family:var(--public-hero-title-font-family)!important;
  font-size:calc(clamp(3rem, 6vw, 5.4rem) * var(--public-heading-scale));
  font-weight:700;
  line-height:.9;
  letter-spacing:-.04em;
  text-wrap:balance;
  color:var(--public-hero-title-color)!important;
}

.hero-showcase-copy{
  max-width:45rem;
  color:var(--public-hero-text-color);
  font-size:var(--public-body-size);
  line-height:1.8;
}

.hero-showcase-copy,
.hero-showcase-copy p,
.hero-showcase-copy a{
  color:var(--public-hero-text-color)!important;
}

.hero-showcase-copy a{
  text-decoration-color:rgba(255,255,255,.82);
}

.hero-showcase-pills{
  margin:1.7rem 0 2rem;
}

.hero-showcase-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.85rem;
  margin-bottom:1.9rem;
}

.hero-showcase-actions .btn-outline-light{
  --bs-btn-color:#fff;
  --bs-btn-border-color:rgba(255,255,255,.70);
  --bs-btn-hover-bg:#fff;
  --bs-btn-hover-border-color:#fff;
  --bs-btn-hover-color:var(--public-heading);
  --bs-btn-active-bg:#fff;
  --bs-btn-active-border-color:#fff;
  --bs-btn-active-color:var(--public-heading);
  background:rgba(255,255,255,.10);
  backdrop-filter:blur(10px);
}

.hero-showcase-meta{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:1rem;
  max-width:62rem;
}

.hero-showcase-meta-card{
  display:flex;
  flex-direction:column;
  gap:.3rem;
  min-height:100%;
  padding:1rem 1.1rem;
  border-radius:1.2rem;
  background:rgba(9,23,42,.34);
  border:1px solid rgba(255,255,255,.22);
  color:#fff;
  text-decoration:none;
  backdrop-filter:blur(12px);
}

.hero-showcase-meta-card strong{
  font-size:1rem;
  line-height:1.45;
}

.hero-showcase-meta-label{
  color:rgba(255,255,255,.84);
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.hero-showcase-meta-link:hover{
  color:#fff;
  background:rgba(9,23,42,.46);
}

.hero-showcase-indicators{
  display:flex;
  align-items:center;
  gap:.6rem;
  margin-top:1.6rem;
}

.hero-showcase-indicator{
  width:2.6rem;
  height:.32rem;
  border-radius:999px;
  background:rgba(255,255,255,.48);
  transition:all .28s ease;
}

.hero-showcase-indicator.is-active{
  width:4.1rem;
  background:#fff;
}

.hero-section{
  position:relative;
  padding:5.4rem 0 3.8rem;
  overflow:hidden;
}

.hero-section::before,
.hero-section::after{
  content:"";
  position:absolute;
  pointer-events:none;
}

.hero-section::before{
  inset:0 auto auto 0;
  width:100%;
  height:160px;
  background:linear-gradient(180deg, rgba(23,74,140,.12), rgba(23,74,140,0));
}

.hero-section::after{
  right:-80px;
  top:40px;
  width:280px;
  height:280px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(197,31,58,.14), rgba(197,31,58,0) 74%);
}

.hero-card,
.card-soft{
  position:relative;
  overflow:hidden;
  background:linear-gradient(180deg, rgba(255,255,255,.99), rgba(244,247,253,.96));
  border:1px solid var(--public-line);
  border-radius:18px;
  box-shadow:var(--public-shadow);
}

.hero-card::before,
.card-soft::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  border:1px solid rgba(255,255,255,.62);
  pointer-events:none;
}

.hero-card{
  background:
    linear-gradient(135deg, rgba(15,50,97,.98), rgba(23,74,140,.96) 58%, rgba(197,31,58,.90));
  color:#fff;
  box-shadow:var(--public-shadow-strong);
}

.hero-card .display-5,
.hero-card .text-secondary,
.hero-card .hero-pill,
.hero-card .eyebrow{
  color:#fff!important;
}

.hero-card .portal-home-hero-title,
.public-body .portal-home-hero-title{
  color:var(--public-hero-title-color)!important;
  font-family:var(--public-hero-title-font-family)!important;
}

.hero-card .portal-home-hero-title{
  text-shadow:0 2px 20px rgba(7,18,35,.20);
}

.hero-card .btn-primary{
  --bs-btn-bg:#ffffff;
  --bs-btn-border-color:#ffffff;
  --bs-btn-color:var(--public-heading);
  --bs-btn-hover-bg:#edf3fb;
  --bs-btn-hover-border-color:#edf3fb;
  --bs-btn-hover-color:var(--public-heading);
  --bs-btn-active-bg:#e1eaf7;
  --bs-btn-active-border-color:#e1eaf7;
  --bs-btn-active-color:var(--public-heading);
  box-shadow:0 14px 28px rgba(15,50,97,.18);
}

.hero-card .btn-outline-primary{
  --bs-btn-color:#fff;
  --bs-btn-border-color:rgba(255,255,255,.72);
  --bs-btn-hover-bg:#fff;
  --bs-btn-hover-border-color:#fff;
  --bs-btn-hover-color:var(--public-heading);
  --bs-btn-active-bg:#f4ede1;
  --bs-btn-active-border-color:#edf3fb;
  --bs-btn-active-color:var(--public-heading);
  background:rgba(255,255,255,.06);
}

.hero-card .btn-outline-secondary{
  --bs-btn-color:#fff;
  --bs-btn-border-color:rgba(255,255,255,.28);
  --bs-btn-hover-bg:rgba(255,255,255,.10);
  --bs-btn-hover-border-color:rgba(255,255,255,.4);
  --bs-btn-hover-color:#fff;
}

.hero-card-premium{
  padding-bottom:2rem;
}

.page-hero-section{
  position:relative;
  padding:2.9rem 0 2.05rem;
  overflow:hidden;
}

.page-hero-section::before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:15rem;
  background:linear-gradient(180deg, rgba(23,74,140,.10), rgba(23,74,140,0));
  pointer-events:none;
}

.page-hero-card{
  position:relative;
  overflow:hidden;
  padding:2.2rem 2.35rem;
  border-radius:28px;
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.18), rgba(255,255,255,0) 28%),
    radial-gradient(circle at bottom left, rgba(197,31,58,.20), rgba(197,31,58,0) 24%),
    linear-gradient(132deg, rgba(10,34,67,.99), rgba(19,67,126,.96) 56%, rgba(197,31,58,.84));
  border:1px solid rgba(15,50,97,.18);
  box-shadow:0 30px 60px rgba(15,50,97,.22);
  color:#fff;
}

.page-hero-card::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  border:1px solid rgba(255,255,255,.14);
  pointer-events:none;
}

.page-hero-card::after{
  content:"";
  position:absolute;
  inset:auto -4rem -4rem auto;
  width:13rem;
  height:13rem;
  border-radius:50%;
  background:radial-gradient(circle, rgba(255,255,255,.16), rgba(255,255,255,0) 70%);
  pointer-events:none;
}

.page-hero-card .section-title,
.page-hero-card .text-secondary{
  color:#fff!important;
}

.page-hero-card .text-secondary{
  position:relative;
  z-index:1;
  max-width:42rem;
  opacity:.96;
  font-size:var(--public-body-size);
  line-height:1.8;
}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  padding:.42rem .82rem;
  border-radius:999px;
  background:rgba(23,74,140,.08);
  border:1px solid rgba(23,74,140,.14);
  color:var(--public-primary-strong);
  font-family:var(--public-menu-font-family);
  font-size:calc(var(--public-menu-size) * .76);
  font-weight:800;
  letter-spacing:.15em;
  text-transform:uppercase;
}

.hero-card .eyebrow,
.page-hero-card .eyebrow{
  background:rgba(255,255,255,.16);
  border-color:rgba(255,255,255,.22);
  color:#ffffff;
  box-shadow:0 10px 24px rgba(7,18,35,.12);
}

.card-soft .eyebrow{
  background:rgba(23,74,140,.07);
  border-color:rgba(23,74,140,.14);
  color:var(--public-primary-strong);
}

.hero-pill-row{
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
}

.hero-pill{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  padding:.8rem 1rem;
  border-radius:14px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
  color:#fff;
  font-size:.95rem;
  font-weight:700;
}

.hero-pill i{
  color:#f0c772;
}

.public-section{
  padding:4.2rem 0;
}

.public-section-tight{
  padding-top:1.2rem;
}

.public-section-alt{
  background:
    linear-gradient(180deg, rgba(245,248,253,.72), rgba(230,238,249,.72));
  border-top:1px solid rgba(22,40,61,.06);
  border-bottom:1px solid rgba(22,40,61,.06);
}

.premium-side-card{
  background:linear-gradient(180deg, rgba(255,253,248,.99), rgba(247,241,230,.98));
}

.premium-side-meta{
  display:grid;
  gap:.85rem;
}

.premium-side-meta div{
  padding:1rem;
  border-radius:14px;
  background:rgba(255,251,244,.9);
  border:1px solid var(--public-line);
}

.premium-side-meta strong,
.premium-stat-card strong{
  display:block;
  color:var(--public-heading);
}

.premium-side-meta span,
.premium-stat-card span{
  color:var(--public-muted);
  font-size:.95rem;
}

.premium-contact-list p,
.premium-contact-list a{
  color:var(--public-ink);
}

.premium-contact-list i{
  color:var(--public-primary);
}

.section-heading{
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:1rem;
}

.section-kicker{
  max-width:40rem;
}

.premium-stats-shell{
  display:grid;
  grid-template-columns:minmax(0, 1.05fr) minmax(0, 1.6fr);
  gap:1.5rem;
  align-items:stretch;
}

.premium-stats-intro{
  position:relative;
  overflow:hidden;
  min-height:100%;
  padding:2rem 2rem 1.9rem;
  border-radius:28px;
  background:
    radial-gradient(circle at top right, rgba(197,31,58,.16), rgba(197,31,58,0) 34%),
    linear-gradient(145deg, rgba(15,50,97,.98), rgba(23,74,140,.96) 58%, rgba(35,94,171,.94));
  color:#fff;
  box-shadow:0 28px 60px rgba(15,50,97,.22);
}

.premium-stats-intro::after{
  content:"";
  position:absolute;
  inset:auto -2.5rem -3rem auto;
  width:11rem;
  height:11rem;
  border-radius:50%;
  background:radial-gradient(circle, rgba(255,255,255,.18), rgba(255,255,255,0) 70%);
}

.premium-stats-intro .eyebrow{
  position:relative;
  z-index:1;
  background:rgba(255,255,255,.16);
  border-color:rgba(255,255,255,.24);
  color:#ffffff;
  box-shadow:0 10px 24px rgba(7,18,35,.14);
}

.premium-stats-title{
  margin:0 0 1rem;
  font-family:var(--public-heading-font-family);
  font-size:calc(2.4rem * var(--public-heading-scale));
  font-weight:700;
  line-height:1;
  letter-spacing:-.03em;
}

.premium-stats-copy{
  position:relative;
  z-index:1;
  max-width:30rem;
  color:rgba(255,255,255,.82);
  font-size:var(--public-body-size);
  line-height:1.75;
}

.premium-stats-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:1.2rem;
}

.premium-stat-card{
  position:relative;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  gap:.85rem;
  min-height:13.2rem;
  padding:1.5rem;
  border-radius:24px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(244,247,253,.95)),
    linear-gradient(135deg, rgba(23,74,140,.07), rgba(197,31,58,.05));
  border:1px solid rgba(22,40,61,.10);
  box-shadow:0 20px 42px rgba(22,40,61,.08);
}

.premium-stat-card::after{
  content:"";
  position:absolute;
  inset:auto -2rem -2rem auto;
  width:8.5rem;
  height:8.5rem;
  border-radius:50%;
  background:radial-gradient(circle, rgba(23,74,140,.12), rgba(23,74,140,0) 72%);
  pointer-events:none;
}

.premium-stat-topline{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.8rem;
}

.premium-stat-icon{
  width:3.25rem;
  height:3.25rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:1rem;
  background:linear-gradient(135deg, var(--public-primary), var(--public-secondary) 72%, var(--public-accent) 160%);
  color:#fff;
  font-size:1.35rem;
  box-shadow:0 14px 26px rgba(23,74,140,.18);
}

.premium-stat-chip{
  display:inline-flex;
  align-items:center;
  min-height:2rem;
  padding:.35rem .75rem;
  border-radius:999px;
  background:rgba(23,74,140,.08);
  color:var(--public-primary);
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.premium-stat-label{
  display:block;
  max-width:15ch;
  color:var(--public-heading);
  font-size:1rem;
  font-weight:700;
  line-height:1.35;
}

.premium-stat-card strong{
  font-size:3.4rem;
  line-height:.88;
  letter-spacing:-.04em;
  margin-top:auto;
}

.premium-list-card,
.premium-content-card,
.premium-service-card{
  display:flex;
  flex-direction:column;
}

.premium-content-card,
.premium-list-card{
  gap:.4rem;
}

.public-editorial-card{
  padding:1.6rem;
}

.public-article-card{
  padding:2rem;
}

.public-article-title{
  color:var(--public-heading);
  font-family:var(--public-heading-font-family);
  font-weight:700;
  line-height:1.02;
  letter-spacing:-.02em;
}

.public-article-lead{
  color:var(--public-heading);
  font-weight:600;
  font-size:1.08rem;
}

.public-page-grid{
  display:grid;
  gap:1.5rem;
}

.public-divider{
  width:72px;
  height:2px;
  margin:.2rem 0 1rem;
  background:linear-gradient(90deg, var(--public-accent), rgba(197,31,58,0));
}

.public-contact-panel,
.public-contact-card{
  border-left:4px solid rgba(197,31,58,.22);
}

.public-data-line{
  color:var(--public-ink);
}

.public-data-line i{
  color:var(--public-primary);
}

.public-link-tile{
  text-align:left;
}

.public-empty-state{
  color:var(--public-muted);
  text-align:center;
  font-size:var(--public-body-size);
}

.public-category-block + .public-category-block{
  margin-top:3rem;
}

.public-category-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:1rem;
  padding-bottom:.85rem;
  border-bottom:1px solid rgba(64,54,46,.10);
}

.premium-content-card h2,
.premium-content-card h3,
.premium-list-card h3,
.premium-service-card h3{
  color:var(--public-heading);
  margin-bottom:.25rem;
}

.premium-story-card,
.premium-directory-card,
.premium-contact-surface,
.premium-service-surface{
  position:relative;
  overflow:hidden;
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(244,247,253,.96)),
    linear-gradient(135deg, rgba(23,74,140,.05), rgba(197,31,58,.04));
  border-color:rgba(22,40,61,.10);
  box-shadow:0 18px 38px rgba(22,40,61,.08);
}

.premium-story-card::after,
.premium-directory-card::after,
.premium-contact-surface::after,
.premium-service-surface::after{
  content:"";
  position:absolute;
  inset:auto -2rem -2.25rem auto;
  width:7.5rem;
  height:7.5rem;
  border-radius:50%;
  background:radial-gradient(circle, rgba(23,74,140,.12), rgba(23,74,140,0) 72%);
  pointer-events:none;
}

.premium-spotlight-card{
  position:relative;
  overflow:hidden;
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(244,247,253,.96)),
    linear-gradient(135deg, rgba(23,74,140,.05), rgba(197,31,58,.04));
  border-color:rgba(22,40,61,.10);
  box-shadow:0 18px 38px rgba(22,40,61,.08);
}

.premium-spotlight-card::after{
  content:"";
  position:absolute;
  inset:auto -2rem -2.25rem auto;
  width:7.5rem;
  height:7.5rem;
  border-radius:50%;
  background:radial-gradient(circle, rgba(23,74,140,.12), rgba(23,74,140,0) 72%);
  pointer-events:none;
}

.premium-spotlight-topline{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:.8rem;
  margin-bottom:.55rem;
}

.premium-spotlight-chip{
  display:inline-flex;
  align-items:center;
  min-height:2rem;
  padding:.35rem .72rem;
  border-radius:999px;
  background:rgba(23,74,140,.08);
  color:var(--public-primary);
  font-family:var(--public-menu-font-family);
  font-size:calc(var(--public-menu-size) * .74);
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.premium-spotlight-title{
  line-height:1.18;
}

.premium-spotlight-meta{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  color:var(--public-muted);
  font-size:.95rem;
  font-weight:700;
}

.premium-spotlight-meta i{
  color:var(--public-primary);
}

.premium-directory-card .public-data-line,
.premium-contact-surface .public-data-line{
  display:flex;
  align-items:flex-start;
  gap:.6rem;
}

.premium-directory-card .public-data-line i,
.premium-contact-surface .public-data-line i{
  margin-top:.15rem;
}

.content-meta-badge{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  padding:.42rem .8rem;
  border-radius:999px;
  background:rgba(127,47,47,.07);
  border:1px solid rgba(127,47,47,.14);
  color:var(--public-primary-strong);
  font-family:var(--public-menu-font-family);
  font-size:calc(var(--public-menu-size) * .82);
  font-weight:800;
  letter-spacing:.05em;
}

.accessibility-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:1rem;
}

.accessibility-card{
  height:100%;
}

.accessibility-card ul{
  margin:0;
  padding-left:1.1rem;
}

.accessibility-card li + li{
  margin-top:.55rem;
}

.accessibility-meta{
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
  margin-top:1rem;
}

.accessibility-tag{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  padding:.58rem .86rem;
  border-radius:999px;
  background:rgba(23,74,140,.08);
  border:1px solid rgba(23,74,140,.14);
  color:var(--public-heading);
  font-family:var(--public-menu-font-family);
  font-size:calc(var(--public-menu-size) * .92);
  font-weight:700;
}

.premium-badge{
  padding:.4rem .72rem;
  border-radius:999px;
  background:rgba(197,31,58,.10);
  border:1px solid rgba(197,31,58,.18);
  color:var(--public-accent);
  font-family:var(--public-menu-font-family);
  font-size:calc(var(--public-menu-size) * .8);
  font-weight:800;
}

.section-title,
.display-5{
  color:var(--public-heading);
  font-family:var(--public-heading-font-family);
  letter-spacing:-.03em;
}

.display-5{
  line-height:1;
  font-weight:700;
  font-size:calc(clamp(2.9rem, 5.6vw, 5.2rem) * var(--public-heading-scale));
}

.section-title{
  font-size:calc(clamp(2.35rem, 4vw, 3.3rem) * var(--public-heading-scale));
  line-height:1.02;
  font-weight:700;
  margin-bottom:.9rem;
}

.quick-link-card,
.service-card{
  display:block;
  height:100%;
  padding:1.4rem;
  color:inherit;
  background:linear-gradient(180deg, rgba(255,253,248,.99), rgba(247,241,230,.97));
  border:1px solid var(--public-line);
  border-radius:20px;
  box-shadow:0 14px 28px rgba(47,36,29,.06);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.quick-link-card:hover,
.service-card:hover{
  color:inherit;
  transform:translateY(-4px);
  border-color:rgba(23,74,140,.24);
  box-shadow:0 18px 38px rgba(22,40,61,.11);
}

.quick-link-icon,
.service-icon{
  width:62px;
  height:62px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:1rem;
  border-radius:14px;
  color:#fff;
  background:linear-gradient(135deg, var(--public-primary), var(--public-secondary) 72%, var(--public-accent) 160%);
  box-shadow:0 12px 24px rgba(23,74,140,.18);
  font-size:1.35rem;
}

.quick-link-card{
  position:relative;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  min-height:15rem;
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(244,247,253,.96)),
    linear-gradient(135deg, rgba(23,74,140,.06), rgba(197,31,58,.05));
  border-color:rgba(22,40,61,.10);
  box-shadow:0 18px 36px rgba(22,40,61,.08);
}

.quick-link-card::after{
  content:"";
  position:absolute;
  inset:auto -1.5rem -2rem auto;
  width:7rem;
  height:7rem;
  border-radius:50%;
  background:radial-gradient(circle, rgba(23,74,140,.12), rgba(23,74,140,0) 72%);
  pointer-events:none;
}

.quick-link-topline{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:.8rem;
  margin-bottom:1rem;
}

.quick-link-chip{
  display:inline-flex;
  align-items:center;
  min-height:2rem;
  padding:.35rem .7rem;
  border-radius:999px;
  background:rgba(23,74,140,.08);
  color:var(--public-primary);
  font-family:var(--public-menu-font-family);
  font-size:calc(var(--public-menu-size) * .74);
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.quick-link-title{
  margin-top:auto;
  color:var(--public-heading);
  font-size:calc(1.1rem * var(--public-heading-scale));
  font-weight:800;
  line-height:1.28;
}

.quick-link-copy{
  margin-top:.45rem;
  color:var(--public-muted);
  font-size:var(--public-small-size);
  line-height:1.45;
}

.premium-service-tile{
  position:relative;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  min-height:15rem;
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(244,247,253,.96)),
    linear-gradient(135deg, rgba(23,74,140,.06), rgba(197,31,58,.05));
  border-color:rgba(22,40,61,.10);
  box-shadow:0 18px 36px rgba(22,40,61,.08);
}

.premium-service-tile::after{
  content:"";
  position:absolute;
  inset:auto -1.5rem -2rem auto;
  width:7rem;
  height:7rem;
  border-radius:50%;
  background:radial-gradient(circle, rgba(23,74,140,.12), rgba(23,74,140,0) 72%);
  pointer-events:none;
}

.service-card-topline{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:.8rem;
  margin-bottom:1rem;
}

.service-card-chip{
  display:inline-flex;
  align-items:center;
  min-height:2rem;
  padding:.35rem .7rem;
  border-radius:999px;
  background:rgba(23,74,140,.08);
  color:var(--public-primary);
  font-family:var(--public-menu-font-family);
  font-size:calc(var(--public-menu-size) * .74);
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.service-card-icon{
  margin-bottom:0;
}

.service-card-cover{
  width:62px;
  height:62px;
  margin-bottom:0;
  border-radius:14px;
  aspect-ratio:1/1;
}

.service-card-title{
  margin-top:auto;
  color:var(--public-heading);
  font-size:calc(1.1rem * var(--public-heading-scale));
  font-weight:800;
  line-height:1.28;
}

.service-card-copy{
  margin-top:.45rem;
  color:var(--public-muted);
  font-size:var(--public-small-size);
  line-height:1.45;
}

.public-footer{
  margin-top:auto;
  border-top:1px solid rgba(15,50,97,.10);
  background:linear-gradient(180deg, rgba(17,45,86,.98), rgba(10,31,61,.99));
}

.public-footer-grid{
  display:grid;
  grid-template-columns:1.45fr 1fr 1fr;
  gap:1.25rem;
}

.public-footer-brand{
  display:flex;
  align-items:center;
  gap:1rem;
}

.public-footer .brand-mark{
  box-shadow:none;
}

.public-footer-title{
  margin-bottom:.5rem;
  color:#fff;
  font-family:var(--public-menu-font-family);
  font-size:calc(var(--public-menu-size) * .82);
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.public-footer .fw-semibold,
.public-footer a{
  color:#fff;
}

.public-footer .text-secondary,
.public-footer .small.text-secondary{
  color:rgba(230,238,248,.74)!important;
}

.public-footer-links{
  display:flex;
  flex-direction:column;
  gap:.34rem;
}

.public-footer-links a:hover{
  color:#ffffff;
}

.public-footer-bottom{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  padding-top:1rem;
  border-top:1px solid rgba(255,255,255,.10);
}

.cover-thumb{
  width:100%;
  aspect-ratio:16/9;
  object-fit:cover;
  border-radius:14px;
  border:1px solid rgba(47,36,29,.08);
  background:#d7e1ee;
}

.html-content{
  color:var(--public-ink);
  font-size:var(--public-body-size);
  line-height:1.72;
}

.html-content p:last-child{
  margin-bottom:0;
}

.html-content a{
  color:var(--public-primary);
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:2px;
}

.html-content img{
  max-width:100%;
  height:auto;
  border-radius:14px;
}

.html-content iframe{
  max-width:100%;
  border:0;
  border-radius:14px;
}

.html-content table{
  width:100%;
  border-collapse:collapse;
  margin:1rem 0;
  overflow:hidden;
  border-radius:14px;
}

.html-content th,
.html-content td{
  padding:.85rem;
  border:1px solid rgba(47,36,29,.10);
}

.html-content th{
  background:rgba(23,74,140,.08);
}

.btn{
  --bs-btn-font-weight:700;
  --bs-btn-border-radius:999px;
  --bs-btn-padding-x:1.18rem;
  --bs-btn-padding-y:.82rem;
  letter-spacing:.01em;
}

.btn-primary{
  --bs-btn-bg:var(--public-primary);
  --bs-btn-border-color:var(--public-primary);
  --bs-btn-hover-bg:var(--public-accent);
  --bs-btn-hover-border-color:var(--public-accent);
  --bs-btn-active-bg:var(--public-accent);
  --bs-btn-active-border-color:var(--public-accent);
  box-shadow:0 14px 28px rgba(23,74,140,.18);
}

.btn-outline-primary{
  --bs-btn-color:var(--public-primary);
  --bs-btn-border-color:rgba(23,74,140,.24);
  --bs-btn-hover-bg:var(--public-primary);
  --bs-btn-hover-border-color:var(--public-primary);
}

.btn-outline-secondary{
  --bs-btn-color:var(--public-heading);
  --bs-btn-border-color:rgba(47,36,29,.14);
  --bs-btn-hover-bg:rgba(47,36,29,.05);
  --bs-btn-hover-color:var(--public-heading);
  --bs-btn-hover-border-color:rgba(47,36,29,.22);
}

.text-secondary,
.small.text-secondary{
  color:var(--public-muted)!important;
}

.bg-white{
  background:linear-gradient(180deg, rgba(249,251,255,.72), rgba(238,243,251,.74))!important;
}

.hero-visual-card{
  isolation:isolate;
}

.hero-visual-card::after{
  content:"";
  position:absolute;
  inset:auto -3rem -3rem auto;
  width:12rem;
  height:12rem;
  border-radius:50%;
  background:radial-gradient(circle, rgba(197,31,58,.18), rgba(197,31,58,0) 70%);
  z-index:0;
}

.hero-visual-stack,
.hero-visual-panel{
  position:relative;
  z-index:1;
  display:grid;
  gap:.8rem;
}

.hero-floating-card,
.hero-visual-badge{
  display:flex;
  align-items:center;
  gap:.8rem;
  padding:.95rem 1rem;
  border-radius:14px;
  background:rgba(255,255,255,.94);
  border:1px solid rgba(22,40,61,.08);
  box-shadow:0 12px 22px rgba(22,40,61,.05);
  font-weight:700;
  color:var(--public-heading);
}

.hero-floating-card i,
.hero-visual-badge i{
  width:2.5rem;
  height:2.5rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:12px;
  background:linear-gradient(135deg, var(--public-primary), var(--public-secondary) 72%, var(--public-accent) 160%);
  color:#fff;
  font-size:1.15rem;
  box-shadow:0 10px 18px rgba(23,74,140,.16);
}

@media (max-width: 991px){
  .public-navbar .navbar-toggler{
    display:inline-flex;
  }

  .public-body .container{
    width:min(100% - 24px, 100%);
  }

  .public-footer-grid{
    grid-template-columns:1fr;
  }

  .public-footer-bottom{
    flex-direction:column;
  }

  .section-heading{
    flex-direction:column;
    align-items:flex-start;
  }

  .premium-stats-grid{
    grid-template-columns:repeat(2, minmax(0,1fr));
  }

  .premium-stats-shell{
    grid-template-columns:1fr;
  }

  .premium-stats-intro{
    padding:1.75rem 1.7rem;
  }

  .premium-stats-title{
    font-size:2.05rem;
  }

  .accessibility-grid{
    grid-template-columns:1fr;
  }

  .public-navbar .navbar-collapse{
    margin-top:1rem;
    padding:1.2rem;
    border:1px solid rgba(22,40,61,.10);
    border-radius:24px;
    background:rgba(252,253,255,.98);
    box-shadow:0 20px 40px rgba(22,40,61,.08);
  }

  .public-navbar .navbar-nav{
    width:100%;
    align-items:stretch;
    gap:.55rem;
    padding:.3rem 0 0;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
  }

  .hero-showcase-frame,
  .hero-showcase-overlay{
    min-height:unset;
  }

  .hero-showcase-content{
    padding:4rem 0 2.8rem;
  }

  .hero-showcase-meta{
    grid-template-columns:1fr;
  }

  .hero-showcase-title{
    max-width:18ch;
  }

  .hero-showcase-actions{
    margin-bottom:1.4rem;
  }

  .hero-section{
    padding:4.2rem 0 2.8rem;
  }

  .public-section{
    padding:3.4rem 0;
  }
}

@media (max-width: 767px){
  .public-body .container{
    width:min(100% - 18px, 100%);
  }

  .public-navbar .container{
    min-height:74px;
  }

  .public-navbar .nav-link{
    padding:.9rem 1.05rem;
  }

  .hero-showcase-section{
    padding-top:.45rem;
  }

  .hero-showcase-content{
    padding:3.4rem 0 2.4rem;
  }

  .hero-showcase-topline{
    gap:.8rem;
  }

  .hero-showcase-logo{
    width:4.9rem;
    height:4.9rem;
    border-radius:1.25rem;
  }

  .hero-showcase-copy{
    font-size:1.02rem;
    line-height:1.7;
  }

  .hero-showcase-actions .btn{
    width:100%;
  }

  .hero-showcase-pills{
    margin:1.35rem 0 1.5rem;
  }

  .hero-showcase-indicator{
    width:1.7rem;
  }

  .hero-showcase-indicator.is-active{
    width:3rem;
  }

  .premium-stats-grid{
    grid-template-columns:1fr;
  }

  .premium-stat-card{
    min-height:auto;
  }

  .premium-stats-title{
    font-size:1.82rem;
  }

  .premium-stat-card strong{
    font-size:3rem;
  }

  .public-brand-kicker{
    font-size:.64rem;
  }

  .public-brand-city{
    font-size:1.05rem;
  }

  .brand-mark{
    width:46px;
    height:46px;
    border-radius:16px;
  }

  .premium-stats-grid{
    grid-template-columns:1fr;
  }

  .public-category-header{
    flex-direction:column;
    align-items:flex-start;
  }

  .hero-pill-row{
    flex-direction:column;
  }

  .hero-card,
  .card-soft,
  .page-hero-card,
  .quick-link-card,
  .service-card,
  .cover-thumb{
    border-radius:14px;
  }

  .btn,
  .btn-lg{
    width:100%;
  }

  .public-editorial-card,
  .public-article-card{
    padding:1.2rem;
  }
}
