/* ============================================================
   pages/shop.css — cennik, checkout, potwierdzenie zamówienia
   Ładowany TYLKO na stronach sklepu (/shop/*).
   ============================================================ */

/* Pricing hero — bazuje na .page-hero z sections.css */

.decision-box {
    margin: 0 0 2.5rem;
    padding: 1.75rem;
    background: linear-gradient(180deg, #ffffff 0%, #f7f6f2 100%);
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-card);
}

.decision-box__title {
    margin: 0 0 0.75rem;
    color: var(--primary);
}

.decision-box__intro {
    margin: 0 0 1.5rem;
    color: var(--gray-700);
    line-height: 1.7;
}

.decision-box__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}

.decision-box__item {
    padding: 1.25rem;
    background: var(--white);
    border: 1px solid var(--gray-200);
    border-radius: var(--radius);
}

.decision-box__item h3 {
    margin: 0 0 0.5rem;
    color: var(--primary);
}

.decision-box__item p {
    margin: 0;
    color: var(--gray-700);
    line-height: 1.7;
}

@media (min-width: 900px) {
    .decision-box__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

/* === CENNIK — SEKCJA KART (szare tło, mocniejszy kontrast) === */
.pricing-section-cards {
    padding-top: 6rem;
    padding-bottom: 4rem;
    background: var(--gray-100);
}


/* === CENNIK — KARTY === */
.pricing-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr));
    align-items: stretch;
    gap: 6rem var(--radius-card);
    margin: 0 auto;
    max-width: var(--container-max);
    justify-content: center;
    position: relative;
    z-index: 0;
}

.pricing-cards--single {
    max-width: 500px;
}

.pricing-card {
    position: relative;
    display: flex;
    flex-direction: column;
    background: var(--white);
    border: 1.5px solid var(--gray-200);
    border-radius: var(--radius-card);
    padding: 2rem 1.75rem;
    transition: box-shadow 0.2s;
    width: 100%;
    justify-self: center;
}

.pricing-card:hover {
    box-shadow: none;
}

.pricing-card--highlight {
    border-color: var(--accent);
    border-width: 2px;
}

.pricing-card--highlight:hover {
    box-shadow: none;
}


/* === CENNIK — PROMO LABEL (styl CyberFolks: z-index -1, chowa się za kartą) === */
/* Stacking: grid ma z-index:0 (stacking context), karta ma z-index:auto,
   label ma z-index:-1 → label jest ZA kartą ale PRZED tłem grida.
   padding-bottom = radius → label wchodzi pod zaokrąglenie karty (niewidoczny).
   transform przesuwa label w górę tak, że tekst wystaje nad kartą. */
.promo-label {
    position: absolute;
    left: -2px;
    right: -2px;
    top: 0;
    z-index: -1;
    display: block;
    background: var(--accent);
    color: var(--white);
    font-size: 1.05rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-align: center;
    padding: 1rem 1rem calc(var(--radius-card) + 1rem);
    border-radius: var(--radius-card) var(--radius-card) 0 0;
    transform: translateY(calc(-100% + var(--radius-card) + 0.1rem));
}


/* === CENNIK — MINI SECTION-LABEL W KARTACH === */
.pricing-card-label {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: var(--gray-600);
    margin-bottom: 0.75rem;
    margin-top: 2rem;
}


/* === CENNIK — TYTUŁ KARTY === */
.pricing-card-title h2 {
    font-size: 1.5rem;
    font-weight: 700;
    margin: 0 0 1rem 0;
    color: var(--primary);
    text-align: left;
}

.pricing-card-desc {
    color: var(--gray-600);
    font-size: 1rem;
    line-height: 1.5;
    margin: 0 0 1rem;
    text-align: left;
}


/* === CENNIK — CENY === */
.pricing-card-price {
    display: flex;
    align-items: baseline;
    gap: 6px;
    color: var(--primary);
    min-height: 4rem;
}

.price-prefix {
    font-size: 1rem;
    font-weight: 600;
    color: var(--gray-600);
    text-transform: lowercase;
}

.price-amount {
    font-size: 2.3rem;
    font-weight: 700;
}

.price-currency {
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--primary);
}

.price-period {
    font-size: 1rem;
    font-weight: 400;
    color: var(--gray-600);
}

