:root {
  --red: #e30613;
  --ink: #171719;
  --paper: #f4f0eb;
  --accent: #ffd43b;
  --line: rgba(23, 23, 25, .16);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: Arial, Helvetica, sans-serif; }
body.modal-open { overflow: hidden; }
button, input, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }

.site-header {
  height: 84px; padding: 0 5vw; display: flex; align-items: center; gap: 30px; background: #fff;
}
.brand-logo { display: block; width: 178px; height: auto; }
.header-trust { margin-left: auto; color: #555; font-size: 13px; }
.header-trust i { display: inline-block; width: 8px; height: 8px; margin-right: 7px; border-radius: 50%; background: #1bba64; }
.site-header > a { color: var(--ink); font-size: 13px; font-weight: 700; text-decoration: none; border-bottom: 1px solid; padding-bottom: 4px; }

.hero { position: relative; min-height: 670px; margin: 0 2vw; overflow: hidden; border-radius: 28px; background: #777; }
.hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; transition: opacity .3s ease; }
.hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(10,10,12,.86) 0%, rgba(10,10,12,.58) 36%, rgba(10,10,12,.04) 72%); }
.hero-content { position: relative; z-index: 2; width: min(670px, 57%); padding: 82px 0 90px 6vw; color: #fff; }
.eyebrow { margin-bottom: 28px; font-size: 13px; text-transform: uppercase; letter-spacing: .13em; }
.eyebrow span { margin-right: 10px; padding: 8px 10px; color: #111; border-radius: 5px; background: var(--accent); font-weight: 800; }
.hero h1 { max-width: 650px; margin: 0; font-size: clamp(42px, 5vw, 76px); line-height: .98; letter-spacing: -.055em; }
.hero h2 { max-width: 590px; margin: 25px 0 0; font-size: clamp(19px, 2vw, 27px); line-height: 1.25; }
.hero-content > p { max-width: 590px; margin: 20px 0 0; color: rgba(255,255,255,.78); font-size: 17px; line-height: 1.55; }
.hero-actions { display: flex; align-items: center; gap: 24px; margin-top: 36px; }
.primary-cta { display: flex; align-items: center; justify-content: center; min-width: 315px; padding: 20px 23px; color: #fff; background: var(--red); border-radius: 12px; font-size: 15px; font-weight: 800; text-align: center; text-decoration: none; }
.hero-badge { display: flex; flex-direction: column; padding-left: 20px; border-left: 1px solid rgba(255,255,255,.4); }
.hero-badge b { font-size: 17px; }
.hero-badge small { margin-top: 5px; color: #bbb; }
.scroll-note { position: absolute; z-index: 2; right: 30px; bottom: 27px; color: rgba(255,255,255,.8); font-size: 12px; text-transform: uppercase; letter-spacing: .1em; }
.scroll-note span { padding-left: 10px; }

.benefit-strip { display: grid; grid-template-columns: repeat(4, 1fr); padding: 38px 5vw; background: var(--red); color: #fff; }
.benefit-strip > div { display: flex; align-items: center; gap: 15px; padding: 0 3vw; border-right: 1px solid rgba(255,255,255,.3); }
.benefit-strip > div:last-child { border: 0; }
.benefit-strip b { font-size: 27px; white-space: nowrap; }
.benefit-strip span { max-width: 110px; font-size: 13px; line-height: 1.3; color: rgba(255,255,255,.8); }

.story, .steps { display: grid; grid-template-columns: 1.1fr .9fr; gap: 10vw; padding: 110px 8vw 65px; }
.section-label { margin: 0 0 18px; color: var(--red); font-size: 12px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.story h2, .steps h2, .form-pitch h2 { margin: 0; font-size: clamp(36px, 4vw, 58px); line-height: 1.04; letter-spacing: -.045em; }
.story-copy { align-self: end; max-width: 520px; font-size: 19px; line-height: 1.55; }
.story-copy a { display: inline-block; margin-top: 24px; color: var(--red); font-size: 14px; font-weight: 800; text-decoration: none; }
.cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; padding: 0 5vw 100px; }
.cards article { min-height: 218px; display: flex; flex-direction: column; padding: 24px 26px; border: 1px solid var(--line); border-radius: 18px; background: #fff; }
.cards article:nth-child(2) { color: #fff; background: var(--red); }
.cards span { margin-bottom: auto; opacity: .5; font-weight: 800; }
.cards b { max-width: 330px; font-size: 23px; line-height: 1.12; }
.cards p { margin: 13px 0 0; opacity: .7; font-size: 14px; line-height: 1.45; }

.steps { background: #fff; padding-bottom: 110px; }
.steps ol { margin: 0; padding: 0; list-style: none; }
.steps li { display: grid; grid-template-columns: 65px 1fr; gap: 20px; padding: 26px 0; border-top: 1px solid var(--line); }
.steps li > b { color: var(--red); }
.steps li span { color: #777; line-height: 1.45; }
.steps li strong { display: block; margin-bottom: 6px; color: var(--ink); font-size: 19px; }

.form-section { display: grid; grid-template-columns: .9fr 1.1fr; gap: 8vw; padding: 100px 8vw; color: #fff; background: #171719; }
.form-pitch { position: sticky; top: 90px; align-self: start; }
.form-pitch .section-label { color: var(--accent); }
.form-pitch ul { margin: 40px 0 0; padding: 0; list-style: none; }
.form-pitch li { padding: 15px 0; border-top: 1px solid #444; }
.form-pitch li::before { content: "✓"; margin-right: 13px; color: var(--accent); }
.form-column { min-width: 0; }
.form-footnote { margin: 18px 4px 0; color: #777; font-size: 11px; line-height: 1.5; }
.application-form { padding: 34px; color: var(--ink); border-radius: 22px; background: #fff; scroll-margin-top: 18px; }
.form-kicker { margin: 0 0 25px; color: var(--red); font-size: 13px; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; }
.required-note { margin: -12px 0 22px; color: #777; font-size: 11px; }
.required-note span,
.application-form label > span::after,
.gender legend::after { color: var(--red); }
.application-form label > span::after,
.gender legend::after { content: " *"; }
.application-form label > span, .gender legend { display: block; margin: 0 0 8px; color: #777; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.application-form > label, .form-grid label { display: block; margin-bottom: 17px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.application-form input:not([type=radio]), .application-form select { width: 100%; min-height: 55px; padding: 0 16px; color: #222; border: 1px solid #d8d8d8; border-radius: 9px; background: #fafafa; }
.application-form input:focus, .application-form select:focus { border-color: var(--red); outline: 2px solid rgba(227,6,19,.1); }
.gender { display: flex; gap: 24px; margin: 0 0 17px; padding: 14px 16px; border: 1px solid #d8d8d8; border-radius: 9px; }
.gender legend { padding: 0 4px; margin: 0; }
.gender label { display: flex; align-items: center; gap: 8px; cursor: pointer; }
.gender input { accent-color: var(--red); }
.honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.submit { width: 100%; display: flex; justify-content: center; align-items: center; margin-top: 8px; padding: 19px 22px; border: 0; border-radius: 10px; background: var(--red); color: #fff; font-weight: 800; text-align: center; cursor: pointer; }
.submit:disabled { cursor: wait; opacity: .7; }
.submit-error { margin: 12px 0 0; color: var(--red); font-size: 12px; line-height: 1.45; }
.consent { color: #888; font-size: 10px; line-height: 1.45; }
.privacy-link { margin: 0; padding: 0; color: inherit; border: 0; border-bottom: 1px solid currentColor; background: transparent; font-size: inherit; cursor: pointer; }
.success { min-height: 520px; display: grid; place-content: center; text-align: center; padding: 40px; border-radius: 22px; background: #fff; color: #222; }
.success[hidden] { display: none; }
.success > span { margin: auto; width: 64px; height: 64px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: #1bba64; font-size: 30px; }
.success h3 { font-size: 30px; margin: 20px 0 5px; }

footer { min-height: 130px; display: flex; align-items: center; gap: 40px; padding: 30px 5vw; background: #fff; }
.footer-legal { display: flex; flex-direction: column; gap: 3px; color: #555; font-size: 11px; line-height: 1.35; }
footer p { max-width: 480px; margin-left: auto; color: #777; font-size: 11px; line-height: 1.4; }
footer > a { color: #222; font-size: 12px; font-weight: 800; text-decoration: none; }
.mobile-cta { display: none; }
.mobile-cta--hidden { opacity: 0; transform: translateY(18px); pointer-events: none; }

.privacy-modal {
  width: min(780px, calc(100% - 32px));
  max-height: min(82vh, 850px);
  margin: auto;
  padding: 0;
  color: var(--ink);
  border: 0;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 24px 80px rgba(0,0,0,.35);
}
.privacy-modal::backdrop { background: rgba(10,10,12,.72); backdrop-filter: blur(3px); }
.privacy-modal__header { display: flex; align-items: flex-start; gap: 24px; padding: 28px 30px 22px; border-bottom: 1px solid #e5e5e5; }
.privacy-modal__header h2 { margin: 0; font-size: 28px; line-height: 1.1; letter-spacing: -.03em; }
.privacy-modal__close { flex: 0 0 auto; width: 38px; height: 38px; margin: -7px -8px 0 auto; padding: 0; color: #333; border: 0; border-radius: 50%; background: #f1f1f1; font-size: 28px; line-height: 1; cursor: pointer; }
.privacy-modal__content { max-height: calc(82vh - 160px); overflow-y: auto; padding: 24px 30px; }
.privacy-modal__content p { margin: 0; color: #4c4c4c; font-size: 14px; line-height: 1.65; }
.privacy-modal__content a { color: var(--red); }
.privacy-modal__footer { display: flex; justify-content: flex-end; padding: 18px 30px 24px; border-top: 1px solid #e5e5e5; }
.privacy-modal__footer button { padding: 13px 24px; color: #fff; border: 0; border-radius: 9px; background: var(--red); font-weight: 800; cursor: pointer; }

@media (max-width: 900px) {
  .site-header { height: 70px; }
  .header-trust { display: none; }
  .hero { min-height: 720px; margin: 0; border-radius: 0; }
  .hero > img { object-position: 64% center; }
  .hero-shade { background: linear-gradient(0deg, rgba(10,10,12,.94), rgba(10,10,12,.05) 80%); }
  .hero-content { position: absolute; left: 0; bottom: 0; width: 100%; padding: 34px 24px 45px; }
  .hero h1 { font-size: 43px; }
  .hero h2 { font-size: 19px; }
  .hero-content > p { font-size: 15px; }
  .hero-actions { align-items: stretch; flex-direction: column; gap: 14px; }
  .primary-cta { width: 100%; min-width: 0; }
  .hero-badge { padding-left: 0; border-left: 0; }
  .scroll-note { display: none; }
  .benefit-strip { grid-template-columns: 1fr 1fr; gap: 24px 0; padding: 28px 18px; }
  .benefit-strip > div:nth-child(2) { border: 0; }
  .benefit-strip > div { padding: 0 16px; }
  .story, .steps, .form-section { grid-template-columns: 1fr; gap: 45px; padding: 70px 24px; }
  .cards { grid-template-columns: 1fr; padding: 0 18px 70px; }
  .cards article { min-height: 0; padding: 25px 24px; }
  .form-pitch { position: static; }
  .form-grid { grid-template-columns: 1fr; gap: 0; }
  footer { flex-wrap: wrap; }
  footer p { order: 4; width: 100%; margin: 0; }
  .mobile-cta {
    position: fixed; z-index: 40; left: 12px; right: 12px; bottom: max(12px, env(safe-area-inset-bottom));
    display: flex; align-items: center; justify-content: center; min-height: 56px; padding: 14px 24px;
    color: #fff; border-radius: 12px; background: var(--red); box-shadow: 0 10px 30px rgba(130,0,8,.35);
    font-size: 16px; font-weight: 800; text-decoration: none; transition: opacity .2s ease, transform .2s ease;
  }
  body { padding-bottom: 78px; }
}

@media (max-width: 560px) {
  .site-header > a { display: none; }
  .brand-logo { width: 142px; }
  .hero { min-height: 760px; }
  .hero h1 { font-size: 38px; }
  .eyebrow { margin-bottom: 20px; }
  .story h2, .steps h2, .form-pitch h2 { font-size: 38px; }
  .benefit-strip b { font-size: 21px; }
  .benefit-strip span { font-size: 11px; }
  .application-form { padding: 22px 16px; }
  .gender { flex-wrap: wrap; }
  .privacy-modal__header { padding: 22px 20px 18px; }
  .privacy-modal__header h2 { font-size: 23px; }
  .privacy-modal__content { padding: 20px; }
  .privacy-modal__content p { font-size: 13px; }
  .privacy-modal__footer { padding: 15px 20px 20px; }
}
