/*
Theme Name: Twenty Twenty-Five
Theme URI: https://wordpress.org/themes/twentytwentyfive/
Author: the WordPress team
Author URI: https://wordpress.org
Description: Twenty Twenty-Five emphasizes simplicity and adaptability. It offers flexible design options, supported by a variety of patterns for different page types, such as services and landing pages, making it ideal for building personal blogs, professional portfolios, online magazines, or business websites. Its templates cater to various blog styles, from text-focused to image-heavy layouts. Additionally, it supports international typography and diverse color palettes, ensuring accessibility and customization for users worldwide.
Requires at least: 6.7
Tested up to: 7.0
Requires PHP: 7.2
Version: 1.5
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: twentytwentyfive
Tags: one-column, custom-colors, custom-menu, custom-logo, editor-style, featured-images, full-site-editing, block-patterns, rtl-language-support, sticky-post, threaded-comments, translation-ready, wide-blocks, block-styles, style-variations, accessibility-ready, blog, portfolio, news
*/

/*
 * IMPORTANT: This file is only served on the frontend when `SCRIPT_DEBUG` is enabled;
 * in most instances, the `style.min.css` file will be served. It is not recommended that you
 * use the Theme File Editor to modify this stylesheet. Instead, add the necessary style
 * overrides via "Additional CSS" in the Site Editor.
 */

/*
 * Link styles
 * https://github.com/WordPress/gutenberg/issues/42319
 */
a {
	text-decoration-thickness: 1px !important;
	text-underline-offset: .1em;
}

/* Focus styles */
:where(.wp-site-blocks *:focus) {
	outline-width: 2px;
	outline-style: solid;
}

/* Increase the bottom margin on submenus, so that the outline is visible. */
.wp-block-navigation .wp-block-navigation-submenu .wp-block-navigation-item:not(:last-child) {
	margin-bottom: 3px;
}

/* Increase the outline offset on the parent menu items, so that the outline does not touch the text. */
.wp-block-navigation .wp-block-navigation-item .wp-block-navigation-item__content {
	outline-offset: 4px;
}

/* Remove outline offset from the submenus, otherwise the outline is visible outside the submenu container. */
.wp-block-navigation .wp-block-navigation-item ul.wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	outline-offset: 0;
}

/*
 * Progressive enhancement to reduce widows and orphans
 * https://github.com/WordPress/gutenberg/issues/55190
 */
h1, h2, h3, h4, h5, h6, blockquote, caption, figcaption, p {
	text-wrap: pretty;
}

/*
 * Change the position of the more block on the front, by making it a block level element.
 * https://github.com/WordPress/gutenberg/issues/65934
*/
.more-link {
	display: block;
}

/*
 * Prevents unnecessary scrollbars while handling long lines of preformatted text.
 * https://core.trac.wordpress.org/ticket/63875
 */
:where(pre) {
	overflow-x: auto;
}

/* ==========================================================================
   NILUDASA GLOBAL CUSTOM STYLES (ROOT VARIABLES, HEADER, FOOTER)
   ========================================================================== */

:root {
  --color-primary: #D32F2F;
  --color-primary-dark: #B71C1C;
  --color-primary-rgb: 211, 47, 47;
  --color-dark: #0f0f0f;
  --color-dark-surface: #1a1a1a;
  --color-dark-surface-2: #242424;
  --color-bg: var(--color-dark);
  --color-bg-surface: var(--color-dark-surface);
  --color-bg-surface-2: var(--color-dark-surface-2);
  --color-text: #ffffff;
  --color-text-muted: #a3a3a3;
  --color-border: rgba(255, 255, 255, 0.08);
  --color-border-hover: rgba(211, 47, 47, 0.4);
  --font-display: 'Barlow Condensed', sans-serif;
  --font-body: 'Inter', sans-serif;
  --transition-slow: 0.5s cubic-bezier(0.25, 0.8, 0.25, 1);
  --transition-fast: 0.2s cubic-bezier(0.25, 0.8, 0.25, 1);
  --border-radius: 8px;
  --shadow-lg: 0 10px 30px rgba(0, 0, 0, 0.35);
  --shadow-primary: 0 8px 30px rgba(211, 47, 47, 0.25);
}

