/* -----------------------------
   Global / Reset
--------------------------------*/
* {
  box-sizing: border-box;
  /* more predictable sizing */
}

body {
  margin: 0;
  height: 100vh;
  font-family: sans-serif;
  overflow-x: hidden;
  /* avoid accidental horizontal scroll */
  scroll-behavior: smooth;
  /* smooth scroll for anchor links */
}

/* -----------------------------
   Hero Section
--------------------------------*/
.first-container {
  width: 100%;
  height: 100vh;
  background:
    linear-gradient(rgba(0, 0, 0, 0.85), rgba(0, 0, 0, 0.55)),
    url('../img/background.jpg') center center / cover no-repeat;
}

.works-container {
  background:
    linear-gradient(rgba(0, 0, 0, 0.85), rgba(0, 0, 0, 0.55)),
    url('../img/works-bg.jpg') center center / cover no-repeat !important;
}


/* -----------------------------
   Logo
--------------------------------*/
.logo {
  width: clamp(5rem, 20vw, 9.375rem);
  height: auto;
  margin: clamp(1rem, 3vw, 2rem);
}

/* Navbar toggler (hamburger icon) */
.navbar-toggler {
  position: absolute;
  top: clamp(3.2rem, 7vw, 10rem);
  right: clamp(1rem, 3vw, 2rem);
  border: none;
  background: none;
  font-size: clamp(1.5rem, 3vw, 2rem);
  color: white;
  z-index: 10;
}

/* -----------------------------
   Navbar
--------------------------------*/

.navbar {
  position: relative;
  z-index: 20;
}

/* mobile menu wrapper */
.navbar-mobile {
  position: absolute;
  top: 100%;
  /* directly below navbar */
  left: 0;
  width: 100%;
  background: transparent;
  backdrop-filter: blur(10px);
  text-align: center;
  transition: all 0.4s ease;
  overflow: hidden;
  z-index: 10;
  padding: 0 0 1rem 0;
}

.navbar-mobile ul {
  display: flex;
  flex-direction: column;
  /* stack items vertically */
  align-items: flex-start;
  /* left-align the items */
  padding-left: 1rem;
  /* optional spacing from left edge */
  margin: 0;
}

.navbar-mobile li {
  width: 100%;
  /* take full width */
  margin: 0.5rem 0;
  /* spacing between items */
}

.navbar-mobile a {
  width: 100%;
  text-align: left;
  padding-left: 0;
}


/* closed state */
.navbar-mobile-closed {
  max-height: 0;
  opacity: 0;
  transform: translateY(-10px);
  pointer-events: none;
}

/* opened state */
.navbar-mobile-opened {
  max-height: 400px;
  opacity: 1;
  transform: translateY(0);
  pointer-events: all;
}



.navbar-mobile-opened .nav-item {
  opacity: 0;
  animation: fadeInSlide 0.5s forwards;
}

.navbar-mobile-opened .nav-item:nth-child(1) {
  animation-delay: 0.1s;
}

.navbar-mobile-opened .nav-item:nth-child(2) {
  animation-delay: 0.2s;
}

.navbar-mobile-opened .nav-item:nth-child(3) {
  animation-delay: 0.3s;
}

.navbar-mobile-opened .nav-item:nth-child(4) {
  animation-delay: 0.4s;
}

@keyframes fadeInSlide {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}



.nav-item>a {
  color: white;
  font-family: 'Cinzel Decorative', serif;
  font-size: clamp(0.9rem, 2vw, 1.2rem);
  transition: color 0.3s ease;
}

.nav-item>a:hover {
  color: #f6b33b;
}

.navbar .nav-center {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  justify-content: center;
  align-items: center;
}

.navbar-nav li {
  margin: 0 clamp(1rem, 4vw, 3.5rem);
}

/* -----------------------------
   Animated underline for links
--------------------------------*/
.underline-anim {
  position: relative;
  text-decoration: none;
  color: inherit;
  padding-bottom: 4px;
}

.underline-anim::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 0;
  height: 1px;
  background: currentColor;
  transition: width 0.15s ease, left 0.15s ease;
}

.underline-anim:hover::after {
  width: 100%;
  left: 0;
}

/* -----------------------------
   Hero Content
--------------------------------*/
.container {
  width: min(95%, 800px);
  /* more flexible on small screens */
  color: white;
  margin-top: -30px;
  opacity: 0;
  transition: opacity 2s ease;
}

