/* 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: 13px 4px;
  /* 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: 15px;
  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: 100%;
  min-height: 100vh;
  margin-left: auto;
  margin-right: auto;
  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: 160px;
  /* "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;
}
.service-card:hover .card-default {
  transform: rotateY(-180deg);
}
.service-card:hover .card-hover {
  transform: rotateY(0deg);
}
/* 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;
}

/* --- 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;
}

/* (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;
  }
}

/* --- Pallets & Packaging Solutions Section --- */
.pallets-section {
  background-color: #fffdf5;
  width: 100%;
  position: relative;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}
.pallets-section .shipping-row-1 {
  border-bottom: 1px solid #dddfc4;
  height: 160px;
}

/*
   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%;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1.35fr 1.5fr;
  /* grid-template-rows: 1fr 1fr 1fr; */
  height: 100%;
  width: 100%;
  border-bottom: 1px solid #dddfc4;
  padding-inline: 64px;
}

/* 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 2;
  border-right: 1px solid #dddfc4;
  padding: 40px 40px 40px 0;
  display: flex;
  flex-direction: column;
}

.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 / span 1;
  grid-row: 1 / span 1;
  display: flex;
  justify-content: center;
  gap: 8px;
  align-self: stretch;
  flex-direction: column;
  margin-bottom: 0 !important;
}

.menu-card .col-title {
  margin-bottom: 1rem !important;
}

.menu-card .card-content {
  padding: 11px 30px;
}

.menu-card .menu-links a {
  transition: all 0.2s;
}

.col-title .title-wrapper {
  padding: 85px 48px 120px 48px;
  border-bottom: 1px solid #dddfc4;
}

.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 1;
  border-bottom: 1px solid #dddfc4;
  border-left: 1px solid #dddfc4;
  padding: 40px 0 40px 40px;
  position: relative;
  right: 0;
  z-index: 999;
  background: #fffdf5;
}

/* --- Bottom Area: Pallets --- */
.col-pallets-bottom {
  grid-column: 2 / span 2;
  grid-row: 2 / span 1;
  padding: 40px 130px 40px 130px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-right: 1px solid #dddfc4;
}

/* 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: "Oswald", 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: "Oswald", 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 {
  object-fit: cover;
  max-width: 100%;
  max-height: 863px !important;
}

.title-wrapper-arrow {
  padding-block: 25px 73px;
}

.title-wrapper-arrow .section-heading {
  color: #526831;
  text-align: right;
  text-box-trim: trim-both;
  text-box-edge: cap alphabetic;
  font-size: 12px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  display: flex;
  column-gap: 10px;
  align-items: center;
  text-transform: none;
  text-decoration: none;
}

.arrow-icon {
  display: flex;
  width: 62px;
  height: 62px;
  padding: 19px;
  align-items: center;
  gap: 8px;
  border-radius: 31px;
  border: 2px solid #526831;
  background: rgba(82, 104, 49, 0.12);
}

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

/* Bottom Pallets is col-pallets-bottom */
.col-pallets-bottom .bg-img {
  height: 316px;
  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: 28px;
  color: #526831;
  margin-bottom: 24px;
  font-family: "Oswald", sans-serif;
  font-weight: 400;
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
}

.subheader-text .service-summary {
  font-size: 20px;
  color: #526831;
  line-height: 1.4;
  font-family: "Oswald", sans-serif;
  font-weight: 300;
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
}

.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: 24px;
  color: #526831;
  margin-bottom: 48px;
  text-transform: capitalize;
  font-family: "Oswald", sans-serif;
  font-weight: 400;
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
}

.item-content .item-description {
  font-size: 18px;
  color: #526831;
  line-height: 1.6;
  max-width: 550px;
  font-family: "Oswald", sans-serif;
  font-weight: 300;
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
}

/* 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;
}

/* --- 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: 160px 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: 50px;
  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 75px 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: 75px;
  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;
  padding: 70px 78px;
  border-right: 1px solid #dddfc4;
}

.panel-left::before {
  content: "";
  position: absolute;
  right: 0;
  width: calc(100% + 64px);
  height: 1px;
  border-bottom: 1px solid #dddfc4;
  bottom: -2px;
}

.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;
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
  /* 125% */
}

