﻿.footer-logo-text h3, .footer-logo-text p {color:#fff;}
.footer a {color:#fff;}
.footer a:hover {opacity:0.8;}
#booking-form .checkbox-group input[type="checkbox"] { margin-right: 0.35rem; vertical-align: middle; }
.nav-cta, .nav-icon-link { border-radius: 10px; }


.nav-reservar-mobile {
  display: none;
  text-decoration: none;
}

.skip-link {
  position: absolute;
  top: auto;
  left: -9999px;
  background-color: #ffffff;
  color: #000000;
  padding: 8px 16px;
  z-index: 2000;
  text-decoration: none;
  border-radius: 0 0 4px 0;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.skip-link:focus,
.skip-link:focus-visible {
  top: 0;
  left: 0;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}


:root{--primary-color:#1a2a45;--secondary-color:#D4AF37;--light-gray:#f8f9fa;--dark-gray:#212529;--text-color:#555;--white:#fff;--success-color:#28a745;--error-color:#dc3545}
*{margin:0;padding:0;box-sizing:border-box}
        
        html {
            scroll-padding-top: 90px;
            scroll-behavior: auto;
        }

        html, body{width:100%; overflow-x: hidden;}.container{max-width:1100px;margin:auto;padding:4rem 1.5rem;text-align:center}h2{font-size:2.5rem;color:var(--primary-color);margin-bottom:1rem;margin-top:1rem;text-align:center}h3{font-size:1.5rem;color:var(--primary-color);margin-bottom:0.8rem}.btn{display:inline-block;padding:14px 32px;text-decoration:none;border-radius:50px;font-weight:700;transition:transform .3s ease, box-shadow .3s ease, background-color .3s ease, color .3s ease;border:none;cursor:pointer;font-size:1rem;letter-spacing:.5px}.btn-primary{background-color:var(--secondary-color);color:var(--dark-gray)}.btn-secondary{background-color:var(--primary-color);color:var(--white); border: 2px solid var(--primary-color);}.btn-outline-secondary { background-color: transparent; color: var(--dark-gray); border: 2px solid #6c757d;}.btn-outline-secondary:hover { background-color: #6c757d; color: var(--white);}.btn-light { background-color: #f8f9fa; color: #212529; border: 1px solid #dee2e6;}.btn-light:hover { background-color: #e2e6ea; border-color: #dae0e5;}.btn-large { font-size: 1.2rem; padding: 18px 40px;}.btn:hover{transform:translateY(-5px);box-shadow:0 10px 20px rgba(0,0,0,.2)}.btn-primary:hover { background-color: #c49a31; } .btn-secondary:hover { background-color: #111e36; color: var(--white); border-color: #111e36; }

        body {
            font-family: 'Inter', system-ui, -apple-system, sans-serif;
            color: rgba(60,60,60,0.9);
            line-height: 1.75;
            -webkit-font-smoothing: antialiased;
            background-color: #f8f9fa;
        }

        h1, h2, h3 {
            letter-spacing: -0.3px;
            font-weight: 700;
            color: #1a2a45;
        }
 .navbar{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:1000;
  width:100%;
  margin:0;
  max-width:none;
  padding:2px 18px;
  transition:background-color .4s ease,padding .4s ease,transform .3s ease, box-shadow .3s ease;
  border-radius:0 0 12px 12px;
  background-color:transparent;
  box-shadow:none;
 }
 @media (max-width: 992px){
  .navbar{
    padding:8px 14px;
    border-radius:0 0 10px 10px;
    box-shadow:none;
  }
 }

        .navbar.scrolled{background-color:var(--primary-color);box-shadow:0 4px 18px rgba(0,0,0,0.15)}
        .nav-container{max-width:1200px;margin:0 auto;padding:0 12px;display:flex;align-items:center}
        .nav-logo img{
            height: 64px;
            width: auto;
            max-width: 140px;
        }
        @media (min-width: 992px) {
            .nav-logo img {
                height: 64px;
            }

            
            .nav-links {
                flex: 1 1 auto;
                justify-content: center;
            }
        }
        .nav-menu{display:flex;align-items:center;gap:1.5rem}.nav-links{list-style:none;display:flex;align-items:center;gap:1.5rem}.nav-icons{display:flex;align-items:center;gap:.6rem;margin-left:auto}.nav-links a{color:var(--white);text-decoration:none;font-weight:700;font-size:.9rem;padding:5px;display:flex;align-items:center;gap:5px;border-bottom:2px solid transparent;transition:color .3s ease,border-bottom-color .3s ease}.nav-links a:hover{color:var(--secondary-color);border-bottom-color:var(--secondary-color)}.hamburger{display:none;cursor:pointer;border:0;background:none;padding:0;-webkit-appearance:none;appearance:none;}.hamburger span{display:block;width:25px;height:3px;margin:5px 0;background-color:var(--white);transition:all .3s ease-in-out}

        
        .nav-quick-icons {
            display: none; 
            width: 100%;
        }

        .nav-quick-icons-row {
            display: flex;
            align-items: center;
            justify-content: center; 
            gap: 1.2rem; 
            padding-top: 0.3rem; 
            margin-top: 0.1rem;
            border-top: 1px solid rgba(255, 255, 255, 0.16);
            width: 100%;
        }

        .nav-quick-icons-left {
            display: flex;
            align-items: center;
            gap: 0.12rem; 
        }

        .nav-quick-icon-link {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            color: #ffffff;
            text-decoration: none;
            font-size: 1rem; 
        }

        .nav-quick-icon-link i {
            color: #ffffff;
            font-size: 16px; 
            line-height: 1;
        }

        .nav-quick-icon-link:hover i,
        .nav-quick-icon-link:focus-visible i {
            color: var(--secondary-color);
        }

        
        .btn:focus-visible,
        .nav-links a:focus-visible,
  .nav-reservar-mobile:focus-visible,
  .nav-icon-link:focus-visible,
  .contact-link:focus-visible,
  .hamburger:focus-visible {
            outline: 2px solid rgba(246, 226, 122, 0.9); 
            outline-offset: 2px;
            box-shadow: none;
        }
        @media (min-width: 992px) {
            .nav-links a {
                font-size: calc(0.9rem * 1.14);
            }
            .nav-icon-link {
                font-size: calc(1rem * 1.254);
            }
        }
        .hero-split{
            position:relative;
            display:flex;
            flex-direction:column;
            justify-content:center;
            align-items:center;
            padding:0;
            min-height:100vh;
            color:var(--white);
            text-align:center;
            overflow:hidden;
            background-image:url('https://taxiconil.netlify.app/IMG/PORTADA-TAXI-CONIL.jpeg');
            background-size:cover;
            background-position:center 46%;
            background-repeat:no-repeat;
        }
        .hero-split::before{
            content:'';
            position:absolute;
            top:0;
            left:0;
            right:0;
            bottom:0;
            background:linear-gradient(180deg, rgba(0,0,0,0.30) 0%, rgba(0,0,0,0.25) 40%, rgba(0,0,0,0.60) 100%);
            z-index:1;
        }

        .hero-text{
            position:absolute;
            top:0;
            left:0;
            right:0;
            bottom:0;
            display:flex;
            flex-direction:column;
            justify-content:center;
            align-items:center;
            max-width:900px;
            margin:0 auto;
            padding:120px 1.5rem 90px;
            text-align:center;
            color:var(--white);
            z-index:2;
        }

        .hero-text h1{
            font-size:4.5rem;
            color:var(--white);
            line-height:1.1;
            margin-bottom: 0rem;
            font-weight: 700;
             text-shadow: 2px 2px 4px rgba(0,0,0,0.3);
        }
        @media (min-width: 1200px) {
            .hero-text {
                max-width: 1150px;
            }
            .hero-text h1{
                font-size:5rem;
            }
        }
        .hero-text .slogan {
            font-size: 1.6rem;
            color: var(--secondary-color);
            font-style: italic;
            margin-top: 0.2rem;
            margin-bottom: 3rem;
            display: block;
            font-weight: 400;
            padding-left: 0.1em;
             text-shadow: 0 1px 2px rgba(0,0,0,0.18);
        }
        .hero-text p:not(.slogan){
            font-size:1.25rem;
            margin: 2rem 0;
            max-width:600px;
            color:var(--light-gray);
            line-height: 1.7;
            text-shadow: 1px 1px 3px rgba(0,0,0,0.45);
        }
        .hero-buttons .btn {
            margin-top: 2.8rem;
            white-space: normal;
            animation: heroPulse 2s infinite ease-in-out;
        }
         @keyframes heroPulse {
            0% { transform: scale(1); box-shadow: 0 0 0 0 rgba(212, 175, 55, 0.4);}
            70% { transform: scale(1.03); box-shadow: 0 0 10px 15px rgba(212, 175, 55, 0);}
            100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(212, 175, 55, 0);}
        }

        .hero-image{display:none;}

        .calculator-section{background-color:var(--light-gray);border-bottom:1px solid #eee}.booking-form-section{background-color:var(--white);text-align:left}
        
        
        
        form{margin-top:2rem;text-align:left}
        fieldset { border: none; padding: 0; margin: 0; margin-bottom: 2.5rem; border-top: 1px solid #eee; padding-top: 2rem;}
        legend { 
            font-size: 1.6rem; 
            font-weight: 700; 
            color: var(--primary-color); 
            margin-bottom: 1.5rem; 
            padding: 0 10px;
            width: 100%;
            border: none;
            text-align: center;
            letter-spacing: -0.3px;
        }

        .modify-trip-wrapper {
            text-align: center;
            margin-top: 0.25rem;
            margin-bottom: 0.75rem;
        }
        .modify-trip-link {
            display: inline-block;
            font-size: 0.85rem;
            font-weight: 600;
            color: rgba(26, 42, 69, 0.85);
            text-decoration: none;
            padding: 6px 12px;
            border-radius: 999px;
            border: 1px solid rgba(26, 42, 69, 0.18);
            background: rgba(255, 255, 255, 0.65);
            transition: background-color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
        }
        .modify-trip-link:hover {
            background: rgba(212, 175, 55, 0.12);
            border-color: rgba(212, 175, 55, 0.55);
            transform: translateY(-1px);
        }
        .modify-trip-link:focus-visible {
            outline: 2px solid rgba(246, 226, 122, 0.9);
            outline-offset: 2px;
            box-shadow: none;
        }

        @media (max-width: 768px) {
            .modify-trip-link {
                font-size: 0.9rem;
                padding: 10px 16px;
            }
        }

        .form-row{display:flex;gap:1.5rem;margin-bottom:1rem}.form-group{flex:1;margin-bottom:1rem;position:relative}.form-group label{display:block;margin-bottom:8px;font-weight:700;color:var(--primary-color)}.required-star{color:var(--error-color);margin-left:4px}form input,form textarea, form select{width:100%;padding:14px;border:1px solid #ddd;border-radius:5px;font-size:1rem;font-family:inherit}form textarea{resize:vertical;min-height:80px}.checkbox-group{display:flex;align-items:center;margin-bottom:.5rem}.checkbox-group input{margin-right:10px;width:18px;height:18px}.checkbox-group label{margin-bottom:0;font-weight:400;color:var(--text-color)}form button{width:100%;padding:15px;font-size:1.2rem;margin-top:1rem;border-radius:50px}#price-calculator-form .form-row{display:flex}

        
        form input:focus,
        form input:focus-visible,
        form textarea:focus,
        form textarea:focus-visible,
        form select:focus,
        form select:focus-visible {
            outline: none;
            border-color: var(--secondary-color);
            box-shadow: none;
        }

        
        input[type="tel"]:focus,
        input[type="tel"]:focus-visible {
            box-shadow: none;
        }
        #price-calculator-form button {
            width: 100%;
            margin-top: 1.5rem;
            font-size: 1.1rem;
            padding: 16px;
            animation: heroPulse 2.5s infinite ease-in-out;
        }
        #price-calculator-form { padding: 2.5rem; background-color: var(--light-gray); border-radius: 8px; box-shadow: 0 5px 15px rgba(0,0,0,0.05);} #price-calculator-form label { font-weight: 600; font-size: 0.95rem;} #price-calculator-form .form-group { margin-bottom: 1.2rem;}
        .destination-note { 
            display: block; 
            font-size: 0.85rem; 
            color: #495057; 
            text-align: left; 
            margin-top: 5px; 
            padding-left: 2px;
            margin-bottom: 0; 
        }
        .address-summary {
            display: none !important;
        }
        .address-summary.address-summary--visible {
            display: none !important;
        }
        .address-summary.address-summary--valid::before {
            content: none !important;
        }
        .recent-addresses {
            display: none !important;
        }
        .recent-address-chip {
            display: none !important;
        }
        .recent-address-chip:hover {
            background-color: #f1f3f5;
            border-color: #ced4da;
        }
        #price-calculator-form .form-group.destination-group {
             margin-bottom: 0; 
        }

        
        #calculation-result, #return-details, #child-seat-questions, #baby-seat-age-question, #return-calculation-result, #route-map-container, #return-route-map-container {
            display: none;
        }
        
        #calculation-result.visible, #return-details.visible, #child-seat-questions.visible, #baby-seat-age-question.visible, #return-calculation-result.visible, #route-map-container.visible, #return-route-map-container.visible {
            display: block;
            animation: fadeInDown 0.5s ease;
        }

        #calculation-result.hiding, #return-details.hiding, #child-seat-questions.hiding, #baby-seat-age-question.hiding, #return-calculation-result.hiding, #route-map-container.hiding, #return-route-map-container.hiding {
            display: block;
            animation: fadeOutUp 0.28s ease forwards;
        }
        
        @keyframes fadeInDown {
            from {
                opacity: 0;
                transform: translateY(-20px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        @keyframes fadeOutUp {
            from {
                opacity: 1;
                transform: translateY(0);
            }
            to {
                opacity: 0;
                transform: translateY(-10px);
            }
        }
        
        
        #booking-form-wrapper {
            display: none;
        }
        
        #booking-form-wrapper.visible {
            display: block !important;
            animation: fadeInDown 0.5s ease;
        }
        
        #formulario-reserva {
            display: none;
            background-color: var(--light-gray);
            padding-top: 2rem;
        }
        
        
        #booking-confirmation-overlay {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: rgba(11, 21, 37, 0.92); 
            z-index: 2000;
            display: none;
            justify-content: center;
            align-items: center;
            opacity: 0;
            visibility: hidden;
            transition: opacity 0.5s ease, visibility 0.5s ease;
            padding: 1.5rem 1rem;
            backdrop-filter: blur(8px);
        }
        #booking-confirmation-overlay.visible {
            display: flex !important;
            opacity: 1;
            visibility: visible;
        }
        .confirmation-modal {
            background-color: var(--white);
            padding: 3rem 3.5rem;
            border-radius: 12px;
            box-shadow: 0 20px 60px rgba(0,0,0,0.5);
            width: 100%;
            max-width: 720px;
            margin: 0 auto;
            max-height: 95vh;
            overflow-y: auto;
            text-align: left;
            border-top: 6px solid var(--secondary-color);
        }
        .confirmation-header {
            border-bottom: 1px solid #e3e6ef;
            padding-bottom: 1.5rem;
            margin-bottom: 1.5rem;
        }
        .confirmation-intro {
            margin-bottom: 0;
            font-size: 0.98rem;
            color: #5a6275;
            border: none;
            padding-bottom: 0;
        }
        .confirmation-grid {
            display: grid;
            grid-template-columns: 1fr;
            gap: 1.5rem;
            align-items: flex-start;
            margin-bottom: 1.5rem;
        }
        .confirmation-column {
            min-width: 0;
        }
        .confirmation-section-title {
            margin-top: 0;
            margin-bottom: 0.75rem;
            font-size: 1rem;
            letter-spacing: 0.05em;
            text-transform: uppercase;
            color: var(--primary-color);
        }
        .confirmation-total-row {
            display: flex;
            justify-content: space-between;
            align-items: baseline;
            border-top: 1px solid #e3e6ef;
            margin-top: 1.25rem;
            padding-top: 1.25rem;
        }
        .confirmation-total-label {
            font-weight: 600;
            font-size: 0.95rem;
            letter-spacing: 0.05em;
            text-transform: uppercase;
            color: var(--primary-color);
        }
        .confirmation-total-amount {
            font-weight: 700;
            font-size: 1.8rem;
            color: var(--secondary-color);
        }
        .confirmation-route-wrapper {
            margin-top: 0.75rem;
            margin-bottom: 1.5rem;
        }

        .confirmation-route-map-container {
            display: none;
            margin-top: 0.75rem;
            margin-bottom: 1.25rem;
        }

        .confirmation-route-map-container.visible {
            display: block;
        }

        .confirmation-route-toggle {
            font-size: 0.95rem;
            padding: 10px 18px;
        }
        @media (max-width: 768px) {
            .confirmation-grid {
                grid-template-columns: 1fr;
                gap: 1.25rem;
            }
        }
        
        #booking-success-message {
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            width: 100%;
            height: 100vh;
            background-color: #0b1525;
            z-index: 2100;
            display: none;
            justify-content: center;
            align-items: center;
            padding: 1.5rem;
            backdrop-filter: blur(8px);
        }
        #booking-success-message.visible {
            display: flex !important;
        }
        #booking-success-message .container-inner {
            background-color: var(--white);
            padding: 3rem 3.5rem;
            border-radius: 12px;
            box-shadow: 0 20px 60px rgba(0,0,0,0.5);
            width: 95%;
            max-width: 700px;
            text-align: center;
        }
        #booking-success-message h3 {
            font-size: 2rem;
            color: var(--primary-color);
            margin-top: 0;
            margin-bottom: 1.5rem;
        }
        #booking-success-message p {
            font-size: 1.05rem;
            color: var(--text-color);
            margin-bottom: 0.9rem;
            line-height: 1.8;
        }
        .confirmation-modal h2 {
            text-align: center;
            color: var(--primary-color);
            font-size: 2.5rem;
            margin-top: 0;
            margin-bottom: 2rem;
        }
        .confirmation-modal p {
             margin-bottom: 1rem;
             color: var(--text-color);
             font-size: 1.1rem;
             line-height: 1.8;
             border-bottom: 1px solid #eee;
             padding-bottom: 1rem;
         }
         .confirmation-modal p strong {
             color: var(--primary-color);
             min-width: 180px;
             display: inline-block;
             font-weight: 600;
         }
         .confirmation-modal p span {
             font-weight: 500;
             color: #333;
             display: block;
             margin-top: 0.25rem;
         }
         .confirmation-buttons {
             margin-top: 3rem;
             display: flex;
             justify-content: space-between;
             gap: 1.5rem;
         }
         .confirmation-buttons .btn {
              flex: 1;
              padding: 18px 30px;
              font-size: 1.2rem;
         }
         @media (max-width: 576px) {
             .confirmation-modal {
                 padding: 2rem 1.5rem;
             }

             .confirmation-modal h2 {
                 font-size: 1.9rem;
                 margin-bottom: 1.5rem;
             }

             .confirmation-modal p {
                 font-size: 1rem;
                 padding-bottom: 0.75rem;
                 margin-bottom: 0.75rem;
             }

             .confirmation-modal p strong {
                 min-width: 0;
                 display: block;
                 margin-bottom: 0.15rem;
             }

             .confirmation-modal p span {
                 margin-top: 0;
             }

             .confirmation-total-row {
                 flex-direction: column;
                 align-items: flex-start;
                 gap: 0.25rem;
             }

             .confirmation-total-amount {
                 font-size: 1.5rem;
             }

             .confirmation-buttons {
                 margin-top: 2.25rem;
                 flex-direction: column;
                 align-items: stretch;
                 gap: 0.9rem;
             }

             .confirmation-buttons .btn {
                 width: 100%;
                 padding: 14px 20px;
                 font-size: 1.05rem;
             }

             #booking-confirmation-overlay {
                 padding: 1.25rem 0.75rem;
             }

             #booking-success-message .container-inner {
                 padding: 2.3rem 1.6rem;
             }

             #booking-success-message h3 {
                 font-size: 1.7rem;
                 margin-bottom: 1.2rem;
             }

             #booking-success-message p {
                 font-size: 0.98rem;
                 line-height: 1.7;
             }

             #back-to-home-btn {
                 width: 100%;
                 padding: 14px 18px;
                 font-size: 1.05rem;
             }
         }
         #final-book-btn {
              animation: pulseStrong 1.5s infinite;
              white-space: normal;
              overflow-wrap: break-word;
              word-wrap: break-word;
         }
         @keyframes pulseStrong {
            0% { transform: scale(1); box-shadow: 0 0 0 0 rgba(212, 175, 55, 0.7);}
            50% { transform: scale(1.05); box-shadow: 0 0 10px 15px rgba(212, 175, 55, 0);}
            100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(212, 175, 55, 0);}
         }

        
        #legal-faq h4 {
            
            margin-top: 0;
            margin-bottom: 0.45rem;
            font-size: 1.02rem;
        }

        #legal-faq h3 + h4 {
            
            margin-top: 2.2rem;
        }

        #legal-faq h4 + p {
            
            margin-top: 0;
            margin-bottom: 3.2rem;
        }


        #child-seat-questions {
             border-left: 3px solid var(--secondary-color);
             padding-left: 1.5rem !important;
             margin-left: 0;
             margin-bottom: 1.5rem !important;
             border-top: 1px solid #eee;
        }
         #baby-seat-age-question {
             margin-left: 1rem;
             padding-left: 1rem !important;
             border-left: 2px dashed #ddd;
             margin-bottom: 1rem !important;
         }

        #calculation-result.visible, #return-calculation-result.visible {
             margin-top: 2.5rem !important;
             padding: 2.5rem !important;
             background-color: var(--primary-color);
             color: var(--white);
             border-radius: 8px;
             box-shadow: 0 10px 30px rgba(0,0,0,.15);
             text-align: center;
             border: 1px solid var(--secondary-color);
        }
        
        #return-details.visible {
            margin-top: 1.5rem !important;
            margin-bottom: 1.5rem !important;
            padding-left: 1.5rem !important;
            border-left: 3px solid var(--secondary-color);
            padding-top: 2rem !important;
            padding-bottom: 2rem !important;
        }
         #child-seat-questions.visible {
             margin-top: 2rem !important;
             padding-top: 2rem !important;
             padding-bottom: 2rem !important;
             border-left: 3px solid var(--secondary-color);
             padding-left: 1.5rem !important;
             margin-left: 0;
             margin-bottom: 1.5rem !important;
             border-top: 1px solid #eee;
        }
        #baby-seat-age-question.visible {
             margin-top: 1.5rem !important;
             padding-top: 1.5rem !important;
             padding-bottom: 1rem !important;
             margin-left: 1rem;
             padding-left: 1rem !important;
             border-left: 2px dashed #ddd;
             margin-bottom: 1rem !important;
        }


        #calculation-result p, #return-calculation-result p{color:var(--light-gray);margin:.5rem 0; font-size: 1.1rem;} 
        
        #calculation-result .result-details, #return-calculation-result .result-details { 
            display: flex; 
            justify-content: space-around; 
            flex-wrap: wrap; 
            gap: 1rem; 
            margin-bottom: 1.5rem; 
            padding-bottom: 1.5rem; 
            border-bottom: 1px dashed rgba(255,255,255,0.3);
        } 
        
        #calculation-result .detail-item, #return-calculation-result .detail-item { 
            font-size: 1.1rem; 
        } 
        
        #calculation-result .detail-item strong, #return-calculation-result .detail-item strong { 
            font-size: 1.5rem; 
            color: var(--secondary-color); 
            display: block;
        } 
        
        #calculation-result .final-price, #return-calculation-result .final-price{
            font-size:2.8rem;
            font-weight:700;
            color:var(--secondary-color);
            margin: 1.5rem 0 2rem 0;
            line-height:1.2
        }
        
        .route-map-toggle-wrapper {
            margin-top: 0.5rem;
            margin-bottom: 1.25rem;
            text-align: center;
        }

        
        #calculation-result .route-map-toggle-btn,
        #return-calculation-result .route-map-toggle-btn {
            width: auto;
            display: inline-flex;
        }

        .route-map-toggle-btn {
            background-color: transparent;
            color: var(--white);
            border: 1px solid rgba(255,255,255,0.6);
            border-radius: 999px;
            padding: 9px 22px;
            font-size: 0.95rem;
            display: inline-flex;
            align-items: center;
            gap: 0.45rem;
            letter-spacing: 0.02em;
            text-transform: none;
            box-shadow: none;
            animation: none;
        }

        .route-map-toggle-btn .route-toggle-icon {
            font-size: 0.85rem;
        }

        .route-map-toggle-btn.route-toggle-animating {
            color: var(--secondary-color);
            border-color: var(--secondary-color);
            transition: color 0.3s ease, border-color 0.3s ease;
        }

        .route-map-container {
            margin-top: 1.25rem;
            border-radius: 14px;
            overflow: hidden;
            border: 1px solid rgba(255,255,255,0.25);
            background: transparent;
            box-shadow: 0 14px 40px rgba(0,0,0,0.45);
            position: relative;
            margin-bottom: 1.5rem;
        }

        .route-map {
            width: 100%;
            height: 260px;
            opacity: 0;
            transform: scale(0.99);
            transition: opacity 0.45s ease-out, transform 0.45s ease-out;
        }

        .route-map--ready {
            opacity: 1;
            transform: scale(1);
        }

        .route-map-info {
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            z-index: 5;
            padding: 0.55rem 0.65rem 0 0.65rem;
            display: flex;
            justify-content: flex-start;
            align-items: flex-start;
            pointer-events: none;
        }

        .route-map-chip {
            
            background: rgba(255,255,255,0.86);
            border-radius: 999px;
            padding: 0.14rem 0.48rem;
            border: 1px solid rgba(212,175,55,0.65);
            box-shadow: 0 1px 4px rgba(15,23,42,0.12);
            pointer-events: auto;
        }

        .route-map-chip-main {
            font-size: 0.72rem;
            font-weight: 600;
            letter-spacing: 0.08em;
            text-transform: uppercase;
            color: #111827;
            white-space: nowrap;
        }

        .route-map-label {
            position: absolute;
            transform: translate3d(0,0,0);
            font-size: 0.8rem;
            font-weight: 600;
            color: #111827;
            max-width: 220px;
            line-height: 1.15;
            padding: 0.15rem 0.4rem;
            border-radius: 999px;
            background: rgba(255,255,255,0.76);
            border: 1px solid rgba(148,163,184,0.32);
            pointer-events: none;
            box-shadow: 0 1px 5px rgba(15,23,42,0.10);
        }

        .route-map-chip-line {
            display: block;
            font-size: 0.78rem;
        }

        .route-map-toggle-wrapper--return {
            margin-top: 1rem;
        }

        .calculation-buttons--return {
            margin-top: 1.25rem;
        }

        .return-included-success {
            margin-left: 0.75rem;
            white-space: normal;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            background: transparent;
            border: none;
            padding: 14px 0;
            color: var(--secondary-color);
            font-weight: 700;
        }

        .return-included-success:hover {
            transform: none;
            box-shadow: none;
        }

        .return-included-success:disabled {
            opacity: 1;
            cursor: default;
        }

        @media (max-width: 768px) {
            .route-map {
                height: 220px;
            }

            .route-map-container {
                border-radius: 12px;
            }

            .route-map-info {
                padding-left: 0.75rem;
                padding-right: 0.75rem;
            }

            .route-map-chip {
                padding: 0.10rem 0.40rem;
                background: rgba(255,255,255,0.80);
            }

            .route-map-chip-main {
                font-size: 0.68rem;
            }

            .route-map-label {
                font-size: 0.74rem;
                max-width: 190px;
                background: rgba(255,255,255,0.70);
            }
        }

        @media (max-width: 480px) {
            .route-map {
                height: 200px;
            }

            #calculation-result .final-price,
            #return-calculation-result .final-price {
                margin: 1.25rem 0 1.6rem 0;
            }

            .route-map-toggle-wrapper,
            .route-map-toggle-wrapper--return {
                margin-top: 0.35rem;
                margin-bottom: 0.9rem;
            }

            .route-map-container {
                margin-top: 1rem;
            }

            .route-map-chip {
                padding: 0.08rem 0.34rem;
                background: rgba(255,255,255,0.72);
            }

            .route-map-chip-main {
                font-size: 0.64rem;
            }

            .route-map-label {
                font-size: 0.7rem;
                max-width: 170px;
                background: rgba(255,255,255,0.65);
            }

        }

        .calculation-buttons { display: flex; justify-content: center; gap: 1.5rem; align-items: center; }
        .calculation-buttons .btn { width: auto; }
        .calculation-buttons .btn-primary { animation: heroPulse 2s infinite ease-in-out; }
        
        .min-price-notice {
            background-color: var(--primary-color);
            color: var(--white);
            padding: 2rem;
            margin-top: 1.5rem;
            border-radius: 8px;
            text-align: left;
            font-size: 0.95rem;
            line-height: 1.7;
            border: 1px solid var(--secondary-color);
            position: relative;
            z-index: 150;
            box-sizing: border-box;
            max-width: 100%;
        }
        .min-price-notice p {
             color: var(--light-gray);
             margin-bottom: 1.2rem;
        }
        .min-price-notice strong {
            color: var(--secondary-color);
        }
        .min-price-note {
            margin-top: 1.75rem;
            padding-top: 0.9rem;
            border-top: 1px solid rgba(255,255,255,0.25);
        }
        .min-price-buttons {
             margin-top: 2rem;
             display: flex;
             justify-content: space-between;
             gap: 1rem;
        }
        .min-price-buttons .btn {
            font-size: 1rem;
            padding: 12px 28px;
        }
        #cancel-min-price-btn,
        #return-min-cancel-btn {
            order: 1;
        }
        #continue-min-price-btn,
        #return-min-accept-btn {
            order: 2;
            animation: heroPulse 2s infinite ease-in-out;
        }

        @media (max-width: 768px) {
          .min-price-notice {
            padding: 1.25rem 1rem;
            font-size: 0.9rem;
            line-height: 1.6;
          }
          .min-price-buttons {
            flex-direction: column;
            flex-wrap: nowrap;
            justify-content: flex-start;
            align-items: stretch;
            gap: 0.75rem;
          }
          #continue-min-price-btn,
          #return-min-accept-btn {
            order: 1;
          }
          #cancel-min-price-btn,
          #return-min-cancel-btn {
            order: 2;
          }
          .min-price-buttons .btn {
            width: 100%;
            font-size: 0.9rem;
            padding: 12px 16px;
            min-height: 44px;
          }
          .calculation-buttons {
            flex-direction: column;
            align-items: stretch;
            justify-content: flex-start;
            gap: 0.75rem;
          }
          .calculation-buttons .btn {
            width: 100%;
            min-height: 44px;
          }
          #continue-booking-btn,
          #confirm-return-btn {
            order: 1;
            font-size: 0.95rem;
            padding: 12px 18px;
          }
          #cancel-calc-btn,
          #cancel-return-btn {
            order: 2;
          }
          .confirmation-buttons {
            flex-direction: column;
            align-items: stretch;
            justify-content: flex-start;
          }
          .confirmation-buttons .btn {
            width: 100%;
          }
          .confirmation-buttons #final-book-btn {
            order: 1;
          }
          .confirmation-buttons #cancel-confirmation-btn {
            order: 2;
          }
          .route-map-toggle-btn {
            font-size: 0.85rem;
            padding: 8px 16px;
          }
          #booking-form .form-row {
            flex-direction: column;
          }
        }

         .min-lead-time-notice {
             background-color: #c0392b;
             color: var(--white);
             padding: 1.5rem 2rem;
             margin-top: 1.5rem;
             border-radius: 8px;
             text-align: center;
             font-size: 1.05rem;
             font-weight: 500;
             border: 1px solid #a93226;
             line-height: 1.7;
         }
          .min-lead-time-notice a {
              color: #f9eaea;
              text-decoration: underline;
              font-weight: 700;
          }

        #booking-form input[readonly] { background-color: #e9ecef; opacity: 0.8; cursor: not-allowed; border-color: #ccc; } 
        .inline-radios label { display: inline-block; margin-right: 15px; font-weight: normal; margin-bottom: 0;} 
        .inline-radios input[type="radio"] { width: auto; margin-right: 5px; vertical-align: middle; }
        
        .form-group.small-note {
            font-size: 0.9rem;
            color: #555;
            margin-top: -0.5rem;
            padding-left: 0.5rem;
        }
        #booking-form .checkbox-group label {
            font-size: 0.9rem;
            line-height: 1.6;
            font-weight: 400;
        }
        #booking-form .checkbox-group label a {
            font-size: inherit;
            font-weight: 400;
        }
        
        
        #return-trip-wrapper {
            border-top: 2px solid var(--secondary-color);
            margin-top: 2.5rem;
            padding-top: 1.5rem;
            background-color: #fdfdfd;
            padding: 2rem 1.5rem 1rem 1.5rem;
            border-radius: 8px;
            box-shadow: inset 0 2px 4px rgba(0,0,0,0.05);
        }
        #return-trip-wrapper > .form-group > label {
             display: block;
             width: 100%;
             font-weight: bold;
             font-size: 1.3rem;
             margin-bottom: 1rem;
             color: var(--primary-color);
        }
        #return-trip-wrapper > .form-group {
             margin-bottom: 0;
        }
        #return-trip-wrapper .inline-radios {
            margin-bottom: 1.5rem;
        }

        .highlight-return-question {
            box-shadow: 0 0 0 2px rgba(212, 175, 55, 0.6);
            border-radius: 8px;
            transition: box-shadow 0.3s ease;
        }

        #return-details h3 { 
            margin-bottom: 1.5rem; 
            font-size: 1.3rem; 
            color: var(--primary-color);
            border-bottom: 1px solid #eee;
            padding-bottom: 0.5rem;
        }
        
        .info-box {
            background-color: #eef7ff;
            border: 1px solid #bde0ff;
            color: #0056b3;
            padding: 1.5rem;
            border-radius: 8px;
            margin-top: 2rem;
            font-size: 0.95rem;
            line-height: 1.7;
            text-align: left;
        }
        .info-box i {
            margin-right: 10px;
            font-size: 1.2rem;
        }
        .info-box.aviso-roche {
            background-color: transparent;
            border-color: transparent;
            color: #555;
            width: 100%;
            box-sizing: border-box;
            margin: 0.25rem 0 0.5rem;
            padding: 0.15rem 0;
            font-size: 0.75rem;
            font-style: italic;
            text-shadow: none;
            text-align: justify !important;
            font-weight: 400;
        }
        .info-box.aviso-roche strong {
            font-weight: 400;
        }
        #booking-form .checkbox-group.terms-group {
            flex-direction: column;
            align-items: flex-start;
            gap: 1.25rem;
        }
        #booking-form .terms-checkbox {
            display: inline-flex;
            align-items: flex-start;
            font-size: 0.9rem;
        }
        #booking-form .terms-checkbox label {
            display: inline-block;
            text-align: justify;
            hyphens: auto;
            -webkit-hyphens: auto;
            overflow-wrap: break-word;
        }
        @media (max-width: 576px) {
            #booking-form .terms-checkbox label {
                text-align: left;
            }
        }
        #booking-form .terms-checkbox input[type="checkbox"] {
            margin-top: 0.15rem;
        }
        #booking-form .terms-checkbox label a {
            display: inline;
            padding: 0;
            margin: 0;
            background: none;
            width: auto;
            color: #0056b3;
            text-decoration: underline;
            font-weight: 400;
            text-align: inherit;
            opacity: 1;
        }
        #booking-form .terms-checkbox label a:hover {
            color: #003f88;
        }

        
        .total-price-section { 
            text-align: center; 
            margin-top: 3rem; 
            padding-top: 2rem; 
            border-top: 3px double var(--secondary-color); 
            background-color: var(--light-gray);
            padding: 2.5rem 1.5rem;
            border-radius: 8px;
            display: none;
        }
        .total-price-section p {
            font-size: 1.5rem;
            color: var(--primary-color);
            text-transform: uppercase;
            font-weight: 600;
            margin-bottom: 1rem; 
        }
        .total-price-section .total-amount { 
            font-size: 3rem; 
            font-weight: 700; 
            color: var(--secondary-color); 
            display: block; 
            margin-top: 0.5rem; 
            margin-bottom: 2rem; 
            line-height: 1.1;
        }
        #final-book-btn-wrapper {
            margin-top: 2rem;
        }
        #show-confirmation-overlay-btn {
            padding: 20px 40px !important;
            font-size: 1.3rem !important;
            width: auto !important;
            animation: pulseStrong 1.5s infinite;
            background-color: var(--secondary-color);
            color: var(--dark-gray);
            border: none;
            line-height: 1.5;
        }
         #show-confirmation-overlay-btn small {
             display: block;
             font-weight: 400;
             font-size: 0.9rem;
             opacity: 0.9;
         }

        .form-note{font-size:.9rem;text-align:center;color:#555;margin-top:1.5rem}
        #form-container .success-message{padding:2rem;border:2px solid var(--success-color);border-radius:8px;text-align:center}#form-container .success-message h3{color:var(--success-color)}.form-error{color:var(--error-color);text-align:center;margin-top:1rem;font-weight:bold;display:block;opacity: 0; max-height: 0; transition: all 0.5s ease; padding: 0;}.form-error.visible{opacity: 1; max-height: 100px; padding: 10px; background-color:rgba(220,53,69,0.1);border:1px solid var(--error-color);border-radius:5px;}.reviews-section{background-color:var(--light-gray)}

        #form-container { padding-bottom: 3rem; }

        
        .reviews-grid {
          display: grid;
          grid-template-columns: repeat(2, minmax(0, 1fr));
          gap: 2.5rem;
          margin-top: 3rem;
          text-align: left;
          align-items: stretch;
        }
        .review-card {
          background-color: var(--white);
          border-radius: 14px;
          padding: 2.25rem 2.25rem 2rem;
          display: flex;
          flex-direction: column;
          justify-content: space-between;
          position: relative;
          overflow: hidden;
          box-shadow: 0 18px 40px rgba(15,23,42,0.08);
          border: 1px solid #e5e7eb;
          transition: transform .3s ease, box-shadow .3s ease;
        }
        .review-card::before {
          content: '';
          position: absolute;
          inset: 0;
          border-radius: inherit;
          border-top: 4px solid rgba(212,175,55,0.95);
          pointer-events: none;
        }
        .review-card:hover {
          transform: translateY(-6px);
          box-shadow: 0 24px 50px rgba(15,23,42,0.12);
        }
        .review-stars {
          color: var(--secondary-color);
          font-size: 0.9rem;
          margin-bottom: 0.5rem;
          opacity: 0.7;
        }
        .review-stars i {
          margin-right: 2px;
        }
        .review-text {
          font-style: italic;
          color: #333;
          flex-grow: 1;
          margin-bottom: 1rem;
        }
        .review-footer {
          display: flex;
          align-items: center;
          justify-content: flex-end;
          gap: 0.6rem;
          margin-top: 1.1rem;
        }
        .review-avatar {
          width: 28px;
          height: 28px;
          border-radius: 999px;
          background: var(--white);
          border: 1px solid rgba(212,175,55,0.7);
          color: var(--primary-color);
          display: flex;
          align-items: center;
          justify-content: center;
          font-size: 0.8rem;
          box-shadow: none;
        }
        .review-author {
          margin: 0;
          font-weight: 600;
          color: var(--primary-color);
          text-align: right;
        }
        .services-section-secondary {
          background-color: var(--white);
        }
        .services-grid {
          display: grid;
          grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
          gap: 2.25rem;
          margin-top: 3rem;
        }

        #traslados-aeropuertos {
          padding: 0;
        }

        #traslados-aeropuertos .transfer-subsection {
          padding: 3rem 0;
          background: var(--white);
        }

        #traslados-aeropuertos .transfer-subsection--alt {
          background: var(--light-gray);
        }

        #traslados-aeropuertos .transfer-subsection + .transfer-subsection {
          border-top: 0;
        }

        #traslados-aeropuertos .transfer-subsection > .container {
          padding-top: 0;
          padding-bottom: 0;
        }

        #traslados-aeropuertos .container {
          text-align: center;
          max-width: 1100px;
        }

        #traslados-aeropuertos h2 {
          text-align: center;
        }

        #traslados-aeropuertos .transfer-strapline {
          color: var(--secondary-color);
          font-size: 1.05rem;
          line-height: 1.25;
          text-align: center;
          margin-top: 0.35rem;
          margin-bottom: 1rem;
          font-weight: 700;
          letter-spacing: 0.03em;
          border-bottom: 2px solid rgba(212,175,55,0.4);
          padding-bottom: 0.4rem;
          display: inline-block;
        }

        #traslados-aeropuertos .transfer-subsection > .container > p {
          text-align: center;
          max-width: 880px;
          margin-left: auto;
          margin-right: auto;
        }

        #traslados-aeropuertos h3 {
          text-align: center;
          margin-top: 0;
          margin-bottom: 0.8rem;
        }

        #traslados-aeropuertos p {
          margin-bottom: 1.15rem;
        }

        #traslados-aeropuertos .transfer-highlights {
          margin: 1.6rem 0 0 0;
          padding-left: 0;
          list-style: none;
          display: grid;
          grid-template-columns: repeat(2, minmax(0, 1fr));
          gap: 2.25rem;
        }

        #traslados-aeropuertos .transfer-highlights .transfer-highlight {
          margin-bottom: 0;
          color: rgba(60,60,60,0.92);
          background: var(--white);
          border-radius: 12px;
          padding: 2rem 1.75rem;
          text-align: left;
          border: 1px solid rgba(15,23,42,0.06);
          box-shadow: 0 12px 30px rgba(15,23,42,0.06);
          transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
          display: flex;
          flex-direction: column;
          align-items: center;
          justify-content: flex-start;
        }

        #traslados-aeropuertos .transfer-highlights .transfer-highlight:hover {
          transform: translateY(-6px);
          box-shadow: 0 20px 45px rgba(15,23,42,0.12);
          border-color: rgba(212,175,55,0.65);
        }

        #traslados-aeropuertos .transfer-highlight-icon {
          height: 2.2rem;
          display: flex;
          align-items: center;
          justify-content: center;
          margin-bottom: 0.85rem;
        }

        #traslados-aeropuertos .transfer-highlight-icon i {
          color: var(--secondary-color);
          font-size: 2.2rem;
          line-height: 1;
          display: inline-block;
        }

        #traslados-aeropuertos .transfer-highlight-body {
          min-width: 0;
          text-align: center;
          width: 100%;
          display: grid;
          grid-template-rows: minmax(0, auto) minmax(0, auto);
          row-gap: 0.25rem;
        }

        #traslados-aeropuertos .transfer-highlight-heading {
          margin: 0;
          color: var(--primary-color);
          font-weight: 700;
          font-size: 1.25rem;
          line-height: 1.3;
          text-align: center;
          min-height: 2.6em;
        }

        #traslados-aeropuertos .transfer-highlight-desc {
          margin: 0;
          color: var(--text-color);
          font-size: .95rem;
          line-height: 1.6;
          text-align: center;
        }

        #traslados-aeropuertos .accent-gold {
          color: var(--secondary-color);
          font-weight: 800;
        }

        #traslados-aeropuertos .transfer-note-title {
          color: var(--primary-color);
          font-weight: 700;
        }

        #traslados-aeropuertos .transfer-note-title::after {
          content: ' ';
        }

        #traslados-aeropuertos .transfer-media {
          margin: 1rem auto 1.6rem auto;
          max-width: 980px;
        }

        #traslados-aeropuertos .transfer-cover {
          margin: 0;
          background: var(--white);
          border-radius: 14px;
          overflow: hidden;
          border: 1px solid rgba(15,23,42,0.06);
          box-shadow: 0 12px 30px rgba(15,23,42,0.06);
        }

        #traslados-aeropuertos .transfer-cover img {
          width: 100%;
          height: auto;
          display: block;
        }

        @media (max-width: 640px) {
          #traslados-aeropuertos .transfer-media {
            margin: 0.9rem auto 1.1rem auto;
          }
        }

        #traslados-aeropuertos .transfer-brand {
          display: flex;
          align-items: center;
          justify-content: center;
          gap: 0.85rem;
          padding: 1rem 1.25rem;
          border-radius: 12px;
          background: var(--white);
          border: 1px solid rgba(15,23,42,0.06);
          box-shadow: 0 12px 30px rgba(15,23,42,0.06);
          margin: 1.15rem auto 0 auto;
          max-width: 760px;
          width: 100%;
        }

        @media (max-width: 640px) {
          #traslados-aeropuertos .transfer-brand {
            flex-direction: column;
            text-align: center;
            padding: 1rem 1rem;
            gap: 0.65rem;
            max-width: none;
          }

          #traslados-aeropuertos .transfer-brand-logo {
            width: 64px;
            height: 64px;
            border-radius: 14px;
          }
        }

        #traslados-aeropuertos .transfer-brand-logo {
          width: 60px;
          height: 60px;
          border-radius: 12px;
          object-fit: cover;
          border: 1px solid rgba(15,23,42,0.08);
          background: var(--white);
          flex: 0 0 auto;
        }

        #traslados-aeropuertos .transfer-brand-title {
          margin: 0;
          font-weight: 800;
          color: var(--primary-color);
          line-height: 1.2;
        }

        #traslados-aeropuertos .transfer-brand-subtitle {
          margin: 0.15rem 0 0 0;
          color: var(--text-color);
          font-size: 0.95rem;
        }

        #traslados-aeropuertos .transfer-brand-subtitle a {
          color: var(--primary-color);
          font-weight: 700;
          text-decoration: none;
        }

        #traslados-aeropuertos .transfer-brand-subtitle a:hover {
          text-decoration: underline;
        }

        #traslados-aeropuertos .transfer-panels {
          display: grid;
          grid-template-columns: repeat(2, minmax(0, 1fr));
          gap: 1rem;
          margin: 1.25rem 0 0 0;
        }

        #traslados-aeropuertos .transfer-panel {
          background: var(--white);
          border-radius: 12px;
          padding: 1.25rem 1.15rem;
          text-align: left;
          border: 1px solid rgba(15,23,42,0.06);
          box-shadow: 0 12px 30px rgba(15,23,42,0.06);
        }

        #traslados-aeropuertos .transfer-panel-icon {
          width: 38px;
          height: 38px;
          border-radius: 10px;
          display: inline-flex;
          align-items: center;
          justify-content: center;
          background: rgba(212,175,55,0.12);
          border: 1px solid rgba(212,175,55,0.25);
          margin-bottom: 0.85rem;
        }

        #traslados-aeropuertos .transfer-panel-icon i {
          color: var(--secondary-color);
          font-size: 1rem;
          line-height: 1;
        }

        #traslados-aeropuertos .transfer-panel-title {
          margin: 0 0 0.35rem 0;
          color: var(--primary-color);
          font-weight: 700;
          font-size: 1.05rem;
          line-height: 1.25;
          text-align: left;
        }

        #traslados-aeropuertos .transfer-panels--steps .transfer-panel-title {
          margin-bottom: 0.35rem;
        }

        #traslados-aeropuertos .transfer-panel-text {
          margin: 0;
          color: var(--text-color);
          font-size: 0.95rem;
          line-height: 1.6;
        }

        @media (max-width: 768px) {
          #traslados-aeropuertos .transfer-panels {
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 0.85rem;
          }

          #traslados-aeropuertos .transfer-panel {
            padding: 1.05rem 0.9rem;
          }

          #traslados-aeropuertos .transfer-panel-title {
            font-size: 1rem;
          }

          #traslados-aeropuertos .transfer-panel-text {
            font-size: 0.9rem;
          }

          #traslados-aeropuertos .transfer-panels--steps .transfer-panel {
            display: flex;
            flex-direction: column;
          }

          #traslados-aeropuertos .transfer-panels--steps .transfer-panel-title {
            min-height: 2.3em;
            margin-bottom: 0.35rem;
          }
        }

        @media (max-width: 420px) {
          #traslados-aeropuertos .transfer-panels {
            grid-template-columns: 1fr;
          }
        }

        #traslados-aeropuertos .transfer-fact {
          font-weight: 700;
          color: var(--primary-color);
          background: rgba(212,175,55,0.16);
          border: 1px solid rgba(212,175,55,0.35);
          padding: 0.05rem 0.35rem;
          border-radius: 999px;
          white-space: nowrap;
        }

        #traslados-aeropuertos .transfer-highlights li:last-child {
          margin-bottom: 0;
        }

        @media (max-width: 768px) {
          #traslados-aeropuertos .transfer-highlights {
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 1rem;
          }

          #traslados-aeropuertos .transfer-highlights .transfer-highlight {
            padding: 1.1rem 0.8rem;
            display: flex;
            flex-direction: column;
            justify-content: flex-start;
            align-items: center;
            height: auto;
          }

          #traslados-aeropuertos .transfer-highlight-icon {
            margin-bottom: 0.85rem;
          }

          #traslados-aeropuertos .transfer-highlight-icon i {
            font-size: 2.1rem;
          }

          #traslados-aeropuertos .transfer-highlight-heading {
            font-size: 1.1rem;
            line-height: 1.3;
            min-height: 2.8em;
            margin-bottom: 0.4rem;
          }

          #traslados-aeropuertos .transfer-highlight-desc {
            font-size: .85rem;
            line-height: 1.55;
          }
        }

        @media (max-width: 640px) {
          #traslados-aeropuertos h2 {
            font-size: 1.55rem;
            line-height: 1.25;
          }

          #traslados-aeropuertos .transfer-strapline {
            margin-bottom: 1.25rem;
          }

          #traslados-aeropuertos .transfer-highlights {
            gap: 0.85rem;
          }

          #traslados-aeropuertos .transfer-highlights .transfer-highlight {
            padding: 0.95rem 0.65rem;
          }

          #traslados-aeropuertos .transfer-highlight-icon {
            margin-bottom: 0.7rem;
          }

          #traslados-aeropuertos .transfer-highlight-icon i {
            font-size: 1.9rem;
          }

          #traslados-aeropuertos .transfer-highlight-heading {
            min-height: 2.4em;
          }

          .transfer-rates-wrapper {
            margin-top: 1.1rem;
            margin-bottom: 1.1rem;
            overflow: hidden !important;
          }

          #traslados-aeropuertos table.transfer-rates {
            min-width: 0 !important;
            table-layout: fixed;
            font-size: 0.86rem;
          }

          #traslados-aeropuertos table.transfer-rates thead th {
            padding: 0.7rem 0.5rem;
            font-size: 0.8rem;
            line-height: 1.15;
          }

          #traslados-aeropuertos table.transfer-rates thead th:nth-child(1) {
            width: 40%;
          }

          #traslados-aeropuertos table.transfer-rates thead th:nth-child(2) {
            width: 38%;
          }

          #traslados-aeropuertos table.transfer-rates thead th:nth-child(3) {
            width: 22%;
          }

          #traslados-aeropuertos table.transfer-rates tbody td {
            padding: 0.65rem 0.5rem;
            font-size: 0.82rem;
            line-height: 1.2;
            white-space: normal;
            word-break: normal;
            overflow-wrap: anywhere;
          }

          #traslados-aeropuertos table.transfer-rates tbody td:last-child {
            white-space: nowrap;
          }

          #traslados-aeropuertos .transfer-faq summary {
            padding: 0.95rem 1rem 0.95rem 2.65rem;
            --faq-summary-pad-y: 0.95rem;
          }

          #traslados-aeropuertos .transfer-faq summary::before {
            left: 0.95rem;
          }
        }

        .transfer-rates-wrapper {
          margin-top: 1.35rem;
          margin-bottom: 1.35rem;
          border-radius: 12px;
          overflow: auto;
          border: 1px solid rgba(15,23,42,0.06);
          box-shadow: 0 12px 30px rgba(15,23,42,0.06);
          background: var(--white);
        }

        table.transfer-rates {
          width: 100%;
          border-collapse: collapse;
          min-width: 620px;
        }

        table.transfer-rates thead th {
          background: var(--primary-color);
          color: var(--white);
          font-weight: 700;
          text-align: center;
          padding: 0.95rem 1rem;
          font-size: 0.95rem;
        }

        table.transfer-rates tbody td {
          padding: 0.95rem 1rem;
          border-top: 1px solid rgba(15,23,42,0.08);
          vertical-align: top;
          color: rgba(60,60,60,0.92);
          text-align: center;
        }

        table.transfer-rates tbody tr:nth-child(even) td {
          background: rgba(26,42,69,0.03);
        }

        table.transfer-rates tbody td:last-child {
          font-weight: 800;
          color: var(--primary-color);
          white-space: nowrap;
        }

        .transfer-cta {
          margin-top: 1.4rem;
          margin-bottom: 0;
          display: flex;
          flex-wrap: wrap;
          justify-content: center;
          align-items: center;
          gap: 1.5rem;
          text-align: center;
        }

        .transfer-cta .btn {
          width: auto;
          max-width: 100%;
        }

        .transfer-cta .btn:hover {
          transform: translateY(-1px);
          box-shadow: 0 6px 12px rgba(0,0,0,0.12);
        }

        .transfer-cta .btn-outline-secondary {
          background-color: var(--white);
          color: var(--primary-color);
          border-color: var(--primary-color);
        }

        .transfer-cta .btn-outline-secondary:hover {
          background-color: var(--primary-color);
          border-color: var(--primary-color);
          color: var(--white);
        }

        @media (max-width: 640px) {
          .transfer-cta {
            flex-direction: column;
            align-items: stretch;
          }

          .transfer-cta .btn {
            width: 100%;
          }
        }

        #otros-traslados .transfer-cta,
        #other-airport-transfers .transfer-cta,
        #weitere-flughafentransfers .transfer-cta {
          flex-direction: column;
          align-items: stretch;
          flex-wrap: nowrap;
        }

        #otros-traslados .transfer-cta .btn,
        #other-airport-transfers .transfer-cta .btn,
        #weitere-flughafentransfers .transfer-cta .btn {
          width: 100%;
        }

        #airport-pickups ul {
          list-style: none;
          padding: 0;
          margin: 1rem 0 0;
          display: flex;
          flex-wrap: wrap;
          justify-content: center;
          align-items: center;
          gap: 1.5rem;
        }

        #legal-overlay[data-overlay-target="airport-pickups"] #legal-overlay-inner ul {
          list-style: none;
          padding: 0;
          margin: 1rem 0 0;
          display: flex;
          flex-wrap: wrap;
          justify-content: center;
          align-items: center;
          gap: 1.6rem;
        }

        #legal-overlay[data-overlay-target="airport-pickups"] #legal-overlay-inner h3 {
          text-align: center;
        }

        #legal-overlay[data-overlay-target="airport-pickups"] #legal-overlay-inner li {
          margin: 0;
          padding: 0;
        }

        #legal-overlay[data-overlay-target="airport-pickups"] #legal-overlay-inner .btn:hover {
          transform: translateY(-1px);
          box-shadow: 0 6px 12px rgba(0,0,0,0.12);
        }

        #legal-overlay[data-overlay-target="airport-pickups"] #legal-overlay-inner .btn-outline-secondary {
          background-color: var(--white);
          color: var(--primary-color);
          border-color: var(--primary-color);
        }

        #legal-overlay[data-overlay-target="airport-pickups"] #legal-overlay-inner .btn-outline-secondary:hover {
          background-color: var(--primary-color);
          border-color: var(--primary-color);
          color: var(--white);
        }

        @media (max-width: 640px) {
          #legal-overlay[data-overlay-target="airport-pickups"] #legal-overlay-inner ul {
            flex-direction: column;
            align-items: stretch;
          }

          #legal-overlay[data-overlay-target="airport-pickups"] #legal-overlay-inner .btn {
            width: 100%;
          }
        }

        #airport-pickups .btn:hover {
          transform: translateY(-1px);
          box-shadow: 0 6px 12px rgba(0,0,0,0.12);
        }

        #airport-pickups .btn-outline-secondary {
          background-color: var(--white);
          color: var(--primary-color);
          border-color: var(--primary-color);
        }

        #airport-pickups .btn-outline-secondary:hover {
          background-color: var(--primary-color);
          border-color: var(--primary-color);
          color: var(--white);
        }

        #airport-pickups li {
          margin: 0;
          padding: 0;
        }

        @media (max-width: 640px) {
          #airport-pickups ul {
            flex-direction: column;
            align-items: stretch;
          }

          #airport-pickups .btn {
            width: 100%;
          }
        }

        #traslados-aeropuertos .transfer-cta {
          margin-top: 1.4rem;
          margin-bottom: 0;
          text-align: center;
          display: flex;
          flex-wrap: wrap;
          justify-content: center;
          align-items: center;
          gap: 0.85rem;
        }

        @media (max-width: 640px) {
          #traslados-aeropuertos .transfer-cta {
            flex-direction: column;
            align-items: stretch;
          }

          #traslados-aeropuertos .transfer-cta .btn {
            width: 100%;
          }
        }

        #traslados-aeropuertos .transfer-cta--top {
          margin-top: 1.2rem;
          margin-bottom: 1.6rem;
        }

        #traslados-aeropuertos .transfer-cta--top .btn {
          max-width: none;
        }

        @media (max-width: 640px) {
          #traslados-aeropuertos .transfer-cta--top .btn {
            font-size: 0.95rem;
            line-height: 1.25;
            padding-left: 1rem;
            padding-right: 1rem;
          }
        }

        #traslados-aeropuertos .transfer-faq {
          margin-top: 1.25rem;
        }

        @media (max-width: 480px) {
          #traslados-aeropuertos .transfer-subsection {
            padding: 2.25rem 0;
          }
        }

        #traslados-aeropuertos .transfer-faq details {
          border: 1px solid rgba(15,23,42,0.06);
          border-radius: 12px;
          padding: 0;
          margin-bottom: 0.9rem;
          background: var(--white);
          box-shadow: 0 12px 30px rgba(15,23,42,0.06);
          overflow: hidden;
        }

        #traslados-aeropuertos .transfer-faq details:last-child {
          margin-bottom: 0;
        }

        #traslados-aeropuertos .transfer-faq summary {
          cursor: pointer;
          list-style: none;
          padding: 1rem 1.1rem 1rem 3rem;
          font-weight: 700;
          color: var(--primary-color);
          position: relative;
          background: var(--white);
          --faq-summary-pad-y: 1rem;
        }

        #traslados-aeropuertos .transfer-faq summary::-webkit-details-marker {
          display: none;
        }

        #traslados-aeropuertos .transfer-faq summary::before {
          content: '';
          position: absolute;
          left: 1.1rem;
          top: calc(var(--faq-summary-pad-y) + 0.55em);
          width: 0;
          height: 0;
          border-left: 7px solid var(--secondary-color);
          border-top: 6px solid transparent;
          border-bottom: 6px solid transparent;
          transform-origin: 3px 6px;
          transition: transform 0.18s ease;
        }

        #traslados-aeropuertos .transfer-faq details[open] summary::before {
          transform: rotate(90deg);
        }

        #traslados-aeropuertos .transfer-faq summary:hover {
          background: rgba(212,175,55,0.10);
        }

        #traslados-aeropuertos .transfer-faq summary:focus-visible {
          outline: 2px solid rgba(246, 226, 122, 0.9);
          outline-offset: 2px;
          box-shadow: none;
        }

        #traslados-aeropuertos .transfer-faq .faq-answer {
          padding: 0.95rem 1.1rem 1.15rem 1.1rem;
          border-top: 1px solid rgba(15,23,42,0.10);
          background: var(--white);
        }

        #traslados-aeropuertos .transfer-faq .faq-answer p {
          margin-bottom: 0;
          text-align: left;
        }

        .airport-transfer {
          background: transparent;
          border-radius: 0;
          padding: 2.25rem 0;
          border: 0;
          box-shadow: none;
          position: relative;
          overflow: visible;
        }

        .airport-transfer + .airport-transfer {
          border-top: 1px solid rgba(15,23,42,0.12);
        }

        .airport-transfer h3 {
          margin-bottom: 0.9rem;
          text-align: left;
        }

        .airport-transfer p {
          margin-bottom: 0.95rem;
          color: rgba(60,60,60,0.92);
          text-align: left;
        }

        .airport-transfer-prices {
          background: rgba(26,42,69,0.04);
          border: 1px solid rgba(15,23,42,0.08);
          border-left: 4px solid rgba(212,175,55,0.95);
          border-radius: 12px;
          padding: 1rem 1.1rem;
          margin-top: 1rem;
          margin-bottom: 1rem;
        }

        .airport-transfer-prices p {
          margin-bottom: 0.55rem;
        }

        .airport-transfer-prices p:last-child {
          margin-bottom: 0;
        }

        .airport-transfer-actions {
          margin-top: 1.15rem;
          text-align: center;
        }
        .service-item {
          background: var(--white);
          border-radius: 12px;
          padding: 2rem 1.75rem;
          text-align: center;
          border: 1px solid rgba(15,23,42,0.06);
          box-shadow: 0 12px 30px rgba(15,23,42,0.06);
          transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
        }
        .service-item:hover {
          transform: translateY(-6px);
          box-shadow: 0 20px 45px rgba(15,23,42,0.12);
          border-color: rgba(212,175,55,0.65);
        }
        .service-item i {
          font-size: 2.2rem;
          color: var(--secondary-color);
          display: inline-block;
          margin-bottom: 1rem;
        }
        .service-item h3 {
          color: var(--primary-color);
          font-size: 1.25rem;
          margin-bottom: 0.75rem;
        }
        .service-item p {
          color: var(--text-color);
          font-size: .95rem;
        }
        .why-choose-us{background-color:var(--light-gray)}
        .why-choose-us .container{text-align:center;}
        .why-choose-us-content{display:flex;align-items:center;gap:3rem;margin-top:2rem;text-align:left;}
        .why-choose-us-text{flex: 2;}
        .why-choose-us-logo{flex: 1; text-align: center;}
        .why-choose-us-logo img{max-width:250px; height:auto;border-radius:10px;box-shadow: 0 5px 15px rgba(0,0,0,0.1);}

        .why-choose-us h2{text-align:center; margin-bottom: 1.5rem;}
        .why-choose-us-text p{margin-bottom:1.5rem; font-size: 1.1rem; text-align: center;}
        .why-choose-us-text ul{list-style:none;padding:0;margin-top:1.5rem; display: flex; flex-direction: column; gap: 1rem;}
        .why-choose-us-text li{margin-bottom:1.2rem;display:flex;align-items:flex-start; font-size: 1rem; text-align: left; gap:0.8rem;}
        .why-choose-us-text li i{color:var(--secondary-color);font-size:1.5rem;width:25px; text-align: center; flex-shrink: 0; margin:0;}
        
        .why-choose-us-text ul,
        .why-choose-us-text li {
          max-width: 100%;
        }

        .vehicle-section{background-color:var(--white)}
        .vehicle-section .container{text-align:center; max-width:1200px;}
        .vehicle-content{display:flex;align-items:center;gap:3rem;margin-top:2rem;text-align:left;}
        .vehicle-carousel{
            flex:1;
            position:relative;
            width:100%;
            max-width:640px;
            margin:0 auto;
            overflow:hidden;
            border-radius:16px;
            box-shadow:0 18px 45px rgba(15,23,42,.45);
            background:radial-gradient(circle at 10% 0%, #111827 0, #020617 55%, #000 100%);
        }
        .vehicle-video-wrapper{
            position:relative;
            width:100%;
            padding-top:56.25%;
            overflow:hidden;
            border-radius:16px;
        }
        .vehicle-video-wrapper iframe{
            position:absolute;
            top:0;
            left:0;
            width:100%;
            height:100%;
            border:0;
        }
        .vehicle-video-wrapper iframe.vehicle-video-iframe{
            opacity:0;
            transition:opacity .33s ease;
        }
        .vehicle-video-wrapper iframe.vehicle-video-iframe.video-iframe-visible{
            opacity:1;
        }
        .video-placeholder{
            position:absolute;
            top:0;
            left:0;
            width:100%;
            height:100%;
            cursor:pointer;
            display:flex;
            align-items:center;
            justify-content:center;
            overflow:hidden;
            background:radial-gradient(circle at 20% 15%, rgba(255,255,255,0.18) 0, rgba(15,23,42,0.38) 40%, rgba(3,7,18,0.6) 100%);
            opacity:1;
            transition:opacity .2s ease, transform .45s ease, box-shadow .45s ease, filter .45s ease;
            border:0;
            padding:0;
        }
        .video-placeholder img{
            width:100%;
            height:100%;
            object-fit:cover;
            display:block;
            filter:saturate(1.05) contrast(1.05);
            transform:scale(1.02);
        }
        .vehicle-carousel:hover .video-placeholder,
        .video-placeholder:focus-visible{
            transform:scale(1.02);
            filter:brightness(1.06);
            box-shadow:0 24px 55px rgba(15,23,42,0.7);
        }
        .video-placeholder.video-fade-out{
            opacity:0;
            transform:scale(1.03);
            filter:brightness(1.08);
        }
        .video-placeholder.video-loading .video-play-button::after{
            content:'';
            position:absolute;
            inset:-6px;
            border-radius:999px;
            border:2px solid rgba(212,175,55,0.9);
            border-top-color:transparent;
            opacity:1;
            animation:videoPlayRing 0.5s linear infinite;
        }
        .video-placeholder.video-loading .video-play-button{
            border-color:rgba(245,217,120,0.98);
            box-shadow:0 0 0 1px rgba(15,23,42,1),0 22px 60px rgba(0,0,0,0.95),0 0 55px rgba(212,175,55,0.85);
        }
        @keyframes videoPlayRing{
            from{transform:rotate(0deg);opacity:1;}
            to{transform:rotate(360deg);opacity:0;}
        }
        .video-play-button{
            position:absolute;
            width:82px;
            height:82px;
            border-radius:999px;
            border:1px solid rgba(212,175,55,0.85);
            background:radial-gradient(circle at 30% 30%, rgba(255,255,255,0.25), rgba(0,0,0,0.9));
            color:#fff;
            display:flex;
            align-items:center;
            justify-content:center;
            font-size:30px;
            cursor:pointer;
            box-shadow:0 0 0 1px rgba(15,23,42,0.9),0 18px 40px rgba(0,0,0,0.75),0 0 35px rgba(212,175,55,0.45);
            backdrop-filter:blur(6px);
            transition:transform .3s ease, box-shadow .3s ease, background .3s ease, border-color .3s ease;
        }
        .video-play-button:hover,
        .video-placeholder:focus-visible .video-play-button{
            transform:scale(1.06);
            background:radial-gradient(circle at 30% 30%, rgba(255,255,255,0.3), rgba(0,0,0,1));
            border-color:var(--secondary-color);
            box-shadow:0 0 0 1px rgba(15,23,42,1),0 24px 60px rgba(0,0,0,0.95),0 0 45px rgba(212,175,55,0.6);
        }
        .video-play-button i{
            margin-left:4px;
        }
        @media (max-width: 768px){
          .video-play-button{
            width:92px;
            height:92px;
            font-size:34px;
            box-shadow:0 10px 32px rgba(0,0,0,0.8),0 0 30px rgba(212,175,55,0.4);
          }
        }
        .vehicle-text{flex:1;padding-left:1rem;text-align:center;}
        .vehicle-text h3{color:var(--secondary-color);font-size:1.35rem;text-align:center;margin-top:0.4rem;margin-bottom:1rem;font-weight:700;letter-spacing:0.03em;border-bottom:2px solid rgba(212,175,55,0.4);padding-bottom:0.4rem;display:inline-block;}
        .vehicle-text p{margin-top:0.75rem;font-size:1.05rem;line-height:1.7;text-align:left;}
        .whatsapp-flotante{
            position:fixed;
            width:80px;
            height:80px;
            bottom:35px;
            right:35px;
            background-color:#25d366;color:#fff;border-radius:50px;text-align:center;
            font-size:40px;
            box-shadow:2px 2px 10px rgba(0,0,0,.4);z-index:1200;display:flex;justify-content:center;align-items:center;text-decoration:none;
            animation:whatsappBounce 2.5s infinite ease-in-out;
        }
        @keyframes whatsappBounce{
            0%,100%{transform:translateY(0) scale(1);}
            50%{transform:translateY(-15px) scale(1.05);}
        }
        @media (max-width: 768px) {
          .whatsapp-flotante{
            width:67px;
            height:67px;
            bottom:20px;
            right:20px;
            font-size:36px;
          }
        }
        .pac-item {
            padding: 8px 15px !important;
            font-size: 0.95rem !important;
            color: var(--text-color) !important;
            border: none !important;
            cursor: pointer;
            white-space: normal !important;
            line-height: 1.35 !important;
            display: flex !important;
            align-items: center !important;
            column-gap: 0.6rem;
        }
        .pac-item-text {
            display: flex;
            flex-direction: column;
            align-items: flex-start;
            min-width: 0;
        }
        .pac-item:not(:last-child) {
            border-bottom: 1px solid #f1f3f5 !important;
        }
        .pac-item span {
            white-space: normal !important;
        }
        .pac-item:hover {
            background-color: var(--light-gray) !important;
        }
        .pac-item.pac-item-selected {
            background-color: var(--light-gray) !important;
            border-left: 4px solid var(--secondary-color) !important;
        }
        .pac-item-query {
            display: block !important;
            font-size: 0.95rem !important;
            color: var(--dark-gray) !important;
            margin-bottom: 2px;
        }
        .pac-item-query + span {
            display: block !important;
            font-size: 0.85rem !important;
            color: #495057 !important;
            max-height: 2.6em;
            overflow: hidden !important;
            text-overflow: ellipsis !important;
            display: -webkit-box;
            -webkit-line-clamp: 2;
            line-clamp: 2;
            -webkit-box-orient: vertical;
        }
        .pac-icon {
            display: none !important;
        }
        .pac-item-custom-icon {
            font-size: 1rem;
            width: 1.4em;
            text-align: center;
            flex-shrink: 0;
            opacity: 0.9;
            color: #adb5bd;
        }
        .pac-matched {
            color: var(--primary-color) !important;
            font-weight: 700 !important;
        }
        @media (min-width: 992px) {
          .pac-item {
            padding: 9px 18px !important;
            font-size: 1rem !important;
          }
          .pac-item.pac-item-selected .pac-item-query {
            font-weight: 600;
          }
          .pac-item-custom-icon {
            font-size: 1.05rem;
          }
          .pac-item-query {
            font-size: 1rem !important;
          }
          .pac-item-query + span {
            font-size: 0.9rem !important;
          }
          .pac-container {
            max-height: 60vh !important;
          }
        }
        @media (max-width: 768px) {
          .pac-item {
            padding: 9px 12px !important;
          }
          .pac-item-custom-icon {
            font-size: 0.95rem;
          }
          .pac-item-query {
            font-size: 0.95rem !important;
          }
          .pac-item-query + span {
            font-size: 0.78rem !important;
          }
          .address-summary {
            font-size: 0.8rem;
          }
          .recent-address-chip {
            font-size: 0.78rem;
            padding: 4px 8px;
          }
          .pac-container {
            max-height: 50vh !important;
          }
        }
        .gm-style-cc { 
             display: none !important; 
        }
         #contacto {
             background-color: var(--white);
             border-top: 1px solid #eee;
         }
         #contacto h2 { margin-bottom: 2rem; }
         #contacto p { font-size: 1.15rem; max-width: 700px; margin: 0 auto 3rem auto; color: var(--text-color); line-height: 1.8;}
         .contact-links {
             display: flex;
             justify-content: center;
             gap: 2rem;
             flex-wrap: wrap;
             padding-top: 2rem;
             border-top: 1px solid #eee;
             max-width: 800px;
             margin: 0 auto;
         }
         .contact-link {
             text-decoration: none;
             font-size: 1rem;
             font-weight: 600;
             display: inline-flex;
             align-items: center;
             gap: 0.6rem;
             padding: 0.75rem 1.8rem;
             border-radius: 999px;
             background-color: var(--light-gray);
             color: var(--primary-color);
             box-shadow: 0 2px 6px rgba(15,23,42,0.08);
             border: 1px solid rgba(212,175,55,0.45);
             transition: background-color 0.25s ease, box-shadow 0.25s ease, transform 0.2s ease;
             font-family: inherit;
         }
         .contact-link i {
             font-size: 1.2rem;
             color: var(--secondary-color);
             width: auto;
             text-align: center;
         }
         .contact-link span {
             font-weight: 500;
             color: var(--primary-color);
             margin-left: 0.25rem;
             word-break: break-all;
         }
         .contact-link:hover {
             background-color: #e5e7eb;
             box-shadow: 0 3px 10px rgba(15,23,42,0.12);
             transform: translateY(-1px);
         }

        @media (max-width: 480px) {
            .hero-buttons .btn {
                white-space: normal;
                font-size: 1rem;
                padding: 14px 24px;
                animation: none;
            }
            .hero-text h1{
                font-size:2.8rem;
                line-height:1.14;
                letter-spacing:0.01em;
                font-weight:800;
                text-shadow:0 5px 14px rgba(0,0,0,0.9);
            }
            .hero-text .slogan {
                font-size:1.25rem;
            }
            .hero-text p:not(.slogan) {
                font-size:0.95rem;
                line-height:1.9;
            }
            .hero-text {
                padding: 100px 1.25rem 80px;
            }
            
            fieldset { padding-top: 1.5rem; margin-bottom: 2rem; }
            legend { font-size: 1.3rem; }

            
            #price-calculator-form {
                padding: 1.5rem 1.1rem;
            }
            #price-calculator-form button {
                margin-top: 1.2rem;
                font-size: 1rem;
                padding: 14px;
            }
            
            #calculation-result .final-price, #return-calculation-result .final-price { font-size: 2.2rem; }
            #calculation-result, #return-calculation-result { padding: 1.5rem !important; }

            
            .total-price-section {
                padding: 2rem 1.25rem;
            }
            .total-price-section .total-amount { font-size: 2.2rem; }

            
            .inline-radios label,
            #booking-form .checkbox-group label {
                font-size: 1rem;
                line-height: 1.7;
                padding: 4px 8px;
                border-radius: 4px;
            }
            .inline-radios {
                display: flex;
                gap: 0.5rem;
                flex-wrap: wrap;
            }
            @media (min-width: 992px) {
              .pac-item {
                padding: 9px 18px !important;
                font-size: 1rem !important;
              }
              .pac-item.pac-item-selected .pac-item-query {
                font-weight: 600;
              }
              .pac-item-custom-icon {
                font-size: 1.05rem;
              }
              .pac-item-query {
                font-size: 1rem !important;
              }
              .pac-item-query + span {
                font-size: 0.9rem !important;
              }
              .pac-container {
                max-height: 60vh !important;
              }
            }
            @media (max-width: 768px) {
              .pac-item {
                padding: 9px 12px !important;
              }
              .pac-item-custom-icon {
                font-size: 0.95rem;
              }
              .pac-item-query {
                font-size: 0.95rem !important;
              }
              .pac-item-query + span {
                font-size: 0.78rem !important;
              }
              .address-summary {
                font-size: 0.8rem;
              }
              .recent-address-chip {
                font-size: 0.78rem;
                padding: 4px 8px;
              }
              .pac-container {
                max-height: 50vh !important;
              }
            }
            .gm-style-cc { 
                 display: none !important; 
            }
             #contacto {
                 background-color: var(--white);
                 border-top: 1px solid #eee;
             }
             #contacto h2 { margin-bottom: 2rem; }
             #contacto p { font-size: 1.15rem; max-width: 700px; margin: 0 auto 3rem auto; color: var(--text-color); line-height: 1.8;}
             .contact-links {
                 display: flex;
                 justify-content: center;
                 gap: 2rem;
                 flex-wrap: wrap;
                 padding-top: 2rem;
                 border-top: 1px solid #eee;
                 max-width: 800px;
                 margin: 0 auto;
             }
             .contact-link {
                 text-decoration: none;
                 font-size: 1rem;
                 font-weight: 600;
                 display: inline-flex;
                 align-items: center;
                 gap: 0.6rem;
                 padding: 0.75rem 1.8rem;
                 border-radius: 999px;
                 background-color: var(--light-gray);
                 color: var(--primary-color);
                 box-shadow: 0 2px 6px rgba(15,23,42,0.08);
                 border: 1px solid rgba(212,175,55,0.45);
                 transition: background-color 0.25s ease, box-shadow 0.25s ease, transform 0.2s ease;
                 font-family: inherit;
             }
             .contact-link i {
                 font-size: 1.2rem;
                 color: var(--secondary-color);
                 width: auto;
                 text-align: center;
             }
             .contact-link span {
                 font-weight: 500;
                 color: var(--primary-color);
                 margin-left: 0.25rem;
                 word-break: break-all;
             }
             .contact-link:hover {
                 background-color: #e5e7eb;
                 box-shadow: 0 3px 10px rgba(15,23,42,0.12);
                 transform: translateY(-1px);
             }

            @media (max-width: 480px) {
                .hero-buttons .btn {
                    white-space: normal;
                    font-size: 1rem;
                    padding: 14px 24px;
                    animation: none;
                }
                .hero-text h1{
                    font-size:2.8rem;
                    line-height:1.14;
                    letter-spacing:0.01em;
                    font-weight:800;
                    text-shadow:0 5px 14px rgba(0,0,0,0.9);
                }
                .hero-text .slogan {
                    font-size:1.25rem;
                }
                .hero-text p:not(.slogan) {
                    font-size:0.95rem;
                    line-height:1.9;
                }
                
                fieldset { padding-top: 1.5rem; margin-bottom: 2rem; }
            legend { font-size: 1.3rem; }
            }
            #price-calculator-form .form-row {
                flex-direction: column;
            }
        }

        @media (max-width: 992px) {
          #price-calculator-form .form-row,
          #booking-form .form-row {
            flex-direction: column;
          }
        }

        @media (min-width: 1200px) {
          .hero-text {
            max-width: 1050px;
          }
          .hero-text h1 {
            font-size: 5.1rem;
            line-height: 1.05;
          }
          .hero-text .slogan {
            font-size: 1.9rem;
          }
          .hero-text p:not(.slogan) {
            font-size: 1.32rem;
          }
        }
