/* Main CSS */

/* --- Variables --- */
:root {
  --bg-dark: #121214;
  --text-primary: #ffffff;
  --text-secondary: #a0a0a0;
  --accent: #c0a062;
  --preloader-bg: #ffffff;
  --preloader-bg-color: #fffdf5;
  --font-primary: "Oswald", sans-serif;
}

html {
  overflow-x: hidden;
  /* scroll-behavior: smooth; */
}

body {
  font-family: var(--font-primary);
  overflow-x: hidden;
  width: 100%;
}

/* --- Preloader --- */
#preloader {
  position: fixed;
  top: 0 !important;
  left: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
  margin: 0 !important;
  padding: 0 !important;
  /* background-color: var(--preloader-bg-color); REMOVED: Grid tiles form the background now */
  background-color: transparent;
  display: flex;
  justify-content: start;
  align-items: center;
  flex-direction: column;
  z-index: 999999;
  padding-top: 150px !important;
  /* Ensure it's above everything including WP Admin Bar */
}

.preloader-content {
  text-align: center;
  max-width: 600px;
  width: 90%;
  position: relative;
  z-index: 10;
}

.preloader-illustration svg {
  max-width: 100%;
  height: auto;
  max-height: 80vh;
  /* Increased from 400px to fill more screen */
  margin-top: 2rem;
  /* Optional: Animate lines if needed via CSS, but sticking to request */
}

.preloader-text {
  margin-top: 0;
  margin-bottom: 1rem;
  letter-spacing: 0.05em;
  opacity: 1;
  animation: fadeInUp 0.8s ease-out forwards 0.2s;
  color: #526831;
  text-align: center;
  font-size: 28px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}

.progress-container {
  display: flex;
  justify-content: center;
  gap: 10px;
  /* Tighter gap */
  margin-top: 1rem;
  margin-bottom: 2rem;
  width: 600px;
  /* Wider to match screenshot proporions */
  max-width: 90%;
  margin-left: auto;
  margin-right: auto;
}

.progress-bar-wrapper {
  flex: 1;
  height: 45px;
  /* Blocky height */
  background-color: #a8b07d;
  /* Light Olive Background */
  border-radius: 0;
  /* Sharp edges */
  overflow: hidden;
  position: relative;
}

.progress-bar {
  width: 0%;
  height: 100%;
  background-color: #556b2f;
  /* Dark Olive Fill */
  border-radius: 0;
  transition: width 0.1s linear;
}

.bar-text {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  color: #fff;
  text-align: center;
  text-align: center;

  font-size: 10px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  z-index: 2;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* Specific alignments */
.bar-text.text-left {
  left: 15px;
  color: #ffffff;

  /* White text on dark fill assumption */
}

.bar-text.text-right {
  right: 15px;
  color: #526831;
  /* Dark Olive text on light bg */
}

/* Change text color when bar fills (mix-blend-mode ideal but simple override works if we want constant color) */

/* Animation sequence for bars handled by JS or CSS animation delay */
/* We will use CSS animation classes triggered on load or simple keyframes */
@keyframes fillBar {
  0% {
    width: 0%;
  }

  100% {
    width: 100%;
  }
}

/* --- GSAP Transition --- */
#gsap-transition-container {
  pointer-events: none;
}

.gsap-tile {
  /* Base styles, specific sizing handles by JS */
  box-sizing: border-box;
  /* border: 1px solid rgba(0,0,0,0.05); Debugging grid */
  background-repeat: no-repeat;
}

/* --- Hero Section --- */
.hero-section {
  position: relative;
  height: 100vh;
  min-height: 600px;
  display: flex;
  align-items: center;
  background-color: var(--bg-dark);
  background-image:
    linear-gradient(rgba(0, 0, 0, 0.45), rgba(0, 0, 0, 0.45)),
    url("../img/final.svg");
  background-size: cover;
  background-position: center;
  overflow: hidden;
  justify-content: center;
  opacity: 1;
  /* Visible by default, Preloader covers it */
}

/* Hide fallback grid if it exists */
#transition-grid {
  display: none;
}

/* --- Header --- */
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 3000;
  background: linear-gradient(0deg, rgba(13, 22, 0, 0) 0%, #0d1600 100%);
  backdrop-filter: blur(0px);
  padding: 40px 64px;
  opacity: 0;
}

/* Header scrolled */
.scrolled .site-header {
  background: transparent !important;
}

.header-container {
  margin: 0 auto;
  padding: 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-top: 1px solid rgba(255, 253, 245, 0.7);
  border-bottom: 1px solid rgba(255, 253, 245, 0.7);
  backdrop-filter: blur(6px);
}

.scrolled .header-container {
  border-top: 1px solid #526831;
  border-bottom: 1px solid #526831;
  background: rgba(255, 253, 245, 0.6) !important;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  /* Safari support */
}

.logo-box {
  background: #fff;
  padding: 1.2rem 1.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  opacity: 0.7;
}

.scrolled .logo-box {
  background: #526831;
}

.scrolled .menu-icon svg {
  fill: #fff;
  stroke: #fff;
}

.custom-logo {
  height: 40px;
  width: auto;
}

.menu-toggle {
  background: #bfbeb1;
  /* Beige button */
  border: none;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 26px;
  cursor: pointer;
  text-transform: uppercase;
  color: #526831;
  text-align: center;
  text-align: center;

  font-size: 20px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}

.scrolled .menu-toggle {
  background: #526831;
  color: #fff;
}

.menu-icon {
  font-size: 1.2rem;
  line-height: 1;
}

/* --- Hero Section --- */
.hero-text-center {
  text-align: center;
  position: relative;
  z-index: 10;
  width: 100%;
  margin-top: -5vh;
  /* Slightly move up visual center */
}

.headline {
  font-size: 4.5rem;
  color: #ffffff;
  font-weight: 400;
  margin-bottom: 0.5rem;
  text-transform: none;
  letter-spacing: -0.5px;
  background: none;
  -webkit-text-fill-color: initial;
  line-height: 1.1;
  line-height: 1.1;

  /* Fallback to tighter font */
}

.hero-description {
  font-size: 1.4rem;
  color: #f0f0f0;
  font-weight: 300;
  max-width: 800px;
  margin: 0 auto;
  letter-spacing: 0.5px;
}

.scroll-indicator {
  position: absolute;
  bottom: 15%;
  /* Floating higher */
  left: 50%;
  transform: translateX(-50%);
  width: 30px;
  height: 100px;
  border: 1px solid rgba(255, 255, 255, 0.4);
  /* Box border */
  display: flex;
  justify-content: center;
  align-items: center;
  opacity: 0.8;
}

.scroll-text {
  writing-mode: vertical-rl;
  text-orientation: mixed;
  color: #fff;
  text-transform: uppercase;
  font-size: 0.65rem;
  letter-spacing: 2px;
  transform: none;
  /* Reset rotation */
  /* Screenshot implies distinct orientation, possibly standard vertical-rl */
}

.scroll-line {
  display: none;
  /* Hide line, use box border */
}