/* Base Body styles for Landing Page wrapper */
[data-theme="light"] {
  --color-bg: #f8f8f6;
  --color-bg-surface: #ffffff;
  --color-bg-surface-2: #efefec;
  --color-text: #1a1a1a;
  --color-border: rgba(0, 0, 0, 0.08);
  --color-border-hover: rgba(211, 47, 47, 0.3);
  --shadow-lg: 0 10px 30px rgba(0, 0, 0, 0.08);
  --shadow-primary: 0 8px 30px rgba(211, 47, 47, 0.15);
}

/* CLASES DE UTILIDAD GLOBALES */
.container {
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 2rem;
}

@media (max-width: 768px) {
  .container {
    padding: 0 1.25rem;
  }
}

/* CABECERA Y NAV FIJA */
.header {
  position: relative;
  width: 100%;
  z-index: 1000;
  transition: background-color 0.4s ease, backdrop-filter 0.4s ease, border-bottom 0.4s ease;
  border-bottom: 1px solid transparent;

  /* Colores por defecto en estado transparente (alto contraste sobre hero oscuro) */
  --header-text: #ffffff;
  --header-text-muted: rgba(255, 255, 255, 0.7);
  --header-border: rgba(255, 255, 255, 0.1);
  --header-bg-toggle: rgba(255, 255, 255, 0.1);
}

/* Posición fija solo en frontend para evitar bugs en el editor */
body:not(.wp-admin) .header {
  position: fixed;
  top: 0;
  left: 0;
}

/* Ajuste para barra de administración de WordPress */
body.admin-bar .header {
  top: 32px;
}

@media screen and (max-width: 782px) {
  body.admin-bar .header {
    top: 46px;
  }
}

.header-solid {
  background-color: rgba(15, 15, 15, 0.85);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--header-border);

  /* Adaptación al tema activo cuando es sólida */
  --header-text: var(--color-text);
  --header-text-muted: var(--color-text-muted);
  --header-border: var(--color-border);
  --header-bg-toggle: var(--color-bg-surface-2);
}

[data-theme="light"] .header-solid {
  background-color: rgba(248, 248, 246, 0.85);
}

.header .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 85px;
}

.logo-container {
  display: flex;
  align-items: center;
  height: 55px;
}

.logo-svg {
  height: 100%;
  width: auto;
}

.nav-links {
  display: flex;
  align-items: center;
  gap: 2.2rem;
}

.nav-link {
  font-family: var(--font-display);
  font-size: 1.1rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  position: relative;
  color: var(--header-text);
  opacity: 0.85;
  transition: opacity var(--transition-fast), color var(--transition-fast);
  padding: 0.5rem 0;
  text-decoration: none !important;
}

.nav-link:hover {
  opacity: 1;
}

.nav-link::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0%;
  height: 2px;
  background-color: var(--color-primary);
  transition: width var(--transition-fast);
}

.nav-link:hover::after,
.nav-link.active::after {
  width: 100%;
}

.header-actions {
  display: flex;
  align-items: center;
  gap: 1.5rem;
}

.theme-toggle-btn {
  background: none;
  border: none;
  color: var(--header-text);
  cursor: pointer;
  padding: 8px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background-color 0.3s, color 0.3s;
  width: 40px;
  height: 40px;
  background-color: var(--header-bg-toggle);
}

.theme-toggle-btn:hover {
  background-color: rgba(211, 47, 47, 0.15);
  color: var(--color-primary);
}

.theme-toggle-btn .sun-icon {
  display: none;
}

[data-theme="light"] .theme-toggle-btn .moon-icon {
  display: none;
}

[data-theme="light"] .theme-toggle-btn .sun-icon {
  display: block;
}

.mobile-menu-btn {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  flex-direction: column;
  justify-content: space-between;
  width: 26px;
  height: 18px;
  z-index: 1100;
}

.mobile-menu-btn span {
  display: block;
  width: 100%;
  height: 2px;
  background-color: var(--header-text);
  transition: transform 0.3s ease, opacity 0.3s ease, background-color 0.3s ease;
}

.mobile-menu-btn.active span:nth-child(1) {
  transform: translateY(8px) rotate(45deg);
  background-color: var(--color-primary);
}

.mobile-menu-btn.active span:nth-child(2) {
  opacity: 0;
}

.mobile-menu-btn.active span:nth-child(3) {
  transform: translateY(-8px) rotate(-45deg);
  background-color: var(--color-primary);
}

.mobile-drawer {
  position: fixed;
  top: 0;
  right: -100%;
  width: 100%;
  max-width: 320px;
  height: 100vh;
  background-color: var(--color-bg-surface);
  z-index: 1050;
  box-shadow: -5px 0 25px rgba(0,0,0,0.5);
  display: flex;
  flex-direction: column;
  padding: 6rem 2rem 2rem;
  gap: 2rem;
  transition: right 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
}

