﻿/*
 * theme.css: brand overrides and new components for the cyber UMA site.
 * Loaded after base.css. Brand navy #002F5D comes from the supplied logo.
 */
:root {
  --brand-navy: #002f5d;
  --brand-navy-dark: #00244a;
  --brand-navy-light: #3a6694;
  --brand-tint: #e9eff6;
  --brand-gold: #f2b33d; /* umbrella panel colour in the logo; accent only, use sparingly */
  --ph-bg: #fff4cc;
  --ph-border: #b38600;
  --ph-text: #5c4400;
}

html, body { background: #fff; }

/* ---------- Placeholders: every [TODO]/[COMPANY NAME]/[CARRIER NAME] renders like this ---------- */
.ph {
  background: var(--ph-bg);
  color: var(--ph-text) !important;
  outline: 1px dashed var(--ph-border);
  border-radius: 3px;
  padding: 0 .25em;
  font-style: normal;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}
footer .ph, .styles-module--bgOrange--e09f0 .ph, .pg-button-module--pgButtonPrimary--a226c .ph { background: #fff4cc; color: #5c4400 !important; }

/* ---------- Accessibility ---------- */
.skip-link { position: absolute; left: -9999px; top: 8px; z-index: 10000; background: #fff; color: var(--brand-navy); padding: 8px 14px; border-radius: 4px; }
.skip-link:focus { left: 8px; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible {
  outline: 2px solid var(--brand-navy); outline-offset: 2px;
}

/* ---------- White text on navy surfaces (the reference design used dark text on orange) ---------- */
th, th * { mix-blend-mode: normal !important; }
.styles-module--bgOrange--e09f0.styles-module--bgOrange--e09f0.styles-module--bgOrange--e09f0 * { color: #fff !important; }
.styles-module--bgOrange--e09f0, .styles-module--bgOrange--e09f0 *,
.pg-button-module--pgButtonPrimary--a226c, .pg-button-module--pgButtonPrimary--a226c *,
.pg-button-module--pgButtonSecondary--d69c3:active, .pg-button-module--pgButtonSecondary--d69c3:active *,
th, th *,
.index-module--typeCardActive--cb09a, .index-module--typeCardActive--cb09a *,
.index-module--typeCard--782e6:focus, .index-module--typeCard--782e6:focus *,
.index-module--typeCardHovered--2f68e, .index-module--typeCardHovered--2f68e * {
  color: #fff !important;
}
.pg-button-module--pgButtonPrimary--a226c img,
.pg-button-module--pgButtonSecondary--d69c3:active img { filter: brightness(0) invert(1); }
.pg-button-module--pgButtonSecondary--d69c3 { text-decoration: none; }

/* ---------- Hand-drawn underline strokes: animate in when visible ---------- */
.u-stroke { width: 100% !important; max-width: none !important; height: 14px !important; }
.u-stroke path, .u-stroke-group path { stroke-dasharray: 3500; stroke-dashoffset: 3500; transition: stroke-dashoffset 1.8s ease-in-out .3s; }
.u-stroke.is-drawn path, .u-stroke-group.is-drawn path { stroke-dashoffset: 0; }
.no-js .u-stroke path, .no-js .u-stroke-group path { stroke-dashoffset: 0; }
@media (prefers-reduced-motion: reduce) {
  .u-stroke path, .u-stroke-group path { stroke-dashoffset: 0 !important; transition: none !important; }
}

/* ---------- Header ---------- */
.site-logo { width: auto !important; height: 56px !important; }
.site-logo-footer { aspect-ratio: auto !important; width: auto !important; height: 88px !important; }
.index-module--styled-link--69490[aria-current="page"] { box-shadow: inset 0 -3px 0 0 var(--brand-navy); }
@media only screen and (min-width: 1024px) and (max-width: 1279px) {
  .index-module--funnelCtaButton--06a44 span:first-child { font-size: 14px; }
  .index-module--smallTextDesktop--329f3, .index-module--smallTextDesktop--329f3 p { font-size: 14px; }
}
/* Mobile menu open state (the reference build toggled this with inline styles) */
@media only screen and (max-width: 1023px) {
  .index-module--mobile-menu-icon--491bd { background: none; border: 0; padding: 4px; cursor: pointer; }
  .nav-open .index-module--menu-items--77bed { opacity: 1; transform: none; visibility: visible; z-index: 998; }
  .index-module--product--f7107.submenu-open [data-cssid=submenu] { opacity: 1; transform: none; visibility: visible; }
  .index-module--back-to-home--9c543 { display: flex; align-items: center; gap: 8px; background: none; border: 0; padding: 8px 0 16px; cursor: pointer; font: inherit; }
  .index-module--hide-on-desktop--0c45a { display: initial; }
  body.nav-open { overflow: hidden; }
}
@media only screen and (max-width: 420px) {
  .site-logo { height: 44px !important; }
  .index-module--funnelCtaButton--06a44 { padding: 8px 12px !important; white-space: nowrap; }
  .index-module--funnelCtaButton--06a44 span:first-child { font-size: 13px; }
}
@media only screen and (min-width: 1024px) {
  .js-mega-back { display: none !important; }
  /* Plain nav links need the same side spacing the mega-menu triggers get */
  .index-module--product-desktop-view--479f3 { padding-left: var(--space-4); padding-right: var(--space-4); }
  /* Four proof points on one row */
  .styles-module--expertiseGrid--0676b { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-8); }
}
@media only screen and (min-width: 768px) and (max-width: 1023px) {
  .styles-module--expertiseGrid--0676b { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* The reference design's secondary green is re-mapped to the brand navy family everywhere */
:root { --pg-color-green: #00244a; }

/* Cover-type list: show every card instead of a 560px scroll box */
.index-module--typesCards--71c35 { max-height: none !important; overflow: visible !important; }

/* CTA band: button sits vertically centred where the reference had a calculator */
@media only screen and (min-width: 768px) {
  .index-module--calculatorInner--69660 { align-items: center; justify-content: space-between; }
  .index-module--calculatorInner--69660 .banner-cta-action { margin-top: 0; flex-shrink: 0; }
}

/* ---------- Home hero ---------- */
.hero-sub {
  font-family: var(--pg-font-sans); color: var(--pg-text-main);
  font-size: 17px; line-height: 1.55; margin: 16px 0 0; max-width: 560px;
}
@media only screen and (min-width: 1024px) { .hero-sub { font-size: 19px; } }
.styles-module--headline--8816a { text-wrap: balance; }
.styles-module--heroImage--edb89 { object-fit: cover; width: 100%; height: 100%; }
/* Narrow white tile in the "What we actually look at" mosaic: compact sans text like the light-blue tiles */
.styles-module--testimonialCard--86d4d.tile-compact .styles-module--quote--ab78c {
  font-family: var(--pg-font-sans) !important;
  font-size: var(--pg-type-mobile-para-size) !important;
  line-height: var(--pg-type-mobile-para-lineheight) !important;
}

/* Underwriter section: three short features in place of the numeric stats row */
.stats-features { display: grid !important; grid-template-columns: 1fr; gap: 20px; }
@media only screen and (min-width: 768px) { .stats-features { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; } }
.stats-features .styles-module--statItem--ddd9b { min-width: 0; }
.stat-feature-title { font-family: var(--pg-font-sans); font-weight: 700; font-size: 18px; line-height: 1.3; color: #fff; margin-bottom: 6px; }
.stats-features .styles-module--statLabel--a4217 {
  font-family: var(--pg-font-sans); font-size: 15px !important; line-height: 1.5 !important; font-weight: 400 !important;
  color: rgba(255,255,255,.85); overflow-wrap: break-word;
}
/* Underline on the dark navy band: gold accent from the logo so it reads against navy */
.styles-module--trustedWrapper--9f25c .u-stroke path { stroke: var(--brand-gold); }
/* Multi-word italic emphasis may wrap onto two lines on small screens */
.styles-module--trustedWrapper--9f25c { display: inline; }
@media only screen and (min-width: 768px) { .styles-module--trustedWrapper--9f25c { display: inline-block; } }

/* Brokers section photo: rounded like the design's other feature images */
.brokers-photo { width: 100%; height: auto; display: block; border-radius: 12px; object-fit: cover; object-position: 55% 50%; }

/* Underwriter section photo: keep both faces in frame when cropped */
.underwriting-photo { object-fit: cover; object-position: 55% 35%; width: 100%; height: 100%; }

/* Keep both people in frame when the hero crops (subjects sit centre-right in the photo) */
.home-hero-photo { object-position: 62% 35%; }

/* Product/inner hero */
.index-module--heroImage--f754a { width: 100%; height: 100%; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.hero-hotline { margin-top: 16px; font-weight: 600; font-family: var(--pg-font-sans); }
.hero-hotline a, .callout a[href^="tel:"], .article-list a[href^="tel:"] { color: var(--brand-navy); text-decoration: underline; text-underline-offset: 2px; white-space: nowrap; }

/* Image placeholders fill whatever frame the reference layout gives them */
img[src*="/placeholders/"] { object-fit: cover; background: var(--brand-tint); }
.styles-module--videoImage--ab529 { width: 100%; height: 100%; object-fit: cover; }
.article-hero-image { width: 100%; height: auto; border-radius: 12px; display: block; }

/* Centered CTA band */
.banner-cta-action { display: flex; justify-content: center; margin-top: 24px; }
.index-module--calculatorInner--69660 { padding-bottom: 48px; }

/* Lists inside split sections */
.check-list { list-style: none; padding: 0; margin: 16px 0 20px; display: grid; gap: 10px; }
.check-list li {
  position: relative; padding-left: 30px; font-family: var(--pg-font-sans); line-height: 1.5; color: var(--pg-text-main);
}
.check-list li::before {
  content: ""; position: absolute; left: 0; top: 3px; width: 18px; height: 18px; border-radius: 50%;
  background: var(--brand-navy) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='m5 9.5 2.5 2.5L13 6.5' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/18px no-repeat;
}
.text-link, .article-body a, .related-links a, .reg-panel a, .intake-form a { color: var(--brand-navy); text-decoration: underline; text-underline-offset: 2px; }
.article-body a.pg-button-module--pgButton--a1665 { color: #fff; text-decoration: none; }

/* Steps: five-up variant */
@media only screen and (min-width: 1024px) {
  .index-module--stepsGrid--051b7.steps-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
.index-module--cardIcon--b2440 svg { display: block; }

/* Related links / notes */
.related-links { padding: 8px 0 48px; }
.related-links h2 { font-family: var(--pg-font-serif); font-size: 28px; font-weight: 500; margin: 0 0 16px; grid-column: 1/-1; }
.related-links ul { grid-column: 1/-1; list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 10px 16px; }
.related-links li a {
  display: inline-block; padding: 10px 16px; border: 1px solid var(--brand-navy); border-radius: 999px;
  text-decoration: none; font-family: var(--pg-font-sans); font-weight: 500;
}
.related-links li a:hover { background: var(--brand-navy); color: #fff; }
.page-note { padding: 0 0 40px; }
.page-note p { grid-column: 1/-1; font-family: var(--pg-font-sans); font-size: 14px; color: var(--mortar-colors-gray500, #555); margin: 0; }

/* ---------- Article pages ---------- */
.article-body { padding-bottom: 64px; }
.article-list { margin: 0 0 24px; padding-left: 22px; font-family: var(--pg-font-sans); line-height: 1.6; color: var(--pg-text-main); }
.article-list li { margin-bottom: 8px; list-style: disc; }
.article-list.ordered li { list-style: decimal; }
.callout { border-radius: 10px; padding: 16px 20px; margin: 0 0 24px; font-family: var(--pg-font-sans); line-height: 1.55; }
.callout-note { background: var(--brand-tint); border-left: 4px solid var(--brand-navy); }
.callout-alert { background: #fdecec; border-left: 4px solid #b11313; }
.callout-todo { background: var(--ph-bg); border: 1px dashed var(--ph-border); }
.embed-cta { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.meta-row { display: flex; flex-wrap: wrap; gap: 24px 40px; }
.index-module--authorCard--2b047 { margin-bottom: 32px; }

/* Resources guide hero: reuses the closing-CTA section; adjustments for a top-of-page hero */
.resource-hero .index-module--container--89d03 { flex-direction: column; }            /* <768: text, then image */
.resource-hero .index-module--imageWrapper--b64e3 { height: auto !important; aspect-ratio: 5 / 4; background: none; }
.resource-hero .index-module--image--a494f { width: 100%; height: 100%; object-fit: cover; }
.resource-hero .index-module--savingWrapper--1689c { white-space: nowrap; }
@media only screen and (min-width: 768px) {
  .resource-hero .index-module--container--89d03 { flex-direction: row; align-items: center; }
}
@media only screen and (min-width: 1176px) {
  .resource-hero .index-module--imageWrapper--b64e3 { max-width: 560px; margin-left: auto; }
}
/* Split hero: full-bleed 50/50 band (text left on off-white, image edge to edge right), like Sign In */
.split-hero {
  --header-h: 82px;
  display: grid; grid-template-columns: 1fr 1fr;
  min-height: min(calc(100vh - var(--header-h)), 760px);
  background: var(--pg-color-light-beige, #f5f3f1);
  margin-bottom: 48px;
}
@media only screen and (min-width: 1176px) { .split-hero { --header-h: 96px; } }
.split-hero-panel { display: flex; align-items: center; justify-content: center; padding: 64px 32px; min-width: 0; }
.split-hero-inner { width: 100%; max-width: 560px; font-family: var(--pg-font-sans); color: var(--pg-text-main); display: flex; flex-direction: column; align-items: flex-start; gap: 20px; }
.split-hero-title {
  font-family: var(--pg-font-serif); font-weight: 500; margin: 0;
  font-size: var(--pg-type-desktop-h2-size); line-height: var(--pg-type-desktop-h2-lineheight); text-wrap: balance;
}
.split-hero-lead { margin: 0; font-size: var(--pg-type-para-size); line-height: var(--pg-type-para-lineheight); }
.split-hero-image { position: relative; overflow: hidden; background: var(--brand-tint); }
.split-hero-image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: 0; }
/* Illustrations: show the whole drawing on its own paper colour rather than cropping it */
.split-hero-image:has(img.is-contain) { background: #f2f1ed; }
.split-hero-image img.is-contain { object-fit: contain; padding: 32px; box-sizing: border-box; }
@media only screen and (max-width: 899px) {
  .split-hero { grid-template-columns: 1fr; min-height: 0; }
  .split-hero-panel { padding: 48px 20px 40px; }
  .split-hero-title { font-size: var(--pg-type-mobile-h2-size); line-height: var(--pg-type-mobile-h2-lineheight); }
  .split-hero-image { aspect-ratio: 5 / 4; max-height: 480px; width: 100%; }
}

.hotline-cta { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.hotline-number { margin: 0; font-family: var(--pg-font-sans); font-weight: 600; color: var(--pg-text-main); font-size: 16px; }

/* Legal pages */
.legal-hero { padding: 48px 0 24px; }
.legal-hero h1 { grid-column: 1/-1; font-family: var(--pg-font-serif); font-weight: 500; font-size: 40px; margin: 0 0 8px; }
.legal-hero p { grid-column: 1/-1; font-family: var(--pg-font-sans); font-size: 18px; margin: 0; }
.legal-body { grid-column: 1/-1; max-width: 820px; }

/* ---------- About: team & regulatory ---------- */
.team-section { padding: 64px 0 32px; }
.team-title { grid-column: 1/-1; font-family: var(--pg-font-serif); font-weight: 500; font-size: 36px; margin: 0 0 32px; }
.team-grid { grid-column: 1/-1; display: grid; gap: 24px; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.team-card { background: var(--pg-color-light-beige, #f5f3f1); border-radius: 12px; padding: 16px; font-family: var(--pg-font-sans); }
.team-photo { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 20%; border-radius: 8px; display: block; margin-bottom: 12px; }
.team-card h3 { margin: 0 0 4px; font-size: 18px; }
.team-role { margin: 0 0 8px; font-weight: 600; color: var(--brand-navy); }
.reg-panel { padding: 32px 0 64px; font-family: var(--pg-font-sans); }
.reg-panel h2 { grid-column: 1/-1; font-family: var(--pg-font-serif); font-weight: 500; font-size: 32px; margin: 0 0 16px; }
.reg-panel dl { grid-column: 1/-1; display: grid; grid-template-columns: minmax(140px, 220px) 1fr; gap: 12px 24px; margin: 0;
  background: var(--brand-tint); border-radius: 12px; padding: 24px; }
.reg-panel dt { font-weight: 600; }
.reg-panel dd { margin: 0; }
@media (max-width: 600px) { .reg-panel dl { grid-template-columns: 1fr; } .reg-panel dd { margin-bottom: 8px; } }

/* ---------- Forms (risk check, self-check) ---------- */
.intake-form, .self-check { font-family: var(--pg-font-sans); color: var(--pg-text-main); }
.form-section { border: 0; padding: 0; margin: 0 0 40px; }
.section-title { font-family: var(--pg-font-serif); font-weight: 500; font-size: 26px; margin: 0 0 8px; padding: 0; }
.section-help { margin: 0 0 16px; color: var(--mortar-colors-gray500, #555); }
.field-grid { display: grid; gap: 16px 20px; grid-template-columns: 1fr; }
@media (min-width: 720px) { .field-grid { grid-template-columns: 1fr 1fr; } .field.span-2 { grid-column: 1/-1; } }
.field { display: flex; flex-direction: column; gap: 6px; border: 0; padding: 0; margin: 0 0 16px; min-width: 0; }
.field label, .field legend { font-weight: 600; font-size: 15px; padding: 0; }
.field-hint { font-size: 13px; color: var(--mortar-colors-gray500, #555); }
.req { color: #b11313; }
.field input[type=text], .field input[type=email], .field input[type=tel], .field input[type=date], .field select, .field textarea {
  font: inherit; font-size: 16px; padding: 12px 14px; border: 1px solid #b9c3cf; border-radius: 8px; background: #fff; color: inherit; width: 100%; box-sizing: border-box;
}
.field select { appearance: none; background: #fff url("../img/icons/select-arrow.svg") right 14px center/12px no-repeat; padding-right: 40px; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--brand-navy); box-shadow: 0 0 0 3px rgba(0,47,93,.15); outline: none; }
.field.invalid input, .field.invalid select, .field.invalid textarea, fieldset.invalid .choices { border-color: #b11313; box-shadow: 0 0 0 2px rgba(177,19,19,.15); border-radius: 8px; }
.field-error { font-size: 13px; font-weight: 500; color: #b11313; }
.field-error.is-warn { color: var(--ph-text); }

/* Brokerage picker (searchable list with "add new" pinned at the top) */
.combo-box { position: relative; }
.field .combo-box input { font: inherit; font-size: 16px; padding: 12px 40px 12px 14px; border: 1px solid #b9c3cf; border-radius: 8px; width: 100%; box-sizing: border-box;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23002f5d' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='8.5' cy='8.5' r='5.5'/%3E%3Cpath d='m13 13 4 4'/%3E%3C/svg%3E") right 14px center/16px no-repeat; color: inherit; }
.field .combo-box input:focus { border-color: var(--brand-navy); box-shadow: 0 0 0 3px rgba(0,47,93,.15); outline: none; }
.field.invalid .combo-box input { border-color: #b11313; }
.combo-list {
  position: absolute; z-index: 20; left: 0; right: 0; top: calc(100% + 4px); margin: 0; padding: 4px 0; list-style: none;
  max-height: 300px; overflow-y: auto; background: #fff; border: 1px solid #b9c3cf; border-radius: 8px; box-shadow: 0 8px 24px rgba(0,36,74,.14);
}
.combo-option { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 10px 14px; cursor: pointer; font-size: 15px; line-height: 1.35; }
.combo-option.is-active, .combo-option:hover { background: var(--brand-tint); }
.combo-option-new { position: sticky; top: -4px; background: #fff; font-weight: 600; color: var(--brand-navy); border-bottom: 1px solid #e3e7ec; }
.combo-meta { flex-shrink: 0; font-size: 12px; color: var(--mortar-colors-gray500, #555); }
.combo-empty { padding: 10px 14px; font-size: 14px; color: var(--mortar-colors-gray500, #555); }
.combo-new { margin: 0; font-size: 13px; color: var(--brand-navy); font-weight: 500; }
@media (max-width: 480px) { .combo-meta { display: none; } }

.choices { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.intake-form label.choice, .self-check label.choice { padding: 10px 14px; font-size: 15px; font-weight: 400; }
.intake-form .consent label.choice { padding: 4px 0; }
.choice { display: inline-flex; align-items: flex-start; gap: 8px; padding: 10px 14px; border: 1px solid #b9c3cf; border-radius: 8px; background: #fff; cursor: pointer; line-height: 1.4; font-weight: 400; }
.choice:has(input:checked) { border-color: var(--brand-navy); background: var(--brand-tint); }
.choice input { accent-color: var(--brand-navy); margin-top: 3px; }
.choices-large .choice { flex: 1 1 260px; padding: 16px 18px; }
.consent .choice { display: flex; margin-bottom: 10px; border: 0; padding: 4px 0; background: none; }
.form-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; margin-top: 8px; }
.form-actions button { border: 0; cursor: pointer; font: inherit; }
.form-note { font-size: 14px; color: var(--mortar-colors-gray500, #555); margin: 0; }
.form-status { margin-top: 20px; padding: 16px 20px; border-radius: 10px; background: var(--brand-tint); border-left: 4px solid var(--brand-navy); }
.form-status.error { background: #fdecec; border-left-color: #b11313; }

/* Self-check */
.sc-question { border: 0; border-bottom: 1px solid #e3e7ec; padding: 0 0 18px; margin: 0 0 18px; }
.sc-question legend { font-weight: 500; font-size: 17px; line-height: 1.45; margin-bottom: 10px; padding: 0; }
.sc-cat { display: block; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--brand-navy-light); font-weight: 600; margin-bottom: 4px; }
.sc-result { margin: 24px 0 32px; padding: 24px; border-radius: 12px; background: var(--brand-tint); }
.sc-band { font-family: var(--pg-font-serif); font-size: 28px; margin: 0 0 12px; color: var(--brand-navy); }
.sc-meter { height: 10px; border-radius: 99px; background: #fff; overflow: hidden; margin-bottom: 16px; }
.sc-meter span { display: block; height: 100%; width: 0; background: var(--brand-navy); transition: width .8s ease; }

/* Sign-in: full-height 50/50 split (content left, image right) */
.signin-split {
  --header-h: 82px;
  display: grid; grid-template-columns: 1fr 1fr;
  min-height: calc(100vh - var(--header-h));
  background: var(--pg-color-light-beige, #f5f3f1);
}
@media only screen and (min-width: 1176px) { .signin-split { --header-h: 96px; } }
.signin-panel { display: flex; align-items: center; justify-content: center; padding: 48px 32px; }
.signin-inner { width: 100%; max-width: 420px; font-family: var(--pg-font-sans); color: var(--pg-text-main); }
.signin-title {
  font-family: var(--pg-font-serif); font-weight: 500; margin: 0 0 12px;
  font-size: var(--pg-type-desktop-h2-size); line-height: var(--pg-type-desktop-h2-lineheight);
}
.signin-lead { margin: 0 0 28px; font-size: var(--pg-type-para-size); line-height: var(--pg-type-para-lineheight); }
.signin-image { position: relative; overflow: hidden; background: var(--brand-tint); }
.signin-image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: 0; }

.segmented { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--brand-navy); border-radius: 8px; overflow: hidden; margin-bottom: 12px; }
.segmented label { margin: 0; cursor: pointer; }
.segmented input { position: absolute; opacity: 0; pointer-events: none; }
.segmented span { display: block; text-align: center; padding: 11px 12px; font-weight: 600; font-size: 15px; color: var(--brand-navy); background: #fff; transition: background .15s, color .15s; }
.segmented label + label span { border-left: 1px solid var(--brand-navy); }
.segmented input:checked + span { background: var(--brand-navy); color: #fff; }
.segmented input:focus-visible + span { outline: 2px solid var(--brand-navy); outline-offset: -4px; }
.signin-helper { margin: 0 0 24px; font-size: 14px; color: var(--mortar-colors-gray500, #555); min-height: 2.6em; }
.signin-form .field { margin-bottom: 16px; }
.signin-form .field input { font: inherit; font-size: 16px; padding: 12px 14px; border: 1px solid #b9c3cf; border-radius: 8px; background: #fff; width: 100%; box-sizing: border-box; }
.signin-form .field input:focus { border-color: var(--brand-navy); box-shadow: 0 0 0 3px rgba(0,47,93,.15); outline: none; }
.signin-form .field.invalid input { border-color: #b11313; }
.signin-forgot { display: inline-block; margin: -4px 0 24px; font-size: 14px; color: var(--brand-navy); text-decoration: underline; text-underline-offset: 2px; }
.signin-submit { width: 100%; justify-content: center; border: 0; cursor: pointer; font: inherit; }
.signin-links { margin-top: 28px; font-size: 14px; color: var(--mortar-colors-gray500, #555); }
.signin-links p { margin: 0 0 8px; }
.signin-links a { color: var(--brand-navy); text-decoration: underline; text-underline-offset: 2px; }
.signin-links a[href^="tel:"] { white-space: nowrap; }

@media only screen and (max-width: 899px) {
  .signin-split { grid-template-columns: 1fr; }
  .signin-image { display: none; }
  .signin-panel { padding: 48px 20px; }
  .signin-title { font-size: var(--pg-type-mobile-h2-size); line-height: var(--pg-type-mobile-h2-lineheight); }
}

/* ---------- Risk check ---------- */
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.rc-page { --rc-line: #d5dce4; --rc-muted: #5b6672; --rc-prefill: #eaf2fb; font-family: var(--pg-font-sans); color: var(--pg-text-main); }
/* The long form scrolls under the header; nothing adds the header's "scrolled" state, so keep it opaque here */
body:has(.rc-page) .index-module--top-navigation--c1f77 { background: var(--pg-color-white, #fff); }
.rc-container { max-width: 1280px; margin: 0 auto; padding: 0 24px; box-sizing: border-box; }

/* Part 1: intro and path choice, in a section like the others on the site */
.rc-hero { padding: 40px 0 32px; }
.rc-hero-box {
  display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center;
  background: var(--pg-color-light-beige, #f7f5f3); border-radius: 12px; padding: 64px 48px;
}
.rc-hero-text { min-width: 0; }
.rc-title {
  font-family: var(--pg-font-serif); font-weight: 500; margin: 0 0 16px;
  font-size: var(--pg-type-desktop-h2-size); line-height: var(--pg-type-desktop-h2-lineheight);
}
.rc-lead { margin: 0 0 20px; font-size: var(--pg-type-para-size); line-height: var(--pg-type-para-lineheight); max-width: 540px; }
.riskcheck-assure { list-style: none; padding: 0; margin: 0 0 32px; display: flex; flex-wrap: wrap; gap: 8px 20px; font-size: 14px; font-weight: 500; }
.riskcheck-assure li { position: relative; padding-left: 22px; line-height: 1.5; }
.riskcheck-assure li::before {
  content: ""; position: absolute; left: 0; top: 3px; width: 15px; height: 15px; border-radius: 50%;
  background: var(--brand-navy) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='m5 9.5 2.5 2.5L13 6.5' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/15px no-repeat;
}
.rc-hero .path-toggle { margin: 0; }
.rc-hero .path-toggle .section-title { font-size: 24px; margin-bottom: 12px; }
.rc-hero .choices-large { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.rc-hero .choices-large .choice { padding: 16px 18px; font-size: 15px; transition: border-color .15s, background-color .15s; }
.rc-hero .choices-large .choice:hover { border-color: var(--brand-navy-light); }
.rc-hero .choices-large .choice strong { color: var(--brand-navy); }
.rc-hero-image { aspect-ratio: 5 / 4; border-radius: 12px; overflow: hidden; background: var(--brand-tint); }
.rc-hero-image img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 60% 62%; }

/* Part 2: the form, laid out like an underwriting tool */
.rc-form-section { padding: 8px 0 80px; scroll-margin-top: 96px; }
@media only screen and (min-width: 1176px) { .rc-form-section { scroll-margin-top: 110px; } }
.rc-panel {
  background: #fff; border: 1px solid #e3e7ec; border-radius: 12px;
  box-shadow: 0 1px 2px rgba(0,36,74,.05), 0 12px 32px rgba(0,36,74,.08);
}
.rc-panel a { color: var(--brand-navy); }

/* Stepper: numbered circles on a thin line, names underneath */
.rc-stepper { padding: 32px 32px 8px; }
.rc-stepper-inner { position: relative; }
.rc-track { position: absolute; top: 17px; left: 12.5%; right: 12.5%; height: 2px; background: #dfe4ea; }
.rc-track-fill { display: block; height: 100%; width: 0; background: var(--brand-navy); transition: width .3s ease; }
.rc-tabs { position: relative; list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); }
.rc-tab {
  position: relative; width: 100%; display: flex; flex-direction: column; align-items: center; gap: 10px;
  background: none; border: 0; margin: 0; padding: 0 6px; font: inherit; cursor: default; color: var(--rc-muted);
}
.rc-dot {
  width: 36px; height: 36px; box-sizing: border-box; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  background: #fff; border: 2px solid #c9d1da; color: #8a949e; font-size: 15px; font-weight: 600;
  transition: background-color .2s, border-color .2s, color .2s;
}
.rc-tab-name { font-size: 14px; font-weight: 500; line-height: 1.3; text-align: center; }
.rc-tab.is-active .rc-dot { background: var(--brand-navy); border-color: var(--brand-navy); color: #fff; }
.rc-tab.is-active .rc-tab-name { color: var(--brand-navy); font-weight: 700; }
.rc-tab.is-done .rc-dot {
  background: var(--brand-navy) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='m5 9.5 2.5 2.5L13 6.5' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/22px no-repeat;
  border-color: var(--brand-navy);
}
.rc-tab.is-done .rc-num { visibility: hidden; }
/* Back on a completed step: it's the current one, so show its number rather than the tick */
.rc-tab.is-done.is-active .rc-dot { background-image: none; }
.rc-tab.is-done.is-active .rc-num { visibility: visible; }
.rc-tab.is-done:not(.is-active) .rc-tab-name { color: #2b2f33; }
.rc-tab.is-done:not(:disabled) { cursor: pointer; }
.rc-tab.is-done:not(:disabled):hover .rc-tab-name { text-decoration: underline; text-underline-offset: 3px; }
.rc-tab:disabled { opacity: 1; }
.rc-tab:focus-visible { outline: none; }
.rc-tab:focus-visible .rc-dot { outline: 2px solid var(--brand-navy); outline-offset: 3px; }
.rc-tab-count {
  position: absolute; top: -6px; left: calc(50% + 10px);
  min-width: 20px; height: 20px; padding: 0 6px; box-sizing: border-box; border-radius: 10px;
  background: #b11313; color: #fff; font-size: 12px; font-weight: 700; line-height: 20px; text-align: center;
}
.rc-compact-label { display: none; }

/* Steps */
.rc-body { padding: 32px 40px 36px; }
.rc-step:focus { outline: none; }
.rc-panel.is-stepped .rc-step:not(.is-current) { display: none; }
.rc-panel:not(.is-stepped) .rc-stepper,
.rc-panel:not(.is-stepped) .js-rc-back, .rc-panel:not(.is-stepped) .js-rc-save, .rc-panel:not(.is-stepped) .js-rc-next { display: none; }
.rc-panel:not(.is-stepped) .rc-nav:has(.js-rc-next) { display: none; }
.rc-step-alert { margin: 0 0 28px; padding: 12px 16px; border-radius: 8px; background: #fdecec; border-left: 4px solid #b11313; font-weight: 600; font-size: 14px; color: #8a1010; }

/* Sections: serif heading, thin divider above each new section */
.rc-panel .form-section.rc-section { border: 0; padding: 0; margin: 0 0 16px; min-width: 0; }
.rc-panel .rc-section:not([hidden]) ~ .rc-section { border-top: 1px solid #e3e7ec; padding-top: 36px; margin-top: 12px; }
.rc-panel .rc-section > .section-title {
  float: left; width: 100%; margin: 0 0 24px; padding: 0;
  font-family: var(--pg-font-serif); font-weight: 500; font-size: 26px; line-height: 1.25; color: var(--pg-text-main);
}
.rc-section-body { clear: both; }
.rc-panel .section-help { margin: -8px 0 24px; color: var(--rc-muted); font-size: 15px; }

/* Fields: sentence-case labels, charcoal, medium weight */
.rc-panel .field-grid { grid-template-columns: 1fr; gap: 0 28px; }
@media (min-width: 900px) { .rc-panel .field-grid { grid-template-columns: 1fr 1fr; } }
.rc-panel .field { margin-bottom: 26px; gap: 8px; }
.rc-panel .field > label, .rc-panel .field > legend {
  font-family: var(--pg-font-sans); font-size: 15px; font-weight: 500; line-height: 1.45; color: #2b2f33;
  text-transform: none; letter-spacing: normal;
}
.rc-panel .field > legend { margin-bottom: 8px; }
.rc-panel .req { color: var(--brand-navy); font-size: .85em; }
.rc-panel .field-hint { color: var(--rc-muted); font-size: 13px; line-height: 1.45; margin-top: -2px; }
.rc-panel .field input[type=text], .rc-panel .field input[type=email], .rc-panel .field input[type=tel], .rc-panel .field input[type=date],
.rc-panel .field select, .rc-panel .field textarea, .rc-panel .field .combo-box input { border-color: var(--rc-line); border-radius: 8px; }
.rc-panel .field select { background-color: #fff; }
.rc-panel .field.invalid input, .rc-panel .field.invalid select, .rc-panel .field.invalid textarea, .rc-panel .field.invalid .combo-box input { border-color: #b11313; }
.rc-panel .field input.is-prefilled { background-color: var(--rc-prefill); border-color: #b9cde4; }
.rc-panel .field-error { margin-top: 2px; }

/* Side-by-side fields share rows for label / helper / input / message, so inputs in a row always line up
   even when only one field has helper text or an error */
@supports (grid-template-rows: subgrid) {
  .field-grid { row-gap: 0; }
  .field-grid > .field { display: grid; grid-template-rows: subgrid; grid-row: span 5; gap: 0; align-content: start; }
  .field-grid > .field > label { grid-row: 1; margin-bottom: 8px; }
  .field-grid > .field > .field-hint { grid-row: 2; margin: 0 0 8px; }
  .field-grid > .field > input, .field-grid > .field > select, .field-grid > .field > textarea, .field-grid > .field > .combo-box { grid-row: 3; align-self: start; }
  .field-grid > .field > .field-error { grid-row: 4; margin-top: 6px; }
  .field-grid > .field > .combo-new { grid-row: 5; margin-top: 6px; }
  .rc-panel .field-grid > .field > .field-hint { margin-top: 0; }
}

/* Answer pills: Yes / Partly / No / Not sure, cloud platforms */
.rc-panel .choices { gap: 10px; margin-top: 2px; }
.rc-panel .choices .choice { position: relative; padding: 0; border: 0; background: none; border-radius: 999px; }
.rc-panel .choices .choice input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }
.rc-panel .choices .choice span {
  display: inline-flex; align-items: center; min-height: 44px; box-sizing: border-box; padding: 0 22px;
  border: 1px solid var(--rc-line); border-radius: 999px; background: #fff; color: #2b2f33;
  font-size: 15px; font-weight: 500; transition: background-color .15s, color .15s, border-color .15s;
}
.rc-panel .choices .choice:hover span { border-color: var(--brand-navy); }
.rc-panel .choices .choice input:checked + span { background: var(--brand-navy); border-color: var(--brand-navy); color: #fff; }
.rc-panel .choices .choice input:focus-visible + span { outline: 2px solid var(--brand-navy); outline-offset: 2px; }
.rc-panel fieldset.invalid .choices { border: 0; box-shadow: none; }
.rc-panel fieldset.invalid .choices .choice span { border-color: #b11313; }
.rc-panel .consent .choice { margin-bottom: 10px; color: #2b2f33; }
.rc-panel .consent .choice.invalid { color: #8a1010; }
.rc-panel .consent .field-error { display: block; margin: -4px 0 12px 28px; }

/* Broker email verification */
.rc-panel:not(.is-stepped) .rc-step[data-paths="broker"] { display: none; }
.rc-otp-lead { margin: -4px 0 28px; font-size: 16px; line-height: 1.55; color: #2b2f33; overflow-wrap: anywhere; }
.rc-panel .rc-otp-field { max-width: 280px; }
.rc-panel .rc-otp-field input {
  font-size: 26px; font-weight: 600; letter-spacing: .45em; padding: 12px 16px; font-variant-numeric: tabular-nums;
}
.rc-otp-actions { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 16px; margin: 0 0 16px; font-size: 14px; }
.rc-text-btn { background: none; border: 0; padding: 4px 0; font: inherit; font-size: 14px; font-weight: 600; color: var(--brand-navy); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.rc-text-btn:disabled { color: #8a949e; text-decoration: none; cursor: default; }
.rc-otp-wait { color: var(--rc-muted); }

/* Navigation: Back and Save on the left, Continue on the right */
.rc-nav { display: flex; align-items: center; justify-content: space-between; gap: 16px; border-top: 1px solid #e3e7ec; padding-top: 28px; margin-top: 16px; }
.rc-nav-links { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 24px; }
.rc-back { background: none; border: 0; padding: 8px 0; font: inherit; font-size: 15px; font-weight: 600; color: var(--brand-navy); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.rc-back::before { content: "\2190\00a0"; text-decoration: none; display: inline-block; }
.rc-save-btn { background: none; border: 0; padding: 8px 0; font: inherit; font-size: 14px; color: var(--rc-muted); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.rc-save-btn:hover { color: var(--brand-navy); }
.rc-saved { font-size: 13px; font-weight: 600; color: #1d6b3a; opacity: 0; transition: opacity .2s; }
.rc-saved:empty { display: none; }
.rc-saved.is-shown { opacity: 1; }
.rc-saved.is-shown::before { content: "\2713\00a0"; }
.rc-nav .pg-button-module--pgButton--a1665 { border: 0; cursor: pointer; font: inherit; }
.rc-panel .form-note { margin: 8px 0 8px; font-size: 14px; color: var(--rc-muted); }

@media only screen and (max-width: 1175px) {
  .rc-hero-box { padding: 48px 32px; gap: 32px; }
}
@media only screen and (max-width: 899px) {
  .rc-container { padding: 0 16px; }
  .rc-hero { padding: 24px 0 24px; }
  .rc-hero-box { grid-template-columns: 1fr; padding: 32px 20px; gap: 28px; }
  .rc-title { font-size: var(--pg-type-mobile-h2-size); line-height: var(--pg-type-mobile-h2-lineheight); }
  .rc-stepper { padding: 28px 20px 4px; }
  .rc-body { padding: 28px 20px 28px; }
  .rc-panel .rc-section > .section-title { font-size: 23px; }
}
/* Phones: circles only, with the current step's name underneath */
@media only screen and (max-width: 599px) {
  .rc-stepper { padding: 24px 16px 0; }
  .rc-stepper-inner { max-width: 280px; margin: 0 auto; }
  .rc-tab-name { display: none; }
  .rc-dot { width: 32px; height: 32px; font-size: 14px; }
  .rc-track { top: 15px; }
  .rc-compact-label { display: block; margin: 12px 0 0; text-align: center; font-weight: 700; color: var(--brand-navy); font-size: 15px; }
  .rc-body { padding: 24px 16px 24px; }
  .rc-panel .rc-section:not([hidden]) ~ .rc-section { padding-top: 28px; }
  .rc-panel .rc-section > .section-title { font-size: 22px; margin-bottom: 20px; }
  .rc-panel .field { margin-bottom: 22px; }
}
@media only screen and (max-width: 480px) {
  .rc-hero .choices-large { grid-template-columns: 1fr; }
  .rc-nav { flex-direction: column-reverse; align-items: stretch; }
  .rc-nav .pg-button-module--pgButton--a1665 { justify-content: center; }
  .rc-nav-links { justify-content: space-between; }
}
.portal-cards { display: grid; gap: 20px; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); margin-bottom: 24px; font-family: var(--pg-font-sans); }
.portal-card { background: var(--pg-color-light-beige, #f5f3f1); border-radius: 12px; padding: 24px; }
.portal-card h2 { font-family: var(--pg-font-serif); font-weight: 500; margin: 0 0 8px; }

/* Footer */
.footer-incident { margin-top: 12px !important; font-weight: 600; }
footer .index-module--address--6e781 a { color: #fff; text-decoration: underline; text-underline-offset: 2px; }
footer a[href^="tel:"], .index-module--styled-phone-number--58c37 a[href^="tel:"] { white-space: nowrap; }
.reg-line { font-weight: 600; }
/* Footer: compact legal lines under the compliance links */
.legal-compact { font-size: 12px !important; line-height: 1.6 !important; opacity: .85; margin-top: 8px !important; }
/* Portrait that melts into the section background: the photo fills its frame and fades out, in an oval, to the panel colour */
.blend-photo { height: 100% !important; object-fit: cover; object-position: 50% 28%; border-radius: 0 !important;
  -webkit-mask-image: radial-gradient(ellipse 60% 54% at 50% 54%, #000 46%, transparent 100%);
  mask-image: radial-gradient(ellipse 60% 54% at 50% 54%, #000 46%, transparent 100%); }
