/*
  GroupBenefits.ca - site stylesheet
  ---------------------------------------------------------------------------
  All styling for every page lives in this one file. Edit here only; do not
  add <style> blocks or style="" attributes to the pages.

  Page-specific rules are scoped with the classes on each page's <html> tag:
    pg-<page>      one page, e.g. html.pg-index (home), html.pg-health
    tpl-home       Home, About, Contact
    tpl-overview   Group Benefits, Group Retirement, Flexible Plan Options
    tpl-product    the 15 product pages (Health, Dental, Group RRSP ...)
    tpl-info       the 3 guides, Resources, Other Products, Privacy, Terms
    tpl-guide      the 3 guides and Resources
  Scopes are wrapped in :where(...), which adds no specificity.

  Main breakpoints: 360, 480, 640/641, 980/981 and 1160/1161px (the navigation
  script relies on 1160px). Some sections also use 600, 680, 700, 720, 760, 800,
  900, 920 and 1279px; these were kept exactly as they were.

  !important is only used where it is still needed to win over another rule.
  Classes starting with u- replace former inline style="" attributes.
*/

/* ======================================================================
   Colours, fonts and base elements
   ====================================================================== */
:root:where(:is(.tpl-product,.tpl-overview)) {
  --grey:#64748B;
  --shadow:0 10px 32px rgba(1,61,143,.09);
  --serif:Georgia,'Times New Roman',serif;
  --sans:Arial,Helvetica,sans-serif;
}
:root {
  --navy:#013D8F;
  --deep-navy:#062F68;
  --blue:#0758A8;
  --accent:#01A3FE;
  --ink:#15345E;
  --muted:#64748B;
  --secondary-text:#536985;
  --pale:#F5FAFE;
  --pale2:#F5FAFE;
  --line:#DBE7F1;
  --white:#FFFFFF;
}
* {
  box-sizing:border-box;
}
html {
  scroll-behavior:smooth;
}
:where(html:not(.tpl-overview)) body {
  margin:0;
  color:var(--ink);
  font-family:var(--sans);
  background:#FFFFFF;
}
:where(html:is(.tpl-product,.tpl-info)) body {
  line-height:1.55;
}
:where(html:is(.tpl-home,.pg-request-a-quote)) body {
  line-height:1.48;
}
a {
  color:inherit;
  text-decoration:none;
}
:where(html:not(.pg-request-a-quote)) button {
  font:inherit;
}
:where(html:is(.tpl-product,.tpl-overview)) summary::-webkit-details-marker {
  display:none;
}
:where(html:is(.tpl-product,.tpl-overview)) details[open] summary:after {
  content:'–';
}

/* ======================================================================
   Shared layout, typography and buttons
   ====================================================================== */
.container {
  width:min(1180px,92vw);
  margin:0 auto;
}
.eyebrow {
  font-size:.72rem;
  letter-spacing:.18em;
  font-weight:700;
  color:var(--navy);
  text-transform:uppercase;
}
:where(html:is(.tpl-product,.tpl-overview)) .section-title {
  font-family:var(--serif);
  font-size:clamp(2.2rem,4vw,3.2rem);
  line-height:1.03;
  color:var(--navy);
  margin:.35rem 0 1rem;
}
:where(html:is(.tpl-product,.tpl-overview)) .small-title {
  font-family:var(--serif);
  font-size:clamp(1.8rem,3vw,2.4rem);
  line-height:1.08;
  color:var(--navy);
  margin:.25rem 0 1rem;
}
:where(html:not(.pg-request-a-quote)) .muted {
  color:var(--muted);
}
:where(html:not(.pg-request-a-quote)) .btn {
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  border:0;
  border-radius:999px;
  padding:.9rem 1.45rem;
  font-weight:700;
  cursor:pointer;
  transition:.2s ease;
}
.btn-primary:hover {
  transform:translateY(-1px);
}
.btn-outline {
  background:white;
  color:var(--navy);
  border:1.5px solid var(--blue);
}
.btn-outline:hover {
  background:var(--pale);
}
:where(html:not(.pg-request-a-quote)) .text-link {
  font-weight:700;
}
:where(html:not(.pg-request-a-quote)) .text-link:hover {
  text-decoration:underline;
}
@media(max-width:640px) {
  :where(html:is(.tpl-overview,.pg-request-a-quote)) .container {
    width:min(92vw,560px);
  }
}
.btn-primary {
  background:#0758A8;
  color:#FFFFFF!important;
}

/* ======================================================================
   Header and primary navigation
   ====================================================================== */
