:root {
  --clr-navy: #0d1f3c;
  --clr-navy-mid: #1a3a6b;
  --clr-teal: #17a98b;
  --clr-teal-hover: #129075;
  --clr-teal-pale: #e6f5f2;
  --clr-bg: #f5f6f9;
  --clr-white: #ffffff;
  --clr-border: #dde3ed;
  --clr-ink: #1c2738;
  --clr-body: #3d4a5c;
  --clr-muted: #6d7a8d;
  --type-serif: Georgia, 'Times New Roman', serif;
  --type-sans: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --sz-xs: 0.75rem;
  --sz-sm: 0.875rem;
  --sz-base: 1rem;
  --sz-md: 1.125rem;
  --sz-lg: 1.375rem;
  --sz-xl: 1.75rem;
  --sz-2xl: 2.25rem;
  --sz-3xl: 3rem;
  --gap-2: 0.5rem;
  --gap-4: 1rem;
  --gap-6: 1.5rem;
  --gap-8: 2rem;
  --gap-12: 3rem;
  --gap-16: 4rem;
  --gap-24: 6rem;
  --rad-sm: 4px;
  --rad-md: 8px;
  --rad-lg: 16px;
  --shadow-sm: 0 1px 4px rgba(13,31,60,0.07);
  --shadow-md: 0 4px 18px rgba(13,31,60,0.11);
  --max-wrap: 1160px;
  --max-prose: 780px;
}

*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  font-size: 16px;
  scroll-behavior: smooth;
}

body {
  font-family: var(--type-sans);
  font-size: var(--sz-base);
  line-height: 1.72;
  color: var(--clr-body);
  background: var(--clr-bg);
  -webkit-font-smoothing: antialiased;
}

img, svg {
  max-width: 100%;
  display: block;
}

a {
  color: var(--clr-teal);
  text-decoration: underline;
  text-underline-offset: 3px;
}

a:hover {
  color: var(--clr-navy);
}

a:focus-visible {
  outline: 2px solid var(--clr-teal);
  outline-offset: 3px;
  border-radius: 2px;
}

ul, ol {
  list-style: none;
}

h1, h2, h3, h4 {
  font-family: var(--type-serif);
  color: var(--clr-ink);
  line-height: 1.28;
  font-weight: normal;
}

h1 { font-size: var(--sz-3xl); }
h2 { font-size: var(--sz-2xl); }
h3 { font-size: var(--sz-xl); }
h4 { font-size: var(--sz-lg); }

h5 {
  font-family: var(--type-sans);
  font-size: var(--sz-sm);
  font-weight: 700;
  color: var(--clr-ink);
}

p { margin-bottom: 1em; }
p:last-child { margin-bottom: 0; }

strong { font-weight: 600; color: var(--clr-ink); }

.wf-wrap {
  max-width: var(--max-wrap);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--gap-8);
  padding-right: var(--gap-8);
}

.wf-wrap--prose {
  max-width: var(--max-prose);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--gap-8);
  padding-right: var(--gap-8);
}

.wf-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--gap-12);
  align-items: center;
}

.wf-split--flip > :first-child { order: 2; }
.wf-split--flip > :last-child  { order: 1; }

.wf-thirds {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--gap-6);
}

.wf-halves {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--gap-8);
}

.wf-side-main {
  display: grid;
  grid-template-columns: 5fr 3fr;
  gap: var(--gap-12);
  align-items: start;
}

.wf-topbar {
  position: sticky;
  top: 0;
  z-index: 200;
  background: var(--clr-white);
  border-bottom: 1px solid var(--clr-border);
  box-shadow: var(--shadow-sm);
}

.wf-topbar__row {
  max-width: var(--max-wrap);
  margin: 0 auto;
  padding: 0 var(--gap-8);
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--gap-8);
}

.wf-brand {
  display: flex;
  align-items: center;
  gap: var(--gap-2);
  text-decoration: none;
  flex-shrink: 0;
}

