/*
Theme Name:        Destination Ghost Tour — Divi
Theme URI:         https://destinationghosttour.com
Template:          Divi
Author:            Specter Builder
Author URI:        https://specterbuilder.com
Description:       A Divi child theme for Destination Ghost Tour. Install this on top of the Divi parent theme. Gives you full Divi drag-and-drop editing with the complete haunted dark aesthetic — purple accents, gold details, ghost animations, and all custom ghost tour styles pre-loaded.
Version:           1.0.0
Requires at least: 6.0
Tested up to:      6.5
Requires PHP:      7.4
License:           GPL v2 or later
License URI:       https://www.gnu.org/licenses/gpl-2.0.html
Text Domain:       ghost-tour-divi
Template:          Divi
*/

/* ============================================================
   GHOST TOUR DESIGN TOKENS
   Applied on top of Divi's base styles
   ============================================================ */
:root {
    --gt-bg-primary:     #080810;
    --gt-bg-secondary:   #0d0d1a;
    --gt-bg-dark:        #12121f;
    --gt-bg-panel:       #14141f;
    --gt-bg-mid:         #1a1a2e;
    --gt-purple:         #7c3aed;
    --gt-purple-light:   #a855f7;
    --gt-purple-glow:    rgba(124, 58, 237, 0.4);
    --gt-gold:           #c9a84c;
    --gt-gold-dim:       #8a6d2e;
    --gt-gold-glow:      rgba(201, 168, 76, 0.3);
    --gt-text-primary:   #e2d9f3;
    --gt-text-muted:     #8878a8;
    --gt-text-faint:     rgba(200, 185, 230, 0.5);
    --gt-border:         rgba(120, 80, 200, 0.22);
    --gt-border-hover:   rgba(124, 58, 237, 0.45);
    --gt-success:        #3dba7a;
    --gt-danger:         #e05252;
    --gt-font-display:   'Cinzel Decorative', serif;
    --gt-font-heading:   'Cinzel', serif;
    --gt-font-body:      'EB Garamond', serif;
    --gt-font-mono:      'JetBrains Mono', monospace;
    --gt-radius:         6px;
    --gt-radius-lg:      10px;
    --gt-transition:     all 0.25s ease;
}

/* ============================================================
   GLOBAL RESETS ON TOP OF DIVI
   ============================================================ */
body,
#page-container {
    background-color: var(--gt-bg-primary) !important;
    color: var(--gt-text-primary) !important;
    font-family: var(--gt-font-body) !important;
}

/* ============================================================
   DIVI HEADER OVERRIDES
   ============================================================ */
#main-header,
#main-header.et-fixed-header {
    background-color: rgba(8, 8, 16, 0.0) !important;
    border-bottom: 1px solid transparent !important;
    transition: background-color 0.4s ease, border-color 0.4s ease !important;
}

#main-header.et-fixed-header.scrolled-nav,
#main-header.et-fixed-header.et-show-nav {
    background-color: rgba(8, 8, 16, 0.92) !important;
    border-bottom-color: var(--gt-border) !important;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

/* Logo */
#et-top-navigation .logo_container a,
.et_pb_section .et_pb_image_wrap a {
    color: var(--gt-gold) !important;
}

/* ── NAV LINKS ──────────────────────────────────────────────────
   Font SIZE is controlled by Divi -> Theme Options -> Header -> Navigation Font Size
   You can also override it in Appearance -> Customize -> Additional CSS:
       #et-top-navigation nav > ul > li > a { font-size: 14px !important; }
   ─────────────────────────────────────────────────────────────── */
#et-top-navigation nav > ul > li > a,
#et-top-navigation nav > ul > li > a:visited {
    font-family: var(--gt-font-heading) !important;
    /* font-size: intentionally unset — use Divi Theme Options or Customizer */
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    color: var(--gt-text-muted) !important;
    transition: color 0.2s !important;
}

