:root {
    --dn-bg: #f2f5f9;
    --dn-surface: #ffffff;
    --dn-border: #dce4ef;
    --dn-text: #1a2332;
    --dn-muted: #667085;
    --dn-accent: #ff6b00;
    --dn-accent-2: #073a65;
    --dn-ok: #0f9d58;
    --dn-radius: 14px;
    --dn-shadow: 0 4px 24px rgba(7, 58, 101, 0.07);
}

body.dn-modern-checkout-page .woocommerce {
    color: var(--dn-text);
}

body.dn-modern-checkout-page.woocommerce-checkout {
    background: radial-gradient(circle at 0% 0%, #fef3e8 0%, var(--dn-bg) 35%), var(--dn-bg);
}

/* Clean shell: keep theme header/footer only, hide sidebars/widgets/default checkout extras */
body.dn-modern-checkout-page.woocommerce-checkout .woocommerce-form-coupon-toggle,
body.dn-modern-checkout-page.woocommerce-checkout form.checkout_coupon,
body.dn-modern-checkout-page.woocommerce-checkout #secondary,
body.dn-modern-checkout-page.woocommerce-checkout .widget-area,
body.dn-modern-checkout-page.woocommerce-checkout .sidebar,
body.dn-modern-checkout-page.woocommerce-checkout .sidebar-primary,
body.dn-modern-checkout-page.woocommerce-checkout .sidebar-secondary,
body.dn-modern-checkout-page.woocommerce-checkout .content-area > aside:not(.dn-checkout-sidebar),
body.dn-modern-checkout-page.woocommerce-checkout .site-main > aside:not(.dn-checkout-sidebar),
body.dn-modern-checkout-page.woocommerce-checkout .woocommerce-breadcrumb,
body.dn-modern-checkout-page.woocommerce-checkout nav.woocommerce-breadcrumb {
    display: none !important;
}

body.dn-modern-checkout-page.woocommerce-checkout .site-content,
body.dn-modern-checkout-page.woocommerce-checkout #content,
body.dn-modern-checkout-page.woocommerce-checkout .content-area,
body.dn-modern-checkout-page.woocommerce-checkout .site-main {
    max-width: 1240px !important;
    width: 100% !important;
    margin: 0 auto !important;
    float: none !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
}

/* Strong frontend isolation for modern checkout.
   Prevents third-party theme/plugin CSS from shrinking the checkout area.
   PRIORITY: Remove all floats, display: table, and legacy layout hacks */
body.dn-modern-checkout-page.woocommerce-checkout .woocommerce,
body.dn-modern-checkout-page.woocommerce-checkout .woocommerce-checkout,
body.dn-modern-checkout-page.woocommerce-checkout .entry-content,
body.dn-modern-checkout-page.woocommerce-checkout .site-main,
body.dn-modern-checkout-page.woocommerce-checkout #main,
body.dn-modern-checkout-page.woocommerce-checkout #primary,
body.dn-modern-checkout-page.woocommerce-checkout .content-area,
body.dn-modern-checkout-page.woocommerce-checkout .post,
body.dn-modern-checkout-page.woocommerce-checkout .page {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
    float: none !important;
    display: block !important;
    box-sizing: border-box !important;
    clear: both !important;
}

body.dn-modern-checkout-page.woocommerce-checkout form.checkout.dn-modern-checkout {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    clear: both !important;
    box-sizing: border-box !important;
}

/* Keep only plugin-defined visual language inside checkout form */
body.dn-modern-checkout-page.woocommerce-checkout form.checkout.dn-modern-checkout,
body.dn-modern-checkout-page.woocommerce-checkout form.checkout.dn-modern-checkout * {
    box-sizing: border-box;
}

/* 🔥 NUCLEAR RESET: Remove ALL layout hacks from theme/plugins */
body.dn-modern-checkout-page.woocommerce-checkout form.checkout.dn-modern-checkout > * {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
    clear: both !important;
    position: relative !important;
}

body.dn-modern-checkout-page.woocommerce-checkout .col1-set,
body.dn-modern-checkout-page.woocommerce-checkout .col2-set,
body.dn-modern-checkout-page.woocommerce-checkout [style*="width:50%"],
body.dn-modern-checkout-page.woocommerce-checkout [style*="float:left"],
body.dn-modern-checkout-page.woocommerce-checkout [style*="float:right"] {
    display: block !important;
    width: 100% !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Custom structure classes to avoid inherited theme layout helpers */
.dn-modern-checkout .dn-customer-details-grid,
.dn-modern-checkout .dn-billing-column,
.dn-modern-checkout .dn-shipping-column {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.dn-modern-checkout-page.woocommerce-checkout form.checkout.dn-modern-checkout .dn-checkout-layout {
    display: grid !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    left: 0 !important;
    right: 0 !important;
    top: 0 !important;
    grid-template-columns: 1fr 420px !important;
    grid-template-areas: "main sidebar" !important;
    gap: 20px !important;
    align-items: start !important;
    padding: 20px !important;
    box-sizing: border-box !important;
}

/* FORÇA TOTAL: Assign grid areas aos filhos */
body.dn-modern-checkout-page.woocommerce-checkout form.checkout.dn-modern-checkout .dn-checkout-main {
    grid-area: main !important;
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.dn-modern-checkout-page.woocommerce-checkout form.checkout.dn-modern-checkout .dn-checkout-sidebar {
    grid-area: sidebar !important;
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
    position: sticky !important;
    top: 20px !important;
}

@media (max-width: 1024px) {
    body.dn-modern-checkout-page.woocommerce-checkout form.checkout.dn-modern-checkout .dn-checkout-layout {
        grid-template-columns: 1fr !important;
        grid-template-areas:
            "main"
            "sidebar" !important;
        padding: 15px !important;
    }
    
    body.dn-modern-checkout-page.woocommerce-checkout form.checkout.dn-modern-checkout .dn-checkout-sidebar {
        position: static !important;
        top: auto !important;
    }
}

.dn-checkout-progress,
.dn-accordion-step,
.dn-checkout-sidebar {
    opacity: 0;
    transform: translateY(10px);
    animation: dn-stage-in 0.55s ease forwards;
}

.dn-checkout-progress {
    animation-delay: 0.03s;
}

.dn-accordion-step:nth-of-type(1) {
    animation-delay: 0.10s;
}

.dn-accordion-step:nth-of-type(2) {
    animation-delay: 0.16s;
}

.dn-checkout-sidebar {
    animation-delay: 0.22s;
}

@keyframes dn-stage-in {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.dn-checkout-progress {
    display: flex;
    gap: 8px;
    margin: 0 0 16px;
    flex-wrap: wrap;
}

.dn-checkout-progress span {
    background: #e9eef5;
    border-radius: 99px;
    padding: 8px 12px;
    font-size: 12px;
    letter-spacing: 0.02em;
    color: var(--dn-muted);
    font-weight: 700;
}

.dn-checkout-progress span.is-active {
    background: #ffe3ce;
    color: #ab4500;
}

.dn-checkout-progress span.is-done {
    background: #e3f4ea;
    color: #127044;
}

.dn-modern-checkout .dn-checkout-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 420px);
    gap: 20px;
    align-items: start;
}

/* -----------------------------------------------------------------------
   Layout hardening against theme/plugin overrides (critical).
   Ensures checkout columns and fields cannot collapse to narrow widths.
   ----------------------------------------------------------------------- */
.dn-modern-checkout,
.dn-modern-checkout .dn-checkout-layout,
.dn-modern-checkout .dn-checkout-main,
.dn-modern-checkout .dn-checkout-sidebar,
.dn-modern-checkout #customer_details,
.dn-modern-checkout .dn-customer-details-grid,
.dn-modern-checkout .dn-billing-column,
.dn-modern-checkout .dn-shipping-column,
.dn-modern-checkout #customer_details .col-1,
.dn-modern-checkout #customer_details .col-2 {
    width: 100%;
    max-width: none;
    min-width: 0;
}

.dn-modern-checkout #customer_details .col-1,
.dn-modern-checkout #customer_details .col-2 {
    float: none;
    margin: 0;
}

.dn-modern-checkout .dn-billing-column,
.dn-modern-checkout .dn-shipping-column {
    float: none !important;
    clear: both !important;
}

.dn-modern-checkout .form-row,
.dn-modern-checkout .form-row-first,
.dn-modern-checkout .form-row-last,
.dn-modern-checkout .form-row-wide {
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
    clear: both !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
}

/* Last-resort guard for themes forcing half-width fields */
body.dn-modern-checkout-page.woocommerce-checkout .woocommerce form.checkout.dn-modern-checkout .form-row-first,
body.dn-modern-checkout-page.woocommerce-checkout .woocommerce form.checkout.dn-modern-checkout .form-row-last,
body.dn-modern-checkout-page.woocommerce-checkout .woocommerce form.checkout.dn-modern-checkout .form-row-wide,
body.dn-modern-checkout-page.woocommerce-checkout .woocommerce form.checkout.dn-modern-checkout p.form-row {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
    display: block !important;
    float: none !important;
    clear: both !important;
}

body.dn-modern-checkout-page.woocommerce-checkout .woocommerce form.checkout.dn-modern-checkout .woocommerce-input-wrapper,
body.dn-modern-checkout-page.woocommerce-checkout .woocommerce form.checkout.dn-modern-checkout .woocommerce-input-wrapper input,
body.dn-modern-checkout-page.woocommerce-checkout .woocommerce form.checkout.dn-modern-checkout .woocommerce-input-wrapper select,
body.dn-modern-checkout-page.woocommerce-checkout .woocommerce form.checkout.dn-modern-checkout .woocommerce-input-wrapper textarea {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
}

.dn-modern-checkout .form-row .input-text,
.dn-modern-checkout .form-row select,
.dn-modern-checkout .form-row textarea,
.dn-modern-checkout .select2,
.dn-modern-checkout .select2-container,
.dn-modern-checkout .select2-selection {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0;
    box-sizing: border-box;
}

.dn-modern-checkout .dn-checkout-main,
.dn-modern-checkout .dn-checkout-sidebar {
    background: var(--dn-surface);
    border: 1px solid var(--dn-border);
    border-radius: var(--dn-radius);
    box-shadow: var(--dn-shadow);
}

.dn-modern-checkout .dn-checkout-main {
    grid-area: main;
    padding: 0;
    background: transparent;
    border: none;
    box-shadow: none;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    float: none !important;
    margin: 0 !important;
}

.dn-modern-checkout .dn-checkout-sidebar {
    grid-area: sidebar;
    padding: 20px;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    float: none !important;
    margin: 0 !important;
}

.dn-modern-checkout-page.dn-modern-checkout-sticky-sidebar .dn-modern-checkout .dn-checkout-sidebar {
    position: sticky;
    top: 12px;
}

.dn-modern-checkout #order_review_heading,
.dn-modern-checkout #order_review,
.dn-modern-checkout .woocommerce-checkout-review-order,
.dn-modern-checkout .woocommerce-checkout-review-order-table,
.dn-modern-checkout #payment {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    float: none !important;
    clear: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box;
}