/* --- Footer / Bottom Nav --- */
.site-footer {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  background: linear-gradient(180deg, rgba(13, 22, 0, 0) 0%, #0d1600 100%);
  /* Darker bar */
  z-index: 3000;
  padding: 12rem 0px 0px;
  opacity: 0;
  /* Hidden initially */
}

.scrolled .site-footer {
  background: #fff !important;
  padding-top: 0px !important;
}

.bottom-nav-container {
  max-width: 100%;
  margin: 0 auto;
}

.bottom-menu {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  justify-content: space-between;
  background: transparent;
  border-top: 1px solid #dddfc4;
  /* Very dark olive/black */
}

.bottom-menu li {
  flex: 1;
  text-align: center;
  border-right: 1px solid #dddfc4;
  display: flex;
  /* Stretch anchor */
}

.scrolled .bottom-menu {
  border-top: 1px solid #526831;
  background: #fffdf5 !important;
}

.bottom-menu li:last-child {
  border-right: none;
}

.bottom-menu a {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 13.5px;
  /* Taller */
  color: #aaae6c;
  /* Default Olive Text */
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  transition: all 0.3s;
  background-color: transparent;
  text-align: center;
  font-family: Oswald;
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}

/* Active State (INTRO) */
.scrolled .bottom-menu li.current-menu-item a,
.scrolled .bottom-menu a:hover {
  background-color: #526831;
  color: #fff;
}

/* --- Shipping Solution Section --- */
.shipping-section {
  background-color: #fffdf5;
  color: #333;
  position: relative;
  z-index: 10;
  width: 100vw;
  min-height: 100vh;
  margin-left: calc(-50vw + 50%);
  margin-right: calc(-50vw + 50%);
  box-sizing: border-box;
  padding: 0;
  display: flex;
  flex-direction: column;
}

/* Common Grid Cols for alignment */
.grid-col {
  border-right: 1px solid #dddfc4;
  /* "row me 5 border dikhegi" -> 4 cols, each has right border? 
       Usually 5 borders means Left + 4 Rights? Or Left of Container + Rigths? 
       User said "4 columns rahnege with left right borders. matlab row me 5 border dikhegi"
       So: Border-Left on Container + Border-Right on each Col?
       Or Border-Left on First Col?
       Let's put Border-Right on all cols, and Border-Left on the Row container.
    */
  box-sizing: border-box;
  position: relative;
  height: 100%;
}

.grid-col:first-child {
  border-left: 1px solid #dddfc4;
}

/* Row 1 */
.shipping-row-1 {
  height: 168px;
  width: 100%;
  padding: 0px 64px 0 64px;
  /* Top 40, Side 64 */
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  box-sizing: border-box;
  border-left: 1px solid #dddfc4;
  /* 1st border */
  /* Right borders handled by cols */
}

/* Row 2 */
.shipping-row-2 {
  height: 40px;
  width: 100%;
  padding: 0 64px;
  box-sizing: border-box;
  /* No vertical borders mentioned for the row wrapper itself, but content inside needs alignment? 
       User: "2nd row... top bottom koi padding nhi hogi... Top bottom border hogi."
    */
  border-top: 1px solid #526831;
  border-bottom: 1px solid #526831;
  /* "Top or bottom border se touch ho raha he" -> The title */
  display: flex;
  align-items: center;
  justify-content: center;
  /* or stretch */
}

.row-2-content {
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: relative;
}

.section-title {
  font-family: "Oswald", sans-serif;
  font-size: 48px;
  color: #526831;
  font-weight: 400;
  margin: 0;
  line-height: 1;
  /* Touch borders */
  /* Adjust line-height or height to fill 40px exactly if needed */
  height: 48px;
  /* Slightly taller than container? "Touch ho raha he" - maybe it overflows? */
  display: flex;
  align-items: center;
  /* Manual adjustment to visualy touch borders if 40px container */
  margin-top: -6px;
  /* 48px text in 40px box, centering might need offset */
  /* Actually let's just make line-height match or let it overflow */
}

.btn-quote {
  width: 220px;
  height: 40px;
  background: #526831;
  font-family: "Oswald", sans-serif;
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  text-decoration: none;
  text-transform: capitalize;
  transition: background 0.3s;
}

.btn-quote:hover {
  background: #404b28;
}

/* Row 3 */
.shipping-row-3 {
  flex-grow: 1;
  /* "height puri hogi" */
  width: 100%;
  padding: 0 64px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  box-sizing: border-box;
  border-left: 1px solid #dddfc4;
}

/* Service Card Styling */
.service-card {
  position: relative;
  width: 100%;
  margin-bottom: 214px;
  /* "4 columns ke andar honge bahar nhi jayenge" */
  height: 534px;
  /* Keep existing height? */
  perspective: 1000px;
  cursor: pointer;
  background: #fffdf5;
  /* "cards me top or bottom border hogi or left right border column se sahre karenge" */
  border-top: 1px solid #526831;
  border-bottom: 1px solid #526831;
  border-left: none;
  border-right: none;
}

/* Staggering */
/* "1st or 3rd column ka card row me upar se 84px niche hoga" */
.shipping-row-3 .grid-col:nth-child(1) .service-card,
.shipping-row-3 .grid-col:nth-child(3) .service-card {
  margin-top: 84px;
}

/* "2nd or 4th card me top space 128px hogi" */
.shipping-row-3 .grid-col:nth-child(2) .service-card,
.shipping-row-3 .grid-col:nth-child(4) .service-card {
  margin-top: 213px;
}

/* Card Internals (Reused but ensured specific alignment) */
.card-default,
.card-hover {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  padding: 72px 34px 48px 34px;
  display: flex;
  flex-direction: column;
  align-items: center;
  /* text-align: center; (inherited) */
  backface-visibility: hidden;
  transition: transform 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.card-default {
  background-color: #fffdf5;
  transform: rotateY(0deg);
  z-index: 2;
}

/* Back Face */
.card-hover {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  /* Padding adjustments based on screenshot */
  padding: 48px 40px;
  display: flex;
  flex-direction: column;
  background-color: #526831;
  /* Dark Olive */
  color: #fff;
  opacity: 1;
  pointer-events: none;
  backface-visibility: hidden;
  transition: transform 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  transform: rotateY(180deg);
  z-index: 1;
  text-align: left;
}

.service-card.active .card-default {
  transform: rotateY(-180deg);
  pointer-events: none;
}

.service-card.active .card-hover {
  transform: rotateY(0deg);
  pointer-events: auto;
}

/* Card Content Styling */
.icon-circle {
  width: 120px;
  height: 120px;
  background-color: #a8b07d;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 2rem;
  color: #fff;
  flex-shrink: 0;
}

.icon-circle svg,
.icon-circle img {
  width: 60px;
  height: 60px;
}

.card-default h3 {
  font-size: 1.6rem;
  font-weight: 400;
  color: #556b2f;
  margin: 1rem 0 0 0;
  line-height: 1.3;
  font-family: "Oswald", sans-serif;
}

.plus-icon {
  width: 45px;
  height: 45px;
  background-color: #a8b07d;
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.8rem;
  margin-top: auto;
  transition: transform 0.3s;
  font-weight: 300;
}

/* Back Content */
.card-hover h3 {
  font-size: 1.8rem;
  /* Slightly smaller than previous to match screenshot scale */
  font-weight: 400;
  margin-bottom: 2.5rem;
  color: #fff;
  font-family: "Oswald", sans-serif;
  padding: 0;
  border: none;
  line-height: 1.2;
}

.service-details {
  list-style: none;
  padding: 0;
  margin: 0;
  flex-grow: 1;
}

.service-details li {
  margin-bottom: 1.8rem;
  /* More spacing between items */
  border: none;
  padding: 0;
}

.detail-label {
  display: block;
  font-size: 0.9rem;
  color: #a8b07d;
  /* Lighter olive/beige for label */
  opacity: 1;
  margin-bottom: 0.3rem;
  font-family: "Oswald", sans-serif;
  font-weight: 400;
  line-height: 1;
}

.detail-value {
  display: block;
  font-size: 1rem;
  font-weight: 400;
  color: #fff;
  line-height: 1.3;
  font-family: "Oswald", sans-serif;
}

.close-icon {
  position: absolute;
  bottom: 40px;
  right: 40px;
  width: 60px;
  /* Larger */
  height: 60px;
  /* Larger */
  background-color: #a8b07d;
  /* Matching lighter olive */
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.8rem;
  cursor: pointer;
  transition: background-color 0.3s;
}

.close-icon:hover {
  background-color: #9da573;
}

/* Mobile */
@media (max-width: 900px) {
  .shipping-section {
    padding: 120px 20px 0 20px;
  }

  .shipping-row-1 {
    display: none;
    /* Hide empty grid on mobile? */
  }

  .shipping-row-2 {
    padding: 0;
    height: auto;
    border: none;
    margin-bottom: 2rem;
  }

  .row-2-content {
    flex-direction: column;
    align-items: flex-start;
    gap: 1rem;
  }

  .section-title {
    font-size: 2.5rem;
    height: auto;
    margin-top: 0;
  }

  .btn-quote {
    width: 100%;
  }

  .shipping-row-3 {
    display: flex;
    flex-direction: column;
    padding: 0;
    border: none;
  }

  .grid-col {
    border: none;
    width: 100%;
    margin-bottom: 1px;
    /* border separator */
  }

  .service-card {
    margin-top: 0 !important;
    border: 1px solid #526831;
    margin-bottom: 2rem;
  }
}

/* --- Task 1: Menu Hover Effect --- */
.card-content {
  transition:
    background-color 0.3s,
    color 0.3s;
}

.card-content:hover {
  background-color: #526831;
  color: #fff !important;
}

.card-content:hover .col-title,
.card-content:hover .menu-links a,
.card-content:hover .click-more {
  color: #fff !important;
}

.card-content:hover .menu-links a:hover {
  color: #dddfc4 !important;
  /* Slightly distinct on hover inside green */
}

/* --- Task 2: Get Quote Popup --- */
.quote-popup {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 10000;
  display: flex;
  justify-content: center;
  align-items: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.4s ease;
}

.quote-popup.open {
  opacity: 1;
  pointer-events: auto;
}

.popup-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(54, 66, 36, 0.85);
  /* Dark olive overlay based on screenshot */
  backdrop-filter: blur(4px);
}

.popup-container {
  position: relative;
  background: #fffdf5;
  width: 900px;
  max-width: 90%;
  max-height: 90vh;
  padding: 0;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
  overflow-y: auto;
  transform: translateY(30px);
  transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  z-index: 2;
}

.quote-popup.open .popup-container {
  transform: translateY(0);
}

.popup-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 24px 40px;
  border-bottom: 1px solid #dddfc4;
}

