/* ===================================================================
   Elite Legal - elite-legal.css v4 (Complete & Corrected)
   Applying Flex Layout Fix for Initial Width Glitch
   =================================================================== */

/*--------------------------------------------------------------
# Variables & Global Styles
--------------------------------------------------------------*/
:root {
  /* Colors - Refined Elite Palette */
  --color-primary: #0A192F;     /* Deep Navy */
  --color-primary-rgb: 10, 25, 47;
  --color-secondary: #334155;    /* Slate Gray */
  --color-accent: #87CEEB;       /* Sky Blue - Softer Accent */
  --color-accent-hover: #64B5F6;   /* Brighter blue for hover */
  --color-accent-rgb: 135, 206, 235;
  --color-background-light: #F8F9FA; /* Slightly off-white, common BS light */
  --color-background-dark: var(--color-primary);
  --color-text-light: #E2E8F0;     /* Light Gray for text on dark */
  --color-text-dark: #1E293B;      /* Darker Gray for text on light */
  --color-text-muted: #64748B;     /* Muted gray */
  --color-border: rgba(226, 232, 240, 0.8); /* Slightly more visible border */
  --color-white: #ffffff;
  --color-black: #000000;
  --color-danger: #dc3545; /* Bootstrap danger color */

  /* Typography */
  --font-primary: "Merriweather", serif;
  --font-secondary: "Inter", sans-serif;

  /* Spacing & Layout */
  --section-padding-y-lg: 100px;
  --section-padding-y-md: 80px;
  --border-radius-sm: 0.3rem;
  --border-radius-md: 0.5rem;
  --container-max-width: 1140px;

  /* Effects */
  --box-shadow-soft: 0 6px 20px rgba(0, 0, 0, 0.05);
  --box-shadow-lifted: 0 12px 30px rgba(0, 0, 0, 0.08);
  --transition-smooth: all 0.3s ease-in-out;
}

/* Base */
*, *::before, *::after { box-sizing: border-box; }
html {
  scroll-padding-top: 80px; /* Adjust based on final fixed header height */
  scroll-behavior: smooth;
}
/* Ensure no extra margin/padding causing overflow */
html, body {
    margin: 0;
    padding: 0;
    width: 100%;
    overflow-x: hidden; /* Prevent horizontal scroll */
}
body {
  font-family: var(--font-secondary);
  color: var(--color-text-dark);
  background-color: var(--color-background-light);
  font-size: 16px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  /* overflow-x: hidden; defined above */
}

/* Links */
a { color: var(--color-accent); text-decoration: none; transition: var(--transition-smooth); }
a:hover { color: var(--color-accent-hover); text-decoration: none; }

/* Headings */
h1, h2, h3, h4, h5, h6 { font-family: var(--font-primary); color: var(--color-primary); font-weight: 700; margin-top: 0; margin-bottom: 1rem; line-height: 1.3; }
h1 { font-size: clamp(2.2rem, 1.8rem + 2vw, 3.6rem); }
h2 { font-size: clamp(1.8rem, 1.5rem + 1.5vw, 2.8rem); }
h3 { font-size: clamp(1.4rem, 1.2rem + 1vw, 2rem); }
h4 { font-size: clamp(1.1rem, 1rem + 0.5vw, 1.5rem); }

/* Paragraphs & Text */
p { margin-top: 0; margin-bottom: 1.25rem; color: var(--color-secondary); font-size: 1rem; }
@media (min-width: 768px) { p { font-size: 1.05rem; } }
strong { font-weight: 600; color: var(--color-primary); }
.text-light { color: var(--color-text-light) !important; }
.text-light-secondary { color: var(--color-text-light) !important; opacity: 0.8; }
.text-light-accent { color: var(--color-accent) !important; }
.text-danger { color: var(--color-danger) !important; }

/* Selection Highlight */
::selection { background: rgba(var(--color-accent-rgb), 0.3); color: var(--color-primary); }