@media(max-width:768px){
  .services-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:1rem;
  }
  .service-item{
    padding:1.1rem 0.8rem;
    display:flex;
    flex-direction:column;
    justify-content:flex-start;
    align-items:center;
    height:100%;
  }
  .service-item i{
    font-size:2.1rem;
  }
  .service-item p{
    font-size:.85rem;
  }
  .service-item h3{
    font-size:1.1rem;
    line-height:1.3;
    min-height:2.8em;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
  }
  .reviews-grid{grid-template-columns:repeat(1,1fr) !important}
  .review-card{padding:1.5rem;}
  
  .why-choose-us-content{flex-direction:column;}
  .why-choose-us-text li{align-items:flex-start;text-align:left}
  
  .vehicle-content{flex-direction:column-reverse;}
  html[lang="de-DE"] .services-grid .service-item h3,
  html[lang="de-DE"] .services-grid .service-item p{
    word-break: break-word;
    overflow-wrap: break-word;
  }
}
.why-choose-us-text li div{
  text-align: justify;
  flex: 1 1 auto;
  min-width: 0;
  word-break: break-word;
  overflow-wrap: break-word;
}
@media (max-width: 768px) {
  .why-choose-us-text p{
    text-align:left;
  }
  .why-choose-us-text p.why-intro{
    text-align:center;
  }
  .why-choose-us-text li div{
    text-align:left;
  }
}

