
    :root {
      --bg: #ffffff;
      --text: #111111;
      --accent: #d4af37;
      --dark: #0f0f0f;
      --light-gray: #f8f8f8;
    }

    * {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }

    body {
      font-family: 'Inter', system-ui, -apple-system, sans-serif;
      background: var(--bg);
      color: var(--text);
      line-height: 1.7;
      overflow-x: hidden;
    }
    body.menu-open::before {
  pointer-events: none; /* overlay is purely visual */
}

    h1, h2, h3 {
      font-family: 'Playfair Display', serif;
      font-weight: 500;
    }

    html {
      scroll-behavior: smooth;
    }

    header {
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      z-index: 1000;
      transition: all 0.4s ease;
      padding: 2rem 5%;
      mix-blend-mode: difference;
    }

    header.scrolled {
      background: rgba(255,255,255,0.92);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      box-shadow: 0 4px 30px rgba(0,0,0,0.08);
      mix-blend-mode: normal;
      padding: 1.2rem 5%;
    }

    nav {
      display: flex;
      justify-content: space-between;
      align-items: center;
      max-width: 1400px;
      margin: 0 auto;
    }

    .logo-container {
      display: flex;
      align-items: center;
      gap: 1rem;
    }

    .logo-img {
      height: 60px;
      width: auto;
      transition: opacity 0.4s ease;
    }

    .logo-light { display: block; }
    .logo-dark  { display: none; }

    header.scrolled .logo-light { display: none; }
    header.scrolled .logo-dark  { display: block; }

    .logo-text {
      font-size: 1.8rem;
      font-weight: 600;
      letter-spacing: -1px;
      color: white;
    }

    header.scrolled .logo-text {
      color: var(--dark);
    }

    .nav-links {
      display: flex;
      gap: 3.5rem;
      list-style: none;
    }

    .nav-links a {
      color: white;
      text-decoration: none;
      font-weight: 500;
      letter-spacing: 0.5px;
      text-transform: uppercase;
      font-size: 0.9rem;
      position: relative;
      transition: color 0.3s;
    }

    header.scrolled .nav-links a {
      color: var(--dark);
    }

    .nav-links a::after {
      content: '';
      position: absolute;
      width: 0;
      height: 2px;
      bottom: -6px;
      left: 0;
      background: var(--accent);
      transition: width 0.4s ease;
    }

    .nav-links a:hover::after,
    .nav-links a.active::after {
      width: 100%;
    }

    /* ── Hero ──────────────────────────────────────── */
    #home {
      height: 100vh;
      min-height: 800px;
      position: relative;
      display: flex;
      align-items: center;
      justify-content: center;
      text-align: center;
      color: white;
      overflow: hidden;
    }

    #home::before {
      content: '';
      position: absolute;
      inset: 0;
      background: linear-gradient(to bottom, rgba(0,0,0,0.35), rgba(0,0,0,0.55));
      z-index: 1;
    }

    .hero-bg {
      position: absolute;
      inset: 0;
      background: url(image/Luca_Mate_16_9-229.jpg) center/cover no-repeat;
      transform: scale(1.05);
      transition: transform 0.8s ease;
    }

    #home:hover .hero-bg {
      transform: scale(1.08);
    }

    .hero-content {
      position: relative;
      z-index: 2;
      max-width: 1000px;
      width: 90%;
      padding: 0 5%;
    }

    .hero-content h1 {
      font-size: clamp(3rem, 8vw, 6rem);
      margin-top: 6rem;
      margin-bottom: 1.5rem;
      letter-spacing: -3px;
      line-height: 0.95;
    }

    .hero-content p {
      font-size: 1.5rem;
      max-width: 700px;
      margin: 0 auto 3rem;
      opacity: 0.95;
    }

    .btn {
      display: inline-block;
      padding: 1rem 2.8rem;
      background: transparent;
      border: 2px solid var(--accent);
      color: var(--accent);
      font-weight: 500;
      letter-spacing: 1.5px;
      text-transform: uppercase;
      font-size: 0.95rem;
      transition: all 0.4s ease;
      cursor: pointer;
      text-decoration: none;
    }

    .btn:hover {
      background: var(--accent);
      color: var(--dark);
    }

    section {
      padding: 12rem 5%;
      max-width: 1400px;
      margin: 0 auto;
    }

    h2 {
      font-size: clamp(3.5rem, 8vw, 6rem);
      text-align: center;
      margin-bottom: 4rem;
    }

    #about {
      background: var(--light-gray);
    }

    .about-content {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 6rem;
      align-items: center;
    }

    .about-text p {
      font-size: 1.2rem;
      margin-bottom: 1.8rem;
      max-width: 600px;
    }

    #gallery {
      padding: 0;
    }

    .gallery-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(420px, 1fr));
      gap: 0;
      overflow: hidden;
      transition: max-height 1s ease;
    }

    .gallery-item {
      position: relative;
      overflow: hidden;
      aspect-ratio: 4/5;
    }

    .gallery-item img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: transform 1.2s cubic-bezier(0.16, 1, 0.3, 1);
    }

    .gallery-item:hover img {
      transform: scale(1.12);
    }

    .gallery-overlay {
      position: absolute;
      inset: 0;
      background: linear-gradient(to top, rgba(0,0,0,0.7), transparent 60%);
      opacity: 0;
      transition: opacity 0.5s ease;
      display: flex;
      align-items: flex-end;
      padding: 2rem;
      color: white;
      font-size: 1.2rem;
      font-weight: 500;
    }

    .gallery-item:hover .gallery-overlay {
      opacity: 1;
    }

    .hidden-photos {
      opacity: 0;
      transform: translateY(60px);
      height: 0;
      overflow: hidden;
      transition: all 0.9s ease;
      margin: 0;
      padding: 0;
    }

    .hidden-photos.show {
      opacity: 1;
      transform: translateY(0);
      height: auto;
      margin: initial;
      padding: initial;
    }

    .gallery-more-wrapper {
      text-align: center;
      padding: 4rem 5% 7rem;
      background: var(--dark);
      min-height: 140px;
    }

    .see-more-btn {
      background: transparent;
      border: 2px solid var(--accent);
      color: var(--accent);
      padding: 1rem 2.8rem;
      font-size: 1.1rem;
      font-weight: 500;
      letter-spacing: 1.2px;
      text-transform: uppercase;
      cursor: pointer;
      transition: all 0.4s ease;
      display: inline-flex;
      align-items: center;
      gap: 0.8rem;
      min-width: 180px;
      justify-content: center;
    }

    .see-more-btn:hover {
      background: var(--accent);
      color: var(--dark);
    }

    .see-more-btn .arrow {
      font-size: 1.3rem;
      transition: transform 0.4s ease;
    }

    .see-more-btn.expanded .arrow {
      transform: rotate(180deg);
    }

    #contact {
      background: var(--dark);
      color: white;
      text-align: center;
    }

    form {
      max-width: 700px;
      margin: 4rem auto 0;
      display: grid;
      gap: 1.8rem;
    }

    input {
      width: 100%;
      padding: 1.2rem 1.5rem;
      background: rgba(255,255,255,0.08);
      border: 1px solid rgba(255,255,255,0.2);
      color: white;
      font-family: inherit;
      font-size: 1.1rem;
      transition: all 0.6s ease;
      cursor: pointer;
      
    }
    /* Hover & focus */
    input:hover, textarea:hover {
    border-color: var(--accent);
    background: rgba(255, 255, 255, 0.12);
    }

    textarea {
      width: 100%;                
      min-height: 120px;          
      max-height: 350px;          
      padding: 1.2rem 1.5rem;
      background: rgba(255,255,255,0.08);
      border: 1px solid rgba(255,255,255,0.2);
      color: white;
      font-family: inherit;
      font-size: 1.1rem;
      transition: all 0.4s ease;
      resize: vertical;         
      overflow-y: auto;   
      cursor: pointer;        
    }

    textarea:focus {
      outline: none;
      border-color: var(--accent);
    }

    input:focus {
      outline: none;
      border-color: var(--accent);
    }