/* Global Padding & Container */
.section-padding-elite { padding: var(--section-padding-y-md) 0; }
@media (min-width: 992px) { .section-padding-elite { padding: var(--section-padding-y-lg) 0; } }
.container, .container-fluid, .container-lg, .container-md, .container-sm, .container-xl, .container-xxl {
    max-width: var(--container-max-width);
    width: 100%; /* Ensure container takes width */
    padding-right: var(--bs-gutter-x, 0.75rem); /* Standard BS padding */
    padding-left: var(--bs-gutter-x, 0.75rem);  /* Standard BS padding */
    margin-right: auto; /* Center container */
    margin-left: auto;  /* Center container */
}

/* Background Colors */
.bg-dark { background-color: var(--color-background-dark) !important; }
.bg-light { background-color: var(--color-background-light) !important; }

/* Buttons */
.btn {
    font-family: var(--font-secondary); font-weight: 600; font-size: 14px;
    letter-spacing: 0.5px; text-transform: uppercase; padding: 12px 30px;
    border-radius: 50px; transition: var(--transition-smooth); border-width: 2px;
    box-shadow: none; display: inline-block; line-height: 1.5;
    text-align: center; vertical-align: middle; cursor: pointer; user-select: none;
}
.btn:active { transform: translateY(1px); }

.btn-primary-elite {
    background-color: var(--color-accent); border-color: var(--color-accent);
    color: var(--color-primary);
}
.btn-primary-elite:hover {
    background-color: var(--color-accent-hover); border-color: var(--color-accent-hover);
    color: var(--color-primary); transform: translateY(-3px);
    box-shadow: var(--box-shadow-soft);
}

.btn-outline-elite-dark {
    color: #fff;
    border-color: #fff;
    background: transparent;
}

.btn-outline-elite {
    color: #2f4871;
    border-color: rgb(48 72 113);
    background: transparent;
}
.btn-outline-elite:hover {
    color: var(--color-primary); background-color: var(--color-white);
    border-color: var(--color-white); transform: translateY(-3px);
    box-shadow: 0 6px 15px rgba(255, 255, 255, 0.1);
}

.btn-outline-elite-dark:hover {
    color: var(--color-white); background-color: var(--color-primary);
    border-color: var(--color-primary); transform: translateY(-3px);
    box-shadow: 0 6px 15px rgba(var(--color-primary-rgb), 0.1);
}
.btn-sm { padding: 8px 20px; font-size: 13px; }

/*--------------------------------------------------------------
# Header (Site Header) - Elite
--------------------------------------------------------------*/
.site-header {
  padding: 15px 0; transition: background-color 0.3s ease-in-out, padding 0.3s ease-in-out, box-shadow 0.3s ease-in-out;
  background-color: transparent;
  z-index: 1030;
  border-bottom: 1px solid transparent;
  position: fixed; /* Ensure it's fixed */
  top: 0;
  left: 0;
  right: 0;
  width: 100%; /* Explicitly set width */
}
.site-header.header-scrolled {
  background-color: rgba(255, 255, 255, 0.98);
  backdrop-filter: blur(10px);
  box-shadow: var(--box-shadow-soft);
  padding: 10px 0;
  border-bottom: 1px solid var(--color-border);
}

/* Logo handling */
.site-header .logo img {
    max-height: 55px;
    transition: opacity 0.3s ease;
    width: auto;
    display: block; /* Ensure it's a block element */
}
.site-header .logo-dark { display: none; }
.site-header:not(.header-scrolled) .logo-light { display: block; }
.site-header:not(.header-scrolled) .logo-dark { display: none; }
.site-header.header-scrolled .logo-light { display: none; }
.site-header.header-scrolled .logo-dark { display: block; }

/* Navigation Base */
.site-header .navbar { padding: 0; }
.site-header .navbar-nav .nav-item { margin-left: 15px; }
@media (min-width: 992px) {
    /* Desktop Navigation Styles */
    .site-header .navbar {
        flex: 1 1 auto; /* Allow navbar to take space on desktop */
        justify-content: flex-end; /* Align nav items right */
    }
    .site-header .navbar-nav .nav-item { margin-left: 25px; }
    .navbar-collapse {
        flex-basis: auto; /* Override mobile */
        flex-grow: 0;     /* Override mobile */
    }
}