body.admin-bar .mobile-drawer {
  top: 32px;
  height: calc(100vh - 32px);
}

@media screen and (max-width: 782px) {
  body.admin-bar .mobile-drawer {
    top: 46px;
    height: calc(100vh - 46px);
  }
}

.mobile-drawer.active {
  right: 0;
}

/* Los enlaces del menú móvil deben mantener el color base del tema, no el del header */
.mobile-drawer .nav-link {
  font-size: 1.5rem;
  width: 100%;
  border-bottom: 1px solid var(--color-border);
  padding: 0.8rem 0;
  color: var(--color-text);
}

@media (max-width: 1024px) {
  .nav-links, .header-actions .btn-primary {
    display: none;
  }

  .mobile-menu-btn {
    display: flex;
  }
}



/* FOOTER GLOBAL STYLES */
.footer {
  background-color: #0f0f0f;
  color: #ffffff;
  border-top: none;
  padding: 5rem 0 2rem;
}

.footer-phrase {
  font-size: 0.95rem;
  color: #b0b0b0;
  line-height: 1.6;
}

.footer-col-title {
  font-size: 1.3rem;
  font-weight: 700;
  margin-bottom: 1.5rem;
  position: relative;
  padding-bottom: 0.5rem;
  text-transform: uppercase;
  font-family: var(--font-display);
}

.footer-col-title::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 30px;
  height: 2px;
  background-color: var(--color-primary);
}

.footer-links {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}

.footer-link {
  font-size: 0.95rem;
  color: #c0c0c0;
  transition: color 0.2s;
  text-decoration: none !important;
}

.footer-link:hover {
  color: var(--color-primary);
  padding-left: 4px;
}

.footer-bottom {
  border-top: 1px solid rgba(255,255,255,0.08);
  padding-top: 2rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 1rem;
  font-size: 0.85rem;
  color: #888888;
}

.niludasa-landing {
  --color-primary: #D32F2F;
  --color-primary-dark: #B71C1C;
  --color-primary-rgb: 211, 47, 47;
  --color-dark: #0f0f0f;
  --color-dark-surface: #1a1a1a;
  --color-dark-surface-2: #242424;
  --color-bg: var(--color-dark);
  --color-bg-surface: var(--color-dark-surface);
  --color-bg-surface-2: var(--color-dark-surface-2);
  --color-text: #ffffff;
  --color-text-muted: #a3a3a3;
  --color-border: rgba(255, 255, 255, 0.08);
  --color-border-hover: rgba(211, 47, 47, 0.4);
  --font-display: 'Barlow Condensed', sans-serif;
  --font-body: 'Inter', sans-serif;
  --transition-slow: 0.5s cubic-bezier(0.25, 0.8, 0.25, 1);
  --transition-fast: 0.2s cubic-bezier(0.25, 0.8, 0.25, 1);
  --border-radius: 8px;
  --shadow-lg: 0 10px 30px rgba(0, 0, 0, 0.35);
  --shadow-primary: 0 8px 30px rgba(211, 47, 47, 0.25);
  
  background-color: var(--color-bg);
  color: var(--color-text);
  font-family: var(--font-body);
}

/* Fonts and Titles */
.niludasa-landing h1, 
.niludasa-landing h2, 
.niludasa-landing h3, 
.niludasa-landing h4, 
.niludasa-landing h5, 
.niludasa-landing h6 {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  font-weight: 700;
}

.niludasa-landing .section-title {
  font-size: 3rem;
  font-weight: 800;
  margin-bottom: 1.5rem;
  line-height: 1.1;
}

.niludasa-landing .section-title span {
  color: var(--color-primary);
}

.niludasa-landing .section-subtitle {
  font-size: 1.1rem;
  color: var(--color-text-muted);
  max-width: 600px;
  margin-bottom: 3.5rem;
}

/* Custom Buttons (Global) */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.8rem 1.8rem;
  font-family: var(--font-display);
  font-size: 1.1rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  border-radius: var(--border-radius);
  transition: var(--transition-fast);
  cursor: pointer;
  border: none;
  text-decoration: none !important;
}

.btn-primary {
  background-color: var(--color-primary);
  color: #ffffff !important;
  box-shadow: 0 4px 15px rgba(var(--color-primary-rgb), 0.3);
}

