    *{box-sizing:border-box;}
    body{font-family:'Nunito',sans-serif;background:#f5f0e8;color:#2c2416;margin:0;}
    .font-serif{font-family:'Playfair Display',serif;}

    /* ── Nav ── */
    #navbar{position:fixed;top:0;left:0;right:0;z-index:50;background:transparent;transition:background .3s,box-shadow .3s;}
    #navbar.scrolled{background:rgba(20,40,15,.97);box-shadow:0 2px 20px rgba(0,0,0,.3);}

    /* ── Hero ── */
    #hero{min-height:100vh;background:url('../assets/fondohero.webp') center/cover no-repeat;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;}
    #hero::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,20,6,.62) 0%,rgba(10,28,8,.45) 50%,rgba(8,20,6,.68) 100%);}
    #hero::after{content:'';position:absolute;inset:0;opacity:.018;background-image:repeating-linear-gradient(45deg,#fff 0,#fff 1px,transparent 1px,transparent 22px);}

    /* ── Cards ── */
    .tour-card{background:white;border-radius:16px;overflow:hidden;box-shadow:0 2px 12px rgba(0,0,0,.08);transition:transform .25s ease,box-shadow .25s ease;}
    .tour-card:hover{transform:translateY(-6px);box-shadow:0 14px 32px rgba(0,0,0,.15);}

    /* ── Tour image gradients ── */
    .img-monte-alban{background:linear-gradient(135deg,#6b4c2a 0%,#9e7a4a 40%,#c4a06a 70%,#d4b580 100%);}
    .img-alebrijes{background:linear-gradient(135deg,#7c3f8a 0%,#d4456a 40%,#ff7c45 70%,#ffad2a 100%);}
    .img-cuilapam{background:linear-gradient(135deg,#5a4a3a 0%,#8b6a4a 40%,#c4a06a 70%,#dcc090 100%);}
    .img-san-bartolo{background:linear-gradient(135deg,#1e1e1e 0%,#3a3a3a 40%,#606060 70%,#8a8a8a 100%);}
    .img-arbol-tule{background:linear-gradient(135deg,#1a4a1a 0%,#2d7a2d 40%,#4aaa4a 70%,#80c060 100%);}
    .img-hierve-agua{background:linear-gradient(135deg,#1a5a6a 0%,#2a8a9a 40%,#40b4c4 70%,#70d4e0 100%);}
    .img-mitla{background:linear-gradient(135deg,#6a3a1a 0%,#aa6a2a 40%,#d4a060 70%,#f0c080 100%);}
    .img-teotitlan{background:linear-gradient(135deg,#6a1a2a 0%,#aa3a4a 40%,#d4607a 70%,#f090a0 100%);}
    .img-mezcal{background:linear-gradient(135deg,#3a2400 0%,#7a5210 40%,#c49030 70%,#f0c060 100%);}

    /* ── Sierra Juárez ── */
    .img-ixtlan{background:linear-gradient(135deg,#1a4a0a 0%,#2d7a1a 40%,#50aa30 70%,#80c060 100%);}
    .img-guelatao{background:linear-gradient(135deg,#0a2a4a 0%,#1a5a8a 40%,#3090c0 70%,#60b0e0 100%);}
    .img-capulalpam{background:linear-gradient(135deg,#2a3a1a 0%,#4a6a2a 40%,#7a9a4a 70%,#a0c060 100%);}

    /* ── Temporada ── */
    .img-cuevas{background:linear-gradient(135deg,#2a1a0a 0%,#5a3a1a 40%,#9a6a30 70%,#c0a060 100%);}
    .img-pto-escondido{background:linear-gradient(135deg,#003a6a 0%,#006a9a 40%,#00a0c0 70%,#40d0e0 100%);}
    .img-ocotlan{background:linear-gradient(135deg,#6a0a2a 0%,#aa2a4a 40%,#d06070 70%,#f090a0 100%);}
    .img-dia-muertos{background:linear-gradient(135deg,#0a0a2a 0%,#2a0a4a 40%,#5a1a6a 70%,#c09000 100%);}
    .img-guelaguetza{background:linear-gradient(135deg,#6a0060 0%,#c02000 40%,#e08000 70%,#f0c000 100%);}
    .img-apoala{background:linear-gradient(135deg,#003a2a 0%,#006a5a 40%,#00a08a 70%,#40c0b0 100%);}

    /* ── Nuevos tours ── */
    .img-sierra-juarez{background:linear-gradient(135deg,#0a2a0a 0%,#1a5a2a 40%,#3a8a4a 70%,#60aa70 100%);}
    .img-grutas{background:linear-gradient(135deg,#1a0a00 0%,#3a1a10 40%,#6a3a20 70%,#9a6a40 100%);}
    .img-tour-mezcalero{background:linear-gradient(135deg,#2a0a00 0%,#6a2a10 40%,#b05020 70%,#d08040 100%);}
    .img-huatulco{background:linear-gradient(135deg,#003a5a 0%,#006a8a 40%,#00a0c0 70%,#60d4e8 100%);}
    .img-juquila{background:linear-gradient(135deg,#2a0050 0%,#5a008a 40%,#9020c0 70%,#c060e0 100%);}
    .img-nudistas{background:linear-gradient(135deg,#005a3a 0%,#009a60 40%,#30c890 70%,#70e8c0 100%);}
    .img-puente-sanjose{background:linear-gradient(135deg,#0a0a2a 0%,#1a2a4a 40%,#3060a0 70%,#70a0d8 100%);}
    .img-comparsas{background:linear-gradient(135deg,#6a0a0a 0%,#b02020 40%,#d87020 70%,#f0c000 100%);}

    /* ── Badges nuevos ── */
    .badge-sierra{background:#e3f2fd;color:#0d47a1;}
    .badge-temporada{background:#fce4ec;color:#880e4f;}

    /* ── Modal backdrop ── */
    #modal-backdrop{position:fixed;inset:0;z-index:100;background:rgba(10,25,8,.72);backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity .3s ease;}
    #modal-backdrop.active{opacity:1;pointer-events:all;}

    /* ── Side panel ── */
    #modal-panel{position:fixed;top:0;right:0;bottom:0;z-index:101;width:100%;max-width:500px;background:#faf6ef;overflow-y:auto;transform:translateX(100%);transition:transform .35s cubic-bezier(.4,0,.2,1);box-shadow:-8px 0 40px rgba(0,0,0,.2);}
    #modal-panel.active{transform:translateX(0);}
    #modal-panel::-webkit-scrollbar{width:4px;}
    #modal-panel::-webkit-scrollbar-thumb{background:#c4a06a;border-radius:2px;}

    /* ── Form ── */
    .form-input{width:100%;padding:10px 14px;background:white;border:1.5px solid #ddd0b8;border-radius:8px;font-family:'Nunito',sans-serif;font-size:.9rem;color:#2c2416;outline:none;transition:border-color .2s,box-shadow .2s;}
    .form-input:focus{border-color:#4a7c3f;box-shadow:0 0 0 3px rgba(74,124,63,.12);}
    .form-input.invalid{border-color:#e53e3e!important;box-shadow:0 0 0 3px rgba(229,62,62,.1)!important;}
    .form-input.valid{border-color:#38a169;}
    .error-msg{color:#e53e3e;font-size:.78rem;margin-top:3px;display:none;}
    .error-msg.show{display:block;}

    /* ── Counter buttons ── */
    .cnt-btn{width:34px;height:34px;border-radius:50%;border:2px solid #4a7c3f;background:transparent;color:#4a7c3f;font-size:1.2rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;font-weight:700;line-height:1;flex-shrink:0;}
    .cnt-btn:hover:not(:disabled){background:#4a7c3f;color:white;}
    .cnt-btn:disabled{opacity:.3;cursor:not-allowed;}

    /* ── Buttons ── */
    .btn-book{background:linear-gradient(135deg,#2d5a27 0%,#4a8840 100%);color:white;padding:11px 22px;border-radius:8px;font-weight:700;font-size:.9rem;border:none;cursor:pointer;transition:all .2s;font-family:'Nunito',sans-serif;letter-spacing:.02em;display:inline-block;text-decoration:none;}
    .btn-book:hover{background:linear-gradient(135deg,#1a3a1a 0%,#2d5a27 100%);transform:translateY(-1px);box-shadow:0 4px 12px rgba(45,90,39,.4);}
    .btn-cancel{background:transparent;color:#7a6a54;padding:11px 18px;border-radius:8px;font-weight:600;font-size:.9rem;border:1.5px solid #c4b09a;cursor:pointer;transition:all .2s;font-family:'Nunito',sans-serif;}
    .btn-cancel:hover{background:#f0e8d8;border-color:#9a8070;}

    /* ── Price box ── */
    #price-summary{background:linear-gradient(135deg,#f0ede5,#e8e0d0);border:1px solid #d4c4a0;border-radius:12px;padding:16px;}

    /* ── Success overlay ── */
    #success-overlay{position:fixed;inset:0;z-index:200;background:rgba(10,25,8,.88);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .3s ease;}
    #success-overlay.active{opacity:1;pointer-events:all;}
    #success-card{background:white;border-radius:16px;padding:16px 18px 14px;max-width:420px;width:94%;text-align:center;transform:scale(.9) translateY(20px);transition:transform .35s cubic-bezier(.34,1.56,.64,1);box-shadow:0 20px 60px rgba(0,0,0,.3);}
    #success-overlay.active #success-card{transform:scale(1) translateY(0);}
    #success-rows{width:100%;border-collapse:collapse;}
    #success-rows td{padding:3px 4px;font-size:.78rem;line-height:1.25;}
    #success-rows td:first-child{color:#6b7280;white-space:nowrap;padding-right:10px;vertical-align:top;}
    #success-rows td:last-child{font-weight:600;color:#111827;text-align:right;}
    #success-rows td:last-child span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
    #success-rows tr.total-row td{border-top:1px solid #fde68a;padding-top:6px;font-weight:700;}
    #success-rows tr.total-row td:last-child{color:#15803d;}

    /* ── Filter chips ── */
    .cat-chip{padding:6px 16px;border-radius:20px;font-size:.82rem;font-weight:700;border:2px solid #c4b09a;background:white;color:#7a6a54;cursor:pointer;transition:all .2s;white-space:nowrap;}
    .cat-chip:hover,.cat-chip.active{background:#2d5a27;color:white;border-color:#2d5a27;}

    /* ── Badge ── */
    .badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;}
    .badge-arqueologia{background:#fff3cd;color:#856404;}
    .badge-artesanias{background:#fce4ec;color:#880e4f;}
    .badge-naturaleza{background:#e8f5e9;color:#1b5e20;}
    .badge-historia{background:#ede7f6;color:#4527a0;}
    .badge-gastronomia{background:#fff8e1;color:#e65100;}

    /* ── WhatsApp float ── */
    .wa-float{position:fixed;bottom:24px;right:24px;z-index:80;width:56px;height:56px;border-radius:50%;background:#25d366;color:white;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px rgba(37,211,102,.5);cursor:pointer;transition:transform .2s,box-shadow .2s;text-decoration:none;}
    .wa-float:hover{transform:scale(1.1);box-shadow:0 6px 20px rgba(37,211,102,.65);}

    /* ── Animations ── */
    @keyframes fadeInUp{from{opacity:0;transform:translateY(24px);}to{opacity:1;transform:translateY(0);}}
    @keyframes checkPop{0%{transform:scale(0);}70%{transform:scale(1.2);}100%{transform:scale(1);}}
    @keyframes pulse{0%,100%{opacity:1;}50%{opacity:.5;}}
    .fade-up{opacity:0;transform:translateY(28px);transition:opacity .6s ease,transform .6s ease;}
    .fade-up.visible{opacity:1;transform:translateY(0);}
    .check-anim{animation:checkPop .5s cubic-bezier(.34,1.56,.64,1) .15s both;}

    /* ── Misc ── */
    .line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;}
    @media(max-width:640px){#modal-panel{max-width:100%;}}

    /* ── Mobile nav ── */
    #mobile-nav{position:fixed;inset:0;z-index:9998;background:rgba(8,22,6,.97);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;transform:translateY(-110%);transition:transform .42s cubic-bezier(.4,0,.2,1);pointer-events:none;}
    #mobile-nav.open{transform:translateY(0);pointer-events:all;}
    #mobile-nav a{color:#fff;font-size:1.3rem;font-weight:700;font-family:'Playfair Display',serif;text-decoration:none;letter-spacing:.02em;opacity:.85;transition:opacity .2s;}
    #mobile-nav a:hover{opacity:1;color:#fbbf24;}
    #mobile-nav-close{position:absolute;top:20px;right:24px;background:none;border:none;color:#fff;font-size:1.8rem;cursor:pointer;line-height:1;opacity:.7;}
    #mobile-nav-close:hover{opacity:1;}
    #mobile-nav .lang-row{display:flex;gap:10px;margin-top:8px;}

    /* ── Responsive fixes ── */
    html,body{overflow-x:hidden;max-width:100%;}

    /* Filter chips — horizontal scroll on mobile */
    @media(max-width:768px){
      #filter-container{flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;padding-bottom:6px;scrollbar-width:none;}
      #filter-container::-webkit-scrollbar{display:none;}
      .cat-chip{flex-shrink:0;}
    }
    /* Sections — tighter padding on mobile */
    @media(max-width:640px){
      section{padding-left:16px!important;padding-right:16px!important;}
      #hero{padding-top:80px;}
      #hero .text-5xl{font-size:clamp(1.9rem,8vw,2.6rem)!important;}
      #hero h1{word-break:break-word;}
      .font-serif.text-4xl{font-size:clamp(1.5rem,6vw,1.9rem)!important;}
      .font-serif.text-5xl{font-size:clamp(1.7rem,7vw,2.1rem)!important;}
      #price-summary{padding:12px;}
      #modal-panel .p-6{padding:16px;}
      #detail-panel .p-6, #detail-panel .p-8{padding:16px!important;}
      #carousel-wrap{height:240px;}
      /* Nosotros — trust badge row smaller */
      #hero .text-2xl{font-size:1.3rem;}
    }
    /* Agencia form — mantener 3 col en vehiculos (caben bien) */
    @media(max-width:640px){
      .grid.grid-cols-3{grid-template-columns:repeat(3,1fr);}
    }
    /* Tips grid 2 cols on mobile */
    @media(max-width:640px){
      #tips .grid{grid-template-columns:1fr 1fr!important;}
    }
    /* Historia — 2 col desde md en lugar de solo lg */
    @media(min-width:768px){
      #historia .grid-historia{grid-template-columns:1fr 1fr;}
    }
    /* Recomendaciones — tarjetas más compactas en móvil */
    @media(max-width:480px){
      #recomendaciones .rounded-2xl.flex{gap:12px;padding:14px 16px;}
      #recomendaciones .text-4xl{font-size:2rem;}
    }
    .hero-cta-amber{background:linear-gradient(135deg,#b8620a 0%,#e8920a 100%);}
    .hero-cta-amber:hover{background:linear-gradient(135deg,#8a4800 0%,#c07000 100%);}

    /* ── Splash screen ── */
    #splash{position:fixed;inset:0;z-index:9999;background:#0a1a08;transition:opacity .9s ease,visibility .9s ease;overflow:hidden;}
    #splash.hide{opacity:0;visibility:hidden;pointer-events:none;}
    #splash-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .8s ease;}
    #splash-bg.loaded{opacity:1;}
    #splash-overlay::before{content:'';position:absolute;inset:0;background:rgba(8,20,6,.62);z-index:0;}
    #splash-overlay>*{position:relative;z-index:1;}
    #splash-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;}
    #splash-logo{height:min(360px,52vmin);width:min(360px,52vmin);object-fit:contain;filter:drop-shadow(0 6px 24px rgba(0,0,0,.8));animation:logoReveal 2.6s cubic-bezier(.1,.4,.6,1) .3s both;}
    @keyframes logoReveal{from{clip-path:inset(0 0 100% 0);}to{clip-path:inset(0 0 0% 0);}}
    #splash-brand{color:#fff;font-family:'Playfair Display',serif;font-size:1.55rem;font-weight:700;margin-top:18px;letter-spacing:.02em;opacity:0;animation:fadeInSplash .7s ease 2.8s forwards;}
    @keyframes fadeInSplash{to{opacity:1;}}
    #splash-logo-bar-wrap{width:130px;height:3px;background:rgba(255,255,255,.18);border-radius:2px;margin:14px 0 18px;overflow:hidden;}
    #splash-logo-bar{height:100%;width:0%;background:linear-gradient(90deg,#fbbf24,#f59e0b);border-radius:2px;animation:barFill 2.6s cubic-bezier(.1,.4,.6,1) .3s forwards;}
    @keyframes barFill{from{width:0%;}to{width:100%;}}
    #splash-phrase{color:#fde68a;font-size:clamp(.78rem,2.2vw,.95rem);text-align:center;max-width:320px;min-height:1.4em;transition:opacity .35s ease;font-style:italic;padding:0 20px;line-height:1.5;}
    #splash-dots{display:flex;gap:8px;margin-top:18px;}
    .s-dot{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.3);animation:sdot 1.4s ease-in-out infinite;}
    .s-dot:nth-child(2){animation-delay:.2s;}
    .s-dot:nth-child(3){animation-delay:.4s;}
    @keyframes sdot{0%,80%,100%{background:rgba(255,255,255,.2);transform:scale(1);}40%{background:#fbbf24;transform:scale(1.4);}}

    /* ── Splash skip button ── */
    #splash-skip{position:absolute;bottom:28px;right:28px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);color:rgba(255,255,255,.6);font-size:.75rem;font-weight:700;padding:7px 16px;border-radius:20px;cursor:pointer;font-family:'Nunito',sans-serif;letter-spacing:.06em;opacity:0;animation:fadeInUp .4s ease 3.5s forwards;transition:background .2s,color .2s;}
    #splash-skip:hover{background:rgba(255,255,255,.24);color:#fff;}

    /* ── Card image — clickable hint ── */
    .card-img-wrap{cursor:pointer;}
    .card-img-wrap:hover .photo-hint{opacity:1;}
    .photo-hint{position:absolute;bottom:10px;right:10px;background:rgba(0,0,0,.5);backdrop-filter:blur(4px);color:#fff;font-size:.7rem;font-weight:700;padding:4px 10px;border-radius:20px;opacity:0;transition:opacity .2s;}

    /* ── Card mini carousel ── */
    .card-mini-carousel img.c-mini{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .65s ease-in-out;}
    .card-mini-carousel img.c-mini.on{opacity:1;}

    /* ── Itinerary photo strip ── */
    .stop-photos{display:flex;gap:8px;overflow-x:auto;padding:10px 0 4px;scrollbar-width:none;margin-top:8px;}
    .stop-photos::-webkit-scrollbar{display:none;}
    .stop-photos img{height:88px;width:118px;object-fit:cover;border-radius:10px;flex-shrink:0;cursor:pointer;transition:transform .2s,box-shadow .2s;}
    .stop-photos img:hover{transform:scale(1.04);box-shadow:0 4px 16px rgba(0,0,0,.22);}

    /* ── Lightbox ── */
    #lb{position:fixed;inset:0;z-index:400;background:rgba(0,0,0,.92);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .3s ease;}
    #lb.on{opacity:1;pointer-events:all;}
    #lb img{max-width:92vw;max-height:88vh;border-radius:12px;object-fit:contain;box-shadow:0 8px 40px rgba(0,0,0,.6);}
    #lb-close{position:absolute;top:18px;right:22px;color:#fff;font-size:2rem;cursor:pointer;line-height:1;background:none;border:none;opacity:.7;}
    #lb-close:hover{opacity:1;}
    #lb-prev,#lb-next{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.15);border:none;color:#fff;font-size:2rem;width:48px;height:48px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s;}
    #lb-prev{left:16px;}#lb-next{right:16px;}
    #lb-prev:hover,#lb-next:hover{background:rgba(255,255,255,.3);}

    /* ── Tour Detail Overlay ── */
    #detail-overlay{position:fixed;inset:0;z-index:160;background:rgba(0,0,0,.82);backdrop-filter:blur(5px);opacity:0;pointer-events:none;transition:opacity .7s ease;display:flex;align-items:center;justify-content:center;padding:12px;}
    #detail-overlay.active{opacity:1;pointer-events:all;}
    #detail-panel{background:#fff;border-radius:20px;width:100%;max-width:840px;max-height:92vh;overflow-y:auto;opacity:0;transform:translateY(32px);transition:opacity .7s ease,transform .7s ease;display:flex;flex-direction:column;}
    #detail-panel::-webkit-scrollbar{width:4px;}
    #detail-panel::-webkit-scrollbar-thumb{background:#c4a06a;border-radius:2px;}
    #detail-overlay.active #detail-panel{opacity:1;transform:translateY(0);}

    /* ── Carousel ── */
    #carousel-wrap{position:relative;height:300px;overflow:hidden;border-radius:20px 20px 0 0;flex-shrink:0;}
    @media(min-width:640px){#carousel-wrap{height:400px;}}
    #carousel-track{position:relative;height:100%;}
    .c-slide{position:absolute;inset:0;opacity:0;transition:opacity .7s ease;overflow:hidden;}
    .c-slide.on{opacity:1;}
    .c-slide img{width:100%;height:100%;object-fit:cover;display:block;}
    .c-slide .slide-bg{width:100%;height:100%;position:absolute;inset:0;}


    /* ── Language buttons ── */
    .lang-btn{padding:3px 8px;border-radius:5px;font-size:.68rem;font-weight:800;letter-spacing:.06em;border:1.5px solid rgba(255,255,255,.28);background:transparent;color:rgba(255,255,255,.65);cursor:pointer;transition:all .2s;font-family:'Nunito',sans-serif;}
    .lang-btn:hover,.lang-btn.active{background:rgba(255,255,255,.18);color:#fff;border-color:rgba(255,255,255,.7);}

    /* ── Google Translate — ocultar UI sin romper el DOM ── */
    .goog-te-banner-frame, .goog-te-ftab-float, iframe.skiptranslate{display:none!important;}
    body{top:0!important;}
    /* IMPORTANTE: el elemento necesita dimensiones reales para que Google Translate renderice el <select> */
    #google_translate_element{position:fixed;top:-400px;left:0;width:260px;height:50px;overflow:visible;opacity:0;pointer-events:none;z-index:-1;}