.container h1 {
  font-size: clamp(1.5rem, 5.1vw, 4.5rem);
  font-weight: 300;
  font-family: 'Cinzel Decorative', serif;
  line-height: 1.2;
  margin-bottom: 20px;
  line-height: clamp(2rem, 8vw, 5rem);
}

.container h2 {
  font-size: clamp(0.8rem, 4vw, 2.8rem);
  font-weight: 300;
  font-family: 'Cinzel Decorative', serif;
  line-height: 1.2;
  margin-bottom: 20px;
  line-height: clamp(2rem, 8vw, 5rem);
}

.shiny-text {
  position: relative;
  display: inline-block;
  color: #5a5a5a;
  /* base text color — always visible */
  font-weight: bold;
  overflow: hidden;
}

/* The moving shine overlay */
.shiny-text::after {
  content: attr(data-text);
  /* copies text */
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(120deg,
      rgba(255, 255, 255, 0) 30%,
      rgba(255, 255, 255, 0.8) 50%,
      rgba(255, 255, 255, 0) 60%);
  background-size: 200% 100%;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: shine 4s linear infinite;
}

@keyframes shine {
  0% {
    background-position: 100%;
  }

  100% {
    background-position: -100%;
  }
}



/* -----------------------------
   Buttons
--------------------------------*/
.contactBtn,
.exploreBtn {
  width: clamp(15rem, 30vw, 35rem);
  height: 60px;
  position: relative;
  cursor: pointer;

  padding: 12px 17px;
  border: 0;
  border-radius: 1px;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.1);

  background: radial-gradient(ellipse at bottom,
      rgb(255, 255, 255) 0%,
      #f6b33b 45%);

  color: black;
  font-size: clamp(0.75rem, 1.5vw, 1.1rem);
  font-family: 'Cinzel Decorative', serif;
  font-weight: 500;

  transition: all 0.2s cubic-bezier(0.15, 0.83, 0.66, 1);
}

.contactBtn::before,
.exploreBtn::before {
  content: "";
  width: 70%;
  height: 1px;
  position: absolute;
  bottom: 0;
  left: 15%;
  background: linear-gradient(90deg,
      rgba(255, 255, 255, 0) 0%,
      rgba(255, 255, 255, 1) 50%,
      rgba(255, 255, 255, 0) 100%);
  opacity: 0.2;
  transition: opacity 0.5s ease;
}

.contactBtn:hover,
.exploreBtn:hover {
  color: white;
  transform: scale(1.07) translateY(-3px);
  background: radial-gradient(ellipse at bottom,
      rgb(255, 255, 255) 0%,
      #6b3b0d 45%);
}

.contactBtn:hover::before,
.exploreBtn:hover::before {
  opacity: 1;
}

/* -----------------------------
   Scroll Icon Animation
--------------------------------*/
.scroll-icon {
  font-size: clamp(1.5rem, 3vw, 2rem);
  display: inline-block;
  animation: bounce 1s ease-in-out infinite;
  opacity: 0.5;
  margin-top: 0.1rem;
}

@keyframes bounce {

  0%,
  100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-10px);
  }
}

/* -----------------------------
   Middle Section
--------------------------------*/
.middle-container {
  width: 100%;
  height: auto;
  background: linear-gradient(135deg, #f0e5d8 0%, #e6d6c3 50%, #d9c5ad 100%);
  padding-right: 30px;
  padding-left: 30px;
  box-sizing: border-box;
}

.middle-container h4 {
  font-family: 'Nanum Myeongjo', serif;
  text-align: center;
}

/* Card base */
.short-cards>div>.card {
  height: 500px;
  border-radius: 10px;
  font-family: 'Cinzel Decorative', serif;
  cursor: pointer;
  position: relative;
  overflow: hidden;

  background-position: center;
  background-repeat: no-repeat;
  background-size: 100%;
  /* start at 100% */
  opacity: 0;
  transform: translateY(30px);
  transition: background-size 0.5s ease;
}


/* Gradient overlay */
.short-cards>div>.card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(rgba(0, 0, 0, 0.382), rgba(0, 0, 0, 0.382));
  border-radius: 10px;
  z-index: 1;
}

.short-cards>div>.card:hover {
  background-size: 110%;
  /* zooms smoothly */
}

