/* ====================================
   Google Fonts — Raleway + Libre Baskerville
==================================== */
@import url('https://fonts.googleapis.com/css2?family=Raleway:wght@400;500;600;700;800;900&family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&display=swap');

/* ====================================
   CSS Variables
==================================== */
:root {
    /* Background */
    --bg-base:        #09080f;
    --bg-mid:         #110e1c;
    --bg-card:        rgba(255,255,255,0.035);
    --bg-card-hover:  rgba(255,255,255,0.065);
    --border:         rgba(255,255,255,0.07);
    --border-gold:    rgba(212,175,55,0.4);

    /* Gold palette */
    --gold:           #d4af37;
    --gold-light:     #f0d060;
    --gold-dim:       #8a7020;
    --amber:          #ffb830;

    /* Accent */
    --red:            #c41e3a;
    --teal:           #1ea8a8;

    /* Text */
    --text-primary:   #f0e8d0;
    --text-secondary: #a09070;
    --text-muted:     #5a5040;

    /* Layout */
    --header-h:       66px;
    --radius-sm:      6px;
    --radius-md:      12px;
    --radius-lg:      18px;

    /* Fonts */
    --font-display:   'Raleway', sans-serif;
    --font-body:      'Raleway', sans-serif;
    --font-serif:     'Libre Baskerville', serif;

    --transition:     0.22s cubic-bezier(0.4,0,0.2,1);
}

/* ====================================
   Reset & Base
==================================== */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior: smooth; }

body {
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.68;
    color: var(--text-primary);
    min-height: 100vh;
    background-color: var(--bg-base);
    /* Layered dark-gold background */
    background-image:
        radial-gradient(ellipse 110% 55% at 50% 0%, rgba(212,175,55,0.07) 0%, transparent 55%),
        radial-gradient(ellipse 60% 40% at 85% 80%, rgba(196,30,58,0.06) 0%, transparent 50%),
        radial-gradient(ellipse 50% 35% at 10% 60%, rgba(30,168,168,0.04) 0%, transparent 50%),
        repeating-linear-gradient(
            0deg,
            transparent,
            transparent 80px,
            rgba(212,175,55,0.012) 80px,
            rgba(212,175,55,0.012) 81px
        );
    background-attachment: fixed;
}

img { max-width:100%; height:auto; display:block; }
a { color:inherit; text-decoration:none; transition: color var(--transition); }
ul { list-style:none; }

h1,h2,h3,h4 {
    font-family: var(--font-display);
    color: var(--text-primary);
    line-height: 1.18;
    font-weight: 800;
    letter-spacing: -0.01em;
}
h1 { font-size: clamp(1.55rem, 2.8vw, 2.1rem); margin-bottom:0.5em; }
h2 { font-size: clamp(1.15rem, 2vw, 1.45rem); margin-bottom:0.45em; }
h3 { font-size: clamp(1rem, 1.5vw, 1.18rem); margin-bottom:0.4em; }
h4 { font-size:1.03rem; margin-bottom:0.35em; }

/* ====================================
   Container
==================================== */
.container {
    width:100%; max-width:1440px;
    margin:0 auto; padding:0 24px;
}

/* ====================================
   Header
==================================== */
.site-header {
    height: var(--header-h);
    background: rgba(9,8,15,0.82);
    backdrop-filter: blur(24px) saturate(160%);
    -webkit-backdrop-filter: blur(24px) saturate(160%);
    border-bottom: 1px solid rgba(212,175,55,0.15);
    position: sticky; top:0; z-index:1000;
    transition: border-color var(--transition), box-shadow var(--transition);
}

.site-header.scrolled {
    border-bottom-color: rgba(212,175,55,0.3);
    box-shadow: 0 4px 40px rgba(0,0,0,0.7), 0 0 80px rgba(212,175,55,0.04);
}

.header-content {
    height:100%; display:flex;
    align-items:center; justify-content:space-between; gap:24px;
}

.header-left { display:flex; align-items:center; gap:14px; flex-shrink:0; }
.logo img { height:30px; width:auto; }

