/* ──────────────────────────────────────────────────────────────────────────
   MERCH + CHECKOUT — Inherits the site theme from style.css.
   Uses the same dark/red/letterspaced aesthetic as the homepage.
   ────────────────────────────────────────────────────────────────────────── */

/* ── Compatibility shims for old TREELOCK classes still referenced in PHP ── */
.rainbow-text {
    color: var(--accent);
    background: none;
    -webkit-background-clip: initial;
    background-clip: initial;
    -webkit-text-fill-color: initial;
}
.glass {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    backdrop-filter: none;
}

/* ── Buttons — keep TREELOCK class names but render in site theme ────────── */
.btn--primary,
.btn--secondary,
.btn--small,
.btn--add-cart-detail {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    padding: .85rem 1.5rem;
    border: none;
    border-radius: var(--radius);
    font-family: inherit;
    font-size: .85rem;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    text-decoration: none;
    cursor: pointer;
    transition: background var(--ease), border-color var(--ease), color var(--ease), transform var(--ease);
}
.btn--primary {
    background: var(--accent);
    color: #fff;
}
.btn--primary:hover:not(:disabled) { background: var(--accent-2); transform: translateY(-1px); }
.btn--primary:disabled { opacity: .55; cursor: not-allowed; }

.btn--secondary {
    background: transparent;
    color: var(--text);
    border: 1.5px solid var(--border);
}
.btn--secondary:hover {
    border-color: var(--accent);
    color: var(--accent);
}

.btn--small {
    padding: .55rem 1rem;
    font-size: .72rem;
    letter-spacing: 1.2px;
}

.btn--add-cart-detail {
    width: 100%;
    padding: 1rem 1.5rem;
    font-size: .9rem;
}

/* ── Page hero (used by merch index + product detail) ──────────────────── */
.page-hero {
    padding: calc(var(--nav-h) + 3rem) 2rem 2rem;
    text-align: center;
}
.page-hero h1 {
    font-size: clamp(1.6rem, 3vw, 2.2rem);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 4px;
    color: var(--text);
    position: relative;
    display: inline-block;
}
.page-hero h1::after {
    content: '';
    display: block;
    width: 50px; height: 3px;
    background: var(--accent);
    margin: .75rem auto 0;
    border-radius: 2px;
}

/* ── Generic placeholder text ──────────────────────────────────────────── */
.placeholder-text {
    text-align: center;
    color: var(--text-muted);
    padding: 3rem 1rem;
    font-style: italic;
    grid-column: 1 / -1;
}

/* ── MERCH GRID (index page) ──────────────────────────────────────────── */
.merch-shop {
    padding: 2rem;
    min-height: 60vh;
}
.product-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 1.5rem;
    max-width: 1100px;
    margin: 0 auto;
}
.product-card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform var(--ease), border-color var(--ease), box-shadow var(--ease);
}
.product-card:hover {
    transform: translateY(-4px);
    border-color: var(--accent);
    box-shadow: 0 10px 30px rgba(230,57,70,0.15);
}
.product-card img {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    background: var(--surface-2);
}
.product-card h3 {
    padding: .85rem 1rem 0;
    font-size: .95rem;
    font-weight: 700;
    color: var(--text);
    letter-spacing: .5px;
}
.product-card .price {
    padding: .35rem 1rem 0;
    font-size: 1.1rem;
    font-weight: 800;
    color: var(--accent);
}
.product-card .btn--secondary,
.product-card span.btn--secondary {
    margin: 1rem;
    width: calc(100% - 2rem);
}

/* ── PRODUCT DETAIL PAGE ──────────────────────────────────────────────── */
.product-page {
    padding: calc(var(--nav-h) + 2rem) 2rem 4rem;
}
.product-page__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    max-width: 1100px;
    margin: 0 auto;
}
@media (max-width: 800px) {
    .product-page__grid { grid-template-columns: 1fr; gap: 1.5rem; }
}

.product-page__images {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.product-page__main-img {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius);
}
.product-page__thumbs {
    display: flex;
    gap: .55rem;
    flex-wrap: wrap;
}
.product-page__thumb {
    width: 64px;
    height: 64px;
    object-fit: cover;
    background: var(--surface);
    border: 2px solid var(--border);
    border-radius: 6px;
    cursor: pointer;
    transition: border-color var(--ease);
}
.product-page__thumb:hover { border-color: var(--accent); }
.product-page__thumb.active { border-color: var(--accent); }

.product-page__info { display: flex; flex-direction: column; gap: 1rem; }
.product-page__info h1 {
    font-size: clamp(1.4rem, 2.2vw, 1.85rem);
    font-weight: 800;
    color: var(--text);
    letter-spacing: 1px;
    text-transform: uppercase;
    line-height: 1.2;
}

.product-page__price {
    font-size: 1.6rem;
    font-weight: 800;
    color: var(--accent);
}

.product-page__desc {
    color: var(--text-muted);
    line-height: 1.6;
    font-size: .95rem;
}

.product-page__label {
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--text-muted);
    margin-bottom: .55rem;
}

.product-page__field { margin-top: .25rem; }

.product-page__colors,
.product-page__sizes {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
}

.color-swatch {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: 2px solid var(--border);
    cursor: pointer;
    transition: border-color var(--ease), transform var(--ease);
}
.color-swatch:hover { transform: scale(1.08); }
.color-swatch.active { border-color: var(--accent); box-shadow: 0 0 0 2px rgba(230,57,70,.25); }