.popup-title {
  font-family: "Oswald", sans-serif;
  font-size: 2rem;
  color: #526831;
  margin: 0;
  border-left: 4px solid #526831;
  /* Green bar indicator */
  padding-left: 15px;
  line-height: 1;
}

.popup-close {
  background: #526831;
  color: #fff;
  border: none;
  width: 30px;
  height: 30px;
  font-size: 1.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.3s;
}

.popup-close:hover {
  background: #404b28;
}

.popup-body {
  padding: 40px;
}

.form-group {
  margin-bottom: 24px;
}

.form-row {
  display: flex;
  gap: 30px;
  margin-bottom: 24px;
}

.full-width {
  width: 100%;
}

.half-width {
  width: 50%;
}

.form-control {
  width: 100%;
  border: none;
  border-bottom: 1px solid #a0a0a0;
  /* Thin underline style from screenshot */
  background: transparent;
  /* background-color #F9F9F4 in screenshot maybe? */
  background-color: #f8f8f0;
  /* Slight fill */
  padding: 12px 15px;
  font-family: "Oswald", sans-serif;
  font-size: 1rem;
  color: #526831;
  box-sizing: border-box;
}

.form-control:focus {
  outline: none;
  border-bottom: 1px solid #526831;
  background-color: #fffdf5;
}

.section-label {
  display: block;
  font-family: "Oswald", sans-serif;
  font-size: 1.1rem;
  color: #a8b07d;
  margin-bottom: 15px;
}

.service-options {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.option-group {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 15px;
}

.group-label {
  font-family: "Oswald", sans-serif;
  font-size: 0.9rem;
  color: #c0c0c0;
  margin-right: 15px;
  min-width: 120px;
}

.option-group label {
  display: flex;
  align-items: center;
  gap: 5px;
  font-family: "Oswald", sans-serif;
  font-size: 1rem;
  color: #555;
  /* Default */
  cursor: pointer;
}

.option-group input[type="radio"] {
  accent-color: #526831;
}

.form-actions {
  display: flex;
  justify-content: center;
  margin-top: 30px;
  border-top: 1px solid #dddfc4;
  padding-top: 30px;
}

.btn-submit {
  background-color: #526831;
  color: #fff;
  font-family: "Oswald", sans-serif;
  font-size: 1rem;
  padding: 12px 40px;
  border: none;
  cursor: pointer;
  text-transform: capitalize;
  transition: background 0.3s;
}

.btn-submit:hover {
  background-color: #404b28;
}

/* --- Task 3: Scroll Spy Active State --- */
.bottom-menu li.current-menu-item a {
  background-color: #526831;
  color: #fff;
}

/* Mobile Tweaks for Popup */
@media (max-width: 768px) {
  .popup-container {
    width: 95%;
    max-height: 95vh;
  }

  .form-row {
    flex-direction: column;
    gap: 0;
  }

  .half-width {
    width: 100%;
  }

  .popup-header,
  .popup-body {
    padding: 20px;
  }
}

/* (Cleaned up stray code) */

.menu-links li {
  margin-bottom: 1rem;
}

.menu-links a {
  color: #556b2f;
  text-decoration: none;
  font-size: 1.15rem;
  font-weight: 400;
  transition:
    color 0.3s ease,
    padding-left 0.3s ease;
}

.menu-links a:hover {
  color: #8c964b;
  padding-left: 8px;
}

.click-more {
  position: absolute;
  bottom: 2.5rem;
  right: 2.5rem;
  font-size: 0.85rem;
  color: #a8b07d;
  font-style: italic;
}

/* Responsive */
@media (max-width: 1400px) {
  .menu-title {
    font-size: 3.5rem;
  }

  .card-title {
    font-size: 2rem;
  }
}

@media (max-width: 1024px) {
  .menu-grid-wrapper {
    flex-direction: column;
    overflow-y: auto;
  }

  .menu-column {
    border-right: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  }

  .menu-cell {
    height: auto;
    padding: 2.5rem;
  }

  .menu-card {
    max-width: 100%;
    height: auto;
  }
}

@media (max-width: 768px) {
  .menu-title {
    font-size: 2.8rem;
  }
}

/* --- Pallets & Packaging Solutions Section --- */
.pallets-section {
  background-color: #fffdf5;
  /* Match theme bg */
  width: 100vw;
  position: relative;
  border-top: 1px solid #dddfc4;
  /* Separation from previous section */
  margin-left: calc(-50vw + 50%);
  margin-right: calc(-50vw + 50%);
  box-sizing: border-box;
}

/*
   Container: Full Width (100%)
   Column Ratios based on original pixels:
   Total: 1440
   Col 1: 392  -> 27.22%
   Col 2: 480  -> 33.33%
   Col 3: 568  -> 39.44%
   We will use fractional units to fill available space.
   392fr 480fr 568fr
*/
.pallets-container {
  max-width: 100%;
  /* User requested Full Width */
  margin: 0 auto;
  display: grid;
  grid-template-columns: 27.22fr 33.33fr 39.44fr;
  grid-template-rows: 4fr 1fr 5fr;
  /* 40% / 10% / 50% split logic */
  max-height: 100vh;
  /* Make it fill screen height or at least tall */
  width: 100%;
  border-bottom: 1px solid #dddfc4;
}

/* Common Col Styles */
.pallets-col {
  position: relative;
  box-sizing: border-box;
}

.col-content {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  /* For hover overlay */
  background: #fffdf5;
  cursor: pointer;
}

/* Images */
.bg-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* --- Column 1: Cases --- */
.col-cases {
  grid-column: 1;
  grid-row: 1 / span 3;
  /* Full height (spans all 3 rows) */
  border-right: 1px solid #dddfc4;
  padding: 170px 40px 40px 64px;
  /* Responsive top padding */
  display: flex;
  flex-direction: column;
  width: 392px;
}

.col-cases .col-content {
  flex-grow: 1;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  border: none;
}

/* --- Column 2: Title --- */
.col-title {
  grid-column: 2;
  grid-row: 1;
  /* First 40% */
  border-bottom: 1px solid #dddfc4;
  display: flex;
  height: 484px;
  padding: 170px 148px 120px 65px;
  justify-content: center;
  align-items: flex-end;
  gap: 8px;
  align-self: stretch;
}

.title-wrapper {
  width: 100%;
  text-align: center;
}

.section-heading {
  font-family: "Oswald", sans-serif;
  font-size: clamp(2rem, 3vw, 48px);
  /* Responsive font size */
  color: #526831;
  font-weight: 400;
  text-transform: uppercase;
  text-align: left;
  line-height: 1.2;
  margin: 0;
}

/* --- Column 3: Cardboard --- */
.col-cardboard {
  grid-column: 3;
  grid-row: 1 / span 2;
  /* 40% + 10% = 50% height */
  border-bottom: 1px solid #dddfc4;
  border-left: 1px solid #dddfc4;
  padding: 170px 80px 40px 40px;
  position: absolute;
  right: 0;
  z-index: 999;
  background: #fffdf5;
}

/* --- Bottom Area: Pallets --- */
.col-pallets-bottom {
  grid-column: 2;
  /* Only Col 2 width (480px) */
  /* "right side me 1px border hogi". Matches Col 2 width/border. */
  /* "looks like 2 columns... 3rd column floating".
       If Pallets stays in Col 2, then under Col 3 is empty?
       This works well for "floating".
       "3rd column ... float ho raha ho".
    */
  grid-row: 2 / span 2;
  /* Starts at 40% line. Spans to end? */
  /* Wait. Pallets is "bottom row".
       If Pallets starts at 40%, it acts as background for the 10% overlap?
       No, they are different columns.
       Col Pallets is in Col 2.
       Col Cardboard is in Col 3.
       They are side-by-side.
       Pallets starts at Row 2 (40%). Cardboard ends at Row 2 (50%).
       So from 40% to 50%, they are side-by-side.
       Below 50%, Cardboard ends. Pallets continues?
       If Pallets spans to end (100%), then Pallets is 60% height.
       This works.
    */
  padding: 160px 130px 40px 130px;
  /* Percentage padding */
  /* 480 - 260 = 220px. Tiny image?
       "rectangle image... padding top/bottom 40px left right 130px".
       Yes, user specified this.
       Maybe "left right 130px" implies wide usage?
       If Pallets was spanning Col 2+3 (480+568=1048), then 130px padding is fine.
       If Pallets is only Col 2 (480), then 130px padding is huge.
       User: "2nd column 2 rows me devided... bottom row me rectangle image hogi".
       Strictly speaking, it's in Col 2.
       Let's stick to user words "2nd column 2 rows...".
    */

  display: flex;
  align-items: center;
  justify-content: center;
}

/* Hover Effects */
.hover-overlay-wrapper {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 5;
  pointer-events: none;
}

.hover-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(13, 22, 0, 0.6);
  opacity: 0;
  transition: opacity 0.3s ease;
}

