/* =============================================================
   ADORNCROFT – CART PAGE
   ============================================================= */

:root {
    --ac-cream  : #F7F3EE;
    --ac-dark   : #2B2A29;
    --ac-sand   : #EDE3D7;
    --ac-rule   : rgba(43, 42, 41, 0.68);
    --ac-font-h : 'Cormorant Garamond', Georgia, serif;
    --ac-font-b : 'Satoshi Variable', 'Satoshi', system-ui, -apple-system, sans-serif;
    --ac-max-w  : 1400px;
}

/* ── Global Satoshi override – beats Astra/WC specificity ─── */
.ac-cart-page,
.ac-cart-page * {
    font-family : var(--ac-font-b) !important;
}

/* Restore Cormorant for display headings */
.ac-cart-title,
.ac-summary-title,
.ac-extras-title,
.ac-extra-name,
.ac-extra-name a {
    font-family : var(--ac-font-h) !important;
}

/* ── Astra layout resets for cart page ────────────────────── */
.woocommerce-cart #page,
.woocommerce-cart .site,
.woocommerce-cart .ast-container,
.woocommerce-cart .site-content,
.woocommerce-cart #primary,
.woocommerce-cart #content,
.woocommerce-cart .site-main,
.woocommerce-cart .entry-content,
.woocommerce-cart article {
    max-width    : 100% !important;
    width        : 100% !important;
    margin-left  : 0 !important;
    margin-right : 0 !important;
    padding      : 0 !important;
    background   : var(--ac-cream) !important;
    box-sizing   : border-box !important;
}

.woocommerce-cart form.woocommerce-cart-form {
    max-width : 100% !important;
    width     : 100% !important;
    padding   : 0 !important;
    margin    : 0 !important;
}

/* Hide the default Astra / WordPress page title on cart */
.woocommerce-cart h1.entry-title,
.woocommerce-cart .ast-page-title-wrap,
.woocommerce-cart .page-title-wrap {
    display : none !important;
}

/* ── Outer wrapper ─────────────────────────────────────────── */
.ac-cart-page {
    background  : var(--ac-cream);
    font-family : var(--ac-font-b);
    color       : var(--ac-dark);
    padding-bottom : 80px;
}

/* ── WooCommerce notices ───────────────────────────────────── */
.ac-cart-page .woocommerce-notices-wrapper,
.ac-cart-page .woocommerce-error,
.ac-cart-page .woocommerce-message,
.ac-cart-page .woocommerce-info {
    padding : 0 40px;
}

/* ── Page heading ──────────────────────────────────────────── */
.ac-cart-header {
    padding : 40px 40px 0;
}

.ac-cart-title {
    font-family   : var(--ac-font-h);
    font-size     : clamp(28px, 3vw, 42px);
    font-weight   : 700;
    color         : var(--ac-dark);
    line-height   : 1.24;
    margin        : 0;
}

/* ── Two-column layout ─────────────────────────────────────── */
.ac-cart-layout {
    display               : grid;
    grid-template-columns : 1fr 33%;
    align-items           : stretch;
    padding               : 0 0 0 40px;
}

/* ─────────────────────────────────────────────────────────────
   LEFT COLUMN – heading + items
   ───────────────────────────────────────────────────────────── */
.ac-cart-left {
    padding-top   : 40px;
    padding-right : 56px;
    min-width     : 0;
}

/* Column headers */
.ac-cart-columns {
    display               : grid;
    grid-template-columns : 2fr 1fr 1fr 32px;
    align-items           : end;
    padding-bottom        : 14px;
    gap                   : 16px;
}

.ac-cart-columns span {
    font-family : var(--ac-font-b);
    font-size   : 18px;
    font-weight : 400;
    color       : var(--ac-dark);
    line-height : 1.2;
}

.ac-col-product { text-align : left; }
.ac-col-qty     { text-align : center; }
.ac-col-price   { text-align : left; }

/* Dividers */
.ac-cart-divider {
    height     : 1px;
    background : var(--ac-rule);
}

/* Item row */
.ac-cart-row {
    display               : grid;
    grid-template-columns : 2fr 1fr 1fr 32px;
    align-items           : center;
    padding               : 28px 0;
    gap                   : 16px;
}

/* Product cell */
.ac-cart-product {
    display     : flex;
    align-items : flex-start;
    gap         : 24px;
}

.ac-cart-thumb {
    width      : 100px;
    height     : 100px;
    flex-shrink: 0;
    overflow   : hidden;
}

.ac-cart-thumb a { display : block; width : 100%; height : 100%; }

.ac-cart-thumb img {
    width      : 100%;
    height     : 100%;
    object-fit : cover;
    display    : block;
}

