/* ==========================================================================
   CAMPERÍZATE - Portal y Guía Oficial de Furgonetas Camper y Equipamiento
   Diseño de Alta Conversión y Afiliación - Tratamiento Formal de USTED
   Estilo Luminoso y Fresco - Aigen Digital Marketing (aigen.org)
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700;800&family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap');

:root {
  --color-bg: #ffffff;
  --color-surface: #ffffff;
  --color-surface-hover: #f8fafc;
  --color-border: #e2e8f0;
  
  --color-forest: #059669;
  --color-forest-dark: #047857;
  --color-orange: #f97316;
  --color-orange-glow: rgba(249, 115, 22, 0.25);
  
  --color-amazon: #ff9900;
  --color-amazon-dark: #e68a00;
  --color-text-main: #0f172a;
  --color-text-muted: #475569;
  --color-text-subtle: #64748b;

  --font-heading: 'Outfit', system-ui, sans-serif;
  --font-body: 'Plus Jakarta Sans', system-ui, sans-serif;

  --shadow-card: 0 10px 25px -5px rgba(15, 23, 42, 0.08), 0 8px 10px -6px rgba(15, 23, 42, 0.04);
  --shadow-orange: 0 8px 24px rgba(249, 115, 22, 0.2);
  --radius-sm: 8px;
  --radius-md: 14px;
  --radius-lg: 22px;
  --radius-full: 9999px;
  --transition: 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; background-color: var(--color-bg); color: var(--color-text-main); }
body { font-family: var(--font-body); line-height: 1.65; overflow-x: hidden; min-height: 100vh; background: #f8fafc; color: var(--color-text-main); }

h1, h2, h3, h4 { font-family: var(--font-heading); font-weight: 700; color: #0f172a; line-height: 1.25; }
h1 { font-size: clamp(2.1rem, 4.2vw, 3.2rem); }
h2 { font-size: clamp(1.6rem, 3vw, 2.3rem); }
h3 { font-size: clamp(1.2rem, 2.2vw, 1.5rem); }
p { color: var(--color-text-muted); margin-bottom: 1rem; }
a { color: inherit; text-decoration: none; transition: var(--transition); }

.container { width: 100%; max-width: 1220px; margin: 0 auto; padding: 0 1.5rem; }
.section { padding: 5rem 0; position: relative; }

/* Navegación Luminosa */
.navbar { position: sticky; top: 0; z-index: 1000; background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(14px); border-bottom: 1px solid var(--color-border); box-shadow: 0 2px 4px rgba(15, 23, 42, 0.04); }
.nav-inner { display: flex; align-items: center; justify-content: space-between; height: 80px; }
.brand-logo { display: flex; align-items: center; gap: 0.6rem; font-family: var(--font-heading); font-size: 1.4rem; font-weight: 800; color: #0f172a; }
.brand-logo span.orange { color: var(--color-orange); }
.nav-links { display: flex; gap: 1.8rem; list-style: none; align-items: center; }
.nav-links a { font-weight: 600; font-size: 0.95rem; color: #334155; padding: 0.5rem 0; position: relative; }
.nav-links a:hover, .nav-links a.active { color: var(--color-orange); }
.btn-mobile-toggle { display: none; background: none; border: none; color: #0f172a; font-size: 1.6rem; cursor: pointer; min-width: 48px; min-height: 48px; }

/* Botones y Badges */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; font-family: var(--font-body); font-weight: 600; font-size: 0.95rem; padding: 0.85rem 1.65rem; border-radius: var(--radius-md); border: none; cursor: pointer; transition: var(--transition); min-height: 48px; }
.btn-orange { background: linear-gradient(135deg, var(--color-orange), #ea580c); color: #fff; box-shadow: var(--shadow-orange); }
.btn-orange:hover { transform: translateY(-2px); box-shadow: 0 10px 28px rgba(249, 115, 22, 0.4); color: #fff; }
.btn-amazon { background: #ff9900; color: #111; font-weight: 700; box-shadow: 0 4px 14px rgba(255, 153, 0, 0.35); }
.btn-amazon:hover { background: #ffaa22; transform: translateY(-2px); }
.btn-outline { background: #f1f5f9; border: 1px solid #cbd5e1; color: #0f172a; }
.btn-outline:hover { background: #e2e8f0; border-color: var(--color-orange); }

.badge { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.35rem 0.85rem; border-radius: var(--radius-full); font-size: 0.8rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; }
.badge-orange { background: #fff7ed; color: var(--color-orange); border: 1px solid #fed7aa; }
.badge-forest { background: #ecfdf5; color: var(--color-forest); border: 1px solid #a7f3d0; }

/* Hero Luminoso */
.hero { min-height: 75vh; display: flex; align-items: center; padding: 5rem 0; position: relative; background: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%); border-bottom: 1px solid var(--color-border); }
.hero-grid { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 3.5rem; align-items: center; }
.hero-content h1 { margin: 1.2rem 0; color: #0f172a; }
.hero-content p.lead { font-size: 1.15rem; color: #475569; margin-bottom: 2rem; max-width: 580px; }
.hero-actions { display: flex; gap: 1rem; flex-wrap: wrap; margin-bottom: 2.5rem; }

/* Cajas y Tarjetas */
.card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(310px, 1fr)); gap: 2rem; }
.card { background: #ffffff; border: 1px solid var(--color-border); border-radius: var(--radius-lg); padding: 2.2rem; transition: var(--transition); display: flex; flex-direction: column; position: relative; overflow: hidden; box-shadow: var(--shadow-card); }
.card:hover { transform: translateY(-5px); border-color: #cbd5e1; box-shadow: 0 16px 32px rgba(15, 23, 42, 0.1); }
.card-image-top { width: calc(100% + 4.4rem); height: 210px; margin: -2.2rem -2.2rem 1.5rem -2.2rem; position: relative; overflow: hidden; }
.card-image-top img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s ease; }
.card:hover .card-image-top img { transform: scale(1.08); }
.card-footer { margin-top: auto; padding-top: 1.5rem; border-top: 1px solid #e2e8f0; display: flex; align-items: center; justify-content: space-between; }

/* Slider Fotográfico de Campers */
.slider-container { position: relative; width: 100%; border-radius: var(--radius-lg); overflow: hidden; border: 1px solid #fed7aa; height: 460px; box-shadow: var(--shadow-card); margin: 2rem 0; }
.slider-slide { position: absolute; inset: 0; opacity: 0; transition: opacity 0.6s ease, transform 0.6s ease; display: flex; align-items: flex-end; }
.slider-slide.active { opacity: 1; transform: scale(1); z-index: 10; }
.slider-slide img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.slider-caption { position: relative; z-index: 20; padding: 2.5rem; background: linear-gradient(to top, rgba(15, 23, 42, 0.88) 0%, rgba(15, 23, 42, 0.4) 70%, transparent 100%); width: 100%; color: #fff; }
.slider-caption h3, .slider-caption p { color: #fff; }
.slider-nav-btn { position: absolute; top: 50%; transform: translateY(-50%); z-index: 30; width: 48px; height: 48px; border-radius: 50%; background: rgba(255, 255, 255, 0.9); border: 1px solid var(--color-border); color: #0f172a; font-size: 1.4rem; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.slider-nav-btn:hover { background: var(--color-orange); color: #fff; }
.slider-nav-btn.prev { left: 1rem; }
.slider-nav-btn.next { right: 1rem; }
.slider-dots { position: absolute; bottom: 1.25rem; right: 1.5rem; display: flex; gap: 0.5rem; z-index: 30; }
.slider-dot { width: 12px; height: 12px; border-radius: 50%; background: rgba(255, 255, 255, 0.6); border: none; cursor: pointer; }
.slider-dot.active { background: var(--color-orange); transform: scale(1.3); }

/* Bloques de Publicidad Display AdSense */
.ad-slot { background: #f8fafc; border: 1px dashed #cbd5e1; border-radius: var(--radius-md); padding: 1.25rem; margin: 3rem auto; max-width: 960px; text-align: center; }
.ad-label { font-size: 0.7rem; color: #94a3b8; text-transform: uppercase; letter-spacing: 0.08em; display: block; margin-bottom: 0.4rem; }
.ad-content-mockup { display: flex; align-items: center; justify-content: space-between; background: #ffffff; padding: 1rem 1.5rem; border-radius: var(--radius-sm); border: 1px solid #e2e8f0; gap: 1rem; flex-wrap: wrap; text-align: left; }

/* Acordeón FAQ */
.faq-item { background: #ffffff; border: 1px solid var(--color-border); border-radius: var(--radius-md); margin-bottom: 1rem; overflow: hidden; box-shadow: 0 2px 4px rgba(15, 23, 42, 0.04); }
.faq-question { padding: 1.25rem 1.5rem; cursor: pointer; font-weight: 700; font-size: 1.05rem; color: #0f172a; display: flex; justify-content: space-between; align-items: center; list-style: none; min-height: 48px; }
.faq-question::after { content: '+'; font-size: 1.4rem; color: var(--color-orange); }
details[open] .faq-question::after { transform: rotate(45deg); }
.faq-answer { padding: 0 1.5rem 1.5rem; color: var(--color-text-muted); font-size: 0.95rem; }

/* Footer */
.footer { background: #ffffff; border-top: 1px solid var(--color-border); padding: 4.5rem 0 2.5rem; }
.footer-grid { display: grid; grid-template-columns: 1.5fr repeat(3, 1fr); gap: 3rem; margin-bottom: 3rem; }
.footer-col h3 { font-size: 1rem; margin-bottom: 1.25rem; color: #0f172a; }
.footer-col ul { list-style: none; display: flex; flex-direction: column; gap: 0.65rem; }
.footer-col ul a { color: #64748b; font-size: 0.9rem; }
.footer-col ul a:hover { color: var(--color-orange); }
.footer-bottom { border-top: 1px solid #e2e8f0; padding-top: 2rem; display: flex; justify-content: space-between; font-size: 0.85rem; color: #64748b; flex-wrap: wrap; gap: 1rem; }
.footer-bottom a { color: var(--color-orange); text-decoration: underline; }

@media (max-width: 900px) {
  .hero-grid { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 768px) {
  .nav-links { position: fixed; top: 80px; left: 0; right: 0; background: #090e17; flex-direction: column; padding: 2rem; border-bottom: 1px solid var(--color-border); transform: translateY(-120%); transition: var(--transition); }
  .nav-links.active { transform: translateY(0); }
  .btn-mobile-toggle { display: flex; align-items: center; justify-content: center; }
  .footer-grid { grid-template-columns: 1fr; }
}
