/*
Theme Name:   Interpeptide
Theme URI:    https://interpeptide.shop
Template:     storefront
Description:  Storefront child — replicates the existing Next.js interpeptide.shop dark theme. Tailwind-style emerald/cyan accents on gray-950 surface.
Author:       Interpeptide
Version:      2.1.0
Text Domain:  interpeptide
*/

:root {
    --ip-bg:          #030712;  /* gray-950 — body */
    --ip-surface:     #111827;  /* gray-900 — cards */
    --ip-surface-2:   #1f2937;  /* gray-800 — hover/borders */
    --ip-surface-3:   #374151;  /* gray-700 */
    --ip-ink:         #f9fafb;  /* gray-50 */
    --ip-ink-dim:     #d1d5db;  /* gray-300 */
    --ip-ink-mute:    #9ca3af;  /* gray-400 */
    --ip-ink-faint:   #6b7280;  /* gray-500 */
    --ip-border:      #1f2937;  /* gray-800 */
    --ip-primary:     #10b981;  /* emerald-500 */
    --ip-primary-dk:  #059669;  /* emerald-600 */
    --ip-primary-lt:  #34d399;  /* emerald-400 */
    --ip-accent:      #06b6d4;  /* cyan-500 */
    --ip-danger:      #ef4444;
    --ip-radius:      12px;
    --ip-radius-sm:   8px;
    --ip-radius-lg:   16px;
}

/* ===== reset / base ===== */
html, body, .site, .site-content, #page {
    background-color: var(--ip-bg) !important;
    color: var(--ip-ink) !important;
    font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif !important;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
.site-content, #content {
    background-color: var(--ip-bg) !important;
}
.col-full {
    max-width: 1280px !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
}
a { color: var(--ip-ink-dim); transition: color .18s; }
a:hover { color: var(--ip-ink); }
h1, h2, h3, h4, h5, h6 { color: var(--ip-ink); font-weight: 700; letter-spacing: -0.015em; }