.col-content:hover .hover-overlay {
  opacity: 1;
}

.cross-line {
  position: absolute;
  background-color: rgba(255, 255, 255, 0.5);
  opacity: 0;
  transition: all 0.4s ease;
}

.v-1 {
  left: 33%;
  top: 0;
  bottom: 0;
  width: 1px;
  transform: scaleY(0);
  transform-origin: top;
}

.v-2 {
  left: 66%;
  top: 0;
  bottom: 0;
  width: 1px;
  transform: scaleY(0);
  transform-origin: bottom;
}

.h-1 {
  top: 33%;
  left: 0;
  right: 0;
  height: 1px;
  transform: scaleX(0);
  transform-origin: left;
}

.h-2 {
  top: 66%;
  left: 0;
  right: 0;
  height: 1px;
  transform: scaleX(0);
  transform-origin: right;
}

.col-content:hover .cross-line {
  opacity: 1;
  transform: scale(1);
}

.center-box {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(0.8);
  width: 33%;
  height: 33%;
  opacity: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.4s ease 0.1s;
}

.col-content:hover .center-box {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}

.box-text {
  color: #fff;
  font-family: "Oswald", sans-serif;
  font-size: 1.2rem;
  text-transform: uppercase;
  letter-spacing: 1px;
}

/* --- Pallets Hover Stack --- */
.hover-content-stack {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  z-index: 10;
  text-align: center;
  pointer-events: none;
  /* Let clicks pass to card/link */
}

/* Label styling (Updated) */
.col-label {
  position: relative;
  top: auto;
  left: auto;
  transform: none;
  color: #fff;
  font-family: "Oswald", sans-serif;
  font-size: 40px;
  font-weight: 600;
  margin: 0 0 10px 0;
  text-transform: uppercase;
  transition: all 0.3s ease;
}

.hover-arrow {
  opacity: 0;
  transform: translateY(10px);
  transition: all 0.3s ease 0.1s;
  margin-bottom: 5px;
}

.hover-arrow svg {
  stroke: #fff;
  width: 32px;
  height: 32px;
  border: 2px solid #fff;
  border-radius: 50%;
  padding: 6px;
}

.hover-subtext {
  opacity: 0;
  transform: translateY(10px);
  color: #fff;
  font-family: "Mukta", sans-serif;
  /* Assuming secondary font */
  font-size: 14px;
  text-transform: lowercase;
  transition: all 0.3s ease 0.2s;
}

/* Hover State */
.col-content:hover .hover-arrow,
.col-content:hover .hover-subtext {
  opacity: 1;
  transform: translateY(0);
}

/* Optional: Slight lift of label on hover */
.col-content:hover .col-label {
  transform: translateY(-5px);
}

/* --- Custom Cursor --- */
.pallets-cursor {
  position: fixed;
  top: 0;
  left: 0;
  pointer-events: none;
  z-index: 99999;
  display: flex;
  align-items: center;
  gap: 15px;
  opacity: 0;
  /* Hidden by default */
  transform: scale(0);
  transition:
    opacity 0.3s ease,
    transform 0.3s ease;
}

.cursor-circle {
  width: 60px;
  height: 60px;
  border: 2px solid #526831;
  /* Updated Border */
  background-color: rgba(82, 104, 49, 0.12);
  /* Updated BG */
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
  transition: all 0.3s ease;
}

.cursor-circle svg {
  stroke: #526831;
  /* Updated Arrow Color */
  width: 24px;
  height: 24px;
}

.cursor-text {
  color: #526831;
  font-family: "Mukta", sans-serif;
  font-size: 14px;
  font-weight: 500;
  text-transform: lowercase;
  white-space: nowrap;
  background: transparent;
  opacity: 0;
  /* Hidden by default until hover on box? User said "tooltip ayega" on box hover */
  transform: translateX(-10px);
  transition: all 0.3s ease;
}

/* Show Cursor when active class added via JS */
.pallets-cursor.active {
  opacity: 1;
  transform: scale(1);
}

/* Reveal text when active on a column (handled by JS toggling a class on cursor or just text presence?)
   Let's add a class 'text-visible' to cursor when hovering a box
*/
.pallets-cursor.text-visible .cursor-text {
  opacity: 1;
  transform: translateX(0);
}

/* --- Fix Scroll & Layout --- */
html,
body {
  overflow-x: hidden !important;
  overflow-y: auto !important;
  height: auto !important;
}

/* --- Specific Image Dimensions for Pallets Section --- */
.col-cases .bg-img {
  width: 288px;
  max-height: 829px !important;
  object-fit: cover;
  max-width: 100%;
}

/* Cardboard is col-cardboard */
.col-cardboard .bg-img {
  width: 440px !important;
  height: 435px !important;
  object-fit: cover;
  max-width: 100%;
}

/* Bottom Pallets is col-pallets-bottom */
.col-pallets-bottom .bg-img {
  width: 721px !important;
  height: 316px !important;
  object-fit: cover;
}

/* Ensure centering if images are smaller than container */
.col-cardboard .col-content {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
}

.col-pallets-bottom .col-content {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  width: 100%;
  height: 100%;
}

/* --- Service Detail Screen Overlay --- */
.detail-screen-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background-color: #fffdf5;
  z-index: 2000;
  display: none;
  /* Hidden by default */
  flex-direction: column;
  overflow-y: auto;
  font-family: "Oswald", sans-serif;
  padding-top: 130px;
  /* Space for site header */
  padding-bottom: 60px;
  /* Space for site footer */
}

.detail-screen-overlay.active {
  display: flex;
}

/* Category Nav Row */
.detail-tabs-row {
  display: flex;
  border-bottom: 1px solid #dddfc4;
  background: #eef0e2;
  /* Light secondary background for tabs */
}

.tab-col-left {
  width: 320px;
  border-right: 1px solid #dddfc4;
}

.tab-col-tabs {
  flex: 1;
  display: flex;
}

.category-btn {
  flex: 1;
  padding: 24px;
  border: none;
  border-right: 1px solid #dddfc4;
  background: transparent;
  cursor: pointer;
  font-size: 24px;
  color: #526831;
  text-transform: uppercase;
  transition: all 0.3s ease;
  text-align: center;
  font-family: "Oswald", sans-serif;
}

.category-btn:last-child {
  border-right: none;
}

.category-btn.active {
  background: #d4d8c1;
  font-weight: 500;
}

/* Sub-Header Row */
.detail-subheader-row {
  display: flex;
  border-bottom: 1px solid #dddfc4;
}

.subheader-col-left {
  width: 320px;
  border-right: 1px solid #dddfc4;
}