.panel-right {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  padding-right: 0;
}

.team-topconte {
  display: flex;
}

.team-textbox {
  padding: 48px 64px 0 32px;
  border-top: 1px solid #dddfc4;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

/* 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: 35px;
  text-align: right;
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
}

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

.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: 285px;
  width: 100%;
}

.p3-col-1 {
  width: 40%;
  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;
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
}

.p3-col-2 {
  flex-grow: 1;
  height: 100%;
  display: flex;
  align-items: end;
  justify-content: center;
  position: relative;
  padding-bottom: 24px;

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

.p3-col-2::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -60%;
  width: 50%;
  height: 60%;
  border-top: 1px solid #dddfc4;
  border-left: 1px solid #dddfc4;
}

.p3-counter {
  font-family: "Oswald", sans-serif;
  font-size: 60px;
  font-weight: 400;
  color: #526831;
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
}

.p3-row-2 {
  flex-grow: 1;
  border-left: 1px solid #dddfc4;
  border-right: 1px solid #dddfc4;
  padding: 57px 110px 57px 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: 100%;
  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: 19px;
  left: 20px;
  right: 0px;
  width: calc(100% - 40px);
  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: 24px;
  margin: 0 0 40px 0;
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
  font-weight: 400;
}

.p3-card-text {
  font-family: Oswald;
  font-size: 18px;
  margin: 0;
  line-height: 1.4;
  font-weight: 300;
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
}

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

.team-bottom .team-member img {
  width: 458px;
  height: 316px;
}

.team-top {
  display: flex;
  gap: 0px;
  align-items: flex-start;
  width: 100%;
}

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

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

.team-member img {
  width: 303px;
  height: 378px;
  object-fit: cover;
}

.member-info h4 {
  margin: 0;
  font-family: "Oswald", sans-serif;
  font-size: 16px;
  font-weight: 300;
  color: #526831;
}

.member-info span {
  font-family: "Oswald", sans-serif;
  font-size: 16px;
  font-weight: 300;
  color: #526831;
}

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

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

.team-bottom .team-text {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 40px;
  width: 436px;
  height: 356px;
  padding: 48px 64px 40px 32px;
  justify-content: space-between;
  position: relative;
  align-items: flex-start;
  max-width: 458px;
}

.team-bottom .team-text::before {
  content: "";
  position: absolute;
  width: calc(100% + 64px);
  right: 0;
  top: 0;
  border-top: 1px solid #dddfc4;
}

.team-text p {
  font-family: "Oswald", sans-serif;
  font-size: 18px;
  font-weight: 300;
  color: #526831;
  line-height: 1.6;
}

.team-member.small {
  margin-left: auto;
}

.member-info {
  margin-left: auto;
  text-align: right;
  width: 100%;
}

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

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

.team-member-portrait img {
  width: 100%;
  height: 500px;
  object-fit: cover;
}

.member-quote {
  position: relative;
  bottom: 0;
  left: 0;
  max-width: 304px;
  z-index: 10;
  margin-top: 27px;
}

.member-quote p {
  font-family: "Oswald", sans-serif;
  font-size: 18px;
  color: #526831;
  margin-bottom: 44px;
  line-height: 1.6;
  font-weight: 300;
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
}

.quote-author {
  font-family: "Oswald", sans-serif;
  font-size: 16px;
  color: #526831;
  font-weight: 300;
  text-align: right;
  width: 100%;
  display: block;
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
}

.team-member-portrait::before {
  content: "";
  position: absolute;
  top: 40%;
  left: -70px;
  width: 70px;
  height: 90%;
  border-left: 1px solid #dddfc4;
  border-top: 1px solid #dddfc4;
}

.team-member-portrait::after {
  content: "";
  position: absolute;
  top: 7%;
  left: -95%;
  width: 95%;
  height: 1px;
  border-bottom: 1px solid #dddfc4;
  z-index: -1;
}

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

@media (min-width: 992px) {
  .testimonials-section {
    padding-top: 166px;
  }
}

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

@media (min-width: 992px) {
  .testimonials-grid {
    height: 100vh;
    position: relative;
  }
}

.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%;
  position: relative;
}

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

.testi-cell {
  padding: 36px 24px;
  border-bottom: 1px solid #dddfc4;
  display: flex;
  flex-direction: column;
  justify-content: center;
  box-sizing: border-box;
}

/* On desktop, scrollable tracks have fixed cell height */
@media (min-width: 992px) {
  .testi-col-left .testi-cell,
  .testi-col-right .testi-cell {
    height: 430px;
  }

  .testi-col-left .testi-cell,
  .testi-col-right .testi-cell {
    transition: opacity 0.6s ease;
    opacity: 0.5;
  }

  .testi-col-left .testi-cell.active,
  .testi-col-right .testi-cell.active {
    opacity: 1;
  }
}

.testi-header-cell {
  text-align: center;
  align-items: center;
  padding: 36px 40px;
  background-color: transparent;
  box-sizing: border-box;
}

@media (min-width: 992px) {
  .testi-header-cell {
    /* height: 320px; */
    justify-content: center;
  }

  .testi-col-center .testi-cell {
    /* height: 244px; */
    box-sizing: border-box;
  }
}

/* Typography */
.testi-title {
  font-family: "Oswald", sans-serif;
  font-size: 48px;
  font-weight: 400;
  color: #526831;
  text-transform: uppercase;
  margin: 0 0 40px 0;
  line-height: 1.1;
  letter-spacing: 0;
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
}

.testi-btn {
  display: inline-block;
  padding: 14px 36px;
  background-color: #526831;
  color: #fff;
  font-family: "Oswald", sans-serif;
  font-size: 16px;
  font-weight: 400;
  text-transform: capitalize;
  text-decoration: none;
  transition: all 0.3s ease;
  border: none;
  cursor: pointer;
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
}

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

.testi-rating-line {
  margin-top: 40px;
  display: flex;
  justify-content: space-between;
  width: 100%;
  font-family: "Oswald", sans-serif;
  font-size: 16px;
  color: #526831;
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
}
.testi-rating-line span {
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
}

/* Cards */
.testi-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  width: 100%;
  background-color: #f9f9f4;
  padding: 52px 36px;
  box-sizing: border-box;
  text-align: left;
}

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

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