header {
  position:sticky;
  top:0;
  backdrop-filter:blur(12px);
}
:where(html:not(.tpl-home,.pg-request-a-quote)) header {
  z-index:50;
  background:rgba(255,255,255,.97);
  border-bottom:1px solid rgba(219,231,241,.8);
}
:where(html:is(.tpl-home,.pg-request-a-quote)) header {
  z-index:40;
  background:rgba(255,255,255,.96);
  border-bottom:1px solid rgba(219,231,241,.7);
}
.nav {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2rem;
}
.nav {
  height:96px;
  min-height:96px;
  position:relative;
}
:where(html.pg-group-retirement) .logo {
  flex:0 0 auto;
}
.logo {
  display:flex;
  align-items:center;
  height:96px;
  align-self:auto;
  overflow:visible;
}
.navlinks {
  display:flex;
  align-items:center;
  font-size:.9rem;
  font-weight:700;
  color:var(--navy);
  gap:1.35rem;
}
/* Keep menu items on one line */
.navlinks > a,
.navlinks > .nav-dropdown > button,
.navlinks > .nav-dropdown > a {
  white-space:nowrap;
}
/* Slightly tighter menu spacing just above the menu-button breakpoint */
@media (min-width: 1161px) and (max-width: 1279px) {
  .navlinks {
    gap:1.1rem;
  }
}
.nav-actions {
  gap:.75rem;
  display:flex;
  align-items:center;
  flex:0 0 auto;
}
.menu-btn {
  display:none;
  background:none;
  border:0;
  color:var(--navy);
  font-size:1.55rem;
}
:where(html:not(.tpl-home)) .menu-btn {
  cursor:pointer;
}
/* While the mobile menu is open the button shows ✕; keep it the size of ☰. */
.nav.mobile-open .menu-btn {
  width:1.6em;
  font-size:1.35rem;
  line-height:1;
}
@media(max-width:980px) {
  :where(html.tpl-info) .navlinks {
    position:absolute;
    top:96px;
    left:0;
    right:0;
    background:#FFFFFF;
    border-bottom:1px solid var(--line);
    padding:16px 4vw 22px;
    flex-direction:column;
    align-items:flex-start;
  }
  .navlinks {
    display:none;
  }
  :where(html.tpl-product) .nav-actions .btn-outline {
    display:none;
  }
  :where(html.pg-request-a-quote) .nav.mobile-open {
    flex-wrap:wrap;
    padding-bottom:18px;
  }
  .nav.mobile-open {
    overflow:visible;
  }
  :where(html.pg-request-a-quote) .nav.mobile-open .navlinks {
    order:3;
    width:100%;
  }
  .nav.mobile-open .navlinks {
    display:flex;
    position:absolute;
    top:100%;
    left:0;
    right:0;
    z-index:100;
    flex-direction:column;
    align-items:flex-start;
    gap:14px;
    padding:18px 4vw;
    background:#FFFFFF;
    border-bottom:1px solid #DBE7F1;
    box-shadow:0 10px 24px rgba(1,61,143,.08);
    max-height:calc(100vh - 96px);
    overflow-y:auto;
  }
}
.logo img {
  display:block;
  width:196px;
  height:auto;
  max-height:72px;
  object-fit:contain;
  transform:none;
}
@media(max-width:980px) {
  .menu-btn {
    display:block;
  }
}
@media(max-width:640px) {
  .nav {
    height:68px;
    min-height:68px;
    gap:8px;
  }
  .logo {
    height:68px;
    flex:1 1 auto;
    min-width:0;
  }
  .logo img {
    max-height:58px;
    transform:none;
    width:160px;
    max-width:100%;
    height:auto;
  }
}
.nav-actions .btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
  margin:0;
  border-radius:999px;
  aspect-ratio:auto;
  font-weight:700;
  white-space:nowrap;
  word-break:normal;
  overflow-wrap:normal;
  transform:none;
  width:auto;
  min-width:132px;
  max-width:none;
  height:42px;
  min-height:42px;
  max-height:42px;
  padding:0 18px;
  flex:0 0 auto;
  font-size:13px;
  line-height:1;
}
:where(html.pg-index) .logo-marquee {
  position:relative;
  overflow:hidden;
  margin-top:26px;
  padding:10px 0;
}
:where(html.pg-index) .logo-marquee::before,
:where(html.pg-index) .logo-marquee::after {
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  width:56px;
  z-index:2;
  pointer-events:none;
}
:where(html.pg-index) .logo-marquee::before {
  left:0;
  background:linear-gradient(to right, rgba(255,255,255,1), rgba(255,255,255,0));
}
:where(html.pg-index) .logo-marquee::after {
  right:0;
  background:linear-gradient(to left, rgba(255,255,255,1), rgba(255,255,255,0));
}
:where(html.pg-index) .logo-marquee-track {
  display:flex;
  align-items:center;
  gap:22px;
  width:max-content;
  animation:insurerMarquee 48s linear infinite;
  will-change:transform;
  animation-duration:55s;
}
@media (prefers-reduced-motion: reduce) {
  :where(html.pg-index) .logo-marquee {
    overflow-x:auto;
  }
  :where(html.pg-index) .logo-marquee::before,
  :where(html.pg-index) .logo-marquee::after {
    display:none;
  }
  :where(html.pg-index) .logo-marquee-track {
    padding-bottom:4px;
  }
  .logo-marquee-track {
    animation:none!important;
    transform:none;
  }
}
.nav-dropdown {
  position:relative;
  display:flex;
  align-items:center;
}
.nav-dropdown-head {
  display:flex;
  align-items:center;
  gap:.18rem;
}
.nav-dropdown-head>a {
  white-space:nowrap;
}
.nav-dropdown-toggle {
  display:grid;
  place-items:center;
  width:24px;
  height:24px;
  padding:0;
  border:0;
  background:transparent;
  color:var(--navy);
  cursor:pointer;
  border-radius:50%;
  font-size:.78rem;
  line-height:1;
  transition:.18s ease;
}
.nav-dropdown-toggle:hover,
.nav-dropdown-toggle:focus-visible {
  background:var(--pale);
  outline:2px solid transparent;
}
.nav-dropdown.open .nav-dropdown-toggle {
  transform:rotate(180deg);
}
.nav-dropdown-menu {
  position:absolute;
  top:calc(100% + 14px);
  left:-18px;
  z-index:90;
  display:grid;
  gap:22px;
  padding:24px;
  background:#FFFFFF;
  border:1px solid var(--line);
  border-radius:16px;
  box-shadow:0 18px 46px rgba(1,61,143,.16);
  opacity:0;
  visibility:hidden;
  transform:translateY(-7px);
  transition:opacity .16s ease,transform .16s ease,visibility .16s ease;
}
.nav-dropdown-menu:before {
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:-16px;
  height:16px;
}
.nav-dropdown.open>.nav-dropdown-menu {
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
.nav-menu-label {
  display:block;
  margin:0 0 9px;
  color:var(--navy);
  font-size:.7rem;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.nav-menu-group a {
  display:block;
  padding:7px 9px;
  margin:0 -9px;
  border-radius:8px;
  color:#536985;
  font-size:.82rem;
  font-weight:600;
  line-height:1.25;
}
.nav-menu-group a:hover,
.nav-menu-group a:focus-visible,
.nav-menu-group a.active {
  background:var(--pale);
  color:var(--navy);
  outline:0;
}
@media(max-width:980px) {
  .nav-dropdown {
    display:block;
    width:100%;
  }
  .nav-dropdown-head {
    width:100%;
    justify-content:space-between;
  }
  .nav-dropdown-head>a {
    padding:4px 0;
  }
  .nav-dropdown-toggle {
    width:36px;
    height:36px;
    border:1px solid var(--line);
    background:var(--pale);
  }
  .nav-dropdown:hover>.nav-dropdown-menu,
  .nav-dropdown:focus-within>.nav-dropdown-menu {
    display:none;
  }
  .nav-dropdown.open>.nav-dropdown-menu {
    display:grid;
  }
  .nav-menu-group a {
    padding:8px 9px;
  }
}
@media(max-width:640px) {
  .nav.mobile-open .navlinks {
    max-height:calc(100vh - 68px);
  }
}
.text-link,
.learn,
.navlinks a:hover,
.navlinks a.active {
  color:#0758A8;
}
@media(max-width:640px) {
  .nav-actions .btn {
    width:auto;
    min-width:124px;
    max-width:none;
    height:40px;
    min-height:40px;
    max-height:40px;
    padding:0 14px;
    flex-basis:auto;
    font-size:12px;
  }
  .nav-actions {
    flex:0 0 auto;
    gap:6px;
  }
  .menu-btn {
    display:grid;
    place-items:center;
    width:44px;
    height:44px;
    padding:0;
    flex:0 0 44px;
  }
}
@media(max-width:360px) {
  .nav-actions .btn {
    min-width:118px;
    padding-left:12px;
    padding-right:12px;
  }
}
@media(max-width:640px) {
  :where(html.pg-index) .logo-marquee-track {
    gap:9px;
    --marquee-half-gap:4.5px;
  }
}
@media(min-width:981px) and (max-width:1160px) {
  .navlinks {
    display:none;
  }
  .menu-btn {
    display:block;
  }
  .nav.mobile-open .navlinks {
    display:flex;
    position:absolute;
    top:100%;
    left:0;
    right:0;
    z-index:100;
    flex-direction:column;
    align-items:flex-start;
    gap:14px;
    padding:18px 4vw;
    background:#FFFFFF;
    border-bottom:1px solid #DBE7F1;
    box-shadow:0 10px 24px rgba(1,61,143,.08);
    max-height:calc(100vh - 96px);
    overflow-y:auto;
  }
  .nav-dropdown {
    display:block;
    width:100%;
  }
  .nav-dropdown-head {
    width:100%;
    justify-content:space-between;
  }
  .nav-dropdown-head>a {
    padding:4px 0;
  }
  .nav-dropdown-toggle {
    width:36px;
    height:36px;
    border:1px solid var(--line);
    background:var(--pale);
  }
  .nav-dropdown:hover>.nav-dropdown-menu,
  .nav-dropdown:focus-within>.nav-dropdown-menu {
    display:none;
  }
  .nav-dropdown.open>.nav-dropdown-menu {
    display:grid;
  }
  .nav-menu-group a {
    padding:8px 9px;
  }
}
.skip-link {
  position:fixed;
  top:12px;
  left:12px;
  z-index:1000;
  padding:12px 18px;
  border-radius:6px;
  background:#FFFFFF;
  color:#013D8F;
  font-weight:700;
  transform:translateY(calc(-100% - 24px));
}
.skip-link:focus {
  transform:translateY(0);
  outline:3px solid #0758A8;
  outline-offset:3px;
}
.nav-dropdown.open:focus-within > .nav-dropdown-menu {
  transition:none;
}
.guide-table-wrap:focus-visible {
  outline:3px solid #0758A8;
  outline-offset:3px;
}

/* ======================================================================
   Section menu bar (secondary navigation)
   ====================================================================== */
:where(html:is(.tpl-product,.tpl-overview)) .subnav {
  position:sticky;
  z-index:45;
  background:#FFFFFF;
  border-bottom:1px solid var(--line);
}
.subnav {
  top:96px;
}
:where(html:is(.tpl-product,.tpl-overview)) .subnav-inner {
  height:52px;
  display:flex;
  align-items:center;
  gap:1.4rem;
  white-space:nowrap;
  font-size:.84rem;
  font-weight:700;
  color:var(--muted);
  overflow-x:auto;
  overflow-y:hidden;
  scrollbar-width:none;
  -ms-overflow-style:none;
}
:where(html:is(.tpl-product,.tpl-overview)) .subnav a {
  padding:17px 0 14px;
  border-bottom:3px solid transparent;
}
:where(html.pg-group-retirement) .subnav a {
  white-space:nowrap;
  position:relative;
  z-index:2;
}
:where(html:is(.tpl-product,.tpl-overview)) .subnav a.active {
  color:var(--navy);
  border-bottom-color:var(--blue);
}
:where(html.pg-group-retirement) .subnav a:hover {
  color:var(--navy);
}
@media(max-width:640px) {
  :where(html:is(.tpl-product,.tpl-overview)) .subnav-inner {
    height:48px;
  }
  :where(html.tpl-product) .subnav a {
    padding:15px 0 12px;
  }
  .subnav {
    top:68px;
  }
}
:where(html:is(.tpl-product,.tpl-overview)) .subnav-inner::-webkit-scrollbar {
  display:none;
  width:0;
  height:0;
}
@media(min-width:981px) {
  :where(html:not(.tpl-info,.tpl-home,.pg-defined-contribution-pension,.pg-dpsp,.pg-group-retirement,.pg-group-rrsp,.pg-group-tfsa,.pg-request-a-quote)) .subnav-inner {
    align-content:center;
    height:52px;
    min-height:52px;
    display:flex;
    flex-wrap:nowrap;
    justify-content:flex-start;
    align-items:center;
    gap:1.2rem;
    overflow:visible;
    white-space:nowrap;
    padding:0;
  }
  :where(html:not(.tpl-info,.tpl-home,.pg-defined-contribution-pension,.pg-dpsp,.pg-group-retirement,.pg-group-rrsp,.pg-group-tfsa,.pg-request-a-quote)) .subnav-inner a {
    padding:10px 0 8px;
  }
  :where(html:not(.tpl-info,.tpl-home,.pg-defined-contribution-pension,.pg-dpsp,.pg-group-retirement,.pg-group-rrsp,.pg-group-tfsa,.pg-request-a-quote)) .subnav-inner>a {
    flex:0 0 auto;
  }
  :where(html:not(.tpl-info,.tpl-home,.pg-defined-contribution-pension,.pg-dpsp,.pg-group-retirement,.pg-group-rrsp,.pg-group-tfsa,.pg-request-a-quote)) .subnav-more {
    position:relative;
    flex:0 0 auto;
  }
  :where(html:not(.tpl-info,.tpl-home,.pg-defined-contribution-pension,.pg-dpsp,.pg-group-retirement,.pg-group-rrsp,.pg-group-tfsa,.pg-request-a-quote)) .subnav-more-button {
    display:flex;
    align-items:center;
    gap:.4rem;
    padding:15px 0 12px;
    background:transparent;
    border:0;
    border-bottom:3px solid transparent;
    color:var(--muted);
    font:inherit;
    font-size:.84rem;
    font-weight:700;
    white-space:nowrap;
    cursor:pointer;
  }
  :where(html:not(.tpl-info,.tpl-home,.pg-defined-contribution-pension,.pg-dpsp,.pg-group-retirement,.pg-group-rrsp,.pg-group-tfsa,.pg-request-a-quote)) .subnav-more-button:hover,
  :where(html:not(.tpl-info,.tpl-home,.pg-defined-contribution-pension,.pg-dpsp,.pg-group-retirement,.pg-group-rrsp,.pg-group-tfsa,.pg-request-a-quote)) .subnav-more-button[aria-expanded="true"],
  :where(html:not(.tpl-info,.tpl-home,.pg-defined-contribution-pension,.pg-dpsp,.pg-group-retirement,.pg-group-rrsp,.pg-group-tfsa,.pg-request-a-quote)) .subnav-more-button.current {
    color:var(--navy);
  }
  :where(html:not(.tpl-info,.tpl-home,.pg-defined-contribution-pension,.pg-dpsp,.pg-group-retirement,.pg-group-rrsp,.pg-group-tfsa,.pg-request-a-quote)) .subnav-more-button.current {
    border-bottom-color:var(--blue);
  }
  :where(html:not(.tpl-info,.tpl-home,.pg-defined-contribution-pension,.pg-dpsp,.pg-group-retirement,.pg-group-rrsp,.pg-group-tfsa,.pg-request-a-quote)) .subnav-more-panel {
    display:none;
    position:absolute;
    top:calc(100% + 5px);
    right:0;
    width:265px;
    padding:9px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:12px;
    box-shadow:0 18px 42px rgba(1,61,143,.16);
    z-index:60;
    white-space:normal;
  }
  :where(html:not(.tpl-info,.tpl-home,.pg-defined-contribution-pension,.pg-dpsp,.pg-group-retirement,.pg-group-rrsp,.pg-group-tfsa,.pg-request-a-quote)) .subnav-more.open .subnav-more-panel {
    display:block;
  }
  :where(html:not(.tpl-info,.tpl-home,.pg-defined-contribution-pension,.pg-dpsp,.pg-group-retirement,.pg-group-rrsp,.pg-group-tfsa,.pg-request-a-quote)) .subnav-more-panel a {
    display:block;
    padding:10px 12px;
    border:0;
    border-radius:7px;
    color:#536985;
    font-size:.84rem;
    font-weight:600;
    white-space:nowrap;
  }
  :where(html:not(.tpl-info,.tpl-home,.pg-defined-contribution-pension,.pg-dpsp,.pg-group-retirement,.pg-group-rrsp,.pg-group-tfsa,.pg-request-a-quote)) .subnav-more-panel a:hover,
  :where(html:not(.tpl-info,.tpl-home,.pg-defined-contribution-pension,.pg-dpsp,.pg-group-retirement,.pg-group-rrsp,.pg-group-tfsa,.pg-request-a-quote)) .subnav-more-panel a:focus-visible,
  :where(html:not(.tpl-info,.tpl-home,.pg-defined-contribution-pension,.pg-dpsp,.pg-group-retirement,.pg-group-rrsp,.pg-group-tfsa,.pg-request-a-quote)) .subnav-more-panel a.active {
    background:var(--pale);
    color:var(--navy);
    outline:0;
  }
  :where(html:not(.tpl-info,.tpl-home,.pg-defined-contribution-pension,.pg-dpsp,.pg-group-retirement,.pg-group-rrsp,.pg-group-tfsa,.pg-request-a-quote)) .subnav-mobile-extra {
    display:none;
  }
  :where(html:not(.tpl-info,.tpl-home,.pg-defined-contribution-pension,.pg-dpsp,.pg-group-retirement,.pg-group-rrsp,.pg-group-tfsa,.pg-request-a-quote)) .subnav-flex-mobile {
    display:none;
  }
}
@media(max-width:980px) {
  :where(html:not(.tpl-info,.tpl-home,.pg-defined-contribution-pension,.pg-dpsp,.pg-group-retirement,.pg-group-rrsp,.pg-group-tfsa,.pg-request-a-quote)) .subnav-more {
    display:none;
  }
  :where(html:not(.tpl-info,.tpl-home,.pg-defined-contribution-pension,.pg-dpsp,.pg-group-retirement,.pg-group-rrsp,.pg-group-tfsa,.pg-request-a-quote)) .subnav-flex-mobile {
    display:inline-flex;
    flex:0 0 auto;
  }
  .subnav {
    position:sticky;
  }
  .subnav.has-more-right::after,
  .subnav.has-more-left::before {
    content:"";
    position:absolute;
    top:0;
    bottom:0;
    width:22px;
    pointer-events:none;
    z-index:3;
  }
  .subnav.has-more-right::after {
    right:0;
    background:linear-gradient(90deg,transparent,#FFFFFF);
  }
  .subnav.has-more-left::before {
    left:0;
    background:linear-gradient(270deg,transparent,#FFFFFF);
  }
}
.navlinks a:focus-visible,
.nav-dropdown-toggle:focus-visible,
.menu-btn:focus-visible,
.subnav a:focus-visible,
.subnav-more-button:focus-visible {
  outline:3px solid #0758A8;
  outline-offset:3px;
}
@media (prefers-reduced-motion: reduce) {
  html,
  .subnav {
    scroll-behavior:auto;
  }
}

/* ======================================================================
   Footer
   ====================================================================== */
:where(html:not(.tpl-home,.pg-request-a-quote)) footer {
  background:#062F68;
}
:where(html:is(.tpl-product,.tpl-info)) footer {
  color:#E9F3FF;
  padding:48px 0 26px;
}
:where(html.tpl-overview) footer {
  color:#CBDCF1;
  padding:44px 0 28px;
}
:where(html.tpl-home) footer {
  padding:28px 0 18px;
}
:where(html.pg-request-a-quote) footer {
  background:#F5FAFE;
  border-top:1px solid var(--line);
}
.site-footer-standard {
  background:#062F68;
  color:#E9F3FF;
  padding:48px 0 0;
  border-top:0;
}
.site-footer-standard .site-footer-grid {
  display:grid;
  grid-template-columns:1.35fr 1fr .9fr .72fr;
  gap:42px;
  padding-bottom:34px;
  align-items:start;
}
.site-footer-standard .site-footer-brand img {
  display:block;
  width:196px;
  height:auto;
  max-height:62px;
  object-fit:contain;
  filter:brightness(0) invert(1);
  opacity:.98;
  margin-bottom:15px;
}
.site-footer-standard .site-footer-brand p {
  margin:0;
  max-width:370px;
  color:#CBDCF1;
  font-size:.9rem;
  line-height:1.55;
}
.site-footer-standard h2 {
  margin:0 0 13px;
  color:#FFFFFF;
  font-size:.9rem;
}
.site-footer-standard a {
  display:block;
  color:#CBDCF1;
  font-size:.84rem;
  margin:8px 0;
  text-decoration:none;
}
/* Footer links: taller tap area (24px+) without changing the spacing between them. */
.site-footer-standard .site-footer-links a,
.site-footer-standard .site-footer-brand > a {
  margin:0;
  padding:4px 0;
}

.site-footer-standard a:hover {
  color:#FFFFFF;
}
.site-footer-standard .site-footer-legal {
  border-top:1px solid rgba(255,255,255,.13);
  padding:21px 0 14px;
  display:flex;
  justify-content:space-between;
  gap:20px;
  flex-wrap:wrap;
  color:#9FB8D8;
  font-size:.75rem;
}
.site-footer-standard .site-footer-division {
  border-top:1px solid rgba(255,255,255,.09);
  padding:13px 4vw 17px;
  text-align:center;
  color:#9FB8D8;
  font-size:.7rem;
}
@media(max-width:980px) {
  .site-footer-standard .site-footer-grid {
    grid-template-columns:1fr 1fr;
  }
  .site-footer-standard .site-footer-brand {
    grid-column:1/-1;
  }
}
@media(max-width:640px) {
  .site-footer-standard .site-footer-grid {
    grid-template-columns:1fr;
    gap:28px;
  }
  .site-footer-standard .site-footer-brand {
    grid-column:auto;
  }
}
.site-footer-legal a {
  display:inline;
  margin:0;
  padding:0;
  color:inherit!important;
  font-size:inherit;
  text-decoration:underline;
  text-underline-offset:3px;
}
.site-footer-legal a:hover,
.site-footer-legal a:focus-visible {
  color:#FFFFFF!important;
}
:where(html.pg-request-a-quote) .cta-band a:focus-visible,
:where(html.pg-request-a-quote) .cta-band button:focus-visible,
:where(html.pg-request-a-quote) .site-footer-standard a:focus-visible,
:where(html.pg-request-a-quote) .site-footer-standard button:focus-visible {
  outline-color:#9BDCFF;
}
@media(max-width:980px) {
  :where(html:not(.pg-index)) h2:not(:where(.site-footer-standard h2)),
  :where(html:not(.pg-index)) h3 {
    line-height:1.14!important;
  }
  :where(html.pg-index) h2:not(:where(.site-footer-standard h2)),
  :where(html.pg-index) h3:not(:where(.point h3,.ret-item h3)) {
    line-height:1.14!important;
  }
}
.site-footer-standard .site-footer-links a[href="request-a-quote"] {
  color:#FFFFFF;
  font-weight:700;
}
.site-footer-standard .site-footer-brand .footer-phone-rows .footer-phone-label {
  display:inline-block;
  width:4em;
  margin-right:8px;
  text-align:left;
  white-space:nowrap;
}
.site-footer-standard .site-footer-brand .footer-phone-rows a {
  white-space:nowrap;
}

/* ======================================================================
   Shared page sections: hero, stats, cards, FAQs, call-to-action
   ====================================================================== */
:where(html:is(.tpl-home,.tpl-overview)) .hero {
  background:linear-gradient(90deg,#F5FAFE 0%,#F5FAFE 49%,white 49%);
  overflow:hidden;
}
:where(html:is(.tpl-product,.tpl-overview)) .breadcrumbs {
  font-size:.78rem;
  color:var(--muted);
  margin-bottom:1.1rem;
}
:where(html:not(.tpl-home,.pg-request-a-quote)) .breadcrumbs a {
  color:var(--navy);
  font-weight:700;
}
.breadcrumbs a,
.guide-breadcrumbs a {
  display:inline-block;
  padding:5px 0;
  margin:-5px 0;
}
/* Stand-alone text links and contact links: an invisible 6px band above and below makes the
   tap area 24px+ without moving anything (the ::after belongs to the link, so it takes the tap). */
main a.text-link,
main .card > a:not(.btn),
main .contact-detail a,
main .contact-alt a,
main .direct-contact a,
main p.privacy a,
main a[href^="mailto:"],
main a[href^="tel:"],
.site-footer-standard .site-footer-brand .footer-phone-rows a {
  position:relative;
}
main a.text-link::after,
main .card > a:not(.btn)::after,
main .contact-detail a::after,
main .contact-alt a::after,
main .direct-contact a::after,
main p.privacy a::after,
main a[href^="mailto:"]::after,
main a[href^="tel:"]::after,
.site-footer-standard .site-footer-brand .footer-phone-rows a::after {
  content:"";
  position:absolute;
  top:-6px;
  bottom:-6px;
  left:0;
  right:0;
}
.site-footer-legal a {
  padding-top:6px;
  padding-bottom:6px;
}
/* Desktop menu links: 24px+ tap area, same position. */
@media(min-width:1161px) {
  #site-primary-nav > a,
  .nav-dropdown-head > a {
    padding-top:5px;
    padding-bottom:5px;
    margin-top:-5px;
    margin-bottom:-5px;
  }
}
:where(html:not(.pg-request-a-quote)) .hero-ctas {
  display:flex;
  gap:.9rem;
  flex-wrap:wrap;
}
:where(html:is(.tpl-product,.pg-group-retirement)) .hero-note {
  margin-top:1.25rem;
  font-size:.72rem;
  font-weight:700;
  color:var(--grey);
  text-transform:uppercase;
}
:where(html:is(.tpl-product,.tpl-info)) .hero-panel {
  padding:48px 0 48px 52px;
  display:flex;
  align-items:center;
}
:where(html:is(.tpl-product,.tpl-overview)) .card.featured {
  background:linear-gradient(135deg,var(--navy),#0758A8);
  color:#FFFFFF;
  border:0;
}
:where(html:not(.tpl-info,.tpl-home,.pg-flexible-plan-options,.pg-health,.pg-request-a-quote)) .card.featured {
  grid-column:span 2;
}
:where(html:is(.pg-flexible-plan-options,.pg-health)) .card.featured {
  grid-column:span 1;
}
:where(html:is(.tpl-product,.tpl-overview)) .card.featured .icon {
  color:#9BDCFF;
}
:where(html:is(.tpl-product,.tpl-info)) .cta {
  padding:72px 0;
  background:#FFFFFF;
}
:where(html:is(.tpl-product,.tpl-info)) .cta-box {
  background:linear-gradient(120deg,#F5FAFE,#F5FAFE);
  border:1px solid #DBE7F1;
  border-radius:24px;
  padding:42px 46px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:40px;
}
:where(html:is(.tpl-product,.tpl-info)) .cta-box h2 {
  font-family:var(--serif);
  font-size:clamp(2rem,3vw,2.4rem);
  line-height:1.04;
  color:var(--navy);
  margin:0 0 10px;
}
@media(max-width:980px) {
  :where(html:is(.tpl-product,.tpl-info)) .hero-panel {
    padding:0 0 50px;
  }
}
@media(max-width:640px) {
  :where(html:is(.tpl-product,.tpl-info)) .cta-box {
    padding:30px;
    align-items:flex-start;
    flex-direction:column;
  }
}
.benefits-menu {
  width:690px;
  grid-template-columns:.8fr 1fr 1.45fr;
}
.retirement-menu {
  width:520px;
  grid-template-columns:1.25fr .9fr;
}
:where(html:is(.tpl-product,.tpl-overview,.pg-index,.pg-other-products)) .hero-note .mobile-label,
:where(html:is(.tpl-product,.tpl-overview,.pg-index,.pg-other-products)) .hero-tag .mobile-label {
  display:none;
}
@media(max-width:1279px) {
  :where(html:is(.tpl-product,.tpl-overview,.pg-index,.pg-other-products)) .hero-note .desktop-label,
  :where(html:is(.tpl-product,.tpl-overview,.pg-index,.pg-other-products)) .hero-tag .desktop-label {
    display:none;
  }
  :where(html:is(.tpl-product,.tpl-overview,.pg-index,.pg-other-products)) .hero-note .mobile-label,
  :where(html:is(.tpl-product,.tpl-overview,.pg-index,.pg-other-products)) .hero-tag .mobile-label {
    display:inline;
  }
}
/* Plus Jakarta Sans joins fi/ff/fl by default; keep the letters separate in headings. */
h1, h2, h3, h4, h5, h6 {
  font-variant-ligatures:no-common-ligatures;
}
.accessibility-visually-hidden {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip-path:inset(50%);
  white-space:nowrap;
  border:0;
}

/* ======================================================================
   Header and primary navigation (continued)
   ====================================================================== */
@media(max-width:980px) {
  .nav-dropdown-menu,
  .benefits-menu,
  .retirement-menu {
    position:static;
    display:none;
    width:100%;
    grid-template-columns:1fr;
    gap:14px;
    margin:8px 0 2px;
    padding:18px;
    opacity:1;
    visibility:visible;
    transform:none!important;
    border-radius:12px;
    box-shadow:none;
    background:#F5FAFE;
  }
}
@media(min-width:981px) and (max-width:1160px) {
  .nav-dropdown-menu,
  .benefits-menu,
  .retirement-menu {
    position:static;
    display:none;
    width:100%;
    grid-template-columns:1fr;
    gap:14px;
    margin:8px 0 2px;
    padding:18px;
    opacity:1;
    visibility:visible;
    transform:none!important;
    border-radius:12px;
    box-shadow:none;
    background:#F5FAFE;
  }
}

/* ======================================================================
   Accessibility support
   ====================================================================== */
.btn-primary:hover,
.btn-primary:focus-visible {
  background:#013D8F;
  filter:none;
}
main[id],
main [id],
main :focus {
  scroll-margin-top:var(--navigation-clearance, 160px)!important;
  scroll-margin-bottom:16px;
}
main[tabindex="-1"]:focus {
  outline:none;
}
@media (prefers-reduced-motion: reduce) {
  .btn-primary:hover {
    transform:none;
  }
}

/* ======================================================================
   Home, About and Contact pages
   ====================================================================== */
:root:where(.tpl-home) {
  --grey:#64748B;
  --shadow:0 8px 28px rgba(1,61,143,.08);
  --serif:Georgia, 'Times New Roman', serif;
  --sans:Arial, Helvetica, sans-serif;
}
:where(html.tpl-home) .section-title {
  font-family:var(--serif);
  font-size:clamp(2.15rem,4vw,3.2rem);
  line-height:1.02;
  color:var(--navy);
  margin:.35rem 0 1rem;
}
:where(html.tpl-home) .small-title {
  font-family:var(--serif);
  font-size:clamp(1.85rem,3vw,2.4rem);
  line-height:1.08;
  color:var(--navy);
  margin:.25rem 0 1rem;
}
:where(html.tpl-home) .hero-grid {
  display:grid;
  grid-template-columns:1.02fr 1.28fr;
  min-height:520px;
}
:where(html.tpl-home) .hero-copy {
  padding:64px 48px 50px 0;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
:where(html.tpl-home) .hero h1 {
  font-family:var(--serif);
  font-size:clamp(3.3rem,5.2vw,4.16rem);
  line-height:.98;
  color:var(--navy);
  margin:0 0 1.1rem;
}
:where(html.tpl-home) .hero p {
  font-size:1.13rem;
  max-width:600px;
  margin:0 0 1.5rem;
}
:where(html.tpl-home) .hero-eyebrow {
  margin-bottom:.8rem;
}
:where(html.tpl-home) .hero-tag {
  margin-top:1.2rem;
  font-size:.64rem;
  letter-spacing:.12em;
  font-weight:700;
  color:var(--grey);
  text-transform:uppercase;
  white-space:nowrap;
}
:where(html.pg-index) .hero-photo {
  min-height:520px;
  background:url('home-hero.webp') center/cover no-repeat;
  background-position:center 65%;
  background-image:image-set(url("home-hero-960w.webp") 1x, url("home-hero.webp") 2x);
}
:where(html.tpl-home) .cards {
  display:grid;
  gap:14px;
}
:where(html.tpl-home) .card {
  background:var(--pale);
  border:1px solid #DBE7F1;
  border-radius:10px;
  padding:24px 18px;
  min-height:245px;
  display:flex;
  flex-direction:column;
}
:where(html.tpl-home) .icon {
  width:46px;
  height:46px;
  color:var(--navy);
}
:where(html.tpl-home) .card h3 {
  font-size:1rem;
  color:var(--navy);
  margin:.8rem 0 .6rem;
}
:where(html.pg-index) .process {
  padding:68px 0 74px;
  background:#FFFFFF;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
:where(html.tpl-home) .cta-band {
  background:var(--navy);
  color:white;
  padding:26px 0;
}
:where(html.tpl-home) .cta-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2rem;
}
:where(html.tpl-home) .cta-inner h2 {
  font-family:var(--serif);
  font-size:2rem;
  max-width:690px;
  margin:0;
}
@media (min-width: 981px) {
  :where(html:is(.pg-about, .pg-contact)) .cta-inner h2 {
    max-width:900px;
    line-height:1.15;
  }
}
:where(html.tpl-home) .cta-band .btn {
  background:var(--blue);
  color:white;
}
:where(html.tpl-home) .stats {
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:white;
}
:where(html.tpl-home) .stats-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
}
:where(html.tpl-home) .stat {
  display:grid;
  grid-template-columns:52px 1fr;
  gap:.8rem;
  align-items:center;
  padding:24px 28px;
  border-right:1px solid var(--line);
}
:where(html.tpl-home) .stat:last-child {
  border-right:0;
}
:where(html.tpl-home) .stat strong {
  display:block;
  color:var(--navy);
  font-size:1.05rem;
}
:where(html.tpl-home) .stat span {
  font-size:.82rem;
  color:var(--muted);
}
:where(html.tpl-home) .insurers {
  padding:26px 0 30px;
  background:white;
}
:where(html.tpl-home) .insurers h2 {
  text-align:center;
  font-family:var(--serif);
  font-size:1.75rem;
  color:var(--navy);
  margin:0 0 18px;
}
:where(html.tpl-home) .insurer {
  flex:0 0 190px;
  height:88px;
  background:transparent;
  border-radius:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:8px 10px;
  line-height:0;
}
:where(html.tpl-home) .insurer img {
  display:block;
  width:auto;
  height:auto;
  max-width:168px;
  max-height:47px;
  object-fit:contain;
  object-position:center center;
}
:where(html.tpl-home) .insurer img[alt="Sun Life"] {
  max-width:160px;
  max-height:43px;
}
:where(html.tpl-home) .insurer img[alt="Manulife"] {
  max-width:164px;
  max-height:39px;
}
:where(html.tpl-home) .insurer img[alt="Canada Life"] {
  max-width:162px;
  max-height:43px;
}
:where(html.tpl-home) .insurer img[alt="Ontario Blue Cross"] {
  max-width:166px;
  max-height:41px;
}
:where(html.tpl-home) .insurer img[alt="Desjardins Insurance"] {
  max-width:168px;
  max-height:43px;
}
:where(html.tpl-home) .insurer img[alt="iA Financial Group"] {
  max-width:151px;
  max-height:45px;
}
:where(html.tpl-home) .insurer img[alt="Equitable"] {
  max-width:128px;
  max-height:31.2px;
}
:where(html.tpl-home) .insurer img[alt="RBC Insurance"] {
  max-width:238px;
  max-height:72px;
}
:where(html.tpl-home) .insurer img[alt="Empire Life"] {
  max-width:240px;
  max-height:74px;
}
:where(html.tpl-home) .insurer img[alt="Co-operators"] {
  max-width:155px;
  max-height:34px;
}
:where(html.tpl-home) .insurer img[alt="GreenShield"] {
  max-width:281px;
  max-height:80px;
}
:where(html.tpl-home) .insurer img[alt="BMO Insurance"] {
  max-width:238px;
  max-height:72px;
}
:where(html.tpl-home) .insurer img[alt="Cigna Healthcare"] {
  max-width:148px;
  max-height:41px;
}
:where(html.tpl-home) .insurer img[alt="Benecaid"] {
  max-width:240px;
  max-height:72px;
}
:where(html.tpl-home) .insurer img[alt="Victor"] {
  max-width:144px;
  max-height:39px;
}
:where(html.tpl-home) section {
  scroll-margin-top:92px;
}
:where(html.tpl-home) .benefits {
  padding:54px 0 66px;
}
:where(html.tpl-home) .benefits-head {
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:5rem;
  align-items:start;
}
:where(html.tpl-home) .benefits-head .coverage-title {
  font-size:clamp(2.15rem,3.4vw,2.72rem);
  letter-spacing:-.015em;
}
:where(html.tpl-home) .benefits-head .coverage-title span {
  display:block;
  white-space:nowrap;
}
:where(html.tpl-home) .benefits-head p {
  margin-top:2rem;
}
:where(html.tpl-home) .card p {
  font-size:.82rem;
  color:#536985;
  margin:0 0 1rem;
}
:where(html.tpl-home) .intent-links {
  display:flex;
  gap:2rem;
  flex-wrap:wrap;
  margin-top:.75rem;
}
:where(html.tpl-home) .card .learn {
  margin-top:auto;
  color:var(--blue);
  font-weight:700;
  font-size:.82rem;
  background:none;
  border:0;
  padding:0;
  text-align:left;
  cursor:pointer;
}
:where(html.pg-index) .card .learn {
  display:inline-block;
  width:fit-content;
  text-decoration:none;
}
:where(html.tpl-home) .card .learn:hover {
  text-decoration:underline;
}
:where(html:is(.pg-about,.pg-contact)) .approach {
  background:linear-gradient(90deg,var(--pale) 0 44%,white 44%);
}
:where(html.pg-index) .approach {
  background:var(--pale);
}
:where(html.tpl-home) .approach-grid {
  display:grid;
  grid-template-columns:1.05fr .95fr .92fr;
  min-height:360px;
}
:where(html.tpl-home) .approach-copy {
  padding:48px 54px 48px 0;
}
:where(html.pg-index) .approach-title {
  font-size:clamp(1.85rem,2.6vw,2.08rem);
}
:where(html.pg-index) .approach-title span {
  white-space:nowrap;
}
:where(html.tpl-home) .approach-points {
  padding:48px 36px;
  display:flex;
  flex-direction:column;
  gap:25px;
}
:where(html.tpl-home) .point {
  display:grid;
  grid-template-columns:46px 1fr;
  gap:14px;
}
:where(html:is(.pg-about,.pg-contact)) .point h4 {
  margin:0 0 .2rem;
  color:var(--navy);
}
:where(html.pg-index) .point h3 {
  font-size:1em;
  margin:0 0 .2rem;
  color:var(--navy);
}
:where(html.tpl-home) .point p {
  margin:0;
  color:#536985;
  font-size:.84rem;
}
:where(html.tpl-home) .office {
  min-height:360px;
}
:where(html:is(.pg-about,.pg-contact)) .office {
  background:url('image-b26d655e770ac8b1.jpg') center/cover no-repeat;
}
:where(html.pg-index) .office {
  background:url('home-our-approach.webp') center/cover no-repeat;
}
:where(html.tpl-home) .retirement {
  padding:56px 0;
}
:where(html.tpl-home) .ret-grid {
  display:grid;
  grid-template-columns:1fr .58fr 1fr;
  align-items:stretch;
}
:where(html.tpl-home) .ret-copy {
  padding-right:46px;
}
:where(html.tpl-home) .lake {
  min-height:320px;
}
:where(html:is(.pg-about,.pg-contact)) .lake {
  background:url('image-b41a7c4cc7cfa538.jpg') center/cover no-repeat;
}
:where(html.pg-index) .lake {
  background:url('home-group-retirement.webp') center/cover no-repeat;
}
:where(html.tpl-home) .ret-list {
  padding:18px 0 12px 34px;
  display:flex;
  flex-direction:column;
  gap:16px;
}
:where(html.tpl-home) .ret-item {
  display:grid;
  grid-template-columns:38px 1fr;
  gap:10px;
}
:where(html:is(.pg-about,.pg-contact)) .ret-item h4 {
  margin:0;
  color:var(--navy);
  font-size:.95rem;
}
:where(html.pg-index) .ret-item h3 {
  margin:0;
  color:var(--navy);
  font-size:.95rem;
}
:where(html.tpl-home) .ret-item p {
  margin:0;
  color:#536985;
  font-size:.78rem;
}
:where(html.tpl-home) .other {
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:var(--pale);
  padding:18px 0;
}
:where(html.tpl-home) .other-inner {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
}
:where(html.tpl-home) .other-copy {
  display:flex;
  align-items:center;
  gap:16px;
}
:where(html.tpl-home) .other-copy svg {
  width:36px;
  color:var(--navy);
}
:where(html.tpl-home) .other-copy .eyebrow {
  margin-bottom:2px;
}
:where(html.tpl-home) .other-copy p {
  margin:0;
  color:#536985;
}
:where(html.tpl-home) .field {
  display:flex;
  flex-direction:column;
  gap:6px;
}
:where(html.tpl-home) .field label {
  font-size:.78rem;
  font-weight:700;
  color:var(--navy);
}
:where(html.tpl-home) .field input,
:where(html.tpl-home) .field select,
:where(html.tpl-home) .field textarea {
  border:1px solid #DBE7F1;
  border-radius:10px;
  padding:12px 13px;
  font:inherit;
}
:where(html.tpl-home) .field textarea {
  min-height:105px;
  resize:vertical;
}
@media(max-width:980px) {
  :where(html.tpl-home) .benefits-head .coverage-title span {
    white-space:normal;
  }
}
:where(html.pg-index) .process-head {
  max-width:700px;
  margin:0 0 34px;
}
@media(max-width:980px) {
  :where(html.tpl-home) .hero {
    background:#F5FAFE;
  }
  :where(html.tpl-home) .hero-copy {
    padding:52px 0 38px;
  }
  :where(html.pg-index) .hero-copy {
    padding:48px 0 34px;
  }
  :where(html.tpl-home) .hero-photo {
    min-height:360px;
  }
  :where(html.pg-index) .hero-photo {
    background-image:image-set(url("home-hero-480w.webp") 1x, url("home-hero-800w.webp") 2x, url("home-hero-1120w.webp") 3x);
  }
  :where(html.tpl-home) .stats-grid {
    grid-template-columns:1fr 1fr;
  }
  :where(html.tpl-home) .stat:nth-child(2) {
    border-right:0;
  }
  :where(html.tpl-home) .stat:nth-child(-n+2) {
    border-bottom:1px solid var(--line);
  }
  :where(html.tpl-home) .benefits-head {
    grid-template-columns:1fr;
    gap:1rem;
  }
  :where(html.tpl-home) .benefits-head p {
    margin-top:0;
  }
}
:where(html.pg-index) .process-head p {
  margin:0;
  color:var(--muted);
}
@media(max-width:980px) {
  :where(html.tpl-home) .approach {
    background:var(--pale);
  }
  :where(html.tpl-home) .approach-grid {
    grid-template-columns:1fr 1fr;
  }
  :where(html.tpl-home) .office {
    grid-column:1/-1;
    min-height:320px;
  }
  :where(html.tpl-home) .ret-grid {
    grid-template-columns:1fr 1fr;
  }
  :where(html.tpl-home) .ret-list {
    grid-column:1/-1;
    padding:28px 0 0;
    display:grid;
    grid-template-columns:1fr 1fr;
  }
}
@media(max-width:640px) {
  :where(html.tpl-home) .hero-tag {
    white-space:normal;
    font-size:.64rem;
    line-height:1.5;
  }
  :where(html.tpl-home) .hero-photo {
    min-height:280px;
  }
}
@media(max-width:980px) {
  :where(html.pg-index) .hero-photo {
    height:360px;
    min-height:360px;
    background-size:cover;
  }
}
@media(max-width:640px) {
  :where(html.pg-index) .hero-photo {
    height:280px;
    min-height:280px;
    background-image:image-set(url("home-hero-640w.webp") 1x, url("home-hero.webp") 2x);
  }
  :where(html.tpl-home) .stats-grid {
    grid-template-columns:1fr;
  }
  :where(html.tpl-home) .stat {
    border-right:0;
    border-bottom:1px solid var(--line);
  }
  :where(html.tpl-home) .stat:last-child {
    border-bottom:0;
  }
  :where(html.tpl-home) .insurer {
    flex-basis:170px;
    height:78px;
    padding:8px 8px;
  }
  :where(html.tpl-home) .insurer img {
    max-width:152px;
    max-height:41px;
  }
  :where(html.tpl-home) .approach-grid {
    grid-template-columns:1fr;
  }
  :where(html.tpl-home) .approach-copy {
    padding-right:0;
  }
  :where(html.tpl-home) .approach-points {
    padding:0 0 42px;
  }
  :where(html.tpl-home) .ret-grid {
    grid-template-columns:1fr;
  }
  :where(html.tpl-home) .ret-copy {
    padding-right:0;
    margin-bottom:24px;
  }
  :where(html.tpl-home) .lake {
    min-height:260px;
  }
  :where(html.tpl-home) .ret-list {
    grid-template-columns:1fr;
    padding-left:0;
  }
  :where(html.tpl-home) .other-inner,
  :where(html.tpl-home) .cta-inner {
    flex-direction:column;
    align-items:flex-start;
  }
  :where(html.tpl-home) .cta-inner h2 {
    font-size:1.6rem;
  }
}
:where(html:is(.pg-about,.pg-contact)) .about-hero .hero-copy {
  padding-right:56px;
}
:where(html:is(.pg-about,.pg-contact)) .about-intro {
  padding:82px 0 78px;
  background:#FFFFFF;
}
:where(html:is(.pg-about,.pg-contact)) .about-intro-grid {
  display:grid;
  grid-template-columns:.95fr 1.05fr;
  gap:7rem;
  align-items:start;
}
:where(html:is(.pg-about,.pg-contact)) .about-lead .section-title {
  max-width:560px;
  font-size:clamp(2.45rem,4.2vw,3.36rem);
}
:where(html:is(.pg-about,.pg-contact)) .about-copy {
  padding-top:25px;
  max-width:600px;
}
:where(html:is(.pg-about,.pg-contact)) .about-copy p {
  color:#536985;
  margin:0 0 1.15rem;
  font-size:1.02rem;
  line-height:1.72;
}
:where(html:is(.pg-about,.pg-contact)) .about-copy .about-opening {
  color:var(--ink);
  font-size:1.22rem;
  line-height:1.55;
  font-weight:700;
}
:where(html:is(.pg-about,.pg-contact)) .belief-band {
  background:var(--navy);
  color:white;
  padding:58px 0;
}
:where(html:is(.pg-about,.pg-contact)) .belief-band .eyebrow {
  color:#9BDCFF;
}
:where(html:is(.pg-about,.pg-contact)) .belief-band .small-title {
  color:white;
  margin-bottom:0;
}
:where(html:is(.pg-about,.pg-contact)) .belief-grid {
  display:grid;
  grid-template-columns:.95fr 1.05fr;
  gap:7rem;
  align-items:center;
}
:where(html:is(.pg-about,.pg-contact)) .belief-copy {
  max-width:620px;
}
:where(html:is(.pg-about,.pg-contact)) .belief-copy p {
  font-size:1.05rem;
  line-height:1.7;
  color:rgba(255,255,255,.86);
  margin:0 0 1.2rem;
}
:where(html:is(.pg-about,.pg-contact)) .belief-copy .text-link {
  color:#9BDCFF;
}
:where(html:is(.pg-about,.pg-contact)) .principles {
  padding:78px 0 84px;
  background:var(--pale);
}
:where(html:is(.pg-about,.pg-contact)) .principles-head {
  max-width:740px;
  margin-bottom:34px;
}
:where(html:is(.pg-about,.pg-contact)) .principles-head p {
  color:#536985;
  font-size:1rem;
  margin:.1rem 0 0;
}
@media (min-width: 981px) {
  :where(html.pg-about) .principles-head {
    max-width:none;
  }
  :where(html.pg-about) .principles-head p {
    max-width:740px;
  }
}
:where(html:is(.pg-about,.pg-contact)) .principle-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
}
:where(html:is(.pg-about,.pg-contact)) .principle-card {
  background:#FFFFFF;
  border:1px solid #DBE7F1;
  border-radius:12px;
  padding:28px 22px;
  min-height:245px;
  box-shadow:0 6px 24px rgba(1,61,143,.035);
}
:where(html:is(.pg-about,.pg-contact)) .principle-card .icon {
  width:42px;
  height:42px;
  margin-bottom:20px;
}
:where(html:is(.pg-about,.pg-contact)) .principle-card h3 {
  color:var(--navy);
  font-size:1.04rem;
  margin:0 0 .55rem;
}
:where(html:is(.pg-about,.pg-contact)) .principle-card p {
  color:#536985;
  font-size:.88rem;
  line-height:1.58;
  margin:0;
}
:where(html:is(.pg-about,.pg-contact)) .working-method {
  padding:82px 0;
  background:#FFFFFF;
}
:where(html:is(.pg-about,.pg-contact)) .method-grid {
  display:grid;
  grid-template-columns:.88fr 1.12fr;
  gap:7rem;
  align-items:start;
}
:where(html:is(.pg-about,.pg-contact)) .method-intro {
  max-width:460px;
}
:where(html:is(.pg-about,.pg-contact)) .method-intro p {
  color:#536985;
  font-size:1rem;
  line-height:1.68;
}
:where(html:is(.pg-about,.pg-contact)) .method-steps {
  border-top:1px solid var(--line);
}
:where(html:is(.pg-about,.pg-contact)) .method-step {
  display:grid;
  grid-template-columns:72px 1fr;
  gap:18px;
  padding:27px 0;
  border-bottom:1px solid var(--line);
  align-items:start;
}
:where(html:is(.pg-about,.pg-contact)) .method-step>span {
  font-family:var(--serif);
  font-size:1.65rem;
  color:var(--blue);
  line-height:1;
}
:where(html:is(.pg-about,.pg-contact)) .method-step h3 {
  color:var(--navy);
  font-size:1rem;
  margin:0 0 .3rem;
}
:where(html:is(.pg-about,.pg-contact)) .method-step p {
  color:#536985;
  font-size:.9rem;
  line-height:1.55;
  margin:0;
}
:where(html:is(.pg-about,.pg-contact)) .experience-section {
  background:linear-gradient(90deg,#FFFFFF 0 44%,var(--pale) 44%);
}
:where(html:is(.pg-about,.pg-contact)) .experience-grid {
  display:grid;
  grid-template-columns:.95fr 1.05fr;
  min-height:440px;
}
:where(html:is(.pg-about,.pg-contact)) .about-office {
  min-height:440px;
  background-position:center;
}
:where(html:is(.pg-about,.pg-contact)) .experience-copy {
  padding:68px 0 62px 70px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
:where(html:is(.pg-about,.pg-contact)) .experience-copy p {
  color:#536985;
  font-size:1rem;
  line-height:1.7;
  max-width:590px;
}
:where(html:is(.pg-about,.pg-contact)) .experience-note {
  margin-top:22px;
  padding-top:20px;
  border-top:1px solid var(--line);
  display:grid;
  gap:4px;
  max-width:590px;
}
:where(html:is(.pg-about,.pg-contact)) .experience-note strong {
  color:var(--navy);
  font-size:1rem;
}
:where(html:is(.pg-about,.pg-contact)) .experience-note span {
  color:var(--muted);
  font-size:.83rem;
  line-height:1.5;
}
:where(html:is(.pg-about,.pg-contact)) .employer-section {
  padding:70px 0 76px;
}
:where(html:is(.pg-about,.pg-contact)) .employer-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7rem;
  align-items:center;
}
:where(html:is(.pg-about,.pg-contact)) .employer-list {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
:where(html:is(.pg-about,.pg-contact)) .employer-list div {
  background:var(--pale);
  border:1px solid #DBE7F1;
  border-radius:10px;
  padding:18px 18px;
  color:#536985;
  font-size:.9rem;
  font-weight:700;
  display:flex;
  gap:10px;
  align-items:flex-start;
}
:where(html:is(.pg-about,.pg-contact)) .employer-list span {
  color:var(--blue);
  font-size:1.05rem;
  line-height:1;
}
@media(max-width:980px) {
  :where(html:is(.pg-about,.pg-contact)) .about-intro-grid,
  :where(html:is(.pg-about,.pg-contact)) .belief-grid,
  :where(html:is(.pg-about,.pg-contact)) .method-grid,
  :where(html:is(.pg-about,.pg-contact)) .employer-grid {
    grid-template-columns:1fr;
    gap:2.2rem;
  }
  :where(html:is(.pg-about,.pg-contact)) .about-copy {
    padding-top:0;
  }
  :where(html:is(.pg-about,.pg-contact)) .principle-grid {
    grid-template-columns:1fr 1fr;
  }
  :where(html:is(.pg-about,.pg-contact)) .experience-section {
    background:var(--pale);
  }
  :where(html:is(.pg-about,.pg-contact)) .experience-grid {
    grid-template-columns:1fr;
  }
  :where(html:is(.pg-about,.pg-contact)) .about-office {
    min-height:340px;
  }
  :where(html:is(.pg-about,.pg-contact)) .experience-copy {
    padding:52px 0;
  }
}
@media(max-width:640px) {
  :where(html:is(.pg-about,.pg-contact)) .about-hero .hero-copy {
    padding-right:0;
  }
  :where(html:is(.pg-about,.pg-contact)) .about-intro {
    padding:58px 0 52px;
  }
  :where(html:is(.pg-about,.pg-contact)) .belief-band {
    padding:48px 0;
  }
  :where(html:is(.pg-about,.pg-contact)) .principles {
    padding:56px 0 60px;
  }
  :where(html:is(.pg-about,.pg-contact)) .principle-grid {
    grid-template-columns:1fr;
  }
  :where(html:is(.pg-about,.pg-contact)) .principle-card {
    min-height:0;
  }
  :where(html:is(.pg-about,.pg-contact)) .working-method {
    padding:58px 0;
  }
  :where(html:is(.pg-about,.pg-contact)) .method-step {
    grid-template-columns:54px 1fr;
  }
  :where(html:is(.pg-about,.pg-contact)) .about-office {
    min-height:280px;
  }
  :where(html:is(.pg-about,.pg-contact)) .experience-copy {
    padding:46px 0;
  }
  :where(html:is(.pg-about,.pg-contact)) .employer-section {
    padding:54px 0 60px;
  }
  :where(html:is(.pg-about,.pg-contact)) .employer-list {
    grid-template-columns:1fr;
  }
}
:where(html.pg-index) .insurers .container {
  overflow:hidden;
}
:where(html.pg-index) .marquee-insurer {
  flex:0 0 190px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
  line-height:0;
  flex-basis:205px;
  width:205px;
  height:96px;
  padding:8px 10px;
  overflow:hidden;
}
:where(html.pg-index) .marquee-insurer img {
  display:block;
  width:auto;
  height:auto;
  object-fit:contain;
  object-position:center center;
  position:relative;
  flex:0 0 auto;
  max-width:none!important;
  max-height:none!important;
  transform-origin:center center;
}
:where(html.pg-index) .process-steps {
  position:relative;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
}
:where(html.pg-index) .process-steps::before {
  content:"";
  position:absolute;
  top:26px;
  left:12.5%;
  right:12.5%;
  height:1px;
  background:var(--line);
  z-index:0;
}
:where(html.pg-index) .process-step {
  position:relative;
  z-index:1;
  text-align:center;
  padding:0 10px;
}
:where(html.pg-index) .process-number {
  width:52px;
  height:52px;
  border-radius:50%;
  display:grid;
  place-items:center;
  margin:0 auto 18px;
  border:2px solid var(--blue);
  background:#FFFFFF;
  color:var(--navy);
  font-size:.8rem;
  font-weight:800;
  letter-spacing:.08em;
  box-shadow:0 0 0 8px #FFFFFF;
}
:where(html.pg-index) .process-step h3 {
  margin:0 0 .5rem;
  color:var(--navy);
  font-size:1.02rem;
  line-height:1.3;
}
:where(html.pg-index) .process-step p {
  margin:0 auto;
  max-width:240px;
  color:#536985;
  font-size:.86rem;
  line-height:1.58;
}
@media (max-width:920px) {
  :where(html.pg-index) .process {
    padding:58px 0 62px;
  }
  :where(html.pg-index) .process-steps {
    grid-template-columns:1fr;
    gap:0;
  }
  :where(html.pg-index) .process-steps::before {
    top:0;
    bottom:0;
    left:25px;
    right:auto;
    width:1px;
    height:auto;
  }
  :where(html.pg-index) .process-step {
    display:grid;
    grid-template-columns:52px 1fr;
    gap:18px;
    text-align:left;
    padding:0 0 28px;
  }
  :where(html.pg-index) .process-step:last-child {
    padding-bottom:0;
  }
  :where(html.pg-index) .process-number {
    margin:0;
    box-shadow:0 0 0 6px #FFFFFF;
  }
  :where(html.pg-index) .process-step p {
    max-width:none;
    margin:0;
  }
}
:where(html.pg-index) .marquee-insurer img[alt="Sun Life"] {
  max-width:178px!important;
  max-height:49px!important;
  transform:scale(1.20);
  left:9.6px;
  top:10.8px;
}
:where(html.pg-index) .marquee-insurer img[alt="Manulife"] {
  max-width:178px!important;
  max-height:46px!important;
  transform:scale(1.30);
  left:4.6px;
  top:9.8px;
}
:where(html.pg-index) .marquee-insurer img[alt="Canada Life"] {
  max-width:178px!important;
  max-height:49px!important;
  transform:scale(1.20);
  left:1.2px;
  top:9px;
}
:where(html.pg-index) .marquee-insurer img[alt="Ontario Blue Cross"] {
  max-width:184px!important;
  max-height:47px!important;
  transform:scale(1.0043);
  left:34.5px;
  top:1.3px;
}
:where(html.pg-index) .marquee-insurer img[alt="Desjardins Insurance"] {
  max-width:184px!important;
  max-height:49px!important;
  transform:scale(1.30);
  left:13px;
  top:7.8px;
}
:where(html.pg-index) .marquee-insurer img[alt="iA Financial Group"] {
  max-width:170px!important;
  max-height:51px!important;
  transform:scale(1.25);
  left:10px;
  top:8.8px;
}
:where(html.pg-index) .marquee-insurer img[alt="Equitable"] {
  max-width:170px!important;
  max-height:42px!important;
  transform:scale(0.7337);
  left:0;
  top:-.6px;
}
:where(html.pg-index) .marquee-insurer img[alt="RBC Insurance"] {
  max-width:184px!important;
  max-height:56px!important;
  transform:scale(1.5525);
  left:-.7px;
  top:.7px;
}
:where(html.pg-index) .marquee-insurer img[alt="Empire Life"] {
  max-width:186px!important;
  max-height:57px!important;
  transform:scale(1.4375);
  left:0;
  top:0;
}
:where(html.pg-index) .marquee-insurer img[alt="Co-operators"] {
  max-width:180px!important;
  max-height:40px!important;
  transform:scale(.85);
  left:0;
  top:0;
}
:where(html.pg-index) .marquee-insurer img[alt="GreenShield"] {
  max-width:190px!important;
  max-height:58px!important;
  transform:scale(1.83425);
  left:-1.5px;
  top:.7px;
}
:where(html.pg-index) .marquee-insurer img[alt="BMO Insurance"] {
  max-width:184px!important;
  max-height:56px!important;
  transform:scale(1.54);
  left:0;
  top:.6px;
}
:where(html.pg-index) .marquee-insurer img[alt="Cigna Healthcare"] {
  max-width:170px!important;
  max-height:48px!important;
  transform:scale(0.78125);
  left:0;
  top:0;
}
:where(html.pg-index) .marquee-insurer img[alt="Benecaid"] {
  max-width:186px!important;
  max-height:56px!important;
  transform:scale(1.7875);
  left:0;
  top:0;
}
:where(html.pg-index) .marquee-insurer img[alt="Victor"] {
  max-width:170px!important;
  max-height:47px!important;
  transform:scale(.95);
  left:-4.8px;
  top:0;
}
@media(max-width:640px) {
  :where(html.pg-index) .marquee-insurer {
    flex-basis:180px;
    width:180px;
    height:84px;
    padding:8px 8px;
  }
  :where(html.pg-index) .marquee-insurer img[alt="Sun Life"] {
    max-width:156px!important;
    max-height:44px!important;
    transform:scale(1.008);
    left:8.1px;
    top:9.1px;
  }
  :where(html.pg-index) .marquee-insurer img[alt="Manulife"] {
    max-width:156px!important;
    max-height:42px!important;
    transform:scale(1.092);
    left:3.8px;
    top:8.2px;
  }
  :where(html.pg-index) .marquee-insurer img[alt="Canada Life"] {
    max-width:156px!important;
    max-height:44px!important;
    transform:scale(1.008);
    left:1px;
    top:7.6px;
  }
  :where(html.pg-index) .marquee-insurer img[alt="Ontario Blue Cross"] {
    max-width:162px!important;
    max-height:44px!important;
    transform:scale(0.84337);
    left:28.9px;
    top:1px;
  }
  :where(html.pg-index) .marquee-insurer img[alt="Desjardins Insurance"] {
    max-width:162px!important;
    max-height:44px!important;
    transform:scale(1.092);
    left:10.9px;
    top:6.6px;
  }
  :where(html.pg-index) .marquee-insurer img[alt="iA Financial Group"] {
    max-width:150px!important;
    max-height:46px!important;
    transform:scale(1.05);
    left:8.4px;
    top:7.4px;
  }
  :where(html.pg-index) .marquee-insurer img[alt="Equitable"] {
    max-width:150px!important;
    max-height:38px!important;
    transform:scale(0.616055);
    left:0;
    top:-.5px;
  }
  :where(html.pg-index) .marquee-insurer img[alt="RBC Insurance"] {
    max-width:160px!important;
    max-height:50px!important;
    transform:scale(1.3041);
    left:-.6px;
    top:.6px;
  }
  :where(html.pg-index) .marquee-insurer img[alt="Empire Life"] {
    max-width:162px!important;
    max-height:50px!important;
    transform:scale(1.2075);
    left:0;
    top:0;
  }
  :where(html.pg-index) .marquee-insurer img[alt="Co-operators"] {
    max-width:158px!important;
    max-height:36px!important;
    transform:scale(.714);
    left:0;
    top:0;
  }
  :where(html.pg-index) .marquee-insurer img[alt="GreenShield"] {
    max-width:166px!important;
    max-height:52px!important;
    transform:scale(1.54077);
    left:-1.2px;
    top:.6px;
  }
  :where(html.pg-index) .marquee-insurer img[alt="BMO Insurance"] {
    max-width:160px!important;
    max-height:50px!important;
    transform:scale(1.293875);
    left:0;
    top:.5px;
  }
  :where(html.pg-index) .marquee-insurer img[alt="Cigna Healthcare"] {
    max-width:150px!important;
    max-height:44px!important;
    transform:scale(0.65625);
    left:0;
    top:0;
  }
  :where(html.pg-index) .marquee-insurer img[alt="Benecaid"] {
    max-width:162px!important;
    max-height:50px!important;
    transform:scale(1.5015);
    left:0;
    top:0;
  }
  :where(html.pg-index) .marquee-insurer img[alt="Victor"] {
    max-width:150px!important;
    max-height:43px!important;
    transform:scale(.798);
    left:-4px;
    top:0;
  }
}
:where(html.pg-index) .hero-copy,
:where(html.pg-index) .hero h1,
:where(html.pg-index) .hero p {
  min-width:0;
  white-space:normal;
  overflow:visible;
  word-break:normal;
  overflow-wrap:normal;
}
@media(min-width:981px) {
  :where(html.pg-index) .hero-grid {
    grid-template-columns:minmax(0,1.08fr) minmax(0,1.22fr);
    height:auto;
    min-height:520px;
    align-items:stretch;
  }
  :where(html.pg-index) .hero-copy {
    padding:48px 44px 42px 0;
  }
  :where(html.pg-index) .hero h1 {
    font-size:clamp(3.05rem,4.25vw,3.4rem);
    max-width:540px;
  }
  :where(html.pg-index) .hero p {
    max-width:520px;
    line-height:1.55;
  }
  :where(html.pg-index) .hero-photo {
    height:auto;
    min-height:520px;
    align-self:stretch;
    background-size:cover;
  }
}
@media(max-width:980px) {
  :where(html.pg-index) .hero p {
    max-width:680px;
    line-height:1.55;
  }
}
@media(max-width:640px) {
  :where(html.pg-index) .hero-copy {
    padding:38px 0 30px;
  }
  :where(html.pg-index) .hero p {
    font-size:1.02rem;
    line-height:1.55;
    margin-bottom:1.25rem;
  }
}
@media(max-width:360px) {
  :where(html.pg-index) .hero p {
    font-size:1rem;
  }
}
:where(html.pg-index) .home-category-overview {
  margin-top:38px;
}
:where(html.pg-index) .home-category-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:58px;
  row-gap:0;
  border-top:1px solid var(--line);
}
:where(html.pg-index) .home-category-item {
  display:grid;
  grid-template-columns:58px 1fr;
  gap:18px;
  padding:30px 0 28px;
  border-bottom:1px solid var(--line);
  align-items:start;
}
:where(html.pg-index) .home-category-icon {
  width:50px;
  height:50px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#F5FAFE;
  color:var(--navy);
}
:where(html.pg-index) .home-category-icon svg {
  width:29px;
  height:29px;
}
:where(html.pg-index) .home-category-item h3 {
  margin:1px 0 8px;
  color:var(--navy);
  font-size:1.08rem;
  line-height:1.28;
}
:where(html.pg-index) .home-category-item p {
  margin:0;
  color:#536985;
  font-size:.88rem;
  line-height:1.62;
  max-width:520px;
}
:where(html.pg-index) .home-category-actions {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:58px;
  margin-top:28px;
}
:where(html.pg-index) .home-category-actions .btn {
  justify-self:start;
  margin-left:76px;
}
:where(html.pg-index) .home-category-actions .text-link {
  font-weight:700;
  text-decoration:none;
}
:where(html.pg-index) .home-category-actions .text-link:hover {
  text-decoration:underline;
}
@media(max-width:760px) {
  :where(html.pg-index) .home-category-grid {
    grid-template-columns:1fr;
    column-gap:0;
  }
  :where(html.pg-index) .home-category-item {
    padding:25px 0;
  }
}
@media(max-width:480px) {
  :where(html.pg-index) .home-category-item {
    grid-template-columns:46px 1fr;
    gap:14px;
  }
  :where(html.pg-index) .home-category-icon {
    width:42px;
    height:42px;
  }
  :where(html.pg-index) .home-category-icon svg {
    width:25px;
    height:25px;
  }
  :where(html.pg-index) .home-category-actions {
    grid-template-columns:1fr;
    gap:18px;
  }
  :where(html.pg-index) .home-category-actions .btn {
    margin-left:60px;
  }
}
:where(html.pg-index) .hero p.hero-reassurance {
  font-size:.92rem;
  line-height:1.5;
  color:var(--muted);
  max-width:600px;
  margin:-.75rem 0 1.45rem;
}
@media(max-width:640px) {
  :where(html.pg-index) .hero p.hero-reassurance {
    font-size:.9rem;
    margin:-.6rem 0 1.25rem;
  }
}
@media(min-width:641px) and (max-width:980px) {
  :where(html.pg-index) .hero-photo {
    background-size:contain;
    background-position:center;
    background-color:#F5FAFE;
  }
}
:where(html.pg-index) .insurer-context {
  max-width:760px;
  margin:12px auto 0;
  text-align:center;
  color:#536985;
  font-size:.9rem;
  line-height:1.5;
}
@media(max-width:640px) {
  :where(html.pg-index) .insurer-context {
    font-size:.86rem;
    padding:0 8px;
  }
}
:where(html.pg-index) .approach .office {
  background-size:contain;
  background-position:center;
  background-color:#F5FAFE;
  background-image:image-set(url("home-our-approach-480w.webp") 1x, url("home-our-approach-960w.webp") 2x, url("home-our-approach.webp") 3x);
}
:where(html.pg-index) .retirement .lake {
  background-size:contain;
  background-position:center;
  background-color:#F5FAFE;
  background-image:image-set(url("home-group-retirement-480w.webp") 1x, url("home-group-retirement-800w.webp") 2x, url("home-group-retirement-1120w.webp") 3x);
}
@media(min-width:641px) {
  :where(html.pg-index) .approach .office {
    aspect-ratio:4/3;
    min-height:0;
    align-self:center;
    background-size:cover;
  }
  :where(html.pg-index) .retirement .lake {
    aspect-ratio:1;
    min-height:0;
    align-self:center;
    background-size:cover;
  }
}
@media(min-width:641px) and (max-width:980px) {
  :where(html.pg-index) .approach .office {
    width:min(100%,426.6667px);
    justify-self:center;
  }
  :where(html.pg-index) .retirement .lake {
    width:min(100%,320px);
    justify-self:center;
  }
}
@media(max-width:480px) {
  :where(html.pg-index) .hero-photo {
    background-image:image-set(url("home-hero-480w.webp") 1x, url("home-hero-960w.webp") 2x, url("home-hero.webp") 3x);
  }
}
@media(max-width:360px) {
  :where(html.pg-index) .hero-photo {
    background-image:image-set(url("home-hero-480w.webp") 1x, url("home-hero-800w.webp") 2x, url("home-hero-1120w.webp") 3x);
  }
  :where(html.pg-index) .approach .office {
    background-image:image-set(url("home-our-approach-480w.webp") 1x, url("home-our-approach-800w.webp") 2x, url("home-our-approach-1120w.webp") 3x);
  }
}
@media(max-width:980px) {
  :where(html.pg-index) .retirement .lake {
    background-image:image-set(url("home-group-retirement-480w.webp") 1x, url("home-group-retirement-960w.webp") 2x, url("home-group-retirement.webp") 3x);
  }
}
@media(max-width:640px) {
  :where(html.pg-index) .retirement .lake {
    background-image:image-set(url("home-group-retirement-480w.webp") 1x, url("home-group-retirement-640w.webp") 2x, url("home-group-retirement-800w.webp") 3x);
  }
}
@media(max-width:980px) {
  :where(html.pg-index) .approach-title span {
    white-space:normal;
  }
}
@media(max-width:640px) {
  :where(html.pg-index) .insurers h2 {
    font-size:1.4rem;
    line-height:1.2;
  }
}
@media (min-width: 981px) {
  :where(html.pg-index) .approach-copy {
    display:flex;
    flex-direction:column;
    justify-content:center;
  }
  :where(html.pg-index) .approach-copy p {
    margin-top:0;
  }
}

/* ======================================================================
   About page
   ====================================================================== */
:where(html.pg-about) .hero-photo {
  min-height:520px;
  background:url('about-hero.webp') center/cover no-repeat;
}
:where(html.pg-about) .about-hero .hero-copy {
  padding:64px 0 56px;
  max-width:900px;
}
:where(html.pg-about) .about-insurers {
  padding:58px 0 64px;
  background:#fff;
  text-align:center;
}
:where(html.pg-about) .about-insurers .small-title {
  margin:8px 0 26px;
}
:where(html.pg-about) .about-insurer-grid {
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  align-items:center;
  gap:18px 24px;
  max-width:1050px;
  margin:0 auto;
}
:where(html.pg-about) .about-insurer-logo {
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:0;
  height:74px;
  padding:8px;
}
:where(html.pg-about) .about-insurer-logo img {
  display:block;
  max-width:min(100%,160px);
  max-height:51px;
  width:auto;
  height:auto;
  object-fit:contain;
}
:where(html.pg-about) .about-insurer-note {
  max-width:720px;
  margin:25px auto 0;
  color:var(--muted);
  font-size:.9rem;
  line-height:1.55;
}
@media(max-width:800px) {
  :where(html.pg-about) .about-insurer-grid {
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px 15px;
  }
}
@media(max-width:600px) {
  :where(html.pg-about) .about-insurers {
    padding:42px 0 48px;
  }
  :where(html.pg-about) .about-insurers .small-title {
    margin-bottom:18px;
  }
  :where(html.pg-about) .about-insurer-grid {
    gap:6px 8px;
  }
  :where(html.pg-about) .about-insurer-logo {
    height:62px;
    padding:5px;
  }
  :where(html.pg-about) .about-insurer-logo img {
    max-height:42px;
  }
  :where(html.pg-about) .about-insurer-note {
    margin-top:19px;
    font-size:.84rem;
  }
}
:where(html.pg-about) .about-hero {
  background:#F5FAFE;
}
:where(html.pg-about) .about-hero .hero-grid {
  grid-template-columns:minmax(0,1fr);
  min-height:0;
}
:where(html.pg-about) .about-hero h1 {
  max-width:900px;
}
:where(html.pg-about) .about-hero p {
  max-width:700px;
}
:where(html.pg-about) .experience-section .about-office {
  background-image:url('about-hero.webp');
  background-position:center 45%;
  background-size:cover;
  background-image:image-set(url("about-hero-640w.webp") 1x, url("about-hero.webp") 2x);
}
@media(max-width:980px) {
  :where(html.pg-about) .about-hero .hero-copy {
    padding:52px 0 38px;
  }
}
@media(max-width:640px) {
  :where(html.pg-about) .about-hero .hero-copy {
    padding:42px 0 34px;
  }
}
@media(min-width:641px) and (max-width:980px) {
  :where(html.pg-about) .experience-section .about-office {
    background-size:contain;
    background-position:center;
    background-color:#F5FAFE;
  }
}
@media(max-width:980px) {
  :where(html.pg-about) .experience-section .about-office {
    background-image:image-set(url("about-hero-480w.webp") 1x, url("about-hero-800w.webp") 2x, url("about-hero-1120w.webp") 3x);
  }
}
@media(max-width:640px) {
  :where(html.pg-about) .experience-section .about-office {
    background-image:image-set(url("about-hero-640w.webp") 1x, url("about-hero.webp") 2x);
  }
}
@media(max-width:480px) {
  :where(html.pg-about) .experience-section .about-office {
    background-image:image-set(url("about-hero-480w.webp") 1x, url("about-hero-960w.webp") 2x, url("about-hero.webp") 3x);
  }
}
@media(max-width:360px) {
  :where(html.pg-about) .experience-section .about-office {
    background-image:image-set(url("about-hero-480w.webp") 1x, url("about-hero-800w.webp") 2x, url("about-hero-1120w.webp") 3x);
  }
}

/* ======================================================================
   Contact page
   ====================================================================== */
:where(html.pg-contact) .hero-photo {
  min-height:520px;
  background:url('image-fc25081425aa2eda.jpg') center/cover no-repeat;
}
:where(html.pg-contact) .contact-hero {
  background:linear-gradient(135deg,#F5FAFE 0%,#F5FAFE 100%);
  border-bottom:1px solid var(--line);
}
:where(html.pg-contact) .contact-hero-inner {
  padding:86px 0 78px;
  max-width:1200px;
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);
  gap:48px;
  align-items:center;
}
:where(html.pg-contact) .contact-hero h1 {
  font-family:var(--serif);
  font-size:clamp(3.2rem,5.3vw,4.24rem);
  line-height:.98;
  color:var(--navy);
  margin:.45rem 0 1.15rem;
  max-width:850px;
}
:where(html.pg-contact) .contact-hero p {
  font-size:1.15rem;
  max-width:690px;
  margin:0 0 1.6rem;
  color:var(--ink);
}
:where(html.pg-contact) .contact-hero-actions {
  display:flex;
  gap:.9rem;
  flex-wrap:wrap;
}
:where(html.pg-contact) .contact-main {
  padding:78px 0 84px;
}
:where(html.pg-contact) .contact-grid {
  display:grid;
  grid-template-columns:.82fr 1.18fr;
  gap:72px;
  align-items:start;
}
:where(html.pg-contact) .contact-side {
  position:sticky;
  top:126px;
}
:where(html.pg-contact) .contact-side h2 {
  font-family:var(--serif);
  font-size:clamp(2rem,3vw,2.4rem);
  line-height:1.05;
  color:var(--navy);
  margin:.35rem 0 1rem;
}
:where(html.pg-contact) .contact-side>p {
  font-size:1.03rem;
  color:var(--muted);
  margin:0 0 1.6rem;
  max-width:440px;
}
:where(html.pg-contact) .contact-card {
  border:1px solid var(--line);
  border-radius:18px;
  padding:24px 24px 22px;
  background:white;
  box-shadow:var(--shadow);
  margin-bottom:16px;
}
:where(html.pg-contact) .contact-card .icon-wrap {
  width:45px;
  height:45px;
  border-radius:13px;
  background:var(--pale);
  display:grid;
  place-items:center;
  color:var(--blue);
  margin-bottom:15px;
}
:where(html.pg-contact) .contact-card svg {
  width:25px;
  height:25px;
}
:where(html.pg-contact) .contact-card h3 {
  font-family:var(--serif);
  font-size:1.35rem;
  color:var(--navy);
  margin:0 0 .45rem;
}
:where(html.pg-contact) .contact-card p {
  margin:0;
  color:var(--muted);
  font-size:.95rem;
}
:where(html.pg-contact) .contact-details {
  margin-top:.8rem;
  display:grid;
  gap:.7rem;
}
:where(html.pg-contact) .contact-detail {
  display:grid;
  grid-template-columns:74px 1fr;
  gap:10px;
  align-items:start;
  font-size:.94rem;
  line-height:1.45;
}
:where(html.pg-contact) .contact-detail strong {
  color:var(--navy);
  font-size:.8rem;
  text-transform:uppercase;
  letter-spacing:.04em;
  padding-top:.08rem;
}
:where(html.pg-contact) .contact-detail span,
:where(html.pg-contact) .contact-detail a {
  color:var(--ink);
}
:where(html.pg-contact) .contact-detail a {
  font-weight:700;
  color:var(--blue);
}
:where(html.pg-contact) .contact-detail.address span {
  font-weight:500;
}
:where(html.pg-contact) .contact-detail.fax {
  margin-top:.05rem;
  font-size:.86rem;
}
:where(html.pg-contact) .contact-detail.fax strong,
:where(html.pg-contact) .contact-detail.fax span {
  color:var(--muted);
}
:where(html.pg-contact) .contact-card .btn {
  margin-top:1rem;
}
:where(html.pg-contact) .contact-form-wrap {
  background:var(--pale);
  border:1px solid var(--line);
  border-radius:24px;
  padding:36px;
  box-shadow:0 12px 36px rgba(1,61,143,.06);
}
:where(html.pg-contact) .contact-form-wrap h2 {
  font-family:var(--serif);
  font-size:clamp(2rem,3.2vw,2.56rem);
  line-height:1.05;
  color:var(--navy);
  margin:.35rem 0 .75rem;
}
:where(html.pg-contact) .contact-form-wrap>.form-intro {
  margin:0 0 1.55rem;
  color:var(--muted);
  max-width:620px;
}
:where(html.pg-contact) .contact-form-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:17px;
}
:where(html.pg-contact) .contact-field {
  display:flex;
  flex-direction:column;
  gap:.45rem;
}
:where(html.pg-contact) .contact-field.full {
  grid-column:1/-1;
}
:where(html.pg-contact) .contact-field label {
  font-size:.82rem;
  font-weight:700;
  color:var(--navy);
}
:where(html.pg-contact) .contact-field input,
:where(html.pg-contact) .contact-field select,
:where(html.pg-contact) .contact-field textarea {
  width:100%;
  border:1px solid #DBE7F1;
  border-radius:11px;
  background:white;
  padding:.84rem .9rem;
  color:var(--ink);
  font:inherit;
  outline:none;
}
:where(html.pg-contact) .contact-field input:focus,
:where(html.pg-contact) .contact-field select:focus,
:where(html.pg-contact) .contact-field textarea:focus {
  border-color:var(--blue);
  box-shadow:0 0 0 3px rgba(7,88,168,.10);
}
:where(html.pg-contact) .contact-field textarea {
  min-height:152px;
  resize:vertical;
}
:where(html.pg-contact) .contact-form-note {
  font-size:.78rem;
  color:var(--muted);
  margin:1rem 0 0;
  line-height:1.45;
}
:where(html.pg-contact) .contact-help {
  background:var(--navy);
  color:white;
  padding:68px 0;
}
:where(html.pg-contact) .contact-help .eyebrow {
  color:#9BDCFF;
}
:where(html.pg-contact) .contact-help-head {
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:70px;
  align-items:end;
  margin-bottom:34px;
}
:where(html.pg-contact) .contact-help h2 {
  font-family:var(--serif);
  font-size:clamp(2rem,3.5vw,2.8rem);
  line-height:1.04;
  margin:.35rem 0 0;
  color:white;
}
:where(html.pg-contact) .contact-help-head p {
  margin:0;
  color:#DBE7F1;
  font-size:1.03rem;
  max-width:640px;
}
:where(html.pg-contact) .help-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
}
:where(html.pg-contact) .help-item {
  border:1px solid rgba(255,255,255,.18);
  border-radius:16px;
  padding:22px 20px;
  background:rgba(255,255,255,.04);
}
:where(html.pg-contact) .help-item strong {
  display:block;
  font-family:var(--serif);
  font-size:1.16rem;
  margin-bottom:.35rem;
}
:where(html.pg-contact) .help-item span {
  display:block;
  color:#DBE7F1;
  font-size:.9rem;
  line-height:1.45;
}
@media(max-width:900px) {
  :where(html.pg-contact) .contact-grid {
    grid-template-columns:1fr;
    gap:42px;
  }
  :where(html.pg-contact) .contact-side {
    position:static;
  }
  :where(html.pg-contact) .contact-help-head {
    grid-template-columns:1fr;
    gap:20px;
  }
  :where(html.pg-contact) .help-grid {
    grid-template-columns:1fr 1fr;
  }
}
@media(max-width:680px) {
  :where(html.pg-contact) .contact-hero-inner {
    padding:64px 0 58px;
  }
  :where(html.pg-contact) .contact-hero h1 {
    font-size:clamp(2.75rem,13vw,4rem);
  }
  :where(html.pg-contact) .contact-main {
    padding:54px 0 62px;
  }
  :where(html.pg-contact) .contact-form-wrap {
    padding:25px 20px;
  }
  :where(html.pg-contact) .contact-form-grid {
    grid-template-columns:1fr;
  }
  :where(html.pg-contact) .help-grid {
    grid-template-columns:1fr;
  }
  :where(html.pg-contact) .contact-help {
    padding:52px 0;
  }
  :where(html.pg-contact) .contact-card {
    padding:21px;
  }
}
:where(html.pg-contact) .contact-hero-copy {
  min-width:0;
}
:where(html.pg-contact) .contact-hero-image {
  height:400px;
  overflow:hidden;
  border-radius:24px;
}
:where(html.pg-contact) .contact-hero-image img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 55%;
}
@media(max-width:980px) {
  :where(html.pg-contact) .contact-hero-inner {
    grid-template-columns:1fr;
    gap:30px;
  }
  :where(html.pg-contact) .contact-hero-image {
    height:320px;
  }
}
@media(max-width:640px) {
  :where(html.pg-contact) .contact-hero-image {
    height:280px;
  }
  :where(html.pg-contact) .contact-hero-inner {
    gap:26px;
  }
}
@media(min-width:641px) and (max-width:980px) {
  :where(html.pg-contact) .contact-hero-image {
    background:#F5FAFE;
  }
  :where(html.pg-contact) .contact-hero-image img {
    object-fit:contain;
    object-position:center;
  }
}
@media(max-width:680px) {
  :where(html.pg-contact) .contact-detail a[href^="mailto:"] {
    overflow-wrap:anywhere;
  }
}

/* ======================================================================
   Colours, fonts and base elements (continued)
   ====================================================================== */
:where(html:not(.pg-request-a-quote)) a:focus-visible,
:where(html:not(.pg-request-a-quote)) button:focus-visible,
:where(html:not(.pg-request-a-quote)) input:focus-visible,
:where(html:not(.pg-request-a-quote)) select:focus-visible,
:where(html:not(.pg-request-a-quote)) textarea:focus-visible,
:where(html:not(.pg-request-a-quote)) summary:focus-visible {
  outline:3px solid #9BDCFF;
  outline-offset:3px;
}

/* ======================================================================
   Overview pages (Group Benefits, Group Retirement, Flexible Plan Options)
   ====================================================================== */
:where(html.tpl-overview) body {
  margin:0;
  color:var(--ink);
  font-family:var(--sans);
  background:#FFFFFF;
  line-height:1.5;
}
:where(html.tpl-overview) .hero-grid {
  display:grid;
  grid-template-columns:1.02fr 1.28fr;
  min-height:540px;
}
:where(html.tpl-overview) .hero-copy {
  padding:68px 54px 58px 0;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
:where(html.pg-group-retirement) #plan-options {
  scroll-margin-top:156px;
}
:where(html.tpl-overview) .hero h1 {
  font-family:var(--serif);
  font-size:clamp(3.3rem,5.1vw,4.08rem);
  line-height:.98;
  color:var(--navy);
  margin:0 0 1.1rem;
}
:where(html.tpl-overview) .hero p {
  font-size:1.14rem;
  max-width:620px;
  margin:0 0 1.55rem;
  color:#536985;
}
:where(html:is(.pg-flexible-plan-options,.pg-group-benefits)) .hero-note {
  margin-top:1.25rem;
  font-size:.68rem;
  font-weight:700;
  color:var(--grey);
  text-transform:uppercase;
}
:where(html.tpl-overview) .intro {
  padding:88px 0 72px;
}
:where(html:is(.pg-flexible-plan-options,.pg-group-benefits)) .hero-photo {
  min-height:540px;
  position:relative;
}
:where(html.pg-flexible-plan-options) .hero-photo {
  background:url('flexible-plan-options-hero.webp') center/cover no-repeat;
}
:where(html.pg-group-benefits) .hero-photo {
  background:url('group-benefits-hero.webp') center/cover no-repeat;
}
:where(html.pg-group-retirement) .hero-photo {
  min-height:540px;
  background:url('group-retirement-hero.webp') center/cover no-repeat;
  position:relative;
}
:where(html.pg-flexible-plan-options) .hero-photo {
  background-image:image-set(url("flexible-plan-options-hero-960w.webp") 1x, url("flexible-plan-options-hero.webp") 2x);
}
:where(html.pg-group-benefits) .hero-photo {
  background-image:image-set(url("group-benefits-hero-960w.webp") 1x, url("group-benefits-hero.webp") 2x);
}
:where(html.pg-group-retirement) .hero-photo {
  background-image:image-set(url("group-retirement-hero-960w.webp") 1x, url("group-retirement-hero.webp") 2x);
}
:where(html.tpl-overview) .hero-photo:after {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(1,61,143,.06),transparent 35%);
}
:where(html.tpl-overview) .trust {
  padding:25px 0;
  background:#FFFFFF;
  border-bottom:1px solid var(--line);
}
:where(html.tpl-overview) .trust-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0;
}
:where(html.tpl-overview) .trust-item {
  padding:8px 26px;
  display:flex;
  gap:14px;
  align-items:center;
  border-right:1px solid var(--line);
}
:where(html.tpl-overview) .trust-item strong {
  display:block;
  color:var(--navy);
  font-size:.95rem;
}
:where(html.tpl-overview) .trust-item span {
  display:block;
  color:var(--muted);
  font-size:.84rem;
  margin-top:2px;
}
:where(html.tpl-overview) .intro-grid {
  display:grid;
  grid-template-columns:.92fr 1.08fr;
  gap:80px;
  align-items:start;
}
:where(html.tpl-overview) .intro-copy p {
  font-size:1.08rem;
  color:#536985;
  margin:0 0 1rem;
}
:where(html.tpl-overview) .section-head p {
  max-width:520px;
  color:var(--muted);
  margin:0;
}
:where(html.tpl-overview) .trust-icon {
  width:42px;
  height:42px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:var(--pale);
  color:var(--blue);
  font-weight:900;
}
:where(html.tpl-overview) .intro-panel {
  background:var(--pale);
  border:1px solid var(--line);
  border-radius:22px;
  padding:30px;
}
:where(html.tpl-overview) .intro-panel h3 {
  font-family:var(--serif);
  font-size:1.75rem;
  color:var(--navy);
  margin:0 0 16px;
}
:where(html.tpl-overview) .checklist {
  display:grid;
  gap:13px;
}
:where(html.tpl-overview) .check {
  display:flex;
  gap:12px;
  align-items:flex-start;
}
:where(html.tpl-overview) .tick {
  width:24px;
  height:24px;
  flex:0 0 24px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#FFFFFF;
  color:var(--blue);
  font-weight:900;
  border:1px solid #DBE7F1;
}
:where(html.tpl-overview) .check b {
  color:var(--navy);
}
:where(html.tpl-overview) .coverages {
  padding:82px 0;
  background:var(--pale2);
}
:where(html.tpl-overview) .cards {
  display:grid;
  gap:18px;
}
:where(html:is(.pg-flexible-plan-options,.pg-group-retirement)) .cards {
  grid-template-columns:repeat(4,1fr);
}
:where(html.pg-group-benefits) .cards {
  grid-template-columns:repeat(8,1fr);
}
:where(html.tpl-overview) .card {
  background:#FFFFFF;
  border:1px solid var(--line);
  border-radius:18px;
  padding:26px 24px;
  min-height:210px;
  box-shadow:0 4px 18px rgba(1,61,143,.035);
  transition:.2s;
}
:where(html.pg-group-benefits) .card {
  grid-column:span 2;
}
:where(html.tpl-overview) .card:hover {
  transform:translateY(-3px);
  box-shadow:var(--shadow);
}
:where(html.tpl-overview) .icon {
  width:42px;
  height:42px;
  color:var(--blue);
  margin-bottom:22px;
}
:where(html.tpl-overview) .card h3 {
  margin:0 0 8px;
  color:var(--navy);
  font-size:1.05rem;
}
:where(html.tpl-overview) .card p {
  margin:0 0 16px;
  color:var(--muted);
  font-size:.92rem;
}
:where(html.tpl-overview) .card a {
  font-size:.88rem;
  color:var(--blue);
  font-weight:700;
}
:where(html.tpl-overview) .card.featured p {
  opacity:.82;
  max-width:510px;
}
:where(html.tpl-overview) .card.featured h3,
:where(html.tpl-overview) .card.featured p,
:where(html.tpl-overview) .card.featured a {
  color:#FFFFFF;
}
:where(html.tpl-overview) .num {
  width:36px;
  height:36px;
  border-radius:50%;
  background:var(--pale);
  display:grid;
  place-items:center;
  color:var(--blue);
  font-weight:800;
}
:where(html.tpl-overview) .market {
  padding:88px 0;
}
:where(html.tpl-overview) .market-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:70px;
  align-items:center;
}
:where(html.tpl-overview) .faq {
  padding:82px 0;
  background:var(--pale2);
}
:where(html.tpl-overview) .faq-grid {
  display:grid;
  grid-template-columns:.78fr 1.22fr;
  gap:70px;
  align-items:start;
}
:where(html.tpl-overview) details {
  background:#FFFFFF;
  border:1px solid var(--line);
  border-radius:14px;
  margin-bottom:12px;
  padding:0 20px;
}
:where(html.tpl-overview) summary {
  cursor:pointer;
  list-style:none;
  padding:20px 30px 20px 0;
  color:var(--navy);
  font-weight:700;
  position:relative;
}
:where(html.pg-group-benefits) .cards .card:nth-child(5) {
  grid-column:2 / span 2;
}
:where(html.tpl-overview) .market-panel {
  background:linear-gradient(145deg,#013D8F,#0758A8);
  border-radius:24px;
  padding:38px;
  color:white;
  box-shadow:var(--shadow);
}
:where(html.tpl-overview) .market-panel .eyebrow {
  color:#9BDCFF;
}
:where(html.tpl-overview) .market-panel h3 {
  font-family:var(--serif);
  font-size:2.1rem;
  line-height:1.08;
  margin:.4rem 0 1rem;
}
:where(html.tpl-overview) .market-panel p {
  opacity:.86;
}
:where(html.tpl-overview) .market-list {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-top:22px;
}
:where(html.tpl-overview) .market-chip {
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.18);
  border-radius:12px;
  padding:12px 14px;
  font-size:.88rem;
  font-weight:700;
}
:where(html.tpl-overview) .market-copy p {
  font-size:1.05rem;
  color:#536985;
}
:where(html.tpl-overview) .mini-points {
  display:grid;
  gap:17px;
  margin-top:26px;
}
:where(html.tpl-overview) .mini-point {
  display:grid;
  grid-template-columns:36px 1fr;
  gap:14px;
}
:where(html.tpl-overview) .mini-point strong {
  color:var(--navy);
}
:where(html.tpl-overview) .mini-point p {
  margin:3px 0 0;
  font-size:.91rem;
}
:where(html.tpl-overview) .process {
  padding:82px 0;
  background:#FFFFFF;
  border-top:1px solid var(--line);
}
:where(html.tpl-overview) .steps {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
  margin-top:34px;
}
:where(html.tpl-overview) .step {
  padding:26px 24px;
  border-top:3px solid var(--blue);
  background:var(--pale);
  border-radius:0 0 16px 16px;
}
:where(html.tpl-overview) .step small {
  font-weight:800;
  color:var(--blue);
  letter-spacing:.12em;
}
:where(html.tpl-overview) .step h3 {
  color:var(--navy);
  margin:10px 0 8px;
}
:where(html.tpl-overview) .step p {
  margin:0;
  color:var(--muted);
  font-size:.9rem;
}
:where(html.tpl-overview) summary:after {
  content:'+';
  position:absolute;
  right:2px;
  top:15px;
  font-size:1.5rem;
  color:var(--blue);
}
:where(html.tpl-overview) details p {
  margin:0 0 20px;
  color:var(--muted);
}
:where(html.tpl-overview) .cta-band {
  padding:64px 0;
  background:var(--navy);
  color:#FFFFFF;
}
:where(html.tpl-overview) .cta-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:36px;
}
:where(html.tpl-overview) .cta-inner h2 {
  font-family:var(--serif);
  font-size:clamp(2rem,3.5vw,2.8rem);
  line-height:1.05;
  max-width:760px;
  margin:0;
}
:where(html.tpl-overview) .cta-inner p {
  margin:10px 0 0;
  opacity:.82;
}
:where(html.tpl-overview) .cta-inner .btn {
  flex-shrink:0;
  white-space:nowrap;
}
:where(html.tpl-overview) .cta-band .btn {
  background:#FFFFFF;
  color:var(--navy);
}
@media(min-width:761px) {
  :where(html:is(.pg-flexible-plan-options,.pg-group-benefits)) .process .process-service-copy {
    flex:0 0 460px;
    max-width:460px;
  }
  :where(html:is(.pg-flexible-plan-options,.pg-group-benefits)) .process .process-service-copy span {
    display:block;
    white-space:nowrap;
  }
}
@media(max-width:760px) {
  :where(html:is(.pg-flexible-plan-options,.pg-group-benefits)) .process .section-head {
    display:block;
  }
  :where(html:is(.pg-flexible-plan-options,.pg-group-benefits)) .process .section-head p {
    margin-top:10px;
  }
  :where(html:is(.pg-flexible-plan-options,.pg-group-benefits)) .process .process-service-copy span {
    display:block;
  }
}
@media(max-width:980px) {
  :where(html.tpl-overview) .hero {
    background:var(--pale);
  }
  :where(html.tpl-overview) .hero-copy {
    padding:58px 0 42px;
  }
  :where(html.tpl-overview) .trust-grid {
    grid-template-columns:1fr;
  }
  :where(html.tpl-overview) .cards {
    grid-template-columns:repeat(2,1fr);
  }
  :where(html.tpl-overview) .hero-photo {
    height:360px;
    min-height:360px;
    background-position:center center;
    background-size:cover;
  }
  :where(html.pg-flexible-plan-options) .hero-photo {
    background-image:image-set(url("flexible-plan-options-hero-480w.webp") 1x, url("flexible-plan-options-hero-800w.webp") 2x, url("flexible-plan-options-hero-1120w.webp") 3x);
  }
  :where(html.pg-group-benefits) .hero-photo {
    background-image:image-set(url("group-benefits-hero-480w.webp") 1x, url("group-benefits-hero-800w.webp") 2x, url("group-benefits-hero-1120w.webp") 3x);
  }
  :where(html.pg-group-retirement) .hero-photo {
    background-image:image-set(url("group-retirement-hero-480w.webp") 1x, url("group-retirement-hero-800w.webp") 2x, url("group-retirement-hero-1120w.webp") 3x);
  }
  :where(html.tpl-overview) .trust-item {
    border-right:0;
    border-bottom:1px solid var(--line);
    padding:16px 0;
  }
  :where(html.tpl-overview) .trust-item:last-child {
    border-bottom:0;
  }
  :where(html.tpl-overview) .intro-grid,
  :where(html.tpl-overview) .market-grid,
  :where(html.tpl-overview) .faq-grid {
    grid-template-columns:1fr;
    gap:38px;
  }
  :where(html.pg-group-benefits) .card,
  :where(html.pg-group-benefits) .cards .card:nth-child(5),
  :where(html.pg-group-benefits) .card.featured {
    grid-column:auto;
  }
  :where(html.tpl-overview) .steps {
    grid-template-columns:repeat(2,1fr);
  }
}
@media(max-width:640px) {
  :where(html.tpl-overview) .hero-photo {
    height:280px;
    min-height:280px;
  }
  :where(html.pg-flexible-plan-options) .hero-photo {
    background-image:image-set(url("flexible-plan-options-hero-640w.webp") 1x, url("flexible-plan-options-hero.webp") 2x);
  }
  :where(html.pg-group-benefits) .hero-photo {
    background-image:image-set(url("group-benefits-hero-640w.webp") 1x, url("group-benefits-hero.webp") 2x);
  }
  :where(html.pg-group-retirement) .hero-photo {
    background-image:image-set(url("group-retirement-hero-640w.webp") 1x, url("group-retirement-hero.webp") 2x);
  }
  :where(html.tpl-overview) .section-head p {
    margin-top:10px;
  }
  :where(html.tpl-overview) .cards {
    grid-template-columns:1fr;
  }
  :where(html:is(.pg-flexible-plan-options,.pg-group-retirement)) .card.featured {
    grid-column:span 1;
  }
  :where(html.pg-group-benefits) .card,
  :where(html.pg-group-benefits) .cards .card:nth-child(5),
  :where(html.pg-group-benefits) .card.featured {
    grid-column:auto;
  }
  :where(html.tpl-overview) .steps {
    grid-template-columns:1fr;
  }
  :where(html.tpl-overview) .market-list {
    grid-template-columns:1fr;
  }
  :where(html.tpl-overview) .cta-inner {
    display:block;
  }
  :where(html.tpl-overview) .cta-inner .btn {
    margin-top:24px;
  }
}
:where(html:is(.pg-flexible-plan-options,.pg-group-benefits)) .process-guide-link {
  margin:22px 0 0;
}
:where(html:is(.pg-flexible-plan-options,.pg-group-benefits)) .market-copy .text-link {
  display:inline-block;
}
:where(html.pg-group-retirement) .retirement-guide-link {
  margin:26px 0 0;
}
:where(html.pg-group-retirement) .retirement-guide-link .text-link {
  display:inline-block;
}
@media(min-width:981px) {
  :where(html.tpl-overview) .hero-grid {
    grid-template-columns:minmax(0,1.08fr) minmax(0,1.22fr);
    min-height:520px;
    align-items:stretch;
  }
  :where(html.tpl-overview) .hero-copy {
    padding:48px 44px 42px 0;
  }
  :where(html.tpl-overview) .hero h1 {
    font-size:clamp(3.05rem,4.25vw,3.4rem);
    max-width:540px;
  }
  :where(html.tpl-overview) .hero-photo {
    height:auto;
    min-height:520px;
    align-self:stretch;
    background-position:center center;
    background-size:cover;
  }
}
:where(html.pg-flexible-plan-options) .hero-photo {
  background-position:center 75%;
}
:where(html.pg-group-benefits) .hero-photo {
  background-position:60% 55%;
}
:where(html.pg-group-retirement) .hero-photo {
  background-position:center 65%;
}
:where(html:is(.pg-flexible-plan-options,.pg-group-benefits)) .overview-start,
:where(html:is(.pg-flexible-plan-options,.pg-group-benefits)) .overview-cost {
  padding:56px 0;
  border-top:1px solid var(--line);
  background:#fff;
}
:where(html:is(.pg-flexible-plan-options,.pg-group-benefits)) .overview-start .overview-heading,
:where(html:is(.pg-flexible-plan-options,.pg-group-benefits)) .overview-cost .overview-heading {
  max-width:820px;
  margin-bottom:27px;
}
:where(html:is(.pg-flexible-plan-options,.pg-group-benefits)) .overview-start h2,
:where(html:is(.pg-flexible-plan-options,.pg-group-benefits)) .overview-cost h2 {
  font-family:var(--serif);
  font-size:clamp(1.8rem,3vw,2.4rem);
  line-height:1.18;
  color:var(--navy);
  margin:.3rem 0 .65rem;
}
:where(html:is(.pg-flexible-plan-options,.pg-group-benefits)) .overview-cost .overview-heading {
  max-width:none;
}
:where(html:is(.pg-flexible-plan-options,.pg-group-benefits)) .overview-cost h2 {
  font-size:clamp(1.65rem,2.8vw,2.24rem);
}
@media(min-width:701px) {
  :where(html:is(.pg-flexible-plan-options,.pg-group-benefits)) .overview-cost h2 {
    white-space:nowrap;
  }
}
:where(html:is(.pg-flexible-plan-options,.pg-group-benefits)) .overview-start p,
:where(html:is(.pg-flexible-plan-options,.pg-group-benefits)) .overview-cost p {
  color:#536985;
  line-height:1.6;
  margin:0;
}
:where(html:is(.pg-flexible-plan-options,.pg-group-benefits)) .overview-start ol {
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:42px;
  row-gap:0;
}
:where(html:is(.pg-flexible-plan-options,.pg-group-benefits)) .overview-start li {
  padding:18px 0;
  border-top:1px solid var(--line);
}
:where(html:is(.pg-flexible-plan-options,.pg-group-benefits)) .overview-start li strong {
  display:block;
  color:var(--navy);
  font-size:1.02rem;
  margin-bottom:5px;
}
:where(html:is(.pg-flexible-plan-options,.pg-group-benefits)) .overview-start li span {
  display:block;
  color:#536985;
  font-size:.94rem;
  line-height:1.52;
}
:where(html:is(.pg-flexible-plan-options,.pg-group-benefits)) .overview-cost .overview-cost-columns {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:42px;
}
:where(html:is(.pg-flexible-plan-options,.pg-group-benefits)) .overview-cost .overview-cost-columns h3 {
  color:var(--navy);
  font-size:1.05rem;
  margin:0 0 8px;
}
@media(max-width:700px) {
  :where(html:is(.pg-flexible-plan-options,.pg-group-benefits)) .overview-start,
  :where(html:is(.pg-flexible-plan-options,.pg-group-benefits)) .overview-cost {
    padding:30px 0;
  }
  :where(html:is(.pg-flexible-plan-options,.pg-group-benefits)) .overview-start .overview-heading,
  :where(html:is(.pg-flexible-plan-options,.pg-group-benefits)) .overview-cost .overview-heading {
    margin-bottom:13px;
  }
  :where(html:is(.pg-flexible-plan-options,.pg-group-benefits)) .overview-start h2,
  :where(html:is(.pg-flexible-plan-options,.pg-group-benefits)) .overview-cost h2 {
    font-size:clamp(1.75rem,7vw,2.25rem);
    line-height:1.18;
    margin-bottom:9px;
  }
  :where(html:is(.pg-flexible-plan-options,.pg-group-benefits)) .overview-start ol,
  :where(html:is(.pg-flexible-plan-options,.pg-group-benefits)) .overview-cost .overview-cost-columns {
    display:block;
  }
  :where(html:is(.pg-flexible-plan-options,.pg-group-benefits)) .overview-start li {
    padding:11px 0;
  }
  :where(html:is(.pg-flexible-plan-options,.pg-group-benefits)) .overview-start li:last-child {
    padding-bottom:0;
  }
  :where(html:is(.pg-flexible-plan-options,.pg-group-benefits)) .overview-cost .overview-cost-columns>div+div {
    margin-top:16px;
  }
}
@media(min-width:641px) and (max-width:980px) {
  :where(html.tpl-overview) .hero-photo {
    background-size:contain;
    background-position:center;
    background-color:#F5FAFE;
  }
}
@media(max-width:360px) {
  :where(html.pg-flexible-plan-options) .hero-photo {
    background-image:image-set(url("flexible-plan-options-hero-480w.webp") 1x, url("flexible-plan-options-hero-800w.webp") 2x, url("flexible-plan-options-hero-1120w.webp") 3x);
  }
  :where(html.pg-group-benefits) .hero-photo {
    background-image:image-set(url("group-benefits-hero-480w.webp") 1x, url("group-benefits-hero-800w.webp") 2x, url("group-benefits-hero-1120w.webp") 3x);
  }
  :where(html.pg-group-retirement) .hero-photo {
    background-image:image-set(url("group-retirement-hero-480w.webp") 1x, url("group-retirement-hero-800w.webp") 2x, url("group-retirement-hero-1120w.webp") 3x);
  }
}
@media(max-width:640px) {
  :where(html.pg-group-benefits) .faq details p > span {
    flex-wrap:wrap!important;
    white-space:normal!important;
  }
}