/* scrollbar (matches Next.js shop) */
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: #111827; }
::-webkit-scrollbar-thumb { background: #374151; border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: #4b5563; }
::selection { background: #10b98133; color: #f9fafb; }

/* ===== header / navbar ===== */
.site-header {
    background: rgba(3, 7, 18, 0.95) !important;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border-bottom: 1px solid var(--ip-border) !important;
    padding: 0 16px !important;
    position: sticky;
    top: 0;
    z-index: 50;
    display: flex !important;
    align-items: center;
    gap: 32px;
    height: 64px;
    max-width: none;
}
/* Flatten Storefront's nested wrappers so children become direct flex items of .site-header */
.site-header > .col-full,
.site-header > .storefront-primary-navigation,
.site-header > .storefront-primary-navigation > .col-full {
    display: contents !important;
}
.site-header .skip-link { position: absolute; left: -9999px; }
.site-header .site-search { display: none !important; }

.site-header .site-branding {
    display: block !important;
    padding: 0 !important;
    margin: 0 !important;
    float: none !important;
    width: 220px;
    height: 36px;
    flex-shrink: 0;
    position: relative;
    order: 1;
}
.site-header .site-title, .site-header .site-description {
    position: absolute;
    width: 1px; height: 1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    margin: 0 !important;
    padding: 0 !important;
}
.site-header .site-branding::before {
    content: "";
    display: block;
    width: 220px;
    height: 36px;
    background-image: url("assets/logo-horizontal.svg");
    background-repeat: no-repeat;
    background-position: left center;
    background-size: contain;
    pointer-events: none;
}
.site-header .site-branding > div > a,
.site-header .site-branding > a {
    position: absolute;
    inset: 0;
    display: block;
    z-index: 1;
}

.site-header .main-navigation {
    order: 2;
    flex: 1;
    float: none !important;
    width: auto !important;
    display: flex !important;
    justify-content: center;
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
}
.site-header .main-navigation .menu-toggle { display: none !important; }
.site-header .main-navigation .primary-navigation { width: auto !important; float: none !important; }
.site-header .main-navigation .handheld-navigation { display: none !important; }
.site-header .main-navigation ul.menu {
    display: flex !important;
    gap: 32px !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    float: none !important;
}
.site-header .main-navigation ul.menu > li {
    list-style: none !important;
    background: transparent !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
}
.site-header .main-navigation ul.menu > li > a {
    color: var(--ip-ink-dim) !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    padding: 0 !important;
    background: transparent !important;
    border: none !important;
    line-height: 1.4 !important;
    transition: color .18s;
}
.site-header .main-navigation ul.menu > li > a:hover,
.site-header .main-navigation ul.menu > li.current-menu-item > a,
.site-header .main-navigation ul.menu > li.current_page_item > a {
    color: var(--ip-ink) !important;
}

/* Storefront cart link element — repurposed as our drawer trigger */
.site-header-cart {
    order: 4;
    display: flex !important;
    align-items: center;
    gap: 0;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    background: transparent !important;
    float: none !important;
}
.site-header-cart > li {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
}
.site-header-cart > li + li { display: none !important; } /* hide WC inline mini-cart popup */
.site-header-cart .cart-contents,
.site-header-cart .cart-contents:hover {
    background: transparent !important;
    color: var(--ip-ink-mute) !important;
    padding: 8px !important;
    border-radius: var(--ip-radius-sm) !important;
    width: 36px; height: 36px;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    box-shadow: none !important;
    transform: none !important;
    transition: background .18s, color .18s;
    position: relative;
    overflow: visible;
}
.site-header-cart .cart-contents:hover { background: var(--ip-surface-2) !important; color: var(--ip-ink) !important; }
.site-header-cart .cart-contents .amount,
.site-header-cart .cart-contents .count { display: none !important; }
.site-header-cart .cart-contents::before {
    content: "";
    display: block;
    width: 20px; height: 20px;
    background-color: currentColor;
    -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='8' cy='21' r='1'/><circle cx='19' cy='21' r='1'/><path d='M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12'/></svg>");
            mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='8' cy='21' r='1'/><circle cx='19' cy='21' r='1'/><path d='M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12'/></svg>");
    -webkit-mask-repeat: no-repeat;     mask-repeat: no-repeat;
    -webkit-mask-position: center;      mask-position: center;
    -webkit-mask-size: contain;         mask-size: contain;
}
/* Count bubble */
.site-header-cart .cart-contents[data-count]:not([data-count="0"]):not([data-count=""])::after {
    content: attr(data-count);
    position: absolute;
    top: -4px; right: -4px;
    background: var(--ip-primary);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    border-radius: 999px;
    min-width: 16px; height: 16px;
    padding: 0 4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.ip-header-actions {
    order: 3;
    display: flex;
    align-items: center;
    gap: 4px;
    margin-left: auto;
}
.ip-header-actions a, .ip-header-actions button {
    color: var(--ip-ink-mute);
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 8px;
    border-radius: var(--ip-radius-sm);
    width: 36px; height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background .18s, color .18s;
    text-decoration: none;
}
.ip-header-actions a:hover, .ip-header-actions button:hover {
    background: var(--ip-surface-2);
    color: var(--ip-ink);
}
.ip-header-actions svg { width: 20px; height: 20px; display: block; }

/* Mobile menu toggle (hamburger) — keep only on small screens via a media query at bottom */
.ip-mobile-toggle { display: none; order: 5; }
@media (max-width: 860px) {
    .site-header .main-navigation { display: none !important; }
    .ip-mobile-toggle {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        background: transparent;
        color: var(--ip-ink-mute);
        border: none;
        cursor: pointer;
        padding: 8px;
        width: 36px; height: 36px;
        border-radius: var(--ip-radius-sm);
    }
    .ip-mobile-toggle:hover { background: var(--ip-surface-2); color: var(--ip-ink); }
    .ip-mobile-toggle svg { width: 20px; height: 20px; }
    .site-header .site-branding { width: 180px; }
    .site-header .site-branding::before { width: 180px; }
}

/* Mobile slide-down menu (rendered in functions.php) */
.ip-mobile-menu {
    position: fixed;
    top: 64px; left: 0; right: 0;
    background: var(--ip-bg);
    border-top: 1px solid var(--ip-border);
    border-bottom: 1px solid var(--ip-border);
    padding: 16px 20px;
    transform: translateY(-100%);
    opacity: 0;
    pointer-events: none;
    transition: transform .25s ease, opacity .25s ease;
    z-index: 49;
}
.ip-mobile-menu.is-open {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
}
.ip-mobile-menu ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 14px; }
.ip-mobile-menu ul a { color: var(--ip-ink-dim); text-decoration: none; font-size: 16px; }
.ip-mobile-menu ul a:hover { color: var(--ip-ink); }

/* ===== hero (homepage / shop landing) ===== */
.ip-hero {
    position: relative;
    overflow: hidden;
    background: var(--ip-bg);
    margin: 0 -16px 0;
}
.ip-hero__bg {
    position: absolute;
    inset: 0;
    background-image: url("assets/hero-bg.svg");
    background-size: cover;
    background-position: center;
    pointer-events: none;
}
.ip-hero__gradient {
    position: absolute;
    inset: 0;
    background: linear-gradient(to right, rgba(3,7,18,1) 0%, rgba(3,7,18,.85) 50%, rgba(3,7,18,.2) 100%);
    pointer-events: none;
}
.ip-hero__inner {
    position: relative;
    max-width: 1280px;
    margin: 0 auto;
    padding: 112px 32px;
}
.ip-hero__content { max-width: 640px; }
.ip-hero__badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 4px 12px;
    border-radius: 999px;
    border: 1px solid rgba(16,185,129,.30);
    background: rgba(16,185,129,.10);
    color: var(--ip-primary);
    font-size: 12px;
    font-weight: 500;
    margin-bottom: 16px;
}
.ip-hero__badge svg { width: 14px; height: 14px; }
.ip-hero h1 {
    font-size: 60px;
    font-weight: 700;
    line-height: 1.05;
    letter-spacing: -0.02em;
    color: var(--ip-ink);
    margin: 0 0 24px;
}
.ip-hero h1 .ip-gradient {
    background: linear-gradient(to right, var(--ip-primary), var(--ip-accent));
    -webkit-background-clip: text;
            background-clip: text;
    -webkit-text-fill-color: transparent;
            color: transparent;
}
.ip-hero p {
    font-size: 18px;
    line-height: 1.55;
    color: var(--ip-ink-dim);
    margin: 0 0 40px;
    max-width: 520px;
}
.ip-hero .ip-cta {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 16px 40px;
    background: var(--ip-primary);
    color: white !important;
    font-weight: 600;
    border-radius: var(--ip-radius);
    text-decoration: none;
    box-shadow: 0 10px 25px rgba(16,185,129,0.30);
    transition: background .18s, box-shadow .18s, transform .18s;
}
.ip-hero .ip-cta:hover {
    background: var(--ip-primary-dk);
    box-shadow: 0 14px 30px rgba(16,185,129,0.40);
    transform: translateY(-1px);
}
.ip-hero .ip-cta svg { width: 20px; height: 20px; }

@media (max-width: 720px) {
    .ip-hero__inner { padding: 64px 20px; }
    .ip-hero h1 { font-size: 38px; }
    .ip-hero p { font-size: 16px; }
}

/* ===== trust badges row ===== */
.ip-trust {
    border-top: 1px solid var(--ip-border);
    border-bottom: 1px solid var(--ip-border);
    background: rgba(3,7,18,0.50);
    margin: 0 -16px 0;
}
.ip-trust__inner {
    max-width: 1280px;
    margin: 0 auto;
    padding: 32px 32px;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}
.ip-trust__item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px;
}
.ip-trust__item svg {
    width: 32px;
    height: 32px;
    color: var(--ip-primary);
    flex-shrink: 0;
}
.ip-trust__item .ip-trust__label {
    font-size: 14px;
    font-weight: 600;
    color: var(--ip-ink);
    margin: 0;
}
.ip-trust__item .ip-trust__sub {
    font-size: 12px;
    color: var(--ip-ink-faint);
    margin: 0;
}
@media (max-width: 720px) {
    .ip-trust__inner { grid-template-columns: repeat(2, 1fr); }
}