.wf-brand__mark {
  width: 30px;
  height: 30px;
}

.wf-brand__name {
  font-family: var(--type-serif);
  font-size: var(--sz-lg);
  color: var(--clr-navy);
  letter-spacing: -0.02em;
}

.wf-nav-list {
  display: flex;
  gap: var(--gap-6);
  list-style: none;
  flex-wrap: wrap;
  align-items: center;
}

.wf-nav-list a {
  font-size: var(--sz-sm);
  font-weight: 500;
  color: var(--clr-body);
  text-decoration: none;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding-bottom: 2px;
  border-bottom: 2px solid transparent;
  transition: color 0.14s, border-color 0.14s;
}

.wf-nav-list a:hover,
.wf-nav-list a[aria-current="page"] {
  color: var(--clr-teal);
  border-bottom-color: var(--clr-teal);
}

.wf-nav-list a:focus-visible {
  outline: 2px solid var(--clr-teal);
  outline-offset: 3px;
  border-radius: 2px;
}

.wf-section {
  padding: var(--gap-16) 0;
}

.wf-section--condensed {
  padding: var(--gap-8) 0;
}

.wf-section--spacious {
  padding: var(--gap-24) 0;
}

.wf-section--white  { background: var(--clr-white); }
.wf-section--bg     { background: var(--clr-bg); }

.wf-section--navy {
  background: var(--clr-navy);
  color: var(--clr-white);
}

.wf-section--navy h1,
.wf-section--navy h2,
.wf-section--navy h3,
.wf-section--navy h4 {
  color: var(--clr-white);
}

.wf-section--teal-wash { background: var(--clr-teal-pale); }

.wf-hero {
  background: var(--clr-navy);
  padding: var(--gap-24) 0;
  overflow: hidden;
}

.wf-hero__layout {
  max-width: var(--max-wrap);
  margin: 0 auto;
  padding: 0 var(--gap-8);
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: var(--gap-12);
  align-items: center;
}

.wf-hero__text h1 {
  color: var(--clr-white);
  font-size: clamp(var(--sz-xl), 4vw, var(--sz-3xl));
  margin-bottom: var(--gap-6);
  line-height: 1.2;
}

.wf-hero__sub {
  font-size: var(--sz-md);
  color: rgba(255,255,255,0.76);
  margin-bottom: var(--gap-8);
  max-width: 520px;
  line-height: 1.65;
}

.wf-hero__actions {
  display: flex;
  gap: var(--gap-4);
  flex-wrap: wrap;
}

.wf-hero__visual {
  display: flex;
  justify-content: center;
  align-items: center;
}

.wf-page-head {
  background: var(--clr-navy);
  padding: var(--gap-16) 0 var(--gap-12);
}

.wf-page-head h1 {
  color: var(--clr-white);
  font-size: clamp(var(--sz-xl), 3vw, var(--sz-2xl));
  margin-bottom: var(--gap-4);
}

.wf-page-head__sub {
  color: rgba(255,255,255,0.72);
  font-size: var(--sz-md);
  max-width: 580px;
}

.wf-breadcrumb {
  font-size: var(--sz-sm);
  color: rgba(255,255,255,0.55);
  margin-bottom: var(--gap-4);
}

.wf-breadcrumb a {
  color: rgba(255,255,255,0.72);
  text-decoration: none;
}

.wf-breadcrumb a:hover { color: var(--clr-white); }

.wf-breadcrumb__sep { margin: 0 0.4rem; }

.wf-btn {
  display: inline-block;
  padding: 0.72rem 1.65rem;
  border-radius: var(--rad-sm);
  font-family: var(--type-sans);
  font-size: var(--sz-sm);
  font-weight: 600;
  letter-spacing: 0.03em;
  text-decoration: none;
  cursor: pointer;
  border: 2px solid transparent;
  transition: background 0.14s, color 0.14s, border-color 0.14s;
  line-height: 1.4;
}