/* ======================================================================
   Shared page sections: hero, stats, cards, FAQs, call-to-action (continued)
   ====================================================================== */
@media(max-width:980px) {
  :where(html:is(.tpl-home,.tpl-overview)) .hero-grid {
    grid-template-columns:1fr;
  }
}
@media(max-width:640px) {
  :where(html:is(.tpl-home,.tpl-overview)) .hero h1 {
    font-size:3.1rem;
  }
}

/* ======================================================================
   Home, About and Contact pages (continued)
   ====================================================================== */
@media(max-width:980px) {
  :where(html.pg-index) .hero-grid {
    grid-template-columns:1fr;
    height:auto;
    min-height:0;
  }
  :where(html.pg-index) .hero h1 {
    font-size:clamp(2.75rem,7.5vw,3.8rem);
    max-width:none;
  }
}
@media(max-width:640px) {
  :where(html.pg-index) .hero h1 {
    font-size:clamp(2.35rem,12vw,3.1rem);
  }
}
@media(max-width:360px) {
  :where(html.pg-index) .hero h1 {
    font-size:2.32rem;
  }
}

/* ======================================================================
   Overview pages (Group Benefits, Group Retirement, Flexible Plan Options) (continued)
   ====================================================================== */
@media(max-width:980px) {
  :where(html.tpl-overview) .hero-grid {
    grid-template-columns:1fr;
    min-height:0;
  }
}

