html {
      overflow-x: hidden;
      background: linear-gradient(168deg, #dfe6f7 0%, #f7efdf 100%);
      background-color: #dfe6f7;
    }
    body {
      font-family: Georgia, "Times New Roman", serif;
      font-size: var(--km-font-base);
      line-height: 1.55;
      margin: 0;
      color: #4a5a6a;
      background: linear-gradient(168deg, #dfe6f7 0%, #f7efdf 100%);
      background-color: #dfe6f7;
      min-height: 100vh;
      display: flex;
      flex-direction: column;
      overflow-x: hidden;
    }
    h1, h2, h3 { font-family: Georgia, serif; color: #4f6f86; font-weight: 600; }
    /* Lighter (#4b4d61) left → darker (#231f20) right, same as header chrome */
    footer { padding: 20px 24px; background: linear-gradient(135deg, #4b4d61 0%, #231f20 100%); color: #e8eaef; font-size: var(--km-font-base); border-top: 1px solid rgba(0, 0, 0, 0.35); box-shadow: 0 -2px 12px rgba(0, 0, 0, 0.2); }
    .footer-inner { max-width: 920px; margin: 0 auto; display: flex; flex-direction: column; gap: 12px; align-items: center; text-align: center; }
    .footer-nav { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 6px 10px; font-size: var(--km-font-base); }
    .footer-nav a { color: #c8d8e8; text-decoration: none; }
    .footer-nav a:hover { color: #fff; text-decoration: underline; }
    .footer-sep { color: rgba(255, 255, 255, 0.35); user-select: none; }
    .footer-copy { font-size: var(--km-font-base); color: rgba(232, 234, 239, 0.85); }
    header { background: linear-gradient(135deg, #4b4d61 0%, #231f20 100%); color: #e8eaef; box-sizing: border-box; width: 100%; position: relative; border-bottom: 1px solid rgba(0, 0, 0, 0.35); box-shadow: 0 2px 12px rgba(0, 0, 0, 0.2); }
    .header-top { display: flex; justify-content: space-between; align-items: center; height: 100px; padding: 0 24px; position: relative; }
    .header-progress { padding: 12px 24px; border-top: 1px solid rgba(255, 255, 255, 0.12); background: linear-gradient(135deg, #4b4d61 0%, #231f20 100%); position: sticky; top: 0; z-index: 1000; width: 100%; box-sizing: border-box; margin: 0; }
    .header-progress.fixed { position: fixed; top: 0; left: 0; }
    body.has-fixed-progress .header-progress { position: fixed; top: 0; left: 0; }
    body.has-fixed-progress .header-top { display: none; }
    body.has-fixed-progress { padding-top: 64px; }
    .header-logo { display: flex; align-items: center; justify-content: flex-start; flex: 0 0 210px; min-width: 180px; gap: 8px; margin: 0; padding: 0; line-height: 1; color: #e8eaef !important; }
    .header-logo img { width: 180px; height: auto; max-height: 88px; max-width: 100%; display: block; object-fit: contain; }
    .header-logo strong { margin: 0; padding: 0; align-self: center; }
    .btn-header { background: rgba(255, 255, 255, 0.12) !important; color: #e8eaef !important; padding: 8px 16px; border-radius: 10px; text-decoration: none; border: 1px solid rgba(255, 255, 255, 0.28) !important; cursor: pointer; align-self: center; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15); }
    .btn-header:hover { background: rgba(255, 255, 255, 0.2) !important; color: #fff !important; border-color: rgba(255, 255, 255, 0.4) !important; }
    .header-top > .home-header-nav {
      position: absolute;
      top: 50%;
      left: 50%;
      width: max-content;
      max-width: calc(100% - 430px);
      transform: translate(-50%, -50%);
    }
    .public-mobile-nav-toggle,
    .public-mobile-nav {
      display: none;
    }
    .discount-ribbon {
      width: 100%;
      box-sizing: border-box;
      padding: 8px 16px;
      text-align: center;
      background: linear-gradient(135deg, var(--discount-ribbon-start, #7f1018) 0%, var(--discount-ribbon-mid, #b01f2a) 52%, var(--discount-ribbon-end, #651018) 100%);
      color: var(--discount-ribbon-text, #fff);
      border-bottom: 1px solid #4f0b12;
      font-family: Georgia, "Times New Roman", serif;
      font-size: 16px;
      font-style: italic;
      font-weight: 400;
      line-height: 1.15;
      letter-spacing: 0.02em;
      font-variant-numeric: lining-nums;
      font-feature-settings: "lnum" 1;
      box-shadow: 0 1px 8px rgba(79, 11, 18, 0.22);
    }
    @media (max-width: 768px) {
      .discount-ribbon {
        font-size: 14px;
      }
    }
    main { max-width: 820px; margin: 24px auto; padding: 0 16px; flex: 1; width: 100%; box-sizing: border-box; }
    a { color: #5a6b78; text-decoration: none; }
    a:hover { color: #4f6f86; text-decoration: underline; }
    .btn { background:#7eb4d4; color:#fff; padding:10px 14px; border-radius:10px; display:inline-block }
    .btn:hover { background: #6aa8c8; }
    /* Arrow Button Styles */
    .btn-arrow-right {
      background: #7eb4d4;
      color: #fff;
      border: none;
      padding: 12px 24px 12px 20px;
      position: relative;
      cursor: pointer;
      font-size: var(--km-font-base);
      font-weight: 500;
      width: 150px;
      clip-path: polygon(0 0, calc(100% - 20px) 0, 100% 50%, calc(100% - 20px) 100%, 0 100%);
    }
    .btn-arrow-right:hover {
      background: #6aa8c8;
    }
    .btn-arrow-left {
      background: #666;
      color: #fff;
      border: none;
      padding: 12px 20px 12px 24px;
      position: relative;
      cursor: pointer;
      font-size: var(--km-font-base);
      font-weight: 500;
      width: 150px;
      clip-path: polygon(20px 0, 100% 0, 100% 100%, 20px 100%, 0 50%);
    }
    .btn-arrow-left:hover {
      background: #555;
    }
    .card{ border:none; padding:20px; border-radius:10px; margin:12px 0; box-sizing: border-box; }
    .row{ display:flex; gap:10px; }
    .row > * { flex:1; }
    .flash-error{ background:#ffebe9; color:#b01818; padding:8px 12px; border-radius:6px; }
    .flash-ok{ background:#e8ffeb; color:#0b6f27; padding:8px 12px; border-radius:6px; }
    input, textarea, select { width:100%; padding:10px; border:1px solid #ccc; border-radius:8px; box-sizing: border-box; }
    label{ display:block; margin:10px 0 6px; }
    /* Progress Tracker Styles */
    .progress-sidebar { width: 200px; flex-shrink: 0; position: sticky; top: 20px; height: fit-content; font-size: var(--km-font-sidebar); }
    .progress-box { padding: 16px; background: #f5f5f5; border-radius: 8px; }
    .progress-step { display: flex; align-items: center; gap: 12px; padding: 8px 12px; text-decoration: none; color: #666; border-radius: 6px; transition: all 0.2s; }
    .progress-step:hover { background: #e4f0f8; }
    .progress-step.active { background: #dceef8; color: #4f6f86; }
    .progress-step.completed { color: #0b6f27; }
    .step-number { width: 24px; height: 24px; border-radius: 50%; background: #ddd; display: flex; align-items: center; justify-content: center; font-weight: bold; font-size: 1em; flex-shrink: 0; }
    .progress-step.active .step-number { background: #fff; color: #4f6f86; border: 1px solid #c8e0f0; }
    .progress-step.completed .step-number { background: #0b6f27; color: #fff; }
    .step-label { font-size: 1em; }
    .form-with-progress { display: flex; gap: 24px; }
    .form-content { flex: 1; max-width: 600px; }
    /* Horizontal Progress Tracker at Top */
    .progress-top { padding: 0; background: transparent; margin: 0; }
    .progress-box-horizontal { max-width: 100%; margin: 0; }
    .progress-nav-h { display: grid; grid-template-columns: repeat(5, 1fr); gap: clamp(10px, 2vw, 22px); align-items: start; width: 100%; box-sizing: border-box; }
    .progress-step-h { display: flex; flex-direction: column; align-items: center; gap: 8px; text-decoration: none; border-radius: 6px; transition: opacity 0.2s; width: 100%; }
    .progress-step-h:hover:not(:disabled):not([disabled]) { opacity: 0.85 !important; }
    /* Current step: white circle, white label */
    .progress-step-h.active .step-label-h { color: #ffffff; font-weight: bold; }
    /* Completed: blue accent (same family as previous “active” styling) */
    .progress-step-h.completed .step-label-h { color: #b8d4eb; }
    .progress-step-h:not(.active):not(.completed) .step-label-h { color: rgba(255, 255, 255, 0.65); }
    .step-number-h { width: 32px; height: 32px; border-radius: 50%; background: rgba(255, 255, 255, 0.12); display: flex; align-items: center; justify-content: center; font-weight: bold; font-size: 1em; flex-shrink: 0; color: rgba(255, 255, 255, 0.85); border: 1px solid rgba(255, 255, 255, 0.22); }
    .progress-step-h.active .step-number-h { background: #ffffff; color: #4f6f86; border: 1px solid rgba(255, 255, 255, 0.95); box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); }
    .progress-step-h.completed .step-number-h { background: rgba(126, 180, 212, 0.45); color: #e8f4fc; border: 1px solid rgba(126, 180, 212, 0.65); }
    .step-label-h { font-size: 0.92em; text-align: center; }

    /* Mobile Responsive Styles */
    @media (max-width: 768px) {
      * { box-sizing: border-box; }
      html, body { margin: 0 !important; padding: 0 !important; width: 100% !important; overflow-x: hidden !important; }
      .header-top { height: 80px; padding: 0 16px; }
      .header-logo { flex-basis: 170px; min-width: 140px; }
      .header-logo img { width: 150px; max-height: 64px; max-width: 100%; }
      .home-header-nav,
      .header-top > .btn-header {
        display: none !important;
      }
      .public-mobile-nav-toggle {
        display: inline-flex;
        flex-direction: column;
        justify-content: center;
        gap: 5px;
        width: 44px;
        height: 44px;
        padding: 0;
        border: 1px solid rgba(255, 255, 255, 0.28);
        border-radius: 10px;
        background: rgba(255, 255, 255, 0.12);
        cursor: pointer;
        align-items: center;
        box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
      }
      .public-mobile-nav-toggle span {
        display: block;
        width: 20px;
        height: 2px;
        border-radius: 999px;
        background: #e8eaef;
      }
      .public-mobile-nav {
        position: absolute;
        top: calc(100% - 6px);
        right: 16px;
        z-index: 1200;
        width: min(260px, calc(100vw - 32px));
        padding: 10px;
        border: 1px solid rgba(255, 255, 255, 0.18);
        border-radius: 14px;
        background: linear-gradient(145deg, #4b4d61 0%, #231f20 100%);
        box-shadow: 0 18px 34px rgba(0, 0, 0, 0.28);
      }
      .public-mobile-nav.is-open {
        display: grid;
        gap: 4px;
      }
      .public-mobile-nav a {
        display: block;
        padding: 11px 12px;
        border-radius: 10px;
        color: #e8eaef;
        font-weight: 700;
        text-decoration: none;
      }
      .public-mobile-nav a:hover {
        background: rgba(255, 255, 255, 0.12);
        color: #fff;
      }
      .header-progress { padding: 8px 12px; }
      .progress-nav-h { grid-template-columns: repeat(5, 1fr); gap: clamp(4px, 1.5vw, 12px); }
      .step-number-h { width: 24px; height: 24px; font-size: 0.92em; }
      .step-label-h { font-size: 0.8em; }
      main { padding: 0 12px !important; margin: 16px auto !important; width: 100% !important; max-width: 100% !important; box-sizing: border-box !important; }
      .card { padding: 16px; margin: 8px 0; box-sizing: border-box; }
      .btn-arrow-right, .btn-arrow-left { width: 120px; padding: 10px 16px 10px 12px; font-size: var(--km-font-base); }
      .btn-arrow-left { padding: 10px 12px 10px 16px; }
      footer { padding: 12px 16px; font-size: var(--km-font-base); }
    }
    
    @media (max-width: 480px) {
      * { box-sizing: border-box; }
      html, body { margin: 0 !important; padding: 0 !important; width: 100% !important; overflow-x: hidden !important; }
      .header-top { height: 70px; padding: 0 12px; }
      .header-logo { flex-basis: 140px; min-width: 110px; }
      .header-logo img { width: 120px; max-height: 56px; max-width: 100%; }
      .public-mobile-nav {
        right: 12px;
        width: min(250px, calc(100vw - 24px));
      }
      .header-progress { padding: 6px 8px; }
      .progress-nav-h { gap: 4px; }
      .step-number-h { width: 20px; height: 20px; font-size: 0.85em; }
      .step-label-h { font-size: 0.75em; }
      main { padding: 0 8px !important; margin: 12px auto !important; width: 100% !important; max-width: 100% !important; box-sizing: border-box !important; }
      .card { padding: 12px !important; margin-left: 0 !important; margin-right: 0 !important; box-sizing: border-box !important; }
      .btn-arrow-right, .btn-arrow-left { width: 100px; padding: 8px 12px; font-size: var(--km-font-base); }
      h1 { font-size: 24px; }
      h2 { font-size: 20px; }
    }

.legal-prose {
  max-width: 720px;
  margin: 0 auto;
}
.legal-prose h1 { font-size: 1.85rem; margin-bottom: 0.75rem; }
.legal-prose h2 { font-size: 1.2rem; margin: 1.5rem 0 0.5rem; }
.legal-prose p,
.legal-prose li { line-height: 1.65; color: #333; }
.legal-prose ul { margin: 0.5rem 0 0 1.25rem; padding: 0; }
.legal-back-link { margin-top: 1.5rem; }
