/*
Theme Name: GeneratePress Child
Template: generatepress
Version: 1.0
*/

/* ========== FONT STYLING ========== */
/* Apply Elegant Font to Titles */
header nav ul li a {
    font-family: 'Playfair Display', serif; /* Elegant Font */
    font-weight: 900; /* Bold for strong presence */
}

/* General Heading Styles */
h1, h2, h3 {
    font-family: 'Playfair Display', serif;
    font-weight: 900;
}

/* ========== HEADER STYLING ========== */
header {
    background-color: #1C1C1C; /* black background */
    display: flex;
    align-items: center;
    justify-content: space-between; /* Space logo and menu evenly */
    padding: 20px 50px;
    height: 100px; /* Keeps height consistent */
    width: 100%;
    box-sizing: border-box;
    position: relative;
}

/* Logo Styling */
header .logo {
    position: absolute;
    left: 50px; /* Keeps logo close to the left */
    top: 50%;
    transform: translateY(-50%);
}

header .logo img {
    height: 80px; /* Adjust logo size */
    max-width: 100%;
}

/* Navigation Menu */
header nav {
    flex-grow: 1;
    display: flex;
    justify-content: center; /* Center navigation */
}

header nav ul {
    list-style: none;
    display: flex;
    justify-content: center;
    padding: 0;
    margin: 0;
    gap: 40px; /* Adjust spacing between menu items */
}

/* Centering Nav Links */
header nav ul li {
    display: inline-block;
}

header nav ul li a {
    text-decoration: none;
    color: white;
    font-size: 18px;
    font-weight: bold;
    text-transform: uppercase;
    letter-spacing: 1px;
    transition: color 0.3s ease;
}

/* Hover Effect */
header nav ul li a:hover {
    color: #EFBF04;
}

/* ========== VIDEO STYLING ========== */

.fullwidth-video-wrapper {
    position: relative;
    width: 100vw;
    height: 88vh; /* Your desired height */
    overflow: hidden;
    left: calc(-50vw + 50%);
    background-color: #1C1C1C; /* Makes the bars appear black instead of white */
    display: flex;
    align-items: center;
    justify-content: center;
}

.fullwidth-video-wrapper video {
    width: 100%;
    height: 100%;
    object-fit: contain; /* Ensures the entire video is visible without cropping */
}




/* ========== STYLING FOR THE CONTENT BELOW ========== */

.content-below-video {
    padding: 50px;
    text-align: center;
    background-color: #1C1C1C;
    color: white;
}

/* Text Styling (Merged from Overlay Styling) */
.content-below-video h1 {
    font-size: 3rem;
    margin-bottom: 1rem;
    text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.7);
}

.content-below-video p {
    font-size: 1.25rem;
    margin-bottom: 1.5rem;
    text-shadow: 1px 1px 5px rgba(0, 0, 0, 0.5);
}

/* Button Styling (Merged from Overlay Styling) */
.content-below-video .cta-button {
    padding: 1rem 2rem;
    background-color: #EFBF04;
    color: black;
    text-decoration: none;
    font-weight: bold;
    border-radius: 5px;
    transition: background-color 0.3s;
}

.content-below-video .cta-button:hover {
    background-color: #d0a903;
}

/* Remove padding and margin from the GeneratePress layout */
body .site, #page {
    max-width: 100%;
    padding: 0;
    margin: 0;
}

/* Remove padding from the GeneratePress container */
.generate-columns-container {
    padding: 0;
    margin: 0;
}


/* ========== FOOTER STYLING ========== */
/* Ensure the entire page fills the screen */

footer {
    width: 100%;
    max-width: 100%;
    background-color: #121212; /* Dark background */
    color: white;
    text-align: center;
    padding: 20px 0;
    font-size: 16px;
    font-weight: bold;
    margin-top: auto;
    position: relative;
    left: 0;
    right: 0;
    clear: both;
    display: flex;
    justify-content: center;
    align-items: center;
}


/* Ensure Footer Content Stretches Properly */
.footer-container {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
}

/* Hide Any Empty Footer Widgets */
.footer-widgets-container {
    display: none !important;
}

/* Ensure Page Takes Full Height */
#page {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    width: 100%;
}

/* Pushes Content Area to Make Space for the Footer */
#content {
    flex: 1;
    width: 100%;
}

/* ============ Contact Form Styling ============= */
.contact-form-section {
    display: flex;
    justify-content: space-between;
    padding: 50px;
    background-color: #1C1C1C;
    color: white;
    align-items: center;
}

.contact-form-left {
    width: 40%;
}

.contact-form-right {
    width: 55%;
}

.contact-form-left h2 {
    font-size: 3rem;
    margin-bottom: 10px;
}

.contact-form-left p {
    font-size: 1.2rem;
    margin-bottom: 20px;
}

.contact-form-left .socials {
    margin-top: 30px;
}

.contact-form-left .icons img {
    width: 40px;
    margin-right: 10px;
}

.contact-form-left .icons a {
    text-decoration: none;
    display: inline-block;
    margin-right: 10px;
}

.contact-form-left .icons a:hover {
    opacity: 0.8;
}


