/* ═══════════════════════════════════════════════════
   NUHA PRO THEME v2 – Components
   Buttons, cards, badges, product cards (light mode)
   ═══════════════════════════════════════════════════ */

/* ─── Buttons ────────────────────────────────────── */
.nuha-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--nuha-sp-2);
    font-family: var(--nuha-font-display);
    font-weight: 700;
    font-size: var(--nuha-text-sm);
    border-radius: var(--nuha-radius-full);
    padding: 10px 24px;
    transition: all var(--nuha-duration) var(--nuha-ease);
    white-space: nowrap;
    text-decoration: none;
    line-height: 1.4;
    cursor: pointer;
}

.nuha-btn--primary {
    background-color: var(--nuha-navy);
    color: #fff;
    box-shadow: var(--nuha-shadow-navy);
}
.nuha-btn--primary:hover {
    background-color: var(--nuha-primary-dark);
    transform: scale(1.05);
    box-shadow: var(--nuha-shadow-glow);
}

.nuha-btn--outline {
    background: #fff;
    color: var(--nuha-text-body);
    border: 1px solid var(--nuha-border);
    box-shadow: var(--nuha-shadow-sm);
}
.nuha-btn--outline:hover {
    background: var(--nuha-bg-off);
    border-color: var(--nuha-primary);
    box-shadow: var(--nuha-shadow-md);
}

.nuha-btn--cta {
    background-color: var(--nuha-primary);
    color: #fff;
    box-shadow: 0 8px 20px -4px rgba(14,165,233,0.25);
}
.nuha-btn--cta:hover {
    background-color: #0369a1;
    transform: translateY(-1px);
    box-shadow: 0 12px 30px -4px rgba(14,165,233,0.35);
}

.nuha-btn--icon {
    background: var(--nuha-navy);
    color: #fff;
    padding: 10px;
    border-radius: var(--nuha-radius-xl);
    box-shadow: var(--nuha-shadow-navy);
}
.nuha-btn--icon:hover {
    background: var(--nuha-primary);
    box-shadow: var(--nuha-shadow-glow);
}

.nuha-btn--lg {
    font-size: var(--nuha-text-base);
    padding: 16px 32px;
}
.nuha-btn--sm {
    font-size: var(--nuha-text-xs);
    padding: 8px 16px;
}
.nuha-btn--reveal {
    font-weight: 700;
    font-size: var(--nuha-text-xs);
    padding: 8px 0;
    border-radius: var(--nuha-radius-lg);
    background: var(--nuha-primary-light);
    color: var(--nuha-primary-dark);
    transition: all var(--nuha-duration) var(--nuha-ease);
}
.nuha-btn--reveal:hover {
    background: var(--nuha-primary);
    color: #fff;
}

/* ─── Cards ──────────────────────────────────────── */
.nuha-card {
    background: #fff;
    border: 1px solid var(--nuha-border);
    border-radius: var(--nuha-radius-3xl);
    padding: var(--nuha-sp-8);
    box-shadow: var(--nuha-shadow-soft);
    transition: all var(--nuha-duration) var(--nuha-ease);
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    height: 100%;
}
.nuha-card:hover {
    box-shadow: var(--nuha-shadow-xl);
    transform: translateY(-4px);
}

/* Card with colored hover gradient overlay */
.nuha-card--hover-sky .nuha-card__overlay    { background: linear-gradient(to bottom right, var(--nuha-sky-50), transparent); }
.nuha-card--hover-indigo .nuha-card__overlay { background: linear-gradient(to bottom right, var(--nuha-indigo-50), transparent); }
.nuha-card--hover-emerald .nuha-card__overlay{ background: linear-gradient(to bottom right, var(--nuha-emerald-50), transparent); }
.nuha-card--hover-purple .nuha-card__overlay { background: linear-gradient(to bottom right, var(--nuha-purple-50), transparent); }
.nuha-card--hover-teal .nuha-card__overlay   { background: linear-gradient(to bottom right, var(--nuha-teal-50), transparent); }

.nuha-card__overlay {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity var(--nuha-duration) var(--nuha-ease);
    pointer-events: none;
}
.nuha-card:hover .nuha-card__overlay {
    opacity: 1;
}