.btn-primary:hover {
  background-color: var(--color-primary-dark);
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(var(--color-primary-rgb), 0.5);
  color: #ffffff !important;
}

.btn-secondary {
  background-color: transparent;
  color: var(--color-text) !important;
  border: 2px solid var(--color-text);
}

.btn-secondary:hover {
  background-color: var(--color-text);
  color: var(--color-dark) !important;
  transform: translateY(-2px);
}

/* Hero Section */
.niludasa-landing .hero {
  height: auto;
  min-height: 820px;
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  background-color: #000;
  padding-top: 140px;
  padding-bottom: 5rem; /* Espacio para evitar que los contadores se corten */
}

.niludasa-landing .hero-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: linear-gradient(rgba(0,0,0,0.65), rgba(0,0,0,0.75)), 
                    url('https://images.unsplash.com/photo-1601584115197-04ecc0da31d7?auto=format&fit=crop&q=80&w=1600');
  background-size: cover;
  background-position: center;
  z-index: 1;
}

.niludasa-landing .hero-content {
  position: relative;
  z-index: 2;
  max-width: 800px;
  padding: 2rem;
}

.niludasa-landing .hero-headline {
  font-size: clamp(2.5rem, 5vw, 4.8rem);
  line-height: 0.95;
  font-weight: 900;
  color: #ffffff;
  margin-bottom: 1.5rem;
}

.niludasa-landing .hero-headline span {
  color: var(--color-primary);
}

.niludasa-landing .hero-subheadline {
  font-size: clamp(1.1rem, 2vw, 1.5rem);
  font-weight: 300;
  color: #e0e0e0;
  margin-bottom: 2.5rem;
}

.niludasa-landing .hero-actions {
  display: flex;
  gap: 1.2rem;
  margin-bottom: 3rem;
}

.niludasa-landing .hero-badges {
  position: absolute;
  right: 5%;
  top: 20%;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  z-index: 2;
}

.niludasa-landing .badge-float {
  background-color: rgba(26, 26, 26, 0.85);
  border-left: 4px solid var(--color-primary);
  border-top: 1px solid rgba(255, 255, 255, 0.05);
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
  border-right: 1px solid rgba(255, 255, 255, 0.05);
  padding: 0.8rem 1.5rem;
  color: #ffffff;
  font-family: var(--font-display);
  font-size: 1.2rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  backdrop-filter: blur(8px);
  border-radius: 0 var(--border-radius) var(--border-radius) 0;
  box-shadow: var(--shadow-lg);
  animation: floatEffect 6s ease-in-out infinite alternate;
}

.niludasa-landing .badge-float:nth-child(2) { animation-delay: 1.2s; }
.niludasa-landing .badge-float:nth-child(3) { animation-delay: 2.4s; }
.niludasa-landing .badge-float:nth-child(4) { animation-delay: 3.6s; }

@keyframes floatEffect {
  0% { transform: translateY(0); }
  100% { transform: translateY(-12px); }
}

.niludasa-landing .hero-stats {
  border-top: 1px solid rgba(255, 255, 255, 0.15);
  padding-top: 2rem;
  max-width: 700px;
  margin-top: 2rem;
}

.niludasa-landing .stat-item {
  display: flex;
  flex-direction: column;
}

.niludasa-landing .stat-number {
  font-family: var(--font-display);
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 800;
  color: var(--color-primary);
  line-height: 1;
}

.niludasa-landing .stat-label {
  font-size: 0.85rem;
  color: #c0c0c0;
  text-transform: uppercase;
}

/* Nuestra Empresa */
.niludasa-landing .empresa {
  padding: 9rem 0;
}

.niludasa-landing .valores-container {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}

.niludasa-landing .valor-card {
  display: flex;
  align-items: flex-start;
  gap: 1.5rem;
  background-color: var(--color-bg-surface);
  border: 1px solid var(--color-border);
  padding: 1.5rem;
  border-radius: var(--border-radius);
  transition: var(--transition-fast);
}

.niludasa-landing .valor-card:hover {
  border-color: var(--color-primary);
  transform: translateX(8px);
}

.niludasa-landing .valor-icon {
  color: var(--color-primary);
  flex-shrink: 0;
  background-color: rgba(211, 47, 47, 0.08);
  padding: 12px;
  border-radius: 8px;
  display: flex;
}

.niludasa-landing .valor-title {
  font-size: 1.3rem;
  font-weight: 700;
  margin-bottom: 0.3rem;
}