/* ======================================================================
   Product pages
   ====================================================================== */
:where(html.tpl-product) .hero {
  background:linear-gradient(90deg,#F5FAFE 0%,#F5FAFE 57%,#F5FAFE 57%);
  overflow:hidden;
}
:where(html.tpl-product) .hero-grid {
  display:grid;
  grid-template-columns:1.08fr .92fr;
  min-height:520px;
  align-items:stretch;
}
:where(html.tpl-product) .hero-copy {
  padding:66px 56px 58px 0;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
:where(html.tpl-product) .hero h1 {
  font-family:var(--serif);
  font-size:clamp(3.15rem,5vw,4rem);
  line-height:.98;
  color:var(--navy);
  margin:0 0 1.1rem;
}
:where(html.tpl-product) .hero p {
  font-size:1.14rem;
  max-width:650px;
  margin:0 0 1.55rem;
  color:#536985;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-health,.pg-request-a-quote)) .disability-card {
  width:100%;
  background:#FFFFFF;
  border:1px solid #DBE7F1;
  border-radius:24px;
  padding:34px;
  box-shadow:var(--shadow);
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-health,.pg-request-a-quote)) .disability-card .badge {
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  background:#F5FAFE;
  color:var(--navy);
  border-radius:999px;
  padding:.55rem .8rem;
  font-size:.76rem;
  font-weight:700;
  margin-bottom:22px;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-health,.pg-request-a-quote)) .disability-card h2 {
  font-family:var(--serif);
  font-size:2rem;
  line-height:1.05;
  margin:0 0 18px;
  color:var(--navy);
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-health,.pg-request-a-quote)) .disability-list {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-health,.pg-request-a-quote)) .disability-item {
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:12px;
  border-radius:12px;
  background:var(--pale);
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-health,.pg-request-a-quote)) .disability-item svg {
  width:22px;
  height:22px;
  color:var(--blue);
  flex:0 0 auto;
  margin-top:1px;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-health,.pg-request-a-quote)) .disability-item span {
  font-size:.87rem;
  font-weight:700;
  color:#536985;
}
:where(html.tpl-product) .intro {
  padding:86px 0;
}
:where(html.pg-dental) .dental-card {
  width:100%;
  background:#FFFFFF;
  border:1px solid #DBE7F1;
  border-radius:24px;
  padding:34px;
  box-shadow:var(--shadow);
}
:where(html.pg-dental) .dental-card .badge {
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  background:#F5FAFE;
  color:var(--navy);
  border-radius:999px;
  padding:.55rem .8rem;
  font-size:.76rem;
  font-weight:700;
  margin-bottom:22px;
}
:where(html.pg-dental) .dental-card h2 {
  font-family:var(--serif);
  font-size:2rem;
  line-height:1.05;
  margin:0 0 18px;
  color:var(--navy);
}
:where(html.pg-dental) .dental-list {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
:where(html.pg-dental) .dental-item {
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:12px;
  border-radius:12px;
  background:var(--pale);
}
:where(html.pg-dental) .dental-item svg {
  width:22px;
  height:22px;
  color:var(--blue);
  flex:0 0 auto;
  margin-top:1px;
}
:where(html.pg-dental) .dental-item span {
  font-size:.87rem;
  font-weight:700;
  color:#536985;
}
:where(html.tpl-product) .trust {
  border-bottom:1px solid var(--line);
  background:#FFFFFF;
}
:where(html.tpl-product) .trust-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
}
:where(html.tpl-product) .trust-item {
  padding:24px 22px;
  border-right:1px solid var(--line);
}
:where(html.pg-health) .health-card {
  width:100%;
  background:#FFFFFF;
  border:1px solid #DBE7F1;
  border-radius:24px;
  padding:34px;
  box-shadow:var(--shadow);
}
:where(html.pg-health) .health-card .badge {
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  background:#F5FAFE;
  color:var(--navy);
  border-radius:999px;
  padding:.55rem .8rem;
  font-size:.76rem;
  font-weight:700;
  margin-bottom:22px;
}
:where(html.pg-health) .health-card h2 {
  font-family:var(--serif);
  font-size:2rem;
  line-height:1.05;
  margin:0 0 18px;
  color:var(--navy);
}
:where(html.pg-health) .health-list {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
:where(html.pg-health) .health-item {
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:12px;
  border-radius:12px;
  background:var(--pale);
}
:where(html.pg-health) .health-item svg {
  width:22px;
  height:22px;
  color:var(--blue);
  flex:0 0 auto;
  margin-top:1px;
}
:where(html.pg-health) .health-item span {
  font-size:.87rem;
  font-weight:700;
  color:#536985;
}
:where(html.tpl-product) .trust-item strong {
  display:block;
  color:var(--navy);
  font-size:.93rem;
  margin-bottom:4px;
}
:where(html.tpl-product) .trust-item span {
  display:block;
  color:var(--muted);
  font-size:.82rem;
}
:where(html.tpl-product) .intro-copy p {
  font-size:1.04rem;
  color:#536985;
  margin:0 0 1rem;
}
:where(html.tpl-product) .side-note h3 {
  font-family:var(--serif);
  font-size:1.65rem;
  color:var(--navy);
  margin:0 0 14px;
}
:where(html.tpl-product) .side-note p {
  color:var(--muted);
  margin:0 0 18px;
}
:where(html.tpl-product) .side-note ul {
  margin:0;
  padding:0;
  list-style:none;
}
:where(html.tpl-product) .side-note li {
  padding:11px 0 11px 27px;
  position:relative;
  border-top:1px solid #DBE7F1;
  color:#536985;
  font-size:.93rem;
}
:where(html.tpl-product) .coverage {
  padding:84px 0;
  background:var(--pale2);
}
:where(html.tpl-product) .section-head p {
  max-width:550px;
  color:var(--muted);
  margin:0;
}
:where(html.tpl-product) .cards {
  display:grid;
  gap:18px;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-health,.pg-request-a-quote)) .cards {
  grid-template-columns:repeat(3,1fr);
}
:where(html.pg-health) .cards {
  grid-template-columns:repeat(2,1fr);
}
:where(html.tpl-product) .card {
  background:#FFFFFF;
  border:1px solid var(--line);
  border-radius:18px;
  padding:27px 24px;
  min-height:220px;
  box-shadow:0 4px 18px rgba(1,61,143,.035);
}
:where(html.tpl-product) .card h3 {
  margin:0 0 9px;
  color:var(--navy);
  font-size:1.03rem;
}
:where(html.tpl-product) .card p {
  margin:0;
  color:var(--muted);
  font-size:.92rem;
}
:where(html.tpl-product) .card .icon {
  width:42px;
  height:42px;
  color:var(--blue);
  margin-bottom:20px;
}
:where(html.tpl-product) .card.featured h3,
:where(html.tpl-product) .card.featured p {
  color:#FFFFFF;
}
:where(html.tpl-product) .card.featured p {
  opacity:.84;
  max-width:560px;
}
:where(html.tpl-product) .design {
  padding:88px 0;
}
:where(html.tpl-product) .design-grid {
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:70px;
  align-items:center;
}
:where(html.tpl-product) .design-points {
  display:grid;
  gap:0;
  border-top:1px solid var(--line);
}
:where(html.tpl-product) .design-point {
  display:grid;
  grid-template-columns:48px 1fr;
  gap:16px;
  padding:19px 0;
  border-bottom:1px solid var(--line);
}
:where(html.tpl-product) .design-point strong {
  display:block;
  color:var(--navy);
  margin-bottom:5px;
}
:where(html.tpl-product) .design-point p {
  margin:0;
  color:var(--muted);
  font-size:.92rem;
}
:where(html.tpl-product) .market {
  padding:78px 0;
  background:linear-gradient(135deg,#013D8F,#0758A8);
  color:#FFFFFF;
}
:where(html.tpl-product) .market-grid {
  display:grid;
  grid-template-columns:1.12fr .88fr;
  gap:70px;
  align-items:center;
}
:where(html.tpl-product) .market .eyebrow {
  color:#9BDCFF;
}
:where(html.tpl-product) .market h2 {
  color:white;
}
:where(html.tpl-product) .market p {
  color:#CBDCF1;
  font-size:1.02rem;
  max-width:670px;
}
:where(html.tpl-product) .market-box {
  background:rgba(255,255,255,.09);
  border:1px solid rgba(255,255,255,.18);
  border-radius:20px;
  padding:28px;
}
:where(html.tpl-product) .market-box strong {
  display:block;
  font-size:1.12rem;
  margin-bottom:14px;
}
:where(html.tpl-product) .market-box ul {
  margin:0;
  padding:0;
  list-style:none;
}
:where(html.tpl-product) .market-box li {
  padding:10px 0 10px 24px;
  position:relative;
  border-top:1px solid rgba(255,255,255,.13);
  color:#F5FAFE;
  font-size:.9rem;
}
:where(html.tpl-product) .market-box li:before {
  content:'•';
  position:absolute;
  left:5px;
  color:#9BDCFF;
  font-size:1.2rem;
  line-height:1;
}
:where(html.tpl-product) .cost {
  padding:88px 0;
}
:where(html.tpl-product) .cost-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
}
:where(html.tpl-product) .cost-box {
  border:1px solid var(--line);
  border-radius:20px;
  padding:30px;
  background:#FFFFFF;
}
:where(html.tpl-product) .cost-box h3 {
  font-family:var(--serif);
  font-size:1.7rem;
  color:var(--navy);
  margin:0 0 12px;
}
:where(html.tpl-product) .cost-box p {
  margin:0 0 18px;
  color:var(--muted);
}
:where(html.tpl-product) .pill-row {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
:where(html.tpl-product) .pill {
  background:var(--pale);
  border:1px solid #DBE7F1;
  border-radius:999px;
  padding:.52rem .72rem;
  font-size:.78rem;
  font-weight:700;
  color:#536985;
}
:where(html.tpl-product) .faq {
  padding:86px 0;
  background:var(--pale2);
}
:where(html.tpl-product) .faq-grid {
  display:grid;
  grid-template-columns:.82fr 1.18fr;
  gap:70px;
}
:where(html.tpl-product) details {
  background:#FFFFFF;
  border:1px solid var(--line);
  border-radius:14px;
  padding:0 20px;
  margin-bottom:12px;
}
:where(html.tpl-product) summary {
  list-style:none;
  cursor:pointer;
  padding:18px 28px 18px 0;
  font-weight:700;
  color:var(--navy);
  position:relative;
}
:where(html.tpl-product) summary:after {
  content:'+';
  position:absolute;
  right:0;
  top:15px;
  color:var(--blue);
  font-size:1.35rem;
}
:where(html.tpl-product) details p {
  margin:0 0 18px;
  color:var(--muted);
  font-size:.92rem;
}
:where(html.tpl-product) .cta-box p {
  margin:0;
  color:var(--muted);
  max-width:650px;
}
@media(max-width:980px) {
  :where(html.tpl-product) .trust-grid {
    grid-template-columns:1fr 1fr;
  }
  :where(html.tpl-product) .trust-item:nth-child(2) {
    border-right:0;
  }
  :where(html.tpl-product) .trust-item:nth-child(-n+2) {
    border-bottom:1px solid var(--line);
  }
  :where(html.tpl-product) .cards {
    grid-template-columns:1fr 1fr;
  }
  :where(html.tpl-product) .card.featured {
    grid-column:span 2;
  }
}
@media(max-width:640px) {
  :where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-health,.pg-request-a-quote)) .disability-list,
  :where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-health,.pg-request-a-quote)) .cards,
  :where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-health,.pg-request-a-quote)) .cost-grid {
    grid-template-columns:1fr;
  }
  :where(html.tpl-product) .card.featured {
    grid-column:auto;
  }
  :where(html.pg-dental) .dental-list,
  :where(html.pg-dental) .cards,
  :where(html.pg-dental) .cost-grid {
    grid-template-columns:1fr;
  }
  :where(html.pg-health) .health-list,
  :where(html.pg-health) .cards,
  :where(html.pg-health) .cost-grid {
    grid-template-columns:1fr;
  }
  :where(html.tpl-product) .trust-grid {
    grid-template-columns:1fr;
  }
  :where(html.tpl-product) .trust-item {
    border-right:0;
    border-bottom:1px solid var(--line);
    padding-left:0;
  }
  :where(html.tpl-product) .trust-item:last-child {
    border-bottom:0;
  }
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-health,.pg-request-a-quote)) .std-ltd {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  margin-top:6px;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-health,.pg-request-a-quote)) .std-ltd .mini {
  border:1px solid var(--line);
  border-radius:16px;
  padding:18px;
  background:var(--pale);
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-health,.pg-request-a-quote)) .std-ltd .mini strong {
  display:block;
  color:var(--navy);
  font-size:1rem;
  margin-bottom:5px;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-health,.pg-request-a-quote)) .std-ltd .mini span {
  font-size:.83rem;
  color:var(--muted);
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-health,.pg-request-a-quote)) .timeline {
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:stretch;
  gap:14px;
  margin-top:28px;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-health,.pg-request-a-quote)) .phase {
  border:1px solid var(--line);
  border-radius:18px;
  padding:24px;
  background:#FFFFFF;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-health,.pg-request-a-quote)) .phase .tag {
  display:inline-block;
  background:#F5FAFE;
  color:var(--navy);
  padding:.35rem .6rem;
  border-radius:999px;
  font-size:.75rem;
  font-weight:800;
  margin-bottom:12px;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-health,.pg-request-a-quote)) .phase h3 {
  color:var(--navy);
  margin:0 0 8px;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-health,.pg-request-a-quote)) .phase p {
  color:var(--muted);
  font-size:.9rem;
  margin:0;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-health,.pg-request-a-quote)) .handoff {
  display:grid;
  place-items:center;
  color:var(--blue);
  font-size:1.8rem;
  font-weight:800;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-health,.pg-request-a-quote)) .note {
  font-size:.8rem;
  color:var(--muted);
  margin-top:12px;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-health,.pg-request-a-quote)) .two-col-list {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-health,.pg-request-a-quote)) .two-col-list div {
  background:var(--pale);
  border:1px solid var(--line);
  border-radius:12px;
  padding:14px 16px;
  font-size:.88rem;
  color:#536985;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-health,.pg-request-a-quote)) .two-col-list strong {
  display:block;
  color:var(--navy);
  margin-bottom:3px;
}
@media(max-width:720px) {
  :where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-health,.pg-request-a-quote)) .std-ltd,
  :where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-health,.pg-request-a-quote)) .timeline,
  :where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-health,.pg-request-a-quote)) .two-col-list {
    grid-template-columns:1fr;
  }
  :where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-health,.pg-request-a-quote)) .handoff {
    transform:rotate(90deg);
    min-height:28px;
  }
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-request-a-quote)) .hsa-flow {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
  margin-top:26px;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-request-a-quote)) .hsa-step {
  background:#FFFFFF;
  border:1px solid var(--line);
  border-radius:18px;
  padding:23px;
  position:relative;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-request-a-quote)) .hsa-step .step-no {
  display:inline-grid;
  place-items:center;
  width:34px;
  height:34px;
  border-radius:50%;
  background:#F5FAFE;
  color:var(--blue);
  font-weight:800;
  font-size:.76rem;
  margin-bottom:14px;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-request-a-quote)) .hsa-step h3 {
  margin:0 0 8px;
  color:var(--navy);
  font-size:1rem;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-request-a-quote)) .hsa-step p {
  margin:0;
  color:var(--muted);
  font-size:.88rem;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-request-a-quote)) .hsa-step:not(:last-child):after {
  content:'→';
  position:absolute;
  right:-13px;
  top:50%;
  transform:translateY(-50%);
  z-index:2;
  color:var(--blue);
  font-weight:800;
  font-size:1.25rem;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-request-a-quote)) .hsa-snapshot {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-top:6px;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-request-a-quote)) .hsa-snapshot .mini {
  border:1px solid var(--line);
  border-radius:16px;
  padding:18px;
  background:var(--pale);
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-request-a-quote)) .hsa-snapshot .mini strong {
  display:block;
  color:var(--navy);
  font-size:1rem;
  margin-bottom:5px;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-request-a-quote)) .hsa-snapshot .mini span {
  font-size:.83rem;
  color:var(--muted);
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-request-a-quote)) .compare-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  margin-top:24px;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-request-a-quote)) .compare-box {
  border:1px solid var(--line);
  border-radius:18px;
  padding:26px;
  background:#FFFFFF;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-request-a-quote)) .compare-box h3 {
  font-family:var(--serif);
  font-size:1.55rem;
  color:var(--navy);
  margin:0 0 10px;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-request-a-quote)) .compare-box p {
  margin:0 0 14px;
  color:var(--muted);
  font-size:.92rem;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-request-a-quote)) .compare-box ul {
  list-style:none;
  margin:0;
  padding:0;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-request-a-quote)) .compare-box li {
  padding:9px 0 9px 23px;
  position:relative;
  border-top:1px solid var(--line);
  color:#536985;
  font-size:.88rem;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-request-a-quote)) .compare-box li:before {
  content:'✓';
  position:absolute;
  left:0;
  color:var(--blue);
  font-weight:800;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-request-a-quote)) .tax-note {
  margin-top:18px;
  background:#F5FAFE;
  border:1px solid var(--line);
  border-left:4px solid var(--blue);
  border-radius:12px;
  padding:16px 18px;
  color:#536985;
  font-size:.84rem;
}
@media(max-width:980px) {
  :where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-request-a-quote)) .hsa-flow {
    grid-template-columns:1fr 1fr;
  }
  :where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-request-a-quote)) .hsa-step:nth-child(2):after {
    display:none;
  }
  :where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-request-a-quote)) .compare-grid {
    grid-template-columns:1fr;
  }
}
@media(max-width:640px) {
  :where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-request-a-quote)) .hsa-flow,
  :where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-request-a-quote)) .hsa-snapshot {
    grid-template-columns:1fr;
  }
  :where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-request-a-quote)) .hsa-step:after {
    display:none;
  }
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-health-spending-account,.pg-request-a-quote)) .ci-snapshot {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-top:6px;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-health-spending-account,.pg-request-a-quote)) .ci-snapshot .mini {
  border:1px solid var(--line);
  border-radius:16px;
  padding:18px;
  background:var(--pale);
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-health-spending-account,.pg-request-a-quote)) .ci-snapshot .mini strong {
  display:block;
  color:var(--navy);
  font-size:1rem;
  margin-bottom:5px;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-health-spending-account,.pg-request-a-quote)) .ci-snapshot .mini span {
  font-size:.83rem;
  color:var(--muted);
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-health-spending-account,.pg-request-a-quote)) .compare-ci {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  margin-top:28px;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-health-spending-account,.pg-request-a-quote)) .compare-ci .box {
  background:#FFFFFF;
  border:1px solid var(--line);
  border-radius:18px;
  padding:26px;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-health-spending-account,.pg-request-a-quote)) .compare-ci .box h3 {
  font-family:var(--serif);
  font-size:1.55rem;
  color:var(--navy);
  margin:0 0 10px;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-health-spending-account,.pg-request-a-quote)) .compare-ci .box p {
  margin:0 0 14px;
  color:var(--muted);
  font-size:.92rem;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-health-spending-account,.pg-request-a-quote)) .compare-ci .box ul {
  list-style:none;
  padding:0;
  margin:0;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-health-spending-account,.pg-request-a-quote)) .compare-ci .box li {
  position:relative;
  padding:9px 0 9px 24px;
  border-top:1px solid var(--line);
  font-size:.88rem;
  color:#536985;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-health-spending-account,.pg-request-a-quote)) .compare-ci .box li:before {
  content:'✓';
  position:absolute;
  left:0;
  color:var(--blue);
  font-weight:800;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-health-spending-account,.pg-request-a-quote)) .payout-flow {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
  margin-top:26px;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-health-spending-account,.pg-request-a-quote)) .payout-step {
  background:#FFFFFF;
  border:1px solid var(--line);
  border-radius:18px;
  padding:23px;
  position:relative;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-health-spending-account,.pg-request-a-quote)) .payout-step .step-no {
  display:inline-grid;
  place-items:center;
  width:34px;
  height:34px;
  border-radius:50%;
  background:#F5FAFE;
  color:var(--blue);
  font-weight:800;
  font-size:.76rem;
  margin-bottom:14px;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-health-spending-account,.pg-request-a-quote)) .payout-step h3 {
  margin:0 0 8px;
  color:var(--navy);
  font-size:1rem;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-health-spending-account,.pg-request-a-quote)) .payout-step p {
  margin:0;
  color:var(--muted);
  font-size:.88rem;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-health-spending-account,.pg-request-a-quote)) .payout-step:not(:last-child):after {
  content:'→';
  position:absolute;
  right:-13px;
  top:50%;
  transform:translateY(-50%);
  z-index:2;
  color:var(--blue);
  font-weight:800;
  font-size:1.25rem;
}
:where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-health-spending-account,.pg-request-a-quote)) .condition-note {
  margin-top:18px;
  background:#F5FAFE;
  border:1px solid var(--line);
  border-left:4px solid var(--blue);
  border-radius:12px;
  padding:16px 18px;
  color:#536985;
  font-size:.84rem;
}
@media(max-width:980px) {
  :where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-health-spending-account,.pg-request-a-quote)) .payout-flow {
    grid-template-columns:1fr 1fr;
  }
  :where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-health-spending-account,.pg-request-a-quote)) .payout-step:nth-child(2):after {
    display:none;
  }
  :where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-health-spending-account,.pg-request-a-quote)) .compare-ci {
    grid-template-columns:1fr;
  }
}
@media(max-width:640px) {
  :where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-health-spending-account,.pg-request-a-quote)) .ci-snapshot,
  :where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-health-spending-account,.pg-request-a-quote)) .payout-flow {
    grid-template-columns:1fr;
  }
  :where(html:not(.tpl-info,.tpl-home,.tpl-overview,.pg-dental,.pg-disability,.pg-health,.pg-health-spending-account,.pg-request-a-quote)) .payout-step:after {
    display:none;
  }
}
:where(html:is(.pg-cost-plus,.pg-defined-contribution-pension,.pg-dpsp,.pg-employee-assistance-program,.pg-group-rrsp,.pg-group-tfsa,.pg-virtual-care,.pg-wellness-solutions,.pg-wellness-spending-account)) .eap-family {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-top:6px;
}
:where(html:is(.pg-cost-plus,.pg-defined-contribution-pension,.pg-dpsp,.pg-employee-assistance-program,.pg-group-rrsp,.pg-group-tfsa,.pg-virtual-care,.pg-wellness-solutions,.pg-wellness-spending-account)) .eap-family .mini {
  border:1px solid var(--line);
  border-radius:16px;
  padding:18px;
  background:var(--pale);
}
:where(html:is(.pg-cost-plus,.pg-defined-contribution-pension,.pg-dpsp,.pg-employee-assistance-program,.pg-group-rrsp,.pg-group-tfsa,.pg-virtual-care,.pg-wellness-solutions,.pg-wellness-spending-account)) .eap-family .mini strong {
  display:block;
  color:var(--navy);
  font-size:1rem;
  margin-bottom:5px;
}
:where(html:is(.pg-cost-plus,.pg-defined-contribution-pension,.pg-dpsp,.pg-employee-assistance-program,.pg-group-rrsp,.pg-group-tfsa,.pg-virtual-care,.pg-wellness-solutions,.pg-wellness-spending-account)) .eap-family .mini span {
  font-size:.83rem;
  color:var(--muted);
}
:where(html:is(.pg-cost-plus,.pg-defined-contribution-pension,.pg-dpsp,.pg-employee-assistance-program,.pg-group-rrsp,.pg-group-tfsa,.pg-virtual-care,.pg-wellness-solutions,.pg-wellness-spending-account)) .confidential {
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding:16px 18px;
  border-radius:14px;
  background:#F5FAFE;
  border:1px solid #F5FAFE;
  margin-top:20px;
}
:where(html:is(.pg-cost-plus,.pg-defined-contribution-pension,.pg-dpsp,.pg-employee-assistance-program,.pg-group-rrsp,.pg-group-tfsa,.pg-virtual-care,.pg-wellness-solutions,.pg-wellness-spending-account)) .confidential svg {
  width:24px;
  height:24px;
  color:var(--blue);
  flex:0 0 auto;
}
:where(html:is(.pg-cost-plus,.pg-defined-contribution-pension,.pg-dpsp,.pg-employee-assistance-program,.pg-group-rrsp,.pg-group-tfsa,.pg-virtual-care,.pg-wellness-solutions,.pg-wellness-spending-account)) .confidential strong {
  display:block;
  color:var(--navy);
  margin-bottom:3px;
}
:where(html:is(.pg-cost-plus,.pg-defined-contribution-pension,.pg-dpsp,.pg-employee-assistance-program,.pg-group-rrsp,.pg-group-tfsa,.pg-virtual-care,.pg-wellness-solutions,.pg-wellness-spending-account)) .confidential span {
  font-size:.85rem;
  color:var(--muted);
}
@media(max-width:640px) {
  :where(html:is(.pg-cost-plus,.pg-defined-contribution-pension,.pg-dpsp,.pg-employee-assistance-program,.pg-group-rrsp,.pg-group-tfsa,.pg-virtual-care,.pg-wellness-solutions,.pg-wellness-spending-account)) .eap-family {
    grid-template-columns:1fr;
  }
}
:where(html:is(.pg-disability,.pg-life-insurance)) .hero-copy>.eyebrow {
  white-space:nowrap;
}
@media(max-width:640px) {
  :where(html.pg-disability) .hero-copy>.eyebrow {
    font-size:.68rem;
    letter-spacing:.035em;
  }
  :where(html.pg-life-insurance) .hero-copy>.eyebrow {
    font-size:clamp(.5rem,2.82vw,.68rem);
    letter-spacing:0;
  }
}
@media(max-width:360px) {
  :where(html.pg-disability) .hero-copy>.eyebrow {
    font-size:.65rem;
    letter-spacing:.02em;
  }
}
:where(html.pg-dental) .dental-hero-image {
  position:relative;
  width:100%;
  height:420px;
  overflow:hidden;
  border-radius:24px;
}
:where(html.pg-dental) .dental-hero-image img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:45% 50%;
}
@media(max-width:980px) {
  :where(html.pg-dental) .dental-hero-image {
    height:360px;
  }
}
@media(max-width:640px) {
  :where(html.pg-dental) .dental-hero-image {
    height:280px;
  }
}
:where(html.pg-dental) .dental-components-section {
  padding:0 0 40px;
  background:var(--pale);
}
:where(html.pg-dental) .dental-components-section .dental-card {
  padding:28px 34px;
}
:where(html.pg-dental) .dental-components-section .dental-list {
  grid-template-columns:repeat(3,minmax(0,1fr));
}
@media(max-width:980px) {
  :where(html.pg-dental) .dental-components-section .dental-list {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:640px) {
  :where(html.pg-dental) .dental-components-section {
    padding-bottom:28px;
  }
  :where(html.pg-dental) .dental-components-section .dental-card {
    padding:24px;
  }
  :where(html.pg-dental) .dental-components-section .dental-list {
    grid-template-columns:1fr;
  }
}
@media(min-width:641px) and (max-width:980px) {
  :where(html.pg-dental) .dental-hero-image {
    background:#F5FAFE;
  }
  :where(html.pg-dental) .dental-hero-image img {
    object-fit:contain;
    object-position:center;
  }
}
:where(html.pg-employee-assistance-program) .eap-hero-image {
  width:100%;
  height:420px;
  overflow:hidden;
  border-radius:24px;
}
:where(html.pg-employee-assistance-program) .eap-hero-image img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:50% 75%;
}
:where(html.pg-employee-assistance-program) .eap-glance-section {
  padding:0 0 40px;
  background:var(--pale);
}
:where(html.pg-employee-assistance-program) .eap-glance-section .disability-card {
  padding:28px 34px;
}
@media(max-width:980px) {
  :where(html.pg-employee-assistance-program) .eap-hero-image {
    height:360px;
  }
}
@media(max-width:640px) {
  :where(html.pg-employee-assistance-program) .eap-hero-image {
    height:280px;
  }
  :where(html.pg-employee-assistance-program) .eap-glance-section {
    padding-bottom:28px;
  }
  :where(html.pg-employee-assistance-program) .eap-glance-section .disability-card {
    padding:24px;
  }
}
@media(min-width:641px) and (max-width:980px) {
  :where(html.pg-employee-assistance-program) .eap-hero-image {
    background:#F5FAFE;
  }
  :where(html.pg-employee-assistance-program) .eap-hero-image img {
    object-fit:contain;
    object-position:center;
  }
}
:where(html.pg-health-spending-account) .hsa-hero-image {
  width:100%;
  height:420px;
  overflow:hidden;
  border-radius:24px;
}
:where(html.pg-health-spending-account) .hsa-hero-image img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:60% 55%;
}
:where(html.pg-health-spending-account) .hsa-glance-section {
  padding:0 0 40px;
  background:var(--pale);
}
:where(html.pg-health-spending-account) .hsa-glance-section .disability-card {
  padding:28px 34px;
}
@media(max-width:980px) {
  :where(html.pg-health-spending-account) .hsa-hero-image {
    height:360px;
  }
}
@media(max-width:640px) {
  :where(html.pg-health-spending-account) .hsa-hero-image {
    height:280px;
  }
  :where(html.pg-health-spending-account) .hsa-glance-section {
    padding-bottom:28px;
  }
  :where(html.pg-health-spending-account) .hsa-glance-section .disability-card {
    padding:24px;
  }
}
@media(min-width:641px) and (max-width:980px) {
  :where(html.pg-health-spending-account) .hsa-hero-image {
    background:#F5FAFE;
  }
  :where(html.pg-health-spending-account) .hsa-hero-image img {
    object-fit:contain;
    object-position:center;
  }
}
:where(html.pg-health) .health-hero-image {
  position:relative;
  width:100%;
  height:420px;
  overflow:hidden;
  border-radius:24px;
}
:where(html.pg-health) .health-hero-image img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 75%;
}
@media(max-width:980px) {
  :where(html.pg-health) .health-hero-image {
    height:360px;
  }
}
@media(max-width:640px) {
  :where(html.pg-health) .health-hero-image {
    height:280px;
  }
}
:where(html.pg-health) .health-components-section {
  padding:0 0 40px;
  background:var(--pale);
}
:where(html.pg-health) .health-components-section .health-card {
  padding:28px 34px;
}
:where(html.pg-health) .health-components-section .health-list {
  grid-template-columns:repeat(3,minmax(0,1fr));
}
@media(max-width:980px) {
  :where(html.pg-health) .health-components-section .health-list {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:640px) {
  :where(html.pg-health) .health-components-section {
    padding-bottom:28px;
  }
  :where(html.pg-health) .health-components-section .health-card {
    padding:24px;
  }
  :where(html.pg-health) .health-components-section .health-list {
    grid-template-columns:1fr;
  }
}
@media(min-width:641px) and (max-width:980px) {
  :where(html.pg-health) .health-hero-image {
    background:#F5FAFE;
  }
  :where(html.pg-health) .health-hero-image img {
    object-fit:contain;
    object-position:center;
  }
}
:where(html.pg-virtual-care) .virtual-care-hero-image {
  width:100%;
  height:420px;
  overflow:hidden;
  border-radius:24px;
}
:where(html.pg-virtual-care) .virtual-care-hero-image img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:50% 55%;
}
:where(html.pg-virtual-care) .virtual-care-glance-section {
  padding:0 0 40px;
  background:var(--pale);
}
:where(html.pg-virtual-care) .virtual-care-glance-section .disability-card {
  padding:28px 34px;
}
@media(max-width:980px) {
  :where(html.pg-virtual-care) .virtual-care-hero-image {
    height:360px;
  }
}
@media(max-width:640px) {
  :where(html.pg-virtual-care) .virtual-care-hero-image {
    height:280px;
  }
  :where(html.pg-virtual-care) .virtual-care-glance-section {
    padding-bottom:28px;
  }
  :where(html.pg-virtual-care) .virtual-care-glance-section .disability-card {
    padding:24px;
  }
}
@media(min-width:641px) and (max-width:980px) {
  :where(html.pg-virtual-care) .virtual-care-hero-image {
    background:#F5FAFE;
  }
  :where(html.pg-virtual-care) .virtual-care-hero-image img {
    object-fit:contain;
    object-position:center;
  }
}
:where(html.pg-wellness-solutions) .wellness-hero-image {
  width:100%;
  height:420px;
  overflow:hidden;
  border-radius:24px;
}
:where(html.pg-wellness-solutions) .wellness-hero-image img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:50% 55%;
}
:where(html.pg-wellness-solutions) .wellness-glance-section {
  padding:0 0 40px;
  background:var(--pale);
}
:where(html.pg-wellness-solutions) .wellness-glance-section .disability-card {
  padding:28px 34px;
}
@media(max-width:980px) {
  :where(html.pg-wellness-solutions) .wellness-hero-image {
    height:360px;
  }
}
@media(max-width:640px) {
  :where(html.pg-wellness-solutions) .wellness-hero-image {
    height:280px;
  }
  :where(html.pg-wellness-solutions) .wellness-glance-section {
    padding-bottom:28px;
  }
  :where(html.pg-wellness-solutions) .wellness-glance-section .disability-card {
    padding:24px;
  }
}
@media(min-width:641px) and (max-width:980px) {
  :where(html.pg-wellness-solutions) .wellness-hero-image {
    background:#F5FAFE;
  }
  :where(html.pg-wellness-solutions) .wellness-hero-image img {
    object-fit:contain;
    object-position:center;
  }
}
@media(max-width:640px) {
  :where(html.pg-cost-plus) .intro-copy .section-title {
    overflow-wrap:anywhere;
  }
  :where(html.pg-group-rrsp) .market-grid .section-title {
    overflow-wrap:anywhere;
  }
}