.testi-footer {
  margin-top: auto;
  display: flex;
  flex-direction: column;
  gap: 15px;
}

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

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

.t-star {
  width: 12px;
  height: 12px;
  display: inline-block;
  background-color: #dddfc4;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 10px 10px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath d='M3.96272 6.04167L1.51363 7.53758L2.1795 4.74608L0 2.8791L2.86064 2.64976L3.96272 0L5.06485 2.64976L7.92548 2.8791L5.74598 4.74608L6.41185 7.53758L3.96272 6.04167Z' fill='white'/%3E%3C/svg%3E");
  transition: background-color 0.3s ease;
}

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

/* Desktop Scroll Viewport & Divider Borders */
@media (min-width: 992px) {
  .testi-scroll-window {
    position: absolute;
    inset: 0;
    overflow: hidden;
    width: 100%;
    height: 100%;
  }

  .testi-scroll-track {
    display: flex;
    flex-direction: column;
    width: 100%;
    transform: translateY(0);
    will-change: transform;
  }

  /* Segmented Vertical Pagination Scrollbar */
  .testi-pagination {
    position: absolute;
    right: -24px;
    top: 36px;
    bottom: 36px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 12px;
    z-index: 10;
    pointer-events: none;
  }

  .testi-pag-segment {
    width: 4px;
    flex-grow: 1;
    background-color: #dddfc4;
    transition: background-color 0.4s ease;
  }

  .testi-pag-segment.filled {
    background-color: #526831;
  }
}

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

.col-cardboard::after {
  content: "";
  position: absolute;
  right: -64px;
  bottom: -1px;
  border-bottom: 1px solid #dddfc4;
  height: 1px;
  width: 64px;
}

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

.faq-illustration-col {
  flex: 0 0 30%;
  display: flex;
  flex-direction: row;
  padding: 0;
  position: relative;
  min-height: calc(100vh - 200px);
}

.faq-inner-col {
  height: 100%;
  flex: 1;
  position: relative;
}

.faq-inner-col.left-col {
  border-top: 1px solid #dddfc4;
  border-right: 1px solid #dddfc4;
}