.site-header .nav-link-elite {
  font-family: var(--font-secondary); font-weight: 600; font-size: 15px;
  letter-spacing: 0.4px; padding: 10px 5px;
  position: relative; transition: var(--transition-smooth);
}
.site-header.header-scrolled .nav-link-elite { color: var(--color-secondary); } /* On scrolled light */

/* Underline effect */
.site-header .nav-link-elite::after {
  content: ''; position: absolute; width: 0; height: 2px;
  bottom: 5px; left: 5px;
  background-color: var(--color-accent);
  transition: width 0.3s ease-out;
}
.site-header.header-scrolled .nav-link-elite::after { background-color: var(--color-primary); }


.site-header.header-scrolled .nav-link-elite:hover,
.site-header.header-scrolled .nav-link-elite.active {
    color: var(--color-primary); /* Active/Hover on light bg */
}
.site-header .nav-link-elite:hover::after,
.site-header .nav-link-elite.active::after {
    width: calc(100% - 10px);
}

/* Navbar Toggler (Hamburger Icon) */
.site-header .navbar-toggler {
    border: none; padding: 0; width: 30px; height: 24px;
    position: relative; cursor: pointer; background: transparent;
    transition: var(--transition-smooth);
}
.site-header .navbar-toggler span {
    display: block; position: absolute; height: 2px; width: 100%;
    border-radius: 1px; opacity: 1; left: 0; transform: rotate(0deg);
    transition: .3s ease-in-out;
    background: var(--color-white); /* Default color */
}
.site-header.header-scrolled .navbar-toggler span { background: var(--color-primary); } /* Scrolled color */

/* Hamburger animation lines */
.site-header .navbar-toggler span:nth-child(1) { top: 0px; }
.site-header .navbar-toggler span:nth-child(2) { top: 10px; }
.site-header .navbar-toggler span:nth-child(3) { top: 20px; }

/* Hamburger to X animation */
.site-header .navbar-toggler:not(.collapsed) span:nth-child(1) { top: 10px; transform: rotate(45deg); }
.site-header .navbar-toggler:not(.collapsed) span:nth-child(2) { width: 0%; opacity: 0; }
.site-header .navbar-toggler:not(.collapsed) span:nth-child(3) { top: 10px; transform: rotate(-45deg); }