/* ======================================================================
   Guides, Resources, Other Products, Privacy and Terms
   ====================================================================== */
:root:where(.tpl-info) {
  --grey:#64748B;
  --shadow:0 12px 36px rgba(1,61,143,.09);
  --serif:Georgia,'Times New Roman',serif;
  --sans:Arial,Helvetica,sans-serif;
}
:where(html.tpl-info) .section-title {
  font-family:var(--serif);
  font-size:clamp(2.15rem,4vw,3.2rem);
  line-height:1.04;
  color:var(--navy);
  margin:.35rem 0 1rem;
}
:where(html.tpl-info) .small-title {
  font-family:var(--serif);
  font-size:clamp(1.8rem,3vw,2.4rem);
  line-height:1.08;
  color:var(--navy);
  margin:.25rem 0 1rem;
}
:where(html.tpl-info) .hero {
  background:linear-gradient(90deg,#F5FAFE 0%,#F5FAFE 58%,#F5FAFE 58%);
  overflow:hidden;
}
:where(html.tpl-info) .hero-grid {
  display:grid;
  grid-template-columns:1.06fr .94fr;
  min-height:540px;
  align-items:stretch;
}
:where(html.tpl-info) .hero-copy {
  padding:68px 58px 62px 0;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
:where(html.tpl-info) .breadcrumbs {
  font-size:.78rem;
  color:var(--muted);
  margin-bottom:1.15rem;
}
:where(html.tpl-info) .hero h1 {
  font-family:var(--serif);
  font-size:clamp(3.1rem,5vw,4rem);
  line-height:.98;
  color:var(--navy);
  margin:0 0 1.15rem;
  max-width:700px;
}
:where(html.tpl-info) .hero p {
  font-size:1.12rem;
  max-width:690px;
  margin:0 0 1.55rem;
  color:#536985;
}
:where(html.tpl-info) .hero-note {
  margin-top:1.25rem;
  font-size:.72rem;
  letter-spacing:.11em;
  font-weight:700;
  color:var(--grey);
  text-transform:uppercase;
}
:where(html.tpl-info) .snapshot {
  width:100%;
  background:#FFFFFF;
  border:1px solid #DBE7F1;
  border-radius:24px;
  padding:32px;
  box-shadow:var(--shadow);
}
:where(html.tpl-info) .snapshot .badge {
  display:inline-flex;
  align-items:center;
  background:#F5FAFE;
  color:var(--navy);
  border-radius:999px;
  padding:.55rem .82rem;
  font-size:.76rem;
  font-weight:700;
  margin-bottom:20px;
}
:where(html.tpl-info) .snapshot h2 {
  font-family:var(--serif);
  font-size:2rem;
  line-height:1.06;
  margin:0 0 20px;
  color:var(--navy);
}
:where(html.tpl-info) .snapshot-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
:where(html.tpl-info) .snap {
  background:var(--pale);
  border:1px solid #DBE7F1;
  border-radius:14px;
  padding:16px;
}
:where(html.tpl-info) .snap svg {
  width:28px;
  height:28px;
  color:var(--blue);
  margin-bottom:10px;
}
:where(html.tpl-info) .snap strong {
  display:block;
  color:var(--navy);
  font-size:.92rem;
  margin-bottom:4px;
}
:where(html.tpl-info) .snap span {
  font-size:.82rem;
  color:var(--muted);
}
:where(html.tpl-info) .intro {
  padding:82px 0;
}
:where(html.tpl-info) .intro-copy p {
  font-size:1.03rem;
  color:#536985;
  margin:0 0 1rem;
}
:where(html.tpl-info) .side-note h3 {
  font-family:var(--serif);
  font-size:1.6rem;
  color:var(--navy);
  margin:0 0 12px;
}
:where(html.tpl-info) .side-note p {
  color:var(--muted);
  margin:0 0 16px;
}
:where(html.tpl-info) .side-note ul {
  list-style:none;
  padding:0;
  margin:0;
}
:where(html.tpl-info) .side-note li {
  position:relative;
  padding:10px 0 10px 25px;
  border-top:1px solid #DBE7F1;
  color:#536985;
  font-size:.92rem;
}
:where(html.tpl-info) .products {
  padding:84px 0;
  background:var(--pale2);
}
:where(html.tpl-info) .section-head {
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:48px;
  margin-bottom:32px;
}
:where(html.tpl-info) .section-head p {
  max-width:565px;
  color:var(--muted);
  margin:0;
}
:where(html.tpl-info) .product-grid {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:18px;
}
:where(html.tpl-info) .product-card {
  background:#FFFFFF;
  border:1px solid var(--line);
  border-radius:20px;
  padding:28px;
  box-shadow:0 5px 20px rgba(1,61,143,.035);
  display:flex;
  flex-direction:column;
  min-height:290px;
}
:where(html.tpl-info) .product-card .icon-wrap {
  width:46px;
  height:46px;
  border-radius:13px;
  background:#F5FAFE;
  display:grid;
  place-items:center;
  margin-bottom:20px;
}
:where(html.tpl-info) .product-card svg {
  width:27px;
  height:27px;
  color:var(--blue);
}
:where(html.tpl-info) .product-card h3 {
  font-family:var(--serif);
  font-size:1.55rem;
  line-height:1.08;
  color:var(--navy);
  margin:0 0 10px;
}
:where(html.tpl-info) .product-card p {
  color:var(--muted);
  margin:0 0 18px;
}
:where(html.tpl-info) .product-card ul {
  margin:0 0 20px;
  padding:0;
  list-style:none;
}
:where(html.tpl-info) .product-card li {
  position:relative;
  padding:7px 0 7px 20px;
  color:#536985;
  font-size:.88rem;
}
:where(html.tpl-info) .product-card li:before {
  content:'•';
  position:absolute;
  left:4px;
  color:var(--blue);
  font-size:1.15rem;
  line-height:1.1;
}
:where(html.tpl-info) .product-card .text-link {
  margin-top:auto;
  font-size:.9rem;
}
:where(html.tpl-info) .context {
  padding:86px 0;
}
:where(html.tpl-info) .context-grid {
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:70px;
  align-items:center;
}
:where(html.tpl-info) .context-list {
  border-top:1px solid var(--line);
}
:where(html.tpl-info) .context-item {
  display:grid;
  grid-template-columns:46px 1fr;
  gap:16px;
  padding:19px 0;
  border-bottom:1px solid var(--line);
}
:where(html.tpl-info) .context-item strong {
  display:block;
  color:var(--navy);
  margin-bottom:5px;
}
:where(html.tpl-info) .context-item p {
  margin:0;
  color:var(--muted);
  font-size:.92rem;
}
:where(html.tpl-info) .disclaimer {
  padding:38px 0;
  background:#F5FAFE;
  border-bottom:1px solid var(--line);
}
:where(html.tpl-info) .disclaimer-inner {
  display:flex;
  gap:18px;
  align-items:flex-start;
}
:where(html.tpl-info) .disclaimer svg {
  width:28px;
  height:28px;
  color:var(--blue);
  flex:0 0 auto;
  margin-top:2px;
}
:where(html.tpl-info) .disclaimer strong {
  display:block;
  color:var(--navy);
  margin-bottom:5px;
}
:where(html.tpl-info) .disclaimer p {
  margin:0;
  color:var(--muted);
  font-size:.88rem;
}
:where(html.tpl-info) .cta-box p {
  margin:0;
  color:var(--muted);
  max-width:670px;
}
@media(max-width:980px) {
  :where(html.tpl-info) .product-grid {
    grid-template-columns:1fr;
  }
}
@media(max-width:640px) {
  :where(html.tpl-info) .snapshot-grid {
    grid-template-columns:1fr;
  }
  :where(html.tpl-info) .product-card {
    min-height:0;
  }
}
:where(html.tpl-guide) .guide-hero {
  background:var(--pale);
  border-bottom:1px solid var(--line);
  padding:70px 0 62px;
}
:where(html:is(.pg-guide-choosing-group-retirement-plan,.pg-guide-comparing-group-benefits-quotes,.pg-guide-reviewing-group-benefits-plan)) .guide-hero .container {
  max-width:1000px;
}
:where(html.pg-resources) .guide-hero .container {
  max-width:1180px;
}
:where(html.tpl-guide) .guide-breadcrumbs {
  font-size:.85rem;
  color:var(--muted);
  margin-bottom:22px;
}
:where(html.tpl-guide) .guide-breadcrumbs a {
  color:var(--blue);
  text-decoration:underline;
  text-underline-offset:3px;
}
:where(html.tpl-guide) .guide-hero h1 {
  font-family:var(--serif);
  color:var(--navy);
  font-size:clamp(2.3rem,4.4vw,3.52rem);
  line-height:1.13;
  margin:10px 0 18px;
  max-width:950px;
}
:where(html.tpl-guide) .guide-hero p {
  font-size:1.12rem;
  line-height:1.68;
  color:#536985;
  max-width:800px;
  margin:0;
}
:where(html.tpl-guide) .guide-layout {
  display:grid;
  grid-template-columns:minmax(0,1fr) 220px;
  gap:60px;
  align-items:start;
  padding:72px 0 90px;
  max-width:1180px;
}
:where(html.tpl-guide) .guide-article {
  min-width:0;
  max-width:830px;
  color:#334f70;
  font-size:1rem;
  line-height:1.74;
}
:where(html.tpl-guide) .guide-article > p:first-child {
  font-size:1.09rem;
}
:where(html.tpl-guide) .guide-article p {
  margin:0 0 19px;
}
:where(html.tpl-guide) .guide-section {
  margin:44px 0 0;
  padding-top:40px;
  border-top:1px solid var(--line);
  scroll-margin-top:120px;
}
:where(html.tpl-guide) .guide-section h2 {
  font-family:var(--serif);
  font-size:clamp(1.65rem,2.6vw,2.08rem);
  line-height:1.18;
  color:var(--navy);
  margin:0 0 20px;
}
:where(html.tpl-guide) .guide-article ul,
:where(html.tpl-guide) .guide-article ol {
  padding-left:1.4rem;
  margin:0 0 22px;
}
:where(html.tpl-guide) .guide-article li {
  padding-left:.25rem;
  margin-bottom:10px;
}
:where(html.tpl-guide) .guide-article strong {
  color:var(--ink);
}
:where(html.tpl-guide) .guide-article a {
  color:var(--blue);
  text-decoration:underline;
  text-underline-offset:3px;
  overflow-wrap:anywhere;
}
:where(html.tpl-guide) .guide-table-wrap {
  overflow-x:auto;
  margin:22px 0 30px;
  border:1px solid var(--line);
  border-radius:12px;
}
:where(html.tpl-guide) .guide-article table {
  width:100%;
  border-collapse:collapse;
  min-width:540px;
  line-height:1.48;
  font-size:.93rem;
}
:where(html.tpl-guide) .guide-article th,
:where(html.tpl-guide) .guide-article td {
  text-align:left;
  vertical-align:top;
  padding:14px 15px;
  border-bottom:1px solid var(--line);
}
:where(html.tpl-guide) .guide-article tr:last-child td {
  border-bottom:0;
}
:where(html.tpl-guide) .guide-article th {
  background:var(--pale);
  color:var(--navy);
}
:where(html.tpl-guide) .guide-aside {
  position:sticky;
  top:126px;
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--pale);
  padding:22px;
}
:where(html.tpl-guide) .guide-aside h2 {
  font-family:var(--serif);
  color:var(--navy);
  font-size:1.28rem;
  line-height:1.25;
  margin:0 0 15px;
}
:where(html.tpl-guide) .guide-aside a {
  display:block;
  color:var(--blue);
  font-size:.9rem;
  line-height:1.4;
  padding:10px 0;
  border-top:1px solid var(--line);
  text-decoration:none;
}
:where(html.tpl-guide) .guide-aside a:hover,
:where(html.tpl-guide) .guide-aside a:focus {
  text-decoration:underline;
}
:where(html.tpl-guide) .guide-next {
  padding:32px;
  border:1px solid var(--line);
  border-radius:18px;
  background:var(--pale);
  margin-top:46px;
}
:where(html.tpl-guide) .guide-next h2 {
  font-family:var(--serif);
  color:var(--navy);
  font-size:1.7rem;
  margin:0 0 8px;
}
:where(html.tpl-guide) .guide-next p {
  margin:0 0 15px;
}
:where(html.tpl-guide) .guide-next a {
  font-weight:700;
}
:where(html.tpl-guide) .resource-list {
  display:grid;
  gap:24px;
  margin:18px 0 0;
}
:where(html:is(.pg-guide-choosing-group-retirement-plan,.pg-guide-comparing-group-benefits-quotes,.pg-guide-reviewing-group-benefits-plan)) .resource-list {
  grid-template-columns:repeat(2,minmax(0,1fr));
}
:where(html.pg-resources) .resource-list {
  grid-template-columns:repeat(3,minmax(0,1fr));
}
:where(html.tpl-guide) .resource-card {
  display:flex;
  flex-direction:column;
  border:1px solid var(--line);
  border-radius:18px;
  padding:28px;
  background:white;
  box-shadow:var(--shadow);
}
:where(html.tpl-guide) .resource-card h2 {
  font-family:var(--serif);
  color:var(--navy);
  font-size:1.7rem;
  line-height:1.2;
  margin:0 0 12px;
}
:where(html.tpl-guide) .resource-card p {
  color:#536985;
  line-height:1.65;
  margin:0 0 20px;
}
:where(html.tpl-guide) .resource-card a {
  margin-top:auto;
  color:var(--blue);
  font-weight:700;
}
:where(html.tpl-guide) .resource-card a:hover {
  text-decoration:underline;
}
@media(max-width:800px) {
  :where(html.tpl-guide) .guide-layout {
    grid-template-columns:1fr;
    padding:48px 0 70px;
  }
  :where(html.tpl-guide) .guide-aside {
    position:static;
    grid-row:1;
  }
  :where(html:is(.pg-guide-choosing-group-retirement-plan,.pg-guide-comparing-group-benefits-quotes,.pg-guide-reviewing-group-benefits-plan)) .guide-aside {
    padding:17px 20px;
  }
  :where(html.tpl-guide) .guide-hero {
    padding:50px 0;
  }
  :where(html.tpl-guide) .resource-list {
    grid-template-columns:1fr;
  }
}
@media(max-width:600px) {
  :where(html.tpl-guide) .guide-hero h1 {
    font-size:clamp(2rem,8vw,2.75rem);
    line-height:1.18;
  }
  :where(html.tpl-guide) .guide-hero p {
    font-size:1rem;
  }
  :where(html.tpl-guide) .guide-layout {
    gap:28px;
  }
  :where(html.tpl-guide) .guide-table-wrap {
    margin-left:-2vw;
    margin-right:-2vw;
  }
  :where(html.tpl-guide) .guide-article table {
    min-width:500px;
  }
  :where(html.tpl-guide) .guide-next {
    padding:24px;
  }
  :where(html.tpl-guide) .resource-card {
    padding:23px;
  }
}
:where(html:is(.pg-guide-choosing-group-retirement-plan,.pg-guide-comparing-group-benefits-quotes,.pg-guide-reviewing-group-benefits-plan)) .guide-next-actions {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:16px;
}
:where(html:is(.pg-guide-choosing-group-retirement-plan,.pg-guide-comparing-group-benefits-quotes,.pg-guide-reviewing-group-benefits-plan)) .guide-next .btn-primary {
  text-decoration:none;
}
:where(html:is(.pg-guide-choosing-group-retirement-plan,.pg-guide-comparing-group-benefits-quotes,.pg-guide-reviewing-group-benefits-plan)) .guide-next .guide-back {
  font-weight:700;
}
:where(html:is(.pg-guide-choosing-group-retirement-plan,.pg-guide-comparing-group-benefits-quotes,.pg-guide-reviewing-group-benefits-plan)) .guide-toc-mobile,
:where(html:is(.pg-guide-choosing-group-retirement-plan,.pg-guide-comparing-group-benefits-quotes,.pg-guide-reviewing-group-benefits-plan)) .guide-table-hint {
  display:none;
}
:where(html:is(.pg-guide-choosing-group-retirement-plan,.pg-guide-comparing-group-benefits-quotes,.pg-guide-reviewing-group-benefits-plan)) .guide-toc-mobile summary {
  color:var(--navy);
  font-family:var(--serif);
  font-size:1.2rem;
  font-weight:700;
  cursor:pointer;
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
}
:where(html:is(.pg-guide-choosing-group-retirement-plan,.pg-guide-comparing-group-benefits-quotes,.pg-guide-reviewing-group-benefits-plan)) .guide-toc-mobile summary::-webkit-details-marker {
  display:none;
}
:where(html:is(.pg-guide-choosing-group-retirement-plan,.pg-guide-comparing-group-benefits-quotes,.pg-guide-reviewing-group-benefits-plan)) .guide-toc-mobile summary:after {
  content:"+";
  font-family:var(--sans);
  font-size:1.4rem;
  line-height:1;
}
:where(html:is(.pg-guide-choosing-group-retirement-plan,.pg-guide-comparing-group-benefits-quotes,.pg-guide-reviewing-group-benefits-plan)) .guide-toc-mobile[open] summary:after {
  content:"−";
}
:where(html:is(.pg-guide-choosing-group-retirement-plan,.pg-guide-comparing-group-benefits-quotes,.pg-guide-reviewing-group-benefits-plan)) .guide-toc-mobile nav {
  padding-top:12px;
}
@media(max-width:800px) {
  :where(html:is(.pg-guide-choosing-group-retirement-plan,.pg-guide-comparing-group-benefits-quotes,.pg-guide-reviewing-group-benefits-plan)) .guide-toc-desktop,
  :where(html:is(.pg-guide-choosing-group-retirement-plan,.pg-guide-comparing-group-benefits-quotes,.pg-guide-reviewing-group-benefits-plan)) .guide-toc-title {
    display:none;
  }
  :where(html:is(.pg-guide-choosing-group-retirement-plan,.pg-guide-comparing-group-benefits-quotes,.pg-guide-reviewing-group-benefits-plan)) .guide-toc-mobile {
    display:block;
  }
}
@media(max-width:600px) {
  :where(html:is(.pg-guide-choosing-group-retirement-plan,.pg-guide-comparing-group-benefits-quotes,.pg-guide-reviewing-group-benefits-plan)) .guide-table-hint {
    display:block;
    color:var(--muted);
    font-size:.82rem;
    line-height:1.35;
    margin:14px 0 7px;
  }
}
:where(html:is(.tpl-guide,.pg-privacy,.pg-terms)) .privacy-hero {
  padding:76px 0 66px;
  background:linear-gradient(120deg,#F5FAFE,#F5FAFE);
  border-bottom:1px solid var(--line);
}
:where(html:is(.tpl-guide,.pg-privacy,.pg-terms)) .privacy-hero-inner {
  max-width:940px;
}
:where(html:is(.tpl-guide,.pg-privacy,.pg-terms)) .privacy-hero h1 {
  font-family:var(--serif);
  font-size:clamp(2.65rem,5vw,4rem);
  line-height:1.02;
  color:var(--navy);
  margin:.45rem 0 1.1rem;
  letter-spacing:-.02em;
}
:where(html:is(.tpl-guide,.pg-privacy,.pg-terms)) .privacy-hero p {
  max-width:830px;
  margin:0;
  color:#536985;
  font-size:1.08rem;
  line-height:1.7;
}
:where(html:is(.tpl-guide,.pg-privacy,.pg-terms)) .privacy-content {
  padding:76px 0 90px;
  background:#FFFFFF;
}
:where(html:is(.tpl-guide,.pg-privacy,.pg-terms)) .privacy-layout {
  display:grid;
  grid-template-columns:minmax(0,1fr) 250px;
  gap:68px;
  align-items:start;
}
:where(html:is(.tpl-guide,.pg-privacy,.pg-terms)) .privacy-article {
  max-width:850px;
}
:where(html:is(.tpl-guide,.pg-privacy,.pg-terms)) .privacy-section {
  padding-bottom:42px;
  margin-bottom:42px;
  border-bottom:1px solid var(--line);
  scroll-margin-top:118px;
}
:where(html:is(.tpl-guide,.pg-privacy,.pg-terms)) .privacy-section:last-child {
  padding-bottom:0;
  margin-bottom:0;
  border-bottom:0;
}
:where(html:is(.tpl-guide,.pg-privacy,.pg-terms)) .privacy-section h2 {
  font-family:var(--serif);
  font-size:clamp(1.8rem,3vw,2.4rem);
  line-height:1.12;
  color:var(--navy);
  margin:0 0 20px;
}
:where(html:is(.tpl-guide,.pg-privacy,.pg-terms)) .privacy-section p {
  margin:0 0 18px;
  color:#536985;
  line-height:1.75;
}
:where(html:is(.tpl-guide,.pg-privacy,.pg-terms)) .privacy-list {
  list-style:none;
  padding:0;
  margin:20px 0 0;
  display:grid;
  gap:13px;
}
:where(html.pg-privacy) #your-rights .privacy-list + p {
  margin-top:18px;
}
:where(html.pg-privacy) #collection-use-disclosure .privacy-list + p,
:where(html.pg-privacy) #website-technology .privacy-list + p {
  margin-top:18px;
}
:where(html:is(.tpl-guide,.pg-privacy,.pg-terms)) .privacy-list li {
  position:relative;
  padding:0 0 0 29px;
  color:#536985;
  line-height:1.65;
}
:where(html:is(.tpl-guide,.pg-privacy,.pg-terms)) .privacy-list li:before {
  content:'✓';
  position:absolute;
  left:0;
  top:.05rem;
  color:var(--blue);
  font-weight:800;
}
:where(html:is(.tpl-guide,.pg-privacy,.pg-terms)) .privacy-aside {
  position:sticky;
  top:122px;
  background:var(--pale);
  border:1px solid var(--line);
  border-radius:18px;
  padding:24px;
}
:where(html:is(.tpl-guide,.pg-privacy,.pg-terms)) .privacy-aside h2 {
  font-family:var(--serif);
  font-size:1.35rem;
  color:var(--navy);
  margin:0 0 13px;
}
:where(html:is(.tpl-guide,.pg-privacy,.pg-terms)) .privacy-aside a {
  display:block;
  padding:9px 0;
  border-top:1px solid var(--line);
  color:#536985;
  font-size:.86rem;
  font-weight:700;
  line-height:1.35;
}
:where(html:is(.tpl-guide,.pg-privacy,.pg-terms)) .privacy-aside a:hover,
:where(html:is(.tpl-guide,.pg-privacy,.pg-terms)) .privacy-aside a:focus-visible {
  color:var(--navy);
  text-decoration:underline;
  text-underline-offset:3px;
}
@media(max-width:900px) {
  :where(html:is(.tpl-guide,.pg-privacy,.pg-terms)) .privacy-layout {
    grid-template-columns:1fr;
    gap:38px;
  }
  :where(html:is(.tpl-guide,.pg-privacy,.pg-terms)) .privacy-aside {
    position:static;
    order:-1;
  }
  :where(html:is(.tpl-guide,.pg-privacy,.pg-terms)) .privacy-aside-links {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0 20px;
  }
}
@media(max-width:640px) {
  :where(html:is(.tpl-guide,.pg-privacy,.pg-terms)) .privacy-hero {
    padding:54px 0 48px;
  }
  :where(html:is(.tpl-guide,.pg-privacy,.pg-terms)) .privacy-hero h1 {
    font-size:2.7rem;
  }
  :where(html:is(.tpl-guide,.pg-privacy,.pg-terms)) .privacy-content {
    padding:52px 0 66px;
  }
  :where(html:is(.tpl-guide,.pg-privacy,.pg-terms)) .privacy-section {
    padding-bottom:32px;
    margin-bottom:32px;
  }
  :where(html:is(.tpl-guide,.pg-privacy,.pg-terms)) .privacy-aside-links {
    grid-template-columns:1fr;
  }
}
:where(html.pg-other-products) .cta-contact-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
  width:auto;
  min-width:142px;
  max-width:100%;
  height:46px;
  min-height:46px;
  padding:0 22px;
  border-radius:999px;
  white-space:nowrap;
  word-break:normal;
  overflow-wrap:normal;
  flex:0 0 auto;
  line-height:1;
}
@media(max-width:640px) {
  :where(html.pg-other-products) .cta-contact-button {
    min-width:136px;
    height:44px;
    min-height:44px;
    padding:0 20px;
  }
}
:where(html:is(.tpl-guide,.pg-terms,.pg-privacy)) .terms-updated {
  font-size:.82rem!important;
  font-weight:700;
  letter-spacing:.02em;
  color:var(--navy)!important;
  margin:0 0 1rem!important;
}
:where(html:is(.tpl-guide,.pg-terms,.pg-privacy)) .terms-updated + p {
  margin-top:0;
}
:where(html:is(.tpl-guide,.pg-terms)) .privacy-section a.text-link {
  text-decoration:underline;
  text-underline-offset:3px;
}
:where(html.pg-resources) .guide-hero .resources-hero-grid {
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);
  gap:42px;
  align-items:center;
}
:where(html.pg-resources) .resources-hero-copy {
  min-width:0;
}
:where(html.pg-resources) .resources-hero-image {
  height:280px;
  overflow:hidden;
  border-radius:20px;
}
:where(html.pg-resources) .resources-hero-image img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:60% 60%;
}
@media(max-width:800px) {
  :where(html.pg-resources) .guide-hero .resources-hero-grid {
    grid-template-columns:1fr;
    gap:26px;
  }
  :where(html.pg-resources) .resources-hero-image {
    height:240px;
  }
}
@media(min-width:641px) and (max-width:980px) {
  :where(html.pg-resources) .resources-hero-image {
    background:#F5FAFE;
  }
  :where(html.pg-resources) .resources-hero-image img {
    object-fit:contain;
    object-position:center;
  }
}