.short-cards .card:hover>h5 {
  color: #f6b33b !important;
}


/* Text on top of overlay */
.short-cards>div>.card h5 {
  position: relative;
  z-index: 2;
  margin: auto;
  text-align: center;
}

/* Base style for h5 underline animation */
.short-cards>div>.card h5.underline-anim {
  position: relative;
  text-decoration: none;
  color: inherit;
  padding-bottom: 4px;
}

.short-cards>div>.card h5.underline-anim::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 0;
  height: 1px;
  background: currentColor;
  transition: width 0.3s ease, left 0.3s ease;
}

/* Animate underline when card is hovered */
.short-cards>div>.card:hover h5.underline-anim::after {
  width: 100%;
  left: 0;
  color: #f6b33b;
}


/* Individual background images */
.short-cards>.col-12:nth-child(1)>.card {
  background-image: url('../img/card-bg-img/uniform-bg.jpg');
}

.short-cards>.col-12:nth-child(2)>.card {
  background-image: url('../img/card-bg-img/business-bg.jpg');
}

.short-cards>.col-12:nth-child(3)>.card {
  background-image: url('../img/card-bg-img/wedding-bg.jpg');
}

.short-cards>.col-12:nth-child(4)>.card {
  background-image: url('../img/card-bg-img/casual-bg.jpg');
}

/* Hover: only zoom background image */
.short-cards>div>.card:hover {
  background-size: 110%;
}

.long-cards>div>.card {
  height: 250px;
  border-radius: 10px;
  font-family: 'Cinzel Decorative', serif;
  cursor: pointer;
  position: relative;
  overflow: hidden;

  background-position: center;
  background-repeat: no-repeat;
  background-size: 100%;
  /* start at 100% */
  transition: background-size 0.5s ease;
  /* smooth zoom */
}


/* Gradient overlay */
.long-cards>div>.card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(rgba(0, 0, 0, 0.382), rgba(0, 0, 0, 0.382));
  border-radius: 10px;
  z-index: 1;
}

.long-cards>div>.card:hover {
  background-size: 110%;
  /* zooms smoothly */
}

.long-cards .card:hover>h5 {
  color: #f6b33b !important;
}


/* Text on top of overlay */
.long-cards>div>.card h5 {
  position: relative;
  z-index: 2;
  margin: auto;
  text-align: center;
}

/* Base style for h5 underline animation */
.long-cards>div>.card h5.underline-anim {
  position: relative;
  text-decoration: none;
  color: inherit;
  padding-bottom: 4px;
}

.long-cards>div>.card h5.underline-anim::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 0;
  height: 1px;
  background: currentColor;
  transition: width 0.3s ease, left 0.3s ease;
}

/* Animate underline when card is hovered */
.long-cards>div>.card:hover h5.underline-anim::after {
  width: 100%;
  left: 0;
  color: #f6b33b;
}


/* Individual background images */
.long-cards>.col-12:nth-child(1)>.card {
  background-image: url('../img/card-bg-img/woman-bg.jpg');
}

.long-cards>.col-12:nth-child(2)>.card {
  background-image: url('../img/card-bg-img/man-bg.jpg');
}

/* Hover: only zoom background image */
.long-cards>div>.card:hover {
  background-size: 110%;
}


@media (min-width: 996px) {
  .navbar-toggler {
    display: none;
  }

  .navbar-mobile {
    display: none !important;
  }

  .navbar-pc {
    width: 70vw;
    margin-left: 3vw;
  }
}

/* ----------------------------
--------- WHY US SECTION --------
---------------------------- */

.why-us-section {
  width: 100%;
  height: auto;
  background-color: #000035;
  color: white;
}

.section-title {
  font-family: 'Nanum Myeongjo', serif;
  font-size: clamp(2.3rem, 5vw, 3rem);
}

.value-card i {
  font-size: clamp(2rem, 3vw, 3rem);
}

.value-card>h5,
.value-card>p {
  font-family: "Manrope", sans-serif;
}


/* ----------------------------------
------------ MAP SECTION ------------
--------------------------------- */


.map-section {
  width: 100%;
  height: auto;
  background-color: #e4dcd3;
  padding-right: 6vw;
  padding-left: 6vw;
}