.hero-mobile-image {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 46%;
  max-width: none;
  border-radius: 0;
  margin: 0;
  box-shadow: none;
  z-index: 0;
}

@media (max-width: 768px) {
  .hero-image {
    display: none; 
  }
  
  .hero-split{
    background-position:center 50%;
  }
  .hero-mobile-image{
    object-position:center 50%;
  }
}


@media (max-width: 992px) {
  .nav-container {
    position: relative;
    display: flex;
    align-items: center;
    height: auto;
    padding: 0;
    width: 100%;
    max-width: none;
    margin: 0;
    justify-content: space-between;
  }

  .nav-logo {
    order: 0;
    position: relative;
    transform: none;
    margin: 0 0.5rem 0 4px;
    z-index: 2000; 
  }

  .nav-links,
  .nav-menu {
    display: none;
  }

  .nav-icons {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
  }

  .hamburger {
    display: block;
    margin-left: auto;
    z-index: 2001; 
  }

  .nav-container.active .nav-links {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    position: fixed;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: min(520px, 100% - 24px); 
    background-color: var(--primary-color);
    padding: 70px 1.5rem 1.75rem; 
    box-shadow: 0 10px 25px rgba(0,0,0,.35);
    border-radius: 0 0 18px 18px;
    z-index: 1999; 
    overflow-y: auto; 
    animation: menuSlideIn 1.6s cubic-bezier(0.22, 1, 0.36, 1);
    backdrop-filter: blur(10px);
  }

  .nav-container.menu-closing .nav-links {
    animation: menuSlideOut 1.2s cubic-bezier(0.22, 1, 0.36, 1) forwards;
  }

  
  .nav-container.active .nav-quick-icons {
    display: block;
  }

  
  .nav-container.active .nav-links::before {
    content: "Taxi Conil 24h";
    display: block;
    font-size: 0.9rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--secondary-color);
    margin-bottom: 0.5rem;
  }

  
  .nav-container.active .nav-icons,
  .nav-container.active .nav-flags {
    opacity: 0;
    pointer-events: none;
  }
}