.subheader-col-right {
  flex: 1;
  padding: 40px 64px;
}

.subheader-content {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.subheader-text {
  max-width: 70%;
}

.subheader-text .service-title {
  font-size: 32px;
  color: #526831;
  margin-bottom: 10px;
}

.subheader-text .service-summary {
  font-size: 18px;
  color: #444;
  line-height: 1.4;
  font-family: "Mukta", sans-serif;
}

.subheader-action .btn-detail-quote {
  width: 220px;
  height: 48px;
  background: #526831;
  color: #fff;
  border: none;
  font-size: 18px;
  text-transform: uppercase;
  cursor: pointer;
  font-family: "Oswald", sans-serif;
}

/* Back Button */
.btn-back {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  cursor: pointer;
  color: #526831;
  padding: 30px;
}

.btn-back .back-text {
  font-size: 18px;
  text-transform: uppercase;
  margin-top: 10px;
}

/* Body Row */
.detail-body-row {
  display: flex;
  flex: 1;
  min-height: 0;
}

.body-col-sidebar {
  width: 320px;
  border-right: 1px solid #dddfc4;
  display: flex;
  flex-direction: column;
}

.body-col-content {
  flex: 1;
  padding: 64px;
  border-right: 1px solid #dddfc4;
}

.body-col-image {
  width: 50%;
  /* Adjusted for balance */
  padding: 64px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.service-list-wrapper {
  flex: 1;
  overflow-y: auto;
}

.sidebar-service-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.sidebar-service-list li {
  border-bottom: 1px solid #dddfc4;
  padding: 30px 40px;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 5px;
  transition: all 0.3s ease;
}

.sidebar-service-list li .item-number {
  font-size: 28px;
  color: #aaae6c;
  /* Subtle olive */
}

.sidebar-service-list li .item-name {
  font-size: 14px;
  color: #526831;
  text-transform: uppercase;
}

.sidebar-service-list li.active {
  background: #526831;
}

.sidebar-service-list li.active .item-number,
.sidebar-service-list li.active .item-name {
  color: #fff;
}

/* Item Content */
.item-content .item-title {
  font-size: 36px;
  color: #526831;
  margin-bottom: 30px;
  text-transform: capitalize;
}

.item-content .item-description {
  font-size: 20px;
  color: #444;
  line-height: 1.6;
  max-width: 550px;
  font-family: "Mukta", sans-serif;
}

/* Image Frame */
.detail-image-frame {
  width: 100%;
  height: 100%;
  max-height: 600px;
  overflow: hidden;
}

.detail-image-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Footer Nav (Global Overrides) */
.detail-footer-navigate {
  display: none;
  /* We use the site footer instead now */
}

/* Transitions */
.detail-screen-overlay {
  transition: opacity 0.5s ease;
}

/* Responsive detail screen */
@media (max-width: 1100px) {
  .detail-body-row {
    flex-direction: column;
  }

  .body-col-sidebar {
    width: 100%;
    border-right: none;
    border-bottom: 1px solid #dddfc4;
  }

  .service-list-wrapper {
    display: flex;
    overflow-x: auto;
  }

  .sidebar-service-list {
    display: flex;
  }

  .sidebar-service-list li {
    width: 250px;
    flex-shrink: 0;
    border-bottom: none;
    border-right: 1px solid #dddfc4;
  }

  .body-col-image {
    width: 100%;
  }

  .tab-col-left,
  .subheader-col-left {
    display: none;
  }
}

/* --- About Us Section (Horizontal Scroll) --- */
.about-section {
  width: 100%;
  overflow: hidden;
  background-color: #fffdf5;
  position: relative;
  z-index: 10;
}

.about-wrapper {
  display: flex;
  flex-wrap: nowrap;
  width: 400vw;
  /* 4 panels * 100vw */
  height: 100vh;
}

.about-panel {
  width: 100vw;
  height: 100vh;
  flex-shrink: 0;
  box-sizing: border-box;
  padding: 120px 0 100px 0;
  border-right: 1px solid #dddfc4;
  position: relative;
  display: flex;
  justify-content: center;
}

/* Custom Panel 1 Layout */
.panel-1.about-panel {
  padding: 0;
  display: block;
}

.about-sub-section-1 {
  position: relative;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
}

.about-row-1 {
  height: 168px;
  width: 100%;
}

.about-row-2 {
  height: 280px;
  display: flex;
  width: 100%;
}

.about-row-2 .col-30 {
  width: 30%;
  border-bottom: 1px solid #dddfc4;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding: 85px 172px 85px 146px;
  box-sizing: border-box;
}

.about-row-2 .col-70 {
  width: 70%;
  border-top: 1px solid #dddfc4;
  border-left: 1px solid #dddfc4;
  padding: 80px 64px;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: end;
}

.about-row-main-3 {
  width: 100%;
  position: relative;
  display: flex;
  flex-direction: column;
}

.about-row-3-gap {
  height: 222px;
  width: 100%;
}

.about-row-3-content {
  border-top: 1px solid #dddfc4;
  padding: 80px 64px;
  width: 100%;
  box-sizing: border-box;
}

.about-sub-section-1 .sub-label {
  text-align: left;
}

.text-rt {
  text-align: right !important;
}

.about-sub-section-1 .desc-text {
  text-align: left;
  margin-left: 0;
}

.about-floating-box {
  position: absolute;
  right: 0;
  top: 0;
  width: 696px;
  height: 592px;
  padding-right: 64px;
  padding-bottom: 84px;
  box-sizing: border-box;
  z-index: 5;
  pointer-events: none;
  background: #fffdf5;
}

.about-floating-box img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.about-panel:last-child {
  border-right: none;
}

/* Background Grid Lines */
.about-panel::before {
  content: "";
  position: absolute;
  top: 0;
  left: 15%;
  width: 1px;
  height: 100%;
  background-color: #dddfc4;
  z-index: 1;
  display: none;
}

.panel-inner {
  display: flex;
  width: calc(100% - 128px);
  height: 100%;
  gap: 80px;
  position: relative;
  z-index: 2;
}

.panel-left {
  flex: 0 0 150px;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}

.vertical-title {
  text-transform: uppercase;
  white-space: nowrap;
  color: #526831;
  font-family: Oswald;
  font-size: 48px;
  font-style: normal;
  font-weight: 400;
  line-height: 60px;
  /* 125% */
}

.panel-right {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-right: 64px;
}

/* Panel 1 specific styles */
.content-header,
.content-footer {
  max-width: 600px;
  margin-left: auto;
}

.sub-label {
  display: block;
  font-family: "Oswald", sans-serif;
  font-size: 24px;
  font-weight: 500;
  color: #526831;
  margin-bottom: 10px;
  text-align: right;
}

.desc-text {
  color: #526831;
  text-align: right;
  font-family: Oswald;
  font-size: 18px;
  font-style: normal;
  font-weight: 300;
  line-height: 26px;
}

.panel-image-full {
  width: 100%;
  height: 450px;
  overflow: hidden;
  margin: 40px 0;
  border: none;
}

.panel-image-full img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Panel 2: New 2-Column Layout & Scroll Animation */
.panel-2.about-panel {
  padding: 0;
  display: block;
  overflow: hidden;
}

.panel-2-cols {
  display: flex;
  width: 100%;
  height: 100%;
}

.p2-col-1 {
  width: 150px;
  height: 100%;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
}

.p2-row-1 {
  height: 168px;
  width: 100%;
  border-bottom: 1px solid #dddfc4;
}

.p2-row-2 {
  flex-grow: 1;
  border-right: 1px solid #dddfc4;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

.p2-vertical-title {
  transform: rotate(-90deg);
  white-space: nowrap;
  color: #526831;
  font-family: "Oswald", sans-serif;
  font-size: 48px;
  font-weight: 400;
  text-transform: uppercase;
  position: absolute;
  left: -128px;
  z-index: 99;
  background: #fff;
  padding: 0px 25px;
}

.p2-col-2 {
  flex-grow: 1;
  height: 100%;
  position: relative;
  background: #fffdf5;
}

.p2-animation-wrapper {
  position: relative;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-around;
  padding-left: 20%;
  /* Optional side padding */
}

/* Container for images (Left) */
.p2-images-container {
  position: relative;
  width: 472px;
  height: 340px;
}

/* Individual Image Items */
.p2-image-item {
  position: absolute;
  top: 0;
  left: 0;
  width: 472px;
  height: 340px;
  opacity: 0;
  transform: scale(0.9);
  transition: none;
  /* Controlled by GSAP */
}

.p2-image-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Container for content (Right) */
.p2-content-container {
  position: relative;
  margin-left: 0px;
  /* Increased gap to match design */
  width: 400px;
  height: 100%;
}

.p2-content-item {
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  opacity: 0;
  width: 314px;
  text-align: center;
  display: flex;
  gap: 50px;
  flex-direction: column;
}

.p2-item-year {
  font-family: "Oswald", sans-serif;
  font-size: 60px;
  font-weight: 400;
  color: #526831;
  line-height: 1;
  margin: 0 0 10px 0;
}

.p2-item-desc {
  font-family: "Oswald", sans-serif;
  font-size: 24px;
  color: #526831;
  margin: 0;
  text-transform: uppercase;
}

/* Initial States for Animation (Clean vertical stack) */
.p2-image-item {
  opacity: 0;
  transform: none;
}

.p2-content-item {
  opacity: 0;
  transform: translateY(-50%);
}

/* Item 1 is active by default */
.p2-image-item.img-1 {
  opacity: 1;
}

.p2-content-item.content-1 {
  opacity: 1;
}

/* Panel 3: Certified Excellence */
.panel-3.about-panel {
  padding: 0;
  display: block;
}

.p3-inner {
  display: flex;
  flex-direction: column;
  height: 100%;
  width: 100%;
  padding-left: 64px;
}

.p3-row-1 {
  display: flex;
  height: 450px;
  width: 100%;
}

.p3-col-1 {
  width: 600px;
  height: 100%;
  border-right: 1px solid #dddfc4;
  border-bottom: 1px solid #dddfc4;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
}

.p3-section-title {
  font-family: "Oswald", sans-serif;
  font-size: 48px;
  font-weight: 400;
  color: #526831;
  text-transform: uppercase;
  text-align: center;
  line-height: 60px;
}

.p3-col-2 {
  flex-grow: 1;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;

  /* Matching the first col's bottom border for consistency */
}

.p3-counter {
  font-family: "Oswald", sans-serif;
  font-size: 84px;
  font-weight: 500;
  color: #526831;
}

.p3-row-2 {
  flex-grow: 1;
  border-left: 1px solid #dddfc4;
  border-right: 1px solid #dddfc4;
  padding: 55px 110px 55px 55px;
  position: relative;
  overflow: hidden;
}

.p3-cards-container {
  width: 100%;
  height: 100%;
  position: relative;
  display: flex;
  align-items: center;
  overflow: hidden;
  /* Ensure cards don't visible outside container */
}

.p3-card {
  position: absolute;
  width: 423px;
  height: 510px;
  left: 0;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  /* Resetting base */
}

.p3-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p3-card-overlay {
  position: absolute;
  bottom: 0px;
  left: 0px;
  right: 0px;
  background: rgba(13, 22, 0, 0.4);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  padding: 31px 25px;
  color: #fff;
}

.p3-card-title {
  font-family: "Oswald", sans-serif;
  font-size: 22px;
  margin: 0 0 10px 0;
  text-transform: uppercase;
}

.p3-card-text {
  font-family: Oswald;
  font-size: 15px;
  margin: 0;
  line-height: 1.4;
  font-weight: 300;
}

/* Panel 4 specific styles */
.team-grid {
  display: flex;
  flex-direction: column;
  gap: 60px;
}

.team-top {
  display: flex;
  gap: 60px;
  align-items: center;
}

.team-intro {
  flex: 1;
  font-family: "Oswald", sans-serif;
  font-size: 15px;
  color: #666;
  line-height: 1.6;
  max-width: 400px;
}

.team-member {
  display: flex;
  gap: 25px;
  align-items: center;
}

.team-member img {
  width: 150px;
  height: 150px;
  object-fit: cover;
  border: 5px solid #fff;
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
}

.member-info h4 {
  margin: 0;
  font-family: "Oswald", sans-serif;
  font-size: 20px;
  color: #526831;
  text-transform: uppercase;
}

.member-info span {
  font-family: "Oswald", sans-serif;
  font-size: 13px;
  color: #999;
}

.team-bottom {
  display: flex;
  gap: 60px;
  align-items: flex-start;
}

.team-text {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.team-text p {
  font-family: "Oswald", sans-serif;
  font-size: 15px;
  color: #666;
  line-height: 1.6;
  max-width: 450px;
}

.team-member.small img {
  width: 100px;
  height: 100px;
}

.team-member-portrait {
  flex: 0 0 450px;
  position: relative;
}

.team-member-portrait img {
  width: 100%;
  height: 500px;
  object-fit: cover;
  box-shadow: 0 30px 60px rgba(0, 0, 0, 0.2);
}

.member-quote {
  position: absolute;
  bottom: -30px;
  left: -50px;
  background: #fff;
  padding: 35px;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.15);
  max-width: 300px;
  z-index: 10;
}

.member-quote p {
  font-family: "Oswald", sans-serif;
  font-size: 14px;
  color: #444;
  margin-bottom: 20px;
  line-height: 1.6;
}

.quote-author {
  font-family: "Oswald", sans-serif;
  font-size: 15px;
  color: #526831;
  text-transform: uppercase;
  font-weight: 500;
}

@media (max-width: 1200px) {
  .panel-inner {
    width: calc(100% - 40px);
    gap: 40px;
  }

  .vertical-title {
    font-size: 64px;
  }

  .panel-right {
    padding-right: 0;
  }
}

/* --- Testimonials Section --- */
.testimonials-section {
  width: 100%;
  background-color: #fffdf5;
  position: relative;
  z-index: 10;
}

.testimonials-grid {
  display: flex;
  width: 100%;
  border-top: 1px solid #dddfc4;
}

.testi-col {
  display: flex;
  flex-direction: column;
  border-right: 1px solid #dddfc4;
}

.testi-col:last-child {
  border-right: none;
}

.testi-col-left,
.testi-col-right {
  flex: 0 0 30%;
}

.testi-col-center {
  flex: 0 0 40%;
}

.testi-cell {
  padding: 64px;
  border-bottom: 1px solid #dddfc4;
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex-grow: 1;
}

.testi-cell:last-child {
  border-bottom: none;
}

.testi-header-cell {
  text-align: center;
  align-items: center;
  padding: 80px 64px;
  background-color: transparent;
}

/* Typography */
.testi-title {
  font-family: "Oswald", sans-serif;
  font-size: 72px;
  font-weight: 500;
  color: #526831;
  text-transform: uppercase;
  margin: 0 0 40px 0;
  line-height: 1.1;
  max-width: 500px;
}

.testi-btn {
  display: inline-block;
  padding: 18px 36px;
  background-color: #526831;
  color: #fff;
  font-family: "Oswald", sans-serif;
  font-size: 16px;
  font-weight: 500;
  text-transform: uppercase;
  text-decoration: none;
  transition: all 0.3s ease;
  border: none;
  cursor: pointer;
}

.testi-btn:hover {
  background-color: #3e4f25;
  transform: translateY(-2px);
}

.testi-rating-line {
  margin-top: 60px;
  display: flex;
  justify-content: space-between;
  width: 100%;
  max-width: 400px;
  font-family: "Oswald", sans-serif;
  font-size: 20px;
  color: #526831;
  border-top: 1px solid #dddfc4;
  padding-top: 20px;
}

/* Cards */
.testi-card {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.testi-quote {
  font-family: "Oswald", sans-serif;
  font-size: 20px;
  font-weight: 500;
  color: #526831;
  margin-bottom: 20px;
}

.testi-text {
  font-family: "Oswald", sans-serif;
  font-size: 14px;
  color: #666;
  line-height: 1.6;
  margin-bottom: 30px;
}

.testi-footer {
  margin-top: auto;
}

.testi-author {
  display: block;
  font-family: "Oswald", sans-serif;
  font-size: 13px;
  color: #526831;
  text-transform: uppercase;
  line-height: 1.4;
  margin-bottom: 15px;
}

.testi-stars {
  display: flex;
  gap: 6px;
}

.t-star {
  width: 10px;
  height: 10px;
  border: 1px solid #526831;
  background-color: transparent;
}

.t-star.filled {
  background-color: #526831;
}

/* Highlight Cards (Center Col) */
.testi-col-center .testi-card.highlight {
  background-color: #f9f9f4;
  padding: 64px 48px;
  text-align: center;
}

.testi-col-center .testi-cell {
  padding: 32px;
}

.testi-col-center .testi-header-cell {
  padding: 80px 48px;
}

.testi-rating-line .r-value {
  font-weight: 700;
  font-size: 24px;
}

/* Responsiveness */
@media (max-width: 1200px) {
  .testi-title {
    font-size: 48px;
  }

  .testi-col {
    flex: 0 0 100%;
    border-right: none;
    border-bottom: 1px solid #dddfc4;
  }

  .testimonials-grid {
    flex-direction: column;
  }

  .testi-col-center {
    order: -1;
  }

  .testi-col-center .testi-card.highlight {
    padding: 40px 20px;
  }
}

/* --- FAQ Section --- */
.faq-section {
  width: 100%;
  background-color: #fffdf5;
  position: relative;
  z-index: 10;
  border-top: 1px solid #dddfc4;
  padding-bottom: 40px;
}

.faq-grid {
  display: flex;
  width: 100%;
}

.faq-illustration-col {
  flex: 0 0 30%;
  border-right: 1px solid #dddfc4;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 100px 64px;
  position: relative;
}

/* Background Grid Lines for FAQ */
.faq-illustration-col::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: #dddfc4;
}

.faq-content-col {
  flex: 0 0 70%;
  padding: 100px 0 0;
}

.faq-section-title {
  font-family: "Oswald", sans-serif;
  font-size: 72px;
  font-weight: 500;
  color: #526831;
  text-transform: uppercase;
  margin: 0 0 80px 100px;
  line-height: 1;
}

.faq-accordion {
  width: 100%;
  border-top: 1px solid #dddfc4;
}

.faq-item {
  border-bottom: 1px solid #dddfc4;
  padding-left: 100px;
}

.faq-question {
  width: 100%;
  display: flex;
  align-items: center;
  padding: 40px 64px 40px 0;
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
  transition: all 0.3s ease;
}

.faq-number {
  font-family: "Oswald", sans-serif;
  font-size: 16px;
  font-weight: 500;
  color: #526831;
  margin-right: 80px;
  flex: 0 0 40px;
}

.faq-title {
  font-family: "Oswald", sans-serif;
  font-size: 28px;
  font-weight: 500;
  color: #526831;
  flex-grow: 1;
}

.faq-toggle {
  font-family: "Oswald", sans-serif;
  font-size: 32px;
  color: #526831;
  transition: transform 0.3s ease;
}

.faq-item.active .faq-toggle {
  transform: rotate(45deg);
}

.faq-answer {
  max-height: 0;
  overflow: hidden;
  transition:
    max-height 0.4s ease-out,
    padding 0.4s ease;
  padding-right: 64px;
}

.faq-item.active .faq-answer {
  max-height: 500px;
  padding-bottom: 40px;
}

.faq-answer p {
  font-family: "Oswald", sans-serif;
  font-size: 16px;
  color: #666;
  line-height: 1.6;
  margin-left: 120px;
  /* Aligned with title */
}

/* Illustration Image */
.illustration-container {
  position: relative;
  z-index: 2;
  max-width: 400px;
}

.illustration-container img {
  width: 100%;
  height: auto;
  display: block;
}

/* Responsiveness */
@media (max-width: 1200px) {
  .faq-grid {
    flex-direction: column;
  }

  .faq-illustration-col {
    flex: 0 0 100%;
    border-right: none;
    border-bottom: 1px solid #dddfc4;
    padding: 64px;
  }

  .faq-content-col {
    flex: 0 0 100%;
    padding: 64px 0;
  }

  .faq-section-title {
    font-size: 48px;
    margin: 0 0 40px 40px;
  }

  .faq-item {
    padding-left: 40px;
  }

  .faq-number {
    margin-right: 40px;
  }

  .faq-title {
    font-size: 20px;
  }
}

/* --- Contact Us Section --- */
.contact-section {
  width: 100%;
  background-color: #fffdf5;
  position: relative;
  z-index: 10;
  /* border-top: 1px solid #dddfc4; */
  font-family: "Oswald", sans-serif;
  padding-top: 40px;
}

.contact-grid {
  width: 100%;
}

/* Row 1: Sidebar + Form */
.contact-row-1 {
  display: flex;
  /* border-bottom: 1px solid #dddfc4; */
}

.contact-sidebar {
  flex: 0 0 456px;
  padding: 0 64px 0;
  border-right: 1px solid #dddfc4;
  border-bottom: 1px solid #dddfc4;
  display: flex;
  flex-direction: column;
  gap: 48px;
}

.contact-sidebar-title {
  font-size: 24px;
  color: #526831;
  text-transform: capitalize;
  margin-bottom: 0px;
  font-weight: 400;
}

.sidebar-item {
  margin-bottom: 0px;
}

.sidebar-label {
  display: block;
  font-size: 14px;
  color: #526831;
  margin-bottom: 5px;
}

.sidebar-value {
  display: block;
  font-size: 18px;
  color: #526831;
  text-decoration: none;
  line-height: 1.4;
  font-weight: 500;
}

.contact-form-container {
  flex: 1;
  padding: 0px 64px 0px;
  position: relative;
  margin-top: -21px;
}

.contact-form-title {
  position: relative;
  font-size: 30px;
  color: #526831;
  text-transform: capitalize;
  font-weight: 500;
  letter-spacing: 0;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 12px;
  margin-bottom: 50px;
}
.contact-form-title::before {
  content: "";
  position: relative;
  right: 64px;
  flex: 1;
  height: 1px;
  border-bottom: 1px solid #dddfc4;
  margin-right: -64px;
}
.main-contact-form {
  width: 100%;
}

.form-note {
  font-size: 12px;
  color: #526831;
  margin-bottom: 20px;
  display: flex;
  align-items: center;
  gap: 5px;
}

.form-note::before {
  content: "+";
  font-size: 16px;
}

.form-row,
.form-row-group {
  margin-bottom: 40px;
}

.form-row-group {
  display: flex;
  gap: 20px;
}

.main-contact-form input,
.main-contact-form textarea {
  width: 100%;
  padding: 11px 12px;
  background: #f9f9f4;
  border: none;
  border-bottom: 1px solid #dddfc4;
  font-family: "Oswald", sans-serif;
  font-size: 20px;
  color: #526831;
  font-weight: 400;
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
  line-height: 100%;
}

.main-contact-form input::placeholder,
.main-contact-form textarea::placeholder {
  color: #aaae6c;
}

.contact-submit-btn {
  width: 100%;
  padding: 15px;
  background-color: #526831;
  color: #fff;
  border: none;
  font-family: "Oswald", sans-serif;
  font-size: 16px;
  text-transform: uppercase;
  cursor: pointer;
  transition: all 0.3s;
  margin-top: 0px;
}

.contact-submit-btn:hover {
  background-color: #3e4f25;
}

/* Row 2: Address Section */
.contact-row-2 {
  padding: 0;
}

.address-header {
  padding: 80px 64px 40px 64px;
}

.address-title {
  font-size: 48px;
  color: #526831;
  text-transform: uppercase;
  font-weight: 400;
  margin: 0;
  margin-bottom: 24px;
  display: flex;
  position: relative;
  align-items: center;
  gap: 21px;
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
  line-height: 100%;
  letter-spacing: normal;
}
.address-title::after {
  content: "";
  position: relative;
  left: 64px;
  flex: 1;
  height: 1px;
  border-bottom: 1px solid #526831;
  margin-left: -64px;
}

.address-map-area {
  display: flex;
  min-height: 420px;
  padding-inline: 64px;
  gap: 50px;
}

.address-text-side {
  flex: 0 0 25%;
  padding: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.address-text-side h3 {
  font-size: 32px;
  color: #aaae6c;
  font-weight: 400;
  margin-bottom: 40px;
  max-width: 300px;
  line-height: 1.2;
}

.big-location {
  display: flex;
  flex-direction: column;
  gap: 10px;
  justify-content: space-between;
  height: stretch;
  align-items: center;
}

.loc-unit {
  font-size: 64px;
  color: #526831;
  font-weight: 500;
  line-height: 1;
}

.loc-dock {
  font-size: 40px;
  color: rgba(170, 174, 108, 0.73);
  font-weight: 400;
  text-align: center;
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
  padding-inline: 30px;
  line-height: 100%;
  padding-bottom: 20px;
}
.loc-dock.active {
  color: #526831;
  font-weight: 500;
}
.address-image-side {
  flex: 1;
  position: relative;
  height: 420px;
}

.address-image-side img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.address-overlay-card {
  position: absolute;
  bottom: 40px;
  right: 40px;
  background: #ffffffc4;
  padding: 24px 29px;
  background: rgba(255, 255, 255, 0.77);
  backdrop-filter: blur(2px);
  min-width: 342px;
}

.overlay-card-content {
  position: relative;
}

.overlay-card-content p {
  margin: 0;
  font-size: 24px;
  color: #526831;
  font-weight: 400;
  line-height: normal;
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
}

.map-marker-icon {
  position: absolute;
  bottom: 0;
  right: 0;
}

.address-footer {
  padding: 40px 64px 0px;
  display: flex;
  justify-content: flex-end;
  position: relative;
  align-items: center;
  gap: 21px;
  padding-bottom: 150px;
}

.address-footer::before {
  content: "";
  position: relative;
  right: 64px;
  flex: 1;
  height: 1px;
  border-bottom: 1px solid #526831;
  margin-right: -64px;
}
.btn-get-direction {
  padding: 13px 36px;
  background-color: #526831;
  color: #fff;
  text-decoration: none;
  font-size: 16px;
  text-transform: capitalize;
  transition: background 0.3s;
  width: 220px;
  height: 40px;
  text-box-trim: trim-both;
  text-box-edge: cap alphabetic;
  text-align: center;
}

.btn-get-direction:hover {
  background-color: #3e4f25;
}

/* --- Quote Popup Styles --- */
.quote-popup {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 5000;
  display: none;
  align-items: center;
  justify-content: center;
  font-family: "Oswald", sans-serif;
}

.quote-popup.open {
  display: flex;
}

.popup-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(13, 22, 0, 0.85);
  backdrop-filter: blur(5px);
}

.popup-content {
  position: relative;
  background: #fffdf5;
  width: 90%;
  max-width: 500px;
  padding: 60px 40px;
  box-shadow: 0 30px 60px rgba(0, 0, 0, 0.3);
  z-index: 10;
}

.popup-close {
  position: absolute;
  top: 20px;
  right: 20px;
  background: none;
  border: none;
  font-size: 32px;
  color: #526831;
  cursor: pointer;
}

.popup-header {
  text-align: center;
  margin-bottom: 40px;
}

.popup-header h2 {
  font-size: 36px;
  color: #526831;
  margin-bottom: 10px;
  text-transform: uppercase;
}

.popup-header p {
  color: #666;
  font-size: 14px;
}

.quote-form .form-group {
  margin-bottom: 15px;
}

.quote-form input,
.quote-form textarea {
  width: 100%;
  padding: 12px 15px;
  background: #f9f9f4;
  border: 1px solid #dddfc4;
  font-family: inherit;
  font-size: 16px;
  color: #526831;
}

.quote-form .btn-submit {
  width: 100%;
  padding: 15px;
  background: #526831;
  color: #fff;
  border: none;
  font-size: 16px;
  text-transform: uppercase;
  cursor: pointer;
  margin-top: 10px;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.footer-section {
  background: #faf8ef;
  display: flex;
  align-items: center;
  position: relative;
  overflow: hidden;
  padding-bottom: 52px;
}

.footer-container {
  width: 100%;
  margin: auto;
  padding: 81px 64px;
  position: relative;
}

.footer-container::before {
  content: "";
  position: absolute;
  left: 0;
  top: 46px;
  width: 65px;
  height: calc(100% - 46px);
  border-top: 1px solid #526831;
  border-right: 1px solid #526831;
}

/* Heading */
.footer-heading {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 48px;
  padding-left: 168px;
}

.footer-heading h2 {
  white-space: nowrap;
  color: #526831;
  text-align: right;
  text-box-trim: trim-both;
  text-box-edge: cap alphabetic;
  font-family: Oswald;
  font-size: 30px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
}

.footer-heading span {
  flex: 1;
  height: 1px;
  background: #526831;
  /* opacity: 0.4; */
}

/* Content Area */
.footer-content {
  display: grid;
  grid-template-columns: 25px 1fr 1fr auto;
  gap: 72px;
  align-items: flex-start;
  padding-left: 72px;
}
/* Scroll Up */
.scroll-up {
  display: flex;
  justify-content: center;
}

.scroll-up span {
  writing-mode: vertical-lr;
  text-transform: lowercase;
  border: 1px solid #526831;
  padding: 13px 7px;
  color: #526831;
  text-align: center;
  text-box-trim: trim-both;
  text-box-edge: cap alphabetic;
  font-size: 12px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  letter-spacing: 6px;
}

/* Links */
.footer-links {
  display: flex;
  flex-direction: column;
  gap: 35px;
  margin-top: 7px;
}

.footer-links a {
  width: fit-content;
  transition: 0.3s;
  color: #526831;
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
  font-family: Oswald;
  font-size: 20px;
  font-style: normal;
  font-weight: 400;
  line-height: 100%;
  text-decoration-line: underline;
  text-decoration-style: solid;
  text-decoration-skip-ink: auto;
  text-decoration-thickness: 1px;
  text-underline-offset: auto;
  text-underline-position: from-font;
  transition: all 0.3s;
}

.footer-links a:hover {
  opacity: 0.7;
}

/* Contact */
.footer-contact h4 {
  margin-bottom: 37px;
  color: #526831;
  font-family: Oswald;
  font-size: 20px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
}

.footer-contact p {
  color: #526831;
  font-family: Oswald;
  font-size: 18px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
  margin-bottom: 16px;
}

/* Button */
.footer-btn {
  display: flex;
  justify-content: flex-end;
}

.footer-btn a {
  background: #66763d;
  text-decoration: none;
  padding: 13px 36px;
  transition: 0.3s;
  width: 220px;
  height: 40px;
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
  color: #fff;
  text-align: center;
  font-family: Oswald;
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}

.footer-btn a:hover {
  transform: translateY(-2px);
}

/* Bottom */
.footer-bottom {
  padding-left: 168px;
  margin-top: 100px;
  display: grid;
  grid-template-columns: repeat(4, auto);
  align-items: center;
  justify-content: space-between;
  color: #66763d;
  font-size: 18px;
}

.privacy-wrap {
  display: flex;
  align-items: center;
  gap: 12px;
}

.privacy-wrap .line {
  width: 231px;
  height: 1px;
  background: #526831;
}
.copyright,
.designed-by,
.designed-by a,
.cookies-policy,
.cookies-policy a,
.privacy-wrap,
.privacy-wrap a {
  color: #526831;
  text-align: right;
  font-family: Oswald;
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
  text-decoration: none;
  transition: all 0.3s;
}
.designed-by a:hover,
.cookies-policy a:hover,
.privacy-wrap a:hover {
  opacity: 0.7;
}
/* Responsive */
@media (max-width: 1000px) {
  .contact-row-1 {
    flex-direction: column;
  }

  .contact-sidebar {
    flex: 0 0 100%;
    border-right: none;
    border-bottom: 1px solid #dddfc4;
    padding: 40px;
  }

  .contact-form-container {
    padding: 40px;
  }

  .contact-form-title {
    position: relative;
    top: 0;
    right: 0;
    margin-bottom: 30px;
    font-size: 32px;
  }

  .address-map-area {
    flex-direction: column;
  }

  .address-text-side {
    width: 100%;
    padding: 40px;
  }

  .address-image-side {
    height: 300px;
  }

  .address-title {
    font-size: 40px;
  }

  .address-overlay-card {
    bottom: 20px;
    right: 20px;
    padding: 20px;
    min-width: auto;
  }
}

/* Responsive */
@media (max-width: 991px) {
  .footer-container {
    padding: 50px 30px;
  }

  .footer-content {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .scroll-up {
    display: none;
  }

  .footer-bottom {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .footer-heading h2 {
    font-size: 28px;
  }

  .footer-links a,
  .footer-contact p {
    font-size: 18px;
  }
}