/* ── Nav ── */
.main-nav { flex:1; display:flex; justify-content:center; }
.nav-menu { display:flex; gap:2px; align-items:center; }
.nav-menu > li { position:relative; }

.nav-menu > li > a {
    display:block; padding:8px 15px;
    font-size:13px; font-weight:700; letter-spacing:0.04em; text-transform:uppercase;
    color: var(--text-secondary);
    border-radius: var(--radius-sm);
    transition: color var(--transition), background var(--transition);
}
.nav-menu > li > a:hover { color: var(--gold-light); background: rgba(212,175,55,0.07); }

.nav-dropdown-trigger {
    display:inline-flex; align-items:center; gap:5px;
    background:none; border:none;
    color: var(--text-secondary);
    font-family: var(--font-body);
    font-size:13px; font-weight:700; letter-spacing:0.04em; text-transform:uppercase;
    cursor:pointer; padding:8px 15px;
    border-radius: var(--radius-sm);
    transition: color var(--transition), background var(--transition);
}
.nav-dropdown-trigger:hover,
.nav-item-has-dropdown.open .nav-dropdown-trigger {
    color: var(--gold-light);
    background: rgba(212,175,55,0.07);
}
.nav-dropdown-trigger::after {
    content:''; width:0; height:0;
    border-left:3px solid transparent; border-right:3px solid transparent;
    border-top:4px solid currentColor; opacity:0.6;
    transition: transform var(--transition);
}
.nav-item-has-dropdown.open .nav-dropdown-trigger::after { transform:rotate(180deg); }

/* Dropdown */
.nav-dropdown {
    position:absolute; top:calc(100% + 10px); left:0;
    min-width:220px; padding:6px;
    background: rgba(12,10,22,0.97);
    border:1px solid rgba(212,175,55,0.2);
    border-radius: var(--radius-md);
    box-shadow: 0 16px 48px rgba(0,0,0,0.6), 0 0 0 1px rgba(212,175,55,0.06);
    backdrop-filter: blur(20px);
    opacity:0; visibility:hidden;
    transform: translateY(-6px) scale(0.98);
    transform-origin: top left;
    transition: opacity 0.2s ease, visibility 0.2s ease, transform 0.2s ease;
    z-index:100;
}
.nav-item-has-dropdown:hover .nav-dropdown,
.nav-item-has-dropdown.open .nav-dropdown {
    opacity:1; visibility:visible; transform:translateY(0) scale(1);
}
.nav-dropdown a {
    display:block; padding:9px 14px;
    font-size:12px; font-weight:600; letter-spacing:0.05em; text-transform:uppercase;
    color: var(--text-secondary);
    border-radius: var(--radius-sm);
    transition: background var(--transition), color var(--transition);
}
.nav-dropdown a:hover { background: rgba(212,175,55,0.1); color: var(--gold-light); }

.mobile-nav-buttons { display:none; }
.header-buttons { display:flex; gap:10px; align-items:center; flex-shrink:0; }

/* Burger */
.burger-menu {
    display:none; flex-direction:column; justify-content:center; align-items:center;
    gap:5px; width:34px; height:34px;
    background:transparent; border:none; cursor:pointer; padding:0;
}
.burger-menu .burger-line {
    display:block; width:22px; height:2px;
    background: var(--text-primary); border-radius:2px;
    transition: transform 0.25s ease, opacity 0.2s ease;
}
.burger-menu.active .burger-line:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.burger-menu.active .burger-line:nth-child(2) { opacity:0; }
.burger-menu.active .burger-line:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

/* ====================================
   BUTTONS — completely new style
==================================== */
.btn {
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    font-family: var(--font-body);
    font-weight:800; font-size:12px; letter-spacing:0.12em; text-transform:uppercase;
    cursor:pointer; border:none; white-space:nowrap;
    position:relative; overflow:hidden;
    transition: transform var(--transition), box-shadow var(--transition), filter var(--transition);
}

/* Shimmer effect */
.btn::before {
    content:'';
    position:absolute; top:0; left:-100%; width:60%; height:100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.18), transparent);
    transition: left 0.5s ease;
    pointer-events:none;
}
.btn:hover::before { left:150%; }