.dn-modern-checkout .dn-checkout-sidebar #order_review {
    display: block !important;
    position: static !important;
}

.dn-modern-checkout .dn-checkout-main #payment {
    display: block !important;
    position: static !important;
}

.dn-modern-checkout #customer_details {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
}

.dn-modern-checkout .woocommerce-billing-fields,
.dn-modern-checkout .woocommerce-shipping-fields,
.dn-modern-checkout .woocommerce-additional-fields {
    background: #fbfdff;
    border: 1px solid var(--dn-border);
    border-radius: 10px;
    padding: 12px;
}

.dn-modern-checkout .form-row input,
.dn-modern-checkout .form-row select,
.dn-modern-checkout .form-row textarea,
.dn-modern-checkout .select2-container .select2-selection--single {
    min-height: 46px;
    border: 1.5px solid #c8d6e5;
    border-radius: 10px;
    background: #fff;
    font-size: 14px;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.dn-modern-checkout .form-row input:focus,
.dn-modern-checkout .form-row select:focus,
.dn-modern-checkout .form-row textarea:focus {
    border-color: var(--dn-accent);
    box-shadow: 0 0 0 3px rgba(255, 107, 0, 0.1);
    outline: none;
}

.dn-modern-checkout .form-row textarea {
    min-height: 80px;
}

.dn-modern-checkout .woocommerce-checkout-review-order-table {
    border: 1px solid var(--dn-border);
    border-radius: 10px;
    overflow: hidden;
}

.dn-modern-checkout .woocommerce-checkout-review-order-table th,
.dn-modern-checkout .woocommerce-checkout-review-order-table td {
    padding: 10px;
}

.dn-modern-checkout .woocommerce-checkout-review-order-table tr:last-child td,
.dn-modern-checkout .woocommerce-checkout-review-order-table tr:last-child th {
    font-size: 16px;
    font-weight: 800;
}

.dn-modern-checkout .woocommerce-shipping-methods {
    display: grid;
    gap: 8px;
}

.dn-modern-checkout .woocommerce-shipping-methods li {
    border: 1px solid var(--dn-border);
    border-radius: 10px;
    padding: 10px;
    background: #fbfdff;
}

.dn-modern-checkout #payment .payment_methods > .wc_payment_method:first-child {
    background: linear-gradient(180deg, #fff8f1 0%, #fff 100%);
    border-left: 4px solid var(--dn-accent);
}

.dn-modern-checkout #payment {
    background: #f7fafc;
    border: 1px solid var(--dn-border);
    border-radius: 10px;
}

