.cancellation-main { max-width: 980px; margin: 0 auto; padding: 34px 14px 60px; }
.cancellation-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; margin-bottom: 24px; }
.cancellation-heading h1 { margin: 0 0 8px; color: var(--public-secondary); font-size: clamp(28px, 5vw, 40px); font-weight: 850; }
.cancellation-heading p { max-width: 690px; margin: 0; color: #667771; }
.cancellation-card { margin-bottom: 20px; padding: clamp(22px, 4vw, 34px); border: 1px solid #dce7e3; border-radius: 22px; background: #fff; box-shadow: 0 12px 35px rgba(15,61,52,.06); }
.cancellation-step { display: flex; align-items: center; gap: 14px; margin-bottom: 24px; }
.cancellation-step > span { display: grid; flex: 0 0 46px; width: 46px; height: 46px; place-items: center; border-radius: 14px; background: var(--public-secondary); color: #fff; font-weight: 800; }
.cancellation-step h2, .terms-card h2 { margin: 0; color: var(--public-secondary); font-size: 20px; font-weight: 800; }
.cancellation-step p { margin: 3px 0 0; color: #788780; font-size: 13px; }
.upload-card { display: flex; min-height: 205px; flex-direction: column; gap: 9px; padding: 22px; border: 2px dashed #bed1ca; border-radius: 16px; background: #f8fbfa; cursor: pointer; }
.upload-card:hover { border-color: var(--public-primary); background: #f2f8f5; }
.upload-card strong { color: var(--public-secondary); font-size: 18px; }
.upload-card span, .upload-card small { color: #71817b; }
.upload-card input { margin-top: auto; }
.signature-input { font-family: Georgia, serif; font-size: 19px; font-style: italic; }
.terms-card { border-color: #f1c6c6; background: #fffafa; }
.terms-card ul { margin: 16px 0 0; padding-left: 20px; color: #5c4848; }
.terms-card li + li { margin-top: 8px; }
.cancellation-submit { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 12px 2px; }
.cancellation-submit p { margin: 0; color: #6d7773; font-size: 13px; }
.cancellation-receipt { padding: clamp(25px, 5vw, 48px); border: 1px solid #d9e5e0; border-radius: 22px; background: #fff; box-shadow: 0 18px 55px rgba(15,61,52,.09); }
.receipt-head { display: flex; justify-content: space-between; gap: 18px; padding-bottom: 20px; border-bottom: 2px solid var(--public-secondary); }
.receipt-head h1 { margin: 4px 0 0; color: var(--public-secondary); font-size: clamp(21px, 4vw, 30px); font-weight: 850; }
.receipt-head > span { align-self: flex-start; padding: 7px 11px; border-radius: 999px; background: #fff1c9; color: #755600; font-size: 12px; font-weight: 800; }
.receipt-protocol { margin: 25px 0; padding: 20px; border-radius: 14px; background: var(--public-secondary); color: #fff; text-align: center; }
.receipt-protocol small { display: block; opacity: .72; }
.receipt-protocol strong { display: block; margin-top: 3px; font-size: 30px; letter-spacing: .08em; }
.receipt-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.receipt-grid > div, .receipt-text { padding: 14px; border-radius: 10px; background: #f6f9f8; }
.receipt-grid small, .receipt-text small { display: block; color: #75847e; }
.receipt-grid strong { display: block; overflow-wrap: anywhere; }
.receipt-text { margin-top: 14px; }
.receipt-text p { margin: 5px 0 0; }
.receipt-signature { max-width: 440px; margin: 45px auto 24px; border-bottom: 1px solid #333; text-align: center; }
.receipt-signature span { display: block; font-family: Georgia, serif; font-size: 22px; font-style: italic; }
.receipt-signature small { display: block; transform: translateY(22px); }
.receipt-notice { margin: 42px 0 0; padding: 13px; border-left: 4px solid #e0aa36; background: #fff8e7; color: #66562f; font-size: 12px; }
@media (max-width: 575.98px) { .cancellation-heading, .cancellation-submit { align-items: stretch; flex-direction: column; } .cancellation-heading .btn, .cancellation-submit .btn { width: 100%; } .receipt-grid { grid-template-columns: 1fr; } .receipt-head { flex-direction: column; } }
@media print { .no-print, .public-topbar, .public-footer { display: none !important; } .cancellation-main { max-width: none; padding: 0; } .cancellation-receipt { border: 0; box-shadow: none; } }
