/* ── Palette Variables ─────────────────────────────────────────────────── */
:root {
    --bg-primary:    #141414;
    --bg-secondary:  #0e0e0e;
    --bg-card:       rgba(10, 20, 14, 0.88);

    --green:         #4ade80;   /* vivid lime-green – borders, text highlights */
    --green-dark:    #16a34a;   /* medium green    – button backgrounds        */
    --green-hover:   #22c55e;   /* hover states                                */

    --blue:          #38bdf8;   /* vivid sky-blue  – links, secondary          */
    --blue-dark:     #0284c7;   /* medium blue     – button backgrounds        */
    --blue-hover:    #0ea5e9;   /* hover states                                */

    --text-primary:  #ececec;
    --text-muted:    #a0a0a0;
    --white:         #ffffff;
    --border-subtle: rgba(74, 222, 128, 0.32);
}

/* ── Custom Fonts ──────────────────────────────────────────────────────── */
@font-face {
    font-family: bpg_banner;
    font-display: swap;
    src: url('webfonts/bpg_banner.eot?') format('eot'),
         url('webfonts/bpg_banner.woff') format('woff'),
         url('webfonts/bpg_banner.ttf')  format('truetype'),
         url('webfonts/bpg_banner.svg#svgFontName') format('svg');
}
@font-face {
    font-family: bpg_banner_upper;
    font-display: swap;
    src: url('webfonts/bpg_banner_upper.eot?') format('eot'),
         url('webfonts/bpg_banner_upper.woff') format('woff'),
         url('webfonts/bpg_banner_upper.ttf')  format('truetype'),
         url('webfonts/bpg_banner_upper.svg#svgFontName') format('svg');
}

/* ── Reset ─────────────────────────────────────────────────────────────── */
html, body {
    padding: 0;
    margin: 0;
    height: 100%;
    color: var(--text-primary);
    background-image:
        linear-gradient(180deg, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0.40) 40%, rgba(0,0,0,0.70) 100%),
        url('https://images.unsplash.com/photo-1517836357463-d25dfeac3438?w=1920&q=85&fit=crop');
    background-size: cover;
    background-position: center top;
    background-repeat: no-repeat;
    background-attachment: fixed;
}
.no-padding  { padding: 0 !important; }
.no-margin   { margin: 0 !important; }
.full-width  { width: 100% !important; }
.full-height { height: 100% !important; }
iframe       { border: none; }
.clear       { clear: both; }
.pointer     { cursor: pointer; }

.middle {
    display: flex;
    align-items: center;
    justify-content: center;
}
.noMiddle {
    display: flex;
    align-items: center;
}
.banner {
    font-family: bpg_banner;
    font-weight: normal;
}
.banner-upper {
    font-family: bpg_banner_upper;
    text-transform: uppercase;
    font-weight: normal;
}
.shadow {
    -webkit-box-shadow: 3px 3px 5px 0px rgba(0,0,0,0.3);
       -moz-box-shadow: 3px 3px 5px 0px rgba(0,0,0,0.3);
            box-shadow: 3px 3px 5px 0px rgba(0,0,0,0.3);
}

/* ── Navigation ────────────────────────────────────────────────────────── */
nav { z-index: 2; }
nav ul { list-style: none; }

.navbar-light .navbar-toggler,
.navbar-light .navbar-toggler.collapsed { border: none; }

.fa-bars { color: var(--green); }

.menu-link {
    display: block;
    color: var(--text-primary);
    padding: 36px 25px 0 25px;
    font-size: 1.4rem;
    font-weight: 600;
    transition: color 0.2s ease;
}
.menu-link:hover {
    color: var(--green);
    text-decoration: none;
}

.menu-logo .menu-link {
    padding: 5px 10px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}
.menu-logo { overflow: visible !important; }
.menu-logo img {
    max-height: 90px;
    width: auto !important;
    height: auto !important;
    object-fit: contain;
    border-radius: 0;
}

/* ── Hero / Top Block ──────────────────────────────────────────────────── */
.top-block {
    background: transparent;
    position: relative;
}
.top-block::after {
    display: none;
}