.price-saved {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--primary);
}

.pricing-card-gross {
    color: var(--gray-600);
    font-size: 0.9rem;
    margin-bottom: 12px;
}

@media (min-width: 768px) {
    .pricing-card {
        padding: 3rem 2rem;
    }
    .pricing-card-price {
        gap: 8px;
    }
    .price-amount {
        font-size: 2.75rem;
    }
    .price-currency {
        font-size: 1.5rem;
    }
    .price-period {
        font-size: 1.125rem;
    }
}


/* === CENNIK — BADGE === */
.pricing-card-badge-wrapper {
    min-height: 0;
    margin: 1.25rem 0 1.15rem;
}

.pricing-card-badge {
    display: block;
    width: 100%;
    padding: 0.7rem;
    border-radius: 5rem;
    font-size: 1.1rem;
    font-weight: 600;
    margin: 0;
    text-align: center;
    background: var(--white);
    border: 2px solid var(--accent);
    color: var(--accent);
}


@media (min-width: 768px) {
    .pricing-card-badge-wrapper {
        min-height: 0;
    }
}


/* === CENNIK — CHECKLISTA CECH === */
.pricing-card-features {
    margin: 1.25rem 0;
}

.pricing-card-features div {
    position: relative;
    padding-left: 22px;
    margin-bottom: 8px;
}

.pricing-card-features div::before {
    content: "";
    position: absolute;
    left: 0;
    top: 1px;
    width: 16px;
    height: 16px;
    background-color: var(--primary);
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 11.5 L7 14 L12 7.5' stroke='%23000' stroke-width='2' stroke-linecap='butt' stroke-linejoin='miter' stroke-miterlimit='10'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 11.5 L7 14 L12 7.5' stroke='%23000' stroke-width='2' stroke-linecap='butt' stroke-linejoin='miter' stroke-miterlimit='10'/%3E%3C/svg%3E");
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
}

@media (min-width: 700px) {
    .pricing-card-features {
        min-height: 8.1rem;
        margin: 0.5rem 0 0 0;
    }
}

@media (min-width: 1495px) {
    .pricing-card-features {
        min-height: 6.7rem;
    }
}


/* === CENNIK — PODSUMOWANIE OSZCZĘDNOŚCI === */
.pricing-card-summary {
    padding-top: 2rem;
    border-top: 1px solid var(--gray-200);
    font-size: 0.9rem;
    color: var(--primary);
}

.pricing-card-summary .summary-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
    padding: 0;
    font-size: 0.9rem;
}

.pricing-card-summary .summary-savings {
    font-weight: 700;
}

.pricing-card-summary .summary-value {
    font-weight: 600;
}


/* === CENNIK — PRZYCISK KUP === */
.pricing-card-button {
    margin-top: auto;
    padding-top: 2.5rem;
}

.btn-buy {
    display: block;
    width: 100%;
    padding: 1rem 0.5rem;
    background-color: var(--primary);
    color: var(--white);
    border: 1px solid var(--primary);
    border-radius: 1.875rem;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s;
}

.btn-buy:hover {
    background: #1a1a1af0;
    color: var(--white);
    border-color: #1a1a1af0;
}

.pricing-link-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
}


/* === CENNIK — TABELE PORÓWNAWCZE === */
.pricing-comparison h3 {
    font-size: 1.25rem;
    font-weight: 700;
    margin: 2.5rem 0 1rem;
}

.comparison-scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border: 1.5px solid var(--gray-200);
    border-radius: var(--radius);
}

.comparison-table {
    width: 100%;
    min-width: 500px;
    border-collapse: collapse;
    font-size: 0.95rem;
}

.comparison-table th,
.comparison-table td {
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--gray-200);
    text-align: center;
    vertical-align: top;
}

.comparison-table tbody tr:last-child td {
    border-bottom: none;
}

.comparison-table thead th {
    font-weight: 700;
    color: var(--primary);
    background: var(--gray-50);
    border-bottom: 1.5px solid var(--gray-200);
}

.comparison-table th:first-child,
.comparison-table td:first-child {
    text-align: left;
}

.comparison-label {
    font-weight: 600;
    color: var(--primary);
    white-space: nowrap;
}

.comparison-net {
    display: block;
    font-weight: 600;
    color: var(--primary);
}