/* ===== section heading row ===== */
.ip-section {
    max-width: 1280px;
    margin: 0 auto;
    padding: 64px 32px;
}
.ip-section__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 32px;
}
.ip-section__head h2 {
    font-size: 24px;
    font-weight: 700;
    color: var(--ip-ink);
    margin: 0 0 4px;
}
.ip-section__head p {
    font-size: 14px;
    color: var(--ip-ink-mute);
    margin: 0;
}
.ip-section__head a {
    font-size: 14px;
    color: var(--ip-primary);
    text-decoration: none;
}
.ip-section__head a:hover { text-decoration: underline; }

/* ===== product grid (WC loop overrides) ===== */
.woocommerce ul.products, .woocommerce-page ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0,1fr));
    gap: 20px !important;
    padding: 0 !important;
    margin: 0 !important;
}
.woocommerce ul.products li.product {
    background: var(--ip-surface) !important;
    border: 1px solid var(--ip-border) !important;
    border-radius: var(--ip-radius-lg) !important;
    padding: 0 !important;
    margin: 0 !important;
    width: auto !important;
    float: none !important;
    overflow: hidden;
    position: relative;
    transition: border-color .25s, box-shadow .25s, transform .25s;
}
.woocommerce ul.products li.product:hover {
    border-color: rgba(16,185,129,.50) !important;
    box-shadow: 0 8px 24px rgba(16,185,129,.05);
}
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link {
    display: block;
    text-decoration: none;
    color: inherit;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
    color: var(--ip-ink) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    padding: 0 !important;
    margin: 0 0 4px !important;
    transition: color .18s;
}
.woocommerce ul.products li.product:hover .woocommerce-loop-product__title {
    color: var(--ip-primary) !important;
}