.slogan {
    z-index: 2;
    margin: 350px 0 300px 0;
    font-size: 60px;
    position: relative;
    letter-spacing: 4px;
    color: var(--white);
    text-shadow: 0 2px 20px rgba(0,0,0,0.7);
}

/* ── Packages Section ──────────────────────────────────────────────────── */
.content {
    position: relative;
    background: transparent;
}
.content::before {
    display: none;
}

/* Orb drift animations */
@keyframes orb-drift-green {
    0%, 100% { transform: translate(0,    0)     scale(1.00); }
    25%       { transform: translate(90px, -80px) scale(1.14); }
    50%       { transform: translate(30px, -130px) scale(1.06); }
    75%       { transform: translate(-50px, -55px) scale(1.09); }
}
@keyframes orb-drift-blue {
    0%, 100% { transform: translate(0,    0)    scale(1.00); }
    33%       { transform: translate(-90px, 80px) scale(1.11); }
    66%       { transform: translate(70px,  100px) scale(0.93); }
}
@keyframes orb-drift-green2 {
    0%, 100% { transform: translate(0, 0)      scale(1.00); opacity: 0.60; }
    50%       { transform: translate(60px, 70px) scale(1.18); opacity: 0.90; }
}

.packages {
    position: relative;
    overflow: hidden;
    background: transparent;
}
.packages-caption {
    text-align: center;
    padding-top: 48px;
    padding-bottom: 8px;
    position: relative;
    z-index: 2;
}
.packages-caption h2 {
    font-size: clamp(2rem, 5vw, 3.5rem);
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #22c55e;
    text-shadow: 0 0 30px rgba(34,197,94,0.5), 0 2px 8px rgba(0,0,0,0.8);
    margin: 0;
}
.packages-caption p {
    color: rgba(255,255,255,0.65);
    font-size: 1rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    margin-top: 6px;
}
/* Green glow – top-left */
.packages::before {
    content: '';
    position: absolute;
    width: 900px; height: 900px;
    top: -180px; left: -280px;
    border-radius: 50%;
    background: radial-gradient(circle,
        rgba(74, 222, 128, 0.26) 0%,
        rgba(74, 222, 128, 0.08) 42%,
        transparent 68%);
    animation: orb-drift-green 26s ease-in-out infinite;
    will-change: transform;
    pointer-events: none;
    z-index: 1;
}
/* Blue glow – bottom-right */
.packages::after {
    content: '';
    position: absolute;
    width: 780px; height: 780px;
    bottom: -120px; right: -180px;
    border-radius: 50%;
    background: radial-gradient(circle,
        rgba(56, 189, 248, 0.22) 0%,
        rgba(56, 189, 248, 0.07) 42%,
        transparent 68%);
    animation: orb-drift-blue 20s ease-in-out infinite;
    will-change: transform;
    pointer-events: none;
    z-index: 1;
}

.shadow-bg { display: none; } /* replaced by CSS orbs */

/* Third mid-page orb – green, center-right */
.packages .container { position: relative; z-index: 2; }
.packages > .container-fluid.shadow-bg { display: none !important; }

/* ── Price Cards ───────────────────────────────────────────────────────── */
@keyframes card-breathe {
    0%, 100% { box-shadow: 0 8px 32px rgba(0,0,0,0.55), 0 0 10px rgba(74,222,128,0.07); }
    50%       { box-shadow: 0 8px 32px rgba(0,0,0,0.55), 0 0 22px rgba(74,222,128,0.16); }
}
@keyframes badge-pulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(74,222,128,0.0); }
    50%       { box-shadow: 0 0 0 6px rgba(74,222,128,0.18); }
}

.price-block {
    z-index: 2;
    margin: 200px 0 50px 0;
    min-height: 360px;
    position: relative;
    text-align: center;
    border: 2px solid rgba(74, 222, 128, 0.25);
    border-top: 3px solid var(--green);
    background: rgba(6, 16, 10, 0.72);
    backdrop-filter: blur(10px);
    animation: card-breathe 5s ease-in-out infinite;
    transition: border-color 0.28s, box-shadow 0.28s, transform 0.28s;
}
.price-block:hover {
    border-color: var(--green);
    box-shadow: 0 18px 52px rgba(0,0,0,0.65), 0 0 36px rgba(74,222,128,0.22);
    transform: translateY(-6px);
    animation: none;
}