.comparison-gross {
    display: block;
    font-size: 0.85rem;
    color: var(--gray-600);
    font-weight: 400;
}

.comparison-savings {
    color: var(--primary);
    font-weight: 700;
}

.comparison-none {
    color: var(--gray-400);
}

.comparison-note {
    font-size: 0.85rem;
    color: var(--gray-600);
    margin-top: 0.75rem;
}

/* Features table */
.comparison-check {
    font-size: 1.2rem;
}

.check-yes {
    color: var(--success);
    font-weight: 700;
}

.check-no {
    color: var(--gray-400);
}


/* === CENNIK — INFO (stopka cennika, wewnątrz sekcji kart) === */
.pricing-info {
    text-align: center;
    margin-top: 3rem;
}

.pricing-info p {
    font-size: 1.1rem;
    color: var(--gray-700);
}

.pricing-card--service .pricing-card-features {
    min-height: 0;
}

.pricing-card--service .pricing-card-price {
    min-height: 0;
}


/* === CENNIK — TOGGLE OKRESÓW (wariant 4) === */
.pricing-period-toggle {
    display: flex;
    justify-content: center;
    gap: 0;
    margin-bottom: 3rem;
    border: 1px solid var(--gray-200);
    border-radius: var(--radius);
    overflow: hidden;
    max-width: fit-content;
    margin-left: auto;
    margin-right: auto;
}

.period-toggle-btn {
    padding: 0.75rem 1.5rem;
    border: none;
    background: var(--white);
    color: var(--primary);
    font-size: 1rem;
    font-weight: 600;
    font-family: var(--font-family);
    cursor: pointer;
    transition: all 0.2s;
    border-right: 1px solid var(--gray-200);
}

.period-toggle-btn:last-child {
    border-right: none;
}

.period-toggle-btn.active {
    background: var(--accent);
    color: var(--white);
}

.period-toggle-btn .badge {
    display: inline-block;
    margin-left: 0.5rem;
    font-size: 0.625rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 0.15rem 0.5rem;
    border-radius: var(--radius);
    background: var(--gray-100);
    color: var(--accent);
    vertical-align: middle;
}

.period-toggle-btn.active .badge {
    background: var(--white);
    color: var(--accent);
}

@media (max-width: 600px) {
    .pricing-period-toggle {
        flex-direction: column;
    }

    .period-toggle-btn {
        border-right: none;
        border-bottom: 1px solid var(--gray-200);
    }

    .period-toggle-btn:last-child {
        border-bottom: none;
    }
}


/* === CENNIK — WARIANT 4 KONTENER === */
.pricing-full {
    max-width: var(--container-max);
    margin: 0 auto;
}


/* === CHECKOUT === */
.billing-container {
    max-width: 800px;
    margin: 0 auto;
    padding: 2rem 0;
}

.billing-header h1 {
    font-size: 2.2rem;
    font-weight: 800;
    margin-bottom: 2rem;
    text-align: center;
}


/* === CHECKOUT — PODSUMOWANIE ZAMÓWIENIA === */
.order-summary-section {
    margin: 2.5rem 0;
}

.order-summary-section h2 {
    font-size: 1.5rem;
    font-weight: 700;
    margin-bottom: 1.5rem;
}

.summary-table {
    width: 100%;
    margin-bottom: 1.5rem;
}

.summary-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding: 0.5rem 0;
    font-size: 1rem;
}

.summary-label {
    color: var(--primary);
}

.summary-value {
    text-align: right;
    color: var(--primary);
}


/* === CHECKOUT — SEKCJE FORMULARZA === */
.form-section h2 {
    font-size: 1.5rem;
    font-weight: 700;
    margin: 2.5rem 0 1.5rem;
}

.form-section .form-group label {
    font-size: 0.9rem;
}


/* === CHECKOUT — KUPON (ukryty za linkiem) === */
.coupon-area {
    margin: 0.75rem 0 0;
}

.coupon-link {
    background: none;
    border: none;
    font-size: 0.9rem;
    color: var(--gray-600);
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 3px;
    padding: 0;
    font-family: var(--font-family);
}

.coupon-link:hover {
    color: var(--gray-800);
}

.coupon-form {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
}

.coupon-form.hidden {
    display: none;
}