body.landing-airport .nav-links,
body.landing-airport .nav-menu,
body.landing-airport .hamburger {
  display: none !important;
}

body.landing-airport .nav-reservar-mobile {
  display: inline-block !important;
  background: linear-gradient(135deg, #d4af37, #e2c156, #f8e47a, #d4af37);
  background-size: 250% auto;
  color: var(--dark-gray) !important;
  font-weight: 700;
  padding: 7px 16px;
  border-radius: 50px;
  text-decoration: none;
  font-size: 0.9rem;
  animation: goldGradientMove 10s linear infinite, goldPulse 4s ease-in-out infinite, landingReservarVibrate 2.2s ease-in-out infinite;
  box-shadow: 0 0 10px rgba(212, 175, 55, 0.4);
  transition: all 0.3s ease;
  white-space: nowrap;
}

body.landing-airport .navbar { 
  height: auto; 
  padding: 8px 14px;
  border-radius: 0 0 10px 10px;
  background-color: var(--primary-color) !important;
  box-shadow: 0 4px 18px rgba(0,0,0,0.15);
}
body.landing-airport .nav-logo img { 
  height: 46px; 
  margin-top: 2px; 
}

body.landing-airport .nav-logo {
  margin: 0;
}
body.landing-airport .nav-icon-link i { 
  font-size: 16px; 
  line-height: 1; 
}
body.landing-airport .nav-flags img.flag-icon { 
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
  display: block; 
}

body.landing-airport .nav-container {
  position: relative;
  display: flex;
  align-items: center;
  height: auto;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 12px;
  width: 100%;
  justify-content: space-between;
}

body.landing-airport .nav-icons {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.7rem;
  transform: none;
  padding-right: 76px;
}

body.landing-airport .nav-icons a[href^="tel:"] {
  order: 1;
}

body.landing-airport .nav-icons .nav-reservar-mobile {
  order: 2;
}

body.landing-airport .nav-icons a[href^="mailto:"] {
  order: 3;
}

body.landing-airport .nav-flags {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  margin-left: 0 !important;
}

body.landing-airport .nav-flags a {
  width: 18px;
  height: 18px;
}

@media (min-width: 992px) {
  body.landing-airport .nav-flags a {
    width: 28px;
    height: 28px;
  }
}

body.landing-airport main {
  padding-top: 84px;
}

@media (max-width: 992px) {
  body.landing-airport main {
    padding-top: 72px;
  }
}

@media (max-width: 992px) {
  body.landing-airport .nav-icons {
    justify-content: center;
    padding-right: 36px;
  }
}

@media (max-width: 420px) {
  body.landing-airport .nav-icons {
    padding-right: 34px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero-text h1,
  .hero-text .slogan,
  .hero-text p,
  .hero-buttons,
  .hero-mobile-image {
    animation: none !important;
    transform: none !important;
    opacity: 1 !important;
    filter: none !important;
  }

  .btn-primary,
  .nav-links a[href="#calculadora"],
  .nav-reservar-mobile,
  #continue-min-price-btn,
  #show-confirmation-overlay-btn,
  #final-book-btn {
    animation: none !important;
  }
}

@media (max-width: 576px) {
  .nav-container.active .nav-links {
    padding-top: 56px;
  }
}

@media (max-width: 992px) {
  .navbar { height: auto; padding: 2px 0 4px; }
  .nav-logo img { height: 46px; margin-top: 2px; }
  .nav-icon-link i { font-size: 16px; line-height: 1; }
  .nav-flags img.flag-icon { height: 14px; width: auto; display: block; }
  .nav-icons { gap: 6px; height: auto; align-items: center; }
  .hamburger span { width: 18px; height: 2px; }
}



.btn-primary, .nav-links a[href="#calculadora"], .nav-reservar-mobile {
  background: linear-gradient(120deg, #d4af37, #f6e27a, #d4af37);
  background-size: 200% auto;
  color: var(--dark-gray) !important;
  animation: goldGradientMove 6s linear infinite, goldPulse 3s ease-in-out infinite;
  border: none;
  font-weight: 700;
}

.navbar .nav-links a[href="#calculadora"] {
  border-radius: 50px;
  padding: 7px 32px;
}

.btn-primary:hover {
  color: var(--white) !important;
  transform: translateY(-2px);
}

.nav-links a[href="#calculadora"]:hover,
.nav-reservar-mobile:hover {
  color: var(--dark-gray) !important;
  transform: translateY(-2px);
}

#continue-min-price-btn, #show-confirmation-overlay-btn, #final-book-btn {
  background: linear-gradient(135deg, #d4af37, #e2c156, #f8e47a, #d4af37);
  background-size: 250% auto;
  color: var(--dark-gray) !important;
  font-weight: 800;
  text-transform: uppercase;
  border: none;
  border-radius: 50px;
  padding: 18px 40px;
  box-shadow: 0 0 18px rgba(212, 175, 55, 0.6);
  animation: goldGradientMove 8s ease infinite, goldPulse 3s ease-in-out infinite;
  transition: all 0.3s ease;
}

#continue-min-price-btn:hover, #show-confirmation-overlay-btn:hover, #final-book-btn:hover {
  transform: scale(1.05);
  box-shadow: 0 0 30px rgba(212, 175, 55, 0.8);
  color: var(--white) !important;
}

@media (max-width: 992px) {
  #show-confirmation-overlay-btn,
  #final-book-btn {
    font-size: 1rem;
    padding: 14px 30px;
  }
}

