/*
Theme Name: AAA Event Venue
Theme URI: https://aaaeventvenue.com/
Author: Custom Website Team
Description: Custom WordPress theme for AAA Event Venue & Party Rentals.
Version: 1.0.0
Text Domain: aaa-event-venue
*/

:root {
  --black: #050505;
  --black-soft: #0d0d0d;
  --cream: #f8f5f0;
  --white: #fff;
  --gold: #c68b37;
  --gold-light: #e0b76f;
  --ink: #181818;
  --muted: #6b6864;
  --line: rgba(198,139,55,.38);
  --serif: Georgia, "Times New Roman", serif;
  --sans: Inter, Montserrat, Arial, sans-serif;
  --max: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--cream); font-family: var(--sans); line-height: 1.6; }
body.menu-open { overflow: hidden; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
.container { width: min(var(--max), calc(100% - 40px)); margin-inline: auto; }
.section { padding: 88px 0; }
.section--dark { color: var(--white); background: var(--black); }
.eyebrow { margin: 0 0 12px; color: var(--gold); font-size: .78rem; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; }
.section-title { margin: 0; font-family: var(--serif); font-size: clamp(2.2rem, 5vw, 4.3rem); font-weight: 400; line-height: 1.05; }
.section-title em { color: var(--gold); font-weight: 400; }
.section-copy { max-width: 690px; margin: 22px 0 0; color: var(--muted); font-size: 1.05rem; }
.section--dark .section-copy { color: #c9c5bf; }
.gold-rule { width: 70px; height: 2px; margin: 22px 0 0; background: var(--gold); }
.btn { display: inline-flex; min-height: 52px; align-items: center; justify-content: center; padding: 0 28px; border: 1px solid var(--gold); border-radius: 3px; background: linear-gradient(135deg, var(--gold-light), var(--gold)); color: #080808; font-size: .78rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; transition: transform .2s, filter .2s, background .2s; cursor: pointer; }
.btn:hover, .btn:focus-visible { transform: translateY(-2px); filter: brightness(1.08); }
.btn--outline { background: transparent; color: var(--white); }
.btn--outline:hover { background: var(--gold); color: var(--black); }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
.skip-link:focus { z-index: 9999; top: 10px; left: 10px; width: auto; height: auto; padding: 10px 14px; clip: auto; background: #fff; color: #000; }

.site-header { position: absolute; z-index: 100; top: 0; left: 0; width: 100%; border-bottom: 1px solid rgba(255,255,255,.13); color: #fff; transition: background .25s, box-shadow .25s; }
.site-header.is-sticky { position: fixed; background: rgba(5,5,5,.96); box-shadow: 0 8px 30px rgba(0,0,0,.25); backdrop-filter: blur(10px); }
.header-inner { min-height: 104px; display: flex; align-items: center; gap: 38px; }
.site-logo { flex: 0 0 154px; }
.site-logo img { width: 154px; max-height: 76px; object-fit: contain; }
.primary-nav { margin-left: auto; }
.primary-nav ul { display: flex; align-items: center; gap: clamp(20px, 3vw, 42px); margin: 0; padding: 0; list-style: none; }
.primary-nav a { position: relative; padding: 12px 0; font-size: .78rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.primary-nav a::after { position: absolute; right: 0; bottom: 5px; left: 0; height: 1px; background: var(--gold); content: ""; transform: scaleX(0); transition: transform .2s; }
.primary-nav a:hover::after, .primary-nav .current-menu-item a::after { transform: scaleX(1); }
.header-cta { flex: 0 0 auto; }
.menu-toggle { display: none; margin-left: auto; padding: 10px; border: 0; background: transparent; color: #fff; }
.menu-toggle span { display: block; width: 27px; height: 2px; margin: 6px 0; background: currentColor; transition: transform .2s, opacity .2s; }

.hero { position: relative; min-height: 790px; display: grid; align-items: center; overflow: hidden; color: #fff; background: #050505; }
.hero::before { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.96) 0%, rgba(0,0,0,.68) 39%, rgba(0,0,0,.18) 72%, rgba(0,0,0,.12) 100%), url('assets/images/venue-1.webp') center/cover no-repeat; content: ""; }
.hero::after { position: absolute; right: -8%; bottom: -100px; left: -8%; height: 190px; border-top: 5px solid var(--gold); border-radius: 50% 50% 0 0 / 35% 35% 0 0; background: var(--black); content: ""; transform: rotate(-2deg); }
.hero-content { position: relative; z-index: 2; max-width: 630px; padding-top: 110px; padding-bottom: 130px; }
.hero-kicker { margin: 0 0 14px; font-size: 1.05rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.hero-title { margin: 0; font-family: var(--serif); font-size: clamp(4rem, 8vw, 7.5rem); font-weight: 400; line-height: .82; }
.hero-title span { display: block; color: var(--gold-light); font-family: "Brush Script MT", cursive; font-size: .72em; line-height: 1; transform: rotate(-3deg); transform-origin: left; }
.hero-lead { max-width: 500px; margin: 30px 0 0; font-size: 1.15rem; color: #eee9e0; }
.hero-tagline { margin: 28px 0 26px; font-size: .93rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.hero-tagline strong { color: var(--gold-light); }
.hero-actions { display: flex; flex-wrap: wrap; gap: 13px; }

.stats { position: relative; z-index: 3; margin-top: -115px; padding: 44px 0 56px; color: #fff; background: var(--black); }
.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.stat { min-height: 160px; padding: 8px 24px; text-align: center; border-right: 1px solid var(--line); }
.stat:last-child { border-right: 0; }
.stat img { width: 62px; height: 62px; margin: 0 auto 15px; object-fit: contain; }
.stat strong { display: block; font-size: 1rem; line-height: 1.45; letter-spacing: .04em; text-transform: uppercase; }
.stat strong span { color: var(--gold-light); }

.occasion-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-top: 42px; }
.occasion { padding: 30px 16px; text-align: center; border: 1px solid rgba(198,139,55,.25); background: rgba(255,255,255,.55); transition: transform .2s, border-color .2s; }
.occasion:hover { transform: translateY(-5px); border-color: var(--gold); }
.occasion img { width: 70px; height: 70px; margin: auto; object-fit: contain; }
.occasion h3 { margin: 18px 0 0; font-size: .92rem; letter-spacing: .08em; text-transform: uppercase; }

.amenities { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 42px; }
.amenity { position: relative; min-height: 360px; overflow: hidden; }
.amenity img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.amenity:hover img { transform: scale(1.04); }
.amenity-text { position: absolute; right: 0; bottom: 0; left: 0; padding: 52px 25px 24px; color: #fff; background: linear-gradient(transparent, rgba(0,0,0,.9)); }
.amenity h3 { margin: 0; font-family: var(--serif); font-size: 1.65rem; font-weight: 400; }
.amenity p { margin: 5px 0 0; color: #ddd; font-size: .86rem; }

.split { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(40px, 7vw, 100px); align-items: center; }
.split-media { position: relative; }
.split-media img { width: 100%; min-height: 570px; object-fit: cover; }
.split-media::after { position: absolute; z-index: -1; right: -18px; bottom: -18px; width: 62%; height: 62%; border: 1px solid var(--gold); content: ""; }
.split-copy p { color: #c9c5bf; }
.split-copy .signature { color: var(--gold-light); font-family: var(--serif); font-size: 1.3rem; }
.split-copy .btn { margin-top: 16px; }

.gallery-grid { display: grid; grid-template-columns: repeat(12, 1fr); grid-auto-rows: 230px; gap: 12px; margin-top: 42px; }
.gallery-item { position: relative; overflow: hidden; border: 1px solid var(--line); background: #111; cursor: zoom-in; }
.gallery-item:nth-child(1), .gallery-item:nth-child(4) { grid-column: span 7; }
.gallery-item:nth-child(2), .gallery-item:nth-child(3) { grid-column: span 5; }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s, opacity .3s; }
.gallery-item:hover img { transform: scale(1.045); opacity: .88; }
.gallery-item::after { position: absolute; right: 16px; bottom: 14px; width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid var(--gold); color: var(--gold); content: "+"; font-size: 1.3rem; }

.location-card { display: grid; grid-template-columns: 1fr 1fr; min-height: 520px; border: 1px solid rgba(198,139,55,.25); background: #fff; }
.location-card img { width: 100%; height: 100%; object-fit: cover; }
.location-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(34px, 6vw, 76px); }
.location-address { margin: 24px 0; font-family: var(--serif); font-size: 1.45rem; line-height: 1.4; }
.location-points { margin: 0 0 28px; padding: 0; list-style: none; }
.location-points li { margin: 8px 0; padding-left: 22px; position: relative; }
.location-points li::before { position: absolute; left: 0; color: var(--gold); content: "✦"; }

.cta-band { position: relative; padding: 78px 0; overflow: hidden; color: #fff; background: #0a0a0a url('assets/images/venue-5.webp') center 57%/cover no-repeat; }
.cta-band::before { position: absolute; inset: 0; background: rgba(0,0,0,.82); content: ""; }
.cta-inner { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 35px; }
.cta-band h2 { margin: 0; font-family: var(--serif); font-size: clamp(2rem, 4vw, 3.7rem); font-weight: 400; line-height: 1.1; }
.cta-band p { margin: 12px 0 0; color: #ddd; }
.cta-band .phone { color: var(--gold-light); font-weight: 800; }

.contact-wrap { display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(35px, 7vw, 90px); }
.contact-details a { color: var(--gold-light); }
.contact-details address { margin-top: 22px; font-style: normal; color: #d6d1ca; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.form-field--full { grid-column: 1 / -1; }
.inquiry-form label { display: block; margin-bottom: 6px; color: #ddd; font-size: .74rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.inquiry-form input, .inquiry-form select, .inquiry-form textarea { width: 100%; border: 1px solid #3c3c3c; border-radius: 0; padding: 14px 15px; background: #111; color: #fff; outline: none; }
.inquiry-form textarea { min-height: 145px; resize: vertical; }
.inquiry-form input:focus, .inquiry-form select:focus, .inquiry-form textarea:focus { border-color: var(--gold); }
.inquiry-form .btn { margin-top: 18px; }
.form-message { padding: 13px 15px; margin: 0 0 20px; border-left: 3px solid var(--gold); background: rgba(198,139,55,.12); color: #fff; }

.page-hero { min-height: 510px; display: grid; place-items: center; padding: 150px 0 70px; color: #fff; text-align: center; background: linear-gradient(rgba(0,0,0,.72),rgba(0,0,0,.84)), url('assets/images/venue-6.webp') center/cover; }
.page-hero h1 { margin: 0; font-family: var(--serif); font-size: clamp(3rem, 7vw, 6.2rem); font-weight: 400; line-height: 1; }
.page-hero p { max-width: 650px; margin: 20px auto 0; color: #ddd; }
.page-content { max-width: 900px; margin: 0 auto; font-size: 1.05rem; }
.page-content h2 { margin-top: 45px; font-family: var(--serif); font-size: 2rem; font-weight: 400; }
.page-content a:not(.btn) { color: #9a651e; text-decoration: underline; }
.service-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 35px; }
.service-card { padding: 34px; border: 1px solid rgba(198,139,55,.3); background: #fff; }
.service-card h3 { margin: 0 0 10px; font-family: var(--serif); font-size: 1.45rem; font-weight: 400; }
.service-card p { margin: 0; color: var(--muted); }

.site-footer { color: #fff; background: #050505; border-top: 1px solid var(--gold); }
.footer-grid { display: grid; grid-template-columns: 1.1fr .8fr 1fr; gap: 55px; padding: 60px 0 45px; }
.footer-logo { width: 185px; }
.footer-grid h3 { margin: 0 0 18px; color: var(--gold-light); font-size: .76rem; letter-spacing: .15em; text-transform: uppercase; }
.footer-grid ul { margin: 0; padding: 0; list-style: none; }
.footer-grid li { margin: 7px 0; }
.footer-grid a:hover { color: var(--gold-light); }
.footer-location { color: #cfcac2; }
.footer-contact { margin-top: 13px; }
.copyright { padding: 18px 0; border-top: 1px solid rgba(198,139,55,.28); color: #918e89; font-size: .78rem; text-align: center; }

.lightbox { position: fixed; z-index: 1000; inset: 0; display: none; place-items: center; padding: 30px; background: rgba(0,0,0,.94); }
.lightbox.is-open { display: grid; }
.lightbox img { max-width: min(1100px, 94vw); max-height: 88vh; }
.lightbox-close { position: absolute; top: 20px; right: 24px; border: 0; background: transparent; color: #fff; font-size: 2.5rem; cursor: pointer; }

@media (max-width: 980px) {
  .header-cta { display: none; }
  .menu-toggle { display: block; }
  .primary-nav { position: fixed; inset: 0; z-index: -1; display: grid; place-items: center; margin: 0; background: rgba(5,5,5,.985); opacity: 0; visibility: hidden; transition: opacity .2s; }
  .primary-nav.is-open { opacity: 1; visibility: visible; }
  .primary-nav ul { flex-direction: column; gap: 18px; text-align: center; }
  .primary-nav a { font-family: var(--serif); font-size: 1.8rem; font-weight: 400; text-transform: none; }
  .menu-open .menu-toggle { position: fixed; z-index: 5; right: 24px; }
  .menu-open .menu-toggle span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
  .menu-open .menu-toggle span:nth-child(2) { opacity: 0; }
  .menu-open .menu-toggle span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }
  .stats-grid { grid-template-columns: repeat(2, 1fr); }
  .stat:nth-child(2) { border-right: 0; }
  .stat:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .occasion-grid { grid-template-columns: repeat(2, 1fr); }
  .amenities, .service-cards { grid-template-columns: 1fr; }
  .amenity { min-height: 430px; }
  .split, .location-card, .contact-wrap { grid-template-columns: 1fr; }
  .split-media img { min-height: 440px; }
  .location-card img { max-height: 480px; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 640px) {
  .container { width: min(100% - 28px, var(--max)); }
  .section { padding: 66px 0; }
  .header-inner { min-height: 86px; }
  .site-logo, .site-logo img { width: 132px; }
  .hero { min-height: 760px; }
  .hero::before { background: linear-gradient(90deg, rgba(0,0,0,.95), rgba(0,0,0,.54)), url('assets/images/venue-1.webp') 60% center/cover; }
  .hero-content { padding-top: 110px; }
  .hero-title { font-size: clamp(3.4rem, 18vw, 5.7rem); }
  .hero-lead { font-size: 1rem; }
  .stats { margin-top: -105px; }
  .stat { padding: 8px 10px; }
  .stat img { width: 52px; height: 52px; }
  .stat strong { font-size: .8rem; }
  .occasion-grid { gap: 10px; }
  .occasion { padding: 24px 10px; }
  .gallery-grid { display: block; }
  .gallery-item { height: 290px; margin-bottom: 12px; }
  .cta-inner { align-items: flex-start; flex-direction: column; }
  .form-grid { grid-template-columns: 1fr; }
  .form-field--full { grid-column: auto; }
  .footer-grid { grid-template-columns: 1fr; gap: 35px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
