/*
Theme Name:        316 Digital Coupons
Theme URI:         https://316digitalcoupons.com
Description:       Child theme for the 316 Digital Coupons platform. Applies the dark navy/gold design system from the 316DC marketing funnels to all consumer and merchant-facing pages. Fully compatible with 316dc-backend and 316dc-frontend plugins.
Author:            316 Digital Coupons
Author URI:        https://316digitalcoupons.com
Template:          twentytwentyfive
Version:           1.0.0
License:           GPL-2.0+
Text Domain:       316dc-theme
*/

/* ── DESIGN TOKENS ──────────────────────────────────────────
   Pulled directly from the 316DC marketing funnel files
   ─────────────────────────────────────────────────────────── */
:root {
    --dc-bg:           #07111f;
    --dc-bg2:          #0d1a33;
    --dc-panel:        #0f1c33;
    --dc-panel2:       #132443;
    --dc-gold:         #fbbf24;
    --dc-gold2:        #f59e0b;
    --dc-gold-dark:    #d97706;
    --dc-green:        #22c55e;
    --dc-green-dim:    rgba(34,197,94,.18);
    --dc-blue:         #60a5fa;
    --dc-red:          #ef4444;
    --dc-text:         #f8fafc;
    --dc-muted:        #cbd5e1;
    --dc-subtle:       #94a3b8;
    --dc-white:        #ffffff;
    --dc-line:         rgba(255,255,255,.12);
    --dc-line2:        rgba(255,255,255,.07);
    --dc-shadow:       0 28px 80px rgba(0,0,0,.35);
    --dc-shadow-sm:    0 8px 24px rgba(0,0,0,.25);
    --dc-glow-gold:    0 16px 38px rgba(245,158,11,.28);
    --dc-radius:       20px;
    --dc-radius-sm:    12px;
    --dc-radius-pill:  999px;
    --dc-max:          1180px;
}

/* ── BASE ───────────────────────────────────────────────────── */
*,*::before,*::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
    font-family: Arial, Helvetica, sans-serif !important;
    background:
        radial-gradient(circle at top left,  rgba(251,191,36,.10), transparent 28%),
        radial-gradient(circle at bottom right, rgba(34,197,94,.07), transparent 28%),
        linear-gradient(160deg, var(--dc-bg), var(--dc-bg2)) !important;
    background-attachment: fixed !important;
    color: var(--dc-text) !important;
    min-height: 100vh;
    -webkit-font-smoothing: antialiased;
}

/* ── TYPOGRAPHY ─────────────────────────────────────────────── */
h1,h2,h3,h4,h5,h6 {
    color: var(--dc-white) !important;
    font-weight: 900 !important;
    letter-spacing: -.025em;
}
h1 { font-size: clamp(2rem, 5vw, 3.4rem); }
h2 { font-size: clamp(1.5rem, 3.5vw, 2.2rem); }
h3 { font-size: clamp(1.1rem, 2vw, 1.5rem); }

p { color: var(--dc-muted); }
a { color: var(--dc-gold); text-decoration: none; }
a:hover { color: var(--dc-gold2); }
strong,b { color: var(--dc-white); }

.entry-title,.page-title,.wp-block-post-title {
    color: var(--dc-white) !important;
    font-weight: 900 !important;
}

::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: var(--dc-bg); }
::-webkit-scrollbar-thumb { background: rgba(255,255,255,.15); border-radius: 3px; }

/* ── SITE CHROME: transparent wrappers ─────────────────────── */
.wp-site-blocks,.site,#page,
.wp-block-post,.is-layout-flow,
.wp-block-group { background: transparent !important; }

/* ── HEADER ─────────────────────────────────────────────────── */
.wp-block-template-part,
header,
.site-header {
    background: rgba(7,17,31,.85) !important;
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-bottom: 1px solid var(--dc-line) !important;
}

.wp-block-site-title a,
.site-title a {
    color: var(--dc-gold) !important;
    font-weight: 900 !important;
    text-transform: uppercase;
    letter-spacing: .07em;
    font-size: 1rem !important;
}
.wp-block-site-title a:hover { color: var(--dc-gold2) !important; }