@media (max-width: 768px) {
  .hero-buttons .btn,
  #price-calculator-form button[type=submit],
  #continue-min-price-btn,
  #return-min-accept-btn,
  #confirm-return-btn,
  #calculate-return-price-btn,
  #show-confirmation-overlay-btn,
  #final-book-btn {
    font-size: 0.95rem;
    padding: 12px 22px;
    line-height: 1.35;
  }

  .confirmation-buttons .btn {
    font-size: 1rem;
    padding: 14px 24px;
  }
}

@keyframes goldGradientMove {
  0% { background-position: 0% center; }
  50% { background-position: 100% center; }
  100% { background-position: 0% center; }
}

@keyframes goldPulse {
  0%, 100% {
    box-shadow: 0 0 18px rgba(212, 175, 55, 0.4);
    transform: scale(1);
  }
  50% {
    box-shadow: 0 0 26px rgba(212, 175, 55, 0.7);
    transform: scale(1.03);
  }
}

@keyframes landingReservarVibrate {
  0%, 92%, 100% {
    transform: none;
  }
  93% {
    transform: translateX(-1px) rotate(-0.4deg);
  }
  95% {
    transform: translateX(1px) rotate(0.4deg);
  }
  97% {
    transform: translateX(-1px) rotate(-0.4deg);
  }
  99% {
    transform: translateX(1px) rotate(0.4deg);
  }
}