.wf-btn--primary {
  background: var(--clr-teal);
  color: var(--clr-white);
  border-color: var(--clr-teal);
}

.wf-btn--primary:hover {
  background: var(--clr-teal-hover);
  border-color: var(--clr-teal-hover);
  color: var(--clr-white);
}

.wf-btn--ghost {
  background: transparent;
  color: var(--clr-white);
  border-color: rgba(255,255,255,0.45);
}

.wf-btn--ghost:hover {
  border-color: var(--clr-white);
  color: var(--clr-white);
}

.wf-btn--outline {
  background: transparent;
  color: var(--clr-teal);
  border-color: var(--clr-teal);
}

.wf-btn--outline:hover {
  background: var(--clr-teal);
  color: var(--clr-white);
}

.wf-btn--dark {
  background: var(--clr-navy);
  color: var(--clr-white);
  border-color: var(--clr-navy);
}

.wf-btn--dark:hover {
  background: var(--clr-navy-mid);
  border-color: var(--clr-navy-mid);
  color: var(--clr-white);
}

.wf-btn:focus-visible {
  outline: 2px solid var(--clr-teal);
  outline-offset: 3px;
}

.wf-card {
  background: var(--clr-white);
  border: 1px solid var(--clr-border);
  border-radius: var(--rad-md);
  padding: var(--gap-8);
  box-shadow: var(--shadow-sm);
}

.wf-card--elevated {
  border: none;
  box-shadow: var(--shadow-md);
}

.wf-card h3,
.wf-card h4 {
  margin-bottom: var(--gap-2);
}

.wf-card__icon {
  width: 44px;
  height: 44px;
  margin-bottom: var(--gap-4);
  color: var(--clr-teal);
}

.wf-card__tag {
  display: inline-block;
  font-size: var(--sz-xs);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--clr-teal);
  background: var(--clr-teal-pale);
  padding: 3px 10px;
  border-radius: 20px;
  margin-bottom: var(--gap-4);
}

.wf-panel {
  border-left: 4px solid var(--clr-teal);
  background: var(--clr-teal-pale);
  border-radius: 0 var(--rad-md) var(--rad-md) 0;
  padding: var(--gap-6) var(--gap-8);
}

.wf-panel--note {
  border-left-color: var(--clr-navy);
  background: rgba(13,31,60,0.04);
}

.wf-panel h4 {
  color: var(--clr-teal);
  margin-bottom: var(--gap-2);
}

.wf-panel--note h4 {
  color: var(--clr-navy);
}

.wf-steps {
  display: grid;
  gap: var(--gap-8);
}

.wf-step {
  display: grid;
  grid-template-columns: 3.25rem 1fr;
  gap: var(--gap-6);
  align-items: start;
}

.wf-step__circle {
  width: 3.25rem;
  height: 3.25rem;
  border-radius: 50%;
  background: var(--clr-navy);
  color: var(--clr-white);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--type-serif);
  font-size: var(--sz-lg);
  flex-shrink: 0;
}

.wf-step__body h4 {
  padding-top: 0.55rem;
  margin-bottom: var(--gap-2);
}

.wf-faq-set {
  border: 1px solid var(--clr-border);
  border-radius: var(--rad-md);
  overflow: hidden;
}

.wf-faq-set details {
  border-bottom: 1px solid var(--clr-border);
  background: var(--clr-white);
}

.wf-faq-set details:last-child {
  border-bottom: none;
}

.wf-faq-set summary {
  padding: var(--gap-6) var(--gap-8);
  cursor: pointer;
  font-weight: 600;
  color: var(--clr-ink);
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--gap-4);
  user-select: none;
}

.wf-faq-set summary::-webkit-details-marker { display: none; }

.wf-faq-set summary::after {
  content: '+';
  font-size: 1.5rem;
  line-height: 1;
  color: var(--clr-teal);
  flex-shrink: 0;
  font-weight: 300;
}