/* ======================================================================
   Shared page sections: hero, stats, cards, FAQs, call-to-action (continued)
   ====================================================================== */
@media(max-width:980px) {
  :where(html:is(.tpl-product,.tpl-info)) .hero {
    background:#F5FAFE;
  }
  :where(html:is(.tpl-product,.tpl-info)) .hero-copy {
    padding:52px 0 32px;
  }
}
@media(max-width:640px) {
  :where(html:is(.tpl-product,.tpl-info)) .hero h1 {
    font-size:3rem;
  }
}
@media(min-width:981px) {
  .hero h1 {
    line-height:1.14;
  }
}
@media(max-width:980px) {
  .hero h1 {
    line-height:1.14;
  }
}
:where(html:is(.tpl-product,.tpl-overview,.pg-index,.pg-other-products)) .hero-note,
:where(html:is(.tpl-product,.tpl-overview,.pg-index,.pg-other-products)) .hero-tag {
  white-space:nowrap;
  letter-spacing:.02em;
  font-size:.75rem;
}
@media(max-width:1279px) {
  :where(html:is(.tpl-product,.tpl-overview,.pg-index,.pg-other-products)) .hero-note,
  :where(html:is(.tpl-product,.tpl-overview,.pg-index,.pg-other-products)) .hero-tag {
    white-space:normal;
    font-size:.75rem;
    letter-spacing:.01em;
    line-height:1.4;
  }
}