.first-map-card,
.first-google-map,
.second-map-card,
.second-google-map {
  height: 450px;
  border-radius: 10px;
  background-color: #000035;
}

.map-section>.section-title {
  color: #000035;
}


.first-map-card,
.second-map-card {
  font-family: 'Cinzel Decorative', serif;
  background-color: #000035;
}

.first-map-card h5,
.second-map-card h5 {
  text-decoration: underline;
  text-underline-offset: 5px;
  color: #ffd88f;
  padding-left: 0.7rem;
  padding-right: 0.7rem;
}

.first-map-card p,
.second-map-card p {
  font-family: 'Manrope', sans-serif;
}

/* --------------------------------------
------------ FOOTER SECTION -------------
---------------------------------------- */

.footer-section {
  width: 100%;
  height: auto;
  background-color: #000035;
  color: #fff;
  font-family: 'Cinzel Decorative', sans-serif;
}

.footer-logo {
  width: clamp(5rem, 20vw, 9.375rem);
  height: auto;
  margin: clamp(1rem, 3vw, 2rem);
}

.footer-section h5 {
  font-size: clamp(0.9rem, 1.3vw, 1.2rem);
}

.footer-section p,
.footer-section li,
.footer-section a {
  font-size: clamp(0.8rem, 1.2vw, 0.9rem);
}

.service-img {
  height: 400px;
  background-size: cover;
  background-position: center;
  border-radius: 10px;
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s ease-out, transform 0.6s ease-out;
}

.show {
  opacity: 1 !important;
  transform: translateY(0) !important;
}

.service-img:hover {
  transform: scale(1.01);
}

.services-section h2,
.services-section h3 {
  font-family: 'Cinzel Decorative', serif;
  margin-bottom: 15px;
}

.services-section p {
  font-size: 1.1rem;
  line-height: 1.6;
  font-family: 'Gambetta', sans-serif;
}


.contact-section {
  width: 100%;
  height: auto;
}

.contact-section>div:first-child {
  color: #fff;
  font-family: 'Cinzel Decorative';
}

.left-side {
  margin-bottom: -90px !important;
  margin-top: -30px !important;
}

.left-side h2 {
  font-size: clamp(1.5rem, 5vw, 3.125rem);
}

.left-side p {
  font-size: clamp(1.2rem, 4vw, 2.5rem) !important;
  background: linear-gradient(120deg, #b8b8b8, #f6b33b, #b8b8b8, #f6b33b, #b8b8b8);
  background-size: 200% 100%;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: shine 5s linear infinite;
}

.btn[type="submit"] {
  background-color: #f6b33b !important;
}

.blur-word {
  display: inline-block;
  opacity: 0;
  transform: translateY(30px);
  filter: blur(10px);
  transition: opacity 0.6s ease, transform 0.6s ease, filter 0.6s ease;
}

.right-side input,
.right-side textarea {
  background-color: #00000054 !important;
  color: white !important;
  padding-left: 20px !important;
}

.right-side label {
  padding-left: 20px !important;
  color: white !important;
}

.right-side label::after {
  background-color: transparent !important;
}


/*------- ABOUT US SECTION -------------*/

.about-us {
  width: 100%;
  height: auto;
  background: linear-gradient(45deg, #f0e5d8, #e6d6c3);
  color: #000;
  font-family: 'General Sans', sans-serif;
}

.about-us-container {
  background-color: #EDEDED;
  width: 85%;
  height: 82%;
  justify-self: center;
  padding: 0px 12px 0px 12px;
}

.about-us-inside-container {
  height: 100%;
}

.about-us-image {
  background-image: url('../img/about-us-image.png');
  background-size: cover;
  background-position: center;
  min-height: 600px;
}

.about-us-image-neuss {
  background-image: url('../img/about-us-image-neuss.jpg');
  background-size: cover;
  background-position: center;
  min-height: 600px;
}




/* Hide desktop nav on small screens */
@media (max-width: 995px) {
  .navbar-pc {
    display: none !important;
  }

  .about-us-image, .about-us-image-neuss {
    background-position:right ;
  }
}

@media (max-width:485px) {
  /* .first-container {
    height: 75vh;
  } */

  .container {
    margin-top: 30px;
  }

  .service-img {
    height: 250px;
  }

  .short-cards>div>.card {
    background-size: cover;
  }

  .long-cards>div>.card {
    background-size: cover;
  }
}