.dn-modern-checkout #payment .payment_methods > .wc_payment_method {
    border-bottom: 1px dashed #d5e0eb;
    padding: 10px;
}

.dn-modern-checkout #payment .payment_methods > .wc_payment_method.is-selected {
    background: #fff8f1;
    border-left: 3px solid var(--dn-accent);
}

.dn-modern-checkout #payment .place-order {
    position: sticky;
    bottom: 0;
    background: linear-gradient(180deg, rgba(247, 250, 252, 0.6) 0%, #f7fafc 35%);
    padding-top: 12px;
}

.dn-modern-checkout #place_order {
    width: 100%;
    min-height: 54px;
    border: 0;
    border-radius: var(--dn-radius);
    background: linear-gradient(135deg, var(--dn-accent) 0%, #ff8c30 100%);
    color: #fff;
    font-size: 17px;
    font-weight: 800;
    letter-spacing: 0.02em;
    box-shadow: 0 8px 20px rgba(255, 107, 0, 0.30);
    transition: filter 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
}

.dn-modern-checkout #place_order:hover {
    filter: brightness(1.06);
    transform: translateY(-1px);
    box-shadow: 0 12px 24px rgba(255, 107, 0, 0.36);
}

.dn-modern-checkout #place_order:active {
    transform: translateY(0);
}

.dn-trust-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 8px 0 12px;
}

.dn-trust-badges span {
    font-size: 11px;
    font-weight: 700;
    color: var(--dn-accent-2);
    border: 1px solid #b8c8da;
    border-radius: 99px;
    padding: 5px 10px;
    background: #eef4fa;
}