.size-btn {
    padding: .55rem .9rem;
    background: transparent;
    border: 1.5px solid var(--border);
    border-radius: 6px;
    color: var(--text);
    font-family: inherit;
    font-size: .85rem;
    font-weight: 600;
    letter-spacing: .5px;
    cursor: pointer;
    transition: border-color var(--ease), background var(--ease);
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    line-height: 1.2;
}
.size-btn:hover { border-color: var(--accent); }
.size-btn.active {
    border-color: var(--accent);
    background: var(--accent);
    color: #fff;
}
.size-btn__price {
    font-size: .68rem;
    font-weight: 400;
    opacity: .75;
    margin-top: .15rem;
}

.product-page__note {
    color: var(--text-muted);
    font-size: .82rem;
    font-style: italic;
}

/* ── CHECKOUT ─────────────────────────────────────────────────────────── */
.checkout-page {
    padding: calc(var(--nav-h) + 2rem) 2rem 4rem;
}
.checkout-grid {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 2.5rem;
    max-width: 1100px;
    margin: 0 auto;
}
@media (max-width: 800px) {
    .checkout-grid { grid-template-columns: 1fr; gap: 1.5rem; }
}
.checkout__form,
.checkout__cart {
    padding: 1.75rem;
}
.checkout__form h2,
.checkout__cart h2 {
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--text);
    margin-bottom: 1.25rem;
    padding-bottom: .85rem;
    border-bottom: 1px solid var(--border);
}

.checkout__form label {
    display: block;
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: var(--text-muted);
    margin-bottom: .35rem;
}
.checkout__form input,
.checkout__form select,
.checkout__form textarea {
    width: 100%;
    padding: .75rem .9rem;
    background: var(--bg);
    border: 1.5px solid var(--border);
    border-radius: 8px;
    color: var(--text);
    font-family: inherit;
    font-size: 16px;     /* 16px prevents iOS auto-zoom on focus */
    margin-bottom: 1rem;
    color-scheme: dark;
    transition: border-color var(--ease);
}
.checkout__form input:focus,
.checkout__form select:focus,
.checkout__form textarea:focus {
    outline: none;
    border-color: var(--accent);
}

/* Cart line items */
.checkout__cart ul,
.checkout__cart .cart-items {
    list-style: none;
    padding: 0;
    margin: 0 0 1rem;
}
.checkout__cart .cart-item,
.checkout__cart li {
    display: flex;
    gap: .85rem;
    padding: .85rem 0;
    border-bottom: 1px dotted var(--border);
    align-items: center;
}
.checkout__cart .cart-item:last-child,
.checkout__cart li:last-child { border-bottom: none; }
.checkout__cart .cart-item img {
    width: 56px;
    height: 56px;
    object-fit: cover;
    border-radius: 6px;
    background: var(--surface-2);
}
.checkout__cart .cart-item-info {
    flex: 1;
    font-size: .88rem;
    color: var(--text);
}
.checkout__cart .cart-item-info small {
    display: block;
    color: var(--text-muted);
    font-size: .76rem;
    margin-top: .15rem;
}
.checkout__cart .cart-item-price {
    font-weight: 700;
    color: var(--accent);
    font-size: .92rem;
}

.cart-total {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding-top: 1rem;
    margin-top: .5rem;
    border-top: 2px solid var(--border);
    font-size: 1.05rem;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    color: var(--text);
}
.cart-total strong { color: var(--accent); font-size: 1.3rem; }

/* Stripe injection */
.stripe-card-element {
    padding: .85rem .9rem;
    background: var(--bg);
    border: 1.5px solid var(--border);
    border-radius: 8px;
    margin-bottom: 1rem;
}
.stripe-card-element--focus { border-color: var(--accent); }
.stripe-errors {
    color: var(--accent);
    font-size: .85rem;
    margin: -.35rem 0 1rem;
    min-height: 1.2em;
}

/* ── SUCCESS PAGE ─────────────────────────────────────────────────────── */
.success-page {
    padding: calc(var(--nav-h) + 3rem) 2rem 4rem;
    max-width: 600px;
    margin: 0 auto;
    text-align: center;
}
.success-page h1 {
    font-size: 1.8rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 3px;
    color: var(--text);
    margin-bottom: 1rem;
}
.success-page h1::before {
    content: '✓';
    display: block;
    color: var(--accent);
    font-size: 3rem;
    margin-bottom: 1rem;
    line-height: 1;
}
.success-page p {
    color: var(--text-muted);
    line-height: 1.7;
    margin-bottom: 1.5rem;
    font-size: .95rem;
}

/* ── Cart nav badge ───────────────────────────────────────────────────── */
.nav-cart {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    color: var(--accent) !important;
    border-bottom: 2px solid transparent;
}
.nav-cart:hover { border-bottom-color: var(--accent); }
.nav-cart #cart-count {
    font-weight: 800;
    color: var(--accent);
    min-width: 1em;
    text-align: center;
}

/* ── Footer admin link (already styled in style.css) — make sure visible ── */
.admin-link {
    color: var(--text-muted);
    font-size: .72rem;
    text-decoration: none;
    margin-left: 1rem;
    letter-spacing: 1px;
    text-transform: uppercase;
}
.admin-link:hover { color: var(--accent); }

/* Checkout State / ZIP / Country row — three columns on tablet+, stacks on phones */
.checkout__row3 {
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr;
    gap: .75rem;
}
@media (max-width: 600px) {
    .checkout__row3 { grid-template-columns: 1fr; gap: 0; }
}