.niludasa-landing .valor-desc {
  font-size: 0.95rem;
  color: var(--color-text-muted);
}

/* Peru Map Interactive */
.niludasa-landing .mapa-wrapper {
  background-color: var(--color-bg-surface);
  border-radius: var(--border-radius);
  border: 1px solid var(--color-border);
  padding: 1.5rem;
  box-shadow: var(--shadow-lg);
  max-width: 440px;
  margin: 0 auto;
}

.niludasa-landing .mapa-title {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--color-primary);
  margin-bottom: 0.8rem;
  text-align: center;
}

.niludasa-landing .peru-map-svg,
.niludasa-landing .mapa-wrapper svg {
  width: 100%;
  height: auto;
  display: block;
}

.niludasa-landing .map-bg-path {
  fill: var(--color-bg-surface-2);
  stroke: var(--color-text-muted);
  stroke-width: 2;
  transition: fill 0.3s;
}

.niludasa-landing .node-pulse {
  fill: var(--color-primary);
  fill-opacity: 0.35;
  animation: pulsePing 2.2s infinite ease-out;
  transform-origin: center;
}

.niludasa-landing .node-core {
  fill: var(--color-primary);
  stroke: var(--color-dark);
  stroke-width: 1.5px;
}

.niludasa-landing .node-core-highlight {
  fill: #ffffff;
  stroke: var(--color-primary);
  stroke-width: 2.5px;
}

.niludasa-landing .node-core-sub {
  fill: var(--color-text);
  stroke: var(--color-primary);
  stroke-width: 1px;
}

.niludasa-landing .node-label {
  font-family: var(--font-display);
  font-size: 16px;
  font-weight: 800;
  fill: var(--color-text);
  text-shadow: 0 1px 4px rgba(0,0,0,0.8);
}

.niludasa-landing .node-label-highlight {
  font-family: var(--font-display);
  font-size: 20px;
  font-weight: 900;
  fill: var(--color-primary);
  text-shadow: 0 1px 4px rgba(0,0,0,0.8);
}

@keyframes pulsePing {
  0% {
    r: 3px;
    fill-opacity: 0.8;
  }
  100% {
    r: 16px;
    fill-opacity: 0;
  }
}

/* Misión & Visión */
.niludasa-landing .mision-vision {
  padding: 9rem 0;
  background-color: var(--color-bg-surface);
}

.niludasa-landing .mv-card {
  background-color: var(--color-dark);
  border: 1px solid var(--color-border);
  padding: 3rem;
  border-radius: var(--border-radius);
  position: relative;
  transition: var(--transition-fast);
  overflow: hidden;
}

.niludasa-landing .mv-card::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 5px;
  background-color: var(--color-primary);
  transform: scaleY(0);
  transition: transform 0.4s ease;
  transform-origin: bottom;
}

.niludasa-landing .mv-card:hover::before {
  transform: scaleY(1);
}

.niludasa-landing .mv-card:hover {
  border-color: var(--color-primary);
  box-shadow: var(--shadow-primary);
}

.niludasa-landing .mv-icon-bg {
  position: absolute;
  top: -20px;
  right: -20px;
  font-size: 10rem;
  font-family: var(--font-display);
  font-weight: 900;
  color: var(--color-bg-surface-2);
  opacity: 0.35;
  line-height: 1;
}

.niludasa-landing .mv-title {
  font-size: 2.2rem;
  font-weight: 800;
  margin-bottom: 1.5rem;
}

.niludasa-landing .mv-title span {
  color: var(--color-primary);
}

.niludasa-landing .mv-text {
  font-size: 1.1rem;
  color: var(--color-text-muted);
}

/* Servicios */
.niludasa-landing .servicios {
  padding: 9rem 0;
}

.niludasa-landing .servicio-card {
  background-color: var(--color-bg-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--border-radius);
  padding: 2.5rem 2rem;
  transition: var(--transition-fast);
  display: flex;
  flex-direction: column;
  min-height: 380px;
  height: 100%;
}

.niludasa-landing .servicio-card:hover {
  transform: translateY(-8px);
  border-color: var(--color-primary);
  box-shadow: 0 15px 35px rgba(var(--color-primary-rgb), 0.15);
}

.niludasa-landing .servicio-icon {
  color: var(--color-primary);
  margin-bottom: 1.8rem;
  display: flex;
}

.niludasa-landing .servicio-title {
  font-size: 1.5rem;
  font-weight: 700;
  margin-bottom: 1rem;
}