/* DATE INPUT STYLING */
input[type="date"] {
  width: 100%;
  padding: 1.2rem 1.5rem;
  padding-right: 2.5rem;            /* space for calendar icon */
  border: 1px solid rgba(255, 255, 255, 0.2);
  
  background: rgba(255, 255, 255, 0.08);
  color: white;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 1.1rem;
  transition: border-color 0.3s, background 0.3s;
  direction: ltr;                    /* calendar button on the right */
  text-align: left;
  cursor: pointer;
}

/* Hover & focus */
input[type="date"]:hover {
  border-color: var(--accent);
  background: rgba(255, 255, 255, 0.12);
}

input[type="date"]:focus {
  outline: none;
  border-color: var(--accent);
  background: rgba(255, 255, 255, 0.15);
}

/* Calendar button (Webkit browsers) */
input[type="date"]::-webkit-calendar-picker-indicator {
  filter: invert(1);                 /* makes icon visible on dark bg */
  cursor: pointer;
  opacity: 0.8;
  transition: opacity 0.3s;
}

input[type="date"]::-webkit-calendar-picker-indicator:hover {
  opacity: 1;
}

/* Firefox (Gecko) styling */
input[type="date"]::-moz-focus-inner {
  border: 0;
}

/* Optional: placeholder text */
input[type="date"]::placeholder {
  color: rgba(255,255,255,0.6);
}


    button {
      background: var(--accent);
      color: var(--dark);
      border: none;
      padding: 1.4rem;
      font-size: 1.1rem;
      font-weight: 600;
      letter-spacing: 1px;
      cursor: pointer;
      transition: all 0.35s;
    }

    button:hover {
      background: #e5c04e;
      transform: translateY(-3px);
    }

    footer {
      background: var(--dark);
      color: rgba(255,255,255,0.7);
      text-align: center;
      padding: 4rem 0 2rem;
      font-size: 0.95rem;
    }

    .reveal {
      opacity: 0;
      transform: translateY(60px);
      transition: all 1.2s cubic-bezier(0.215, 0.61, 0.355, 1);
    }

    .reveal.active {
      opacity: 1;
      transform: translateY(0);
    }

    @media (max-width: 900px) {
      .about-content { grid-template-columns: 1fr; gap: 4rem; }
      section { padding: 8rem 5%; }
    }

    @media (max-width: 600px) {
      .nav-links { gap: 1.5rem; font-size: 0.85rem; }
      .logo-img { height: 40px; }
      .logo-text { font-size: 1.5rem; }
    }
    /* POPUP OVERLAY */