.coupon-form input {
    text-transform: uppercase;
}

.coupon-form input::placeholder {
    text-transform: none;
}

@media (min-width: 480px) {
    .coupon-form {
        flex-direction: row;
        gap: 0.75rem;
    }

    .coupon-form input {
        flex: 1;
    }
}

.coupon-form .btn-primary {
    white-space: nowrap;
}

.coupon-msg {
    font-size: 0.8rem;
    margin-top: 0.3rem;
    min-height: 1.2rem;
}

.coupon-msg.success {
    color: var(--success);
}

.coupon-msg.error {
    color: var(--error);
}

.coupon-discount-row .summary-label,
.coupon-discount-row .summary-value {
    color: var(--success);
    font-weight: 500;
}


/* === CHECKOUT — TOTALS === */
.summary-totals {
    margin-top: 1rem;
}

.summary-row.bold .summary-label,
.summary-row.bold .summary-value {
    font-weight: 700;
}

.summary-row.bump-line .summary-label,
.summary-row.bump-line .summary-value {
    font-weight: 700;
}

.summary-table .summary-row:first-child .summary-label,
.summary-table .summary-row:first-child .summary-value {
    font-weight: 700;
}

.total-bar {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-top: 0.5rem;
    padding-top: 0.85rem;
    border-top: 1px solid var(--gray-400);
}

.total-label {
    font-weight: 700;
    font-size: 1rem;
}

.total-right {
    text-align: right;
}

.total-amount {
    font-size: 1.25rem;
    font-weight: 800;
}

.total-vat-info {
    font-size: 0.8rem;
    color: var(--gray-600);
    margin-top: 0.15rem;
}


/* === CHECKOUT — PRZYCISK CTA === */
.btn-checkout {
    width: 100%;
    margin-top: 1.25rem;
}


/* === CHECKOUT — ORDER BUMP === */
.bump-section {
    margin: 1.5rem 0;
    border: 2px solid var(--accent);
    border-radius: var(--radius);
    background: color-mix(in srgb, var(--accent) 5%, white);
}

.bump-offer {
    padding: 1.25rem;
}

.bump-header {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.5rem;
    cursor: pointer;
}

.bump-offer input[type="checkbox"] {
    width: 20px;
    height: 20px;
    min-width: 20px;
    cursor: pointer;
    accent-color: var(--accent);
}

.bump-title {
    font-weight: 700;
    font-size: 1rem;
}

.bump-description {
    font-size: 0.9rem;
    color: var(--color-muted);
    margin-bottom: 0.5rem;
    line-height: 1.5;
}

.bump-price {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-top: 0.25rem;
}

.bump-price-old {
    font-size: 0.85rem;
    text-decoration: line-through;
    color: var(--color-muted);
}

.bump-price-new {
    font-size: 1rem;
    font-weight: 700;
    color: var(--accent);
}

.bump-price-brutto {
    font-size: 0.85rem;
    color: var(--color-muted);
}

/* === CHECKOUT — ZGODY === */
.consent-section {
    margin: 1.5rem 0;
}

.consent-box {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.consent-box input[type="checkbox"] {
    width: 20px;
    height: 20px;
    min-width: 20px;
    cursor: pointer;
}

.consent-box label {
    font-size: 0.9rem;
    line-height: 1.4;
    cursor: pointer;
}

.consent-box a {
    color: var(--accent);
    text-decoration: underline;
}



.form-note {
    font-size: 0.9rem;
    color: var(--gray-600);
    line-height: 1.5;
    margin-top: 1rem;
}


/* === POTWIERDZENIE ZAMÓWIENIA === */
.order-complete-container {
    max-width: 800px;
    margin: 0 auto;
    padding: 2rem 0;
}

.complete-header {
    text-align: center;
    margin-bottom: 3rem;
}

.complete-header h1 {
    font-size: 2.2rem;
    font-weight: 800;
    margin-bottom: 1.5rem;
}

.complete-header p {
    font-size: 1.1rem;
    color: var(--gray-600);
    line-height: 1.5;
    margin: 0;
}


/* === POTWIERDZENIE — SEKCJE SZCZEGÓŁÓW === */
.details-section {
    margin-bottom: 2.5rem;
}

.details-title {
    font-size: 1.5rem;
    font-weight: 700;
    margin: 0 0 1.5rem;
}

.details-content {
    padding: 0.75rem 0;
}

.detail-row {
    margin-bottom: 0.75rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--gray-200);
}