/* Login — outlined gold */
.btn-login {
    padding:10px 24px;
    border-radius: var(--radius-sm);
    background: transparent;
    border: 1.5px solid var(--gold);
    color: var(--gold-light);
    box-shadow: inset 0 0 0 0 var(--gold);
    clip-path: polygon(8px 0%, 100% 0%, calc(100% - 8px) 100%, 0% 100%);
}
.btn-login:hover {
    background: rgba(212,175,55,0.12);
    box-shadow: 0 0 20px rgba(212,175,55,0.25);
    transform: translateY(-1px);
    color: var(--gold-light);
    filter: brightness(1.1);
}

/* Register — solid red-to-gold gradient */
.btn-register {
    padding:11px 26px;
    border-radius: var(--radius-sm);
    background: linear-gradient(110deg, #c41e3a 0%, #e8400a 50%, #d4922a 100%);
    border:none;
    color:#fff;
    font-weight:900;
    clip-path: polygon(8px 0%, 100% 0%, calc(100% - 8px) 100%, 0% 100%);
    box-shadow: 0 3px 18px rgba(196,30,58,0.4);
}
.btn-register:hover {
    transform:translateY(-2px);
    box-shadow: 0 8px 28px rgba(196,30,58,0.55), 0 0 40px rgba(212,175,55,0.15);
    filter: brightness(1.08);
}

.btn-large { padding:14px 36px; font-size:13px; }

/* ====================================
   Breadcrumbs
==================================== */
.breadcrumbs-wrapper {
    background:rgba(0,0,0,0.25); padding:10px 0; margin-bottom:20px;
    border-bottom:1px solid var(--border);
}
.breadcrumbs { display:flex; gap:8px; font-size:12px; letter-spacing:0.05em; color: var(--text-muted); text-transform:uppercase; }
.breadcrumbs li::after { content:'/'; margin-left:8px; opacity:0.35; }
.breadcrumbs li:last-child::after { content:''; }
.breadcrumbs a { color: var(--gold); }
.breadcrumbs a:hover { text-decoration:underline; text-underline-offset:3px; }

/* ====================================
   Hero Banner
==================================== */
.hero-banner {
    width:100%; margin-top:24px; margin-bottom:24px;
    position:relative;
}
.hero-banner::after {
    content:'';
    position:absolute; inset:0;
    border-radius: var(--radius-lg);
    border:1px solid rgba(212,175,55,0.25);
    pointer-events:none;
}
.hero-banner img {
    width:100%; height:auto; max-height:500px; object-fit:cover;
    border-radius: var(--radius-lg);
    box-shadow: 0 16px 80px rgba(0,0,0,0.7), 0 0 60px rgba(212,175,55,0.06);
    transition: transform 0.5s ease;
}
.hero-banner:hover img { transform:scale(1.008); }

/* ====================================
   Content
==================================== */
.content-section { padding:36px 0; }

@keyframes fadeUp {
    from { opacity:0; transform:translateY(16px); }
    to   { opacity:1; transform:translateY(0); }
}

.section-title {
    font-size: clamp(1.5rem, 2.6vw, 2rem);
    font-weight:900; text-align:center;
    margin-bottom:20px; line-height:1.12;
    letter-spacing:-0.02em;
    color: var(--text-primary);
    animation: fadeUp 0.55s ease both;
}

/* Gold ornament divider after h1 */
.section-title::after {
    content:'──── ✦ ────';
    display:block;
    font-size:0.7rem; letter-spacing:0.3em;
    color: var(--gold-dim); margin-top:10px;
    font-weight:400; font-style:normal;
}

.section-subtitle {
    font-family: var(--font-serif);
    font-size: clamp(1.1rem,1.9vw,1.38rem);
    font-weight:700; font-style:italic;
    margin-bottom:16px;
    color: var(--gold);
    letter-spacing:0.01em;
    border-left: 3px solid var(--gold);
    padding-left:14px;
}

.text-center { text-align:center; }
.text-center.section-subtitle { border-left:none; padding-left:0; }

.button-group { display:flex; gap:14px; justify-content:center; margin:28px 0; flex-wrap:wrap; }

.content-text { font-size:0.96rem; line-height:1.78; color: var(--text-secondary); margin-bottom:24px; }
.content-text p { margin-bottom:14px; }
.content-text p:last-child { margin-bottom:0; }

.content-image { margin:28px auto; max-width:900px; width:100%; position:relative; }
.content-image::before {
    content:''; position:absolute; inset:-1px;
    border-radius:calc(var(--radius-md) + 1px);
    background: linear-gradient(135deg, rgba(212,175,55,0.25), transparent 60%);
    z-index:0;
}
.content-image img {
    display:block; width:100%;
    border-radius: var(--radius-md);
    box-shadow: 0 10px 50px rgba(0,0,0,0.6), 0 0 0 1px rgba(212,175,55,0.12);
    position:relative; z-index:1;
    transition: transform 0.4s ease, box-shadow 0.4s ease;
}
.content-image:hover img {
    transform: translateY(-4px);
    box-shadow: 0 20px 70px rgba(0,0,0,0.65), 0 0 0 1px rgba(212,175,55,0.25);
}

/* ====================================
   Features Grid
==================================== */
.features-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(280px,1fr)); gap:16px; margin:32px 0; }

