/* APX_FX Website Styles */
:root{
  --bg:#0f0f10;
  --bg-alt:#141417;
  --card:#1b1b1f;
  --text:#eaeaea;
  --muted:#b8b8bd;
  --gold:#D4AF37;
  --gold-2:#caa55b;
  --accent:#f0c674;
  --shadow: 0 10px 30px rgba(0,0,0,.25);
}

* {box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:'Poppins',system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,'Helvetica Neue',Arial,sans-serif;scroll-behavior:smooth}
img{max-width:100%;display:block;border-radius:16px}
a{color:var(--text);text-decoration:none}
.container{width:min(1100px,92%);margin-inline:auto}

.site-header{position:sticky;top:0;background:rgba(15,15,16,.8);backdrop-filter:saturate(180%) blur(10px);z-index:50;border-bottom:1px solid #232327}
.nav{display:flex;align-items:center;justify-content:space-between;padding:10px 0}
.brand{display:flex;align-items:center;gap:12px;font-weight:700;font-size:20px}
.brand img{width:40px;height:40px;object-fit:cover;border-radius:10px}
.site-header nav{display:flex;align-items:center;gap:22px}
.site-header nav a{opacity:.9}
.site-header nav .btn{padding:.6rem 1rem;border:1px solid #2a2a30;border-radius:999px}
.hamburger{display:none;background:none;border:0;padding:8px;gap:4px;flex-direction:column}
.hamburger span{width:22px;height:2px;background:#eee;display:block}

.hero{position:relative;isolation:isolate;padding:120px 0 80px;overflow:hidden}
.hero-media{position:absolute;inset:-10%;background:url('assets/background.jpg') center/cover no-repeat;opacity:.18;z-index:-1;filter:grayscale(30%) blur(1px)}
.hero-inner{text-align:center}
.hero h1{font-size:clamp(36px,7vw,84px);line-height:1.05;margin:0 0 12px;font-weight:800;letter-spacing:.5px}
.hero h1 span{color:var(--gold)}
.hero p{font-size:clamp(16px,2.2vw,22px);color:var(--muted);max-width:700px;margin:0 auto 14px}
.hero-points{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:16px 0 26px;padding:0;list-style:none}
.hero-points li{background:linear-gradient(180deg,#2a2a2f,#1c1c21);border:1px solid #2b2b31;border-radius:999px;padding:.45rem .9rem;font-size:14px}
.cta-row{display:flex;gap:12px;justify-content:center}
.btn{display:inline-block;border:1px solid #2b2b31;border-radius:12px;padding:.8rem 1.1rem;font-weight:600}
.btn.primary{background:linear-gradient(135deg,var(--gold),var(--accent));color:#111;border:0;box-shadow:var(--shadow)}
.btn.ghost{background:transparent}
.btn:hover{transform:translateY(-1px);transition:.2s}

.section{padding:72px 0}
.section.alt{background:var(--bg-alt)}
.grid2{display:grid;grid-template-columns:1.1fr .9fr;gap:30px;align-items:center}
h2{font-size:clamp(24px,4.2vw,40px);margin:0 0 16px}
.badges{display:flex;gap:10px;flex-wrap:wrap}
.badge{background:#1f1f24;border:1px solid #2a2a30;padding:.4rem .7rem;border-radius:999px;font-size:12px;color:var(--muted)}
.poster-card img{box-shadow:var(--shadow)}

.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.card{background:var(--card);border:1px solid #2a2a30;border-radius:18px;padding:18px;box-shadow:var(--shadow);min-height:130px}
.card h3{margin:0 0 6px;color:var(--gold)}

.price{font-size:56px;font-weight:800;margin:10px 0 4px}
.price span{font-size:18px;color:var(--muted)}
.checklist{list-style:none;padding:0;margin:12px 0 24px}
.checklist li{margin:8px 0;position:relative;padding-left:22px}
.checklist li::before{content:'✔';position:absolute;left:0;color:var(--gold)}

.note{background:#16161a;border:1px dashed #3a3a3f;border-radius:14px;padding:18px}

.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:12px}
.gallery img{aspect-ratio:16/9;object-fit:cover}

.slider{position:relative;overflow:hidden;border-radius:18px;border:1px solid #2a2a30;background:var(--card)}
.slide{display:none;padding:24px 20px;min-height:140px}
.slide.active{display:block}
blockquote{font-size:20px;line-height:1.5;margin:0}
blockquote footer{margin-top:8px;color:var(--muted);font-size:14px}
.slider-controls{display:flex;gap:10px;justify-content:flex-end;margin-top:10px}
.slider-controls button{background:#232329;border:1px solid #33343b;color:#eee;padding:.5rem .8rem;border-radius:10px}

.contact{list-style:none;padding:0;margin:8px 0 0}
.contact li{margin:8px 0}

/* Base form styling */
.contact-form{background:var(--card);border:1px solid #2a2a30;border-radius:16px;padding:18px;display:grid;gap:10px}
.contact-form label{display:grid;gap:6px;font-size:14px}
.contact-form input,.contact-form textarea{background:#121216;border:1px solid #2a2a30;border-radius:10px;color:#e9e9e9;padding:.8rem .9rem;font:inherit}
.contact-form button{justify-self:start}

.site-footer{border-top:1px solid #232327;padding:26px 0;background:var(--bg)}
.foot{display:flex;justify-content:space-between;align-items:center}
.backtop{color:var(--gold)}

.muted{color:var(--muted)}
.small{font-size:13px}

/* ==== Contact section spacing tweaks ==== */
#contact .contact-wrap { 
  align-items: start; 
  gap: 32px;                 /* space between info and form */
}
#contact .contact-info h2 { margin: 0 0 8px; }
#contact .contact-info p { margin: 0 0 10px; }
#contact .contact { margin: 6px 0 14px; }
.contact-form { 
  gap: 12px;                 /* space between fields */
  padding: 18px;
}
.contact-form label { margin: 0; gap: 6px; }
.contact-form input,
.contact-form textarea { width: 100%; }
.contact-form button { margin-top: 6px; }

/* Responsive */
@media (max-width: 980px){
  .cards{grid-template-columns:repeat(2,1fr)}
  .gallery{grid-template-columns:repeat(2,1fr)}
  .grid2{grid-template-columns:1fr}
  /* hamburger visible on mobile */
  .hamburger{display:flex}
  /* contact spacing on mobile */
  #contact .contact-wrap { gap: 20px; }
}
@media (max-width: 520px){
  .cards{grid-template-columns:1fr}
  .gallery{grid-template-columns:1fr}
}

/* === Hover Animations for APX_FX === */

/* Smooth transition base */
a, .btn, .card, .badge, .gallery img, nav a {
  transition: all 0.3s ease;
}

/* Buttons */
.btn:hover {
  transform: translateY(-3px) scale(1.03);
  box-shadow: 0 8px 25px rgba(212, 175, 55, 0.4);
}
.btn.primary:hover {
  background: linear-gradient(135deg, #e4bf53, #f5d87a);
}
.btn.ghost:hover {
  border-color: var(--gold);
  color: var(--gold);
}

/* Navigation links */
.site-header nav a {
  position: relative;
  padding-bottom: 3px;
}
.site-header nav a::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  height: 2px;
  width: 0%;
  background: var(--gold);
  transition: width 0.3s ease;
}
.site-header nav a:hover::after {
  width: 100%;
}

/* Cards */
.card {
  transform: translateY(0);
  transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
.card:hover {
  transform: translateY(-8px);
  box-shadow: 0 12px 30px rgba(212, 175, 55, 0.15);
  border-color: var(--gold);
}

/* Badges */
.badge:hover {
  background: var(--gold);
  color: #111;
  transform: scale(1.1);
  box-shadow: 0 0 10px rgba(212, 175, 55, 0.4);
}

/* Gallery Images */
.gallery img {
  transition: transform 0.4s ease, box-shadow 0.4s ease;
  border: 1px solid #2a2a30;
}
.gallery img:hover {
  transform: scale(1.05);
  box-shadow: 0 10px 20px rgba(212, 175, 55, 0.25);
  border-color: var(--gold);
}

/* Back-to-top link */
.backtop:hover {
  color: var(--gold-2);
  text-shadow: 0 0 8px rgba(212, 175, 55, 0.5);
}

/* Testimonials slider buttons */
.slider-controls button:hover {
  background: var(--gold);
  color: #111;
  transform: scale(1.1);
}

/* === Mobile drill-down nav === */
@media (max-width: 980px){
  .site-header .container.nav{ position: relative; }

  /* Dropdown panel under header */
  .site-header nav{
    position: absolute;
    top: 100%;
    left: 0; right: 0;
    background: rgba(15,15,16,.98);
    border: 1px solid #232327;
    border-top: none;
    box-shadow: 0 12px 30px rgba(0,0,0,.35);
    display: flex;              /* always flex; visibility controlled via max-height */
    flex-direction: column;     /* drill down vertically */
    gap: 0;
    overflow: hidden;
    max-height: 0;              /* collapsed by default */
    opacity: 0;
    transition: max-height .35s ease, opacity .25s ease;
    z-index: 60;
  }

  /* When menu is open */
  body.menu-open .site-header nav{
    max-height: 420px;          /* enough to show all items; tweak if you add more */
    opacity: 1;
  }

  /* Vertical link styling */
  .site-header nav a{
    padding: 14px 18px;
    border-top: 1px solid #2a2a30;
    width: 100%;
  }
  .site-header nav a.btn{
    margin: 10px 18px 14px;
    border-radius: 10px;
    text-align: center;
  }

  /* Show hamburger on mobile */
  .hamburger{ display: flex; align-items: center; justify-content: center; }
  .hamburger span{
    transition: transform .25s ease, opacity .2s ease;
  }
  /* Animate hamburger into an X when active */
  .hamburger.active span:nth-child(1){
    transform: translateY(6px) rotate(45deg);
  }
  .hamburger.active span:nth-child(2){
    opacity: 0;
  }
  .hamburger.active span:nth-child(3){
    transform: translateY(-6px) rotate(-45deg);
  }
}

/* ===== Lightbox: fit whole image on open ===== */
.lightbox-overlay{
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.92);
  display: none;                 /* toggled to flex via JS */
  align-items: center;
  justify-content: center;
  z-index: 9999;
  padding: 0;                    /* no extra padding that could crop */
}

.lightbox-imgwrap{
  /* Fill the viewport, then center the image inside */
  width: 100vw;
  height: 100vh;
  display: flex;
  align-items: center;           /* center vertically */
  justify-content: center;       /* center horizontally */
  overflow: hidden;              /* no scroll on open */
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

/* The image will always fully fit inside the viewport */
.lightbox-overlay img{
  display: block;
  max-width: 100vw;
  max-height: 100vh;
  width: auto;                   /* preserve natural aspect ratio */
  height: auto;
  object-fit: contain;           /* fit entire image without cropping */
  background: #111;
  border-radius: 10px;
  border: 1px solid #2a2a30;
  box-shadow: 0 20px 60px rgba(0,0,0,.5);
}

/* Controls stay fixed so they don’t get pushed/cropped */
.lightbox-close{
  position: fixed;
  top: 14px; right: 16px;
  width: 42px; height: 42px;
  border: 1px solid #2a2a30;
  border-radius: 10px;
  background: #1c1c21;
  color: #eee;
  font-size: 26px;
  line-height: 1;
  cursor: pointer;
  box-shadow: var(--shadow);
}
.lightbox-close:hover{ background:#232329; color: var(--gold); }

.lightbox-nav{
  position: fixed;
  top: 50%;
  transform: translateY(-50%);
  width: 46px; height: 56px;
  border-radius: 12px;
  border: 1px solid #2a2a30;
  background: #1c1c21;
  color: #eee;
  font-size: 28px;
  cursor: pointer;
  box-shadow: var(--shadow);
}
.lightbox-prev{ left: 18px; }
.lightbox-next{ right: 18px; }
.lightbox-nav:hover{ background:#232329; color: var(--gold); }

@media (max-width: 520px){
  .lightbox-nav{ width: 40px; height: 48px; font-size: 24px; }
}