/* Nav links */
.wp-block-navigation a,
.wp-block-navigation__submenu-container a {
    color: var(--dc-muted) !important;
    font-weight: 700 !important;
    font-size: .92rem !important;
    padding: 6px 10px !important;
    border-radius: 8px !important;
    transition: color .15s, background .15s !important;
}
.wp-block-navigation a:hover { color: var(--dc-white) !important; background: rgba(255,255,255,.07) !important; }

/* Sub-menu dropdown */
.wp-block-navigation__submenu-container {
    background: var(--dc-panel) !important;
    border: 1px solid var(--dc-line) !important;
    border-radius: var(--dc-radius-sm) !important;
    box-shadow: var(--dc-shadow) !important;
}

/* Mobile overlay */
.wp-block-navigation__responsive-container.is-menu-open {
    background: rgba(7,17,31,.97) !important;
}
.wp-block-navigation__responsive-container-open svg,
.wp-block-navigation__responsive-container-close svg {
    color: var(--dc-muted);
}

/* Header must be sticky */
.wp-block-template-part[class*="header"],
header.site-header {
    position: sticky !important;
    top: 0 !important;
    z-index: 100 !important;
}

/* ── FOOTER ─────────────────────────────────────────────────── */
footer,.site-footer {
    background: var(--dc-bg) !important;
    border-top: 1px solid var(--dc-line) !important;
    color: var(--dc-subtle) !important;
    padding: 28px 20px !important;
    text-align: center;
    font-size: .88rem !important;
}
footer a { color: var(--dc-muted); }
footer a:hover { color: var(--dc-gold); }

/* ── FORMS ──────────────────────────────────────────────────── */
input:not([type=submit]):not([type=button]):not([type=checkbox]):not([type=radio]),
select, textarea {
    background: rgba(255,255,255,.06) !important;
    border: 1px solid var(--dc-line) !important;
    border-radius: var(--dc-radius-sm) !important;
    color: var(--dc-white) !important;
    padding: 12px 16px !important;
    font-family: inherit;
    font-size: 1rem;
    width: 100%;
    outline: none;
    transition: border-color .15s, background .15s, box-shadow .15s;
}
input::placeholder,textarea::placeholder { color: var(--dc-subtle) !important; }
input:focus,select:focus,textarea:focus {
    border-color: var(--dc-gold) !important;
    background: rgba(255,255,255,.09) !important;
    box-shadow: 0 0 0 3px rgba(251,191,36,.14) !important;
}
select option { background: var(--dc-panel); color: var(--dc-text); }
label { color: var(--dc-muted); font-size: .9rem; font-weight: 700; display: block; margin-bottom: 5px; }

/* ── BUTTONS ────────────────────────────────────────────────── */
.wp-block-button .wp-block-button__link,
.wp-element-button {
    background: linear-gradient(135deg, var(--dc-gold), var(--dc-gold2)) !important;
    color: #111827 !important;
    font-weight: 900 !important;
    border-radius: var(--dc-radius-sm) !important;
    box-shadow: var(--dc-glow-gold) !important;
    border: none !important;
    transition: transform .15s, box-shadow .15s !important;
}
.wp-block-button .wp-block-button__link:hover { transform: translateY(-2px) !important; }

hr,.wp-block-separator { border-color: var(--dc-line) !important; opacity: 1 !important; }

/* ────────────────────────────────────────────────────────────
   316DC PLUGIN STYLES
   ────────────────────────────────────────────────────────── */

/* ── DEAL CARDS ─────────────────────────────────────────────── */
.dc316-card {
    background: linear-gradient(180deg, rgba(15,28,51,.97), rgba(12,22,41,.97)) !important;
    border: 1px solid var(--dc-line) !important;
    border-radius: var(--dc-radius) !important;
    box-shadow: var(--dc-shadow-sm) !important;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease !important;
}
.dc316-card:hover {
    transform: translateY(-4px) !important;
    box-shadow: var(--dc-shadow) !important;
    border-color: rgba(251,191,36,.3) !important;
}
.dc316-card__biz { color: var(--dc-subtle) !important; font-size: .8rem !important; text-transform: uppercase; letter-spacing: .06em; font-weight: 700; }
.dc316-card__offer a { color: var(--dc-white) !important; font-weight: 900 !important; }
.dc316-card__offer a:hover { color: var(--dc-gold) !important; }
.dc316-card__desc,.dc316-hub__subtitle { color: var(--dc-muted) !important; }
.dc316-card__expiry { color: var(--dc-subtle) !important; font-size: .78rem !important; }
.dc316-card__img-placeholder { background: var(--dc-panel2) !important; color: var(--dc-gold) !important; }

