/*
 * Sleepwell Mattress Engine
 * Frontend styling intentionally uses the active WordPress/Astra theme
 * palette and typography. Astra exposes these as --ast-global-color-*.
 * Fallbacks preserve the current Sleepwell look if another theme is used.
 */

.swe-v09-wrapper {
    --swe-primary: var(--ast-global-color-0, #173b63);
    --swe-secondary: var(--ast-global-color-1, #0f172a);
    --swe-heading: var(--ast-global-color-2, #17213c);
    --swe-text: var(--ast-global-color-3, #4b5563);
    --swe-background: var(--ast-global-color-4, #ffffff);
    --swe-surface: var(--ast-global-color-5, #f7f7f7);
    --swe-border: var(--ast-global-color-6, #d5d5d5);
    --swe-muted: var(--ast-global-color-7, #777777);
    --swe-error: #c62828;
    color: var(--swe-text);
    font-family: inherit;
}

.swe-v09-wrapper *,
.swe-v09-wrapper *::before,
.swe-v09-wrapper *::after {
    box-sizing: border-box;
}

.swe-v08-calculator { margin: 20px 0; }

.swe-v08-open {
    width: 100%;
    min-height: 70px;
    padding: 14px 18px;
    border: 2px solid var(--swe-primary);
    border-radius: 10px;
    background: var(--swe-background);
    color: var(--swe-primary);
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    text-align: left;
    font-family: inherit;
}
.swe-v08-open span { font-size: 14px; text-transform: uppercase; opacity: .7; }
.swe-v08-open strong { font-size: 18px; color: inherit; }

.swe-v08-modal[hidden] { display:none!important; }
.swe-v08-modal { position:fixed; inset:0; z-index:999999; font-family:inherit; }
.swe-v08-backdrop { position:absolute; inset:0; background:rgba(0,0,0,.58); }

.swe-v08-dialog {
    position:relative;
    z-index:1;
    width:min(820px,calc(100vw - 28px));
    max-height:calc(100vh - 28px);
    margin:14px auto;
    background:var(--swe-background);
    color:var(--swe-text);
    border-radius:18px;
    overflow:hidden;
    display:flex;
    flex-direction:column;
}

.swe-v08-header {
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:22px 28px;
    border-bottom:1px solid var(--swe-border);
}
.swe-v08-header h2 {
    margin:0;
    font-size:28px;
    color:var(--swe-heading);
    font-family:inherit;
}
.swe-v08-x {
    border:0;
    background:transparent;
    color:var(--swe-heading);
    font-size:42px;
    line-height:1;
    cursor:pointer;
    font-family:inherit;
}

.swe-v08-body { padding:22px 28px; overflow-y:auto; }
.swe-v08-tabs {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:12px;
    margin-bottom:32px;
}
.swe-v08-tab,
.swe-v08-size,
.swe-v08-thickness {
    border:2px solid var(--swe-border);
    border-radius:10px;
    background:var(--swe-background);
    color:var(--swe-heading);
    cursor:pointer;
    font-family:inherit;
}
.swe-v08-tab {
    min-height:60px;
    font-size:17px;
}
.swe-v08-tab.is-active,
.swe-v08-size.is-selected,
.swe-v08-thickness.is-selected {
    background:var(--swe-primary);
    border-color:var(--swe-primary);
    color:#fff;
}
.swe-v08-section { margin-bottom:28px; }
.swe-v08-section h3 {
    margin:0 0 16px;
    font-size:26px;
    color:var(--swe-heading);
}
.swe-v08-size-grid {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:12px;
}
.swe-v08-size { min-height:60px; font-size:16px; }
.swe-v08-size:disabled { opacity:.35; cursor:not-allowed; }

.swe-v08-thickness-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:12px;
}
.swe-v08-thickness { min-height:65px; font-size:16px; }

.swe-v08-enter-label {
    font-weight:700;
    text-transform:uppercase;
    color:var(--swe-primary);
    margin-bottom:9px;
}
.swe-v08-custom-fields {
    display:grid;
    grid-template-columns:1fr auto 1fr;
    gap:12px;
    align-items:end;
}
.swe-v08-custom-fields label { position:relative; }
.swe-v08-custom-fields input {
    width:100%;
    min-height:56px;
    box-sizing:border-box;
    padding:10px 34px 10px 14px;
    border:2px solid var(--swe-border);
    border-radius:10px;
    font-size:18px;
    color:var(--swe-heading);
    background:var(--swe-background);
    font-family:inherit;
}
.swe-v08-custom-fields label span {
    position:absolute;
    right:12px;
    bottom:17px;
    color:var(--swe-muted);
}
.swe-v08-custom-fields b {
    padding-bottom:14px;
    font-size:25px;
    color:var(--swe-heading);
}
.swe-v08-help { color:var(--swe-muted); font-size:14px; }
.swe-v08-error { color:var(--swe-error); min-height:20px; }

.swe-v08-price {
    padding:16px 18px;
    border:1px solid var(--swe-border);
    border-radius:12px;
    background:var(--swe-surface);
}
.swe-v08-price span { display:block; font-size:13px; color:var(--swe-muted); }
.swe-v08-price strong {
    display:block;
    font-size:28px;
    margin:3px 0;
    color:var(--swe-heading);
}
.swe-v08-price small { color:var(--swe-text); }

.swe-v08-footer {
    padding:16px 28px 22px;
    border-top:1px solid var(--swe-border);
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
}
.swe-v08-confirm,
.swe-v08-cancel {
    min-height:58px;
    border-radius:12px;
    font-weight:700;
    font-size:16px;
    cursor:pointer;
    font-family:inherit;
}
.swe-v08-confirm {
    border:0;
    background:var(--swe-primary);
    color:#fff;
}
.swe-v08-confirm:disabled { opacity:.4; cursor:not-allowed; }
.swe-v08-cancel {
    border:0;
    background:var(--swe-surface);
    color:var(--swe-heading);
}

body.swe-v08-lock { overflow:hidden; }

/* Product-page selected configuration / Add to Cart area */
.swe-v09-cart-panel {
    margin:16px 0 24px;
    padding:18px;
    border:2px solid var(--swe-primary);
    border-radius:12px;
    background:var(--swe-background);
    color:var(--swe-text);
}
.swe-v09-cart-panel[hidden] { display:none!important; }

.swe-v09-cart-selection {
    display:grid;
    grid-template-columns:1fr auto;
    gap:18px;
    align-items:center;
    margin-bottom:14px;
}
.swe-v09-cart-selection span {
    display:block;
    color:var(--swe-muted);
    font-size:13px;
    margin-bottom:4px;
}
.swe-v09-cart-selection strong {
    display:block;
    color:var(--swe-primary);
    font-size:18px;
}
.swe-v09-add-to-cart {
    width:100%;
    min-height:56px;
    border:0;
    border-radius:10px;
    background:var(--swe-primary);
    color:#fff;
    font-size:16px;
    font-weight:700;
    letter-spacing:.04em;
    cursor:pointer;
    font-family:inherit;
}
.swe-v09-add-to-cart:disabled { opacity:.5; cursor:not-allowed; }
.swe-v09-cart-message {
    margin:10px 0 0;
    color:var(--swe-primary);
    font-size:14px;
}

/* Calculator-enabled products use the calculator selection + product-page
   Add to Cart flow. Keep WooCommerce's native form out of the way. */
.swe-v09-calculator-product form.cart {
    display:none !important;
}

@media(max-width:700px) {
    .swe-v08-tabs { grid-template-columns:repeat(2,1fr); }
    .swe-v08-size-grid { grid-template-columns:repeat(2,1fr); }
    .swe-v08-thickness-grid { grid-template-columns:1fr; }
    .swe-v08-body,.swe-v08-header,.swe-v08-footer {
        padding-left:18px;
        padding-right:18px;
    }
}
@media(max-width:480px) {
    .swe-v08-open { display:block; }
    .swe-v08-open strong { display:block; margin-top:5px; }
    .swe-v08-custom-fields { grid-template-columns:1fr; }
    .swe-v08-custom-fields b { display:none; }
    .swe-v08-footer { grid-template-columns:1fr; }
}