/*--------------------------------------------------------------
# Mobile Navigation Specific Styles (Crucial Fixes Here)
--------------------------------------------------------------*/
@media (max-width: 991.98px) {
  /* Force scrolled appearance on mobile immediately */
  .site-header {
      background-color: rgba(255, 255, 255, 0.98);
      backdrop-filter: blur(10px);
      box-shadow: var(--box-shadow-soft);
      padding: 10px 0;
      border-bottom: 1px solid var(--color-border);
  }
  .site-header .logo-light { display: none; }
  .site-header .logo-dark { display: block; }
  .site-header .navbar-toggler span { background: var(--color-primary); }

  /* Container setup for mobile header */
  .site-header .container {
      position: relative; /* Context for absolute menu */
      display: flex; /* Ensure flex is active */
      align-items: center; /* Vertical alignment */
      justify-content: flex-start !important; /* <<< CHANGE: Align items to start */
      /* Paddings are inherited from global .container */
  }

  /* Logo behavior in mobile header */
  .site-header .logo {
      flex-shrink: 0;      /* Prevent logo from shrinking */
      margin-right: auto;  /* Push the navbar to the right */
      z-index: 1051; /* Ensure logo is clickable above menu if overlap occurs */
      position: relative; /* Prevent potential overlap issues */
  }

  /* Navbar (nav element) behavior in mobile header */
  .site-header .navbar {
      position: static !important; /* Remove relative positioning context */
      flex-grow: 0 !important;     /* Do not allow navbar element to grow */
      flex-shrink: 0 !important;    /* Do not allow navbar element to shrink */
      width: auto;                 /* Width based on content (toggler) */
      min-width: 0;                /* Prevent flex overflow issues */
      padding: 0 !important;       /* Remove internal padding */
      /* justify-content is not needed as margin-right: auto on logo handles it */
  }

  /* Toggler button adjustments */
  .site-header .navbar-toggler {
      flex-shrink: 0; /* Prevent toggler from shrinking */
      margin-left: 15px; /* Add some space between pushed navbar and screen edge */
  }

  /* Styling the collapsed menu container */
  .navbar-collapse {
      position: absolute;
      top: calc(100% + 5px);    /* Position below the container's bottom edge */
      left: 0;
      right: 0;
      width: 100%;             /* Full width relative to the container */
      z-index: 1050 !important;  /* High z-index */
      background-color: var(--color-white) !important; /* Solid background */
      box-shadow: var(--box-shadow-lifted);
      padding: 10px 0;           /* Vertical padding */
      margin-top: 0;
      border-radius: var(--border-radius-sm);
      border: 1px solid var(--color-border);
      max-height: calc(100vh - 85px); /* Limit height */
      overflow-y: auto !important;      /* Allow scroll */
      visibility: visible !important;   /* Ensure visibility */
      opacity: 1 !important;            /* Ensure opacity */
      /* transition: all 0.3s ease; */ /* <<< TEMPORARILY COMMENTED for testing glitch */
      /* Reset flex properties that might interfere */
      flex-basis: auto !important;
      flex-grow: 0 !important;
      align-items: initial !important;
  }

  /* Ensure Bootstrap's default hiding mechanism isn't fighting */
  .navbar-collapse.collapse:not(.show) {
      display: none !important; /* Force hide when collapsed */
  }

  /* Styling the links inside mobile menu */
  .site-header .navbar-collapse .nav-link-elite {
      color: var(--color-secondary) !important;
      padding: 10px 25px; /* Adjusted padding to match container padding */
      display: block;
      text-align: left;
      width: 100%;
      border-bottom: 1px solid #eee;
      transition: background-color 0.2s ease, color 0.2s ease;
  }
  .site-header .navbar-collapse .nav-item:last-child .nav-link-elite {
      border-bottom: none;
  }
  .site-header .navbar-collapse .nav-link-elite:hover,
  .site-header .navbar-collapse .nav-link-elite.active {
      color: var(--color-primary) !important;
      background-color: rgba(var(--color-primary-rgb), 0.04);
  }

  /* Hide desktop underline on mobile */
  .site-header .nav-link-elite::after { display: none; }
  .site-header .navbar-nav .nav-item { margin-left: 0; } /* Remove desktop margin */

} /* End Mobile Styles */


/*--------------------------------------------------------------
# Hero Section - Elite
--------------------------------------------------------------*/
.hero-section-elite {
  width: 100%;
  min-height: 90vh;
  position: relative;
  color: var(--color-text-light);
  padding: 160px 0 100px 0;
  overflow: hidden;
  display: flex;
  align-items: center;
  z-index: 1;
  background: linear-gradient(rgba(var(--color-primary-rgb), 0.4), rgba(var(--color-primary-rgb), 0.9)),
              url('../images/hero-elite-bg.jpg') no-repeat center center; /* ** REEMPLAZA CON TU IMAGEN OPTIMIZADA ** */
  background-size: cover;
}
.hero-section-elite .container { position: relative; z-index: 2; }
.hero-section-elite h1 {
  margin: 0 0 15px 0;
  font-weight: 700;
  line-height: 1.2;
  color: var(--color-white);
  text-shadow: 1px 1px 4px rgba(0, 0, 0, 0.4);
}
.hero-section-elite h2 {
  color: var(--color-accent);
  font-size: clamp(1.2rem, 1rem + 1vw, 1.6rem);
  font-weight: 500;
  margin: 0 0 25px 0;
  font-family: var(--font-secondary);
  text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.2);
}
.hero-section-elite p {
  color: rgba(255, 255, 255, 0.9);
  max-width: 700px;
  margin: 0 auto 1.5rem auto;
  font-size: clamp(1rem, 0.9rem + 0.5vw, 1.15rem);
  line-height: 1.8;
}
.hero-section-elite .btn { margin-top: 1rem; }