/* ======================================================================
   Product pages (continued)
   ====================================================================== */
@media(max-width:640px) {
  :where(html.pg-dpsp) .hero-note {
    font-size:clamp(.56rem,2.4vw,.66rem);
    letter-spacing:0;
    white-space:nowrap;
  }
}
/* Phones: hero labels at least 12px (readability); they may wrap to a second line. */
@media(max-width:640px) {
  :where(html:is(.tpl-product,.tpl-overview,.pg-index,.pg-other-products)) .hero-note,
  :where(html:is(.tpl-product,.tpl-overview,.pg-index,.pg-other-products)) .hero-tag,
  :where(html.pg-dpsp) .hero-note {
    white-space:normal;
    font-size:.75rem;
    letter-spacing:.01em;
    text-wrap:balance;
  }
}

/* ======================================================================
   Request a Quote page
   ====================================================================== */
:root:where(.pg-request-a-quote) {
  --grey:#64748B;
  --shadow:0 8px 28px rgba(1,61,143,.08);
  --serif:Georgia,'Times New Roman',serif;
  --sans:Arial,Helvetica,sans-serif;
}
:where(html.pg-request-a-quote) button,
:where(html.pg-request-a-quote) input,
:where(html.pg-request-a-quote) select,
:where(html.pg-request-a-quote) textarea {
  font:inherit;
}
:where(html.pg-request-a-quote) .btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.55rem;
  border:0;
  border-radius:999px;
  padding:.9rem 1.45rem;
  font-weight:700;
  cursor:pointer;
  transition:.2s ease;
}
:where(html.pg-request-a-quote) .trust-item {
  display:grid;
  grid-template-columns:38px 1fr;
  gap:13px;
  align-items:start;
}
:where(html.pg-request-a-quote) .trust-item strong {
  display:block;
  color:var(--navy);
  font-size:.98rem;
  margin-bottom:2px;
}
:where(html.pg-request-a-quote) .trust-item span {
  color:var(--muted);
  font-size:.91rem;
}
:where(html.pg-request-a-quote) .trust-icon {
  width:38px;
  height:38px;
  border-radius:50%;
  background:#F5FAFE;
  color:var(--blue);
  display:grid;
  place-items:center;
  margin-top:1px;
}
:where(html.pg-request-a-quote) .check {
  display:flex;
  align-items:flex-start;
  gap:9px;
  font-size:.87rem;
  color:#536985;
}
:where(html.pg-request-a-quote) .process {
  padding:66px 0 72px;
  background:#FFFFFF;
}
:where(html.pg-request-a-quote) .step {
  border-top:3px solid var(--blue);
  background:var(--pale);
  padding:24px 24px 26px;
  min-height:175px;
}
:where(html.pg-request-a-quote) .step h3 {
  font-family:var(--serif);
  color:var(--navy);
  font-size:1.45rem;
  margin:9px 0 8px;
}
:where(html.pg-request-a-quote) .step p {
  margin:0;
  color:var(--muted);
  font-size:.91rem;
}
:where(html.pg-request-a-quote) .cta-band {
  background:var(--navy);
  color:white;
}
:where(html.pg-request-a-quote) .cta-inner {
  min-height:162px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  padding:30px 0;
}
:where(html.pg-request-a-quote) .cta-inner h2 {
  font-family:var(--serif);
  font-size:clamp(1.7rem,3vw,2.4rem);
  line-height:1.1;
  margin:0;
  max-width:760px;
}
:where(html.pg-request-a-quote) .field {
  display:flex;
  flex-direction:column;
  gap:7px;
}
:where(html.pg-request-a-quote) .quote-hero {
  background:linear-gradient(90deg,#F5FAFE 0%,#F5FAFE 48%,#FFFFFF 48%);
  border-bottom:1px solid var(--line);
}
:where(html.pg-request-a-quote) .quote-grid {
  display:grid;
  grid-template-columns:.88fr 1.12fr;
  gap:76px;
  align-items:start;
  padding:68px 0 74px;
}
:where(html.pg-request-a-quote) .quote-copy {
  padding:36px 0 0;
}
:where(html.pg-request-a-quote) .quote-copy h1 {
  font-family:var(--serif);
  font-size:clamp(3.2rem,5.5vw,4.4rem);
  line-height:.98;
  color:var(--navy);
  margin:.55rem 0 1.25rem;
  max-width:600px;
}
:where(html.pg-request-a-quote) .quote-copy .lead {
  font-size:1.13rem;
  max-width:545px;
  margin:0 0 1.7rem;
  color:#536985;
}
:where(html.pg-request-a-quote) .trust-list {
  display:grid;
  gap:16px;
  margin:30px 0 0;
  max-width:530px;
}
:where(html.pg-request-a-quote) .trust-icon svg {
  width:20px;
  height:20px;
}
:where(html.pg-request-a-quote) .direct-contact {
  margin-top:31px;
  padding-top:25px;
  border-top:1px solid var(--line);
  font-size:.91rem;
  color:var(--muted);
  max-width:520px;
}
:where(html.pg-request-a-quote) .direct-contact a {
  font-weight:700;
  color:var(--navy);
}
:where(html.pg-request-a-quote) .direct-contact a:hover {
  color:var(--blue);
}
:where(html.pg-request-a-quote) .form-card {
  background:#FFFFFF;
  border:1px solid var(--line);
  box-shadow:0 14px 44px rgba(1,61,143,.10);
  border-radius:22px;
  padding:34px 34px 30px;
}
:where(html.pg-request-a-quote) .form-section {
  margin-top:27px;
}
:where(html.pg-request-a-quote) .form-section:first-of-type {
  margin-top:0;
}
:where(html.pg-request-a-quote) .field label {
  font-size:.82rem;
  font-weight:700;
  color:#536985;
}
:where(html.pg-request-a-quote) .field input,
:where(html.pg-request-a-quote) .field select,
:where(html.pg-request-a-quote) .field textarea {
  width:100%;
  border:1px solid #DBE7F1;
  border-radius:10px;
  background:#FFFFFF;
  color:var(--ink);
  padding:12px 13px;
  outline:none;
  transition:.15s ease;
}
:where(html.pg-request-a-quote) .field textarea {
  min-height:112px;
  resize:vertical;
}
:where(html.pg-request-a-quote) .field input,
:where(html.pg-request-a-quote) .field select {
  height:47px;
}
:where(html.pg-request-a-quote) .field input:focus,
:where(html.pg-request-a-quote) .field select:focus,
:where(html.pg-request-a-quote) .field textarea:focus {
  border-color:var(--blue);
  box-shadow:0 0 0 3px rgba(7,88,168,.10);
}
:where(html.pg-request-a-quote) .field input::placeholder,
:where(html.pg-request-a-quote) .field textarea::placeholder {
  color:#64748B;
}
:where(html.pg-request-a-quote) .check input {
  accent-color:var(--blue);
  width:16px;
  height:16px;
  margin:2px 0 0;
}
:where(html.pg-request-a-quote) .success {
  display:none;
  margin-top:18px;
  border:1px solid #B8E1D1;
  background:#F3FBF8;
  color:#245C49;
  padding:12px 14px;
  border-radius:10px;
  font-size:.86rem;
}
:where(html.pg-request-a-quote) .success.show {
  display:block;
}
:where(html.pg-request-a-quote) .process-head {
  display:grid;
  grid-template-columns:.75fr 1.25fr;
  gap:60px;
  align-items:end;
  margin-bottom:30px;
}
:where(html.pg-request-a-quote) .process h2 {
  font-family:var(--serif);
  font-size:clamp(2.2rem,4vw,3.2rem);
  line-height:1.03;
  color:var(--navy);
  margin:.35rem 0 0;
}
:where(html.pg-request-a-quote) .process-head p {
  margin:0;
  color:var(--muted);
  max-width:610px;
}
:where(html.pg-request-a-quote) .process-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}
:where(html.pg-request-a-quote) .step-number {
  font-size:.71rem;
  letter-spacing:.17em;
  font-weight:800;
  color:var(--blue);
  text-transform:uppercase;
}
@media(min-width:981px) {
  :where(html.pg-request-a-quote) .cta-inner h2 {
    font-size:clamp(1.5rem,2.45vw,1.96rem);
    white-space:nowrap;
    max-width:none;
  }
}
:where(html.pg-request-a-quote) .cta-inner .btn {
  background:#FFFFFF;
  color:var(--navy);
}
:where(html.pg-request-a-quote) .cta-inner .btn:hover {
  transform:translateY(-1px);
}
@media(max-width:980px) {
  :where(html.pg-request-a-quote) .quote-hero {
    background:#F5FAFE;
  }
  :where(html.pg-request-a-quote) .quote-grid {
    grid-template-columns:1fr;
    gap:42px;
    padding:48px 0 56px;
  }
  :where(html.pg-request-a-quote) .quote-copy {
    padding-top:8px;
    max-width:720px;
  }
  :where(html.pg-request-a-quote) .form-card {
    max-width:780px;
  }
  :where(html.pg-request-a-quote) .process-head {
    grid-template-columns:1fr;
    gap:14px;
  }
  :where(html.pg-request-a-quote) .process-grid {
    grid-template-columns:1fr 1fr;
  }
  :where(html.pg-request-a-quote) .step:last-child {
    grid-column:1/-1;
  }
}
@media(max-width:640px) {
  :where(html.pg-request-a-quote) .quote-grid {
    padding:38px 0 44px;
  }
  :where(html.pg-request-a-quote) .quote-copy h1 {
    /* sized to the screen so "organization." fits even without Georgia (Android) */
    font-size:clamp(2.1rem,11.2vw,4rem);
    overflow-wrap:normal;
  }
  :where(html.pg-request-a-quote) .quote-grid > * {
    min-width:0;
  }
  :where(html.pg-request-a-quote) .form-card {
    padding:25px 20px 23px;
    border-radius:16px;
  }
  :where(html.pg-request-a-quote) .cta-inner {
    align-items:flex-start;
    flex-direction:column;
    padding:34px 0 37px;
  }
  :where(html.pg-request-a-quote) .process {
    padding:52px 0 56px;
  }
  :where(html.pg-request-a-quote) .process-grid {
    grid-template-columns:1fr;
  }
  :where(html.pg-request-a-quote) .step:last-child {
    grid-column:auto;
  }
}
:where(html.pg-request-a-quote) a:focus-visible,
:where(html.pg-request-a-quote) button:focus-visible,
:where(html.pg-request-a-quote) input:focus-visible,
:where(html.pg-request-a-quote) select:focus-visible,
:where(html.pg-request-a-quote) textarea:focus-visible,
:where(html.pg-request-a-quote) summary:focus-visible {
  outline:3px solid #0758A8;
  outline-offset:3px;
}
:where(html.pg-request-a-quote) #quote-form {
  --qf-danger:#8B2530;
  --qf-dangerbg:#FFF3F4;
  --qf-ok:#245C49;
  --qf-okbg:#F3FBF8;
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  box-shadow:0 14px 44px rgba(1,61,143,.10);
  padding:30px;
}
:where(html.pg-request-a-quote) #quote-form fieldset {
  border:0;
  padding:0;
  margin:0;
}
:where(html.pg-request-a-quote) #quote-form [hidden] {
  display:none!important;
}
:where(html.pg-request-a-quote) #quote-form .form-top {
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:flex-start;
  padding-bottom:18px;
  border-bottom:1px solid var(--line);
  margin-bottom:22px;
}
:where(html.pg-request-a-quote) #quote-form .form-top h2 {
  font:700 20px/1.25 var(--sans);
  margin:0;
  color:var(--navy);
}
:where(html.pg-request-a-quote) #quote-form .required {
  font-size:12px;
  color:var(--muted);
  white-space:nowrap;
}
:where(html.pg-request-a-quote) #quote-form .form-section {
  margin-top:24px;
}
:where(html.pg-request-a-quote) #quote-form .form-section.first-section {
  margin-top:0;
}
:where(html.pg-request-a-quote) #quote-form .section-label {
  font-size:13px;
  font-weight:800;
  color:var(--navy);
  letter-spacing:.03em;
  margin-bottom:10px;
}
:where(html.pg-request-a-quote) #quote-form .field-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}
:where(html.pg-request-a-quote) #quote-form .field {
  display:flex;
  flex-direction:column;
  gap:6px;
}
:where(html.pg-request-a-quote) #quote-form .field.full {
  grid-column:1/-1;
}
:where(html.pg-request-a-quote) #quote-form label,
:where(html.pg-request-a-quote) #quote-form .label {
  font-size:13px;
  font-weight:700;
  color:#536985;
}
:where(html.pg-request-a-quote) #quote-form .optional {
  font-weight:400;
}
:where(html.pg-request-a-quote) #quote-form input,
:where(html.pg-request-a-quote) #quote-form select,
:where(html.pg-request-a-quote) #quote-form textarea {
  width:100%;
  border:1px solid #7A8FA6;
  border-radius:9px;
  padding:12px 13px;
  background:#fff;
  color:var(--ink);
  outline:none;
}
:where(html.pg-request-a-quote) #quote-form input,
:where(html.pg-request-a-quote) #quote-form select {
  min-height:47px;
}
:where(html.pg-request-a-quote) #quote-form textarea {
  min-height:78px;
  resize:vertical;
}
:where(html.pg-request-a-quote) #quote-form input:focus,
:where(html.pg-request-a-quote) #quote-form select:focus,
:where(html.pg-request-a-quote) #quote-form textarea:focus {
  border-color:var(--blue);
  box-shadow:0 0 0 3px rgba(7,88,168,.10);
}
:where(html.pg-request-a-quote) #quote-form a:focus-visible,
:where(html.pg-request-a-quote) #quote-form button:focus-visible,
:where(html.pg-request-a-quote) #quote-form input:focus-visible,
:where(html.pg-request-a-quote) #quote-form select:focus-visible,
:where(html.pg-request-a-quote) #quote-form textarea:focus-visible {
  outline:3px solid var(--blue);
  outline-offset:3px;
}
:where(html.pg-request-a-quote) #quote-form .intent-grid,
:where(html.pg-request-a-quote) #quote-form .action-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
:where(html.pg-request-a-quote) #quote-form .choice {
  position:relative;
  display:flex;
  align-items:flex-start;
  gap:10px;
  border:1px solid #7A8FA6;
  border-radius:10px;
  padding:12px 13px;
  min-height:50px;
  background:#fff;
  cursor:pointer;
}
:where(html.pg-request-a-quote) #quote-form .choice:last-child {
  grid-column:1/-1;
}
:where(html.pg-request-a-quote) #quote-form .action-grid .choice:last-child {
  grid-column:auto;
}
:where(html.pg-request-a-quote) #quote-form .choice input {
  width:18px;
  height:18px;
  min-height:0;
  margin:2px 0 0;
  padding:0;
  accent-color:var(--blue);
  flex:0 0 auto;
  box-shadow:none;
}
:where(html.pg-request-a-quote) #quote-form .choice:has(input:checked) {
  border-color:var(--blue);
  background:var(--pale);
  box-shadow:0 0 0 1px var(--blue);
}
:where(html.pg-request-a-quote) #quote-form .choice:has(input:focus-visible) {
  outline:3px solid var(--blue);
  outline-offset:3px;
}
:where(html.pg-request-a-quote) #quote-form .choice span {
  font-size:14px;
  color:var(--ink);
  font-weight:600;
  line-height:1.35;
}
:where(html.pg-request-a-quote) #quote-form .inline-options {
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
:where(html.pg-request-a-quote) #quote-form .inline-options.ontario-options {
  margin-top:8px;
}
:where(html.pg-request-a-quote) #quote-form .inline-options .choice {
  min-width:110px;
  align-items:center;
}
:where(html.pg-request-a-quote) #quote-form .inline-options .choice span {
  font-weight:700;
}
:where(html.pg-request-a-quote) #quote-form .conditional {
  margin-top:16px;
}
:where(html.pg-request-a-quote) #quote-form .field-help {
  font-size:12px;
  color:var(--muted);
  line-height:1.45;
  margin:7px 0 0;
  max-width:620px;
}
:where(html.pg-request-a-quote) #quote-form .notice {
  margin-top:10px;
  border-radius:9px;
  padding:11px 12px;
  font-size:13px;
  line-height:1.45;
}
:where(html.pg-request-a-quote) #quote-form .notice.info {
  background:var(--pale);
  border:1px solid #AFC4D8;
  color:var(--ink);
}
:where(html.pg-request-a-quote) #quote-form .error-summary {
  margin:0 0 18px;
  border:1px solid #D8A0A6;
  background:var(--qf-dangerbg);
  color:var(--qf-danger);
  border-radius:9px;
  padding:11px 12px;
  font-size:13px;
  font-weight:700;
}
:where(html.pg-request-a-quote) #quote-form .error-summary h3 {
  font:700 15px/1.3 var(--sans);
  color:var(--qf-danger);
  margin:0;
}
:where(html.pg-request-a-quote) #quote-form .error-summary ul {
  margin:7px 0 0;
  padding-left:20px;
}
:where(html.pg-request-a-quote) #quote-form .error-summary a {
  color:var(--qf-danger);
  font-weight:700;
  text-decoration:underline;
}
:where(html.pg-request-a-quote) #quote-form .error-summary:focus,
:where(html.pg-request-a-quote) #quote-form .success:focus {
  outline:3px solid var(--blue);
  outline-offset:3px;
}
:where(html.pg-request-a-quote) #quote-form .field-error {
  margin:7px 0 0;
  color:var(--qf-danger);
  font-size:12px;
  font-weight:700;
}
:where(html.pg-request-a-quote) #quote-form input[aria-invalid="true"],
:where(html.pg-request-a-quote) #quote-form select[aria-invalid="true"],
:where(html.pg-request-a-quote) #quote-form textarea[aria-invalid="true"] {
  border-color:var(--qf-danger);
  box-shadow:0 0 0 1px var(--qf-danger);
}
:where(html.pg-request-a-quote) #quote-form .choice input[aria-invalid="true"] {
  box-shadow:none;
}
:where(html.pg-request-a-quote) #quote-form .fieldset-error .choice {
  border-color:var(--qf-danger);
}
:where(html.pg-request-a-quote) #quote-form .form-actions {
  margin-top:22px;
}
:where(html.pg-request-a-quote) #quote-form .btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:0;
  border-radius:999px;
  padding:13px 22px;
  font-weight:700;
  text-decoration:none;
  min-height:48px;
  cursor:pointer;
}
:where(html.pg-request-a-quote) #quote-form .btn-primary:hover {
  transform:none;
}
:where(html.pg-request-a-quote) #quote-form .btn-primary:disabled {
  opacity:.5;
  cursor:not-allowed;
}
:where(html.pg-request-a-quote) #quote-form .privacy {
  font-size:12px;
  color:var(--muted);
  line-height:1.45;
  margin:12px 0 0;
  max-width:620px;
}
:where(html.pg-request-a-quote) #quote-form .privacy a {
  color:var(--blue);
  text-decoration:underline;
}
:where(html.pg-request-a-quote) #quote-form .contact-alt {
  margin-top:18px;
  padding-top:17px;
  border-top:1px solid var(--line);
  font-size:14px;
  color:var(--muted);
}
:where(html.pg-request-a-quote) #quote-form .contact-alt strong {
  color:var(--navy);
}
:where(html.pg-request-a-quote) #quote-form .contact-alt a {
  font-weight:700;
  text-decoration:none;
  color:var(--navy);
  white-space:nowrap;
}
:where(html.pg-request-a-quote) #quote-form .contact-alt a:hover {
  text-decoration:underline;
}
:where(html.pg-request-a-quote) #quote-form .preview-note {
  margin-top:10px;
  font-size:12px;
  color:var(--muted);
}
:where(html.pg-request-a-quote) #quote-form .success {
  display:none;
  margin-top:15px;
  border:1px solid #B8E1D1;
  background:var(--qf-okbg);
  color:var(--qf-ok);
  padding:12px 14px;
  border-radius:10px;
  font-size:14px;
}
:where(html.pg-request-a-quote) #quote-form .success.show {
  display:block;
}
:where(html.pg-request-a-quote) #quote-form .sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  clip-path:inset(50%);
  white-space:nowrap;
  border:0;
}
@media(max-width:640px) {
  :where(html.pg-request-a-quote) #quote-form {
    padding:20px 17px;
    border-radius:14px;
  }
  :where(html.pg-request-a-quote) #quote-form .form-top {
    display:block;
  }
  :where(html.pg-request-a-quote) #quote-form .required {
    margin-top:7px;
  }
  :where(html.pg-request-a-quote) #quote-form .intent-grid,
  :where(html.pg-request-a-quote) #quote-form .action-grid,
  :where(html.pg-request-a-quote) #quote-form .field-grid {
    grid-template-columns:1fr;
  }
  :where(html.pg-request-a-quote) #quote-form .choice:last-child,
  :where(html.pg-request-a-quote) #quote-form .field.full {
    grid-column:auto;
  }
  :where(html.pg-request-a-quote) #quote-form .form-contact-alt .contact-heading {
    display:block;
  }
  :where(html.pg-request-a-quote) #quote-form .form-contact-alt .contact-phones {
    display:block;
  }
  :where(html.pg-request-a-quote) #quote-form .form-contact-alt a {
    white-space:nowrap;
  }
  :where(html.pg-request-a-quote) #quote-form .form-contact-alt .contact-email {
    display:block;
  }
  :where(html.pg-request-a-quote) #quote-form .form-contact-alt .email-separator {
    display:none;
  }
}
@media(max-width:360px) {
  :where(html.pg-request-a-quote) #quote-form .form-contact-alt .contact-phones a {
    display:block;
  }
  :where(html.pg-request-a-quote) #quote-form .form-contact-alt .phone-separator {
    display:none;
  }
}

