/* Estilos generales */
    body {
      font-family: 'Inter', sans-serif;
      background-color: #f0f4f8;
    }
    /* Navbar */
    .navbar-brand {
      font-weight: 700;
      letter-spacing: -0.5px;
      color: #171717 !important;
    }
    .navbar-brand i {
      color: #4CA59B;
    }
    .nav-link {
      font-weight: 600;
      color: #171717 !important;
      margin: 0 0.25rem;
      transition: color 0.2s;
    }
    .nav-link:hover {
      color: #4CA59B !important;
    }
    .nav-link.active {
      color: #4CA59B !important;
    }
    .btn-primary-custom {
       background-color: #4CA59B !important;
    border: none !important;
    color: white !important;
    font-weight: 600 !important;
    padding: 0.6rem 1.8rem !important;
    border-radius: 40px !important;
    transition: background 0.2s !important;
    }
    .btn-primary-custom:hover {
      background-color: #009688;
      color: white;
    }
    .section-title {
      font-weight: 700;
      color: #171717;
      position: relative;
      display: inline-block;
    }
    .section-title::after {
      content: '';
      position: absolute;
      left: 0;
      bottom: -6px;
      width: 60px;
      height: 4px;
      background-color: #4CA59B;
      border-radius: 4px;
    }
    .bg-snow {
      background-color: #e8f0f8;
    }

    /* ========== HERO SNOWBOARD ========== */
    .hero-snow {
      background: linear-gradient(160deg, #0a1a2a 0%, #171717 40%, #0f1a1a 100%);
      padding: 4.5rem 0 5rem 0;
      color: white;
      border-radius: 0 0 70px 70px;
      position: relative;
      overflow: hidden;
    }
    /* Copos de nieve decorativos */
    .hero-snow .snowflake {
      position: absolute;
      color: rgba(255, 255, 255, 0.06);
      font-size: 2rem;
      animation: fall linear infinite;
      z-index: 0;
    }
    .hero-snow .snowflake:nth-child(1) { left: 5%; font-size: 1.5rem; animation-duration: 12s; animation-delay: 0s; }
    .hero-snow .snowflake:nth-child(2) { left: 15%; font-size: 2.5rem; animation-duration: 15s; animation-delay: 2s; }
    .hero-snow .snowflake:nth-child(3) { left: 30%; font-size: 1.2rem; animation-duration: 10s; animation-delay: 1s; }
    .hero-snow .snowflake:nth-child(4) { left: 50%; font-size: 2rem; animation-duration: 14s; animation-delay: 3s; }
    .hero-snow .snowflake:nth-child(5) { left: 70%; font-size: 1.8rem; animation-duration: 11s; animation-delay: 0.5s; }
    .hero-snow .snowflake:nth-child(6) { left: 85%; font-size: 2.8rem; animation-duration: 16s; animation-delay: 4s; }
    .hero-snow .snowflake:nth-child(7) { left: 95%; font-size: 1.4rem; animation-duration: 13s; animation-delay: 1.5s; }

    @keyframes fall {
      0% { transform: translateY(-20px) rotate(0deg); opacity: 0; }
      10% { opacity: 1; }
      90% { opacity: 1; }
      100% { transform: translateY(500px) rotate(360deg); opacity: 0; }
    }

    .hero-snow .glow-snow {
      position: absolute;
      border-radius: 50%;
      filter: blur(120px);
      opacity: 0.10;
      z-index: 0;
    }
    .hero-snow .glow-snow:nth-child(8) {
      width: 500px;
      height: 500px;
      background: #4CA59B;
      top: -200px;
      right: -100px;
    }
    .hero-snow .glow-snow:nth-child(9) {
      width: 350px;
      height: 350px;
      background: #009688;
      bottom: -100px;
      left: -80px;
    }
    .hero-snow .badge-snow {
      background: rgba(76, 165, 155, 0.2);
      color: #4CA59B;
      padding: 0.35rem 1.1rem;
      border-radius: 40px;
      font-weight: 600;
      font-size: 0.75rem;
      border: 1px solid rgba(76, 165, 155, 0.25);
      text-transform: uppercase;
      letter-spacing: 0.08em;
      position: relative;
      z-index: 2;
    }
    .hero-snow h1 {
      font-weight: 900;
      letter-spacing: -0.03em;
      position: relative;
      z-index: 2;
    }
    .hero-snow .lead {
      opacity: 0.8;
      font-weight: 300;
      position: relative;
      z-index: 2;
    }
    .hero-snow .snow-stat {
      background: rgba(255,255,255,0.05);
      backdrop-filter: blur(6px);
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: 16px;
      padding: 0.8rem 1.2rem;
      text-align: center;
      position: relative;
      z-index: 2;
    }
    .hero-snow .snow-stat .number {
      font-size: 1.6rem;
      font-weight: 800;
      color: #4CA59B;
      line-height: 1.2;
    }
    .hero-snow .snow-stat .label {
      font-size: 0.7rem;
      opacity: 0.5;
      text-transform: uppercase;
      letter-spacing: 0.05em;
    }
    .img-placeholder-snow {
      background: linear-gradient(145deg, #1a3a4a, #0f1f2a);
      min-height: 300px;
      border-radius: 24px;
      background-image: url('../img/transport-007.webp');
      background-size: 80px 80px;
      color: #4CA59B;
      font-weight: 600;
      display: flex;
      align-items: center;
      justify-content: center;
      border: 1px solid rgba(76, 165, 155, 0.15);
      position: relative;
      z-index: 2;

        background-size: cover;
        background-position: center;
        background-repeat: no-repeat;
    }
    .breadcrumb-seo {
      font-size: 0.85rem;
      position: relative;
      z-index: 2;
    }
    .breadcrumb-seo .breadcrumb-item a {
      color: #b0b0b0;
      text-decoration: none;
    }
    .breadcrumb-seo .breadcrumb-item.active {
      color: white;
    }

    /* ========== CARDS INVERNALES ========== */
    .winter-card {
      background: white;
      border-radius: 24px;
      padding: 2rem 1.8rem;
      box-shadow: 0 4px 20px rgba(0,0,0,0.04);
      transition: all 0.3s;
      border: 1px solid #e8f0f8;
      height: 100%;
      text-align: center;
      position: relative;
      overflow: hidden;
    }
    .winter-card::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 5px;
      background: linear-gradient(90deg, #4CA59B, #009688);
      opacity: 0;
      transition: opacity 0.3s;
    }
    .winter-card:hover::before {
      opacity: 1;
    }
    .winter-card:hover {
      transform: translateY(-6px);
      box-shadow: 0 20px 40px rgba(0,0,0,0.08);
      border-color: #4CA59B;
    }
    .winter-card .winter-icon {
      width: 68px;
      height: 68px;
      border-radius: 50%;
      background: linear-gradient(135deg, #e8f5f3, #d0ece8);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 1.9rem;
      color: #4CA59B;
      margin: 0 auto 1rem auto;
      transition: transform 0.3s;
    }
    .winter-card:hover .winter-icon {
      transform: scale(1.08) rotate(-5deg);
    }
    .winter-card h5 {
      font-weight: 700;
      font-size: 1.05rem;
      color: #171717;
    }
    .winter-card p {
      color: #6c757d;
      font-size: 0.9rem;
      margin-bottom: 0;
    }

    /* ========== SERVICIOS SNOW ========== */
    .snow-service {
      background: white;
      border-radius: 24px;
      padding: 2rem 1.8rem;
      box-shadow: 0 4px 20px rgba(0,0,0,0.04);
      transition: all 0.3s;
      border: 1px solid #e8f0f8;
      height: 100%;
      position: relative;
    }
    .snow-service:hover {
      transform: translateY(-6px);
      box-shadow: 0 20px 40px rgba(76, 165, 155, 0.10);
      border-color: #4CA59B;
    }
    .snow-service .snow-service-icon {
      width: 60px;
      height: 60px;
      border-radius: 18px;
      background: linear-gradient(135deg, #4CA59B, #009688);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 1.6rem;
      color: white;
      margin-bottom: 1rem;
      box-shadow: 0 8px 20px rgba(76, 165, 155, 0.2);
    }
    .snow-service .tag-snow {
      background: #e8f0f8;
      padding: 0.15rem 0.8rem;
      border-radius: 40px;
      font-size: 0.65rem;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.06em;
      color: #171717;
      display: inline-block;
    }
    .snow-service h5 {
      font-weight: 700;
      font-size: 1.05rem;
      color: #171717;
      margin-top: 0.6rem;
    }
    .snow-service p {
      color: #6c757d;
      font-size: 0.85rem;
    }
    .snow-service .btn-link-snow {
      color: #4CA59B;
      font-weight: 600;
      text-decoration: none;
      font-size: 0.9rem;
      transition: color 0.2s;
    }
    .snow-service .btn-link-snow:hover {
      color: #009688;
    }

    /* ========== PASOS SNOW ========== */
    .snow-step {
      display: flex;
      align-items: center;
      gap: 1.2rem;
      padding: 1.3rem 1.5rem;
      background: white;
      border-radius: 18px;
      box-shadow: 0 2px 10px rgba(0,0,0,0.04);
      transition: all 0.3s;
      border: 1px solid #e8f0f8;
      position: relative;
    }
    .snow-step:hover {
      box-shadow: 0 10px 28px rgba(0,0,0,0.07);
      border-color: #4CA59B;
    }
    .snow-step .snow-num {
      font-weight: 900;
      font-size: 2.2rem;
      color: #4CA59B;
      opacity: 0.18;
      min-width: 50px;
      line-height: 1;
    }
    .snow-step .snow-content h6 {
      font-weight: 700;
      font-size: 0.95rem;
      color: #171717;
      margin-bottom: 0.1rem;
    }
    .snow-step .snow-content p {
      font-size: 0.8rem;
      color: #6c757d;
      margin-bottom: 0;
    }

    /* ========== BADGES ========== */
    .badge-snow-item {
      background: white;
      padding: 0.5rem 1.3rem;
      border-radius: 40px;
      font-weight: 500;
      font-size: 0.82rem;
      display: inline-flex;
      align-items: center;
      gap: 0.5rem;
      border: 1px solid #e8f0f8;
      transition: all 0.2s;
      color: #171717;
      box-shadow: 0 2px 6px rgba(0,0,0,0.02);
    }
    .badge-snow-item:hover {
      border-color: #4CA59B;
      background: #f0faf8;
      transform: translateY(-2px);
    }
    .badge-snow-item i {
      color: #4CA59B;
    }

    /* ========== CTA SNOW ========== */
    .cta-snow {
      background: linear-gradient(135deg, #0a1a2a, #1f2a2a);
      border-radius: 28px;
      padding: 3rem 2.5rem;
      color: white;
      border: 1px solid rgba(76, 165, 155, 0.10);
      position: relative;
      overflow: hidden;
    }
    .cta-snow::before {
      content: '❄';
      position: absolute;
      font-size: 12rem;
      color: rgba(76, 165, 155, 0.04);
      bottom: -2rem;
      right: 2rem;
    }
    .cta-snow .btn-cta-snow {
      background: #4CA59B;
      color: white;
      border: none;
      font-weight: 700;
      padding: 0.8rem 2.2rem;
      border-radius: 40px;
      transition: all 0.3s;
      text-decoration: none;
      display: inline-block;
    }
    .cta-snow .btn-cta-snow:hover {
      background: #009688;
      transform: translateY(-2px);
      box-shadow: 0 8px 24px rgba(76, 165, 155, 0.3);
      color: white;
    }

    /* ========== MODAL ========== */
    .modal-content {
      border-radius: 24px;
      border: none;
      box-shadow: 0 24px 48px rgba(0,0,0,0.25);
      overflow: hidden;
    }
    .modal-header {
      border-bottom: 1px solid #eef2f7;
      padding: 0.8rem 1.2rem;
      background: white;
    }
    .modal-header .modal-title {
      font-weight: 700;
      color: #171717;
      font-size: 1rem;
    }
    .modal-header .modal-title i {
      color: #4CA59B;
    }
    .modal-header .btn-close {
      background: #eef2f7;
      border-radius: 50%;
      padding: 0.4rem;
      opacity: 1;
      width: 30px;
      height: 30px;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: background 0.2s;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='%23171717' viewBox='0 0 16 16'%3E%3Cpath d='M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z'/%3E%3C/svg%3E");
      background-size: 14px;
      background-position: center;
      background-repeat: no-repeat;
      margin-left: auto;
    }
    .modal-header .btn-close:hover {
      background-color: #dce3ec;
    }
    .modal-body {
      padding: 0.5rem 1.5rem 1.5rem 1.5rem;
      display: flex;
      justify-content: center;
      background: #f8f9fa;
    }
    .modal-body iframe {
      width: 100%;
      max-width: 360px;
      height: 520px;
      border-radius: 16px;
      border: none;
      box-shadow: 0 4px 16px rgba(0,0,0,0.06);
    }

    /* ========== FOOTER ========== */
    footer {
      background-color: #171717 !important;
      border-top: 4px solid #4CA59B;
    }
    footer h5, footer h6 {
      color: #4CA59B;
    }
    footer .text-light-emphasis {
      color: #b0b0b0 !important;
    }
    footer .footer-links a {
      color: #b0b0b0;
      text-decoration: none;
      transition: color 0.2s;
    }
    footer .footer-links a:hover {
      color: #4CA59B;
    }
    footer hr {
      border-color: #2a2a2a !important;
    }
    footer .text-light-emphasis i {
      color: #b0b0b0;
      transition: color 0.2s;
    }
    footer .text-light-emphasis i:hover {
      color: #4CA59B;
    }

    @media (max-width: 768px) {
      .hero-snow {
        padding: 3rem 0;
      }
      .hero-snow .snow-stat .number {
        font-size: 1.2rem;
      }
      .snow-step {
        flex-direction: column;
        align-items: flex-start;
      }
      .snow-step .snow-num {
        font-size: 1.6rem;
        min-width: auto;
      }
      .modal-body iframe {
        max-width: 100%;
        height: 480px;
      }
      .cta-snow {
        padding: 2rem 1.5rem;
      }
    }



/* ========== BOTONES FLOTANTES ========== */
.floating-actions {
    position: fixed;
    right: 20px;
    bottom: 20px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    z-index: 1050;
}

.floating-btn {
    width: 58px;
    height: 58px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    color: white;
    text-decoration: none;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.25);
    transition: transform 0.2s, box-shadow 0.2s;
}

.floating-btn:hover {
    transform: scale(1.08);
    color: white;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.3);
}

.floating-btn.call-btn {
    background-color: #4CA59B;
}

.floating-btn.whatsapp-btn {
    background-color: #25D366;
}

.floating-btn.whatsapp-btn::after,
.floating-btn.call-btn::after {
    content: '';
    position: absolute;
    width: 58px;
    height: 58px;
    border-radius: 50%;
    z-index: -1;
    animation: pulse-ring 2s infinite;
}

.floating-btn.call-btn::after {
    background-color: rgba(76, 165, 155, 0.5);
}

.floating-btn.whatsapp-btn::after {
    background-color: rgba(37, 211, 102, 0.5);
}

@keyframes pulse-ring {
    0% {
        transform: scale(1);
        opacity: 0.6;
    }

    100% {
        transform: scale(1.6);
        opacity: 0;
    }
}

/* ========== CHAT BOT WIDGET ========== */
.chat-widget-wrap {
    position: relative;
}

.floating-btn.bot-btn {
    background-color: #171717;
}

.floating-btn.bot-btn::after {
    content: '';
    position: absolute;
    width: 58px;
    height: 58px;
    border-radius: 50%;
    z-index: -1;
    background-color: rgba(23, 23, 23, 0.4);
    animation: pulse-ring 2s infinite;
}

.chat-bubble-box {
    position: absolute;
    right: 0;
    bottom: 74px;
    width: 280px;
    background: white;
    border-radius: 18px;
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.18);
    padding: 1.1rem 1.1rem 1.2rem 1.1rem;
    display: none;
    animation: chat-pop 0.25s ease;
}

.chat-bubble-box.show {
    display: block;
}

.chat-bubble-box::after {
    content: '';
    position: absolute;
    bottom: -8px;
    right: 22px;
    width: 16px;
    height: 16px;
    background: white;
    transform: rotate(45deg);
    box-shadow: 4px 4px 8px rgba(0, 0, 0, 0.04);
}

.chat-bubble-box .chat-close {
    position: absolute;
    top: 10px;
    right: 12px;
    background: none;
    border: none;
    color: #adb5bd;
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
}

.chat-bubble-box .chat-header {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin-bottom: 0.6rem;
}

.chat-bubble-box .chat-avatar {
    width: 38px;
    height: 38px;
    min-width: 38px;
    border-radius: 50%;
    background: linear-gradient(135deg, #4CA59B, #009688);
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 1.1rem;
}

.chat-bubble-box .chat-name {
    font-weight: 700;
    font-size: 0.9rem;
    color: #171717;
    margin-bottom: 0;
}

.chat-bubble-box .chat-status {
    font-size: 0.7rem;
    color: #4CA59B;
    font-weight: 600;
}

.chat-bubble-box .chat-status i {
    font-size: 0.5rem;
    vertical-align: middle;
}

.chat-bubble-box .chat-text {
    font-size: 0.85rem;
    color: #495057;
    line-height: 1.45;
    margin-bottom: 1rem;
}

.chat-bubble-box .chat-quote-btn {
    background: #4CA59B;
    color: white;
    border: none;
    font-weight: 700;
    font-size: 0.85rem;
    padding: 0.55rem 1rem;
    border-radius: 40px;
    width: 100%;
    transition: background 0.2s;
}

.chat-bubble-box .chat-quote-btn:hover {
    background: #009688;
}

@keyframes chat-pop {
    from {
        opacity: 0;
        transform: translateY(8px) scale(0.96);
    }

    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@media (max-width: 768px) {
    .hero-open {
        padding: 3rem 0;
    }

    .hero-open .open-stat .number {
        font-size: 1.2rem;
    }

    .road-step {
        flex-direction: column;
        align-items: flex-start;
    }

    .road-step .road-num {
        font-size: 1.6rem;
        min-width: auto;
    }

    .modal-body iframe {
        max-width: 100%;
        height: 480px;
    }

    .modal-header .btn-close {
        width: 28px;
        height: 28px;
        background-size: 12px;
    }

    .modal-header {
        padding: 0.6rem 1rem;
    }

    .modal-header .modal-title {
        font-size: 0.9rem;
    }

    .service-row .row-content {
        flex: 1;
    }

    .floating-actions {
        right: 16px;
        bottom: 16px;
    }

    .floating-btn {
        width: 52px;
        height: 52px;
        font-size: 1.3rem;
    }

    .chat-bubble-box {
        width: 260px;
        right: 0;
        bottom: 66px;
    }
}