#et-top-navigation nav > ul > li > a:hover,
#et-top-navigation nav > ul > li.current-menu-item > a {
    color: var(--gt-text-primary) !important;
}

/* Mobile menu */
#et_mobile_nav_menu .mobile_nav.opened {
    background: rgba(8, 8, 16, 0.98) !important;
    border-top: 1px solid var(--gt-border) !important;
}

#et_mobile_nav_menu ul li a {
    color: var(--gt-text-muted) !important;
    font-family: var(--gt-font-heading) !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    /* font-size: controlled by Divi Theme Options -> Mobile Navigation Font Size */
}

/* ============================================================
   DIVI DROPDOWN / SUBMENU STYLES
   ============================================================ */

/* Dropdown container */
#et-top-navigation nav > ul > li > ul.sub-menu,
#et-top-navigation ul ul.sub-menu,
.et_pb_menu_0 ul ul,
#top-menu ul ul {
    background: rgba(10, 8, 22, 0.97) !important;
    border: 1px solid var(--gt-border) !important;
    border-top: 2px solid var(--gt-purple) !important;
    border-radius: 0 0 var(--gt-radius-lg) var(--gt-radius-lg) !important;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.6), 0 0 30px rgba(124, 58, 237, 0.1) !important;
    padding: 8px 0 !important;
    min-width: 220px !important;
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
}

/* Dropdown items */
#et-top-navigation nav > ul > li > ul.sub-menu li a,
#et-top-navigation ul ul.sub-menu li a,
.et_pb_menu_0 ul ul li a,
#top-menu ul ul li a {
    font-family: var(--gt-font-heading) !important;
    font-size: 11px !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    color: var(--gt-text-muted) !important;
    background: transparent !important;
    padding: 11px 20px !important;
    display: block !important;
    border-bottom: 1px solid rgba(120, 80, 200, 0.1) !important;
    transition: all 0.2s ease !important;
    white-space: nowrap !important;
}

/* Remove border on last item */
#et-top-navigation nav > ul > li > ul.sub-menu li:last-child a,
#et-top-navigation ul ul.sub-menu li:last-child a {
    border-bottom: none !important;
}

/* Dropdown hover state */
#et-top-navigation nav > ul > li > ul.sub-menu li a:hover,
#et-top-navigation ul ul.sub-menu li a:hover,
.et_pb_menu_0 ul ul li a:hover,
#top-menu ul ul li a:hover {
    color: var(--gt-gold) !important;
    background: rgba(124, 58, 237, 0.1) !important;
    padding-left: 26px !important;
}

/* Active / current item in dropdown */
#et-top-navigation ul ul.sub-menu li.current-menu-item a,
#et-top-navigation ul ul.sub-menu li.current_page_item a {
    color: var(--gt-gold) !important;
    background: rgba(201, 168, 76, 0.07) !important;
}

/* Dropdown arrow indicator on parent */
#et-top-navigation nav > ul > li.menu-item-has-children > a::after {
    content: " \25BE" !important;
    font-size: 0.7em !important;
    opacity: 0.6 !important;
    margin-left: 4px !important;
    vertical-align: middle !important;
}

/* Nested sub-menus (3rd level) */
#et-top-navigation ul ul ul.sub-menu {
    left: 100% !important;
    top: 0 !important;
    border-top: 1px solid var(--gt-border) !important;
    border-radius: var(--gt-radius-lg) !important;
    margin-left: 4px !important;
}

/* Mobile dropdown */
#et_mobile_nav_menu .sub-menu,
.et_mobile_menu .sub-menu {
    background: rgba(8, 6, 18, 0.98) !important;
    border-top: 1px solid var(--gt-border) !important;
    border-bottom: 1px solid var(--gt-border) !important;
    padding: 4px 0 !important;
}

#et_mobile_nav_menu .sub-menu li a,
.et_mobile_menu .sub-menu li a {
    color: var(--gt-text-muted) !important;
    padding-left: 28px !important;
    font-size: 11px !important;
    border-bottom: 1px solid rgba(120, 80, 200, 0.08) !important;
}