.popup-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.65);
  backdrop-filter: blur(10px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;

  opacity: 0;
  pointer-events: none;
  transition: opacity 0.4s ease;
}

/* SHOW STATE */
.popup-overlay.show {
  opacity: 1;
  pointer-events: auto;
}

/* POPUP BOX */
.popup-box {
  background: rgba(15,15,15,0.95);
  border: 1px solid rgba(212,175,55,0.35);
  padding: 3rem 3.5rem;
  max-width: 420px;
  text-align: center;
  color: white;
  box-shadow: 0 25px 60px rgba(0,0,0,0.6);

  transform: scale(0.85) translateY(40px);
  transition: all 0.45s cubic-bezier(0.16,1,0.3,1);
}

/* ANIMATE IN */
.popup-overlay.show .popup-box {
  transform: scale(1) translateY(0);
}

/* TITLE */
.popup-box h2 {
  font-size: 2.4rem;
  margin-bottom: 1rem;
}

/* TEXT */
.popup-box p {
  opacity: 0.85;
  margin-bottom: 2rem;
}

/* BUTTON */
.popup-box button {
  background: transparent;
  border: 2px solid var(--accent);
  color: var(--accent);
  padding: 0.9rem 2rem;
  font-size: 0.9rem;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  cursor: pointer;
  transition: all 0.35s ease;
}