.dn-checkout-support {
    margin-top: 16px;
    padding: 10px;
    border-radius: 10px;
    background: #f5fbf6;
    border: 1px solid #c9e9d3;
}

.dn-checkout-support strong {
    display: block;
    margin-bottom: 8px;
}

.dn-checkout-support a {
    display: inline-block;
    color: #066938;
    font-weight: 700;
    text-decoration: none;
}

.dn-checkout-support a:hover {
    text-decoration: underline;
}

.dn-one-click-box {
    margin: 0 0 12px;
    padding: 12px;
    border-radius: 10px;
    border: 1px solid #ffd8bd;
    background: linear-gradient(180deg, #fffaf5, #fff);
}

.dn-one-click-box h4 {
    margin: 0 0 6px;
    color: #9a3d00;
}

.dn-one-click-box p {
    margin: 0 0 10px;
    color: var(--dn-muted);
    font-size: 13px;
}

.dn-one-click-list {
    display: grid;
    gap: 8px;
}

.dn-one-click-btn {
    border: 1px solid #ffc8a0;
    border-radius: 10px;
    background: #fff;
    color: #7f3200;
    font-weight: 700;
    min-height: 42px;
    text-align: left;
    padding: 10px 12px;
    cursor: pointer;
}

.dn-one-click-btn:hover {
    background: #fff3e9;
}

.dn-wallet-shortcuts-box {
    margin: 0 0 12px;
    padding: 12px;
    border-radius: 10px;
    border: 1px solid #d5e4b1;
    background: linear-gradient(180deg, #f8fde9, #fff);
}

.dn-wallet-shortcuts-box h4 {
    margin: 0 0 6px;
    color: #4f6f00;
}

.dn-wallet-shortcuts-box p {
    margin: 0 0 10px;
    color: #667642;
    font-size: 13px;
}

.dn-wallet-shortcuts-list {
    display: grid;
    gap: 8px;
}

.dn-wallet-btn {
    border: 1px solid #c3d599;
    border-radius: 10px;
    background: #fff;
    color: #3f5a00;
    font-weight: 700;
    min-height: 42px;
    text-align: left;
    padding: 10px 12px;
    cursor: pointer;
}

.dn-wallet-btn:hover {
    background: #f5fbde;
}

.dn-pix-sicoob-box {
    display: none;
    margin: 0 0 12px;
    padding: 12px;
    border-radius: 10px;
    border: 1px solid #b8d8ff;
    background: linear-gradient(180deg, #f4f9ff, #fff);
}

.dn-pix-sicoob-box.is-visible {
    display: block;
}

.dn-pix-sicoob-box h4 {
    margin: 0 0 6px;
    color: #0b4e8b;
}

.dn-pix-sicoob-box p {
    margin: 0;
    color: #32567b;
    font-size: 13px;
}

.dn-modern-cart-page .dn-cart-shipping-estimator {
    margin-bottom: 20px;
    padding: 16px;
    background: var(--dn-surface);
    border: 1px solid var(--dn-border);
    border-radius: var(--dn-radius);
    box-shadow: var(--dn-shadow);
}

.dn-modern-cart-page .dn-cart-shipping-estimator h3 {
    margin: 0 0 8px;
    color: var(--dn-text);
}

.dn-modern-cart-page .dn-cart-shipping-estimator p {
    margin: 0 0 12px;
    color: var(--dn-muted);
}

.dn-modern-cart-page .shipping-calculator-form {
    display: grid;
    gap: 10px;
    padding: 14px;
    background: #fbfdff;
    border: 1px solid var(--dn-border);
    border-radius: 10px;
}

.dn-modern-cart-page .shipping-calculator-form input,
.dn-modern-cart-page .shipping-calculator-form select,
.dn-modern-cart-page .shipping-calculator-form button {
    min-height: 46px;
    border-radius: 10px;
}

.dn-modern-cart-page .shipping-calculator-button,
.dn-modern-cart-page .shipping-calculator-form button {
    background: linear-gradient(135deg, var(--dn-accent), #ff9345);
    color: #fff;
    border: 0;
    font-weight: 700;
}

@media (max-width: 1024px) {
    .dn-modern-checkout .dn-checkout-layout {
        grid-template-columns: 1fr;
    }

    .dn-modern-checkout .dn-checkout-sidebar {
        position: static;
    }
}

@media (max-width: 680px) {
    .dn-modern-checkout .dn-checkout-main,
    .dn-modern-checkout .dn-checkout-sidebar {
        padding: 12px;
        border-radius: 10px;
    }

    .dn-modern-checkout #place_order {
        min-height: 54px;
        font-size: 17px;
    }

    .dn-checkout-progress {
        position: sticky;
        top: 0;
        z-index: 5;
        padding: 8px 0;
        background: var(--dn-bg);
    }
}

/* -----------------------------------------------------------------------
    Mobile floating CTA - shown on small screens when #place_order is
    scrolled out of the viewport.
    ----------------------------------------------------------------------- */
.dn-mobile-cta-bar {
    display: none;
}

@media (max-width: 680px) {
    .dn-mobile-cta-bar {
        display: flex;
        align-items: center;
        justify-content: center;
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        z-index: 9999;
        padding: 12px 16px;
        background: var(--dn-surface);
        box-shadow: 0 -4px 20px rgba(7, 58, 101, 0.14);
        /* Hidden by default - shown via JS when #place_order is off-screen */
        opacity: 0;
        pointer-events: none;
        transform: translateY(100%);
        transition: opacity 0.25s ease, transform 0.25s ease;
    }

    .dn-mobile-cta-bar.is-visible {
        opacity: 1;
        pointer-events: auto;
        transform: translateY(0);
    }

    .dn-mobile-cta-bar__btn {
        display: block;
        width: 100%;
        max-width: 480px;
        padding: 16px 24px;
        background: linear-gradient(135deg, var(--dn-accent), #ff9345);
        color: #fff;
        font-size: 17px;
        font-weight: 700;
        border: 0;
        border-radius: var(--dn-radius);
        cursor: pointer;
        text-align: center;
        text-decoration: none;
        letter-spacing: 0.01em;
        box-shadow: 0 4px 12px rgba(255, 107, 0, 0.35);
    }

    .dn-mobile-cta-bar__btn:active {
        transform: scale(0.98);
    }

    /* Add bottom padding to the page so content isn't hidden behind the bar */
    body.dn-modern-checkout-page {
        padding-bottom: 80px;
    }
}

/* =======================================================================
    Accordion two-step checkout - v0.14.0
    ======================================================================= */

/* ---- Step card ---- */
.dn-accordion-step {
    background: var(--dn-surface);
    border: 1.5px solid var(--dn-border);
    border-radius: var(--dn-radius);
    overflow: hidden;
    transition: border-color 0.25s ease, box-shadow 0.25s ease;
}

.dn-accordion-step + .dn-accordion-step {
    margin-top: 14px;
}

.dn-accordion-step.is-active {
    border-color: var(--dn-accent);
    box-shadow: 0 0 0 4px rgba(255, 107, 0, 0.07), var(--dn-shadow);
}

.dn-accordion-step.is-done {
    border-color: var(--dn-ok);
    box-shadow: 0 2px 8px rgba(15, 157, 88, 0.08);
}

/* ---- Step header ---- */
.dn-step-hd {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 16px 20px;
    cursor: default;
    user-select: none;
    transition: background 0.15s ease;
}

.dn-accordion-step.is-done .dn-step-hd {
    cursor: pointer;
}

.dn-accordion-step.is-done .dn-step-hd:hover {
    background: #f7fbff;
}

.dn-accordion-step.is-active .dn-step-hd {
    border-bottom: 1px solid var(--dn-border);
    background: linear-gradient(180deg, #fff8f2 0%, #fff 100%);
}

/* Locked steps are muted */
.dn-accordion-step:not(.is-active):not(.is-done) .dn-step-hd {
    opacity: 0.55;
    cursor: not-allowed;
    pointer-events: none;
}

/* ---- Badge (circle with number or checkmark) ---- */
.dn-step-badge {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: #e5ecf5;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 15px;
    font-weight: 800;
    color: var(--dn-muted);
    transition: background 0.25s ease, box-shadow 0.25s ease;
    position: relative;
    overflow: hidden;
}

.dn-accordion-step.is-active .dn-step-badge {
    background: var(--dn-accent);
    color: #fff;
    box-shadow: 0 4px 12px rgba(255, 107, 0, 0.35);
}

/* Done badge: green with checkmark (hide number via font-size: 0) */
.dn-accordion-step.is-done .dn-step-badge {
    background: var(--dn-ok);
    color: #fff;
    font-size: 0;
}

/* Checkmark via inline SVG background */
.dn-accordion-step.is-done .dn-step-badge::after {
    content: '';
    display: block;
    width: 18px;
    height: 18px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18' fill='none'%3E%3Cpath d='M3.5 9.5l4 4 7-8' stroke='white' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
}

/* ---- Step info text ---- */
.dn-step-info {
    flex: 1;
    min-width: 0;
}

.dn-step-title {
    display: block;
    font-size: 15px;
    font-weight: 700;
    color: var(--dn-text);
    line-height: 1.3;
}

.dn-step-subtitle {
    display: block;
    font-size: 12px;
    color: var(--dn-muted);
    margin-top: 3px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

#dn-step-2 .dn-step-subtitle.dn-has-summary,
#dn-step-3 .dn-step-subtitle.dn-has-summary,
#dn-step-4 .dn-step-subtitle.dn-has-summary {
    color: #0f6f3f;
    font-weight: 600;
}

.dn-shipping-stage-card,
.dn-review-stage-card {
    border: 1px solid var(--dn-border);
    border-radius: 10px;
    padding: 14px;
    background: #fff;
}

.dn-shipping-stage-card h4,
.dn-review-stage-card h4 {
    margin: 0 0 6px;
    font-size: 16px;
    font-weight: 600;
    color: var(--dn-text);
}

.dn-shipping-stage-card p,
.dn-review-stage-card p {
    margin: 0 0 12px;
    color: var(--dn-muted);
    font-size: 13px;
}

.dn-stage-empty {
    margin: 0;
    font-size: 13px;
    color: var(--dn-muted);
}

.dn-stage-options-list {
    display: grid;
    gap: 8px;
}

.dn-stage-option-btn {
    appearance: none;
    border: 1px solid var(--dn-border);
    background: #fff;
    color: var(--dn-text);
    border-radius: 8px;
    min-height: 44px;
    text-align: left;
    padding: 10px 12px;
    cursor: pointer;
    font-size: 14px;
    transition: border-color 0.15s ease, background 0.15s ease;
}

.dn-stage-option-btn:hover {
    border-color: #b8c6d8;
    background: #f8fbff;
}

.dn-stage-option-btn.is-selected {
    border-color: var(--dn-accent);
    background: #eef5ff;
}

#dn-review-stage-slot .woocommerce-checkout-review-order-table {
    margin: 0;
}

/* Summary text shown when done */
.dn-step-summary-text.dn-has-summary {
    color: #127044;
    font-weight: 600;
}

/* ---- Edit button (visible only on done steps) ---- */
.dn-step-edit-btn {
    display: none;
    flex-shrink: 0;
    padding: 5px 13px;
    border: 1.5px solid #ffd4a8;
    border-radius: 8px;
    background: #fff8f0;
    color: var(--dn-accent);
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.15s ease;
    line-height: 1.5;
}

.dn-step-edit-btn:hover {
    background: #ffede0;
}

.dn-accordion-step.is-done .dn-step-edit-btn {
    display: inline-block;
}

/* ---- Step body (collapsible panel) ---- */
.dn-step-bd {
    display: none;
    padding: 22px 20px;
    animation: dnStepFadeIn 0.3s ease;
}

.dn-accordion-step.is-active .dn-step-bd {
    display: block;
}

@keyframes dnStepFadeIn {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ---- Section grouping inside step body ---- */
.dn-modern-checkout .woocommerce-billing-fields,
.dn-modern-checkout .woocommerce-shipping-fields,
.dn-modern-checkout .woocommerce-additional-fields {
    position: relative;
    padding-bottom: 4px;
}

.dn-modern-checkout .woocommerce-billing-fields__field-wrapper h3,
.dn-modern-checkout .woocommerce-shipping-fields h3,
.dn-modern-checkout .woocommerce-additional-fields h3 {
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--dn-muted);
    margin: 0 0 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--dn-border);
}

/* ---- Continue button ---- */
.dn-step-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid var(--dn-border);
}

.dn-step-continue-btn {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 14px 30px;
    background: linear-gradient(135deg, var(--dn-accent) 0%, #ff8c30 100%);
    color: #fff;
    border: 0;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.01em;
    cursor: pointer;
    box-shadow: 0 6px 18px rgba(255, 107, 0, 0.30);
    transition: filter 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
}

.dn-step-continue-btn svg {
    width: 18px;
    height: 18px;
    stroke: currentColor;
    fill: none;
    stroke-width: 2.5;
    stroke-linecap: round;
    stroke-linejoin: round;
    flex-shrink: 0;
}

.dn-step-continue-btn:hover {
    filter: brightness(1.06);
    transform: translateY(-1px);
    box-shadow: 0 10px 22px rgba(255, 107, 0, 0.36);
}

.dn-step-continue-btn:active {
    transform: translateY(0);
    box-shadow: 0 4px 12px rgba(255, 107, 0, 0.25);
}

/* ---- Sidebar improvements ---- */
.dn-modern-checkout .dn-checkout-sidebar h3#order_review_heading {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--dn-accent-2);
    margin: 0 0 16px;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--dn-border);
}

.dn-modern-checkout .woocommerce-checkout-review-order-table tfoot tr:last-child th,
.dn-modern-checkout .woocommerce-checkout-review-order-table tfoot tr:last-child td {
    background: linear-gradient(180deg, #fffaf5 0%, #fff8f0 100%);
    color: var(--dn-text);
    font-size: 18px;
}

/* Checkout shipping method inside sidebar */
.dn-modern-checkout .woocommerce-shipping-methods li {
    border-radius: 10px;
    background: #fbfcff;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.dn-modern-checkout .woocommerce-shipping-methods li:has(input:checked) {
    background: #fff5ee;
    border-color: var(--dn-accent);
}

/* ---- Responsive adjustments ---- */
@media (max-width: 1024px) {
    .dn-accordion-step + .dn-accordion-step { margin-top: 12px; }
}

@media (max-width: 680px) {
    .dn-step-hd { padding: 14px 16px; gap: 12px; }
    .dn-step-bd { padding: 16px; }
    .dn-step-badge { width: 32px; height: 32px; font-size: 13px; }
    .dn-step-title { font-size: 14px; }
    .dn-step-actions { justify-content: stretch; }
    .dn-step-continue-btn { width: 100%; justify-content: center; }

    /* On mobile the main col has no outer padding */
    .dn-modern-checkout .dn-checkout-main { padding: 0 !important; }
}

/* =======================================================================
   ML-inspired visual layer (v0.15.0)
   ======================================================================= */

body.dn-modern-checkout-page {
    --dn-bg: #ededed;
    --dn-surface: #ffffff;
    --dn-border: #d9d9d9;
    --dn-text: #333333;
    --dn-muted: #666666;
    --dn-accent: #3483fa;
    --dn-accent-2: #2968c8;
    --dn-ok: #00a650;
}

body.dn-modern-checkout-page.woocommerce-checkout,
body.dn-modern-checkout-page.woocommerce-checkout .site,
body.dn-modern-checkout-page.woocommerce-checkout #page,
body.dn-modern-checkout-page.woocommerce-checkout #content,
body.dn-modern-checkout-page.woocommerce-checkout .site-content,
body.dn-modern-checkout-page.woocommerce-checkout .content-area,
body.dn-modern-checkout-page.woocommerce-checkout .site-main,
body.dn-modern-checkout-page.woocommerce-checkout .woocommerce,
body.dn-modern-checkout-page.woocommerce-checkout .entry-content {
    background: #ededed !important;
}

.dn-modern-checkout .dn-checkout-layout {
    max-width: 1180px !important;
    margin: 24px auto !important;
    gap: 24px !important;
}

.dn-checkout-progress {
    margin: 0 0 18px;
    gap: 10px;
}

.dn-checkout-progress span {
    background: #e9ecef;
    color: #4b5563;
    border: 1px solid #d8dde3;
    font-size: 14px;
    text-transform: none;
    letter-spacing: 0;
    padding: 8px 14px;
}

.dn-checkout-progress span.is-active {
    background: #fff;
    color: #111827;
    border-color: #cdd6e1;
}

.dn-checkout-progress span.is-done {
    background: #edf7f0;
    color: #1f7a44;
    border-color: #ccead8;
}

.dn-accordion-step {
    border: 1px solid #d9d9d9;
    border-radius: 10px;
    box-shadow: none;
    background: #fff;
}

.dn-accordion-step.is-active {
    border-color: #d9d9d9;
    box-shadow: none;
}

.dn-step-hd {
    padding: 18px 20px;
    background: #fff;
}

.dn-accordion-step.is-active .dn-step-hd {
    background: #fff;
    border-bottom: 1px solid #e5e7eb;
}

.dn-step-badge {
    width: 34px;
    height: 34px;
    background: #edf2f7;
    color: #64748b;
    box-shadow: none;
}

.dn-accordion-step.is-active .dn-step-badge {
    background: #3483fa;
    color: #fff;
    box-shadow: none;
}

.dn-step-title {
    font-size: 24px;
    font-weight: 500;
    color: #222;
}

.dn-step-subtitle {
    margin-top: 4px;
    font-size: 14px;
    color: #6b7280;
}

.dn-step-bd {
    padding: 20px;
    background: #fff;
}

.dn-modern-checkout .woocommerce-billing-fields,
.dn-modern-checkout .woocommerce-shipping-fields,
.dn-modern-checkout .woocommerce-additional-fields {
    background: #fff;
    border: 1px solid #d9d9d9;
    border-radius: 8px;
    padding: 14px;
}

.dn-modern-checkout .woocommerce-billing-fields__field-wrapper h3,
.dn-modern-checkout .woocommerce-shipping-fields h3,
.dn-modern-checkout .woocommerce-additional-fields h3 {
    font-size: 18px;
    font-weight: 400;
    text-transform: none;
    letter-spacing: 0;
    color: #374151;
    margin-bottom: 16px;
    border-bottom: 1px solid #e5e7eb;
}

.dn-modern-checkout .form-row label {
    color: #374151;
    font-size: 14px;
    font-weight: 500;
}

/* -----------------------------------------------------------------------
   Final accordion guard (must stay near file end).
   Guarantees only one checkout step body is visible at a time even if
   previous theme/plugin rules re-declare .dn-step-bd later.
   ----------------------------------------------------------------------- */
body.dn-modern-checkout-page.woocommerce-checkout .dn-modern-checkout .dn-accordion-step .dn-step-bd {
    display: none !important;
}

body.dn-modern-checkout-page.woocommerce-checkout .dn-modern-checkout .dn-accordion-step.is-active .dn-step-bd {
    display: block !important;
}

body.dn-modern-checkout-page.woocommerce-checkout .dn-modern-checkout .dn-accordion-step.is-done .dn-step-bd {
    display: none !important;
}

/* -----------------------------------------------------------------------
   v0.16.7 - new address-first layout block and simplified right summary.
   ----------------------------------------------------------------------- */
.dn-address-choice-card {
    display: grid;
    gap: 12px;
    margin: 0 0 16px;
    padding: 14px;
    background: #fff;
    border: 1px solid var(--dn-border);
    border-radius: 12px;
}

.dn-address-choice-card h4 {
    margin: 0;
    font-size: 18px;
    color: var(--dn-text);
}

.dn-address-option {
    display: grid;
    grid-template-columns: 18px 1fr;
    align-items: start;
    column-gap: 10px;
    row-gap: 4px;
    padding: 10px;
    border: 1px solid #d7e1ef;
    border-radius: 10px;
    cursor: pointer;
    background: #f9fbff;
}

.dn-address-option input[type="radio"] {
    margin-top: 3px;
}

.dn-address-option-title {
    display: block;
    font-weight: 700;
    color: #20334d;
}

.dn-address-option-text {
    display: block;
    grid-column: 2;
    color: #4a5f78;
    font-size: 13px;
    line-height: 1.45;
}

.dn-address-option.is-selected {
    border-color: #3483fa;
    background: #f4f8ff;
}

.dn-new-address-form-wrap[hidden] {
    display: none !important;
}

.dn-order-items-simple {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 10px;
}

.dn-order-item-simple {
    display: grid;
    gap: 4px;
    padding: 12px;
    border: 1px solid #dbe5f3;
    border-radius: 10px;
    background: #fbfdff;
}

.dn-order-item-simple__name {
    color: #1f2f45;
    font-weight: 700;
}

.dn-order-item-simple__qty {
    color: #5a6f87;
    font-size: 13px;
}

.dn-order-item-simple__price {
    color: #1f2f45;
    font-weight: 800;
}

.dn-order-item-simple--empty {
    color: #6f7f95;
}

.dn-order-review-hidden {
    display: none !important;
}

.dn-modern-checkout .form-row input,
.dn-modern-checkout .form-row select,
.dn-modern-checkout .form-row textarea,
.dn-modern-checkout .select2-container .select2-selection--single {
    border: 1px solid #cfd4dc;
    border-radius: 6px;
    min-height: 44px;
    font-size: 15px;
    box-shadow: none;
}

.dn-modern-checkout .form-row input:focus,
.dn-modern-checkout .form-row select:focus,
.dn-modern-checkout .form-row textarea:focus {
    border-color: #3483fa;
    box-shadow: 0 0 0 2px rgba(52, 131, 250, 0.15);
}

.dn-step-actions {
    border-top: 1px solid #e5e7eb;
    margin-top: 24px;
    padding-top: 16px;
}

.dn-step-continue-btn,
.dn-modern-checkout #place_order {
    background: #3483fa !important;
    border-radius: 8px;
    min-height: 48px;
    box-shadow: none !important;
    font-weight: 600;
    font-size: 16px;
}

.dn-step-continue-btn:hover,
.dn-modern-checkout #place_order:hover {
    background: #2968c8 !important;
    filter: none;
    transform: none;
}