/* image area — replace with flask icon since image=NULL */
.woocommerce ul.products li.product .ip-card-imagewrap {
    height: 192px;
    background: rgba(31,41,55,0.50);
    display: flex;
    align-items: center;
    justify-content: center;
}
.woocommerce ul.products li.product .ip-card-imagewrap svg {
    width: 64px;
    height: 64px;
    color: var(--ip-surface-3);
    transition: color .25s;
}
.woocommerce ul.products li.product:hover .ip-card-imagewrap svg {
    color: rgba(16,185,129,.40);
}
.woocommerce ul.products li.product img {
    display: none !important;
}

.woocommerce ul.products li.product .ip-card-body {
    padding: 16px;
}
.woocommerce ul.products li.product .ip-card-meta {
    color: var(--ip-ink-mute);
    font-size: 12px;
    margin: 0 0 8px;
    display: flex;
    align-items: center;
    gap: 6px;
}
.woocommerce ul.products li.product .ip-card-meta .sep { color: var(--ip-ink-faint); }
.woocommerce ul.products li.product .ip-card-purity {
    color: var(--ip-ink-faint);
    font-size: 12px;
    margin: 0 0 12px;
}
.woocommerce ul.products li.product .ip-card-purity strong {
    color: var(--ip-primary);
    font-weight: 500;
}

.woocommerce ul.products li.product .ip-card-foot {
    margin-top: 12px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.woocommerce ul.products li.product .price {
    color: var(--ip-ink) !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    margin: 0 !important;
}
.woocommerce ul.products li.product .price del {
    color: var(--ip-ink-faint) !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    margin-right: 6px;
}
.woocommerce ul.products li.product .ip-card-cart {
    position: absolute;
    bottom: 16px; right: 16px;
    z-index: 3;
    background: rgba(16,185,129,0.10) !important;
    color: var(--ip-primary) !important;
    border-radius: var(--ip-radius-sm) !important;
    padding: 0 !important;
    width: 36px; height: 36px;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    border: none !important;
    box-shadow: none !important;
    text-decoration: none;
    transition: background .18s, color .18s;
}
.woocommerce ul.products li.product .ip-card-cart svg { width: 16px; height: 16px; }
.woocommerce ul.products li.product .ip-card-cart:hover {
    background: var(--ip-primary) !important;
    color: white !important;
}
.woocommerce ul.products li.product .ip-card-cart.loading { opacity: 0.55; pointer-events: none; }
.woocommerce ul.products li.product .ip-card-foot { padding-right: 56px; }
/* hide WC's default View-cart "added" link injected after AJAX add */
.woocommerce ul.products li.product .added_to_cart { display: none !important; }

/* featured badge */
.woocommerce ul.products li.product .ip-badge-featured {
    position: absolute;
    left: 12px;
    top: 12px;
    background: rgba(16,185,129,0.90);
    color: white;
    border-radius: 999px;
    padding: 3px 10px;
    font-size: 11px;
    font-weight: 600;
    z-index: 2;
}
.woocommerce ul.products li.product .onsale {
    display: none !important;
}

@media (max-width: 980px) {
    .woocommerce ul.products, .woocommerce-page ul.products {
        grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    }
}
@media (max-width: 480px) {
    .woocommerce ul.products, .woocommerce-page ul.products {
        grid-template-columns: 1fr !important;
    }
}

/* ===== CTA section ===== */
.ip-cta-band {
    border-top: 1px solid var(--ip-border);
    background: linear-gradient(to right, var(--ip-bg), var(--ip-surface), var(--ip-bg));
    margin: 0 -16px 0;
}
.ip-cta-band__inner {
    max-width: 800px;
    margin: 0 auto;
    padding: 64px 32px;
    text-align: center;
}
.ip-cta-band h2 {
    color: var(--ip-ink);
    font-size: 30px;
    font-weight: 700;
    margin: 0 0 16px;
}
.ip-cta-band p {
    color: var(--ip-ink-mute);
    margin: 0 0 24px;
}
.ip-cta-band .ip-cta-sm {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 32px;
    background: var(--ip-primary);
    color: white !important;
    border-radius: var(--ip-radius-sm);
    font-weight: 600;
    font-size: 14px;
    text-decoration: none;
    transition: background .18s;
}
.ip-cta-band .ip-cta-sm:hover { background: var(--ip-primary-dk); }

/* ===== footer ===== */
.site-footer {
    background: var(--ip-bg) !important;
    border-top: 1px solid var(--ip-border) !important;
    color: var(--ip-ink-mute) !important;
    padding: 0 !important;
}
.site-footer .col-full {
    padding: 48px 32px !important;
}
.site-footer .ip-footer-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 32px;
    margin-bottom: 40px;
}
@media (max-width: 720px) {
    .site-footer .ip-footer-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}