.faq-bottom-stick-box {
  position: absolute;
  left: 0;
  bottom: 0;
  height: 275px;
  width: 102px;
  border-top: 1px solid #dddfc4;
  border-right: 1px solid #dddfc4;
}

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

.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-section-title.desktop-only-section {
  margin: 160px 0 80px 64px;
}

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

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

.faq-question {
  width: 100%;
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  padding: 24px 32px;
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
  transition: all 0.3s ease;
  gap: 30px;
}

.faq-number {
  font-family: "Oswald", sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: normal;
  color: #526831;
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
}

.faq-title {
  font-family: "Oswald", sans-serif;
  font-size: 20px;
  font-weight: 400;
  color: #526831;
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
}

.faq-toggle {
  font-family: "Oswald", sans-serif;
  font-size: 32px;
  color: #526831;
  transition: transform 0.3s ease;
  align-self: flex-end;
  position: absolute;
  line-height: 100%;
  font-weight: 300;
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
}

.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-inline: 32px;
}

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

.faq-answer p {
  font-family: "Oswald", sans-serif;
  font-size: 16px;
  color: #526831;
  line-height: 1.6;
  margin-left: 0;
  font-weight: 300;
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
}

/* Illustration Image */
.illustration-container {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 5;
  width: 241px;
  height: 210px;
  background: #fffdf5;
  display: flex;
  align-items: center;
  justify-content: center;
}

.illustration-container img {
  width: 241px;
  height: 210px;
  display: block;
  object-fit: contain;
}

/* --- 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: 160px;
}

.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%;
  outline: none;
}

.main-contact-form input,
.main-contact-form textarea {
  border-bottom-color: #526831;
}

.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;
  cursor: pointer;
  transition: all 0.3s;
  margin-top: 0px;
  font-weight: 400;
}

.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-slides-window {
  position: relative;
  overflow: hidden;
  height: 510px;
  width: 100%;
}

.address-slides-wrapper {
  position: relative;
  width: 100%;
  height: 510px;
}

.address-slide-card {
  position: absolute;
  inset: 0;
  display: flex;
  min-height: 510px;
  height: 510px;
  padding-inline: 64px;
  gap: 50px;
  box-sizing: border-box;
  align-items: center;
  justify-content: space-between;
}

/* Optional content animation */
.overlay-card-content p {
  transition:
    opacity 0.3s ease,
    transform 0.3s ease;
}

.content-changing {
  opacity: 0;
  transform: translateY(15px);
}

.address-slide-left {
  flex: 0 0 35%;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.address-slide-left .big-location {
  display: flex;
  flex-direction: column;
  gap: 30px;
  justify-content: center;
  align-items: flex-start;
  width: 100%;
}

.address-slide-left .loc-item {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 15px;
  position: relative;
  width: 100%;
  transition: all 0.4s ease;
}

.address-slide-left .loc-dock {
  font-size: 32px;
  color: rgba(170, 174, 108, 0.45);
  font-weight: 400;
  text-align: left;
  line-height: 1.2;
  padding: 0;
  transition: all 0.4s ease;
  font-family: "Oswald", sans-serif;
}

.address-slide-left .loc-item.active .loc-dock {
  color: #526831;
  font-weight: 500;
  font-size: 40px;
}

/* Custom CSS teardrop pin badge */
.map-pin-badge {
  display: inline-flex;
  width: 22px;
  height: 22px;
  background-color: #526831;
  border-radius: 50% 50% 50% 0;
  transform: rotate(-45deg);
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-bottom: 8px;
}

.map-pin-badge::after {
  content: "S";
  color: #fff;
  font-weight: bold;
  font-size: 10px;
  background-color: #f77f00;
  width: 13px;
  height: 13px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  transform: rotate(45deg);
}

.address-slide-right {
  flex: 1;
  position: relative;
  height: 100%;
  display: flex;
  align-items: center;
}

.address-image-container {
  position: relative;
  width: 100%;
  height: 420px;
  border-radius: 4px;
  overflow: hidden;
}

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

.map-image-pin {
  position: absolute;
  display: inline-flex;
  width: 32px;
  height: 32px;
  background-color: #526831;
  border-radius: 50% 50% 50% 0;
  transform: rotate(-45deg);
  align-items: center;
  justify-content: center;
  z-index: 2;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.25);
  animation: pinPulse 2s infinite ease-in-out;
}

