/* ============================================================
   Contigo Tours - Home (portado 1:1 de diseno-combinado.html)
   Todo scopeado bajo .ct-home para convivir con Elementor.
   El header/topbar/footer los aporta el sitio, no este CSS.
   ============================================================ */
.ct-home{--teal:#1070b7;
  --teal-deep:#0c5589;
  --teal-soft:#e3f2fc;
  --orange:#1070b7;
  --orange-deep:#0c5589;
  --ink:#141212;
  --paper:#fbf8f2;
  --paper-2:#f3ede2;
  --line:#d9d2c4;
  --muted:#6b7276;
  --display:'Roboto',system-ui,sans-serif;
  --body:'Roboto',system-ui,sans-serif;}
.ct-home *{margin:0;padding:0;box-sizing:border-box}
.ct-home html{scroll-behavior:smooth}
.ct-home body{font-family:var(--body);background:var(--paper);color:var(--ink);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}

/* Base repuesta: al scopear, .ct-home body ya no aplica; el texto heredaba
   el color de encabezados del TEMA (p.ej. verde). Forzamos los tokens de marca. */
.ct-home{background:var(--paper);color:var(--ink);font-family:var(--body);line-height:1.6;-webkit-font-smoothing:antialiased}
.ct-home h1,.ct-home h2,.ct-home h3,.ct-home h4,.ct-home h5,.ct-home h6,.ct-home p,.ct-home li,.ct-home blockquote{color:var(--ink)}
.ct-home img{display:block;max-width:100%}
.ct-home a{color:inherit;text-decoration:none}
.ct-home .wrap{max-width:1280px;margin:0 auto;padding:0 32px}
.ct-home .hero{position:relative;padding:70px 0 40px}
.ct-home .hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
.ct-home .kicker{display:inline-flex;align-items:center;gap:10px;font-size:.8rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--teal);margin-bottom:26px}
.ct-home .kicker::before{content:'';width:34px;height:1px;background:var(--orange)}
.ct-home .hero h1{font-family:var(--display);font-weight:340;font-size:clamp(2.8rem,6vw,5.2rem);line-height:.98;letter-spacing:-.025em;margin-bottom:26px}
.ct-home .hero h1 em{font-style:italic;color:var(--teal)}
.ct-home .hero h1 .ow{color:var(--orange)}
.ct-home .hero p.lead{font-size:1.12rem;color:var(--muted);max-width:440px;margin-bottom:36px}
.ct-home .hero-actions{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.ct-home .btn-primary{background:var(--orange);color:#fff;padding:15px 30px;border-radius:46px;font-weight:600;display:inline-flex;align-items:center;gap:10px;transition:.25s;box-shadow:0 10px 30px -10px var(--orange)}
.ct-home .btn-primary:hover{background:var(--orange-deep);transform:translateY(-2px)}
.ct-home .btn-ghost{font-weight:600;color:var(--ink);display:inline-flex;align-items:center;gap:9px}
.ct-home .btn-ghost .dot{width:42px;height:42px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;transition:.25s}
.ct-home .btn-ghost:hover .dot{background:var(--teal);color:#fff;border-color:var(--teal)}
.ct-home .hero-stats{display:flex;gap:38px;margin-top:48px;padding-top:30px;border-top:1px solid var(--line)}
.ct-home .hero-stats .n{font-family:var(--display);font-size:2rem;font-weight:500;color:var(--teal)}
.ct-home .hero-stats .l{font-size:.82rem;color:var(--muted)}
.ct-home .hero-art{position:relative;height:540px}
.ct-home .hero-art .frame{position:absolute;border-radius:18px;overflow:hidden;box-shadow:0 30px 60px -25px rgba(16,112,183,.45)}
.ct-home .hero-art .f1{width:62%;height:74%;top:0;right:0;z-index:2}
.ct-home .hero-art .f2{width:46%;height:50%;bottom:0;left:0;z-index:3;border:6px solid var(--paper)}
.ct-home .hero-art img{width:100%;height:100%;object-fit:cover}
.ct-home .hero-art .badge{position:absolute;z-index:4;bottom:34%;right:-6px;background:var(--paper);border-radius:14px;padding:14px 18px;box-shadow:0 18px 40px -16px rgba(0,0,0,.3);display:flex;align-items:center;gap:12px}
.ct-home .hero-art .badge .ic{width:40px;height:40px;border-radius:10px;background:var(--teal-soft);color:var(--teal);display:grid;place-items:center;font-size:1.2rem}
.ct-home .hero-art .badge b{font-family:var(--display);font-size:1.05rem;display:block}
.ct-home .hero-art .badge span{font-size:.74rem;color:var(--muted)}
.ct-home .hero-art .dots{position:absolute;top:-18px;left:30%;z-index:1;width:120px;height:120px;background-image:radial-gradient(var(--orange) 1.6px,transparent 1.6px);background-size:14px 14px;opacity:.5}
.ct-home .trust{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper-2)}
.ct-home .trust .wrap{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:18px 32px;flex-wrap:wrap}
.ct-home .trust .item{display:flex;align-items:center;gap:11px;font-size:.9rem;font-weight:500;color:var(--ink)}
.ct-home .trust .item .i{color:var(--orange);font-size:1.15rem}
.ct-home .shead{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:46px;flex-wrap:wrap}
.ct-home .shead .k{font-size:.78rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--orange);margin-bottom:14px;display:flex;align-items:center;gap:10px}
.ct-home .shead .k::before{content:'';width:28px;height:1px;background:var(--orange)}
.ct-home .shead h2{font-family:var(--display);font-weight:340;font-size:clamp(2rem,4vw,3.1rem);line-height:1.02;letter-spacing:-.02em;max-width:600px}
.ct-home .shead h2 em{font-style:italic;color:var(--teal)}
.ct-home .shead .link{font-weight:600;color:var(--teal);display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.ct-home .shead .link:hover{color:var(--orange)}
.ct-home .packages{padding:96px 0}
.ct-home .month-tabs{display:flex;gap:10px;margin-bottom:40px;flex-wrap:wrap}
.ct-home .month-tabs button{font-family:var(--body);font-weight:500;font-size:.9rem;padding:9px 20px;border-radius:40px;border:1px solid var(--line);background:transparent;color:var(--muted);cursor:pointer;transition:.2s}
.ct-home .month-tabs button.active,.ct-home .month-tabs button:hover{background:var(--teal);color:#fff;border-color:var(--teal)}
.ct-home .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.ct-home .card{background:var(--paper);border:1px solid var(--line);border-radius:18px;overflow:hidden;transition:.3s;display:flex;flex-direction:column}
.ct-home .card:hover{transform:translateY(-6px);box-shadow:0 28px 50px -28px rgba(16,112,183,.4);border-color:transparent}
.ct-home .card .ph{position:relative;aspect-ratio:1/1;overflow:hidden}
.ct-home .card .ph img{width:100%;height:100%;object-fit:cover;transition:.6s}
.ct-home .card:hover .ph img{transform:scale(1.06)}
.ct-home .card .tag{position:absolute;top:14px;left:14px;background:rgba(251,248,242,.92);backdrop-filter:blur(4px);color:var(--ink);font-size:.72rem;font-weight:600;letter-spacing:.05em;padding:6px 13px;border-radius:30px}
.ct-home .card .fav{position:absolute;top:12px;right:12px;width:38px;height:38px;border-radius:50%;background:rgba(251,248,242,.92);display:grid;place-items:center;color:var(--teal);font-size:1.05rem}
.ct-home .card .body{padding:22px 22px 24px;display:flex;flex-direction:column;flex:1}
.ct-home .card .loc{font-size:.78rem;color:var(--orange);font-weight:600;letter-spacing:.05em;text-transform:uppercase;margin-bottom:9px}
.ct-home .card h3{font-family:var(--display);font-weight:500;font-size:1.18rem;line-height:1.2;margin-bottom:auto;letter-spacing:-.01em}
.ct-home .card .meta{display:flex;align-items:center;justify-content:space-between;margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}
.ct-home .card .price b{font-family:var(--display);font-size:1.45rem;color:var(--teal);font-weight:500}
.ct-home .card .price span{font-size:.78rem;color:var(--muted);display:block;margin-top:-2px}
.ct-home .card .go{width:44px;height:44px;border-radius:50%;background:var(--teal-soft);color:var(--teal);display:grid;place-items:center;font-size:1.1rem;transition:.25s}
.ct-home .card:hover .go{background:var(--orange);color:#fff;transform:rotate(-30deg)}
.ct-home .why{background:var(--teal);color:#fff;padding:100px 0;position:relative;overflow:hidden}
.ct-home .why::before{content:'';position:absolute;top:-120px;right:-120px;width:380px;height:380px;border-radius:50%;background:radial-gradient(circle,var(--orange) 0%,transparent 70%);opacity:.28}
.ct-home .why .wrap{position:relative}
.ct-home .why .shead h2{color:var(--paper)}
.ct-home .why .shead .k{color:var(--orange)}
.ct-home .whgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.ct-home .wcard{border:1px solid rgba(255,255,255,.13);border-radius:16px;padding:30px 26px;transition:.3s;background:rgba(255,255,255,.02)}
.ct-home .wcard:hover{background:rgba(255,255,255,.06);transform:translateY(-4px)}
.ct-home .wcard .ic{width:54px;height:54px;border-radius:13px;background:var(--teal);display:grid;place-items:center;font-size:1.5rem;margin-bottom:20px}
.ct-home .wcard:nth-child(2n) .ic{background:var(--orange)}
.ct-home .wcard h4{font-family:var(--display);font-weight:500;font-size:1.22rem;margin-bottom:10px}
.ct-home .wcard p{color:rgba(251,248,242,.66);font-size:.93rem}
.ct-home .wtgrid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.ct-home .wtline{position:relative;padding-left:4px}
.ct-home .wtline::before{content:'';position:absolute;left:29px;top:10px;bottom:10px;width:2px;background:linear-gradient(var(--orange),rgba(165,219,244,.2))}
.ct-home .wtitem{position:relative;display:flex;gap:20px;padding:14px 0;align-items:flex-start}
.ct-home .wtnode{width:60px;height:60px;border-radius:50%;background:var(--teal-deep);border:2px solid #a5dbf4;display:grid;place-items:center;flex-shrink:0;z-index:2;color:#a5dbf4;transition:.3s}
.ct-home .wtitem:hover .wtnode{background:#a5dbf4;color:var(--ink);transform:scale(1.08)}
.ct-home .wtct{padding-top:6px}
.ct-home .wtct h4{font-family:var(--display);font-weight:500;font-size:1.2rem;margin-bottom:6px;color:#fff}
.ct-home .wtct h4 .n{color:#a5dbf4;font-style:italic;margin-right:10px}
.ct-home .wtct p{font-size:.92rem;color:rgba(251,248,242,.72)}
.ct-home .wtgallery{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:150px;gap:14px}
.ct-home .wtph{position:relative;border-radius:16px;overflow:hidden;cursor:pointer;border:1px solid rgba(255,255,255,.14)}
.ct-home .wtph:first-child{grid-column:span 2;grid-row:span 2}
.ct-home .wtph img{width:100%;height:100%;object-fit:cover;transition:.5s}
.ct-home .wtph:hover img{transform:scale(1.07)}
.ct-home .wtgov{position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,85,137,0) 40%,rgba(6,38,62,.85));display:flex;align-items:flex-end;padding:14px;transition:.3s}
.ct-home .wtph .gcap{font-size:.82rem;font-weight:700;color:#fff}
.ct-home .wtph .zoom{position:absolute;top:12px;right:12px;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.92);color:var(--ink);display:grid;place-items:center;opacity:0;transform:scale(.8);transition:.25s}
.ct-home .wtph:hover .zoom{opacity:1;transform:scale(1)}
.ct-home .wtlb{position:fixed;inset:0;z-index:999;background:rgba(5,22,40,.88);backdrop-filter:blur(6px);display:none;align-items:center;justify-content:center;padding:30px}
.ct-home .wtlb.on{display:flex}
.ct-home .wtlb-inner{position:relative;max-width:900px;width:100%;border-radius:18px;overflow:hidden;box-shadow:0 40px 90px -30px rgba(0,0,0,.7)}
.ct-home .wtlb-inner img{width:100%;max-height:78vh;object-fit:cover;display:block}
.ct-home .wtlb-cap{position:absolute;left:0;right:0;bottom:0;padding:22px 26px;background:linear-gradient(0deg,rgba(6,38,62,.95),transparent);color:#fff}
.ct-home .wtlb-cap b{font-size:1.3rem;font-weight:700;display:block}
.ct-home .wtlb-cap span{font-size:.9rem;color:rgba(255,255,255,.8)}
.ct-home .wtlb-close,.ct-home .wtlb-nav{position:absolute;border:none;background:rgba(255,255,255,.92);color:var(--ink);cursor:pointer;display:grid;place-items:center;z-index:2;transition:.2s}
.ct-home .wtlb-close{top:16px;right:16px;width:44px;height:44px;border-radius:50%}
.ct-home .wtlb-close:hover,.ct-home .wtlb-nav:hover{background:#a5dbf4}
.ct-home .wtlb-nav{top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%}
.ct-home .wtlb-prev{left:16px}
.ct-home .wtlb-next{right:16px}
@media(max-width:900px){.wtgrid{grid-template-columns:1fr;gap:36px}}
.ct-home .testi{padding:100px 0}
.ct-home .testi .wrap{display:grid;grid-template-columns:.85fr 1.15fr;gap:60px;align-items:center}
.ct-home .testi-left .k{font-size:.78rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--orange);margin-bottom:16px}
.ct-home .testi-left h2{font-family:var(--display);font-weight:340;font-size:clamp(2rem,4vw,3rem);line-height:1.05;letter-spacing:-.02em}
.ct-home .testi-left h2 em{font-style:italic;color:var(--teal)}
.ct-home .testi-left p{color:var(--muted);margin-top:22px;max-width:340px}
.ct-home .quote{background:var(--paper-2);border-radius:20px;padding:42px;position:relative}
.ct-home .quote .mark{font-family:var(--display);font-size:5rem;line-height:.5;color:var(--orange);opacity:.4;position:absolute;top:34px;left:34px}
.ct-home .quote blockquote{font-family:var(--display);font-weight:340;font-size:1.5rem;line-height:1.4;font-style:italic;margin:30px 0 26px;position:relative;z-index:1}
.ct-home .quote .who{display:flex;align-items:center;gap:14px}
.ct-home .quote .who img{width:54px;height:54px;border-radius:50%;object-fit:cover}
.ct-home .quote .who b{display:block;font-family:var(--display);font-size:1.05rem}
.ct-home .quote .who span{font-size:.84rem;color:var(--muted)}
.ct-home .cta{padding:0 0 100px}
.ct-home .cta .box{background:linear-gradient(120deg,var(--teal-deep),var(--teal));border-radius:26px;padding:64px 56px;color:#fff;position:relative;overflow:hidden;display:grid;grid-template-columns:1.3fr .7fr;gap:40px;align-items:center}
.ct-home .cta .box::after{content:'';position:absolute;bottom:-80px;right:-40px;width:300px;height:300px;background-image:radial-gradient(rgba(255,255,255,.25) 2px,transparent 2px);background-size:18px 18px}
.ct-home .cta h2{font-family:var(--display);font-weight:340;font-size:clamp(1.8rem,3.5vw,2.8rem);line-height:1.05;letter-spacing:-.02em;position:relative}
.ct-home .cta p{color:rgba(255,255,255,.8);margin-top:16px;max-width:420px;position:relative}
.ct-home .cta .form{display:flex;gap:10px;background:#fff;padding:7px;border-radius:50px;position:relative;z-index:1}
.ct-home .cta .form input{flex:1;border:none;outline:none;padding:12px 18px;font-family:var(--body);font-size:.92rem;color:var(--ink);background:transparent}
.ct-home .cta .form button{background:var(--orange);color:#fff;border:none;padding:12px 26px;border-radius:50px;font-family:var(--body);font-weight:600;cursor:pointer;transition:.2s}
.ct-home .cta .form button:hover{background:var(--orange-deep)}
.ct-home .seatsec{padding:0 0 100px}
.ct-home .seatsec .inner{background:var(--paper-2);border:1px solid var(--line);border-radius:24px;padding:54px;display:grid;grid-template-columns:1fr 1fr;gap:54px;align-items:center}
.ct-home .seatsec .k{font-size:.78rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--orange);margin-bottom:14px;display:flex;align-items:center;gap:10px}
.ct-home .seatsec .k::before{content:'';width:28px;height:1px;background:var(--orange)}
.ct-home .seatsec h2{font-family:var(--display);font-weight:340;font-size:clamp(1.9rem,3.6vw,2.8rem);line-height:1.04;letter-spacing:-.02em;margin-bottom:18px}
.ct-home .seatsec h2 em{font-style:italic;color:var(--teal)}
.ct-home .seatsec p{color:var(--muted);max-width:400px;margin-bottom:26px}
.ct-home .seatsec ul{list-style:none;display:flex;flex-direction:column;gap:13px}
.ct-home .seatsec li{display:flex;align-items:flex-start;gap:12px;font-size:.96rem}
.ct-home .seatsec li .c{width:24px;height:24px;border-radius:50%;background:var(--teal);color:#fff;display:grid;place-items:center;font-size:.78rem;flex-shrink:0;margin-top:2px}
.ct-home .bus{background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:22px;box-shadow:0 24px 50px -30px rgba(16,112,183,.4);max-width:330px;margin:0 auto}
.ct-home .bus .bhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.ct-home .bus .bhead b{font-family:var(--display);font-weight:500;font-size:1rem}
.ct-home .bus .bhead .driver{font-size:.74rem;color:var(--muted);display:flex;align-items:center;gap:6px}
.ct-home .deck{background:var(--paper-2);border:1px solid var(--line);border-radius:14px;padding:14px}
.ct-home .rows{display:flex;flex-direction:column;gap:6px}
.ct-home .row{display:grid;grid-template-columns:30px 30px 18px 30px 30px;gap:6px;justify-content:center;align-items:center}
.ct-home .seat{width:30px;height:30px;border-radius:7px;background:var(--paper);border:1.5px solid var(--line);display:grid;place-items:center;font-size:.56rem;font-weight:600;color:var(--muted);cursor:pointer;transition:.15s}
.ct-home .seat:hover{border-color:var(--teal);color:var(--teal)}
.ct-home .seat.taken{background:#e8e2d5;border-color:#e8e2d5;color:#b3ab98;cursor:not-allowed}
.ct-home .seat.sel{background:var(--teal);border-color:var(--teal);color:#fff}
.ct-home .seat.you{background:var(--orange);border-color:var(--orange);color:#fff}
.ct-home .legend{display:flex;gap:14px;margin-top:14px;flex-wrap:wrap;font-size:.74rem;color:var(--muted);justify-content:center}
.ct-home .legend span{display:flex;align-items:center;gap:6px}
.ct-home .legend i{width:12px;height:12px;border-radius:4px;display:inline-block}
.ct-home .count{padding:90px 0 100px}
.ct-home .count .box{background:var(--teal);color:#fff;border-radius:24px;padding:48px 50px;display:flex;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap;position:relative;overflow:hidden}
.ct-home .count .box::before{content:'';position:absolute;top:-60%;right:-6%;width:360px;height:360px;border-radius:50%;background:radial-gradient(circle,rgba(165,219,244,.32),transparent 70%)}
.ct-home .count .lbl{font-size:.78rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#a5dbf4;margin-bottom:12px;position:relative}
.ct-home .count h3{font-family:var(--display);font-weight:400;font-size:1.9rem;letter-spacing:-.01em;position:relative}
.ct-home .count h3 span{color:var(--paper);opacity:.6;font-size:1rem;font-style:italic;display:block;margin-top:4px;font-weight:300}
.ct-home .count .timer{display:flex;gap:14px;position:relative}
.ct-home .count .u{text-align:center;min-width:78px;border:1px solid rgba(255,255,255,.16);border-radius:14px;padding:16px 12px;background:rgba(255,255,255,.04)}
.ct-home .count .u .n{font-family:var(--display);font-weight:500;font-size:2.3rem;color:var(--paper);line-height:1;font-variant-numeric:tabular-nums}
.ct-home .count .u .t{font-size:.66rem;color:var(--paper);opacity:.6;letter-spacing:.1em;text-transform:uppercase;margin-top:9px}
@media(max-width:980px){
 .hero .wrap{grid-template-columns:1fr;gap:40px}
 .hero-art{height:420px}
 .testi .wrap,.cta .box{grid-template-columns:1fr}
 .seatsec .inner{grid-template-columns:1fr;gap:36px}
 .grid,.whgrid{grid-template-columns:repeat(2,1fr)}
 .fgrid{grid-template-columns:1fr 1fr}
}
@media(max-width:620px){
 .wrap{padding:0 20px}
 .menu,.nav-cta{display:none}
 .burger{display:block}
 .grid,.whgrid,.fgrid{grid-template-columns:1fr}
 .hero-stats{flex-wrap:wrap;gap:24px}
 .cta .box{padding:40px 26px}
 .seatsec .inner{padding:34px 24px}
 .count .box{padding:34px 26px}.count .u{min-width:64px;padding:13px 8px}.count .u .n{font-size:1.9rem}
}
.ct-home .reveal{opacity:0;transform:translateY(24px);transition:.7s cubic-bezier(.2,.7,.2,1)}
.ct-home .reveal.in{opacity:1;transform:none}
.ct-home .hero{position:relative;z-index:10;padding:40px 0 40px}
.ct-home .hero .wrap{display:grid;grid-template-columns:1.02fr .98fr;gap:40px;align-items:stretch;min-height:600px}
.ct-home .hero-copy{align-self:center;padding:54px 0}
.ct-home .kick{display:inline-flex;align-items:center;gap:10px;background:var(--teal-soft);color:var(--teal-deep);font-weight:600;font-size:.8rem;letter-spacing:.04em;padding:8px 16px;border-radius:40px;margin-bottom:24px}
.ct-home .kick .dot{width:8px;height:8px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 4px rgba(165,219,244,.25)}
.ct-home .hero h1{font-family:var(--display);font-weight:480;font-size:clamp(2.8rem,6vw,5.2rem);line-height:1;letter-spacing:-.02em;margin-bottom:22px}
.ct-home .hero h1 em{font-style:italic;color:var(--teal)}
.ct-home .hero h1 .o{color:var(--orange)}
.ct-home .hero .lead{font-size:1.12rem;color:var(--muted);max-width:440px;margin-bottom:34px}
.ct-home .hero-cta{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.ct-home .b1{background:var(--teal);color:#fff;padding:16px 30px;border-radius:46px;font-weight:600;display:inline-flex;gap:10px;align-items:center;transition:.25s;box-shadow:0 14px 30px -12px var(--teal)}
.ct-home .b1:hover{background:var(--teal-deep);transform:translateY(-2px)}
.ct-home .b2{font-weight:600;color:var(--ink);display:inline-flex;align-items:center;gap:10px}
.ct-home .b2 .c{width:44px;height:44px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;transition:.25s;background:#fff}
.ct-home .b2:hover .c{background:var(--orange);color:#fff;border-color:var(--orange);transform:scale(1.05)}
.ct-home .hero-stats{display:flex;gap:36px;margin-top:46px;padding-top:28px;border-top:1px solid var(--line)}
.ct-home .hero-stats .n{font-family:var(--display);font-size:2rem;color:var(--teal);font-weight:500}
.ct-home .hero-stats .l{font-size:.82rem;color:var(--muted)}
.ct-home .hero-carousel{position:relative;height:100%;min-height:600px;overflow:hidden;border-radius:28px;box-shadow:0 30px 60px -34px rgba(16,112,183,.45)}
.ct-home .hc-track{position:absolute;inset:0}
.ct-home .hc-slide{position:absolute;inset:0;opacity:0;transition:opacity 1.1s ease;transform:scale(1.04)}
.ct-home .hc-slide.on{opacity:1;transform:scale(1);transition:opacity 1.1s ease,transform 6s ease}
.ct-home .hc-slide img{width:100%;height:100%;object-fit:cover}
.ct-home .hero-carousel::after{content:none}
.ct-home .hc-cap{position:absolute;left:24px;bottom:22px;z-index:3;display:flex;align-items:center;gap:10px;
  background:rgba(255,255,255,.86);backdrop-filter:blur(6px);border:1px solid var(--line);
  padding:9px 15px;border-radius:40px;box-shadow:0 14px 34px -18px rgba(16,112,183,.4)}
.ct-home .hc-cap .pin{color:#a5dbf4;display:grid;place-items:center}
.ct-home .hc-cap b{font-family:var(--display);font-size:.95rem}
.ct-home .hc-dots{position:absolute;right:18px;bottom:22px;z-index:3;display:flex;gap:8px}
.ct-home .hc-dots button{width:9px;height:9px;border-radius:50%;border:none;background:rgba(255,255,255,.6);cursor:pointer;transition:.25s;padding:0}
.ct-home .hc-dots button.on{background:#a5dbf4;width:24px;border-radius:5px}
.ct-home .hc-arrows{position:absolute;top:50%;left:0;right:0;transform:translateY(-50%);z-index:3;display:flex;justify-content:space-between;padding:0 14px;pointer-events:none}
.ct-home .hc-arrows button{pointer-events:auto;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:rgba(255,255,255,.9);color:var(--ink);cursor:pointer;display:grid;place-items:center;transition:.2s;box-shadow:0 10px 24px -12px rgba(0,0,0,.3)}
.ct-home .hc-arrows button:hover{background:var(--orange);color:#fff;border-color:var(--orange)}
.ct-home .routes{position:relative;z-index:10;padding:90px 0}
.ct-home .routes .wrap{display:grid;grid-template-columns:1fr 1.15fr;gap:48px;align-items:center}
.ct-home .routes h2{font-family:var(--display);font-weight:480;font-size:clamp(2rem,4.2vw,3.1rem);line-height:1.04;letter-spacing:-.02em;margin-bottom:16px}
.ct-home .routes h2 em{font-style:italic;color:var(--teal)}
.ct-home .routes p{color:var(--muted);max-width:420px;margin-bottom:26px}
.ct-home .routes .countries{display:flex;flex-direction:column;gap:14px}
.ct-home .rc{display:flex;align-items:flex-start;gap:14px;padding:16px 18px;border:1px solid var(--line);border-radius:16px;background:#fff;transition:.25s;cursor:pointer}
.ct-home .rc:hover,.ct-home .rc.on{border-color:var(--teal);box-shadow:0 18px 40px -26px rgba(16,112,183,.5);transform:translateY(-2px)}
.ct-home .rc .fl{width:42px;height:42px;border-radius:10px;background:var(--teal-soft);color:var(--teal-deep);display:grid;place-items:center;flex-shrink:0}
.ct-home .rc.on .fl,.ct-home .rc:hover .fl{background:var(--orange);color:#fff}
.ct-home .rc .tx b{font-family:var(--display);font-size:1.05rem;display:block}
.ct-home .rc .tx span{font-size:.84rem;color:var(--muted)}
.ct-home .map-wrap{position:relative;
    width:100%;
    aspect-ratio:900/1117;

    
    background:linear-gradient(
        135deg,
        #e3f2fc 0%,
        #cfe8fa 100%
    );

    border:1px solid rgba(16,112,183,.12);
    border-radius:28px;
    overflow:hidden;

    padding:30px;

    box-shadow:
        0 20px 50px rgba(16,112,183,.08),
        inset 0 1px 0 rgba(255,255,255,.6);}
.ct-home .map-wrap::before{content:'';
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;

    background:
        repeating-linear-gradient(
            0deg,
            rgba(16,112,183,.06) 0px,
            rgba(16,112,183,.06) 1px,
            transparent 1px,
            transparent 40px
        ),
        repeating-linear-gradient(
            90deg,
            rgba(16,112,183,.06) 0px,
            rgba(16,112,183,.06) 1px,
            transparent 1px,
            transparent 40px
        );

    opacity:.5;}
.ct-home .map-img{position:absolute;
    inset:30px;
    width:calc(100% - 60px);
    height:calc(100% - 60px);
    object-fit:contain;
    z-index:2;

    filter:
        drop-shadow(0 18px 30px rgba(16,112,183,.18));}
.ct-home .map-wrap::after{content:'';
    position:absolute;
    inset:0;
    pointer-events:none;
    z-index:1;

    background:
        radial-gradient(
            circle at center,
            transparent 55%,
            rgba(16,112,183,.05) 100%
        );}
.ct-home .dpt{position:absolute;transform:translate(-50%,-50%);z-index:3;cursor:pointer;width:0;height:0}
.ct-home .dpt .core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:13px;height:13px;border-radius:50%;background:var(--teal);border:2.5px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.25);transition:.2s}
.ct-home .dpt .halo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:30px;height:30px;border-radius:50%;background:rgba(16,112,183,.18);animation:mpulse 2.4s ease-out infinite}
@keyframes mpulse{0%{transform:translate(-50%,-50%) scale(.7);opacity:.7}70%{opacity:0}100%{transform:translate(-50%,-50%) scale(1.8);opacity:0}}
.ct-home .dpt.home .core{background:#a5dbf4;width:16px;height:16px}
.ct-home .dpt.home .halo{background:rgba(165,219,244,.28)}
.ct-home .dpt:hover .core,.ct-home .dpt.on .core{background:var(--orange);width:17px;height:17px}
.ct-home .dpt.hide{opacity:.22;pointer-events:none}
.ct-home .dpt.hide .halo{animation:none}
.ct-home .route-arc{stroke:var(--orange);stroke-width:1.4;fill:none;opacity:.9;stroke-linecap:round;vector-effect:non-scaling-stroke}
.ct-home .arc-layer{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;overflow:visible}
.ct-home .map-tip{position:absolute;z-index:6;pointer-events:none;background:var(--teal-deep);color:#fff;padding:7px 12px;border-radius:9px;font-size:.78rem;opacity:0;transform:translate(-50%,-130%);transition:opacity .2s;white-space:nowrap;box-shadow:0 10px 24px -12px rgba(0,0,0,.45)}
.ct-home .map-tip b{color:#a5dbf4;display:block;font-family:var(--display);font-size:.9rem}
.ct-home .map-tip.on{opacity:1}
.ct-home .map-legend{position:absolute;left:8px;bottom:6px;z-index:4;font-size:.74rem;color:var(--muted);background:rgba(252,248,240,.82);padding:5px 12px;border-radius:20px;backdrop-filter:blur(4px)}
.ct-home .map-legend b{color:var(--teal-deep)}
@media(max-width:980px){
  .hero .wrap,.routes .wrap{grid-template-columns:1fr;gap:40px}
  .hero .wrap{min-height:0}
  .hero-copy{padding:8px 0 0}
  .hero-carousel{min-height:0;height:380px;border-radius:24px}
}
@media(max-width:600px){
  .hero-carousel{height:300px}
}

/* Reveal a prueba de fallos de JS: solo se oculta si .ct-js está en <html> */
.ct-home .reveal{opacity:1;transform:none}
.ct-js .ct-home .reveal{opacity:0;transform:translateY(24px)}
.ct-js .ct-home .reveal.in{opacity:1;transform:none}

/* Arreglo desfase del mapa: imagen, arcos y puntos comparten .map-inner (inset:30px)
   Antes: .map-img iba a inset:30px pero .dpt/.arc-layer usaban el marco completo. */
.ct-home .map-inner{position:absolute;inset:30px;z-index:1}
.ct-home .map-inner .map-img{inset:0;width:100%;height:100%}

/* Testimonios: quitar las comillas que el TEMA añade al blockquote (se solapaban en verde) */
.ct-home .quote blockquote::before,
.ct-home .quote blockquote::after{content:none}

/* Carrusel de testimonios */
.ct-home .quote .tslide{display:none}
.ct-home .quote .tslide.on{display:block;animation:ctfade .45s ease}
@keyframes ctfade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.ct-home .quote .nav-q{display:flex;gap:10px;justify-content:flex-end;margin-top:22px}
.ct-home .quote .nav-q button{width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--teal);font-size:1.3rem;line-height:1;cursor:pointer;transition:.2s}
.ct-home .quote .nav-q button:hover{background:var(--teal);color:#fff;border-color:var(--teal)}

/* Fix: en secciones de fondo teal el texto va en blanco.
   El reset .ct-home h2{ink} pisaba el blanco que heredaban de su caja. */
.ct-home .cta h2{color:#fff}
.ct-home .why h2,.ct-home .why h3,.ct-home .why h4,.ct-home .why p,.ct-home .why li{color:#fff}

/* Fix: sin guionado automático en los títulos (no partir "próximas").
   El tema de WordPress fuerza hyphens en los encabezados y se hereda con
   más peso, por eso hace falta !important para neutralizarlo. */
.ct-home,
.ct-home h1,.ct-home h2,.ct-home h3,.ct-home h4,.ct-home h5,.ct-home h6,
.ct-home p,.ct-home li,.ct-home blockquote{
  -webkit-hyphens:none !important;
  -ms-hyphens:none !important;
  hyphens:none !important;
}

/* Título del contador en blanco (el reset .ct-home h3{ink} lo pisaba) */
.ct-home .count h3{color:#fff}

/* ===== Móvil (≤820px): toda la home a una columna ===== */
@media(max-width:820px){
  .ct-home .hero .wrap{grid-template-columns:1fr;gap:34px}
  .ct-home .hero-stats{gap:18px;flex-wrap:wrap}
  .ct-home .trust .wrap{display:grid;grid-template-columns:1fr 1fr;gap:16px 14px;padding:22px}
  .ct-home .count .box{flex-direction:column;align-items:stretch;gap:24px;padding:36px 22px}
  .ct-home .count .timer{gap:8px;justify-content:space-between}
  .ct-home .count .u{min-width:0;flex:1;padding:14px 4px}
  .ct-home .count .u .n{font-size:1.75rem}
  .ct-home .shead{flex-direction:column;align-items:flex-start}
  .ct-home .grid{grid-template-columns:1fr}
  .ct-home .whgrid{grid-template-columns:1fr}
  .ct-home .wtgrid{grid-template-columns:1fr;gap:32px}
  .ct-home .wtgallery{grid-template-columns:1fr}
  .ct-home .testi .wrap{grid-template-columns:1fr;gap:30px}
  .ct-home .cta .box{grid-template-columns:1fr;gap:26px;padding:38px 26px}
  .ct-home .cta .form{flex-direction:column;border-radius:20px}
  .ct-home .seatsec .inner{grid-template-columns:1fr;gap:34px;padding:30px}
  /* Por dónde viajamos: título → texto → mapa → 3 zonas */
  .ct-home .routes .wrap{display:flex;flex-direction:column;gap:22px}
  .ct-home .routes-copy{display:contents}
  .ct-home .routes-copy h2{order:1}
  .ct-home .routes-copy p{order:2}
  .ct-home .map-wrap{order:3}
  .ct-home .routes-copy .countries{order:4}
}

/* CTA del contador -> producto del viaje más próximo */
.ct-home .count-cta{display:inline-flex;align-items:center;gap:8px;margin-top:22px;background:#fff;color:var(--teal-deep);font-family:var(--body);font-weight:600;font-size:.95rem;padding:12px 26px;border-radius:44px;text-decoration:none;transition:.2s;box-shadow:0 14px 28px -14px rgba(0,0,0,.4)}
.ct-home .count-cta:hover{transform:translateY(-2px);color:var(--teal)}

/* Kicker sin línea decorativa */
.ct-home .k::before{display:none!important}
