/* ==========================================================================
   1. VARIABLES & BASE THEME
   ========================================================================== */
   :root {
      --vyan-dark-green: #114a31;
      --vyan-light-green: #7cb342;
      --bg-cream: #f4efe6;
      --bg-black: #050505;
      --bg-charcoal: #111;
      --text-dark: #2c2c2c;
      --text-light: #e0e0e0;
      --text-gold: #b8860b;
      --font-main: 'Rubik', sans-serif;
      --transition: all .4s ease;
  }
  
  * {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
  }
  
  html {
      scroll-behavior: smooth;
      background-color: var(--bg-cream);
  }
  
  body {
      font-family: var(--font-main);
      color: var(--text-dark);
      overflow-x: hidden;
      -webkit-font-smoothing: antialiased;
  }
  
  h1, h2, h3, h4 {
      font-family: var(--font-main);
      font-weight: 700;
      line-height: 1.2;
  }
  
  a {
      text-decoration: none;
      transition: var(--transition);
  }
  
  ul {
      list-style: none;
  }
  
  /* ==========================================================================
     2. GLOBAL COMPONENTS (Logo, Nav, Layout)
     ========================================================================== */
  .floating-logo {
      position: fixed;
      top: 25px;
      left: 5%;
      z-index: 1000;
      width: 160px;
      padding: 12px 20px;
      border-radius: 8px;
      background: #fff !important;
      box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
      border: 1px solid rgba(0, 0, 0, 0.05);
      transition: var(--transition);
      transform-origin: left top;
  }
  
  .floating-logo.scrolled {
      top: 15px;
      transform: scale(0.85);
      box-shadow: 0 6px 20px rgba(0, 0, 0, 0.2);
  }
  
  .side-nav {
      position: fixed;
      left: 30px;
      top: 50%;
      transform: translateY(-50%);
      z-index: 1000;
      display: flex;
      flex-direction: column;
      gap: 20px;
  }
  
  .side-nav li a {
      display: block;
      width: 10px;
      height: 10px;
      border-radius: 50%;
      background-color: rgba(0, 0, 0, 0.2);
      transition: var(--transition);
  }
  
  .side-nav li a:hover, .side-nav li a.active {
      background-color: var(--vyan-dark-green);
      transform: scale(1.5);
  }
  
  section {
      position: relative;
      min-height: 100vh;
      display: flex;
      align-items: center;
      padding: 100px 5% 100px 100px;
      overflow: hidden;
  }
  
  .content-wrapper {
      position: relative;
      z-index: 2;
      max-width: 1300px;
      width: 100%;
      margin: 0 auto;
  }
  
  /* Animation utilities */
  .reveal {
      opacity: 0;
      transform: translateY(30px);
      transition: .8s cubic-bezier(0.16, 1, 0.3, 1);
  }
  
  .reveal.active {
      opacity: 1;
      transform: translateY(0);
  }
  
  .delay-1 { transition-delay: .15s; }
  .delay-2 { transition-delay: .3s; }
  
  /* ==========================================================================
     3. HERO SECTION
     ========================================================================== */
  #hero {
      background-image: linear-gradient(to right, rgba(0, 0, 0, 0.85) 0, rgba(0, 0, 0, 0.5) 50%, rgba(0, 0, 0, 0.1) 100%), url('images/img_Hero.png');
      background-attachment: fixed;
      background-position: center right;
      background-repeat: no-repeat;
      background-size: cover;
      display: flex;
      justify-content: flex-start;
      align-items: center;
      text-align: left;
      padding: 0 5% 0 100px;
  }
  
  .hero-content-left { max-width: 650px; color: #fff; padding-top: 50px; }
  
  .hero-content-left h1 { font-size: 2.2rem; letter-spacing: 1px; margin-bottom: 10px; font-weight: 500; }
  
  .hero-content-left h1 span {
      display: block;
      font-size: 4rem;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: 1px;
      color: var(--text-gold);
      margin-bottom: 25px;
      text-shadow: 2px 4px 10px rgba(0, 0, 0, 0.3);
      line-height: 1.1;
  }
  
  .gold-ribbon {
      background-color: var(--text-gold);
      color: #FFF;
      display: inline-block;
      padding: 10px 25px;
      font-weight: 600;
      font-size: 1.1rem;
      letter-spacing: 1px;
      border-radius: 4px;
      margin-bottom: 25px;
      box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
      text-transform: uppercase;
  }
  
  .hero-content-left p.desc { font-size: 1.25rem; line-height: 1.6; margin-bottom: 40px; font-weight: 400; color: #f4efe6; }
  
  .hero-usps { display: flex; justify-content: flex-start; gap: 25px; flex-wrap: wrap; }
  
  .usp-item {
      text-align: center;
      font-size: .9rem;
      font-weight: 500;
      color: #fff;
      display: flex;
      flex-direction: column;
      align-items: center;
      width: 100px;
  }
  
  .usp-item svg { width: 35px; height: 35px; margin-bottom: 10px; stroke: var(--text-gold); fill: none; stroke-width: 1.5; }
  
  /* ==========================================================================
     4. PRODUCTS SECTION
     ========================================================================== */
  #products { background-color: var(--bg-charcoal); padding-top: 120px; padding-bottom: 120px; color: #FFF; }
  
  .product-container { display: flex; flex-direction: column; gap: 12vh; }
  
  .product-panel { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
  
  .product-panel:nth-child(even) { grid-template-columns: 1fr 1fr; direction: rtl; }
  .product-panel:nth-child(even) > * { direction: ltr; }
  
  .panel-text h2 { font-size: 2.5rem; margin-bottom: 20px; color: var(--text-gold); }
  .panel-text p { font-size: 1.15rem; line-height: 1.7; color: rgba(255, 255, 255, 0.85); margin-bottom: 15px; }
  
  .shadow-box {
      position: relative;
      aspect-ratio: 4/3;
      border-radius: 12px;
      overflow: hidden;
      box-shadow: 0 20px 50px rgba(0, 0, 0, 0.5);
      border: 1px solid rgba(255, 255, 255, 0.05);
  }
  
  .shadow-box img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center;
      transition: transform 1.2s ease;
  }
  
  .shadow-box:hover img { transform: scale(1.08); }
  
  /* ==========================================================================
     5. REGISTRATION FORM
     ========================================================================== */
  #register { background-color: var(--vyan-dark-green); color: #FFF; }
  
  .reg-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 60px; align-items: center; }
  
  .reg-info h2 { font-size: 3rem; margin-bottom: 20px; line-height: 1.2; }
  
  .reg-info p { font-size: 1.2rem; color: rgba(255, 255, 255, 0.9); margin-bottom: 30px; line-height: 1.6; }
  
  .address-highlight { border-left: 3px solid var(--text-gold); padding-left: 20px; margin-top: 30px; }
  
  .address-highlight span { display: block; color: var(--text-gold); font-size: 1.1rem; margin-bottom: 8px; font-weight: 600; }
  
  .narrative-form {
      background: rgba(255, 255, 255, 0.08);
      border: 1px solid rgba(255, 255, 255, 0.15);
      padding: 40px;
      border-radius: 16px;
      position: relative;
      min-height: 350px;
      display: flex;
      flex-direction: column;
      justify-content: center;
      backdrop-filter: blur(15px);
      -webkit-backdrop-filter: blur(15px);
      box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(255, 255, 255, 0.05) inset;
  }
  
  .progress-bar { position: absolute; top: 0; left: 0; height: 4px; background: var(--text-gold); width: 0; transition: width .5s ease; border-radius: 12px 0 0 0; }
  
  .form-step { display: none; animation: fadeIn .5s ease forwards; }
  .form-step.active { display: block; }
  
  @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
  
  .form-step label { display: block; font-size: 1.3rem; font-weight: 500; margin-bottom: 20px; line-height: 1.4; }
  
  .form-step input {
      width: 100%;
      background: transparent;
      border: 0;
      border-bottom: 2px solid rgba(255, 255, 255, 0.3);
      padding: 15px 0;
      color: #FFF;
      font-size: 1.2rem;
      font-family: var(--font-main);
      margin-bottom: 35px;
      outline: 0;
      min-height: 50px;
  }
  
  .form-step input:focus { border-bottom-color: var(--text-gold); }
  
  .form-btn {
      background: var(--text-gold);
      color: var(--bg-black);
      border: 0;
      font-weight: 700;
      padding: 16px 30px;
      font-size: 1.1rem;
      cursor: pointer;
      border-radius: 6px;
      transition: var(--transition);
      letter-spacing: 1px;
      width: 100%;
      max-width: 250px;
  }
  
  .form-btn:hover { background: #e5b93d; transform: translateY(-2px); }
  
  /* ==========================================================================
     6. FORM UTILITIES (Validation, Chips, Type-Ahead)
     ========================================================================== */
  .success-state { display: none; text-align: center; }
  .success-state.active { display: block; }
  
  .error-text { color: #ff4d4d; font-size: .9rem; margin-top: -25px; margin-bottom: 20px; display: none; font-weight: 500; }
  .error-text.visible { display: block; }
  
  .typeahead-wrapper { position: relative; width: 100%; }
  
  .typeahead-list {
      position: absolute;
      top: 100%;
      left: 0;
      width: 100%;
      max-height: 200px;
      overflow-y: auto;
      background: #1a1a1a;
      border: 1px solid rgba(255, 255, 255, 0.2);
      border-radius: 0 0 8px 8px;
      z-index: 100;
      display: none;
      list-style: none;
      padding: 0;
      margin: -35px 0 35px 0;
      box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
  }
  
  .typeahead-list.visible { display: block; }
  
  .typeahead-list li {
      padding: 12px 15px;
      color: #FFF;
      cursor: pointer;
      font-size: 1.1rem;
      border-bottom: 1px solid rgba(255, 255, 255, 0.05);
      transition: background .2s ease;
  }
  
  .typeahead-list li:hover { background: var(--vyan-dark-green); color: var(--text-gold); }
  
  .typeahead-list::-webkit-scrollbar { width: 6px; }
  .typeahead-list::-webkit-scrollbar-track { background: #111; }
  .typeahead-list::-webkit-scrollbar-thumb { background: var(--text-gold); border-radius: 10px; }
  
  .chip-group { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 30px; }
  
  .chip {
      padding: 12px 20px;
      border: 1px solid rgba(255, 255, 255, 0.3);
      border-radius: 30px;
      color: #FFF;
      font-size: 1.1rem;
      cursor: pointer;
      transition: var(--transition);
      user-select: none;
      -webkit-tap-highlight-color: transparent;
  }
  
  .chip:hover { border-color: var(--text-gold); }
  .chip.selected { background: var(--text-gold); color: var(--bg-black); border-color: var(--text-gold); font-weight: 600; }
  
  .scroll-hint {
      margin-top: 40px;
      text-align: center;
      color: rgba(255, 255, 255, 0.7);
      cursor: pointer;
      font-size: .9rem;
      animation: bounce 2s infinite;
  }
  .scroll-hint a { color: var(--text-gold); font-weight: 700; text-decoration: underline; }
  
  @keyframes bounce { 0%, 20%, 50%, 80%, 100% { transform: translateY(0); } 40% { transform: translateY(-10px); } 60% { transform: translateY(-5px); } }
  
  /* ==========================================================================
     7. B2B ENQUIRIES SECTION
     ========================================================================== */
  #b2b-enquiries {
      background-color: var(--bg-cream);
      padding: 100px 5%;
      display: flex;
      justify-content: center;
      align-items: center;
      text-align: center;
      color: var(--text-dark);
  }
  
  .b2b-content { max-width: 800px; margin: 0 auto; }
  
  .b2b-icon {
      width: 100px;
      margin: 0 auto 20px auto;
      color: var(--text-gold);
      display: block;
  }
  
  .b2b-icon svg { width: 100%; height: auto; display: block; }
  
  .b2b-content h2 { font-size: 3rem; margin-bottom: 25px; color: var(--vyan-dark-green); }
  
  .b2b-content p { font-size: 1.3rem; margin-bottom: 40px; line-height: 1.6; opacity: .9; }
  
  .contact-card {
      display: flex;
      justify-content: center;
      gap: 20px;
      flex-wrap: wrap;
      margin-top: 30px;
  }
  
  .cta-btn {
      padding: 18px 24px;
      border-radius: 8px;
      font-weight: 700;
      font-size: 1rem;
      transition: var(--transition);
      text-decoration: none;
      text-align: center;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      line-height: 1 !important;
      margin: 0;
      box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
      border: 0;
      cursor: pointer;
  }
  
  .whatsapp-btn { background-color: #25d366 !important; color: #fff !important; }
  .call-btn { background-color: #114a31 !important; color: #fff !important; }
  .email-btn { background-color: #b8860b !important; color: #000 !important; }
  
  .whatsapp-btn:hover { background-color: #1ebd5d; transform: translateY(-3px); }
  .call-btn:hover { background-color: #0c3825; transform: translateY(-3px); }
  .email-btn:hover { background-color: #d4a017; transform: translateY(-3px); }
  
  /* ==========================================================================
     8. RESPONSIVE MEDIA QUERIES
     ========================================================================== */
  @media(max-width: 1024px) {
      #hero { padding: 0 5% 0 80px; }
      .hero-content-left h1 span { font-size: 3.2rem; }
      section { padding: 80px 5% 80px 60px; }
      .product-panel, .product-panel:nth-child(even) { grid-template-columns: 1fr; direction: ltr; gap: 40px; }
      .reg-grid { grid-template-columns: 1fr; gap: 50px; }
  }
  
  @media(max-width: 768px) {
      .side-nav { display: none; }
      #hero {
          padding: 120px 5% 60px 5%;
          background-attachment: scroll;
          background-position: right center;
          background-image: linear-gradient(rgba(0, 0, 0, 0.85), rgba(0, 0, 0, 0.7)), url('images/img_Hero.png');
          align-items: flex-start;
      }
      section { padding: 80px 5%; }
      .floating-logo {
          position: fixed;
          top: 15px;
          left: 50%;
          transform: translateX(-50%) !important;
          width: 140px;
      }
      .floating-logo.scrolled { top: 10px; }
      .hero-content-left { max-width: 100%; text-align: left; padding-top: 20px; }
      .hero-content-left h1 { font-size: 1.8rem; }
      .hero-content-left h1 span { font-size: 2.6rem; }
      .hero-content-left p.desc { font-size: 1.1rem; }
      .hero-usps { gap: 15px; justify-content: flex-start; }
      .usp-item { width: calc(33% - 15px); font-size: .85rem; align-items: flex-start; text-align: left; }
      .usp-item svg { width: 30px; height: 30px; margin-bottom: 5px; }
      .panel-text h2, .reg-info h2 { font-size: 2rem; }
      .panel-text p, .reg-info p { font-size: 1rem; }
      .narrative-form { padding: 30px 20px; }
      .form-step label { font-size: 1.2rem; }
      .form-btn { max-width: 100%; }
  }
  
  @media(max-width: 600px) {
      .contact-card { flex-direction: column; align-items: center; gap: 15px; }
      .cta-btn { width: 100%; max-width: 340px; }
  }