.dn-modern-checkout .dn-checkout-sidebar {
    background: #fff;
    border: 1px solid #d9d9d9;
    border-radius: 10px;
    box-shadow: none;
    padding: 16px;
}

.dn-modern-checkout .dn-checkout-sidebar h3#order_review_heading {
    text-transform: none;
    letter-spacing: 0;
    font-size: 30px;
    font-weight: 500;
    color: #333;
    border-bottom: 1px solid #e5e7eb;
    margin-bottom: 12px;
    padding-bottom: 10px;
}

.dn-modern-checkout .woocommerce-checkout-review-order-table {
    border: 0;
}

.dn-modern-checkout .woocommerce-checkout-review-order-table th,
.dn-modern-checkout .woocommerce-checkout-review-order-table td {
    border-color: #ebedf0;
    font-size: 14px;
}

.dn-modern-checkout .woocommerce-checkout-review-order-table tfoot tr:last-child th,
.dn-modern-checkout .woocommerce-checkout-review-order-table tfoot tr:last-child td {
    background: #fff;
    font-size: 22px;
    font-weight: 600;
}

.dn-modern-checkout #payment {
    background: #fff;
    border: 1px solid #d9d9d9;
    border-radius: 8px;
}

.dn-modern-checkout #payment .payment_methods > .wc_payment_method,
.dn-modern-checkout #payment .payment_methods > .wc_payment_method.is-selected,
.dn-modern-checkout #payment .payment_methods > .wc_payment_method:first-child {
    border-left: 0 !important;
    border-bottom: 1px solid #ebedf0;
    background: #fff;
}

.dn-modern-checkout .woocommerce-shipping-methods li,
.dn-modern-checkout .woocommerce-shipping-methods li:has(input:checked) {
    background: #fff;
    border: 1px solid #d9d9d9;
}

.dn-trust-badges,
.dn-checkout-support {
    display: none;
}

@media (max-width: 1024px) {
    .dn-modern-checkout .dn-checkout-layout {
        margin: 16px auto !important;
        gap: 14px !important;
    }

    .dn-modern-checkout .dn-checkout-sidebar {
        order: 2;
    }

    .dn-modern-checkout .dn-checkout-main {
        order: 1;
    }
}

@media (max-width: 680px) {
    .dn-step-title {
        font-size: 18px;
    }

    .dn-modern-checkout .woocommerce-billing-fields__field-wrapper h3,
    .dn-modern-checkout .woocommerce-shipping-fields h3,
    .dn-modern-checkout .woocommerce-additional-fields h3 {
        font-size: 17px;
    }

    .dn-modern-checkout .dn-checkout-sidebar h3#order_review_heading {
        font-size: 20px;
    }

    .dn-step-continue-btn,
    .dn-modern-checkout #place_order {
        font-size: 16px;
    }
}