@media (max-width: 992px) {
  .nav-reservar-mobile {
    display: inline-block !important;
    background: linear-gradient(135deg, #d4af37, #e2c156, #f8e47a, #d4af37);
    background-size: 250% auto;
    color: var(--dark-gray);
    font-weight: 700;
    padding: 7px 16px;
    border-radius: 50px;
    text-decoration: none;
    font-size: 0.9rem;
    animation: goldGradientMove 10s linear infinite, goldPulse 4s ease-in-out infinite;
    box-shadow: 0 0 10px rgba(212, 175, 55, 0.4);
    transition: all 0.3s ease;
    white-space: nowrap;
  }

  .navbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 10px;
  }

  
  .nav-icons {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.7rem;
    transform: translateX(-32px); 
  }

  
  .nav-flags {
    position: absolute;
    right: 34px;
    top: 50%;
    transform: translateY(-50%);
  }

  
  .hamburger {
    position: absolute;
    right: 0;
    top: 60%;
    transform: translateY(-50%);
    margin-left: 0;
  }

  .nav-icon-link {
    flex-shrink: 0;
  }

  
  .nav-icons .nav-icon-link[href^="tel"] {
    order: 0;
  }

  .nav-icons .nav-reservar-mobile {
    order: 1;
  }

  .nav-icons .nav-icon-link[href^="mailto"] {
    order: 2;
  }
}