.site-footer h4 {
    font-size: 12px !important;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--ip-ink-dim) !important;
    margin: 0 0 12px !important;
    font-weight: 600;
}
.site-footer .ip-footer-blurb {
    font-size: 14px;
    color: var(--ip-ink-mute);
    line-height: 1.55;
    margin-top: 12px;
}
.site-footer ul {
    list-style: none;
    padding: 0;
    margin: 0;
}
.site-footer ul li {
    margin-bottom: 8px;
}
.site-footer ul a {
    color: var(--ip-ink-mute) !important;
    font-size: 14px;
    text-decoration: none;
    transition: color .18s;
}
.site-footer ul a:hover { color: var(--ip-ink) !important; }
.site-footer .site-info {
    border-top: 1px solid var(--ip-border);
    padding: 24px 0 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    font-size: 12px;
}
.site-footer .site-info p { margin: 0; color: var(--ip-ink-faint); }
.site-footer img.ip-logo { height: 40px; width: auto; }

/* hide Storefront's default site-info "built with WC" */
.site-footer .storefront-handheld-footer-bar { display: none !important; }

/* ===== general WC overrides ===== */
.woocommerce-info, .woocommerce-message, .woocommerce-error {
    background: var(--ip-surface) !important;
    color: var(--ip-ink) !important;
    border-radius: var(--ip-radius-sm) !important;
    border-left: 3px solid var(--ip-primary) !important;
    padding: 14px 18px !important;
}
.woocommerce-message::before, .woocommerce-info::before { color: var(--ip-primary) !important; }
.woocommerce-error::before { color: var(--ip-danger) !important; }

.button, button.button, input.button,
.woocommerce .button, .woocommerce .button.alt,
.woocommerce-page .button, .woocommerce-page .button.alt {
    background: var(--ip-primary) !important;
    color: white !important;
    border-radius: var(--ip-radius-sm) !important;
    padding: 10px 20px !important;
    font-weight: 600 !important;
    border: none !important;
    transition: background .18s !important;
    box-shadow: none !important;
}
.button:hover, button.button:hover, input.button:hover,
.woocommerce .button:hover, .woocommerce .button.alt:hover {
    background: var(--ip-primary-dk) !important;
    transform: none !important;
}

/* Forms */
input[type="text"], input[type="email"], input[type="tel"], input[type="number"],
input[type="password"], input[type="search"], textarea, select,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea {
    background: var(--ip-surface) !important;
    color: var(--ip-ink) !important;
    border: 1px solid var(--ip-surface-2) !important;
    border-radius: var(--ip-radius-sm) !important;
    padding: 10px 14px !important;
    font-size: 14px !important;
}
input:focus, textarea:focus, select:focus {
    outline: none !important;
    border-color: var(--ip-primary) !important;
    box-shadow: 0 0 0 3px rgba(16,185,129,.15) !important;
}
::placeholder { color: var(--ip-ink-faint); }