#et_mobile_nav_menu .sub-menu li a:hover,
.et_mobile_menu .sub-menu li a:hover {
    color: var(--gt-gold) !important;
    background: rgba(124, 58, 237, 0.08) !important;
}

/* Mobile toggle arrow */
.et_mobile_menu .menu-item-has-children .et_mobile_menu_arrow,
#et_mobile_nav_menu .et_mobile_menu_arrow {
    border-color: var(--gt-text-muted) !important;
}


/* ============================================================
   DIVI SECTION / ROW / MODULE BASE OVERRIDES
   ============================================================ */
.et_pb_section {
    background-color: var(--gt-bg-primary);
}

.et_pb_section.gt-section-dark    { background-color: var(--gt-bg-primary) !important; }
.et_pb_section.gt-section-darker  { background-color: var(--gt-bg-secondary) !important; }
.et_pb_section.gt-section-panel   { background-color: var(--gt-bg-panel) !important; }
.et_pb_section.gt-section-crypt   { background-color: #050508 !important; }

/* ============================================================
   DIVI TYPOGRAPHY OVERRIDES
   ============================================================ */
.et_pb_text h1, .et_pb_text h2, .et_pb_text h3,
.et_pb_text h4, .et_pb_text h5, .et_pb_text h6,
.et_pb_module h1, .et_pb_module h2, .et_pb_module h3 {
    font-family: var(--gt-font-heading) !important;
    color: var(--gt-text-primary) !important;
    letter-spacing: 0.04em;
}

.gt-display-font,
.gt-display-font h1,
.gt-display-font h2 {
    font-family: var(--gt-font-display) !important;
}

.et_pb_text p,
.et_pb_module p {
    font-family: var(--gt-font-body) !important;
    color: var(--gt-text-primary) !important;
    line-height: 1.75 !important;
}

/* ============================================================
   GHOST TOUR BUTTONS (override Divi defaults)
   ============================================================ */
.et_pb_button,
a.et_pb_button {
    font-family: var(--gt-font-heading) !important;
    font-size: 0.65rem !important;
    letter-spacing: 0.18em !important;
    text-transform: uppercase !important;
    border-radius: var(--gt-radius) !important;
    transition: var(--gt-transition) !important;
    padding: 14px 32px !important;
    border-width: 1px !important;
    border-style: solid !important;
}

/* Gold button */
.et_pb_button.gt-btn-gold,
a.et_pb_button.gt-btn-gold {
    background: rgba(201, 168, 76, 0.1) !important;
    border-color: var(--gt-gold-dim) !important;
    color: var(--gt-gold) !important;
}
.et_pb_button.gt-btn-gold:hover,
a.et_pb_button.gt-btn-gold:hover {
    background: rgba(201, 168, 76, 0.22) !important;
    box-shadow: 0 0 24px var(--gt-gold-glow) !important;
    transform: translateY(-1px) !important;
    color: var(--gt-gold) !important;
}

/* Purple button */
.et_pb_button.gt-btn-purple,
a.et_pb_button.gt-btn-purple {
    background: var(--gt-purple) !important;
    border-color: var(--gt-purple-light) !important;
    color: #fff !important;
}
.et_pb_button.gt-btn-purple:hover,
a.et_pb_button.gt-btn-purple:hover {
    background: var(--gt-purple-light) !important;
    box-shadow: 0 0 28px var(--gt-purple-glow) !important;
    transform: translateY(-1px) !important;
    color: #fff !important;
}

/* Ghost outline button */
.et_pb_button.gt-btn-ghost,
a.et_pb_button.gt-btn-ghost {
    background: transparent !important;
    border-color: var(--gt-border) !important;
    color: var(--gt-text-muted) !important;
}
.et_pb_button.gt-btn-ghost:hover,
a.et_pb_button.gt-btn-ghost:hover {
    border-color: var(--gt-purple) !important;
    color: var(--gt-purple-light) !important;
}

/* ============================================================
   GHOST HERO SECTION
   ============================================================ */
.gt-hero-section.et_pb_section {
    min-height: 100vh !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background:
        radial-gradient(ellipse at 50% 30%, rgba(90, 40, 180, 0.35) 0%, transparent 70%),
        linear-gradient(180deg, #080810 0%, #0d0d20 60%, #12102a 100%) !important;
    position: relative;
    overflow: hidden;
}

.gt-hero-section .gt-hero-stars {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
}

.gt-hero-section .gt-ghost-icon {
    animation: gtGhostFloat 3.5s ease-in-out infinite;
    display: inline-block;
}

@keyframes gtGhostFloat {
    0%, 100% { transform: translateY(0); }
    50%       { transform: translateY(-10px); }
}

.gt-hero-section .gt-silhouette {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 140px;
    pointer-events: none;
    z-index: 2;
}

.gt-hero-section .et_pb_row {
    position: relative;
    z-index: 1;
}

/* Eyebrow text */
.gt-eyebrow {
    font-family: var(--gt-font-heading) !important;
    font-size: 0.6rem !important;
    letter-spacing: 0.28em !important;
    text-transform: uppercase !important;
    color: var(--gt-gold) !important;
}

/* ============================================================
   GHOST DIVIDER
   ============================================================ */
.gt-divider {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin: 20px 0 36px;
    color: var(--gt-gold);
    font-size: 1rem;
}
.gt-divider::before,
.gt-divider::after {
    content: '';
    flex: 1;
    max-width: 120px;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--gt-gold-dim));
}
.gt-divider::after {
    background: linear-gradient(90deg, var(--gt-gold-dim), transparent);
}