.ac-cart-info {
    display        : flex;
    flex-direction : column;
    gap            : 6px;
    padding-top    : 4px;
}

.ac-cart-name,
.ac-cart-name a {
    font-family : var(--ac-font-b);
    font-size   : 14px;
    font-weight : 400;
    color       : var(--ac-dark) !important;
    text-decoration : none;
    line-height     : 1.6;
}

.ac-cart-name a:hover { text-decoration : underline; }

/* Variation data */
.ac-cart-info dl.variation         { margin : 4px 0 0; }
.ac-cart-info dl.variation dt,
.ac-cart-info dl.variation dd      { display : inline; font-size : 12px; color : var(--ac-rule); margin : 0; }

/* Remove (trash icon) */
.ac-cart-remove {
    display         : flex;
    justify-content : center;
    align-items     : center;
}

.ac-remove-btn {
    display    : flex;
    color      : var(--ac-rule);
    transition : color 0.2s;
    line-height: 0;
}

.ac-remove-btn:hover { color : var(--ac-dark); }

/* Quantity cell */
.ac-cart-qty {
    display         : flex;
    justify-content : center;
}

.ac-cart-qty .quantity {
    display     : flex;
    align-items : center;
    border      : 1px solid var(--ac-dark);
    background  : var(--ac-cream);
    height      : 38px;
    padding     : 0 10px;
}

.ac-cart-qty input.qty {
    font-family       : var(--ac-font-b);
    font-size         : 14px;
    font-weight       : 400;
    color             : var(--ac-dark);
    border            : none !important;
    background        : transparent !important;
    width             : 52px;
    text-align        : center;
    outline           : none !important;
    box-shadow        : none !important;
    padding           : 0 !important;
    height            : auto !important;
    -moz-appearance   : textfield;
}

.ac-cart-qty input.qty::-webkit-outer-spin-button,
.ac-cart-qty input.qty::-webkit-inner-spin-button { -webkit-appearance : none; }

/* Price cell */
.ac-cart-price {
    text-align  : left;
    font-family : var(--ac-font-b);
    font-size   : 14px;
    font-weight : 400;
    color       : var(--ac-dark);
}


/* ─────────────────────────────────────────────────────────────
   RIGHT COLUMN – summary
   ───────────────────────────────────────────────────────────── */
.ac-cart-summary {
    background : var(--ac-sand);
    padding    : 40px;
}

.ac-summary-title {
    font-family : var(--ac-font-h);
    font-size   : 26px;
    font-weight : 700;
    color       : var(--ac-dark);
    line-height : 1.2;
    margin      : 0 0 24px !important;
}

.ac-summary-divider {
    height        : 1px;
    background    : var(--ac-rule);
    margin-bottom : 24px;
}

.ac-summary-subtotal-row {
    display         : flex;
    justify-content : space-between;
    align-items     : flex-start;
    gap             : 16px;
    margin-bottom   : 24px;
}

.ac-summary-left {
    display        : flex;
    flex-direction : column;
    gap            : 8px;
}

.ac-summary-label {
    font-family : var(--ac-font-b);
    font-size   : 18px;
    font-weight : 700;
    color       : var(--ac-dark);
    line-height : 1.2;
}

.ac-summary-note,
.ac-summary-note a {
    font-family : var(--ac-font-b);
    font-size   : 14px;
    font-weight : 400;
    color       : var(--ac-dark) !important;
    line-height : 1.5;
    text-decoration : none;
}

.ac-summary-amount {
    font-family  : var(--ac-font-b);
    font-size    : 18px;
    font-weight  : 700;
    color        : var(--ac-dark);
    white-space  : nowrap;
    padding-top  : 2px;
}

.ac-summary-coupon-row {
    display         : flex;
    justify-content : space-between;
    gap             : 16px;
    font-size       : 14px;
    margin-bottom   : 12px;
}

/* Checkout button */
.ac-checkout-btn {
    display         : inline-block;
    background      : var(--ac-dark);
    color           : var(--ac-cream) !important;
    font-family     : var(--ac-font-b) !important;
    font-size       : 14px;
    font-weight     : 700;
    line-height     : 16px;
    text-align      : center;
    text-decoration : none !important;
    text-transform  : uppercase;
    white-space     : nowrap;
    padding         : 11px 16px;
    border          : 1px solid var(--ac-cream);
    width           : auto;
    min-width       : 211px;
    min-height      : 38px;
    box-sizing      : border-box;
    transition      : opacity 0.2s;
}

.ac-checkout-btn:hover { opacity : 0.82; }

/* ─────────────────────────────────────────────────────────────
   ESSENTIAL EXTRAS
   ───────────────────────────────────────────────────────────── */
