:root {
    --primary-color: #35682d;
    --secondary-color: #97bc62;
    --accent-color: #4c1c04;
    --dark-color: #1a1a1a;
    --light-color: #f8f9fa;
}

/* Global */
* {
    font-family: 'Inter', sans-serif;
    box-sizing: border-box;
}
body {
    background-color: var(--light-color);
    color: var(--dark-color);
    padding-top: 80px;
}
.container.mt-5.pt-5 { padding-top: 120px !important; }
.text-primaryL { --bs-text-opacity: 1; color: #35682d; }
.lead { font-size: 1.1rem; color: #666; }
.list-unstyled li { padding: 8px 0; }
.badge { padding: 8px 12px; border-radius: 8px; font-weight: 500; }

/* Navbar */
.navbar {
    background: linear-gradient(135deg, var(--primary-color) 0%, #1e401f 100%);
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}
.navbar-brand { font-weight: 700; letter-spacing: 1px; }
.logo-wrapper {
    background-color: white;
    width: 130px; height: 130px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 0 10px rgba(0,0,0,0.1);
}
.logo-img { width: 130px; height: 130px; object-fit: contain; transition: all .3s ease; }
.navbar-brand:hover .logo-img { transform: scale(1.05) rotate(-4deg); }
.nav-link { position: relative; margin: 0 15px; transition: all .3s; }
.nav-link::after {
    content:''; position:absolute; bottom:0; left:0; width:0; height:2px;
    background: var(--accent-color); transition: width .3s;
}
.nav-link:hover::after { width:100%; }

/* Cards */
.card-modern{
    border:none; border-radius:15px;
    background: linear-gradient(145deg,#ffffff 0%, #f8f9fa 100%);
    box-shadow:0 8px 30px rgba(0,0,0,.08);
    transition:all .4s cubic-bezier(.175,.885,.32,1.275);
}
.card-modern:hover{ transform: translateY(-10px); box-shadow:0 12px 40px rgba(0,0,0,.12); }
.feature-card{ text-align:center; padding:20px; border-radius:12px; transition:all .3s; }
.feature-card:hover{ transform: translateY(-5px); box-shadow:0 10px 20px rgba(0,0,0,.08); }

/* Buttons */
.btn-custom{
    background: var(--primary-color); color:#fff;
    padding:12px 30px; border-radius:8px; border:2px solid transparent; transition:all .3s;
}
.btn-custom:hover{ background: var(--secondary-color); transform: scale(1.05); }
.btn-icon{ width:45px; height:45px; display:inline-flex; align-items:center; justify-content:center; transition:all .3s ease; }
.btn-icon:hover{ transform: translateY(-3px); box-shadow:0 5px 15px rgba(0,0,0,.3); }
.rounded-pill{ padding:12px 35px; }
.btn-success{ position:relative; overflow:hidden; transition: all .3s ease; }
.btn-success:before{
    content:""; position:absolute; top:-50%; left:-50%; width:200%; height:200%;
    background: rgba(255,255,255,.1); transform: rotate(45deg); transition: all .5s ease;
}
.btn-success:hover:before{ left:50%; }

/* Forms */
.form-control-modern{
    border:2px solid #e9ecef; border-radius:8px; padding:15px; transition: all .3s; width:100%;
}
.form-control-modern:focus{ border-color: var(--primary-color); box-shadow: 0 0 0 3px rgba(44,95,45,.1); }
.form-label{ font-weight:500; color:var(--dark-color); margin-bottom:8px; display:block; }
select.form-control-modern{
    appearance:none;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
    background-repeat:no-repeat; background-position:right 1rem center; background-size:1em;
}
.newsletter-form .form-control{ border-radius:20px 0 0 20px; }
.newsletter-form .btn{ border-radius:0 20px 20px 0; }

/* Tables */
.table-modern{
    background:#fff; border-radius:12px; overflow:hidden; box-shadow:0 4px 24px rgba(0,0,0,.06);
}
.table-modern thead{ background: var(--primary-color); color:#fff; }

/* Footer */
.site-footer{
  background:#0f1f12; color:#d1dbd3; position:relative; font-size:.9rem; line-height:1.5;
}
.wave-divider{ position:absolute; top:-1px; left:0; width:100%; overflow:hidden; line-height:0; }
.wave-divider svg{ display:block; width:100%; height:80px; }
.footer-top{ padding:70px 0 30px; }
.footer-brand .logo-wrapper-sm{
  width:50px; height:50px; border-radius:50%; background:#fff; display:flex; align-items:center; justify-content:center; margin-right:12px;
}
.logo-img-footer{ width:36px; height:36px; object-fit:contain; }
.footer-desc{ margin:0; color:#b3c2b8; }
.footer-title{
  font-weight:700; margin-bottom:.75rem; text-transform:uppercase; letter-spacing:1px; font-size:.85rem; color:#fff;
}
.footer-links{ list-style:none; padding:0; margin:0; }
.footer-links li + li{ margin-top:6px; }
.footer-links a{
  color:#d1dbd3; text-decoration:none; position:relative; padding-left:4px; transition:color .2s ease;
}
.footer-links a:hover{ color: var(--secondary-color); }
.footer-links a:before{
  content:'›'; position:absolute; left:0; color: var(--secondary-color); font-size:.9em; line-height:1;
}
.social-icons{ display:flex; gap:10px; margin-top:8px; }
.social-btn{
  display:inline-flex; align-items:center; justify-content:center;
  background: rgba(255,255,255,.08); width:38px; height:38px; border-radius:50%;
  color:#fff; font-size:.9rem; transition: all .2s ease;
}
.social-btn:hover{ background: var(--secondary-color); transform: translateY(-2px); }
.link-plain{ color:#d1dbd3; text-decoration:none; transition: color .2s; }
.link-plain:hover{ color: var(--secondary-color); }

/* Botón flotante WhatsApp */
.btn-whatsapp-floating{
  position: fixed; right:16px; bottom:16px; z-index:1051;
  width:56px; height:56px; border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center;
  background-color:#25D366; color:#fff; text-decoration:none;
  box-shadow:0 6px 20px rgba(0,0,0,.25);
  transition: transform .15s ease, box-shadow .15s ease, opacity .2s;
  opacity:.95;
}
.btn-whatsapp-floating:hover{ transform: translateY(-2px); box-shadow:0 8px 24px rgba(0,0,0,.28); opacity:1; }
.btn-whatsapp-floating i{ font-size:1.6rem; line-height:1; }

/* Back to Top (UNIFICADO) */
.btn-back-to-top{
  position: fixed; right:16px; bottom:88px; z-index:1052;
  width:56px; height:56px; border:0; border-radius:50%;
  background:#0d6efd; color:#fff;
  display:inline-flex; align-items:center; justify-content:center;
  box-shadow:0 6px 20px rgba(0,0,0,.25); cursor:pointer;
  opacity:0; visibility:hidden; transition: opacity .2s ease, transform .2s ease, visibility .2s;
}
.btn-back-to-top.show{ opacity:1; visibility:visible; }
.btn-back-to-top:hover{ transform: translateY(-2px); }

/* Footer bottom */
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.08); padding:15px 0; font-size:.75rem;
}
.footer-bottom .footer-links-inline{ display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.footer-bottom a{ color:#a7b4aa; text-decoration:none; }
.footer-bottom a:hover{ color: var(--secondary-color); }
.divider, .separator{ margin:0 6px; color: rgba(255,255,255,.4); }

/* Color utilities */
.bg-primary{ background-color: var(--primary-color) !important; }
.bg-success{ background-color:#28a745 !important; }
.bg-warning{ background-color:#ffc107 !important; }
.bg-danger{ background-color:#dc3545 !important; }
.bg-info{ background-color:#17a2b8 !important; }
.bg-purple{ background-color:#6f42c1 !important; }

/* Accordion support */
.accordion-button{ font-weight:500; background: rgba(44,95,45,.1); }
.accordion-button:not(.collapsed){ background: var(--primary-color); color:#fff; }

/* FAQ Section */
.faq-section{ background:#f4f7f9; padding-bottom:60px; }
.faq-section .display-5{ color:#1a1a1a; }
.faq-section .accordion{ max-width:1000px; margin:0 auto; }

.faq-section .accordion-item{ border:none; margin-bottom:16px; background:transparent; }
.faq-section .accordion-button{
  background:#fff; border-radius:12px; padding:1rem 1.25rem; font-weight:600; font-size:1rem; color:#1a1a1a;
  box-shadow:0 12px 40px -10px rgba(0,0,0,.06); transition: background .2s ease, transform .2s ease;
  border:1px solid rgba(0,0,0,.05);
}
.faq-section .accordion-button:not(.collapsed){
  background:#fff; color: var(--primary-color); box-shadow:0 16px 50px -10px rgba(53,104,45,.2);
}
.faq-section .accordion-button:focus{ outline:3px solid rgba(53,104,45,.4); }
.faq-section .accordion-body{
  background:#fff; border-radius:0 0 12px 12px; padding:1rem 1.25rem;
  border:1px solid rgba(0,0,0,.05); border-top:none; position:relative;
  font-size:.95rem; color:#444; line-height:1.55;
}
.faq-section .accordion-body strong{ color:#1a1a1a; }
.faq-section .accordion-body ul{ padding-left:1.2rem; margin-top:.5rem; }
.faq-section .accordion-body li{ margin-bottom:.4rem; }
.faq-section .citation{ display:block; margin-top:8px; font-size:.7rem; color:#888; }

/* Optional search/filter bar */
.faq-search-wrapper{ max-width:800px; margin:0 auto 40px; position:relative; }
.faq-search-wrapper input{
  width:100%; padding:12px 16px; border-radius:10px; border:1px solid #dfe3e8;
  font-size:1rem; box-shadow:0 8px 30px rgba(0,0,0,.03); transition: border .2s ease;
}
.faq-search-wrapper input:focus{ border-color: var(--primary-color); outline:none; }

/* Small label / section subtitle */
.faq-subtitle{
  text-align:center; margin-bottom:8px; font-size:.9rem; text-transform:uppercase; letter-spacing:1px; color:#6c757d;
}

/* Features Section */
.features-section{
    background:#fff; border-radius:30px; margin:-50px 0;
    box-shadow:0 -20px 40px rgba(0,0,0,.03);
}
.feature-icon{
    width:70px; height:70px; border-radius:15px; display:flex; align-items:center; justify-content:center;
    margin:0 auto 1.5rem; font-size:1.8rem; transition: transform .3s;
}
.card-modern:hover .feature-icon{ transform: rotate(15deg) scale(1.1); }
.feature-icon-sm{
    width:50px; height:50px; border-radius:10px; display:flex; align-items:center; justify-content:center;
    margin:0 auto; font-size:1.4rem;
}

/* Hero Section */
.hero-section{ padding:100px 0; background: linear-gradient(45deg,#f8f9fa 0%, #e9f5ec 100%); }
.hero-section img{ border:5px solid #fff; box-shadow:0 15px 40px rgba(0,0,0,.1); }

/* Login Card */
.login-card{
    max-width:500px; margin:40px auto; padding:40px; border-radius:20px;
    background:#fff; box-shadow:0 12px 40px rgba(0,0,0,.1);
}

/* Modals */
.modal-content{ border-radius:15px; border:none; }

/* News Carousel */
.news-carousel{ position:relative; width:80%; margin-top:90px; margin-bottom:80px; margin-left:auto; margin-right:auto; }
.news-carousel .carousel-inner{ border-radius:15px; overflow:hidden; box-shadow:0 5px 15px rgba(0,0,0,.2); }
.news-carousel .carousel-item{ height:500px; overflow:hidden; position:relative; }
.news-img-fija{ width:100%; height:100%; display:block; }
.news-carousel .carousel-caption{
  bottom:0; top:unset; transform:none; background: rgba(0,0,0,.5);
  padding:1.25rem 1.5rem; width:100%; left:0; border-radius:0; text-shadow:1px 1px 3px rgba(0,0,0,.5);
}
.news-carousel .carousel-caption .caption-content{ position:relative; z-index:1; }
.news-carousel .carousel-indicators{ bottom:20px; }
.news-carousel .carousel-indicators button{
  width:12px; height:12px; border-radius:50%; margin:0 8px; border:2px solid #fff; background:transparent;
}
.news-carousel .carousel-indicators .active{ background:#fff; }

/* Responsive: grandes */
@media (min-width: 992px){
  .btn-whatsapp-floating{ right:24px; bottom:24px; width:60px; height:60px; }
  .btn-back-to-top{ right:24px; bottom:100px; }
}

/* Responsive: medianos */
@media (min-width: 768px) and (max-width: 991.98px){
    .news-carousel .carousel-item{ height:400px; }
    .news-img-fija{ height:400px; }
    .news-carousel .carousel-caption{ width:70%; padding:1.5rem; }
    .news-carousel .carousel-caption h3{ font-size:1.5rem; }
}

/* Responsive: móviles */
@media (max-width: 767.98px){
    body{ padding-top:60px; }
    .container.mt-5.pt-5{ padding-top:60px !important; }
    .navbar-brand{ font-size:1.2rem; }
    .logo-wrapper{ width:80px; height:80px; }
    .logo-img{ width:80px; height:80px; }
    .navbar-toggler{ font-size:1.2rem; }
    .nav-link{ margin:0 10px; padding:8px 0; text-align:center; }
    .news-carousel{ margin-top:30px; }
    .news-carousel .carousel-item{ height:300px; }
    .news-img-fija{ height:300px; }
    .news-carousel .carousel-caption{
        width:95%; padding:1rem; bottom:10px; transform: translateX(-50%); left:50%; text-align:center;
    }
    .news-carousel .carousel-caption h3{ font-size:1.2rem; margin-bottom:.5rem; }
    .news-carousel .carousel-caption p{ display:none; }
    .news-carousel .carousel-caption .btn{ font-size:.8rem; padding:.25rem .75rem; }
    .news-carousel .carousel-indicators{ bottom:5px; }
    .news-carousel .carousel-indicators button{ width:8px; height:8px; margin:0 4px; }
    .btn-custom{ padding:10px 20px; font-size:.9rem; }
    .rounded-pill{ padding:10px 25px; }
    .card-modern{ margin-bottom:20px; }
    .features-section{ margin:20px 0; border-radius:15px; }
    .feature-icon{ width:60px; height:60px; font-size:1.5rem; }
    .hero-section{ padding:60px 0; }
    .login-card{ padding:25px; margin:20px auto; }
    .footer{ padding-top:20px; padding-bottom:20px; margin-top:40px; }
    .footer .text-center-md-start{ text-align:center !important; }
    .footer .col-md-4, .footer .col-md-3{ margin-bottom:20px; }
}

/* Responsive: xs */
@media (max-width: 575.98px){
    .logo-wrapper{ width:60px; height:60px; }
    .logo-img{ width:60px; height:60px; }
    .navbar-brand{ font-size:1rem; }
    .news-carousel .carousel-item{ height:250px; }
    .news-img-fija{ height:250px; }
    .news-carousel .carousel-caption{ width:98%; padding:.8rem; bottom:5px; }
    .news-carousel .carousel-caption h3{ font-size:1rem; }
    .news-carousel .carousel-caption .btn{ font-size:.75rem; padding:.2rem .6rem; }
    .btn-custom{ padding:8px 15px; font-size:.85rem; }
    .rounded-pill{ padding:8px 20px; }
    .login-card{ padding:20px; margin:15px auto; }
}

/* Print: oculta flotantes */
@media print{
  .btn-whatsapp-floating, .btn-back-to-top{ display:none !important; }
}