.price-block h1 {
    width: 90px;
    height: 90px;
    margin: 0 auto;
    border-radius: 50%;
    border: 3px solid var(--green);
    font-size: 48px;
    line-height: 84px;
    font-weight: bold;
    color: var(--green);
    background: rgba(74, 222, 128, 0.10);
    animation: badge-pulse 3s ease-in-out infinite;
}
.price-block h2, .price-block h3 {
    color: var(--text-primary);
}
.price-block h3 {
    font-size: 18px;
    line-height: 24px;
}
.price-block h4 {
    left: 0;
    bottom: 40px;
    display: block;
    position: absolute;
}

/* ── Contact / Join Section ────────────────────────────────────────────── */
.join {
    font-size: 35px;
    background:
        radial-gradient(ellipse 70% 60% at 50% 100%, rgba(74,222,128,0.08) 0%, transparent 65%),
        #080e0a;
    position: relative;
    letter-spacing: 4px;
}
.join i   { z-index: 2; position: relative; }
.join h5  { font-size: 24px; line-height: 38px; }
.join a   { color: var(--green); transition: color 0.2s; }
.join a:hover { color: var(--blue); text-decoration: none; }

.join-shadow {
    left: 0; z-index: 1;
    top: -25px; height: 50px;
    background: #0d1410;
    position: absolute;
    -webkit-box-shadow: 0px -20px 50px 50px #0d1410;
       -moz-box-shadow: 0px -20px 50px 50px #0d1410;
            box-shadow: 0px -20px 50px 50px #0d1410;
}

.info {
    cursor: pointer;
    font-size: 42px;
    margin: 0 0 50px 0;
    color: var(--green);
    transition: color 0.2s;
}
.info:hover { color: rgba(34, 197, 94, 0.55); }
.info p {
    color: var(--white);
    display: none;
    padding: 15px;
    font-size: 14px;
    line-height: 24px;
    letter-spacing: 1px;
    border: 2px solid var(--green-dark);
    background: rgba(8, 20, 12, 0.88);
}

/* ── Map ───────────────────────────────────────────────────────────────── */
.map {
    height: 430px;
    overflow: hidden;
    position: relative;
}
.map iframe {
    left: 0; top: 0;
    position: absolute;
}

/* ── Footer ────────────────────────────────────────────────────────────── */
.footer {
    padding: 30px 0;
    background: #0d1410;
    border-top: 3px solid var(--green);
    box-shadow: 0 -4px 28px rgba(74, 222, 128, 0.18);
}

/* ── Corner Badge ──────────────────────────────────────────────────────── */
.topcorner {
    position: absolute;
    top: 0; right: 0;
}

/* ── Responsive ────────────────────────────────────────────────────────── */
@media only screen and (max-width: 768px) {
    .price-block { margin: 20px 0; }
    .slogan { font-size: 18px; margin: 100px 0 20px 0; }
}
@media screen and (min-width: 601px) and (max-width: 767px) {
    .navbar { margin-left: 0; }
}
@media only screen and (max-width: 600px) {
    nav { margin: 0 !important; }
    .logo-sm img { width: 160px; }
    .menu-logo { display: none; }
    .price-block { background: rgba(8, 20, 12, 0.90); }

    .social-links {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        gap: 15px !important;
        margin-top: 1.5rem !important;
    }
    .social-links a {
        margin: 0 !important;
        font-size: 1.2rem !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        text-align: center !important;
        width: 100% !important;
        max-width: 200px !important;
    }
    .social-links a i {
        margin-right: 8px !important;
        display: inline-block !important;
    }
    .navbar { padding: 0.5rem 1rem !important; }
    .menu-link { font-size: 1.2rem !important; padding: 8px 12px !important; }
}
