@import './_vars.css';

/* Unified, cleaned pack styles - optimized for readability and maintainability */
:root {
    /* pack visuals */
    --pack-placeholder-bg: #F4F5F7;
    --pack-border: rgba(0, 0, 0, .05);
    --pack-shine: linear-gradient(90deg, transparent 30%, rgba(255, 255, 255, .18) 50%, transparent 70%);
    --site-primary-rgb: 200, 16, 46;

    /* site color tokens */
    --site-t_title: #1D2129;
    --site-t_body: #4E5969;
    --site-t_sub: #86909C;
    --site-primary: #C8102E;

    /* typography */
    --site-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --site-fs-title: 0.875rem;
    /* 14px */
    --site-fs-sub: 0.625rem;
    /* 10px */
    --site-fs-body: 0.875rem;
    /* 14px */
    --site-line-height-tight: 1.15;
    --site-line-height-normal: 1.4;

    /* card tokens */
    --card-pad: 0.75rem;
    --card-gap: 0.75rem;
}

/* Base pack / thumbnail styles */
.pack,
.cig-pack,
.pack-thumb,
.pack-mini,
.pack-3d,
.pack-thumb-mini {
    position: relative;
    overflow: hidden;
    border-radius: 4px;
    background: linear-gradient(135deg, #f0f0f0 0%, #eaeaea 100%);
    border: 1px solid var(--pack-border);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.pack img,
.pack .pack-img,
.pack-thumb .pack-img,
.pack-mini img {
    position: absolute;
    inset: 0;
    margin: auto;
    width: 100%;
    height: 100%;
    object-fit: contain;
    z-index: 1;
    display: block;
}

.pack .pack-brand,
.pack-thumb .pack-brand,
.pack-mini .pack-brand {
    position: relative;
    z-index: 2;
    display: block;
    text-align: center;
}

.pack::after,
.pack-thumb::after,
.pack-mini::after,
.pack-3d::after {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--pack-shine);
    transform: skewX(-20deg);
    opacity: var(--shine-opacity, .35);
    transition: opacity 240ms ease;
    pointer-events: none;
    z-index: 3;
}

.pack.has-image,
.pack-thumb.has-image,
.pack-mini.has-image,
.pack-3d.has-image {
    --shine-opacity: .08;
}

.pack.no-image,
.pack-thumb.no-image,
.pack-mini.no-image,
.pack-3d.no-image {
    --shine-opacity: .45;
    background: var(--pack-placeholder-bg) !important;
}

.pack.has-image .pack-brand,
.pack-thumb.has-image .pack-brand,
.pack-mini.has-image .pack-brand {
    display: none;
}

.pack.no-image .pack-brand,
.pack-thumb.no-image .pack-brand,
.pack-mini.no-image .pack-brand {
    display: block;
}

@media (prefers-reduced-motion: reduce) {

    .pack::after,
    .pack-thumb::after,
    .pack-mini::after,
    .pack-3d::after {
        animation: none;
        opacity: .06 !important;
    }
}

/* small helpers */
.barcode-mini {
    width: 20px;
    height: 12px;
    background: repeating-linear-gradient(90deg, #333 0 1px, transparent 1px 2px, #333 2px 4px);
    opacity: .6;
}

.cig-pack {
    aspect-ratio: 5.5/9;
}

.pack-thumb {
    width: 70px;
    aspect-ratio: 5.5/9;
}

.pack-mini {
    width: 45px;
    aspect-ratio: 4/9;
}

.pack-thumb-mini {
    width: 48px;
    aspect-ratio: 3/4;
}

/* Entry cards / shortcuts */
.card-entry {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 0.5rem;
    padding: var(--card-pad) !important;
}

.card-entry .card-icon {
    width: 42px;
    height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: rgba(0, 0, 0, 0.04);
}

.card-entry.bg-ghost {
    background: #fff;
}

.card-entry h2.card-title {
    margin: 0;
}

.card-entry.card-primary {
    background-image: linear-gradient(135deg, rgba(200, 16, 46, 0.88), rgba(213, 73, 65, 0.86));
    box-shadow: 0 6px 14px rgba(200, 16, 46, 0.12);
    color: #fff !important;
}

.card-entry.card-primary .card-icon {
    background: rgba(255, 255, 255, 0.14) !important;
}

.card-entry.bg-ghost .card-icon {
    background: rgba(var(--site-primary-rgb), 0.06) !important;
}

.card-entry p.card-meta {
    margin: 0;
    opacity: 0.9;
}

.card-entry:active {
    transform: scale(0.99);
}

.card-icon .iconify {
    font-size: 1.35rem;
}

/* Cards / typography */
.rounded-card h3,
.rounded-card .card-title,
.rounded-card .pack-title,
.pack .pack-title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--site-t_title);
    line-height: 1.15;
}