/* Tables (cart / checkout) */
.woocommerce table.shop_table {
    background: var(--ip-surface) !important;
    border: 1px solid var(--ip-border) !important;
    border-radius: var(--ip-radius) !important;
    overflow: hidden;
    color: var(--ip-ink-dim) !important;
}
.woocommerce table.shop_table th {
    background: var(--ip-surface-2) !important;
    color: var(--ip-ink) !important;
    border-bottom: 1px solid var(--ip-border) !important;
}
.woocommerce table.shop_table td {
    border-bottom: 1px solid var(--ip-border) !important;
    color: var(--ip-ink-dim) !important;
}
.woocommerce table.shop_table tfoot th, .woocommerce table.shop_table tfoot td {
    background: var(--ip-surface-2) !important;
    color: var(--ip-ink) !important;
}

/* Single product page */
.single-product .product .product_title { color: var(--ip-ink); }
.single-product .product .price { color: var(--ip-ink); font-weight: 700; }
.single-product .product .summary { color: var(--ip-ink-dim); }
.single-product div.product .woocommerce-product-gallery {
    background: var(--ip-surface);
    border-radius: var(--ip-radius);
    padding: 20px;
}
.single-product .woocommerce-tabs ul.tabs li {
    background: var(--ip-surface) !important;
    border-color: var(--ip-border) !important;
    border-radius: var(--ip-radius-sm) !important;
}
.single-product .woocommerce-tabs ul.tabs li a {
    color: var(--ip-ink-dim) !important;
}
.single-product .woocommerce-tabs ul.tabs li.active {
    background: var(--ip-primary) !important;
}
.single-product .woocommerce-tabs ul.tabs li.active a {
    color: white !important;
}
.single-product .product_meta {
    border-top: 1px solid var(--ip-border);
    padding-top: 14px;
    margin-top: 14px;
    color: var(--ip-ink-mute);
    font-size: 13px;
}
.single-product .product_meta a { color: var(--ip-ink-dim); }
.ip-product-specs { width: 100%; border-collapse: collapse; margin: 14px 0; font-size: 13px; }
.ip-product-specs th { text-align: left; color: var(--ip-ink-mute); font-weight: 500; padding: 7px 12px 7px 0; width: 110px; }
.ip-product-specs td { padding: 7px 0; color: var(--ip-ink); }
.ip-product-specs tr + tr th, .ip-product-specs tr + tr td { border-top: 1px solid var(--ip-border); }

/* My account */
.woocommerce-MyAccount-navigation ul li a {
    background: var(--ip-surface) !important;
    color: var(--ip-ink-dim) !important;
    border-radius: var(--ip-radius-sm) !important;
}
.woocommerce-MyAccount-navigation ul li.is-active a,
.woocommerce-MyAccount-navigation ul li a:hover {
    background: var(--ip-primary) !important;
    color: white !important;
}

/* Pagination */
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
    background: var(--ip-surface) !important;
    color: var(--ip-ink-dim) !important;
    border-color: var(--ip-border) !important;
    border-radius: var(--ip-radius-sm) !important;
    padding: 6px 12px !important;
}
.woocommerce nav.woocommerce-pagination ul li span.current {
    background: var(--ip-primary) !important;
    color: white !important;
}

/* page bodies (about / contact) */
.entry-content, .ip-page-body {
    color: var(--ip-ink-dim);
    font-size: 15px;
    line-height: 1.65;
}
.entry-content h2, .ip-page-body h2 {
    color: var(--ip-ink);
    margin-top: 28px;
    margin-bottom: 10px;
    font-size: 20px;
}