/* ============================================================
   TOUR CARDS — Divi Blurb / Blog overrides
   ============================================================ */
.gt-tour-card.et_pb_blurb {
    background: rgba(20, 18, 35, 0.9) !important;
    border: 1px solid var(--gt-border) !important;
    border-radius: var(--gt-radius-lg) !important;
    overflow: hidden !important;
    transition: var(--gt-transition) !important;
    padding: 0 !important;
}

.gt-tour-card.et_pb_blurb:hover {
    border-color: var(--gt-border-hover) !important;
    transform: translateY(-3px) !important;
    box-shadow: 0 12px 40px rgba(124, 58, 237, 0.15) !important;
}

.gt-tour-card.et_pb_blurb .et_pb_blurb_content {
    padding: 20px 22px !important;
}

.gt-tour-card.et_pb_blurb .et_pb_blurb_container h4 {
    font-family: var(--gt-font-heading) !important;
    font-size: 0.85rem !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    color: var(--gt-text-primary) !important;
}

.gt-tour-card.et_pb_blurb .et_pb_blurb_container p {
    font-style: italic !important;
    color: var(--gt-text-muted) !important;
}

/* ============================================================
   DIVI BLOG MODULE OVERRIDES
   ============================================================ */
.gt-blog-grid .et_pb_post {
    background: var(--gt-bg-panel) !important;
    border: 1px solid var(--gt-border) !important;
    border-radius: var(--gt-radius-lg) !important;
    overflow: hidden !important;
    transition: var(--gt-transition) !important;
}

.gt-blog-grid .et_pb_post:hover {
    border-color: var(--gt-border-hover) !important;
    transform: translateY(-2px) !important;
}

.gt-blog-grid .et_pb_post .post-meta,
.gt-blog-grid .et_pb_post .post-meta a {
    color: var(--gt-text-muted) !important;
    font-family: var(--gt-font-heading) !important;
    font-size: 0.58rem !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
}

.gt-blog-grid .et_pb_post h2 a {
    font-family: var(--gt-font-heading) !important;
    color: var(--gt-text-primary) !important;
    letter-spacing: 0.05em !important;
}

/* ============================================================
   DIVI TESTIMONIAL MODULE
   ============================================================ */