.ac-extras-section {
    padding        : 56px 0 0 40px !important;
    width          : 100% !important;
    max-width      : 100% !important;
    box-sizing     : border-box !important;
}

.ac-extras-title {
    font-family   : var(--ac-font-h);
    font-size     : 24px;
    font-weight   : 700;
    color         : var(--ac-dark);
    line-height   : 1.2;
    margin        : 0 0 40px;
}

.ac-extras-grid {
    display               : grid !important;
    grid-template-columns : repeat(4, 1fr) !important;
    gap                   : 16px !important;
    width                 : 100% !important;
    max-width             : 100% !important;
    box-sizing            : border-box !important;
}

.ac-extra-card {
    background     : var(--ac-sand);
    display        : flex;
    flex-direction : column;
    overflow       : hidden;
}

.ac-extra-img-wrap {
    display      : block;
    aspect-ratio : 338 / 410;
    overflow     : hidden;
}

.ac-extra-img-wrap img {
    width      : 100%;
    height     : 100%;
    object-fit : cover;
    display    : block;
    transition : transform 0.35s ease;
}

.ac-extra-card:hover .ac-extra-img-wrap img {
    transform : scale(1.04);
}

.ac-extra-info {
    padding        : 14px 20px 16px;
    display        : flex;
    flex-direction : column;
    gap            : 6px;
}

.ac-extra-name {
    font-family  : var(--ac-font-h);
    font-size    : 24px;
    font-weight  : 700;
    color        : var(--ac-dark);
    line-height  : 1.2;
    margin       : 0;
    word-break   : normal;
    overflow-wrap: break-word;
}

.ac-extra-name a {
    color           : inherit;
    text-decoration : none;
}

.ac-extra-name a:hover { text-decoration : underline; }

.ac-extra-price,
.ac-extra-price .woocommerce-Price-amount,
.ac-extra-price .price {
    font-family : var(--ac-font-b);
    font-size   : 18px;
    font-weight : 400;
    color       : var(--ac-dark);
}

/* Hidden update-cart trigger button */
.ac-update-cart-hidden {
    display    : none !important;
    visibility : hidden;
}

/* ── Empty cart ────────────────────────────────────────────── */
.ac-cart-empty {
    max-width  : var(--ac-max-w);
    margin     : 0 auto;
    padding    : 60px 20px;
    text-align : center;
    font-size  : 18px;
}

/* ─────────────────────────────────────────────────────────────
   RESPONSIVE
   ───────────────────────────────────────────────────────────── */

/* Narrow desktop / tablet landscape */
@media (max-width: 1100px) {
    .ac-cart-layout { grid-template-columns : 1fr 33%; }
    .ac-cart-left   { padding-right : 36px; }
}

/* Tablet portrait – stack columns */
@media (max-width: 960px) {
    .ac-cart-layout {
        grid-template-columns : 1fr;
        padding               : 0 20px;
    }

    .ac-cart-header        { padding-left : 20px; padding-right : 20px; }
    .ac-extras-section     { padding-left : 20px !important; padding-right : 0 !important; }

    .ac-cart-left          { padding-right : 0; padding-top : 20px; }
    .ac-cart-summary       { padding : 32px 20px; }
    .ac-extras-grid        { grid-template-columns : repeat(2, 1fr) !important; }
}

/* Mobile */
@media (max-width: 640px) {
    .ac-cart-header {
        padding : 40px 24px 0;
    }

    .ac-cart-title {
        font-size   : 31px;
        line-height : 1.32;
    }

    .ac-cart-left {
        padding-top : 0;
    }

    .ac-cart-columns { display : none; }

    .ac-cart-row {
        grid-template-columns : 1fr 1fr;
        grid-template-areas   : "product product"
                                "qty     price"
                                "remove  .";
        gap     : 24px;
        padding : 20px 0;
    }

    .ac-cart-product { grid-area : product; }
    .ac-cart-qty     { grid-area : qty; justify-content : flex-start; }
    .ac-cart-price   { grid-area : price; text-align : right; }
    .ac-cart-remove  { grid-area : remove; justify-content : flex-start; }

    .ac-cart-summary  { padding : 20px; }
    .ac-summary-left  { gap : 16px; }

    .ac-extras-section {
        padding-top   : 80px !important;
        padding-left  : 16px !important;
        padding-right : 0 !important;
    }

    .ac-extras-title {
        font-size     : 22px;
        line-height   : 24px;
        margin-bottom : 24px;
    }

    .ac-extras-grid {
        gap : 18px !important;
    }

    .ac-extra-info { padding : 16px; gap : 16px; }
    .ac-extra-name { font-size : 22px; }
}
