/* ============================================================
   MeroVPS — custom.css
   Custom styles that go beyond compiled Tailwind utilities.
   Loaded after tailwind.css and theme.css.
   ============================================================ */

/* ── Page content: fill all available space beside the sidebar ── */
.page-content-wrap {
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

/* ── Two-column cart layout (order form) ── */
.order-two-col {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
    align-items: start;
    width: 100%;
}
@media (min-width: 1024px) {
    .order-two-col {
        grid-template-columns: 1fr 360px;
    }
}

/* ── Consistent max-width for all order form pages ── */
/* Applied on .order-professional (order form) and .co-order-wrap (checkout) */
.order-professional,
.co-order-wrap {
    max-width: 72rem; /* 1152px — equivalent to Tailwind max-w-6xl */
    margin-left: auto;
    margin-right: auto;
    width: 100%;
}

/* ── Prevent Alpine.js flash of un-cloak'd content ── */
[x-cloak] { display: none !important; }

/* ── Hide scrollbar for horizontal scroll containers ── */
.scrollbar-none { scrollbar-width: none; }
.scrollbar-none::-webkit-scrollbar { display: none; }

/* ── Mobile: compact 2-col stat cards ── */
@media (max-width: 639px) {
    /* Card: tighter padding */
    .mob-stat-grid > a.group {
        padding: 0.875rem;
    }
    /* Icon container: smaller */
    .mob-stat-grid > a.group > div:first-child > div:first-child {
        width: 2.25rem;
        height: 2.25rem;
        border-radius: 0.5rem;
    }
    .mob-stat-grid > a.group > div:first-child > div:first-child svg {
        width: 1.125rem;
        height: 1.125rem;
    }
    /* Category label */
    .mob-stat-grid > a.group > div:first-child > span {
        font-size: 0.6rem;
        letter-spacing: 0.06em;
    }
    /* Stat number */
    .mob-stat-grid > a.group h3 {
        font-size: 1.375rem;
        line-height: 1.2;
    }
    /* Subtitle */
    .mob-stat-grid > a.group p {
        font-size: 0.6875rem;
    }
    /* Reduce gap between icon row and number */
    .mob-stat-grid > a.group > div:first-child {
        margin-bottom: 0.75rem;
    }
}

/* ── Checkout form shared components ── */
.co-input {
    width: 100%;
    padding: .75rem 1rem;
    border-radius: .75rem;
    border: 1px solid rgba(255,255,255,.10);
    background: rgba(255,255,255,.04);
    color: #f3f4f6;
    font-size: .875rem;
    transition: border-color .15s, box-shadow .15s;
    outline: none;
}
.co-input:focus {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), .15);
    background: rgba(255,255,255,.06);
}
.co-input::placeholder { color: rgba(255,255,255,.25); }
.co-input option { background: #1e1e2e; color: #f3f4f6; }
.co-label {
    display: block;
    font-size: .875rem;
    font-weight: 600;
    color: #d1d5db;
    margin-bottom: .375rem;
}

.co-input:disabled {
    opacity: .6;
    cursor: not-allowed;
}

.co-input[aria-invalid="true"],
.co-input.is-required {
    border-color: rgba(239,68,68,.65) !important;
    box-shadow: 0 0 0 3px rgba(239,68,68,.14);
}
.co-section {
    font-size: .8125rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--color-primary);
    padding-bottom: .75rem;
    border-bottom: 1px solid rgba(var(--color-primary-rgb), .15);
    margin-bottom: 1rem;
}

html[data-theme="light"] .co-input {
    background: rgba(255,255,255,.9);
    border-color: rgba(var(--color-primary-rgb), .22);
    color: #0f172a;
    box-shadow: 0 1px 3px rgba(15,23,42,.06);
}

html[data-theme="light"] .co-input:focus {
    border-color: rgba(var(--color-primary-rgb), .55);
    box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), .14);
    background: #fff;
}

html[data-theme="light"] .co-input::placeholder {
    color: #94a3b8;
}

html[data-theme="light"] .co-label {
    color: #334155;
}

html[data-theme="light"] .co-section {
    color: #4338ca;
    border-bottom-color: rgba(var(--color-primary-rgb), .24);
}

/* ── Sticky sidebar inside .order-two-col ── */
@media (min-width: 1024px) {
    .co-sidebar-outer {
        position: sticky;
        top: 5rem;
        align-self: flex-start;
    }
}