.niludasa-landing .servicio-desc {
  font-size: 0.95rem;
  color: var(--color-text-muted);
  margin-bottom: 1.5rem;
}

.niludasa-landing .servicio-details {
  margin-top: auto;
  padding-top: 1rem;
  border-top: 1px dashed var(--color-border);
}

.niludasa-landing .servicio-details ul {
  list-style: none;
  padding-left: 0;
  margin: 0;
}

.niludasa-landing .servicio-details li {
  position: relative;
  padding-left: 15px;
  margin-bottom: 0.4rem;
  font-size: 0.85rem;
}

.niludasa-landing .servicio-details li::before {
  content: '▪';
  color: var(--color-primary);
  position: absolute;
  left: 0;
}

/* ¿Qué transportamos? */
.niludasa-landing .what-we-transport {
  margin-top: 5rem;
  background-color: var(--color-bg-surface);
  border-radius: var(--border-radius);
  border: 1px solid var(--color-border);
  padding: 3rem;
}

.niludasa-landing .wwt-header {
  text-align: center;
  margin-bottom: 2.5rem;
}

.niludasa-landing .wwt-title {
  font-size: 2rem;
  font-weight: 800;
}

.niludasa-landing .wwt-title span {
  color: var(--color-primary);
}

.niludasa-landing .wwt-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
  gap: 1.5rem;
}

.niludasa-landing .wwt-item {
  background-color: var(--color-dark);
  border: 1px solid var(--color-border);
  border-radius: var(--border-radius);
  padding: 1.2rem 0.5rem;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.8rem;
  transition: var(--transition-fast);
}

.niludasa-landing .wwt-item:hover {
  border-color: var(--color-primary);
  transform: scale(1.05);
  background-color: rgba(var(--color-primary-rgb), 0.05);
}

.niludasa-landing .wwt-item svg {
  color: var(--color-primary);
  width: 32px;
  height: 32px;
  transition: transform 0.3s;
}

.niludasa-landing .wwt-item:hover svg {
  transform: translateY(-2px) scale(1.05);
}

.niludasa-landing .wwt-name {
  font-size: 0.85rem;
  font-weight: 600;
  text-transform: uppercase;
}

.niludasa-landing .wwt-footer-text {
  text-align: center;
  margin-top: 2.5rem;
  font-size: 1.1rem;
  color: var(--color-text-muted);
}

/* Flota & Choferes */
.niludasa-landing .flota {
  padding: 9rem 0;
  background-color: var(--color-bg-surface);
}

.niludasa-landing .flota-image-wrapper {
  position: relative;
  border-radius: var(--border-radius);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
  border: 1px solid var(--color-border);
  height: 480px;
}

.niludasa-landing .flota-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
}

.niludasa-landing .flota-image-wrapper:hover .flota-img {
  transform: scale(1.03);
}

.niludasa-landing .flota-image-overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  background: linear-gradient(transparent, rgba(0,0,0,0.85));
  padding: 2rem;
  color: #ffffff;
}

.niludasa-landing .flota-tag {
  background-color: var(--color-primary);
  color: #fff;
  font-family: var(--font-display);
  font-size: 0.9rem;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 4px;
  text-transform: uppercase;
  display: inline-block;
  margin-bottom: 0.8rem;
}

.niludasa-landing .flota-checklists {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2.2rem;
}

.niludasa-landing .checklist-col-title {
  font-size: 1.4rem;
  font-weight: 800;
  margin-bottom: 1.2rem;
  border-bottom: 2px solid var(--color-primary);
  padding-bottom: 0.5rem;
  display: flex;
  align-items: center;
  gap: 0.6rem;
}

.niludasa-landing .checklist-col-title svg {
  color: var(--color-primary);
  width: 22px;
  height: 22px;
}

.niludasa-landing .checklist-list {
  list-style: none;
  padding-left: 0;
}

.niludasa-landing .checklist-item {
  display: flex;
  align-items: flex-start;
  gap: 0.8rem;
  margin-bottom: 0.9rem;
  font-size: 0.95rem;
  color: var(--color-text-muted);
}

.niludasa-landing .check-icon {
  color: var(--color-primary);
  flex-shrink: 0;
  margin-top: 3px;
  width: 18px;
  height: 18px;
}

/* Beneficios */
.niludasa-landing .beneficios {
  padding: 9rem 0;
}

.niludasa-landing .beneficio-card {
  background-color: var(--color-bg-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--border-radius);
  padding: 2.2rem;
  transition: var(--transition-fast);
  height: 100%;
}