/* Hub heading + search */
.dc316-hub__title { color: var(--dc-white) !important; font-weight: 900 !important; }
.dc316-hub__search-wrap { background: rgba(255,255,255,.05) !important; border: 1px solid var(--dc-line) !important; border-radius: var(--dc-radius-pill) !important; }
.dc316-hub__search-input { background: transparent !important; color: var(--dc-white) !important; border: none !important; box-shadow: none !important; }
.dc316-hub__join-bar {
    background: linear-gradient(135deg, rgba(15,28,51,.98), rgba(19,36,67,.98)) !important;
    border: 1px solid var(--dc-line) !important;
    border-radius: var(--dc-radius) !important;
}

/* ── BUTTONS ────────────────────────────────────────────────── */
.dc316-btn--primary,.dc316-card__claim-btn {
    background: linear-gradient(135deg, var(--dc-gold), var(--dc-gold2)) !important;
    color: #111827 !important;
    font-weight: 900 !important;
    border-radius: var(--dc-radius-sm) !important;
    box-shadow: var(--dc-glow-gold) !important;
    border: none !important;
    transition: transform .15s, box-shadow .15s !important;
}
.dc316-btn--primary:hover,.dc316-card__claim-btn:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 20px 48px rgba(245,158,11,.38) !important;
    color: #111827 !important;
}
.dc316-btn--secondary,.dc316-card__save-btn {
    background: rgba(255,255,255,.06) !important;
    color: var(--dc-muted) !important;
    border: 1px solid var(--dc-line) !important;
    border-radius: var(--dc-radius-sm) !important;
    font-weight: 700 !important;
    transition: background .15s, color .15s !important;
}
.dc316-btn--secondary:hover,.dc316-card__save-btn:hover {
    background: rgba(255,255,255,.12) !important;
    color: var(--dc-white) !important;
}
.dc316-card__save-btn.is-saved { color: var(--dc-green) !important; border-color: rgba(34,197,94,.4) !important; }