.nuha-card__icon {
    width: 56px;
    height: 56px;
    border-radius: var(--nuha-radius-2xl);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: var(--nuha-sp-6);
    transition: transform var(--nuha-duration) var(--nuha-ease);
    position: relative;
    z-index: var(--nuha-z-base);
}
.nuha-card:hover .nuha-card__icon {
    transform: scale(1.1);
}
.nuha-card__icon--sky     { background: var(--nuha-sky-100);     color: var(--nuha-primary); }
.nuha-card__icon--indigo  { background: var(--nuha-indigo-100);  color: var(--nuha-indigo-600); }
.nuha-card__icon--emerald { background: var(--nuha-emerald-100); color: var(--nuha-emerald-600); }
.nuha-card__icon--purple  { background: var(--nuha-purple-50);   color: var(--nuha-purple-600); }
.nuha-card__icon--teal    { background: var(--nuha-teal-50);     color: var(--nuha-teal-600); }
.nuha-card__icon--orange  { background: var(--nuha-orange-50);   color: var(--nuha-orange-600); }
.nuha-card__icon--pink    { background: var(--nuha-pink-50);     color: var(--nuha-pink-600); }
.nuha-card__icon--blue    { background: var(--nuha-blue-50);     color: #2563eb; }

.nuha-card__title {
    font-size: var(--nuha-text-xl);
    font-weight: 700;
    color: var(--nuha-navy);
    margin-bottom: var(--nuha-sp-3);
    position: relative;
    z-index: var(--nuha-z-base);
}

.nuha-card__desc {
    font-size: var(--nuha-text-sm);
    color: var(--nuha-text-muted);
    line-height: var(--nuha-leading-relaxed);
    margin-bottom: var(--nuha-sp-8);
    flex-grow: 1;
    position: relative;
    z-index: var(--nuha-z-base);
}

.nuha-card__link {
    font-size: var(--nuha-text-sm);
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    transition: gap var(--nuha-duration) var(--nuha-ease);
    position: relative;
    z-index: var(--nuha-z-base);
    margin-top: auto;
}
.nuha-card:hover .nuha-card__link {
    gap: 8px;
}

/* ─── Venture Card (with status badge) ───────────── */
.nuha-venture {
    background: #fff;
    border: 1px solid var(--nuha-border);
    border-radius: var(--nuha-radius-3xl);
    padding: var(--nuha-sp-10);
    transition: all var(--nuha-duration) var(--nuha-ease);
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}
.nuha-venture:hover {
    border-color: var(--nuha-primary);
    box-shadow: var(--nuha-shadow-xl);
    transform: translateY(-4px);
}

.nuha-venture__blur {
    position: absolute;
    top: 0;
    right: 0;
    width: 128px;
    height: 128px;
    border-radius: 50%;
    filter: blur(48px);
    margin-right: -64px;
    margin-top: -64px;
    opacity: 0;
    transition: opacity var(--nuha-duration-slow) var(--nuha-ease);
}
.nuha-venture:hover .nuha-venture__blur { opacity: 1; }

.nuha-venture__icon {
    width: 64px;
    height: 64px;
    border-radius: var(--nuha-radius-2xl);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: var(--nuha-sp-6);
    box-shadow: var(--nuha-shadow-sm);
    transition: all var(--nuha-duration) var(--nuha-ease);
}
.nuha-venture:hover .nuha-venture__icon {
    color: #fff !important;
}

.nuha-venture__badge {
    position: absolute;
    top: var(--nuha-sp-6);
    right: var(--nuha-sp-6);
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    border-radius: var(--nuha-radius-full);
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    z-index: var(--nuha-z-widget);
}

/* ─── Product Card (Catalog) ─────────────────────── */
.nuha-product-card {
    background: #fff;
    border-radius: var(--nuha-radius-2xl);
    border: 1px solid var(--nuha-border);
    transition: all var(--nuha-duration) var(--nuha-ease);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    position: relative;
}
.nuha-product-card:hover {
    border-color: rgba(14,165,233,0.5);
    box-shadow: var(--nuha-shadow-xl);
}

.nuha-product-card__badge {
    position: absolute;
    top: var(--nuha-sp-4);
    right: var(--nuha-sp-4);
    z-index: var(--nuha-z-content);
    display: inline-flex;
    align-items: center;
    padding: 2px 10px;
    border-radius: var(--nuha-radius-full);
    font-size: var(--nuha-text-xs);
    font-weight: 700;
}
.nuha-product-card__badge--premium {
    background: linear-gradient(to right, #fde68a, #fbbf24);
    color: #78350f;
    box-shadow: var(--nuha-shadow-sm);
}
.nuha-product-card__badge--new {
    background: var(--nuha-green-100);
    color: var(--nuha-green-700);
    border: 1px solid var(--nuha-green-200);
}
.nuha-product-card__badge--popular {
    background: var(--nuha-sky-100);
    color: #0369a1;
    border: 1px solid var(--nuha-sky-100);
}

.nuha-product-card__body {
    padding: var(--nuha-sp-6);
    padding-bottom: 0;
    flex-grow: 1;
}

.nuha-product-card__icon {
    width: 48px;
    height: 48px;
    border-radius: var(--nuha-radius-xl);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: var(--nuha-sp-4);
    transition: transform var(--nuha-duration) var(--nuha-ease);
}
.nuha-product-card:hover .nuha-product-card__icon {
    transform: scale(1.1);
}

.nuha-product-card__title {
    font-size: var(--nuha-text-lg);
    font-weight: 700;
    color: var(--nuha-navy);
    margin-bottom: var(--nuha-sp-2);
    transition: color var(--nuha-duration) var(--nuha-ease);
}
.nuha-product-card:hover .nuha-product-card__title {
    color: var(--nuha-primary);
}

.nuha-product-card__desc {
    font-size: var(--nuha-text-sm);
    color: var(--nuha-text-muted);
    margin-bottom: var(--nuha-sp-4);
}

/* Rating stars */
.nuha-stars {
    display: inline-flex;
    gap: 0;
    color: var(--nuha-amber-400);
}
.nuha-stars .material-symbols-outlined {
    font-size: 14px;
    font-variation-settings: 'FILL' 1;
}
.nuha-stars--empty { color: var(--nuha-border); }

.nuha-product-card__footer {
    padding: var(--nuha-sp-6);
    padding-top: 0;
    margin-top: auto;
}

.nuha-product-card__price-row {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    border-top: 1px solid var(--nuha-border-light);
    padding-top: var(--nuha-sp-4);
}

.nuha-product-card__price {
    font-size: var(--nuha-text-xl);
    font-weight: 800;
    color: var(--nuha-navy);
}
.nuha-product-card__price-label {
    font-size: var(--nuha-text-xs);
    color: var(--nuha-text-light);
    display: block;
    margin-bottom: 2px;
}

.nuha-product-card__reveal {
    height: 0;
    opacity: 0;
    overflow: hidden;
    transition: all var(--nuha-duration) var(--nuha-ease);
}
.nuha-product-card:hover .nuha-product-card__reveal {
    height: 40px;
    opacity: 1;
}

/* ─── Badges ─────────────────────────────────────── */
.nuha-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 8px;
    border-radius: var(--nuha-radius-sm);
    font-size: var(--nuha-text-xs);
    font-weight: 700;
}
.nuha-badge--primary { background: rgba(14,165,233,0.1); color: var(--nuha-primary); }
.nuha-badge--green   { background: var(--nuha-green-100); color: var(--nuha-green-700); }
.nuha-badge--purple  { background: var(--nuha-indigo-100); color: var(--nuha-indigo-600); }
.nuha-badge--amber   { background: #fef3c7; color: #92400e; }

/* ─── Glass Widget (Hero) ────────────────────────── */
.nuha-widget {
    background: var(--nuha-glass-widget-bg);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border: 1px solid var(--nuha-glass-widget-border);
    box-shadow: var(--nuha-glass-widget-shadow);
    border-radius: var(--nuha-radius-2xl);
    z-index: var(--nuha-z-widget);
}

/* ─── Material Icon ──────────────────────────────── */
.nuha-icon {
    font-variation-settings: 'FILL' 0;
    vertical-align: middle;
}
.nuha-icon--fill {
    font-variation-settings: 'FILL' 1;
}
