.ptp-notice,
.ptp-partner-public {
    --ptp-ink: #153f40;
    --ptp-teal: #026a6a;
    --ptp-paper: #fffdf8;
    --ptp-muted: #466465;
    --ptp-border: #cbdcda;
    box-sizing: border-box;
    font-family: inherit;
}
.ptp-notice *,
.ptp-partner-public * { box-sizing: border-box; }
.ptp-notice {
    position: relative;
    z-index: 10;
    padding: 13px 24px;
    background: #e8f2ef;
    color: var(--ptp-ink);
    border-bottom: 1px solid #cbded8;
    font-size: 14px;
    line-height: 1.5;
}
.ptp-notice__inner {
    max-width: 1110px;
    margin-inline: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px 28px;
}
.ptp-notice__copy { display: flex; align-items: baseline; flex-wrap: wrap; gap: 3px 14px; }
.ptp-notice strong { color: var(--ptp-teal); font-weight: 750; white-space: nowrap; }
.ptp-notice a { color: var(--ptp-teal); font-weight: 700; text-underline-offset: 3px; white-space: nowrap; }
.ptp-plan-quicklink { display: inline-flex; align-items: center; margin: 12px 0 0 16px; color: #026a6a; font-size: 15px; font-weight: 700; text-underline-offset: 4px; }
.ptp-plan-quicklink:focus-visible { outline: 3px solid #026a6a; outline-offset: 4px; }
.ptp-partner-public {
    max-width: 1110px;
    margin: 48px auto 64px;
    padding: 0 24px;
    color: var(--ptp-ink);
    font-size: 16px;
    line-height: 1.65;
}
.ptp-partner-public .ptp-section { scroll-margin-top: 32px; }
.ptp-partner-public .ptp-kicker {
    margin: 0 0 10px;
    color: var(--ptp-teal);
    font-size: 13px;
    font-weight: 750;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.ptp-partner-public h2 { margin: 0 0 16px; color: var(--ptp-ink); font-size: clamp(28px, 4vw, 40px); line-height: 1.18; letter-spacing: -.025em; }
.ptp-partner-public h3 { margin: 14px 0 10px; color: var(--ptp-ink); font-size: 24px; line-height: 1.25; }
.ptp-partner-public .ptp-intro { max-width: 740px; margin: 0 0 24px; color: var(--ptp-muted); font-size: 18px; }
.ptp-document-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.ptp-document-card { display: flex; flex-direction: column; align-items: flex-start; padding: 32px; border: 1px solid var(--ptp-border); border-radius: 16px; background: var(--ptp-paper); }
.ptp-document-card p { margin: 0 0 24px; color: var(--ptp-muted); }
.ptp-file-type { display: inline-flex; padding: 3px 10px; background: #e7f2ef; color: var(--ptp-teal); border-radius: 4px; font-size: 12px; letter-spacing: .05em; font-weight: 750; }
.ptp-document-link { display: inline-flex; align-items: center; gap: 12px; margin-top: auto; color: var(--ptp-teal); font-weight: 700; text-underline-offset: 4px; line-height: 1.5; }
.ptp-document-link svg { flex-shrink: 0; }
.ptp-partner-public .ptp-projection-note { margin: 18px 0 0; max-width: 850px; color: var(--ptp-muted); font-size: 14px; line-height: 1.6; }
.ptp-partner-public .ptp-application { margin-top: 52px; padding: 36px; background: var(--ptp-paper); border: 1px solid var(--ptp-border); border-radius: 20px; }
.ptp-partner-public .ptp-required-note { margin: 0 0 28px; color: var(--ptp-muted); font-size: 13px; }
.ptp-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.ptp-form .ptp-form-fields { display: block; min-width: 0; margin: 0; padding: 0; border: 0; }
.ptp-field { min-width: 0; }
.ptp-field--full { grid-column: 1 / -1; }
.ptp-form .ptp-field label { display: block; margin: 0 0 8px; color: var(--ptp-ink); font-size: 15px; font-weight: 650; line-height: 1.45; }
.ptp-form .ptp-field input,
.ptp-form .ptp-field textarea,
.ptp-form .ptp-field select { display: block; width: 100%; min-height: 48px; margin: 0; padding: 12px 14px; color: var(--ptp-ink); background-color: #fff; border: 1px solid #94afac; border-radius: 8px; font: inherit; font-size: 16px; line-height: 1.4; box-shadow: none; }
.ptp-form .ptp-field select { padding-right: 32px; }
.ptp-form .ptp-field textarea { min-height: 126px; resize: vertical; }
.ptp-form .ptp-field small { display: block; margin-top: 7px; color: var(--ptp-muted); font-size: 12px; line-height: 1.5; }
.ptp-form .ptp-field .ptp-field-error { color: #a32e30; font-weight: 650; }
.ptp-form .ptp-field .ptp-field-error:empty { display: none; }
.ptp-form [aria-invalid="true"] { border-color: #a32e30 !important; }
.ptp-notice a:focus-visible,
.ptp-partner-public a:focus-visible,
.ptp-partner-public input:focus-visible,
.ptp-partner-public select:focus-visible,
.ptp-partner-public textarea:focus-visible,
.ptp-partner-public button:focus-visible { outline: 3px solid #026a6a; outline-offset: 4px; }
.ptp-consents { display: grid; gap: 18px; margin: 28px 0; padding: 24px 0; border-top: 1px solid var(--ptp-border); border-bottom: 1px solid var(--ptp-border); }
.ptp-form .ptp-checkbox { display: flex; align-items: flex-start; gap: 12px; color: var(--ptp-ink); cursor: pointer; font-size: 14px; font-weight: 400; line-height: 1.6; }
.ptp-form .ptp-checkbox input { flex: 0 0 20px; width: 20px; height: 20px; min-height: 0; margin: 2px 0 0; padding: 0; accent-color: var(--ptp-teal); cursor: pointer; }
.ptp-submit-row { display: flex; align-items: center; gap: 20px 24px; }
.ptp-form .ptp-submit { flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; gap: 12px; max-width: 100%; min-height: 50px; padding: 14px 22px; border: 1px solid var(--ptp-teal); border-radius: 8px; background: var(--ptp-teal); color: #fff; font: inherit; font-size: 16px; font-weight: 700; line-height: 1.4; cursor: pointer; text-decoration: none; }
.ptp-form .ptp-submit:hover { background: #014f50; border-color: #014f50; }
.ptp-form .ptp-submit:disabled { opacity: .6; cursor: not-allowed; }
.ptp-submit-row p { max-width: 290px; margin: 0; color: var(--ptp-muted); font-size: 13px; line-height: 1.6; }
.ptp-partner-public .ptp-privacy { max-width: 760px; margin: 18px 0 0; color: var(--ptp-muted); font-size: 12px; line-height: 1.65; }
.ptp-partner-public .ptp-direct { margin: 24px 0 0; color: var(--ptp-muted); font-size: 14px; }
.ptp-direct a, .ptp-noscript a { color: var(--ptp-teal); font-weight: 700; white-space: nowrap; text-underline-offset: 3px; }
.ptp-noscript { padding: 18px; border: 1px solid #b66b4d; border-radius: 8px; background: #fff1e9; color: var(--ptp-ink); }
@media (max-width: 740px) {
    .ptp-notice { padding: 12px 20px; }
    .ptp-notice__inner { align-items: flex-start; flex-direction: column; gap: 8px; }
    .ptp-notice__copy { display: block; }
    .ptp-notice__copy strong { display: block; margin-bottom: 3px; }
    .ptp-plan-quicklink { margin: 12px 0 0; }
    .ptp-partner-public { margin: 36px auto 44px; padding: 0 20px; }
    .ptp-document-grid, .ptp-form-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
    .ptp-document-card { padding: 24px; }
    .ptp-partner-public .ptp-application { margin-top: 36px; padding: 24px 20px; border-radius: 16px; }
    .ptp-partner-public .ptp-intro { font-size: 17px; }
    .ptp-submit-row { flex-direction: column; align-items: flex-start; gap: 12px; }
    .ptp-form .ptp-submit { width: 100%; white-space: normal; }
    .ptp-submit-row p { max-width: none; }
}
@media (prefers-reduced-motion: no-preference) {
    .ptp-form .ptp-submit { transition: background-color .15s, border-color .15s; }
}