.wf-faq-set details[open] > summary {
  color: var(--clr-teal);
}

.wf-faq-set details[open] > summary::after {
  content: '\2212';
}

.wf-faq-set summary:focus-visible {
  outline: 2px solid var(--clr-teal);
  outline-offset: -2px;
}

.wf-faq-set__body {
  padding: 0 var(--gap-8) var(--gap-6);
  color: var(--clr-body);
}

.wf-form-block {
  background: var(--clr-white);
  border: 1px solid var(--clr-border);
  border-radius: var(--rad-lg);
  padding: var(--gap-12);
  box-shadow: var(--shadow-md);
}

.wf-field {
  margin-bottom: var(--gap-6);
}

.wf-field label {
  display: block;
  font-size: var(--sz-sm);
  font-weight: 600;
  color: var(--clr-ink);
  margin-bottom: var(--gap-2);
}

.wf-field label .wf-req {
  color: var(--clr-teal);
  margin-left: 2px;
}

.wf-field input,
.wf-field select,
.wf-field textarea {
  display: block;
  width: 100%;
  padding: 0.68rem 1rem;
  font-family: var(--type-sans);
  font-size: var(--sz-base);
  color: var(--clr-ink);
  background: var(--clr-white);
  border: 1px solid var(--clr-border);
  border-radius: var(--rad-sm);
  transition: border-color 0.14s, box-shadow 0.14s;
  -webkit-appearance: none;
  appearance: none;
}

.wf-field input:focus,
.wf-field select:focus,
.wf-field textarea:focus {
  outline: none;
  border-color: var(--clr-teal);
  box-shadow: 0 0 0 3px rgba(23,169,139,0.15);
}

.wf-field textarea {
  resize: vertical;
  min-height: 130px;
}

.wf-field select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24'%3E%3Cpath fill='%236d7a8d' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.8rem center;
  padding-right: 2.5rem;
}

.wf-submit-btn {
  width: 100%;
  padding: 0.88rem 2rem;
  font-family: var(--type-sans);
  font-size: var(--sz-base);
  font-weight: 600;
  background: var(--clr-teal);
  color: var(--clr-white);
  border: none;
  border-radius: var(--rad-sm);
  cursor: pointer;
  letter-spacing: 0.02em;
  transition: background 0.14s;
}

.wf-submit-btn:hover { background: var(--clr-teal-hover); }

.wf-submit-btn:focus-visible {
  outline: 2px solid var(--clr-navy);
  outline-offset: 3px;
}

.wf-form-note {
  font-size: var(--sz-xs);
  color: var(--clr-muted);
  margin-top: var(--gap-4);
  line-height: 1.6;
}

.wf-eyebrow {
  display: inline-block;
  font-size: var(--sz-xs);
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--clr-teal);
  margin-bottom: var(--gap-2);
}

.wf-section-intro {
  font-size: var(--sz-md);
  color: var(--clr-body);
  max-width: 600px;
  margin-top: var(--gap-4);
  margin-bottom: var(--gap-8);
  line-height: 1.65;
}

.wf-cta-strip {
  background: var(--clr-navy);
  padding: var(--gap-16) 0;
  text-align: center;
}

.wf-cta-strip h2 {
  color: var(--clr-white);
  margin-bottom: var(--gap-4);
}

.wf-cta-strip p {
  color: rgba(255,255,255,0.72);
  font-size: var(--sz-md);
  margin-bottom: var(--gap-8);
  max-width: 500px;
  margin-left: auto;
  margin-right: auto;
}

.wf-cta-strip__actions {
  display: flex;
  gap: var(--gap-4);
  justify-content: center;
  flex-wrap: wrap;
}

.wf-contact-aside {
  background: var(--clr-bg);
  border: 1px solid var(--clr-border);
  border-radius: var(--rad-md);
  padding: var(--gap-8);
}

.wf-contact-aside h3 {
  margin-bottom: var(--gap-6);
  font-size: var(--sz-lg);
}