.gt-testimonials .et_pb_testimonial {
    background: rgba(15, 13, 28, 0.8) !important;
    border: 1px solid var(--gt-border) !important;
    border-radius: var(--gt-radius-lg) !important;
    padding: 24px 26px !important;
}

.gt-testimonials .et_pb_testimonial_description_inner p {
    font-style: italic !important;
    color: rgba(210, 195, 240, 0.85) !important;
    font-size: 1rem !important;
    line-height: 1.7 !important;
}

.gt-testimonials .et_pb_testimonial_author {
    font-family: var(--gt-font-heading) !important;
    font-size: 0.6rem !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    color: var(--gt-text-muted) !important;
}

/* ============================================================
   DIVI ACCORDION MODULE (FAQ)
   ============================================================ */
.gt-faq-accordion .et_pb_accordion_item {
    border: 1px solid var(--gt-border) !important;
    border-radius: var(--gt-radius-lg) !important;
    margin-bottom: 8px !important;
    overflow: hidden !important;
    background: transparent !important;
    transition: border-color 0.25s !important;
}

.gt-faq-accordion .et_pb_accordion_item:hover,
.gt-faq-accordion .et_pb_accordion_item.et_pb_accordion_item_open {
    border-color: var(--gt-border-hover) !important;
}

.gt-faq-accordion .et_pb_accordion_item .et_pb_toggle_title {
    font-family: var(--gt-font-heading) !important;
    font-size: 0.78rem !important;
    letter-spacing: 0.06em !important;
    color: var(--gt-text-primary) !important;
    padding: 18px 22px !important;
    background: rgba(124, 58, 237, 0.04) !important;
    cursor: pointer !important;
}

.gt-faq-accordion .et_pb_accordion_item.et_pb_accordion_item_open .et_pb_toggle_title {
    background: rgba(124, 58, 237, 0.09) !important;
}

.gt-faq-accordion .et_pb_accordion_item .et_pb_toggle_content {
    font-style: italic !important;
    color: var(--gt-text-muted) !important;
    padding: 18px 22px !important;
    border-top: 1px solid var(--gt-border) !important;
    line-height: 1.7 !important;
    background: transparent !important;
}

/* ============================================================
   DIVI PRICING TABLE MODULE
   ============================================================ */
.gt-tour-pricing .et_pb_pricing_table {
    background: rgba(20, 18, 35, 0.9) !important;
    border: 1px solid var(--gt-border) !important;
    border-radius: var(--gt-radius-lg) !important;
}

.gt-tour-pricing .et_pb_pricing_table .et_pb_pricing_heading {
    background: rgba(124, 58, 237, 0.1) !important;
    border-bottom: 1px solid var(--gt-border) !important;
}

.gt-tour-pricing .et_pb_pricing_table .et_pb_pricing_heading h2 {
    font-family: var(--gt-font-heading) !important;
    color: var(--gt-text-primary) !important;
}

.gt-tour-pricing .et_pb_pricing_table .et_pb_sum {
    color: var(--gt-gold) !important;
    font-family: var(--gt-font-heading) !important;
}

.gt-tour-pricing .et_pb_featured_table {
    border-color: var(--gt-purple) !important;
    box-shadow: 0 0 30px var(--gt-purple-glow) !important;
}

/* ============================================================
   DIVI CONTACT FORM
   ============================================================ */
.gt-contact-form.et_pb_contact_form_container {
    background: var(--gt-bg-panel) !important;
    border: 1px solid var(--gt-border) !important;
    border-radius: var(--gt-radius-lg) !important;
    padding: 32px !important;
}

.gt-contact-form .et_pb_contact_field input,
.gt-contact-form .et_pb_contact_field textarea,
.gt-contact-form .et_pb_contact_field select {
    background: var(--gt-bg-mid) !important;
    border: 1px solid var(--gt-border) !important;
    border-radius: var(--gt-radius) !important;
    color: var(--gt-text-primary) !important;
    font-family: var(--gt-font-body) !important;
    font-size: 1rem !important;
    padding: 12px 14px !important;
}

