/* Indirim kodu (odeme sayfasi, public/payment.php + assets/js/coupon.js) */
.cpn { margin: 2px 0 18px; border: 1.5px dashed #c9dce8; border-radius: 12px; background: #f8fcff; }
.cpn[open] { border-style: solid; border-color: #b9d9ea; }
.cpn.is-applied { border-color: #8fd3b6; background: #f2fbf6; }
.cpn-toggle {
    display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 14px; cursor: pointer; list-style: none; user-select: none;
    font-size: 14px; font-weight: 700; color: var(--primary-dark, #0b567a); border-radius: 12px;
}
.cpn-toggle::-webkit-details-marker { display: none; }
.cpn-toggle::after {
    content: "\f078"; margin-inline-start: auto; font-family: "Font Awesome 6 Free", sans-serif; font-weight: 900; font-size: 10px;
    transition: transform .2s ease;
}
.cpn[open] .cpn-toggle::after { transform: rotate(180deg); }
.cpn-toggle:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
.cpn-toggle i { color: var(--primary); }
.cpn-body { padding: 0 14px 14px; }
.cpn-label { display: block; margin-bottom: 6px; font-size: 12.5px; font-weight: 600; color: #475569; }
.cpn-row { display: flex; gap: 8px; }
.cpn-input { flex: 1; min-width: 0; height: 48px; text-transform: uppercase; letter-spacing: .08em; font-weight: 700; }
.cpn-input::placeholder { text-transform: none; letter-spacing: normal; font-weight: 400; }
.cpn-input[readonly] { background: #fff; border-color: #8fd3b6; color: #0f6b4b; }
.cpn-btn {
    flex-shrink: 0; min-width: 96px; height: 48px; padding: 0 16px; font-family: inherit; font-size: 14px; font-weight: 800;
    color: #fff; background: var(--primary-dark, #0b567a); border: 0; border-radius: 10px; cursor: pointer;
}
.cpn-btn:hover { filter: brightness(1.08); }
.cpn-btn:focus-visible { outline: 3px solid rgba(22, 141, 189, .35); outline-offset: 2px; }
.cpn-btn:disabled { opacity: .7; cursor: progress; }
.cpn-btn.is-busy { position: relative; color: transparent; }
.cpn-btn.is-busy::after {
    content: ""; position: absolute; inset: 0; margin: auto; width: 18px; height: 18px;
    border: 2px solid rgba(255, 255, 255, .5); border-top-color: #fff; border-radius: 50%; animation: cpn-spin .7s linear infinite;
}
.cpn-btn.is-remove { color: #b42318; background: #fff; border: 1.5px solid #f1c4bf; }
.cpn-btn[hidden] { display: none; }
@keyframes cpn-spin { to { transform: rotate(360deg); } }
.cpn-msg { margin: 8px 0 0; font-size: 13px; line-height: 1.45; }
.cpn-msg:empty { display: none; }
.cpn-msg.is-error { color: #b42318; }
.cpn-msg.is-ok { color: #0f6b4b; font-weight: 600; }
.cpn-sum { margin: 10px 0 0; padding: 4px 12px; background: #fff; border: 1px solid #d7efe3; border-radius: 10px; }
.cpn-sum[hidden] { display: none; }
.cpn-sum > div { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 7px 0; font-size: 13.5px; }
.cpn-sum > div + div { border-top: 1px dashed #e2e8f0; }
.cpn-sum dt { color: #64748b; }
.cpn-sum dd { margin: 0; font-weight: 700; color: #0f172a; text-align: end; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.cpn-sum .is-discount dd { color: #0f6b4b; }
.cpn-sum .is-total dd { font-size: 15px; }
.cpn-hint { margin: 10px 0 0; font-size: 12px; line-height: 1.5; color: #64748b; }

/* Kod uygulaninca ust bolumdeki kampanya fiyati / etiketi gizlenir (kod ve kampanya birlesmez) */
.pay-hero.has-coupon .pay-hero-original,
.pay-hero.has-coupon:not(.pay-hero--bundle) .pay-campaign-badge { display: none; }
/* Paket: paket etiketi kalir, paket indirimi satirlari gizlenir (kod normal toplama uygulanir) */
.pay-hero--bundle.has-coupon .pay-cmp-summary > div:not(.is-total) { display: none; }
#payCardFields[hidden] { display: none; }

@media (max-width: 380px) {
    .cpn-row { flex-wrap: wrap; }
    .cpn-btn { flex: 1 1 100%; }
}
@media (hover: none) {
    .cpn-btn:hover { filter: none; }
}