.rounded-card p,
.rounded-card .meta,
.rounded-card .pack-meta,
.pack .pack-meta {
    font-size: var(--site-fs-sub);
    color: var(--site-t_sub);
    margin-top: 0.25rem;
}

.rounded-card .price,
.rounded-card .card-price,
.rounded-card .pack-price {
    color: var(--site-primary);
    font-weight: 700;
}

.pack .pack-brand,
.pack-thumb .pack-brand,
.pack-mini .pack-brand {
    font-size: 7px;
    font-weight: 700;
    color: var(--site-primary);
}

/* Global token helpers */
body {
    font-family: var(--site-font-family);
    color: var(--site-t_body);
}

.text-t_title {
    color: var(--site-t_title) !important;
}

.text-t_body {
    color: var(--site-t_body) !important;
}

.text-t_sub {
    color: var(--site-t_sub) !important;
}

.text-primary {
    color: var(--site-primary) !important;
}

/* Normalize sizes used inside cards/lists */
.rounded-card h3,
.card-title,
.pack-title {
    font-size: var(--site-fs-title) !important;
    line-height: var(--site-line-height-tight) !important;
    color: var(--site-t_title) !important;
}

.rounded-card p,
.card-meta,
.pack-meta,
.meta {
    font-size: var(--site-fs-sub) !important;
    color: var(--site-t_sub) !important;
    margin-top: .25rem !important;
}

.rounded-card .price,
.card-price,
.pack-price {
    font-size: var(--site-fs-body) !important;
    color: var(--site-primary) !important;
    font-weight: 700 !important;
}

#pd-title,
#cigar-title,
.detail-title {
    font-size: 1rem !important;
    font-weight: 700 !important;
    color: var(--site-t_title) !important;
    line-height: var(--site-line-height-tight) !important;
}

#pd-sub,
.detail-sub {
    font-size: .875rem !important;
    color: var(--site-t_sub) !important;
}

.text-small,
.small {
    font-size: .75rem !important;
    color: var(--site-t_sub) !important;
}