/* Style Contact Form 7 Inputs */
.wpcf7-form input,
.wpcf7-form textarea {
    width: 100%;
    padding: 10px;
    margin: 10px 0;
    border: 1px solid #ccc;
    border-radius: 15px;
    background-color: #1e1e1e;
    color: white;
}

.wpcf7-form input::placeholder,
.wpcf7-form textarea::placeholder {
    color: #888;
}

.wpcf7-form input[type="submit"] {
    background-color: #EFBF04;
    color: black;
    padding: 10px 20px;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    transition: background-color 0.3s;
}

.wpcf7-form input[type="submit"]:hover {
    background-color: #d0a903;
}


/* ========== RESPONSIVENESS ========== */

/* Smaller Screens (Tablets & Phones) */
@media (max-width: 1024px) {
    header {
        flex-direction: column;
        height: auto;
        padding: 15px;
        text-align: center;
    }

    header .logo {
        position: relative;
        left: 0;
        top: 0;
        transform: none;
        margin-bottom: 10px;
    }

    header nav ul {
        flex-direction: column;
        gap: 15px;
    }
}

/* Mobile Screens */
@media (max-width: 768px) {
    header {
        position: relative;
        padding: 15px 20px;
        height: auto;
        flex-direction: column;
        align-items: center;
    }

    /* Mobile Menu Button */
    .menu-toggle {
        display: block;
        position: absolute;
        top: 20px;
        right: 20px;
        font-size: 30px;
        background: none;
        border: none;
        cursor: pointer;
        color: white;
        z-index: 1000;
    }
    
.menu-toggle,
.menu-toggle:focus,
.menu-toggle:active,
.menu-toggle.toggled,
.menu-toggle.toggled:before,
.menu-toggle.toggled:after {
    color: white !important;
    fill: white !important;
}

    /* Mobile nav dropdown */
    header nav ul {
        position: static;
        width: 100%;
        background-color: #EFBF04;
        text-align: center;
        flex-direction: column;
        overflow: hidden;
        max-height: 0;
        transition: max-height 0.3s ease;
    }

    header nav ul.active {
        max-height: 500px; /* adjust if needed for taller menus */
    }
    
    /* Ensure Menu Items Show Fully */
    header nav ul li {
        padding: 10px 0; /* Adds space between items */
        width: 100%; /* Makes sure all links are visible */
    }
}

/* remove empty space in video wrapper */

@media (max-width: 768px) {
    .fullwidth-video-wrapper {
        height: auto !important;
        align-items: flex-start !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
    }

    .fullwidth-video-wrapper video {
        height: auto !important;
    }
}

/* Contact Form Mobile */
@media (max-width: 768px) {
  .contact-form-section {
    flex-direction: column;
    padding: 30px 20px;
    gap: 30px;
  }

  .contact-form-left,
  .contact-form-right {
    width: 100%;
    text-align: center;
  }

  .contact-form-left h2 {
    font-size: 2rem;
    margin-bottom: 10px;
  }

  .contact-form-left p {
    font-size: 1rem;
  }

  .contact-form-left .icons {
    justify-content: center;
    display: flex;
    gap: 15px;
    margin-top: 10px;
  }

  .contact-form-right form {
    width: 100%;
  }
}

/* ========== EVENTS PAGE ========== */

.gg-events-grid {
  display: flex;
  flex-direction: column;
  gap: .5px; /* spacing between each event */
}

/* each card */
.gg-event-card{
  position:relative;
  background:#151515;
  border:1px solid #2a2a2a;
  overflow:hidden;
  cursor:pointer;
  transition:transform .15s ease, box-shadow .2s ease, border-color .2s ease;
}
.gg-event-card:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(0,0,0,.35);
  border-color:#3a3a3a;
}

/* invisible overlay link that makes whole card clickable */
.gg-event-card-link{
  position:absolute;
  inset:0;                 /* shorthand for top/right/bottom/left:0 */
  z-index:10;
}

/* optional: subtle glow on hover */
.gg-event-card::after{
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(120% 120% at 50% 0%, rgba(239,191,4,.08), transparent 60%);
  opacity:0;
  transition:opacity .2s ease;
  pointer-events:none;
}
.gg-event-card:hover::after{opacity:1}

/* media (image) */
.gg-event-media img{
  display:block;
  width:100%;
  height:auto;
}

/* card body */
.gg-event-body{
  padding:16px;
  display:flex;
  flex-direction:column;
  gap:12px;
}

/* --- horizontal row for title • location • date --- */
.gg-event-info-row {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr; /* equal width columns */
  align-items: center;
  text-align: center;
  width: 100%;
}

.gg-event-title {
  margin: 0;
  font-size: 1.1rem;
  font-weight: 700;
  color: #fff;
  text-align: left; /* stays aligned left */
}

.gg-event-where {
  margin: 0;
  color: #cfcfcf;
  text-align: center; /* centers middle column perfectly */
}

.gg-event-when {
  margin: 0;
  color: #cfcfcf;
  text-align: right; /* aligns date on the right */
}


/* stack to column on small screens */
@media (max-width:640px){
  .gg-event-info-row{
    flex-direction:column;
    align-items:flex-start;
    gap:6px;
  }
}

/* Force events page background dark (replace XX with your page ID) */
.page-id-XX .site-content,
.page-id-XX .entry-content{
  background-color:#1C1C1C !important;
  color:#fff;
}