/* ── ALERTS ─────────────────────────────────────────────────── */
.dc316-alert { border-radius: var(--dc-radius-sm) !important; padding: 14px 18px !important; font-weight: 700 !important; border: 1px solid !important; }
.dc316-alert--success { background: rgba(34,197,94,.12) !important; border-color: rgba(34,197,94,.3) !important; color: #86efac !important; }
.dc316-alert--warning { background: rgba(251,191,36,.10) !important; border-color: rgba(251,191,36,.3) !important; color: var(--dc-gold) !important; }
.dc316-alert--error   { background: rgba(239,68,68,.12)  !important; border-color: rgba(239,68,68,.3)  !important; color: #fca5a5 !important; }

/* ── BADGES ─────────────────────────────────────────────────── */
.dc316-badge { display:inline-block; padding:4px 10px; border-radius:var(--dc-radius-pill); font-size:.73rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.dc316-badge--green  { background:rgba(34,197,94,.15);  color:#86efac; border:1px solid rgba(34,197,94,.3);  }
.dc316-badge--yellow { background:rgba(251,191,36,.12); color:#fde68a; border:1px solid rgba(251,191,36,.3); }
.dc316-badge--orange { background:rgba(249,115,22,.12); color:#fdba74; border:1px solid rgba(249,115,22,.3); }
.dc316-badge--red    { background:rgba(239,68,68,.12);  color:#fca5a5; border:1px solid rgba(239,68,68,.3);  }
.dc316-badge--grey   { background:rgba(148,163,184,.1); color:#94a3b8; border:1px solid rgba(148,163,184,.2);}
.dc316-badge--blue   { background:rgba(96,165,250,.12); color:#93c5fd; border:1px solid rgba(96,165,250,.3); }

/* ── CODE DISPLAY ───────────────────────────────────────────── */
.dc316-claim-success__code,.dc316-redeem__code {
    font-size: 2.2rem !important; font-weight: 900 !important;
    letter-spacing: .12em !important; color: var(--dc-gold) !important;
    font-family: 'Courier New', monospace;
}
.dc316-claim-success__code-box,.dc316-redeem__code-box {
    background: rgba(251,191,36,.08) !important;
    border: 1px solid rgba(251,191,36,.25) !important;
    border-radius: var(--dc-radius-sm) !important;
    padding: 20px !important; text-align: center; margin: 20px 0 !important;
}
.dc316-claim-success__qr,.dc316-redeem__qr {
    border: 3px solid white; border-radius: 8px;
    background: white; padding: 6px;
    margin: 12px auto 0 !important; display: block;
}

/* ── CARDS (claim/join/redeem wrappers) ─────────────────────── */
.dc316-claim-card,.dc316-redeem-card,.dc316-join-card {
    background: linear-gradient(180deg, rgba(15,28,51,.97), rgba(12,22,41,.97)) !important;
    border: 1px solid var(--dc-line) !important;
    border-radius: var(--dc-radius) !important;
    box-shadow: var(--dc-shadow) !important;
    padding: 36px 32px !important;
}

/* ── ONBOARDING WIZARD ──────────────────────────────────────── */
.dc316-onboard-card,#dc316-onboarding-form {
    background: linear-gradient(180deg, rgba(15,28,51,.97), rgba(12,22,41,.97)) !important;
    border: 1px solid var(--dc-line) !important;
    border-radius: var(--dc-radius) !important;
    box-shadow: var(--dc-shadow) !important;
    padding: 36px 32px !important;
}
.dc316-onboard-section__title {
    font-size: .76rem !important; font-weight: 900 !important;
    letter-spacing: .1em !important; color: var(--dc-subtle) !important;
    text-transform: uppercase !important;
    border-bottom: 1px solid var(--dc-line) !important;
    padding-bottom: 10px !important; margin-bottom: 18px !important;
}

/* Step indicator nums */
.dc316-step__num {
    width: 44px !important; height: 44px !important;
    border-radius: 50% !important;
    background: rgba(255,255,255,.07) !important;
    border: 2px solid var(--dc-line) !important;
    color: var(--dc-subtle) !important;
    font-weight: 900 !important;
    display: grid; place-items: center;
}
.dc316-step.is-active .dc316-step__num,
.dc316-step--active .dc316-step__num {
    background: linear-gradient(135deg, var(--dc-gold), var(--dc-gold2)) !important;
    border-color: var(--dc-gold) !important; color: #111827 !important;
    box-shadow: var(--dc-glow-gold) !important;
}
.dc316-step.is-complete .dc316-step__num,
.dc316-step--complete .dc316-step__num {
    background: rgba(34,197,94,.18) !important;
    border-color: var(--dc-green) !important; color: var(--dc-green) !important;
}
.dc316-step__label { font-size: .78rem !important; color: var(--dc-subtle) !important; font-weight: 700 !important; }
.dc316-step.is-active .dc316-step__label,.dc316-step--active .dc316-step__label { color: var(--dc-gold) !important; }
.dc316-onboard-logged-in {
    background: rgba(34,197,94,.1) !important; border: 1px solid rgba(34,197,94,.25) !important;
    border-radius: var(--dc-radius-sm) !important; padding: 12px 16px !important;
    color: #86efac !important; font-weight: 700 !important; margin-bottom: 24px !important;
}

/* ── MERCHANT DASHBOARD ─────────────────────────────────────── */
.dc316-dash-nav__item,.dc316-dash-tab {
    padding: 10px 18px !important; border-radius: 10px 10px 0 0 !important;
    font-weight: 700 !important; color: var(--dc-muted) !important;
    border: 1px solid transparent !important; border-bottom: none !important;
    transition: color .15s, background .15s !important;
    text-decoration: none !important;
}
.dc316-dash-nav__item:hover,.dc316-dash-tab:hover { color: var(--dc-white) !important; background: rgba(255,255,255,.05) !important; }
.dc316-dash-nav__item.is-active,.dc316-dash-tab.is-active {
    color: var(--dc-gold) !important;
    background: rgba(251,191,36,.06) !important;
    border-color: var(--dc-line) !important;
}
.dc316-status-card {
    background: linear-gradient(135deg, rgba(19,36,67,.98), rgba(15,28,51,.98)) !important;
    border: 1px solid var(--dc-line) !important;
    border-radius: var(--dc-radius) !important;
    padding: 28px !important;
}
.dc316-status-card__value { color: var(--dc-white) !important; font-size: 1.5rem !important; font-weight: 900 !important; }
.dc316-status-card__label { color: var(--dc-subtle) !important; font-size: .78rem !important; text-transform: uppercase; letter-spacing: .08em; font-weight: 800 !important; }
.dc316-file-card {
    background: rgba(255,255,255,.04) !important;
    border: 1px solid var(--dc-line) !important;
    border-radius: var(--dc-radius-sm) !important;
}

/* ── ANALYTICS ──────────────────────────────────────────────── */
.dc316-kpi-card {
    background: linear-gradient(180deg, rgba(15,28,51,.97), rgba(12,22,41,.97)) !important;
    border: 1px solid var(--dc-line) !important;
    border-radius: var(--dc-radius) !important;
    padding: 22px 18px !important; text-align: center;
}
.dc316-kpi-card__value { font-size: 2rem !important; font-weight: 900 !important; color: var(--dc-gold) !important; }
.dc316-kpi-card__label { font-size: .78rem !important; color: var(--dc-muted) !important; font-weight: 700 !important; text-transform: uppercase; letter-spacing: .06em; }
.dc316-chart-wrap {
    background: linear-gradient(180deg, rgba(15,28,51,.97), rgba(12,22,41,.97)) !important;
    border: 1px solid var(--dc-line) !important;
    border-radius: var(--dc-radius) !important;
    padding: 24px !important;
}

/* ── VERIFICATION TABS ──────────────────────────────────────── */
.dc316-verify-tab {
    padding: 12px 8px !important; border-radius: var(--dc-radius-sm) !important;
    font-weight: 800 !important; font-size: .88rem !important;
    border: 1px solid var(--dc-line) !important;
    background: rgba(255,255,255,.04) !important;
    color: var(--dc-muted) !important; transition: all .15s !important;
}
.dc316-verify-tab.is-active {
    background: rgba(251,191,36,.1) !important;
    border-color: var(--dc-gold) !important; color: var(--dc-gold) !important;
}

/* ── METER ──────────────────────────────────────────────────── */
.dc316-meter { background: rgba(255,255,255,.07) !important; border-radius: var(--dc-radius-pill) !important; height: 8px !important; overflow: hidden; }
.dc316-meter__fill { background: linear-gradient(90deg, var(--dc-gold), var(--dc-gold2)) !important; height: 100% !important; border-radius: var(--dc-radius-pill) !important; }

/* ── SCRATCH CARD ───────────────────────────────────────────── */
.dc316-scratch-wrap,.dc316-scratch-card {
    background: linear-gradient(180deg, rgba(15,28,51,.97), rgba(12,22,41,.97)) !important;
    border: 1px solid var(--dc-line) !important;
    border-radius: var(--dc-radius) !important;
    box-shadow: var(--dc-shadow) !important;
}

/* ── CROSS-SELL ─────────────────────────────────────────────── */
.dc316-crosssell { border-top: 1px solid var(--dc-line) !important; padding-top: 40px !important; margin-top: 40px !important; }
.dc316-crosssell__title { color: var(--dc-white) !important; font-weight: 900 !important; }

/* ── SINGLE DEAL PAGE ───────────────────────────────────────── */
.dc316-single { background: transparent !important; }
.dc316-single__offer { color: var(--dc-gold) !important; }
.dc316-single__biz { color: var(--dc-subtle) !important; }
.dc316-single__meta-table td,.dc316-single__meta-table th { border-color: var(--dc-line) !important; color: var(--dc-muted) !important; }

/* ── RESPONSIVE ─────────────────────────────────────────────── */
@media (max-width: 768px) {
    .dc316-onboard-card,#dc316-onboarding-form { padding: 24px 18px !important; }
    .dc316-kpi-card__value { font-size: 1.6rem !important; }
}