.popup-box button:hover {
  background: var(--accent);
  color: var(--dark);
}

  






/* ===== TESTIMONIALS CAROUSEL (FotoVargas Style) ===== */
.testimonial-section {
      padding: 0rem;
      max-width: 1400px;
      margin: 0 auto;
    }
.testimonials-wrapper {
    overflow: hidden;
    position: relative;
    padding: 3rem 5%;
    margin: 6rem auto;
    background: var(--bg);
    border-radius: 2rem;
    
    cursor: default;
}

.testimonials-scroll {
    display: flex;
    gap: 2.5rem;
    animation: scroll-left-infinite 50s linear infinite;
    width: max-content; /* ensures no wrapping */
}

.testimonial {
    min-width: 280px;
    max-width: 320px;
    background: var(--bg);
    padding: 1rem 2.8rem;
    border: 2px solid var(--accent);
    box-shadow: 0 15px 35px rgba(0,0,0,0.08);
    
    flex-shrink: 0;
    font-family: 'Inter', sans-serif;
    color: var(--dark);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.testimonial:hover {
    transform: translateY(-6px) scale(1.03);
    box-shadow: 0 20px 50px rgba(0,0,0,0.12);
}

.testimonial p {
    font-size: 1.1rem;
    line-height: 1.6;
    font-style: italic;
    opacity: 0.9;
}

.testimonial span {
    display: block;
    margin-top: 1.2rem;
    font-weight: 600;
    color: var(--accent);
    font-size: 1rem;
}

/* Seamless infinite scroll */
@keyframes scroll-left-infinite {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

/* Pause on hover */


/* RESPONSIVE */
@media (max-width: 900px) {
    .testimonials-wrapper {
        padding: 4rem 3%;
    }
    .testimonial {
        min-width: 240px;
        max-width: 280px;
        padding: 2rem 1.5rem;
    }
}

@media (max-width: 600px) {
    .testimonials-scroll {
        gap: 1.5rem;
    }
    .testimonial p {
        font-size: 1rem;
    }
    .testimonial span {
        font-size: 0.95rem;
    }
}






.hamburger{ 
    display: none;
}
.hamburger:hover {
  background: none;   
    
}

.hamburger.active::before {
  transform: rotate(90deg);
  transition: transform 0.4s ease;
}


.nav-links {
  display: flex;
  gap: 3.5rem;
  list-style: none;
  transition: all 0.5s ease;
}


@media (max-width: 900px) {
header { 
    mix-blend-mode: normal;

  backdrop-filter: blur(0px);
    -webkit-backdrop-filter: blur(0px);
}
 .hero-content h1{
    margin-top: 1rem;
 }
  .hamburger {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;              /* space between emoji and bars */
    background: none;
    border: none;
    cursor: pointer;
    font-size: 1.5rem;      /* emoji size */
    color: var(--accent);   /* emoji color */
    z-index: 3000;
    position: relative;
    padding: 0.2rem 0.5rem;
  }

  /* Emoji in hamburger button */
  .hamburger::before {
    content: "☰";          /* hamburger emoji */
    line-height: 1;
    pointer-events: none;   /* doesn't block clicks */
    transition: transform 0.4s ease;
  }

  /* Hamburger bars */
  .hamburger span {
    display: block;
    width: 28px;
    height: 3px;
    background: var(--accent);
    border-radius: 2px;
    transition: all 0.4s ease;
  }

  /* Hamburger active (X) */
  .hamburger.active span:nth-child(1) {
    transform: rotate(45deg) translate(5px, 5px);
  }
  .hamburger.active span:nth-child(2) {
    opacity: 0;
  }
  .hamburger.active span:nth-child(3) {
    transform: rotate(-45deg) translate(5px, -5px);
  }

  /* Optional emoji rotation when open */
  .hamburger.active::before {
    transform: rotate(90deg);
  }

  /* Mobile sidebar menu */
  .nav-links {
    position: fixed;
    top: 0;
    right: -100%;           /* hidden by default */
    height: 100vh;
    width: 250px;
    flex-direction: column;
    justify-content: center;
    gap: 2rem;
    background: rgba(0, 0, 0, 0.65);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    padding-left: 2rem;
    z-index: 2000;
    transition: right 0.5s cubic-bezier(0.77, 0, 0.175, 1);
    list-style: none;
    display: flex;
  }

  /* Open state */
  .nav-links.open {
    right: 0;
  }

  /* Sidebar links animation */
  .nav-links li {
    opacity: 0;
    transform: translateX(20px);
    transition: opacity 0.4s ease, transform 0.4s ease;
  }

  .nav-links.open li {
    opacity: 1;
    transform: translateX(0);
  }

  /* Staggered delays for smooth one-by-one appearance */
  .nav-links.open li:nth-child(1) { transition-delay: 0.3s; }
  .nav-links.open li:nth-child(2) { transition-delay: 0.6s; }
  .nav-links.open li:nth-child(3) { transition-delay: 0.9s; }
  .nav-links.open li:nth-child(4) { transition-delay: 1.2s; }
  .nav-links.open li:nth-child(5) { transition-delay: 1.5s; }
  .nav-links.open li:nth-child(6) { transition-delay: 1.8s; }

  /* Sidebar links style */
  .nav-links li a {
    color: white !important;
    font-size: 1.2rem;
    text-decoration: none;
    pointer-events: auto;
    transition: color 0.3s ease;
  }

  /* Overlay behind menu */
  body.menu-open::before {
    content: "";
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.4);
    backdrop-filter: blur(3px);
    pointer-events: none;
    z-index: 1000;
  }
}
/* ===== VIDEO SECTION ===== */
.video-section {
  background: var(--dark);
  color: white;
  padding: 3rem 5% 10rem;
  max-width: 100%;
  margin: 0;
}

.video-section h2 {
  color: white;
  text-align: center;
  margin-bottom: 1rem;
}

.video-subtitle {
  text-align: center;
  color: rgba(255,255,255,0.55);
  font-size: 1.15rem;
  letter-spacing: 0.5px;
  margin-bottom: 5rem;
}

/* Layout: 2 egyforma oszlop */
.video-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  max-width: 1200px;
  margin: 0 auto;
}

/* Keret */
.video-wrapper {
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(212,175,55,0.25);
  padding: 1.5rem;
  transition: border-color 0.4s ease, box-shadow 0.4s ease;
}

.video-wrapper:hover {
  border-color: var(--accent);
  box-shadow: 0 0 40px rgba(212,175,55,0.12);
}

/* Felső felirat */
.video-label {
  font-size: 0.75rem;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 1rem;
  font-weight: 600;
}

/* 16:9 responsive iframe */
.video-frame-wrap {
  position: relative;
  width: 100%;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
  background: #000;
}

.video-frame-wrap iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: none;
}

/* Alsó pár neve + helyszín */
.video-info {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 1.2rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(255,255,255,0.08);
}

.video-couple {
  font-family: 'Playfair Display', serif;
  font-size: 1.1rem;
  color: white;
}

.video-location {
  font-size: 0.85rem;
  color: rgba(255,255,255,0.45);
  letter-spacing: 0.5px;
}

/* Responsive */
@media (max-width: 900px) {
  .video-grid {
    grid-template-columns: 1fr;
  }
}
.logo-container {
  text-decoration: none;
}

.logo-container .logo-text {
  text-decoration: none;
}

.logo-container::after {
  display: none;
}