.niludasa-landing .beneficio-card:hover {
  border-color: var(--color-primary);
  box-shadow: 0 8px 25px rgba(0,0,0,0.15);
  transform: translateY(-4px);
}

.niludasa-landing .beneficio-icon {
  color: var(--color-primary);
  margin-bottom: 1.2rem;
  display: flex;
}

.niludasa-landing .beneficio-icon svg {
  width: 32px;
  height: 32px;
}

.niludasa-landing .beneficio-text {
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.5;
}

/* Contacto & Formulario */
.niludasa-landing .contacto {
  padding: 9rem 0;
  background-color: var(--color-bg-surface);
}

.niludasa-landing .contacto-details {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  margin-bottom: 3.5rem;
}

.niludasa-landing .contacto-item {
  display: flex;
  align-items: flex-start;
  gap: 1.2rem;
}

.niludasa-landing .contacto-icon {
  color: var(--color-primary);
  background-color: rgba(211, 47, 47, 0.08);
  padding: 12px;
  border-radius: 8px;
  flex-shrink: 0;
  display: flex;
}

.niludasa-landing .contacto-icon svg {
  width: 24px;
  height: 24px;
}

.niludasa-landing .contacto-item-title {
  font-size: 1.2rem;
  font-weight: 700;
  margin-bottom: 0.3rem;
}

.niludasa-landing .contacto-item-text {
  color: var(--color-text-muted);
  font-size: 0.95rem;
  line-height: 1.5;
}

.niludasa-landing .contacto-socials {
  display: flex;
  gap: 1rem;
}

.niludasa-landing .social-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 45px;
  height: 45px;
  border-radius: 50%;
  background-color: var(--color-bg-surface-2);
  border: 1px solid var(--color-border);
  color: var(--color-text);
  transition: var(--transition-fast);
  text-decoration: none;
}

.niludasa-landing .social-link:hover {
  background-color: var(--color-primary);
  color: #ffffff;
  border-color: var(--color-primary);
  transform: translateY(-3px);
}

/* Cotizar Form */
.niludasa-landing .form-wrapper {
  background-color: var(--color-dark);
  border: 1px solid var(--color-border);
  padding: 3rem;
  border-radius: var(--border-radius);
  box-shadow: var(--shadow-lg);
}

.niludasa-landing .form-title {
  font-size: 1.8rem;
  font-weight: 800;
  margin-bottom: 1.5rem;
  border-left: 4px solid var(--color-primary);
  padding-left: 0.8rem;
}

.niludasa-landing .form-group {
  margin-bottom: 1.5rem;
  position: relative;
}

.niludasa-landing .form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
}

.niludasa-landing .form-control {
  width: 100%;
  background-color: var(--color-bg-surface);
  border: 1px solid var(--color-border);
  color: var(--color-text);
  padding: 0.9rem 1.2rem;
  border-radius: var(--border-radius);
  font-family: var(--font-body);
  font-size: 0.95rem;
  transition: var(--transition-fast);
}

.niludasa-landing .form-control:focus {
  outline: none;
  border-color: var(--color-primary);
  background-color: var(--color-bg-surface-2);
  box-shadow: 0 0 0 3px rgba(211, 47, 47, 0.15);
}

.niludasa-landing textarea.form-control {
  resize: vertical;
  min-height: 120px;
}

.niludasa-landing label.form-label {
  display: block;
  font-size: 0.85rem;
  font-weight: 600;
  text-transform: uppercase;
  margin-bottom: 0.4rem;
  color: var(--color-text-muted);
}

.niludasa-landing .form-btn-wrapper {
  margin-top: 2rem;
}

/* Toast Success */
.niludasa-landing .toast-success {
  position: fixed;
  bottom: 2rem;
  right: 2rem;
  background-color: #2e7d32;
  color: #fff;
  padding: 1rem 2rem;
  border-radius: var(--border-radius);
  box-shadow: var(--shadow-lg);
  display: flex;
  align-items: center;
  gap: 1rem;
  transform: translateY(100px);
  opacity: 0;
  transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1), opacity 0.4s ease;
  z-index: 2000;
}

.niludasa-landing .toast-success.show {
  transform: translateY(0);
  opacity: 1;
}