.feature-card {
    background: var(--bg-card);
    padding:26px 22px;
    border-radius: var(--radius-lg);
    border:1px solid var(--border);
    position:relative; overflow:hidden;
    transition: transform var(--transition), border-color var(--transition), box-shadow var(--transition), background var(--transition);
}

/* Corner ornament */
.feature-card::before {
    content:'';
    position:absolute; top:0; right:0;
    width:48px; height:48px;
    border-top:2px solid var(--gold-dim);
    border-right:2px solid var(--gold-dim);
    border-radius:0 var(--radius-lg) 0 0;
    opacity:0;
    transition: opacity var(--transition);
}
.feature-card::after {
    content:'';
    position:absolute; bottom:0; left:0;
    width:48px; height:48px;
    border-bottom:2px solid var(--gold-dim);
    border-left:2px solid var(--gold-dim);
    border-radius:0 0 0 var(--radius-lg);
    opacity:0;
    transition: opacity var(--transition);
}

.feature-card:hover {
    transform:translateY(-5px);
    border-color: rgba(212,175,55,0.3);
    box-shadow: 0 14px 40px rgba(0,0,0,0.4), 0 0 30px rgba(212,175,55,0.06);
    background: var(--bg-card-hover);
}
.feature-card:hover::before,
.feature-card:hover::after { opacity:1; }

.feature-card h3 {
    color: var(--gold-light);
    font-size:1rem; font-weight:800;
    margin-bottom:10px; letter-spacing:0.04em; text-transform:uppercase;
}

.feature-card p { color: var(--text-secondary); line-height:1.65; font-size:0.9rem; }

/* ====================================
   FAQ
==================================== */
.faq-section { margin:36px 0; }
.faq-list { display:flex; flex-direction:column; gap:8px; }

.faq-item {
    background: var(--bg-card);
    border:1px solid var(--border);
    border-radius: var(--radius-md);
    overflow:hidden;
    transition: border-color var(--transition), box-shadow var(--transition);
}
.faq-item:hover { border-color: rgba(212,175,55,0.2); }
.faq-item.active { border-color: rgba(212,175,55,0.4); box-shadow:0 4px 24px rgba(212,175,55,0.07); }

.faq-question {
    width:100%; background:transparent; border:none;
    color: var(--text-primary);
    font-family: var(--font-body); font-size:14px; font-weight:700;
    letter-spacing:0.03em; text-transform:uppercase; text-align:left;
    padding:18px 20px; cursor:pointer;
    display:flex; justify-content:space-between; align-items:center; gap:12px;
    transition: background var(--transition), color var(--transition);
}
.faq-question:hover { background: rgba(212,175,55,0.04); color: var(--gold-light); }
.faq-question.active { color: var(--gold-light); }