@media (max-width: 767px) {
    .hero-section-elite { padding: 120px 0 60px 0; min-height: 80vh; text-align: center; }
    .hero-section-elite p { max-width: 90%; }
}

/*--------------------------------------------------------------
# Section Title - Elite
--------------------------------------------------------------*/
.section-title-elite { margin-bottom: 50px; }
.section-title-elite .subtitle {
    display: block; font-size: 13px; font-weight: 700;
    color: var(--color-accent); text-transform: uppercase;
    letter-spacing: 1.5px; margin-bottom: 8px;
}
.section-title-elite h2 {
    margin-bottom: 15px; position: relative; padding-bottom: 15px;
}
.section-title-elite h2::after {
    content: ''; position: absolute; display: block; width: 50px; height: 3px;
    background: var(--color-accent); bottom: 0; left: 0;
}
.section-title-elite.text-center h2::after { left: 50%; transform: translateX(-50%); }
.section-title-elite p {
    margin-top: 0; color: var(--color-text-muted);
    max-width: 650px; font-size: 1.05rem;
}
.section-title-elite.text-center p { margin-left: auto; margin-right: auto; }
.section-title-elite.text-light .subtitle { color: var(--color-accent); }
.section-title-elite.text-light h2 { color: var(--color-white); }
.section-title-elite.text-light p { color: var(--color-text-light); opacity: 0.8; }
.section-title-elite.text-light h2::after { background: var(--color-accent); }

/*--------------------------------------------------------------
# La Firma Section - Elite (Presentacion)
--------------------------------------------------------------*/
.firma-elite { background-color: var(--color-background-light); }
.firma-img-wrapper img {
    border-radius: var(--border-radius-md);
    transition: var(--transition-smooth);
    box-shadow: var(--box-shadow-soft);
    max-width: 100%;
    height: auto;
}
.firma-img-wrapper:hover img {
    box-shadow: var(--box-shadow-lifted);
    transform: scale(1.03);
}
.firma-content p { font-size: 1.05rem; color: var(--color-secondary); }

/*--------------------------------------------------------------
# Servicios Section - Elite
--------------------------------------------------------------*/
.servicios-elite { background: var(--color-background-dark); }
.section-subtitle-alt-elite {
    color: var(--color-white); font-family: var(--font-primary);
    font-size: clamp(1.5rem, 1.3rem + 1vw, 1.8rem);
    font-weight: 600; border-bottom: 2px solid var(--color-accent);
    padding-bottom: 10px; display: inline-block; margin-bottom: 1.5rem;
}

.service-box-elite {
    background-color: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.1);
    padding: 40px 30px; border-radius: var(--border-radius-md); text-align: center;
    transition: var(--transition-smooth); height: 100%;
    display: flex; flex-direction: column;
}
.service-box-elite .icon {
    width: 60px; height: 60px; margin: 0 auto 25px auto; border-radius: 50%;
    background-color: rgba(var(--color-accent-rgb), 0.1);
    display: flex; align-items: center; justify-content: center;
    transition: var(--transition-smooth); flex-shrink: 0;
}
.service-box-elite .icon i { font-size: 26px; color: var(--color-accent); transition: var(--transition-smooth); }
.service-box-elite h3 {
    font-family: var(--font-secondary); font-size: 1.2rem; font-weight: 700;
    margin-bottom: 15px; color: var(--color-white);
}
.service-box-elite p {
    color: var(--color-text-light); opacity: 0.8; font-size: 0.95rem;
    line-height: 1.7; margin-bottom: 0; flex-grow: 1;
}
.service-box-elite:hover {
    background-color: rgba(var(--color-accent-rgb), 0.08);
    border-color: rgba(var(--color-accent-rgb), 0.4);
    transform: translateY(-6px);
    box-shadow: 0 12px 25px rgba(0,0,0,0.15);
}
.service-box-elite:hover .icon { background-color: var(--color-accent); }
.service-box-elite:hover .icon i { color: var(--color-primary); }