/* Media Queries for Scoped Layout */
@media (max-width: 1024px) {
  .niludasa-landing .hero-badges {
    position: static;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 0.8rem;
    margin-bottom: 2rem;
    padding: 0 2rem;
  }
  .niludasa-landing .badge-float {
    font-size: 1rem;
    padding: 0.5rem 1rem;
    animation: none;
  }
  .niludasa-landing .flota-image-wrapper {
    height: 350px;
  }
}

@media (max-width: 768px) {
  .niludasa-landing .hero {
    height: auto;
    padding-top: 120px; /* Compensar la cabecera en móvil */
    padding-bottom: 4rem;
  }
  .niludasa-landing .form-grid {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
  .niludasa-landing .flota-checklists {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  .niludasa-landing .form-wrapper {
    padding: 1.8rem;
  }
}

/* ==========================================================================
   ANIMACIONES DE APARICIÓN (PROGRESSIVE ENHANCEMENT)
   ========================================================================== */
.reveal-fade {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s cubic-bezier(0.25, 0.8, 0.25, 1), transform 0.8s cubic-bezier(0.25, 0.8, 0.25, 1);
}

.reveal-fade.reveal-active {
  opacity: 1;
  transform: translateY(0);
}

/* Staggers y retrasos opcionales para elementos secuenciales */
.reveal-delay-1 { transition-delay: 0.1s; }
.reveal-delay-2 { transition-delay: 0.2s; }
.reveal-delay-3 { transition-delay: 0.3s; }
.reveal-delay-4 { transition-delay: 0.4s; }
.reveal-delay-5 { transition-delay: 0.5s; }

/* Entrada horizontal opcional */
.reveal-left {
  opacity: 0;
  transform: translateX(-40px);
  transition: opacity 0.8s cubic-bezier(0.25, 0.8, 0.25, 1), transform 0.8s cubic-bezier(0.25, 0.8, 0.25, 1);
}
.reveal-left.reveal-active {
  opacity: 1;
  transform: translateX(0);
}

.reveal-right {
  opacity: 0;
  transform: translateX(40px);
  transition: opacity 0.8s cubic-bezier(0.25, 0.8, 0.25, 1), transform 0.8s cubic-bezier(0.25, 0.8, 0.25, 1);
}
.reveal-right.reveal-active {
  opacity: 1;
  transform: translateX(0);
}

/* Nuevas clases de revelado para escala y rebote */
.reveal-scale {
  opacity: 0;
  transform: scale(0.9);
  transition: opacity 0.8s cubic-bezier(0.25, 0.8, 0.25, 1), transform 0.8s cubic-bezier(0.25, 0.8, 0.25, 1);
}
.reveal-scale.reveal-active {
  opacity: 1;
  transform: scale(1);
}

.reveal-pop {
  opacity: 0;
  transform: scale(0.85);
  transition: opacity 0.8s cubic-bezier(0.34, 1.56, 0.64, 1), transform 0.8s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.reveal-pop.reveal-active {
  opacity: 1;
  transform: scale(1);
}

/* Prevenir desborde del botón Cotizar en la cabecera en resoluciones medianas */
@media (max-width: 1200px) and (min-width: 1025px) {
  .nav-links {
    gap: 1.25rem;
  }
  .header-actions {
    gap: 1rem;
  }
  .header .container {
    padding: 0 1.25rem;
  }
  .btn {
    padding: 0.6rem 1.2rem;
    font-size: 1rem;
  }
}

/* Efecto de Partículas en Hero */
.niludasa-landing .hero-particles {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  pointer-events: none;
}

/* Preloader / Pantalla de Carga */
.preloader {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #0f0f0f;
  z-index: 10000;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  transition: opacity 0.6s cubic-bezier(0.25, 0.8, 0.25, 1), visibility 0.6s cubic-bezier(0.25, 0.8, 0.25, 1);
  opacity: 1;
  visibility: visible;
}

body.preloader-active {
  overflow: hidden !important;
}

.preloader.fade-out {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.preloader-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
  padding: 2rem;
  max-width: 400px;
  width: 100%;
}

.preloader-logo {
  width: 100%;
  max-width: 320px;
  display: flex;
  justify-content: center;
}

.preloader-progress {
  width: 220px;
  height: 4px;
  background-color: rgba(255, 255, 255, 0.08);
  border-radius: 2px;
  overflow: hidden;
  position: relative;
  box-shadow: inset 0 1px 2px rgba(0,0,0,0.5);
}

.preloader-bar {
  width: 0%;
  height: 100%;
  background-color: #D32F2F;
  position: absolute;
  left: 0;
  top: 0;
  transition: width 0.1s ease;
}