.faq-question::after {
    content:''; flex-shrink:0;
    width:20px; height:20px;
    border:1.5px solid rgba(212,175,55,0.4);
    border-radius:3px;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d4af37' stroke-width='2.5' stroke-linecap='round'%3E%3Cline x1='12' y1='5' x2='12' y2='19'/%3E%3Cline x1='5' y1='12' x2='19' y2='12'/%3E%3C/svg%3E");
    background-size:11px; background-repeat:no-repeat; background-position:center;
    transition: transform var(--transition), border-color var(--transition), background-color var(--transition);
}
.faq-question.active::after {
    transform:rotate(45deg);
    border-color: var(--gold);
    background-color: rgba(212,175,55,0.1);
}

.faq-answer { max-height:0; overflow:hidden; transition: max-height 0.35s cubic-bezier(0.4,0,0.2,1); }
.faq-item.active .faq-answer { max-height:600px; }
.faq-answer-content {
    padding:0 20px 18px; padding-top:14px;
    color: var(--text-secondary); line-height:1.8; font-size:0.94rem;
    border-top:1px solid rgba(212,175,55,0.1);
}

/* ====================================
   Tables
==================================== */
.table-wrapper {
    overflow-x:auto; margin:24px 0;
    border-radius: var(--radius-md);
    border:1px solid rgba(212,175,55,0.2);
    background: var(--bg-card);
}
table { width:100%; border-collapse:collapse; min-width:580px; }

table th, table td { padding:13px 16px; text-align:left; font-size:0.88rem; border-bottom:1px solid rgba(212,175,55,0.1); }

table th {
    background: rgba(212,175,55,0.08);
    color: var(--gold);
    font-weight:800; font-size:11px;
    letter-spacing:0.1em; text-transform:uppercase;
}
table td { color: var(--text-secondary); }
table tbody tr { transition: background var(--transition); }
table tbody tr:hover { background: rgba(212,175,55,0.05); }
table tbody tr:last-child td { border-bottom:none; }

/* ====================================
   Footer
==================================== */
.site-footer {
    background: rgba(5,4,10,0.98);
    border-top:1px solid rgba(212,175,55,0.15);
    padding:0 0 28px; margin-top:48px; position:relative; overflow:hidden;
}
.site-footer::before {
    content:''; position:absolute; top:0; left:50%; transform:translateX(-50%);
    width:70%; height:1px;
    background: linear-gradient(90deg, transparent, var(--gold) 50%, transparent);
    opacity:0.3;
}

.footer-disclaimer-bar {
    background:rgba(0,0,0,0.35); padding:13px 0; margin-bottom:36px;
    border-bottom:1px solid rgba(212,175,55,0.08);
}
.disclaimer-bar-inner { display:flex; align-items:center; justify-content:center; gap:14px; flex-wrap:wrap; }