#servicios .container,
#why-us .container,
#vehiculo .container,
#calculadora,
#reviews .container,
#contacto {
  padding-top: 3rem;
  padding-bottom: 3rem;
}

#reviews .container {
  padding-top: 3.75rem;
  padding-bottom: 3.75rem;
}

 #reviews .review-text {
   text-align: justify;
 }

 #contacto > p {
   text-align: center;
 }

 @media (min-width: 992px) {
   #why-us .why-choose-us-text p,
   #why-us .why-choose-us-text li > div,
   #contacto > p {
     text-align: justify;
   }
   #why-us .why-choose-us-text p.why-intro {
     text-align: center;
   }
 }



footer {
  background: var(--dark-gray);
  color: var(--white);
  padding: 3.5rem 2rem 2rem;
  margin-top: 4rem;
  border-top: 1px solid rgba(255,255,255,0.08);
  box-shadow: none;
}

.footer-inner {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: flex-start;
  gap: 3rem;
  max-width: 1100px;
  margin: 0 auto;
  text-align: center;
}


.footer-logo-row {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
}

.footer-logo-row img {
  width: 70px;
  height: 70px;
  border-radius: 12px;
  object-fit: cover;
  box-shadow: 0 4px 14px rgba(0,0,0,0.25);
}

.footer-logo-subtitle {
  margin-top: 1.1rem;
}