/* ======================================================================
   Header and primary navigation (continued)
   ====================================================================== */
@media (prefers-reduced-motion: reduce) {
  .btn,
  .nav-dropdown-menu {
    transition:none;
  }
}

/* ======================================================================
   Other page-specific styles
   ====================================================================== */
:where(html:is(.tpl-product,.tpl-overview)) .trust-item:first-child {
  padding-left:0;
}
:where(html:is(.tpl-product,.tpl-overview)) .trust-item:last-child {
  border-right:0;
}
:where(html:is(.tpl-product,.tpl-info)) .intro-grid {
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:72px;
  align-items:start;
}
:where(html:is(.tpl-product,.tpl-info)) .side-note {
  background:var(--pale);
  border:1px solid var(--line);
  border-radius:20px;
  padding:30px;
}
:where(html:is(.tpl-product,.tpl-info)) .side-note li:before {
  content:'✓';
  position:absolute;
  left:0;
  color:var(--blue);
  font-weight:800;
}
:where(html:is(.tpl-product,.tpl-overview)) .section-head {
  display:flex;
  justify-content:space-between;
  gap:48px;
  align-items:end;
  margin-bottom:34px;
}
:where(html:is(.tpl-product,.tpl-info)) .num {
  width:36px;
  height:36px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#F5FAFE;
  color:var(--blue);
  font-weight:800;
  font-size:.78rem;
}
:where(html:is(.tpl-home,.pg-request-a-quote)) .field.full {
  grid-column:1/-1;
}
@media(max-width:980px) {
  :where(html:is(.tpl-product,.tpl-info)) .section-head {
    align-items:start;
    flex-direction:column;
    gap:10px;
  }
}
@media(max-width:640px) {
  :where(html:is(.tpl-home,.pg-request-a-quote)) .field.full {
    grid-column:auto;
  }
}

/* ======================================================================
   Overview pages (Group Benefits, Group Retirement, Flexible Plan Options) (continued)
   ====================================================================== */
@media(max-width:640px) {
  :where(html.tpl-overview) .section-head {
    display:block;
  }
}

/* ======================================================================
   Product pages (continued)
   ====================================================================== */
@media(max-width:980px) {
  :where(html.tpl-product) .hero-grid,
  :where(html.tpl-product) .intro-grid,
  :where(html.tpl-product) .design-grid,
  :where(html.tpl-product) .market-grid,
  :where(html.tpl-product) .faq-grid {
    grid-template-columns:1fr;
  }
}

/* ======================================================================
   Guides, Resources, Other Products, Privacy and Terms (continued)
   ====================================================================== */
@media(max-width:980px) {
  :where(html.tpl-info) .hero-grid,
  :where(html.tpl-info) .intro-grid,
  :where(html.tpl-info) .context-grid {
    grid-template-columns:1fr;
  }
}

/* ======================================================================
   Small utility classes (formerly inline styles)
   ====================================================================== */
.u-w-136 {
  width:136px!important;
}
.u-w-159 {
  width:159px!important;
}
.u-w-112 {
  width:112px!important;
}
.u-w-150 {
  width:150px!important;
}
.u-w-131 {
  width:131px!important;
}
.u-w-88 {
  width:88px!important;
}
.u-w-139 {
  width:139px!important;
}
.u-w-111 {
  width:111px!important;
}
.u-w-124 {
  width:124px!important;
}
.u-w-170 {
  width:170px!important;
}
.u-w-156 {
  width:156px!important;
}
.u-w-92 {
  width:92px!important;
}
.u-w-168 {
  width:168px!important;
}
.u-w-116 {
  width:116px!important;
}
.u-mt-12 {
  margin-top:12px!important;
}
.u-plain-link {
  color:inherit!important;
  font:inherit!important;
  margin:0!important;
  text-decoration:none;
}
.u-muted-text {
  font-weight:400;
  color:var(--muted);
}
.u-mt-20 {
  margin-top:20px;
}
.u-mt-22 {
  margin-top:22px;
}
.u-mt-14 {
  margin-top:14px;
}
.u-mt-30 {
  margin-top:30px;
}
.u-flex-wrap {
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.u-mt-28 {
  margin-top:28px;
}
.u-w-50pct {
  width:50%;
}
.u-w-33pct {
  width:33%;
}
.u-pad-65-0-85 {
  padding:65px 0 85px;
}
.u-scroll-mt-145 {
  scroll-margin-top:145px;
}

/* ======================================================================
   Animations
   ====================================================================== */
@keyframes insurerMarquee{from{transform:translateX(0)}to{transform:translateX(calc(-50% - var(--marquee-half-gap, 11px)))}}

/* ======================================================================
   Forms: spam trap + send result (Contact form)
   ====================================================================== */
.form-website {
  position:absolute;
  left:-10000px;
  width:1px;
  height:1px;
  overflow:hidden;
}
:where(html.pg-contact) .form-status {
  margin:1rem 0 0;
  padding:.8rem 1rem;
  border-radius:11px;
  font-size:.9rem;
  line-height:1.45;
}
:where(html.pg-contact) .form-status[hidden] {
  display:none;
}
:where(html.pg-contact) .form-status.is-success {
  background:var(--white);
  border:1px solid var(--line);
  color:var(--navy);
}
:where(html.pg-contact) .form-status.is-error {
  background:#FEF3F2;
  border:1px solid #FECDCA;
  color:#B42318;
}
:where(html.pg-contact) .form-status:focus {
  outline:none;
}

/* ===============================================================   PROPOSAL (not approved yet): modern fonts + mobile Call / Get a Quote bar
   Fonts are self-hosted (SIL Open Font License, see assets/fonts/).
   ====================================================================== */
@font-face {
  font-family:"Plus Jakarta Sans";
  src:url("fonts/plus-jakarta-sans-latin-wght-normal.woff2") format("woff2");
  font-weight:200 800;
  font-style:normal;
  font-display:swap;
}
@font-face {
  font-family:"Inter";
  src:url("fonts/inter-latin-wght-normal.woff2") format("woff2");
  font-weight:100 900;
  font-style:normal;
  font-display:swap;
}
:root {
  --serif:"Plus Jakarta Sans", Arial, Helvetica, sans-serif;
  --sans:"Inter", Arial, Helvetica, sans-serif;
}
.mobile-cta-bar {
  display:none;
}
@media (max-width:640px) {
  .mobile-cta-bar {
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:60;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    padding:10px 12px calc(10px + env(safe-area-inset-bottom));
    background:var(--white);
    border-top:1px solid var(--line);
    box-shadow:0 -6px 18px rgba(1,61,143,.08);
  }
  .mobile-cta-bar a {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:46px;
    border-radius:999px;
    font:700 15px/1 var(--sans);
    text-decoration:none;
  }
  .mobile-cta-bar .mobile-cta-call {
    border:1.5px solid var(--blue);
    color:var(--navy);
    background:var(--white);
  }
  .mobile-cta-bar .mobile-cta-quote {
    background:var(--navy);
    color:var(--white);
  }
  .mobile-cta-bar svg {
    width:17px;
    height:17px;
    fill:currentColor;
  }
  .mobile-cta-bar a:focus-visible {
    outline:3px solid #0758A8;
    outline-offset:3px;
  }
  /* keep the end of the page clear of the bar */
  body {
    padding-bottom:calc(68px + env(safe-area-inset-bottom));
  }
}
/* PROPOSAL: step-by-step Request a Quote form (assets/quote-form.js adds .is-stepped) */
:where(html.pg-request-a-quote) #quote-form .quote-step-hidden {
  display:none!important;
}
:where(html.pg-request-a-quote) #quote-form .quote-progress {
  margin-bottom:22px;
  scroll-margin-top:110px;
}
:where(html.pg-request-a-quote) #quote-form .quote-progress-label {
  margin:0 0 8px;
  font-size:13px;
  font-weight:800;
  letter-spacing:.03em;
  color:var(--navy);
}
:where(html.pg-request-a-quote) #quote-form .quote-progress-label:focus {
  outline:none;
}
:where(html.pg-request-a-quote) #quote-form .quote-progress-bar {
  height:6px;
  border-radius:999px;
  background:var(--line);
  overflow:hidden;
}
:where(html.pg-request-a-quote) #quote-form .quote-progress-bar span {
  display:block;
  height:100%;
  width:25%;
  border-radius:inherit;
  background:var(--blue);
  transition:width .25s ease;
}
:where(html.pg-request-a-quote) #quote-form .quote-progress[data-step="2"] .quote-progress-bar span { width:50%; }
:where(html.pg-request-a-quote) #quote-form .quote-progress[data-step="3"] .quote-progress-bar span { width:75%; }
:where(html.pg-request-a-quote) #quote-form .quote-progress:is([data-step="4"],[data-step="done"]) .quote-progress-bar span { width:100%; }
:where(html.pg-request-a-quote) #quote-form .quote-step-nav {
  display:flex;
  justify-content:space-between;
  gap:12px;
  margin-top:22px;
}
:where(html.pg-request-a-quote) #quote-form .form-actions > .quote-step-nav {
  display:inline-flex;
  margin:0 10px 0 0;
  vertical-align:top;
}
:where(html.pg-request-a-quote) #quote-form .quote-step-next {
  margin-left:auto;
}
:where(html.pg-request-a-quote) #quote-form .quote-step-back {
  background:var(--white);
  color:var(--navy);
  border:1.5px solid var(--blue);
}
:where(html.pg-request-a-quote) #quote-form .quote-step-back:hover {
  background:var(--pale);
}
:where(html.pg-request-a-quote) #quote-form .quote-step-nav [hidden] {
  display:none;
}
@media (prefers-reduced-motion: reduce) {
  :where(html.pg-request-a-quote) #quote-form .quote-progress-bar span {
    transition:none;
  }
}
.gtm-noscript {
  display:none;
  visibility:hidden;
}
/* PROPOSAL: Group Benefits dropdown: all four groups on one row (Wellness & Support no longer wraps). */
@media (min-width:1161px) {
  .benefits-menu {
    width:940px;
    grid-template-columns:.8fr 1fr 1.35fr 1.25fr;
  }
}
@media (min-width:1161px) and (max-width:1279px) {
  .benefits-menu {
    width:850px;
    gap:16px;
  }
}
/* PROPOSAL: "Clear steps" numbers fill with colour as each step scrolls into view (assets/process-steps.js). */
:where(html.pg-index) .process-steps.is-animated .process-number {
  transition:background-color .45s ease, color .45s ease, transform .45s ease;
}
:where(html.pg-index) .process-steps.is-animated .process-step.is-reached .process-number {
  background:var(--blue);
  color:var(--white);
  transform:scale(1.08);
}
/* desktop: the steps arrive together, so fill them one after another */
@media (min-width:921px) {
  :where(html.pg-index) .process-steps.is-animated .process-step:nth-child(2) .process-number { transition-delay:.25s; }
  :where(html.pg-index) .process-steps.is-animated .process-step:nth-child(3) .process-number { transition-delay:.5s; }
  :where(html.pg-index) .process-steps.is-animated .process-step:nth-child(4) .process-number { transition-delay:.75s; }
  /* the connecting line fills from step 1 to step 4 */
  :where(html.pg-index) .process-steps.is-animated::after {
    content:"";
    position:absolute;
    top:26px;
    left:12.5%;
    width:0;
    height:2px;
    margin-top:-.5px;
    background:var(--blue);
    z-index:0;
    transition:width 1s ease;
  }
  :where(html.pg-index) .process-steps.is-animated.is-started::after {
    width:75%;
  }
}
@media (prefers-reduced-motion: reduce) {
  :where(html.pg-index) .process-steps.is-animated .process-number,
  :where(html.pg-index) .process-steps.is-animated::after {
    transition:none!important;
  }
}
/* ======================================================================
   PROPOSAL: livelier buttons + solid arrow icons (replace the thin "→" text)
   ====================================================================== */
.btn-arrow {
  display:inline-block;
  flex:0 0 auto;
  width:1em;
  height:1em;
  vertical-align:-.14em;
  background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h15M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h15M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat;
  transition:transform .2s ease;
}
.btn-arrow-back {
  transform:scaleX(-1);
}
a:hover > .btn-arrow,
button:hover > .btn-arrow,
a:focus-visible > .btn-arrow,
button:focus-visible > .btn-arrow {
  transform:translateX(4px);
}
a:hover > .btn-arrow-back,
button:hover > .btn-arrow-back,
a:focus-visible > .btn-arrow-back,
button:focus-visible > .btn-arrow-back {
  transform:scaleX(-1) translateX(4px);
}
/* buttons lift on hover and press in on click / tap */
.btn,
.mobile-cta-bar a {
  transition:transform .18s ease, box-shadow .18s ease, background-color .18s ease, color .18s ease, border-color .18s ease;
}
.btn.btn-primary:hover,
:where(html.pg-request-a-quote) #quote-form .btn.btn-primary:hover:not(:disabled) {
  transform:translateY(-2px);
  box-shadow:0 10px 22px rgba(1,61,143,.24);
}
.btn.btn-outline:hover,
.btn.quote-step-back:hover {
  transform:translateY(-2px);
  box-shadow:0 8px 18px rgba(1,61,143,.14);
}
.btn:active,
:where(html.pg-request-a-quote) #quote-form .btn:active,
.mobile-cta-bar a:active {
  transform:translateY(0) scale(.97);
  box-shadow:none;
}
@media (prefers-reduced-motion: reduce) {
  .btn,
  .btn-arrow,
  .mobile-cta-bar a {
    transition:none;
  }
  .btn:hover,
  .btn:active,
  :where(html.pg-request-a-quote) #quote-form .btn:hover,
  :where(html.pg-request-a-quote) #quote-form .btn:active,
  .mobile-cta-bar a:active {
    transform:none;
  }
  a:hover > .btn-arrow,
  button:hover > .btn-arrow,
  a:focus-visible > .btn-arrow,
  button:focus-visible > .btn-arrow {
    transform:none;
  }
  a:hover > .btn-arrow-back,
  button:hover > .btn-arrow-back {
    transform:scaleX(-1);
  }
}
/* ======================================================================
   PROPOSAL: card hover, icon drawing, FAQ +/× (assets/motion.js)
   ====================================================================== */
.card,
.principle-card,
.ret-item {
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.card:hover,
.principle-card:hover,
.ret-item:hover {
  transform:translateY(-4px);
  border-color:#B9D6EE;
  box-shadow:0 14px 32px rgba(1,61,143,.12);
}
.card svg,
.principle-card svg,
.ret-item svg {
  transition:color .22s ease, transform .22s ease;
}
.card:hover svg,
.principle-card:hover svg,
.ret-item:hover svg {
  color:var(--accent);
  transform:scale(1.06);
}
.icon-draw path,
.icon-draw circle,
.icon-draw rect,
.icon-draw line,
.icon-draw polyline,
.icon-draw polygon,
.icon-draw ellipse {
  transition:stroke-dashoffset 2s ease-in-out;
}
/* FAQ: the + turns into × when open (instead of switching to –) */
:where(html:is(.tpl-product,.tpl-overview)) details summary:after {
  transition:transform .26s ease;
}
:where(html:is(.tpl-product,.tpl-overview)) details[open] summary:after {
  content:'+';
  transform:rotate(45deg);
}
@media (prefers-reduced-motion: reduce) {
  .card, .principle-card, .ret-item, .card svg, .principle-card svg, .ret-item svg,
  :where(html:is(.tpl-product,.tpl-overview)) details summary:after {
    transition:none;
  }
  .card:hover, .principle-card:hover, .ret-item:hover,
  .card:hover svg, .principle-card:hover svg, .ret-item:hover svg {
    transform:none;
  }
}
/* PROPOSAL: Contact form privacy notice link */
:where(html.pg-contact) .contact-form-note a {
  color:var(--blue);
  font-weight:600;
  text-decoration:underline;
  text-underline-offset:3px;
}
/* PROPOSAL: button labels stay on one line. The wider fonts and the arrow made
   "Request a Quote", "Talk to an Advisor" etc. wrap in narrow button columns. */
.btn {
  white-space:nowrap;
  flex-shrink:0;
}
/* Home "Explore…" buttons: one per row below 900px, and no indent on small phones,
   so the one-line labels fit their column. */
@media (max-width:900px) {
  :where(html.pg-index) .home-category-actions {
    grid-template-columns:1fr;
    row-gap:18px;
  }
}
@media (max-width:480px) {
  :where(html.pg-index) .home-category-actions .btn {
    margin-left:0;
  }
}
/* PROPOSAL (Brian 2026-11-03, items 3-6): on phones, slightly tighter letter spacing so these
   longer eyebrows stay on one line. Same font size; only these four labels. */
@media (max-width:413px) {
  .eyebrow.eyebrow-fit {
    letter-spacing:.1em;
  }
}
/* Dental tag (item 1): on the smallest phones, a little less side padding so it stays on one line;
   if a phone is narrower still, it breaks into two even lines rather than 3 words + 1. */
@media (max-width:359px) {
  :where(html.pg-dental) .dental-card .badge {
    padding-left:.6rem;
    padding-right:.6rem;
    gap:.4rem;
  }
}
:where(html.pg-dental) .dental-card .badge,
.eyebrow.eyebrow-fit {
  text-wrap:balance;
}
/* Smallest phones: "Independent" in the About title is wider than the screen at the normal size. */
@media(max-width:359px) {
  :where(html.pg-about) .hero h1 {
    font-size:14vw;
  }
}
/* Smallest phones (includes iPhones on Display Zoom, 320px wide): long product titles ran to 8 lines at 48px. */
@media(max-width:359px) {
  :where(html:is(.tpl-product,.tpl-info,.tpl-overview)) .hero h1 {
    font-size:12vw;
  }
}
/* Below 400px the longest button labels (kept on one line) would push the page past the screen. */
@media(max-width:399px) {
  main .btn {
    padding-left:.9rem;
    padding-right:.9rem;
    font-size:clamp(.8rem,3.9vw,1rem);
    max-width:100%;
  }
}
/* Tablets: every page title the same size (the product page size). */
@media(min-width:641px) and (max-width:1180px) {
  .hero h1,
  .contact-hero h1,
  .guide-hero h1,
  .privacy-hero h1,
  .quote-copy h1 {
    font-size:3.15rem;
    line-height:1.14;
  }
}
/* Desktop: every page title the same size (agreed with Brian, November 2026). */
@media(min-width:1181px) {
  .hero h1,
  .contact-hero h1,
  .guide-hero h1,
  .privacy-hero h1,
  .quote-copy h1 {
    font-size:3.5rem;
    line-height:1.14;
  }
}
/* ======================================================================
   Site-wide consistency: the shared values every page uses. Keep this block last.
   ====================================================================== */
/* Banner text: same size and colour on every page. */
main .hero .hero-copy > p,
.contact-hero-copy > p,
.resources-hero-copy > p,
.guide-hero .container > p,
html body main .quote-copy > p {
  font-size:1.14rem;
  line-height:1.55;
  color:#536985;
}
/* Buttons: one height. */
main .btn {
  height:54px;
  padding-top:0;
  padding-bottom:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
@media(min-width:400px) {
  main .btn {
    font-size:1rem;
  }
}
@media(min-width:981px) {
  /* Banner text starts the same distance down on every page, however tall the card beside it. */
  main .hero .hero-copy {
    padding-top:66px;
    padding-bottom:58px;
    justify-content:flex-start;
  }
  main .contact-hero-inner,
  main .quote-grid {
    padding-top:66px;
    padding-bottom:58px;
    align-items:start;
  }
  main .quote-copy,
  main .contact-hero-copy {
    padding-top:0;
    align-self:start;
  }
  main .guide-hero,
  main .privacy-hero {
    padding-top:66px;
    padding-bottom:58px;
  }
  main .resources-hero-grid {
    align-items:start;
  }
  main .resources-hero-copy {
    align-self:start;
    margin-top:0;
    padding-top:0;
  }
  /* Section headings: one size per level. */
  html body main .section-title.section-title {
    font-size:3.2rem;
    line-height:1.03;
  }
  html body main .small-title.small-title {
    font-size:2.4rem;
  }
  /* Closing blue band heading. */
  .cta-inner h2 {
    font-size:2rem;
    line-height:1.15;
  }
}
/* Tablets and phones: same idea, smaller sizes. */
@media(max-width:980px) {
  html body main .section-title.section-title {
    font-size:2.2rem;
  }
  html body main .small-title.small-title {
    font-size:1.8rem;
  }
  .cta-inner h2 {
    font-size:2rem;
  }
}
@media(max-width:640px) {
  .cta-inner h2 {
    font-size:1.6rem;
  }
}