/* Prevent overflow */
.rounded-card .card-title,
.pack .pack-title,
.cig-pack .pack-brand,
.pack-thumb .pack-brand {
    display: -webkit-box !important;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.rounded-card .card-meta,
.rounded-card .pack-meta,
.rounded-card .card-price {
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.pack img,
.pack .pack-img,
.pack-thumb .pack-img,
.pack-mini img {
    max-width: 100%;
    height: auto;
}

.rounded-card {
    overflow: hidden;
}

.rounded-card .card-title,
.pack .pack-title,
.cig-pack .pack-brand,
.pack-thumb .pack-brand {
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: break-all !important;
}

.rounded-card .card-title {
    display: -webkit-box !important;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    max-height: calc(2 * 1.15rem) !important;
}

/* Visual tuning for special entry cards */
.card-entry.card-intel {
    position: relative;
    overflow: visible;
    color: #fff !important;
    /* restored to primary red theme */
    background-image: linear-gradient(135deg, rgba(200, 16, 46, 0.98) 0%, rgba(200, 16, 46, 0.86) 100%);
    box-shadow: 0 14px 36px rgba(200, 16, 46, 0.12);
}

.card-entry.card-intel::before {
    content: "";
    position: absolute;
    right: -28px;
    top: -18px;
    width: 140px;
    height: 140px;
    background: radial-gradient(circle at 30% 30%, rgba(6, 182, 212, 0.11), rgba(6, 182, 212, 0.03) 45%, transparent 60%);
    filter: blur(14px);
    transform: rotate(12deg);
    pointer-events: none;
    z-index: 0;
}

.card-entry.card-intel .card-icon {
    z-index: 2;
    background: rgba(255, 255, 255, 0.14) !important;
    color: #fff !important;
    border-radius: 10px;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12);
}

.card-entry.card-intel .iconify {
    color: #fff !important;
}

.card-entry.card-intel .card-title,
.card-entry.card-intel .card-meta {
    z-index: 2;
    color: #fff !important;
}

.card-entry.card-cigar {
    position: relative;
    overflow: visible;
    color: #F8EFD8 !important;
    background-image: linear-gradient(135deg, #4A2C2A 0%, #2D1B1A 100%);
    box-shadow: 0 12px 30px rgba(28, 18, 17, 0.48);
    border: 1px solid rgba(212, 175, 55, 0.20);
}

.card-entry.card-cigar .card-icon {
    z-index: 2;
    background: rgba(212, 175, 55, 0.12) !important;
    color: #D4AF37 !important;
    border-radius: 8px;
    box-shadow: inset 0 -2px 6px rgba(0, 0, 0, 0.12), 0 6px 14px rgba(45, 27, 26, 0.24);
}

.card-entry.card-cigar .iconify {
    color: #D4AF37 !important;
}

.card-entry.card-cigar .card-title,
.card-entry.card-cigar .card-meta {
    z-index: 2;
    color: rgba(248, 239, 216, 0.98) !important;
}

/* small utilities */
.border-gold-20 {
    border: 1px solid rgba(212, 175, 55, 0.20) !important;
}

.card-badge,
.badge {
    font-size: .625rem;
    padding: .125rem .4rem;
    border-radius: 999px;
    display: inline-block;
}

/* Bottom-nav / safe-area helpers */
.safe-bottom {
    padding-bottom: env(safe-area-inset-bottom);
}

/* Ensure main scroll areas reserve enough space for fixed bottom UI
   Use a comfortable minimum so content isn't obscured by nav/toolbar */
main,
main.flex-1 {
    padding-bottom: max(env(safe-area-inset-bottom), 96px) !important;
}

/* Centralized bottom navigation helper (used in pages alongside Tailwind classes) */
.site-nav {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    max-width: 450px;
    margin-left: auto;
    margin-right: auto;
    display: flex;
    justify-content: space-around;
    align-items: center;
    padding-top: .5rem;
    padding-bottom: .5rem;
    background: #fff;
    border-top: 1px solid var(--pack-border);
    z-index: 40;
}

.site-nav a {
    text-decoration: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .25rem;
}

.site-nav a:focus {
    outline: 3px solid rgba(200, 16, 46, 0.12);
    outline-offset: 4px;
    border-radius: 6px;
}

/* Provide a small shadow lift to visually separate nav on scroll */
.site-nav--shadow {
    box-shadow: 0 -6px 18px rgba(0, 0, 0, 0.04);
}

/* Utility fallbacks for commonly-used Tailwind-like classes in templates */
.bg-primary {
    background: var(--color-primary) !important;
}

/* Utility: explicit white background for image containers */
.bg-white {
    background: #ffffff !important;
}

.text-primary {
    color: var(--color-primary) !important;
}

.bg-blue-50 {
    background: rgba(0, 122, 255, 0.06) !important;
}

.text-blue-600 {
    color: #007AFF !important;
}

.bg-gray-50 {
    background: #F8F9FA !important;
}

.bg-gray-100 {
    background: #F0F0F2 !important;
}

.border-border {
    border-color: var(--pack-border) !important;
}

.rounded-card {
    border-radius: var(--radius-md);
}

.shadow-sm {
    box-shadow: 0 4px 10px rgba(21, 28, 39, 0.04);
}

.shadow-md {
    box-shadow: 0 8px 20px rgba(21, 28, 39, 0.06);
}

.text-t_sub {
    color: var(--text-muted) !important;
}

.text-t_title {
    color: var(--text-title) !important;
}

.active-scale:active {
    transform: scale(0.985);
}

/* end of pack.css */

/* Compare toolbar: force opaque white background for parameter-compare UI */
.compare-bar {
    background: #ffffff !important;
    backdrop-filter: none !important;
}

/* Health notice: unified bottom safety slogan block */
#healthNotice_global {
    background: #ffffff;
    color: var(--site-t_sub);
    font-size: 12px;
    text-align: center;
    padding: 0.5rem 1rem;
    box-sizing: border-box;
    z-index: 60;
}