.footer-brand,
.footer-contact,
.footer-legal {
  flex: 1 1 260px;
  max-width: 320px;
}

.footer-logo-text .footer-logo-heading,
.footer-contact h3,
.footer-legal h4 {
  margin: 0 0 1rem;
  font-size: 1.3rem;
  font-weight: 600;
}

.footer-contact h3 {
  color: #ffffff;
}

.footer-description {
  margin-top: 1rem;
  line-height: 1.5;
  opacity: 0.85;
}

.footer-contact a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 10px 0;
  margin-bottom: 0.6rem;
  color: #ffffff;
  text-decoration: none;
}

.footer-contact a {
  transition: opacity .3s;
  text-align: center;
}

.footer-contact a i {
  margin-right: 0.45rem;
}

.footer-contact a:hover {
  opacity: .7;
}


.legal-link {
  display: block;
  padding: 0.4rem 0;
  background: none;
  border: none;
  color: #fff;
  font-size: 1rem;
  cursor: pointer;
  width: 100%;
  text-align: center;
  opacity: 0.8;
  transition: .3s;
}

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


.footer-legal-expanded {
  max-width: 900px;
  margin: 2rem auto 0;
}

.legal-section {
  display: none;
  background: rgba(255,255,255,0.06);
  padding: 2rem;
  border-radius: 14px;
  margin-bottom: 2rem;
  backdrop-filter: blur(6px);
  animation: fadeIn .5s ease forwards;
}

.legal-section p {
  text-align: justify;
  margin-bottom: 1rem;
  color: #333333;
}

.legal-section h3 {
  margin-top: 0;
  font-size: 1.5rem;
  color: var(--primary-color);
}

.legal-section h4 {
  margin-top: 1.5rem;
  margin-bottom: 0.5rem;
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--primary-color);
}

.legal-section p strong {
  color: var(--primary-color);
}


@keyframes fadeIn {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}


.legal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.85);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 3000;
}

.legal-overlay.visible {
  display: flex;
}

.legal-overlay-content {
  background: #ffffff;
  color: #333333;
  max-width: 900px;
  max-height: 90vh;
  width: 95%;
  padding: 2rem;
  border-radius: 12px;
  box-shadow: 0 20px 60px rgba(0,0,0,0.4);
  overflow-y: auto;
  position: relative;
}

.legal-overlay-content h1,
.legal-overlay-content h2,
.legal-overlay-content h3,
.legal-overlay-content h4 {
  color: var(--primary-color);
}

.legal-overlay-close {
  border: none;
  background: #ffffff;
  font-size: 1.8rem;
  line-height: 1;
  cursor: pointer;
  color: #666;
  position: sticky;
  top: 0;
  float: right;
  z-index: 10;
}


.legal-overlay-content p strong {
  color: var(--primary-color);
}


.footer-bottom {
  text-align: center;
  margin-top: 0.5rem;
  padding-top: 0;
  border-top: none;
  opacity: 1;
}


@media(max-width:768px) {
  footer { padding: 3rem 1.5rem 1.5rem; }
  .footer-logo-row img { width: 60px; height: 60px; }
}



.hamburger {
  position: relative;
  width: 26px;
  height: 20px;
  cursor: pointer;
  transition: all 0.3s ease-in-out;
}
.hamburger span {
  position: absolute;
  height: 3px;
  width: 100%;
  background: var(--white);
  border-radius: 3px;
  left: 0;
  transition: all 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}
.hamburger span:nth-child(1) { top: 0; }
.hamburger span:nth-child(2) { top: 8px; }
.hamburger span:nth-child(3) { top: 16px; }

.hamburger.active span:nth-child(1) {
  transform: rotate(45deg);
  top: 8px;
}
.hamburger.active span:nth-child(2) {
  opacity: 0;
}
.hamburger.active span:nth-child(3) {
  transform: rotate(-45deg);
  top: 8px;
}

@media (max-width: 992px) {
  .navbar .nav-flags {
    position: absolute;
    right: 15px; 
    top: 50%;
    transform: translateY(-50%);
  }

  .navbar .hamburger {
    position: absolute;
    right: 0;
    top: 42%;
    transform: translateY(-50%);
    margin-left: 0;
  }
}

@keyframes menuSlideIn {
  from {
    opacity: 0;
    transform: translate(-50%, -20px); 
  }
  to {
    opacity: 1;
    transform: translate(-50%, 0);     
  }
}

@keyframes menuSlideOut {
  from {
    opacity: 1;
    transform: translate(-50%, 0);
  }
  to {
    opacity: 0;
    transform: translate(-50%, -20px);
  }
}

@media (max-width:768px){
   .why-choose-us-text li {
      flex-direction: row !important;
      align-items: center !important;
      text-align: left !important;
      justify-content: flex-start !important;
      gap: 0.8rem;
   }
   .why-choose-us-text li i {
      margin-right: 0.6rem !important;
      margin-top: 0 !important;
   }
}


.why-choose-us-text h2 {
  margin-bottom: 2.2rem !important; 
}


@media (max-width: 768px) {
  .vehicle-text {
    text-align: center !important;
    padding-top: 1rem !important;
  }

  .vehicle-carousel {
    margin-top: 2rem !important;
  }
}


#booking-form-wrapper {
  min-height: 300px; 
  transition: all 0.6s ease;
  overflow: visible;
}

.fa-spinner.fa-spin {
  animation-duration: 1.6s !important;
}

.aviso-roche {
  background: none !important;
  border: none !important;
  color: #666 !important;
  font-size: 0.9rem !important;
  text-align: left !important;
  margin-top: 0.8rem !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  line-height: 1.5 !important;
  padding: 0 !important;
  max-width: 100% !important;
  display: block !important;
}
.aviso-roche i {
  color: #999 !important;
  margin-right: 0.4rem !important;
  font-size: 0.9rem !important;
}

.input-wrapper {
  position: relative;
  display: flex;
  align-items: center;
}
.clear-btn {
  position: absolute;
  right: 12px;
  color: #dc3545;
  font-size: 1.1rem;
  cursor: pointer;
  opacity: 0.6;
  transition: opacity 0.2s ease;
  display: none;
}
.clear-btn:hover {
  opacity: 1;
}
.input-wrapper input:not([readonly]):not([type="radio"]):not([type="checkbox"]),
.input-wrapper textarea {
  width: 100%;
  padding-right: 2rem;
}
  .visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
  
  .nav-icon-link {
    color: #ffffff !important;
    background: transparent;
    text-decoration: none !important;
    border: none !important;
    border-bottom: none !important;
    box-shadow: none !important;
    line-height: 1;
  }

  .nav-icon-link i {
    color: #ffffff !important;
  }

  .nav-icon-link:hover i {
    color: var(--secondary-color);
  }

  
  .nav-flags {
    display: flex !important;
    align-items: center;
    gap: 8px;
    margin-left: 0;
  }

  
  .nav-flags a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;  
    height: 18px;
    border-radius: 999px;
    border: 1.9px solid rgba(255, 255, 255, 0.9);
    background: transparent;
    overflow: hidden;
  }

  .nav-flags img.flag-icon {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    display: block;
  }

  
  .nav-flags a:hover,
  .nav-flags a:focus-visible {
    border-color: var(--secondary-color);
    outline: none;
  }

  
  .nav-quick-flags {
    display: flex !important;
    align-items: center;
    gap: 4px;
    margin-left: 0;
  }

  .nav-quick-flags a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 1.9px solid rgba(255, 255, 255, 0.9);
    background: transparent;
    overflow: hidden;
    padding: 0;
    margin: 0;
  }

  .nav-quick-flags img.flag-icon {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    display: block;
    margin: 0;
  }

  
  @media (min-width: 993px) {
    .nav-icons {
      gap: 10px;
    }

    .nav-flags {
      margin-left: 20px;
      gap: 8px;
    }

    .nav-flags a {
      width: 20px;  
      height: 20px;
    }
  }

  @media (max-width: 480px) {
    .nav-container {
      position: relative;
      justify-content: space-between;
    }

    
    .nav-icons {
      justify-content: center;
      gap: 0.65rem;
    }

    .nav-reservar-mobile {
      margin: 0;
    }

    .nav-flags {
      margin: 0;
      gap: 8px;
    }

    
    .nav-quick-icons-row {
      gap: 1rem;
    }
  }

  @media (max-width: 480px) {
    .container {
      padding-top: 3rem;
      padding-bottom: 3rem;
    }

    #servicios .container,
    #why-us .container,
    #vehiculo .container,
    #reviews .container,
    #calculadora,
    #contacto {
      padding-top: 2.25rem;
      padding-bottom: 2.25rem;
    }
  }

.reveal-hidden {
  opacity: 0;
  transform: translateY(18px);
  transition: all 1.05s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}

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


.hero-text h1 {
  display: inline-block;
  opacity: 0;
  filter: blur(4px);
  transform: translateY(-12px) scale(0.98);
  animation: heroTitleSoftFade 1.3s cubic-bezier(0.22, 1, 0.36, 1) 0s forwards;
}

.hero-text .slogan {
  opacity: 0;
  transform: translateY(12px) scale(0.97);
  animation: heroSloganSoftIn 1.4s cubic-bezier(0.22, 1, 0.36, 1) 0.35s forwards;
}

.hero-text p:not(.slogan),
.hero-buttons {
  opacity: 0;
  transform: translateY(20px);
  filter: blur(4px);
  animation: heroContentSoftIn 1.5s cubic-bezier(0.22, 1, 0.36, 1) 0.7s forwards;
}

@keyframes heroTitleSoftFade {
  to {
    opacity: 1;
    transform: none;
    filter: blur(0);
  }
}

@keyframes heroSloganSoftIn {
  to {
    opacity: 1;
    transform: none;
  }
}

@keyframes heroContentSoftIn {
  to {
    opacity: 1;
    transform: none;
    filter: blur(0);
  }
}