.wf-contact-row {
  display: flex;
  gap: var(--gap-4);
  margin-bottom: var(--gap-4);
  font-size: var(--sz-sm);
  line-height: 1.55;
}

.wf-contact-row__label {
  font-weight: 600;
  color: var(--clr-ink);
  min-width: 70px;
  flex-shrink: 0;
}

.wf-contact-row__val { color: var(--clr-body); }

.wf-fig {
  border-radius: var(--rad-lg);
  overflow: hidden;
}

.wf-fig img,
.wf-fig svg {
  width: 100%;
  height: auto;
}

.wf-divider {
  border: none;
  border-top: 1px solid var(--clr-border);
  margin: var(--gap-8) 0;
}

.wf-prose h2 {
  font-size: var(--sz-xl);
  margin-top: var(--gap-12);
  margin-bottom: var(--gap-4);
}

.wf-prose h3 {
  font-size: var(--sz-lg);
  margin-top: var(--gap-8);
  margin-bottom: var(--gap-4);
}

.wf-prose p { margin-bottom: var(--gap-4); line-height: 1.78; }

.wf-prose ul,
.wf-prose ol {
  padding-left: var(--gap-6);
  margin-bottom: var(--gap-4);
}

.wf-prose ul { list-style: disc; }
.wf-prose ol { list-style: decimal; }
.wf-prose li { margin-bottom: var(--gap-2); }

.wf-prose .wf-panel {
  margin: var(--gap-8) 0;
}

.wf-table-wrap {
  overflow-x: auto;
  margin: var(--gap-8) 0;
}

.wf-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--sz-sm);
}

.wf-table th {
  background: var(--clr-navy);
  color: var(--clr-white);
  padding: var(--gap-4) var(--gap-6);
  text-align: left;
  font-weight: 600;
}

.wf-table td {
  padding: var(--gap-4) var(--gap-6);
  border-bottom: 1px solid var(--clr-border);
  vertical-align: top;
}

.wf-table tr:last-child td { border-bottom: none; }
.wf-table tr:nth-child(even) td { background: var(--clr-bg); }

.wf-footer {
  background: var(--clr-navy);
  color: rgba(255,255,255,0.72);
  padding: var(--gap-16) 0 var(--gap-8);
}

.wf-footer__grid {
  display: grid;
  grid-template-columns: 2.4fr 1fr 1fr 1fr;
  gap: var(--gap-12);
  margin-bottom: var(--gap-12);
}

.wf-footer__brand-name {
  font-family: var(--type-serif);
  font-size: var(--sz-lg);
  color: var(--clr-white);
  text-decoration: none;
  display: inline-block;
  margin-bottom: var(--gap-4);
}

.wf-footer__summary {
  font-size: var(--sz-sm);
  line-height: 1.65;
  max-width: 270px;
  color: rgba(255,255,255,0.6);
}

.wf-footer__address {
  font-size: var(--sz-xs);
  color: rgba(255,255,255,0.45);
  margin-top: var(--gap-4);
  line-height: 1.6;
  font-style: normal;
}

.wf-footer__col-label {
  font-size: var(--sz-xs);
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.38);
  margin-bottom: var(--gap-4);
}

.wf-footer__col-links {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: var(--gap-2);
}

.wf-footer__col-links a {
  color: rgba(255,255,255,0.66);
  text-decoration: none;
  font-size: var(--sz-sm);
  transition: color 0.13s;
}

.wf-footer__col-links a:hover { color: var(--clr-white); }

.wf-footer__col-links a:focus-visible {
  outline: 2px solid var(--clr-teal);
  outline-offset: 2px;
  border-radius: 2px;
}

.wf-footer__bar {
  border-top: 1px solid rgba(255,255,255,0.09);
  padding-top: var(--gap-6);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--gap-4);
  flex-wrap: wrap;
}

.wf-footer__copy {
  font-size: var(--sz-xs);
  color: rgba(255,255,255,0.36);
}