.disclaimer-age {
    display:inline-flex; align-items:center; justify-content:center;
    min-width:40px; height:40px;
    background: linear-gradient(135deg, #a00020, #c41e3a);
    color:#fff; font-size:0.9rem; font-weight:900; font-family: var(--font-display);
    border-radius:3px; flex-shrink:0;
    box-shadow:0 0 14px rgba(196,30,58,0.35);
    clip-path: polygon(5px 0%, 100% 0%, calc(100% - 5px) 100%, 0% 100%);
}

.disclaimer-text { margin:0; color: var(--text-muted); font-size:0.8rem; }
.disclaimer-text a { color: var(--gold); text-decoration:underline; text-underline-offset:2px; }
.disclaimer-text a:hover { color: var(--gold-light); }

.footer-content { display:grid; grid-template-columns:1.6fr 1fr 1fr; gap:32px; margin-bottom:32px; align-items:start; }
.footer-legal { max-width:420px; }
.footer-legal .footer-license { font-size:0.72rem; font-weight:800; letter-spacing:0.1em; text-transform:uppercase; color: var(--gold); margin-bottom:12px; }
.footer-notice-text { color: var(--text-muted); font-size:0.79rem; line-height:1.65; }

.footer-links h3, .footer-contact h3 {
    font-size:0.72rem; font-weight:800;
    letter-spacing:0.12em; text-transform:uppercase;
    color: var(--text-muted); margin-bottom:16px;
}
.footer-links ul { display:flex; flex-direction:column; gap:10px; }
.footer-links a { color: var(--text-secondary); font-size:0.875rem; transition: color var(--transition); }
.footer-links a:hover { color: var(--gold-light); }
.footer-contact p { color: var(--text-secondary); font-size:0.875rem; line-height:1.7; margin-bottom:6px; }
.footer-contact a { color: var(--gold); transition: color var(--transition); }
.footer-contact a:hover { color: var(--gold-light); text-decoration:underline; text-underline-offset:3px; }

.footer-bottom {
    text-align:center; padding-top:22px;
    border-top:1px solid rgba(212,175,55,0.1);
    color: var(--text-muted); font-size:0.78rem;
}

/* ====================================
   Responsive
==================================== */
@media (max-width:1024px) {
    .nav-menu { gap:0; }
    .nav-menu > li > a, .nav-dropdown-trigger { font-size:11px; padding:8px 10px; }
    .footer-content { grid-template-columns:1fr 1fr; }
    .footer-legal { grid-column:1/-1; max-width:100%; }
}

@media (max-width:768px) {
    :root { --header-h:58px; }
    .header-left { flex:1; justify-content:space-between; }
    .logo img { height:26px; }
    .header-buttons { display:none; }
    .burger-menu { display:flex; }

    .main-nav {
        display:flex; flex-direction:column;
        position:fixed; top:var(--header-h); left:0; right:0;
        background:rgba(9,8,15,0.98);
        backdrop-filter:blur(24px);
        max-height:0; overflow:hidden;
        transition:max-height 0.3s ease;
        box-shadow:0 8px 32px rgba(0,0,0,0.6);
        z-index:999;
        border-bottom:1px solid rgba(212,175,55,0.15);
    }
    .main-nav.active { max-height:92vh; overflow-y:auto; }

    .nav-menu { flex-direction:column; padding:16px; gap:0; align-items:stretch; }
    .nav-menu > li { border-bottom:1px solid rgba(212,175,55,0.08); }
    .nav-menu > li:last-child { border-bottom:none; }
    .nav-menu > li > a { padding:13px 8px; font-size:14px; border-radius:0; }

    .nav-item-has-dropdown { border-bottom:none; }
    .nav-item-has-dropdown .nav-dropdown-trigger { width:100%; padding:12px 8px; font-size:13px; font-weight:800; color:var(--gold); pointer-events:none; }
    .nav-item-has-dropdown .nav-dropdown-trigger::after { display:none; }
    .nav-dropdown { position:static; display:block !important; opacity:1; visibility:visible; transform:none; margin:0; padding:0 0 10px 14px; min-width:0; background:transparent; box-shadow:none; border-radius:0; border:none; }
    .nav-dropdown a { padding:8px 0; font-size:13px; }
    .nav-dropdown a:hover { background:transparent; }

    .mobile-nav-buttons { display:flex; flex-direction:column; gap:10px; padding:16px; border-top:1px solid rgba(212,175,55,0.1); }
    .mobile-nav-buttons .btn { width:100%; padding:13px 20px; font-size:13px; clip-path:none; border-radius:var(--radius-sm); }

    .features-grid { grid-template-columns:1fr; }
    .footer-content { grid-template-columns:1fr; gap:24px; }
    .section-subtitle { font-size:1.1rem; }
    .content-text { font-size:0.93rem; }
    .btn-large { padding:13px 28px; }
}

@media (max-width:480px) {
    .container { padding:0 16px; }
    .logo img { height:24px; }
    .hero-banner img { max-height:220px; }
    .faq-question { font-size:12px; padding:15px 14px; }
    .faq-answer-content { padding:0 14px 16px; padding-top:12px; }
    table th, table td { padding:10px 11px; font-size:0.82rem; }
}

/* ====================================
   Utilities / Animations
==================================== */
.responsive-img { width:100%; height:auto; }

.lazy { opacity:0; transition:opacity 0.4s ease; }
.lazy.loaded { opacity:1; }

.reveal { opacity:0; transform:translateY(18px); transition:opacity 0.5s ease, transform 0.5s ease; }
.reveal.visible { opacity:1; transform:translateY(0); }