/* Alcance Operativo List */
.alcance-operativo {
    border-top: 1px solid rgba(255, 255, 255, 0.15);
    padding-top: 40px; margin-top: 40px;
}
.list-styled-elite {
    list-style: none; padding-left: 0; color: var(--color-text-light); opacity: 0.85;
    margin-bottom: 0;
}
@media (min-width: 768px) {
    .list-styled-elite.two-columns { column-count: 2; column-gap: 30px; }
    .list-styled-elite.two-columns li { break-inside: avoid-column; }
}
.list-styled-elite li {
    padding-left: 30px; position: relative; margin-bottom: 15px;
    font-size: 0.95rem; line-height: 1.6;
}
.list-styled-elite i.fa-check-circle {
    position: absolute; left: 0; top: 4px; font-size: 16px;
    color: var(--color-accent);
}

/*--------------------------------------------------------------
# Filosofia Section - Elite
--------------------------------------------------------------*/
.filosofia-elite { background-color: var(--color-background-light); border-bottom: 1px solid var(--color-border); }
.feature-box-elite {
    text-align: center; padding: 35px; border-radius: var(--border-radius-md);
    transition: var(--transition-smooth); height: 100%;
    border: 1px solid transparent;
    display: flex; flex-direction: column;
}
.feature-box-elite i {
    font-size: 36px; color: var(--color-accent); margin-bottom: 20px;
    display: block; transition: var(--transition-smooth); flex-shrink: 0;
}
.feature-box-elite h3 {
    font-family: var(--font-secondary); font-size: 1.3rem; font-weight: 700;
    margin-bottom: 15px; color: var(--color-primary);
}
.feature-box-elite p {
    color: var(--color-secondary); font-size: 0.95rem; line-height: 1.7;
    margin-bottom: 0; flex-grow: 1;
}
.feature-box-elite:hover {
    border-color: var(--color-border); background-color: var(--color-white);
    box-shadow: var(--box-shadow-lifted); transform: translateY(-6px);
}
.feature-box-elite:hover i { transform: scale(1.1); color: var(--color-accent-hover); }

/*--------------------------------------------------------------
# Contacto Section - Elite
--------------------------------------------------------------*/
.contacto-elite { background-color: var(--color-background-light); }
.contact-info-wrapper-elite {
    background: var(--color-white); padding: 35px; border-radius: var(--border-radius-md);
    box-shadow: var(--box-shadow-soft); height: 100%;
}
.contact-info-title {
    font-family: var(--font-primary); font-size: 1.5rem; font-weight: 700;
    color: var(--color-primary); margin-bottom: 25px; padding-bottom: 10px;
    border-bottom: 2px solid var(--color-accent); display: inline-block;
}
.info-item-elite { display: flex; align-items: flex-start; margin-bottom: 20px; }
.info-item-elite i {
    font-size: 20px; color: var(--color-accent); margin-right: 18px;
    margin-top: 3px; width: 22px; text-align: center; flex-shrink: 0;
}
.info-item-elite h4 {
    font-size: 1.05rem; font-weight: 600; margin-bottom: 3px;
    color: var(--color-primary); font-family: var(--font-secondary);
}
.info-item-elite p,
.info-item-elite a {
    font-size: 0.95rem; color: var(--color-secondary); line-height: 1.6; margin-bottom: 0;
    overflow-wrap: break-word;
    word-wrap: break-word;
    word-break: break-word;
    max-width: 100%;
}
.info-item-elite a {
    color: var(--color-accent);
    font-weight: 500;
    display: inline-block;
}
.info-item-elite a:hover { color: var(--color-accent-hover); }