.wf-footer__mini-links {
  list-style: none;
  display: flex;
  gap: var(--gap-6);
}

.wf-footer__mini-links a {
  font-size: var(--sz-xs);
  color: rgba(255,255,255,0.42);
  text-decoration: none;
  transition: color 0.13s;
}

.wf-footer__mini-links a:hover { color: rgba(255,255,255,0.8); }

.wf-text-center { text-align: center; }
.wf-muted { color: var(--clr-muted); }

.wf-mt-4  { margin-top: var(--gap-4); }
.wf-mt-6  { margin-top: var(--gap-6); }
.wf-mt-8  { margin-top: var(--gap-8); }
.wf-mt-12 { margin-top: var(--gap-12); }
.wf-mb-4  { margin-bottom: var(--gap-4); }
.wf-mb-6  { margin-bottom: var(--gap-6); }
.wf-mb-8  { margin-bottom: var(--gap-8); }
.wf-mb-12 { margin-bottom: var(--gap-12); }

.wf-text-center .wf-section-intro {
  margin-left: auto;
  margin-right: auto;
}

.wf-scope-list {
  list-style: disc;
  padding-left: 1.5rem;
  margin-bottom: 1.5rem;
  color: var(--clr-body);
}

.wf-scope-list li {
  margin-bottom: 0.5rem;
}

.wf-form-heading {
  font-size: var(--sz-xl);
}

.wf-links-mt {
  margin-top: 1rem;
}

.wf-version-note {
  font-size: var(--sz-sm);
  color: var(--clr-muted);
}

.wf-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
}

@media (max-width: 960px) {
  :root {
    --gap-16: 3rem;
    --gap-24: 4.5rem;
  }

  h1 { font-size: var(--sz-2xl); }

  .wf-hero__layout {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .wf-hero__visual { display: none; }

  .wf-hero__sub,
  .wf-hero__actions {
    margin-left: auto;
    margin-right: auto;
  }

  .wf-hero__actions { justify-content: center; }

  .wf-split {
    grid-template-columns: 1fr;
    gap: var(--gap-8);
  }

  .wf-split--flip > :first-child { order: unset; }
  .wf-split--flip > :last-child  { order: unset; }

  .wf-thirds  { grid-template-columns: repeat(2, 1fr); }
  .wf-side-main { grid-template-columns: 1fr; }

  .wf-footer__grid {
    grid-template-columns: 1fr 1fr;
    gap: var(--gap-8);
  }
}

@media (max-width: 600px) {
  :root {
    --gap-16: 2.5rem;
    --gap-24: 3.5rem;
    --gap-12: 2rem;
  }

  .wf-wrap,
  .wf-wrap--prose {
    padding-left: var(--gap-4);
    padding-right: var(--gap-4);
  }

  .wf-topbar__row {
    padding: var(--gap-4);
    height: auto;
    flex-wrap: wrap;
    gap: var(--gap-2);
  }

  .wf-nav-list {
    gap: var(--gap-4);
  }

  .wf-nav-list a {
    font-size: 0.78rem;
  }

  .wf-thirds  { grid-template-columns: 1fr; }
  .wf-halves  { grid-template-columns: 1fr; }

  .wf-footer__grid {
    grid-template-columns: 1fr;
    gap: var(--gap-6);
  }

  .wf-footer__bar {
    flex-direction: column;
    text-align: center;
  }

  h1 { font-size: var(--sz-xl); }
  h2 { font-size: var(--sz-xl); }

  .wf-form-block {
    padding: var(--gap-8) var(--gap-6);
  }

  .wf-step {
    grid-template-columns: 2.6rem 1fr;
    gap: var(--gap-4);
  }

  .wf-step__circle {
    width: 2.6rem;
    height: 2.6rem;
    font-size: var(--sz-md);
  }

  .wf-cta-strip__actions {
    flex-direction: column;
    align-items: center;
  }
}