.detail-row:last-child {
    border-bottom: none;
}

.detail-row span:first-child {
    display: block;
    font-size: 0.8rem;
    color: var(--gray-600);
    margin-bottom: 0.25rem;
}

.detail-row span:last-child {
    display: block;
    font-size: 1rem;
    font-weight: 600;
    color: var(--primary);
}


/* === POTWIERDZENIE — TABELA PŁATNOŚCI === */
.confirmation-table {
    overflow-x: auto;
    padding-bottom: 1.5rem;
}

.confirmation-table table {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid var(--gray-200);
    font-size: 1rem;
    color: var(--primary);
    font-weight: 600;
}

.confirmation-table td {
    padding: 0.5rem 0.75rem;
    border-bottom: 1px solid var(--gray-200);
}

.confirmation-table td:last-child {
    text-align: right;
}

.confirmation-table .total-row td {
    border-bottom: none;
}

.confirmation-table td:first-child {
    vertical-align: top;
}

/* Line items i kupon — 2-kolumnowy layout */
.confirmation-item-row .confirmation-item-cell {
    text-align: left;
    padding: 0.75rem;
    vertical-align: bottom;
}

.confirmation-item-row .confirmation-item-price {
    text-align: right;
    padding: 0.75rem;
    vertical-align: bottom;
    white-space: nowrap;
    font-size: 1rem;
    font-weight: 600;
}

.confirmation-item-label {
    display: block;
    font-size: 0.8rem;
    color: var(--gray-600);
    margin-bottom: 0.25rem;
}

.confirmation-item-value {
    display: block;
    font-size: 1rem;
    font-weight: 600;
    color: var(--primary);
}

.confirmation-item-row--discount .confirmation-item-value,
.confirmation-item-row--discount .confirmation-item-price {
    color: var(--success);
}

/* Summary rows — jawny font-size aby nie dziedziczyć mniejszego z td:first-child */
.confirmation-summary-row td {
    font-size: 1rem;
    font-weight: 600;
    padding: 0.6rem 0.75rem;
}


/* === POTWIERDZENIE — NASTĘPNE KROKI === */
.next-steps {
    margin-bottom: 2.5rem;
}

.next-steps ol {
    margin: 0;
    padding-left: 1.25rem;
    color: var(--gray-600);
    font-size: 1rem;
    line-height: 1.6;
    list-style: decimal;
}

.next-steps li {
    margin-bottom: 0.5rem;
}

.next-steps li:last-child {
    margin-bottom: 0;
}


/* === POTWIERDZENIE — AKCJE === */
.complete-actions {
    text-align: center;
    margin-bottom: 3rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

@media (min-width: 768px) {
    .complete-actions {
        flex-direction: row;
        justify-content: center;
        gap: 1.5rem;
    }
}


/* ============================================================
   PRODUKTY JEDNORAZOWE
   ============================================================ */

.products-list {
    display: grid;
    gap: 2rem;
    max-width: 800px;
    margin: 0 auto;
}

.product-card {
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 2rem;
    background: var(--white);
}

.product-card h3 {
    margin: 0 0 0.5rem;
}

.product-description {
    color: var(--text-light);
    margin: 0 0 1.5rem;
}

.product-price {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    margin-bottom: 1.5rem;
}

.product-price .price-net {
    font-size: 1.3rem;
    font-weight: 600;
}

.product-price .price-gross {
    font-size: 0.9rem;
    color: var(--text-light);
}

.buy-button-form {
    display: inline-block;
}

/* === FORMULARZ ZAPYTANIA OFERTOWEGO === */
.contact-form {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.contact-form .submit-group {
    margin-top: 1rem;
    text-align: left;
}

.contact-form .submit-group button {
    min-width: 14rem;
}

.contact-form .form-message {
    margin-top: 1rem;
    margin-bottom: 0;
}

.captcha-img {
    height: 3.2rem;
    border: 1px solid var(--gray-200);
    border-radius: var(--radius);
    background: var(--white);
    padding: 0.25rem 0.5rem;
    margin-bottom: 0.5rem;
}