.map-image-pin::after {
  content: "S";
  color: #fff;
  font-weight: bold;
  font-size: 13px;
  background-color: #f77f00;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  transform: rotate(45deg);
}

@keyframes pinPulse {
  0% {
    transform: rotate(-45deg) scale(1);
  }

  50% {
    transform: rotate(-45deg) scale(1.1);
  }

  100% {
    transform: rotate(-45deg) scale(1);
  }
}

.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;
}

.address-scroll-section {
  position: relative;
  background-color: #fffdf5;
}

.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: 10000;
  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: 800px;
  padding: 40px;
  box-shadow: 0 30px 60px rgba(0, 0, 0, 0.3);
  z-index: 10;
  box-sizing: border-box;
}

/* Header box with Get Quote and Close Button */
.popup-header-box {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border: 1px solid #dddfc4;
  height: 52px;
  margin-bottom: 30px;
  box-sizing: border-box;
}

.popup-title-text {
  font-family: "Oswald", sans-serif;
  font-size: 24px;
  color: #526831;
  text-transform: uppercase;
  font-weight: 500;
  padding: 0 20px;
  border-right: 1px solid #dddfc4;
  height: 100%;
  display: flex;
  align-items: center;
}

.popup-close-box {
  background: #526831;
  color: #fff;
  border: none;
  width: 52px;
  height: 100%;
  font-size: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.3s;
  padding: 0;
  box-sizing: border-box;
}

.popup-close-box:hover {
  background: #3e4f25;
}

/* Form Styles */
.quote-form {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.form-row-1col {
  width: 100%;
}

.form-row-2col {
  display: flex;
  gap: 20px;
  width: 100%;
}

.quote-form .form-group {
  flex: 1;
}

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

.quote-form input::placeholder,
.quote-form textarea::placeholder {
  color: #aaae6c;
  opacity: 0.8;
}

/* Service Selection styling */
.service-selection-container {
  display: flex;
  gap: 20px;
  width: 100%;
  margin-block: 10px;
  box-sizing: border-box;
}

.service-selection-title {
  flex: 0 0 160px;
  font-size: 20px;
  color: #526831;
  text-transform: uppercase;
  font-weight: 500;
  display: flex;
  align-items: flex-start;
  padding-top: 5px;
}

.service-selection-groups {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.service-group {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.service-group-label {
  font-size: 11px;
  color: #aaae6c;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  font-weight: 500;
}

.radio-options-row {
  display: flex;
  flex-wrap: wrap;
  gap: 15px 25px;
}

.radio-label {
  font-size: 13px;
  color: #526831;
  cursor: pointer;
  display: flex;
  align-items: center;
  user-select: none;
}

.radio-label input[type="radio"] {
  display: none;
}

.custom-radio {
  width: 14px;
  height: 14px;
  border: 1px solid #526831;
  border-radius: 50%;
  display: inline-block;
  position: relative;
  margin-right: 6px;
  box-sizing: border-box;
}

.radio-label input[type="radio"]:checked + .custom-radio::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 6px;
  height: 6px;
  background-color: #526831;
  border-radius: 50%;
}

/* Submit Button Row */
.form-submit-row {
  display: flex;
  justify-content: center;
  width: 100%;
}

.btn-submit-quote {
  width: 220px;
  padding: 13px 36px;
  background: #526831;
  color: #fff;
  border: none;
  font-family: inherit;
  font-size: 16px;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.3s;
  text-align: center;
}

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

* {
  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;
}
.scroll-up span a {
  text-decoration: none;
  color: #526831;
}
/* 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;
}

/* Visibility helpers for desktop/mobile responsive isolation */
.mobile-only-section {
  display: none !important;
}

.map-pin-badge {
  display: none;
}

.menu-card h3.col-title a {
  color: #526831;
  leading-trim: both;
  text-edge: cap;
  font-family: Oswald;
  font-size: 30px;
  font-style: normal;
  font-weight: 600;
  line-height: normal;
  text-decoration: none;
}

.card-content:hover h3.col-title a {
  color: #fff;
}