.gt-contact-form .et_pb_contact_field input:focus,
.gt-contact-form .et_pb_contact_field textarea:focus {
    outline: none !important;
    border-color: var(--gt-purple) !important;
}

.gt-contact-form .et_pb_contact_field input::placeholder,
.gt-contact-form .et_pb_contact_field textarea::placeholder {
    color: var(--gt-text-muted) !important;
    font-style: italic !important;
}

.gt-contact-form .et_pb_contact_field label {
    font-family: var(--gt-font-heading) !important;
    font-size: 0.65rem !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    color: var(--gt-text-muted) !important;
    margin-bottom: 6px !important;
}

.gt-contact-form .et_pb_contact_submit {
    font-family: var(--gt-font-heading) !important;
    font-size: 0.65rem !important;
    letter-spacing: 0.18em !important;
    text-transform: uppercase !important;
    background: var(--gt-purple) !important;
    border-color: var(--gt-purple-light) !important;
    color: #fff !important;
    border-radius: var(--gt-radius) !important;
    padding: 14px 32px !important;
    transition: var(--gt-transition) !important;
}

.gt-contact-form .et_pb_contact_submit:hover {
    background: var(--gt-purple-light) !important;
    box-shadow: 0 0 24px var(--gt-purple-glow) !important;
}

/* ============================================================
   DIVI NUMBER COUNTER MODULE
   ============================================================ */
.gt-stats-counter .et_pb_counter_amount {
    background: var(--gt-purple) !important;
}

.gt-stats-counter .et_pb_counter_title {
    font-family: var(--gt-font-heading) !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    color: var(--gt-text-muted) !important;
    font-size: 0.65rem !important;
}

/* ============================================================
   DIVI VIDEO MODULE
   ============================================================ */
.et_pb_video_overlay {
    background: rgba(8, 8, 16, 0.55) !important;
}

/* ============================================================
   DIVI IMAGE MODULE
   ============================================================ */
.gt-gallery-grid .et_pb_image_wrap {
    border-radius: var(--gt-radius) !important;
    overflow: hidden !important;
    border: 1px solid var(--gt-border) !important;
    transition: var(--gt-transition) !important;
}

.gt-gallery-grid .et_pb_image_wrap:hover {
    border-color: var(--gt-border-hover) !important;
    transform: scale(1.02) !important;
}

/* ============================================================
   DIVI TABS MODULE
   ============================================================ */
.gt-tabs .et_pb_tab_nav li a {
    font-family: var(--gt-font-heading) !important;
    font-size: 0.6rem !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    color: var(--gt-text-muted) !important;
}

.gt-tabs .et_pb_tab_nav li.et_pb_tab_active a {
    color: var(--gt-gold) !important;
    border-bottom-color: var(--gt-gold) !important;
}

.gt-tabs .et_pb_all_tabs {
    background: var(--gt-bg-panel) !important;
    border: 1px solid var(--gt-border) !important;
    border-radius: 0 var(--gt-radius) var(--gt-radius) var(--gt-radius) !important;
}

/* ============================================================
   DIVI FOOTER OVERRIDES
   ============================================================ */
#footer-bottom,
#et-footer-nav {
    background: #050508 !important;
    border-top: 1px solid var(--gt-border) !important;
}

#footer-widgets .footer-widget h4.widgettitle {
    font-family: var(--gt-font-heading) !important;
    font-size: 0.6rem !important;
    letter-spacing: 0.18em !important;
    text-transform: uppercase !important;
    color: var(--gt-gold) !important;
    border-bottom: 1px solid var(--gt-border) !important;
    padding-bottom: 10px !important;
    margin-bottom: 14px !important;
}

#footer-widgets .footer-widget li a,
#footer-widgets .footer-widget p {
    color: var(--gt-text-muted) !important;
    font-family: var(--gt-font-body) !important;
    transition: color 0.2s !important;
}