/* Contact Form */
.contact-form-elite {
    background: var(--color-white); padding: 35px 40px; border-radius: var(--border-radius-md);
    box-shadow: var(--box-shadow-soft); height: 100%;
}
.contact-form-elite .form-group { margin-bottom: 20px; }
.contact-form-elite .form-label {
    font-size: 14px; font-weight: 600; margin-bottom: 6px;
    color: var(--color-primary); display: block;
}
.contact-form-elite .form-control {
    border-radius: var(--border-radius-sm); border: 1px solid #ced4da;
    padding: 12px 15px; font-size: 1rem; transition: var(--transition-smooth);
    color: var(--color-text-dark); background-color: var(--color-white);
}
.contact-form-elite .form-control:focus {
    border-color: var(--color-accent); background-color: var(--color-white);
    box-shadow: 0 0 0 0.2rem rgba(var(--color-accent-rgb), 0.15);
    outline: 0;
}
.contact-form-elite textarea.form-control { min-height: 140px; }
.contact-form-elite .form-control::placeholder { color: #6c757d; opacity: 0.8; }
.contact-form-elite .invalid-feedback { font-size: 0.875em; font-weight: 500; }
.contact-form-elite .form-messages .alert {
    font-size: 0.9rem; padding: 0.75rem 1rem; border-radius: var(--border-radius-sm);
    box-shadow: none; margin-top: 15px;
}
.contact-form-elite .form-messages .alert i { vertical-align: middle; margin-right: 8px;}

/*--------------------------------------------------------------
# Mapa Section - Elite
--------------------------------------------------------------*/
.mapa-section-elite { padding: 0; line-height: 0; }
.mapa-section-elite iframe {
    filter: grayscale(90%) contrast(90%) opacity(0.9);
    transition: filter 0.5s ease;
    display: block;
}
.mapa-section-elite:hover iframe { filter: grayscale(0%) contrast(100%) opacity(1); }

/*--------------------------------------------------------------
# Footer (Site Footer) - Elite
--------------------------------------------------------------*/
.site-footer {
    background-color: var(--color-primary); color: var(--color-text-light);
    font-size: 0.95rem;
}
.site-footer .footer-top {
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    padding-bottom: 50px; padding-top: 70px;
}
.site-footer .footer-info .logo img { filter: brightness(0) invert(1); opacity: 0.85; max-height: 30px;}
.site-footer .footer-tagline {
    margin-top: 15px; color: var(--color-text-light); opacity: 0.7;
    font-size: 0.95rem; line-height: 1.7;
}

.site-footer h4 {
    font-size: 1rem; font-weight: 700; color: var(--color-white);
    text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 20px; padding-bottom: 10px;
    position: relative; font-family: var(--font-secondary);
}
.site-footer h4::after {
    content: ''; position: absolute; display: block; width: 30px; height: 2px;
    background: var(--color-accent); bottom: 0; left: 0;
}
.site-footer .footer-links ul { list-style: none; padding: 0; margin: 0; }
.site-footer .footer-links ul li { padding: 6px 0; display: flex; align-items: center; }
.site-footer .footer-links ul i {
    font-size: 12px; margin-right: 8px; color: var(--color-accent);
    line-height: 1;
}
.site-footer .footer-links ul a {
    color: var(--color-text-light); opacity: 0.75; transition: var(--transition-smooth);
    line-height: 1;
}
.site-footer .footer-links ul a:hover { color: var(--color-accent); opacity: 1; padding-left: 4px; }

.site-footer .footer-contact p { margin-bottom: 8px; line-height: 1.7; }
.site-footer .footer-contact a {
    color: var(--color-text-light); opacity: 0.8; font-weight: 500;
    display: inline-block;
    overflow-wrap: break-word;
    word-wrap: break-word;
    word-break: break-word;
    max-width: 100%;
}
.site-footer .footer-contact a:hover { color: var(--color-accent); opacity: 1; }

.social-links-elite a {
    display: inline-flex; align-items: center; justify-content: center;
    width: 38px; height: 38px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 50%;
    font-size: 14px; color: rgba(255, 255, 255, 0.7);
    margin-right: 8px; transition: var(--transition-smooth);
    line-height: 1;
}
.social-links-elite a:hover {
    color: var(--color-primary); background-color: var(--color-accent);
    border-color: var(--color-accent); transform: translateY(-2px);
}

.copyright-wrap { border-top: 1px solid rgba(255, 255, 255, 0.08); padding: 20px 0;}
.copyright { font-size: 0.9rem; color: var(--color-text-light); opacity: 0.6; }
.credits { font-size: 0.9rem; }
.credits a { color: var(--color-text-light); opacity: 0.6; }
.credits a:hover { color: var(--color-accent); opacity: 1; }

@media (max-width: 767px) {
    .footer-info, .footer-links, .footer-contact { text-align: center; }
    .site-footer h4::after { left: 50%; transform: translateX(-50%); }
    .footer-links ul li { justify-content: center; }
    .social-links-elite { justify-content: center; }
}

/*--------------------------------------------------------------
# Back to Top Button - Elite
--------------------------------------------------------------*/
.back-to-top-elite {
  position: fixed; visibility: hidden; opacity: 0;
  right: 20px; bottom: 20px; z-index: 995;
  background: var(--color-accent); width: 40px; height: 40px;
  border-radius: var(--border-radius-sm);
  transition: all 0.4s;
}
.back-to-top-elite i { font-size: 20px; color: var(--color-primary); line-height: 0; }
.back-to-top-elite:hover { background: var(--color-accent-hover); transform: translateY(-3px); }
.back-to-top-elite.active { visibility: visible; opacity: 1; }

/*--------------------------------------------------------------
# Responsive Adjustments (General)
--------------------------------------------------------------*/
@media (max-width: 767px) {
    .section-padding-elite { padding: 60px 0; }
    h1 { font-size: clamp(1.8rem, 1.5rem + 2.5vw, 2.5rem); }
    h2 { font-size: clamp(1.5rem, 1.3rem + 2vw, 2rem); }
    .btn { padding: 10px 25px; font-size: 13px; }
    .service-box-elite, .feature-box-elite { padding: 30px 20px; }
    .contact-info-wrapper-elite, .contact-form-elite { padding: 25px; }
}

/* Utility Classes (Optional: Add if needed) */
.equal-height-row > [class*="col-"] {
    display: flex;
    flex-direction: column;
}
.equal-height-row > [class*="col-"] > * { /* Target the direct child card/box */
    flex-grow: 1;
}


/* === FIX MENÚ: Colores consistentes y estado activo === */
.site-header .navbar-nav .nav-link-elite {
  padding: 10px 5px;
  font-weight: 600;
}
/* No scrolled (hero oscuro): blanco */


/* Scrolled (fondo claro): oscuro */
.site-header.header-scrolled .navbar-nav .nav-link-elite:hover,
.site-header.header-scrolled .navbar-nav .nav-link-elite.active {
  color: var(--color-primary) !important;
}

/* Colores base por estado scrolled */
.site-header.header-scrolled .navbar-nav .nav-link-elite {
  color: var(--color-secondary) !important;
}


/* Al hacer scroll o en páginas sin #inicio */
.site-header.header-scrolled .navbar-nav .nav-link-elite {
  color: var(--color-secondary) !important;
}
.site-header.header-scrolled .navbar-nav .nav-link-elite:hover,
.site-header.header-scrolled .navbar-nav .nav-link-elite.active {
  color: var(--color-primary) !important;
}

/* Asegurar que cualquier .nav-link de Bootstrap no pise nuestros colores */
.site-header .navbar-nav .nav-link { color: inherit !important; }

/* Botón del header: alineación correcta */
@media (min-width: 992px){
  #site-header .btn.btn-primary-elite { margin-left: 16px; }
}