/* ===== side cart drawer ===== */
.ip-cart-overlay {
    position: fixed;
    inset: 0;
    background: rgba(3,7,18,0.65);
    backdrop-filter: blur(2px);
    z-index: 100;
    opacity: 0;
    pointer-events: none;
    transition: opacity .25s ease;
}
.ip-cart-overlay.is-open {
    opacity: 1;
    pointer-events: auto;
}
.ip-cart-drawer {
    position: fixed;
    top: 0; right: 0; bottom: 0;
    width: 380px;
    max-width: 92vw;
    background: var(--ip-surface);
    border-left: 1px solid var(--ip-border);
    box-shadow: -8px 0 30px rgba(0,0,0,0.40);
    z-index: 101;
    transform: translateX(100%);
    transition: transform .3s cubic-bezier(.2,.7,.3,1);
    display: flex;
    flex-direction: column;
}
.ip-cart-drawer.is-open { transform: translateX(0); }
.ip-cart-drawer__head {
    padding: 18px 22px;
    border-bottom: 1px solid var(--ip-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.ip-cart-drawer__head h3 {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    color: var(--ip-ink);
}
.ip-cart-drawer__close {
    background: transparent;
    border: none;
    color: var(--ip-ink-mute);
    cursor: pointer;
    padding: 6px;
    border-radius: var(--ip-radius-sm);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background .18s, color .18s;
}
.ip-cart-drawer__close:hover { background: var(--ip-surface-2); color: var(--ip-ink); }
.ip-cart-drawer__close svg { width: 18px; height: 18px; }
.ip-cart-drawer__body {
    flex: 1;
    overflow-y: auto;
    padding: 18px 22px;
}
.ip-cart-drawer__body .woocommerce-mini-cart {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.ip-cart-drawer__body .woocommerce-mini-cart__empty-message {
    color: var(--ip-ink-mute);
    text-align: center;
    padding: 36px 0;
    font-size: 14px;
}
.ip-cart-drawer__body .woocommerce-mini-cart-item {
    list-style: none !important;
    padding: 12px 0 !important;
    border-bottom: 1px solid var(--ip-border) !important;
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin: 0 !important;
}
.ip-cart-drawer__body .woocommerce-mini-cart-item img {
    width: 56px !important;
    height: 56px !important;
    object-fit: cover;
    border-radius: var(--ip-radius-sm);
    background: var(--ip-surface-2);
    margin: 0 !important;
    float: none !important;
}
.ip-cart-drawer__body .woocommerce-mini-cart-item a {
    color: var(--ip-ink) !important;
    text-decoration: none;
    font-weight: 500;
    font-size: 13px;
    flex: 1;
}
.ip-cart-drawer__body .woocommerce-mini-cart-item a:hover { color: var(--ip-primary) !important; }
.ip-cart-drawer__body .woocommerce-mini-cart-item .quantity {
    color: var(--ip-ink-mute);
    font-size: 12px;
    display: block;
    margin-top: 4px;
}
.ip-cart-drawer__body .woocommerce-mini-cart-item .remove {
    color: var(--ip-ink-faint) !important;
    background: transparent !important;
    font-size: 18px !important;
    padding: 0 !important;
    margin: 0 !important;
    width: 20px;
    height: 20px;
    line-height: 20px;
    border-radius: 50%;
    flex-shrink: 0;
}
.ip-cart-drawer__body .woocommerce-mini-cart-item .remove:hover {
    background: var(--ip-danger) !important;
    color: white !important;
}
.ip-cart-drawer__foot {
    padding: 18px 22px;
    border-top: 1px solid var(--ip-border);
    background: var(--ip-surface-2);
}
.ip-cart-drawer__total {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 14px;
    color: var(--ip-ink);
    font-weight: 600;
    font-size: 15px;
}
.ip-cart-drawer__total .amount { color: var(--ip-primary); font-size: 18px; }
.ip-cart-drawer__actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}
.ip-cart-drawer__actions a {
    text-align: center;
    padding: 11px 14px;
    border-radius: var(--ip-radius-sm);
    text-decoration: none;
    font-weight: 600;
    font-size: 13px;
    transition: background .18s, color .18s;
}
.ip-cart-drawer__actions a.ip-cart-view {
    background: var(--ip-surface);
    color: var(--ip-ink-dim);
    border: 1px solid var(--ip-border);
}
.ip-cart-drawer__actions a.ip-cart-view:hover {
    background: var(--ip-bg);
    color: var(--ip-ink);
}
.ip-cart-drawer__actions a.ip-cart-checkout {
    background: var(--ip-primary);
    color: white;
}
.ip-cart-drawer__actions a.ip-cart-checkout:hover {
    background: var(--ip-primary-dk);
}

body.ip-cart-open { overflow: hidden; }

/* ===== animations ===== */
.ip-fade-in {
    opacity: 0;
    transform: translateY(12px);
    transition: opacity .6s cubic-bezier(.2,.7,.3,1), transform .6s cubic-bezier(.2,.7,.3,1);
}
.ip-fade-in.is-visible { opacity: 1; transform: translateY(0); }
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        transition-duration: 0.01ms !important;
    }
}