#footer-widgets .footer-widget li a:hover {
    color: var(--gt-text-primary) !important;
}

#et-footer-nav .bottom-nav a {
    font-family: var(--gt-font-heading) !important;
    font-size: 0.58rem !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    color: var(--gt-text-faint) !important;
}

#et-footer-nav span#et_footer_credits {
    font-family: var(--gt-font-heading) !important;
    font-size: 0.58rem !important;
    letter-spacing: 0.08em !important;
    color: var(--gt-text-faint) !important;
}

/* ============================================================
   GHOST TOUR UTILITY CLASSES
   (Use these as Divi CSS Class field values)
   ============================================================ */

/* Sections */
.gt-section-dark     { background-color: var(--gt-bg-primary) !important; }
.gt-section-darker   { background-color: var(--gt-bg-secondary) !important; }
.gt-section-panel    { background-color: var(--gt-bg-panel) !important; }
.gt-section-crypt    { background-color: #050508 !important; }
.gt-section-glow     {
    background:
        radial-gradient(ellipse at 50% 50%, rgba(80, 30, 160, 0.4) 0%, transparent 70%),
        var(--gt-bg-primary) !important;
}

/* Text colours */
.gt-text-gold        { color: var(--gt-gold) !important; }
.gt-text-purple      { color: var(--gt-purple-light) !important; }
.gt-text-muted       { color: var(--gt-text-muted) !important; }
.gt-text-white       { color: #ffffff !important; }
.gt-font-display     { font-family: var(--gt-font-display) !important; }
.gt-font-heading     { font-family: var(--gt-font-heading) !important; }
.gt-font-body        { font-family: var(--gt-font-body) !important; }
.gt-italic           { font-style: italic !important; }
.gt-tracking-wide    { letter-spacing: 0.12em !important; }
.gt-uppercase        { text-transform: uppercase !important; }

/* Borders */
.gt-border-purple    { border: 1px solid var(--gt-border) !important; }
.gt-border-gold      { border: 1px solid var(--gt-gold-dim) !important; }
.gt-rounded          { border-radius: var(--gt-radius-lg) !important; }

/* Cards */
.gt-card-dark {
    background: rgba(20, 18, 35, 0.9) !important;
    border: 1px solid var(--gt-border) !important;
    border-radius: var(--gt-radius-lg) !important;
}

/* Animations */
.gt-float {
    animation: gtGhostFloat 3.5s ease-in-out infinite;
    display: inline-block;
}

.gt-flicker {
    animation: gtFlicker 4s ease-in-out infinite;
}

@keyframes gtFlicker {
    0%, 90%, 100% { opacity: 1; }
    91%, 93%, 95% { opacity: 0.4; }
    92%, 94%      { opacity: 0.8; }
}

/* Scroll animations — add gt-fade-up to any module */
.gt-fade-up {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.65s ease, transform 0.65s ease;
}

.gt-fade-up.gt-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Tilt hover effect */
.gt-tilt {
    transform-style: preserve-3d;
    transition: transform 0.15s ease;
}

/* Badges */
.gt-badge {
    display: inline-block;
    font-family: var(--gt-font-heading);
    font-size: 0.58rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding: 3px 10px;
    border-radius: 3px;
}
.gt-badge-purple { background: rgba(124,58,237,0.15); color: var(--gt-purple-light); border: 1px solid rgba(124,58,237,0.3); }
.gt-badge-gold   { background: rgba(201,168,76,0.12); color: var(--gt-gold);         border: 1px solid rgba(201,168,76,0.25); }
.gt-badge-green  { background: rgba(61,186,122,0.12); color: var(--gt-success);      border: 1px solid rgba(61,186,122,0.25); }
.gt-badge-red    { background: rgba(224,82,82,0.12);  color: var(--gt-danger);       border: 1px solid rgba(224,82,82,0.25); }

/* Progress bars */
.gt-progress-bar { margin-bottom: 20px; }
.gt-progress-bar__track {
    height: 8px;
    background: var(--gt-bg-mid);
    border-radius: 4px;
    overflow: hidden;
}
.gt-progress-bar__fill {
    height: 100%;
    border-radius: 4px;
    background: linear-gradient(90deg, var(--gt-purple), var(--gt-purple-light));
    width: 0;
    transition: width 1s ease-out;
}
.gt-progress-bar__fill-gold   { background: linear-gradient(90deg, var(--gt-gold-dim), var(--gt-gold)); }
.gt-progress-bar__fill-green  { background: linear-gradient(90deg, #2a9a5e, var(--gt-success)); }
.gt-progress-bar__fill-red    { background: linear-gradient(90deg, #b03030, var(--gt-danger)); }

/* Timeline */
.gt-timeline { position: relative; padding-left: 32px; }
.gt-timeline::before {
    content: '';
    position: absolute;
    left: 6px; top: 0; bottom: 0; width: 2px;
    background: linear-gradient(180deg, var(--gt-purple), transparent);
}
.gt-timeline__item { position: relative; margin-bottom: 40px; }
.gt-timeline__dot {
    position: absolute;
    left: -30px; top: 4px;
    width: 12px; height: 12px;
    background: var(--gt-purple);
    border-radius: 50%;
    border: 2px solid var(--gt-purple-light);
}
.gt-timeline__date {
    font-family: var(--gt-font-heading);
    font-size: 0.6rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--gt-gold);
    margin-bottom: 4px;
}

/* Search */
.gt-search-wrap {
    display: flex;
    align-items: center;
    background: rgba(0,0,0,0.3);
    border: 1px solid var(--gt-border-hover);
    border-radius: var(--gt-radius);
    overflow: hidden;
    transition: border-color 0.25s;
}
.gt-search-wrap:focus-within { border-color: var(--gt-purple-light); }
.gt-search-wrap input[type="search"] {
    flex: 1;
    background: transparent !important;
    border: none !important;
    color: var(--gt-text-primary) !important;
    font-family: var(--gt-font-body) !important;
    font-size: 1rem !important;
    padding: 12px 14px !important;
    outline: none !important;
}

/* ============================================================
   PAGE TRANSITION OVERLAY
   ============================================================ */
#gt-page-transition {
    position: fixed;
    inset: 0;
    z-index: 99999;
    pointer-events: none;
    background: linear-gradient(90deg, rgba(200,185,230,0.5), rgba(124,58,237,0.25), transparent);
    transform: translateX(-100%);
}
#gt-page-transition.gt-leaving {
    animation: gtFogRoll 0.6s ease-in-out forwards;
}
@keyframes gtFogRoll {
    from { transform: translateX(-100%); }
    to   { transform: translateX(100%); }
}

/* ============================================================
   LIGHTBOX OVERLAY
   ============================================================ */
#gt-lightbox {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(5, 4, 12, 0.95);
    z-index: 90000;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 16px;
}
#gt-lightbox.gt-open { display: flex; }
#gt-lightbox img {
    max-width: 90vw;
    max-height: 80vh;
    object-fit: contain;
    border-radius: var(--gt-radius-lg);
    border: 1px solid var(--gt-border);
}
#gt-lightbox-close {
    position: fixed;
    top: 20px; right: 24px;
    font-size: 1.6rem;
    color: var(--gt-text-muted);
    cursor: pointer;
    background: none;
    border: none;
    line-height: 1;
    transition: color 0.2s;
}
#gt-lightbox-close:hover { color: var(--gt-text-primary); }

/* ============================================================
   RESPONSIVE ADJUSTMENTS
   ============================================================ */
@media (max-width: 980px) {
    .gt-hero-section.et_pb_section { min-height: 80vh !important; }
}

@media (max-width: 767px) {
    .gt-hero-section.et_pb_section { min-height: auto !important; padding: 120px 20px 80px !important; }
    .gt-timeline { padding-left: 20px; }
}
