:root{--cch-black:#090909;--cch-ink:#171717;--cch-white:#f8f8f5;--cch-yellow:#f7d731;--cch-pink:#eb1d74;--cch-mint:#9fd5ad;--cch-blue:#86c8ec;--cch-soft:#dedee8;--cch-max:1260px;--cch-radius:28px;--cch-border:3px solid var(--cch-ink)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--cch-black);color:var(--cch-white);font-family:Arial,Helvetica,sans-serif;overflow-x:hidden}body.admin-bar .cch-site-header{top:32px}@media(max-width:782px){body.admin-bar .cch-site-header{top:46px}}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto}.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.cch-container{width:min(var(--cch-max),calc(100% - 48px));margin-inline:auto}.cch-main{overflow:hidden}.cch-section{position:relative;padding:110px 0}.cch-kicker,.cch-eyebrow{margin:0 0 18px;font-size:12px;letter-spacing:.19em;font-weight:900;text-transform:uppercase}.cch-kicker{color:var(--cch-pink)}h1,h2,h3,.cch-distance-number,.cch-btn,.cch-main-nav a,.cch-giant-word{font-family:Impact,Haettenschweiler,'Arial Narrow Bold',sans-serif;text-transform:uppercase;font-weight:900;letter-spacing:-.025em}.cch-site-header{position:fixed;z-index:90;top:0;left:0;right:0;height:82px;display:flex;align-items:center;justify-content:space-between;padding:10px max(24px,calc((100vw - var(--cch-max))/2));background:linear-gradient(180deg,rgba(7,7,7,.96),rgba(7,7,7,.72) 70%,transparent);backdrop-filter:blur(8px);transition:.25s}.cch-site-header.is-scrolled{height:70px;background:rgba(7,7,7,.94);border-bottom:1px solid rgba(255,255,255,.09)}.cch-brand img{display:block;width:115px;max-height:64px;object-fit:contain}.cch-main-nav{display:flex;align-items:center;gap:28px}.cch-main-nav a{font-family:Arial,Helvetica,sans-serif;font-size:12px;letter-spacing:.08em;font-weight:900;text-transform:uppercase}.cch-main-nav a:hover{color:var(--cch-yellow)}.cch-main-nav .cch-nav-cta{padding:13px 20px;border-radius:999px;background:var(--cch-yellow);color:var(--cch-black);transform:rotate(-1deg)}.cch-menu-toggle{display:none;background:none;border:0;padding:10px}.cch-menu-toggle span:not(.screen-reader-text){display:block;width:27px;height:3px;background:#fff;margin:5px}.cch-progress{position:fixed;z-index:100;left:0;right:0;top:0;height:4px;background:rgba(255,255,255,.08)}.cch-progress span{display:block;height:100%;width:0;background:var(--cch-pink)}.cch-progress b{position:absolute;left:0;top:-9px;transform:translateX(-50%);font-size:19px;color:var(--cch-yellow)}
.cch-hero{min-height:100svh;position:relative;display:flex;align-items:center;padding:120px 0 78px;background:radial-gradient(circle at 75% 45%,rgba(235,29,116,.13),transparent 24%),radial-gradient(circle at 20% 25%,rgba(247,215,49,.08),transparent 20%),#090909}.cch-hero-noise{position:absolute;inset:0;opacity:.09;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.95' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.45'/%3E%3C/svg%3E")}.cch-hero-grid{width:min(var(--cch-max),calc(100% - 48px));margin:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(460px,.9fr);align-items:center;gap:36px;position:relative;z-index:2}.cch-hero-copy{padding-top:20px}.cch-eyebrow{color:var(--cch-yellow)}.cch-hero h1{font-size:clamp(62px,7.3vw,126px);line-height:.78;margin:0;max-width:760px}.cch-hero h1 br:nth-child(1){display:block}.cch-hero-lead{max-width:650px;margin:32px 0 0;font-size:clamp(18px,1.45vw,24px);line-height:1.5;color:#d7d7d7}.cch-hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px}.cch-btn{display:inline-flex;align-items:center;justify-content:center;gap:22px;min-height:58px;padding:0 25px;border:2px solid var(--cch-white);font-size:18px;transition:.2s;transform:skew(-4deg)}.cch-btn>*{transform:skew(4deg)}.cch-btn-primary{background:var(--cch-yellow);color:var(--cch-black);border-color:var(--cch-yellow);box-shadow:6px 6px 0 var(--cch-pink)}.cch-btn-primary:hover{transform:skew(-4deg) translate(-2px,-2px);box-shadow:9px 9px 0 var(--cch-pink)}.cch-btn-ghost:hover{background:#fff;color:#111}.cch-hero-logo-wrap{position:relative;min-height:590px;display:grid;place-items:center}.cch-hero-logo{width:min(100%,610px);filter:drop-shadow(0 26px 32px rgba(0,0,0,.45));animation:cch-float 5.5s ease-in-out infinite}.cch-speed-lines{position:absolute;width:90%;height:52%;right:-4%;top:24%;background:repeating-linear-gradient(-8deg,transparent 0 24px,rgba(255,255,255,.15) 25px 28px,transparent 29px 42px);clip-path:polygon(7% 25%,100% 0,86% 100%,0 73%);opacity:.25;transform:skewX(-15deg)}.cch-distance-orbit{position:absolute;right:0;bottom:5%;display:flex;gap:8px}.cch-distance-orbit span{display:grid;place-items:center;width:76px;height:76px;border-radius:50%;font-family:Impact,sans-serif;font-size:21px;color:#111;border:4px solid #111;box-shadow:0 0 0 3px #fff}.cch-distance-orbit span:nth-child(1){background:var(--cch-yellow)}.cch-distance-orbit span:nth-child(2){background:var(--cch-pink)}.cch-distance-orbit span:nth-child(3){background:var(--cch-mint)}.cch-scroll-cue{position:absolute;z-index:3;bottom:26px;left:50%;transform:translateX(-50%);font-size:9px;letter-spacing:.22em;font-weight:900;text-align:center}.cch-scroll-cue span{display:block;width:2px;height:32px;background:#fff;margin:0 auto 8px;animation:cch-scroll 1.6s infinite}.cch-bolt{position:absolute;z-index:1;background:var(--cch-yellow);clip-path:polygon(42% 0,100% 0,64% 41%,88% 41%,23% 100%,39% 56%,0 56%);filter:drop-shadow(7px 7px 0 var(--cch-ink));opacity:.95}.cch-bolt-a{width:80px;height:150px;left:3%;top:19%;transform:rotate(-11deg)}.cch-bolt-b{width:55px;height:105px;right:2%;bottom:13%;background:var(--cch-pink);transform:rotate(18deg)}.cch-bolt-c{width:34px;height:70px;left:45%;bottom:6%;background:var(--cch-blue);transform:rotate(74deg)}
.cch-marquee{overflow:hidden;background:var(--cch-yellow);color:#111;border-block:4px solid #111;transform:rotate(-1.1deg) scale(1.02);position:relative;z-index:5}.cch-marquee>div{display:flex;align-items:center;gap:26px;width:max-content;padding:15px 0;animation:cch-marquee 22s linear infinite}.cch-marquee span{font-family:Impact,sans-serif;font-size:28px}.cch-marquee i{font-style:normal;color:var(--cch-pink);font-size:20px}
.cch-intro{background:var(--cch-white);color:var(--cch-ink);padding-bottom:70px}.cch-intro-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:80px}.cch-intro h2,.cch-section-head h2,.cch-circuits h2,.cch-kit h2,.cch-final-cta h2{margin:0;font-size:clamp(54px,6vw,96px);line-height:.86}.cch-big-copy{font-size:clamp(21px,2vw,30px);line-height:1.35;margin:0;max-width:760px}.cch-event-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:52px;border-block:2px solid #222}.cch-event-facts div{padding:24px 18px 24px 0}.cch-event-facts div+div{padding-left:24px;border-left:1px solid #aaa}.cch-event-facts span{display:block;font-size:10px;letter-spacing:.16em;font-weight:900;color:#777}.cch-event-facts strong{display:block;margin-top:9px;font-size:16px}.cch-giant-word{font-size:clamp(74px,12vw,210px);line-height:.75;color:transparent;-webkit-text-stroke:2px rgba(23,23,23,.09);white-space:nowrap;margin-top:85px;transform:translateX(-2%)}
.cch-distances{background:#0d0d0d}.cch-section-head{display:grid;grid-template-columns:1fr .55fr;align-items:end;gap:50px;margin-bottom:54px}.cch-section-head>p{font-size:18px;line-height:1.55;color:#bcbcbc;margin:0 0 6px}.cch-distance-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.cch-distance-card{position:relative;overflow:hidden;min-height:590px;padding:28px;border:4px solid #151515;color:#111;display:flex;flex-direction:column;transition:transform .25s,box-shadow .25s;transform-origin:center bottom}.cch-distance-card:hover{transform:translateY(-10px) rotate(-.6deg);box-shadow:10px 12px 0 #fff}.cch-distance-card.is-yellow{background:var(--cch-yellow)}.cch-distance-card.is-pink{background:var(--cch-pink)}.cch-distance-card.is-mint{background:var(--cch-mint)}.cch-distance-top{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.13em;font-weight:900}.cch-distance-number{font-size:clamp(110px,12vw,180px);line-height:.85;margin:48px 0 20px}.cch-distance-number small{font-size:.33em}.cch-distance-card h3{font-size:35px;line-height:.95;margin:0 0 16px}.cch-distance-card p{font-size:15px;line-height:1.55;margin:0 0 25px;max-width:360px}.cch-distance-card a{margin-top:auto;padding-top:20px;border-top:2px solid #111;display:flex;justify-content:space-between;font-weight:900;font-size:12px;letter-spacing:.07em}.cch-distance-card a span{font-size:25px}
.cch-circuits{background:var(--cch-blue);color:#101010}.cch-circuit-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:65px;align-items:center}.cch-circuits p:not(.cch-kicker){font-size:18px;line-height:1.6;max-width:650px}.cch-track-map{position:relative;background:#101010;border:4px solid #101010;min-height:500px;padding:30px;transform:rotate(1deg);box-shadow:14px 14px 0 rgba(255,255,255,.55)}.cch-track-map svg{width:100%;height:auto}.cch-track-map text{fill:#fff;font-size:14px;font-weight:900}.track{fill:none;stroke-linecap:round;stroke-linejoin:round}.track.shadow{stroke:#343434;stroke-width:28}.track.main{stroke:var(--cch-yellow);stroke-width:8;stroke-dasharray:14 14;animation:cch-dash 18s linear infinite}.point{stroke:#fff;stroke-width:5}.point.start{fill:var(--cch-mint)}.point.finish{fill:var(--cch-pink)}.cch-map-tags{position:absolute;right:25px;bottom:25px;display:flex;gap:8px}.cch-map-tags span{padding:10px 14px;background:#fff;border:2px solid #111;font-family:Impact,sans-serif;font-size:18px}.cch-map-tags span:nth-child(2){background:var(--cch-pink)}.cch-map-tags span:nth-child(3){background:var(--cch-yellow)}
.cch-kit{background:var(--cch-mint);color:#111;overflow:hidden}.cch-kit-backdrop{position:absolute;left:-1%;right:0;top:10px;font-family:Impact,sans-serif;font-size:20vw;line-height:1;color:rgba(255,255,255,.25);white-space:nowrap;transform:rotate(-5deg)}.cch-kit-grid{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:80px;position:relative}.cch-kit-visual{min-height:520px;display:grid;place-items:center;position:relative}.cch-kit-box{width:min(410px,80vw);aspect-ratio:1.05;background:#111;color:#fff;border:8px solid #fff;box-shadow:18px 18px 0 var(--cch-pink);transform:rotate(-4deg);padding:40px;display:flex;flex-direction:column;justify-content:space-between}.cch-kit-box span{color:var(--cch-yellow);font-weight:900;letter-spacing:.15em}.cch-kit-box strong{font-family:Impact,sans-serif;font-size:80px;line-height:.78}.cch-kit-box i{font-style:normal;font-size:72px;align-self:flex-end}.cch-kit-badge{position:absolute;z-index:2;right:5%;top:5%;width:125px;height:125px;border-radius:50%;display:grid;place-items:center;text-align:center;background:var(--cch-yellow);border:4px solid #111;font-family:Impact,sans-serif;font-size:19px;line-height:1;transform:rotate(10deg)}.cch-kit h2{max-width:650px}.cch-kit p:not(.cch-kicker){font-size:19px;line-height:1.55;max-width:650px}.cch-kit-note{margin-top:30px;border:2px solid #111;padding:18px;display:flex;gap:20px;align-items:flex-start;max-width:650px}.cch-kit-note strong{background:#111;color:#fff;padding:6px 9px;font-size:10px;letter-spacing:.09em}.cch-kit-note span{font-size:13px;line-height:1.45}
.cch-registration-section{background:var(--cch-white);color:#111}.cch-registration-head .cch-kicker{color:var(--cch-pink)}.cch-registration-head>p{color:#555}.cch-plugin-missing{padding:28px;border:3px dashed #777;background:#eee;text-align:center;border-radius:16px}
.cch-final-cta{padding:120px 0;background:var(--cch-pink);color:#111;position:relative;overflow:hidden}.cch-final-cta:after{content:'⚡';position:absolute;right:5%;top:0;font-size:250px;transform:rotate(14deg);color:var(--cch-yellow);text-shadow:12px 12px 0 #111}.cch-final-cta span{display:block;font-size:14px;letter-spacing:.18em;font-weight:900}.cch-final-cta h2{font-size:clamp(78px,10vw,170px);max-width:900px;margin:15px 0 35px}.cch-final-cta a{display:inline-block;background:#111;color:#fff;padding:20px 28px;font-weight:900;font-size:13px;letter-spacing:.1em;position:relative;z-index:2}.cch-site-footer{background:#090909;color:#fff;padding:44px 0;border-top:1px solid #2a2a2a}.cch-footer-inner{width:min(var(--cch-max),calc(100% - 48px));margin:auto;display:grid;grid-template-columns:130px 1fr auto;gap:26px;align-items:center}.cch-footer-inner img{width:115px}.cch-footer-inner strong{font-size:13px;letter-spacing:.08em}.cch-footer-inner p{margin:6px 0 0;color:#888;font-size:12px}.cch-footer-inner>a{font-size:11px;font-weight:900;letter-spacing:.1em;color:var(--cch-yellow)}.cch-generic-page{background:#f7f7f4;color:#111;min-height:75vh;padding:140px 0 90px}.cch-generic-page h1{font-size:clamp(52px,8vw,100px)}
[data-cch-reveal]{opacity:0;transform:translateY(32px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.8,.2,1)}[data-cch-reveal].is-visible{opacity:1;transform:none}@keyframes cch-float{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-13px) rotate(1deg)}}@keyframes cch-scroll{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}@keyframes cch-marquee{to{transform:translateX(-50%)}}@keyframes cch-dash{to{stroke-dashoffset:-280}}
@media(max-width:1050px){.cch-hero-grid{grid-template-columns:1fr .8fr}.cch-hero-logo-wrap{min-height:430px}.cch-distance-grid{grid-template-columns:1fr}.cch-distance-card{min-height:420px}.cch-distance-number{font-size:130px}.cch-intro-grid,.cch-circuit-grid,.cch-kit-grid{grid-template-columns:1fr;gap:50px}.cch-kit-grid{grid-template-columns:.8fr 1fr}.cch-section-head{grid-template-columns:1fr}.cch-main-nav{gap:17px}}
@media(max-width:820px){.cch-container,.cch-hero-grid,.cch-footer-inner{width:min(100% - 30px,var(--cch-max))}.cch-section{padding:80px 0}.cch-site-header{height:70px;padding-inline:15px}.cch-brand img{width:95px}.cch-menu-toggle{display:block;position:relative;z-index:102}.cch-main-nav{position:fixed;inset:0;background:#0b0b0b;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:28px;transform:translateX(100%);transition:.35s;z-index:101}.cch-main-nav.is-open{transform:none}.cch-main-nav a{font-size:24px}.cch-main-nav .cch-nav-cta{font-size:20px}.cch-hero{padding-top:100px}.cch-hero-grid{grid-template-columns:1fr;text-align:left}.cch-hero h1{font-size:clamp(58px,17vw,104px)}.cch-hero-logo-wrap{min-height:370px}.cch-hero-logo{width:min(90%,520px)}.cch-distance-orbit{right:5%;bottom:0}.cch-distance-orbit span{width:60px;height:60px;font-size:17px}.cch-bolt-a{left:-20px}.cch-scroll-cue{display:none}.cch-intro-grid{gap:35px}.cch-event-facts{grid-template-columns:1fr}.cch-event-facts div+div{border-left:0;border-top:1px solid #aaa;padding-left:0}.cch-kit-grid{grid-template-columns:1fr}.cch-kit-visual{min-height:420px}.cch-final-cta:after{font-size:150px;opacity:.4}.cch-footer-inner{grid-template-columns:90px 1fr}.cch-footer-inner>a{grid-column:1/-1}.cch-footer-inner img{width:80px}}
@media(max-width:520px){.cch-hero-actions{display:grid}.cch-btn{width:100%;font-size:16px}.cch-hero-logo-wrap{min-height:310px}.cch-distance-card{padding:22px}.cch-distance-number{font-size:110px}.cch-track-map{min-height:350px;padding:8px}.cch-map-tags{position:static;padding:10px;flex-wrap:wrap}.cch-kit-box{padding:28px}.cch-kit-box strong{font-size:64px}.cch-kit-badge{right:0;width:105px;height:105px;font-size:16px}.cch-section-head h2,.cch-intro h2,.cch-circuits h2,.cch-kit h2{font-size:50px}.cch-final-cta h2{font-size:72px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}[data-cch-reveal]{opacity:1;transform:none}}


/* ========================================================================
   CORRIDA CORAZON DE CHILE
   THEME 1.1.0
   HERO + CIRCUITOS
   ======================================================================== */

/*
 * El título original usaba Impact/900.
 * Se conserva la estética condensada pero con un peso visual más liviano.
 */
.cch-hero h1 {
    font-family:
        "Arial Narrow",
        "Liberation Sans Narrow",
        Arial,
        Helvetica,
        sans-serif;

    font-weight: 500;
    font-stretch: condensed;
    letter-spacing: -.055em;
    line-height: .84;
}


/* El bloque CORRE MAULE CORRE ya no existe en el HTML. */
.cch-giant-word {
    display: none !important;
}


/* ------------------------------------------------------------------------
   SELECTOR DE CIRCUITOS
   ------------------------------------------------------------------------ */

.cch-circuit-selector {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 34px;
}

.cch-circuit-tab {
    appearance: none;
    border: 3px solid #111;
    background: #fff;
    color: #111;
    min-width: 110px;
    padding: 14px 20px;
    cursor: pointer;

    font-family:
        Impact,
        Haettenschweiler,
        "Arial Narrow Bold",
        sans-serif;

    font-size: 24px;
    line-height: 1;
    text-transform: uppercase;

    box-shadow: 5px 5px 0 rgba(17,17,17,.25);

    transition:
        transform .18s ease,
        box-shadow .18s ease,
        background .18s ease;
}

.cch-circuit-tab span {
    display: block;
    margin-bottom: 6px;

    font-family: Arial, Helvetica, sans-serif;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .18em;
}

.cch-circuit-tab:nth-child(1) {
    background: #fff;
}

.cch-circuit-tab:nth-child(2) {
    background: var(--cch-pink);
}

.cch-circuit-tab:nth-child(3) {
    background: var(--cch-yellow);
}

.cch-circuit-tab:hover {
    transform: translate(-2px,-2px);
    box-shadow: 8px 8px 0 rgba(17,17,17,.3);
}

.cch-circuit-tab.is-active {
    transform: translate(-3px,-3px);
    box-shadow: 8px 8px 0 #111;
    outline: 3px solid rgba(255,255,255,.75);
}


/* ------------------------------------------------------------------------
   MAPAS
   ------------------------------------------------------------------------ */

.cch-track-map {
    padding: 24px;
}

.cch-map-panel {
    min-height: 440px;

    display: flex;
    align-items: center;
    justify-content: center;

    overflow: hidden;

    background:
        radial-gradient(
            circle at 50% 50%,
            #1a1a1a 0,
            #101010 68%
        );

    border: 1px solid rgba(255,255,255,.08);
}

.cch-map-panel[hidden] {
    display: none !important;
}

.cch-map-panel img {
    display: block;

    width: 100%;
    height: auto;

    max-height: 540px;

    object-fit: contain;

    background: #fff;
}


/* ------------------------------------------------------------------------
   PLACEHOLDER DE MAPA
   ------------------------------------------------------------------------ */

.cch-map-placeholder {
    width: 100%;
    min-height: 430px;

    position: relative;

    display: flex;
    flex-direction: column;
    justify-content: center;

    padding: 34px;

    overflow: hidden;

    color: #fff;
}

.cch-map-placeholder strong {
    position: relative;
    z-index: 2;

    display: block;

    font-family:
        Impact,
        Haettenschweiler,
        "Arial Narrow Bold",
        sans-serif;

    font-size: clamp(90px, 11vw, 170px);
    line-height: .8;

    color: var(--cch-yellow);
}

.cch-map-placeholder span {
    position: relative;
    z-index: 2;

    margin-top: 26px;

    font-size: 13px;
    line-height: 1.25;

    font-weight: 900;
    letter-spacing: .18em;
}

.cch-map-placeholder svg {
    position: absolute;

    right: -4%;
    bottom: 3%;

    width: 72%;

    opacity: .45;
}


/* ------------------------------------------------------------------------
   RESPONSIVE
   ------------------------------------------------------------------------ */

@media (max-width: 820px) {

    .cch-hero h1 {
        font-weight: 500;
        letter-spacing: -.045em;
        line-height: .86;
    }

    .cch-circuit-selector {
        margin-top: 25px;
    }

    .cch-circuit-tab {
        flex: 1 1 30%;
        min-width: 90px;
        font-size: 21px;
        padding: 13px 12px;
    }

    .cch-track-map {
        transform: none;
        padding: 14px;
    }

    .cch-map-panel {
        min-height: 320px;
    }

    .cch-map-placeholder {
        min-height: 310px;
        padding: 24px;
    }

}


@media (max-width: 520px) {

    .cch-hero h1 {
        font-size: clamp(54px, 15.5vw, 86px);
    }

    .cch-circuit-selector {
        gap: 7px;
    }

    .cch-circuit-tab {
        min-width: 0;
        font-size: 18px;
        padding: 11px 8px;
    }

    .cch-map-panel {
        min-height: 260px;
    }

    .cch-map-placeholder {
        min-height: 255px;
    }

    .cch-map-placeholder strong {
        font-size: 86px;
    }

    .cch-map-placeholder svg {
        width: 90%;
    }

}


/* ========================================================================
   HERO FONT FIX
   Vuelve al estilo original, pero más liviano visualmente
   ======================================================================== */

.cch-hero h1{
    font-family: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif !important;
    font-weight: 500 !important;
    font-size: clamp(58px, 6.9vw, 118px) !important;
    line-height: .80 !important;
    letter-spacing: -.035em !important;
    max-width: 760px;
    transform: scaleX(.96);
    transform-origin: left center;
}

@media (max-width: 820px){
    .cch-hero h1{
        font-size: clamp(56px, 15.2vw, 98px) !important;
        line-height: .81 !important;
        letter-spacing: -.03em !important;
        transform: scaleX(.97);
    }
}

@media (max-width: 520px){
    .cch-hero h1{
        font-size: clamp(52px, 14.5vw, 84px) !important;
        line-height: .82 !important;
        transform: scaleX(.98);
    }
}


/* =========================================================
   AJUSTE DISTANCE ORBIT
   Baja los círculos para no tapar el 2026 del logo
   ========================================================= */

.cch-distance-orbit{
    bottom: -5% !important;
}

@media (max-width: 820px){
    .cch-distance-orbit{
        bottom: -7% !important;
    }
}


/* ========================================================================
   CCH - RESTAURAR FLECHA DE PROGRESO
   ======================================================================== */

.cch-site-header{
    overflow: visible;
}

.cch-header-progress{
    position:absolute;
    left:0;
    right:0;
    bottom:-8px;
    height:18px;
    pointer-events:none;
    z-index:25;
}

.cch-header-progress::before{
    content:"";
    position:absolute;
    left:0;
    right:0;
    top:8px;
    height:2px;
    background:rgba(255,255,255,.22);
}

.cch-header-progress-bar{
    position:absolute;
    left:0;
    top:8px;
    height:2px;
    width:0;
    background:#fff;
    box-shadow:0 0 10px rgba(255,255,255,.45);
}

.cch-header-progress-runner{
    position:absolute;
    left:0;
    top:0;
    width:24px;
    height:16px;
    background:var(--cch-blue);
    transform:translateX(-50%);
    clip-path:polygon(28% 0,100% 0,72% 34%,100% 34%,20% 100%,39% 55%,0 55%,18% 30%,0 30%);
    filter:drop-shadow(3px 3px 0 rgba(0,0,0,.55));
}


/* ========================================================================
   CCH - FRANJA AMARILLA TIPO CARRUSEL CONTINUO
   ======================================================================== */

.cch-marquee{
    position:relative;
    z-index:3;
    overflow:hidden;
    background:var(--cch-yellow);
    color:#111;
    border-top:3px solid #111;
    border-bottom:3px solid #111;
    transform:rotate(-1deg);
    transform-origin:center;
    margin-top:-8px;
}

.cch-marquee > div{
    display:flex;
    align-items:center;
    width:max-content;
    min-width:300%;
    white-space:nowrap;
    animation:cch-marquee-loop 28s linear infinite;
    will-change:transform;
}

.cch-marquee span,
.cch-marquee i{
    flex:0 0 auto;
}

.cch-marquee span{
    display:inline-flex;
    align-items:center;
    min-height:62px;
    padding:0 26px;
    font-family:Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
    font-size:26px;
    letter-spacing:.01em;
    text-transform:uppercase;
}

.cch-marquee i{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:62px;
    padding:0 8px;
    color:var(--cch-pink);
    font-style:normal;
    font-size:16px;
    font-weight:900;
}

@keyframes cch-marquee-loop{
    from{transform:translateX(0)}
    to{transform:translateX(-33.3333%)}
}

@media (max-width: 820px){
    .cch-marquee span{
        min-height:54px;
        padding:0 20px;
        font-size:22px;
    }

    .cch-marquee i{
        min-height:54px;
    }

    .cch-header-progress{
        bottom:-6px;
    }
}

@media (max-width: 520px){
    .cch-marquee span{
        min-height:50px;
        padding:0 16px;
        font-size:18px;
    }

    .cch-marquee i{
        min-height:50px;
        font-size:14px;
    }

    .cch-header-progress-runner{
        width:20px;
        height:14px;
    }
}


/* ========================================================================
   CCH - FLECHA ORIGINAL DE PROGRESO DE SCROLL
   ======================================================================== */

.cch-site-header,
.site-header,
header{
    overflow: visible !important;
}

.cch-progress{
    position:absolute !important;
    left:0 !important;
    right:0 !important;
    bottom:-22px !important;
    width:100% !important;
    height:34px !important;
    z-index:999 !important;
    pointer-events:none !important;
    overflow:visible !important;
}

.cch-progress::before{
    content:"" !important;
    position:absolute !important;
    left:0 !important;
    right:0 !important;
    top:16px !important;
    height:2px !important;
    background:rgba(255,255,255,.55) !important;
}

.cch-progress > span{
    position:absolute !important;
    left:0 !important;
    top:16px !important;
    width:0;
    height:2px !important;
    display:block !important;
    background:#86c8ec !important;
    box-shadow:0 0 10px rgba(134,200,236,.65) !important;
}

.cch-progress > b{
    position:absolute !important;
    left:0;
    top:0 !important;
    display:block !important;
    width:34px !important;
    height:30px !important;
    margin:0 !important;
    color:#86c8ec !important;
    font-family:Arial,sans-serif !important;
    font-size:30px !important;
    font-weight:900 !important;
    line-height:30px !important;
    text-align:center !important;
    transform:translateX(-50%) !important;
    filter:drop-shadow(2px 2px 0 #000) !important;
    opacity:1 !important;
    visibility:visible !important;
}

@media(max-width:820px){

    .cch-progress{
        bottom:-18px !important;
        height:30px !important;
    }

    .cch-progress::before,
    .cch-progress > span{
        top:14px !important;
    }

    .cch-progress > b{
        width:30px !important;
        height:26px !important;
        font-size:26px !important;
        line-height:26px !important;
    }
}


/* ========================================================================
   CCH - FLECHA SCROLL DEFINITIVA
   Queda pegada debajo del header sticky
   ======================================================================== */

.cch-progress{
    position:fixed !important;
    left:0 !important;
    right:auto !important;
    top:72px;
    bottom:auto !important;

    display:block !important;
    visibility:visible !important;
    opacity:1 !important;

    width:100vw !important;
    height:34px !important;

    margin:0 !important;
    padding:0 !important;

    overflow:visible !important;
    pointer-events:none !important;

    z-index:999999 !important;
}

.cch-progress::before{
    content:"" !important;

    position:absolute !important;
    left:0 !important;
    right:0 !important;
    top:15px !important;

    display:block !important;

    width:100% !important;
    height:2px !important;

    background:rgba(255,255,255,.65) !important;
}

.cch-progress > span[data-cch-progress]{
    position:absolute !important;

    left:0 !important;
    top:15px !important;

    display:block !important;
    visibility:visible !important;
    opacity:1 !important;

    width:0;
    height:3px !important;

    background:#86c8ec !important;

    box-shadow:
        0 0 8px rgba(134,200,236,.85),
        0 0 16px rgba(134,200,236,.35) !important;
}

.cch-progress > b[data-cch-runner]{
    position:absolute !important;

    left:0;
    top:-2px !important;

    display:flex !important;
    visibility:visible !important;
    opacity:1 !important;

    align-items:center !important;
    justify-content:center !important;

    width:42px !important;
    height:34px !important;

    margin:0 !important;
    padding:0 !important;

    color:#86c8ec !important;

    font-family:Arial,Helvetica,sans-serif !important;
    font-size:35px !important;
    line-height:1 !important;
    font-weight:900 !important;

    text-shadow:
        2px 2px 0 #000,
        0 0 8px rgba(134,200,236,.8) !important;

    transform:translateX(-50%) !important;

    z-index:3 !important;
}

@media(max-width:820px){

    .cch-progress{
        height:30px !important;
    }

    .cch-progress::before,
    .cch-progress > span[data-cch-progress]{
        top:13px !important;
    }

    .cch-progress > b[data-cch-runner]{
        width:36px !important;
        height:30px !important;
        font-size:30px !important;
    }
}


/* ========================================================================
   CCH - AJUSTE FINAL FLECHA SCROLL
   Rosa fluor, pequeña, limpia y pegada al header
   ======================================================================== */

.cch-progress{
    position:fixed !important;
    left:0 !important;
    top:72px !important;
    width:100vw !important;
    height:12px !important;

    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;

    overflow:visible !important;
    pointer-events:none !important;
    z-index:999999 !important;
}

.cch-progress::before{
    content:"" !important;
    position:absolute !important;
    left:0 !important;
    right:0 !important;
    top:6px !important;
    height:1px !important;

    background:rgba(255,255,255,.18) !important;
    border:0 !important;
    box-shadow:none !important;
}

.cch-progress > span[data-cch-progress]{
    position:absolute !important;
    left:0 !important;
    top:6px !important;
    height:1px !important;
    width:0;

    background:#ff2d8f !important;
    box-shadow:0 0 6px rgba(255,45,143,.55) !important;
}

.cch-progress > b[data-cch-runner]{
    position:absolute !important;
    left:0 !important;
    top:-4px !important;

    display:block !important;
    width:auto !important;
    height:auto !important;

    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
    padding:0 !important;
    margin:0 !important;

    color:#ff2d8f !important;
    font-family:Arial, Helvetica, sans-serif !important;
    font-size:18px !important;
    line-height:1 !important;
    font-weight:900 !important;

    text-shadow:0 0 6px rgba(255,45,143,.45) !important;
    transform:translateX(-50%) !important;
    opacity:1 !important;
    visibility:visible !important;
}

@media (max-width: 820px){

    .cch-progress{
        top:70px !important;
        height:10px !important;
    }

    .cch-progress::before,
    .cch-progress > span[data-cch-progress]{
        top:5px !important;
    }

    .cch-progress > b[data-cch-runner]{
        top:-4px !important;
        font-size:16px !important;
    }
}

@media (max-width: 520px){

    .cch-progress{
        height:9px !important;
    }

    .cch-progress > b[data-cch-runner]{
        font-size:15px !important;
    }
}

/* ========================================================================
   CCH - AJUSTE POSICION FLECHA
   Baja la flecha para no cruzar logo/menu
   ======================================================================== */

.cch-progress{
    top:82px !important;
}

@media (max-width:820px){
    .cch-progress{
        top:78px !important;
    }
}

/* AJUSTE FINAL POSICION FLECHA */
.cch-progress{
    top:102px !important;
}

/* ========================================================================
   CCH - FLECHA DINAMICA SEGUN ALTURA REAL DEL HEADER
   ======================================================================== */

.cch-progress{
    top:var(--cch-progress-top, 102px) !important;
    height:10px !important;
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
}

.cch-progress::before{
    top:4px !important;
    height:1px !important;
    background:rgba(255,255,255,.16) !important;
}

.cch-progress > span[data-cch-progress]{
    top:4px !important;
    height:1px !important;
    background:#ff2d8f !important;
    box-shadow:0 0 5px rgba(255,45,143,.45) !important;
}

.cch-progress > b[data-cch-runner]{
    top:-5px !important;
    font-size:17px !important;
    color:#ff2d8f !important;
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
    text-shadow:0 0 5px rgba(255,45,143,.45) !important;
}


/* POSICION FINAL FLECHA */
.cch-progress{
    top:99px !important;
}


/* ========================================================================
   CCH_RESPONSIVE_FINAL_2026
   CIERRE RESPONSIVE
   ======================================================================== */

@media (max-width: 820px){

    .cch-hero{
        overflow:hidden;
    }

    .cch-hero h1{
        max-width:100%;
    }

    .cch-hero-logo{
        max-width:min(420px,92vw);
        height:auto;
    }

    /*
     * En móvil las distancias dejan de flotar sobre el hero
     * para evitar cruces con logo/textos.
     */
    .cch-distance-orbit{
        position:relative !important;
        left:auto !important;
        right:auto !important;
        top:auto !important;
        bottom:auto !important;

        margin:22px auto 0 !important;

        display:flex !important;
        justify-content:center !important;
        align-items:center !important;
        flex-wrap:wrap !important;

        gap:10px !important;
    }

    /*
     * Franja amarilla:
     * conservamos exactamente su aspecto y animación.
     */
    .cch-marquee{
        overflow:hidden;
    }

    .cch-marquee > div{
        width:max-content;
        white-space:nowrap;
    }

    /*
     * Circuitos
     */
    .cch-circuit-tabs,
    .cch-map-tabs{
        display:flex;
        flex-wrap:wrap;
        gap:8px;
    }

    .cch-circuit-tabs button,
    .cch-map-tabs button{
        flex:1 1 30%;
        min-width:90px;
    }

    .cch-map-panel img,
    .cch-circuit-map img{
        display:block;
        width:100%;
        height:auto;
    }
}


@media (max-width: 520px){

    .cch-hero{
        padding-left:16px;
        padding-right:16px;
    }

    .cch-hero-logo{
        max-width:88vw;
    }

    .cch-distance-orbit{
        gap:8px !important;
    }

    .cch-circuit-tabs button,
    .cch-map-tabs button{
        flex:1 1 100%;
        width:100%;
    }
}



/* ==========================================================================
   CCH MAPAS INTERACTIVOS
   ========================================================================== */

.cch-track-map-interactive{
    padding:28px;
    background:#111;
    border:0;
}

.cch-map-interactive-head{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:22px;
    margin-bottom:18px;
    color:#fff;
}

.cch-map-interactive-head span{
    display:block;
    margin-bottom:4px;
    font-size:11px;
    font-weight:900;
    letter-spacing:.12em;
}

.cch-map-interactive-head strong{
    display:block;
    font-family:Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
    font-size:64px;
    line-height:.9;
}

.cch-map-interactive-head p{
    max-width:360px;
    margin:0;
    color:#bbb;
    font-size:13px;
    line-height:1.4;
    text-align:right;
}

.cch-leaflet-map{
    width:100%;
    height:440px;
    border:3px solid #fff;
    background:#ddd;
}

.cch-map-route-info{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1px;
    margin-top:12px;
    background:#333;
}

.cch-map-route-info > div{
    padding:13px;
    background:#191919;
    color:#fff;
}

.cch-map-route-info span{
    display:block;
    margin-bottom:5px;
    color:#999;
    font-size:9px;
    font-weight:900;
    letter-spacing:.1em;
}

.cch-map-route-info strong{
    font-size:11px;
    line-height:1.25;
}

.cch-map-pin-wrap{
    background:transparent !important;
    border:0 !important;
}

.cch-map-pin{
    width:36px;
    height:36px;

    display:flex;
    align-items:center;
    justify-content:center;

    border-radius:50%;
    border:4px solid #111;

    background:var(--pin);
    color:#111;

    font-size:12px;
    font-weight:900;

    box-shadow:
        0 0 0 3px #fff,
        4px 4px 0 #111;
}

.cch-leaflet-map .leaflet-tooltip{
    border:2px solid #111;
    border-radius:0;
    padding:8px 10px;
    box-shadow:4px 4px 0 #111;
    font-size:12px;
}

.cch-leaflet-map .leaflet-popup-content-wrapper{
    border-radius:0;
    border:3px solid #111;
    box-shadow:5px 5px 0 #ec1b75;
}

.cch-leaflet-map .leaflet-popup-tip{
    background:#111;
}

@media(max-width:820px){

    .cch-track-map-interactive{
        padding:16px;
    }

    .cch-map-interactive-head{
        display:block;
    }

    .cch-map-interactive-head strong{
        font-size:52px;
    }

    .cch-map-interactive-head p{
        margin-top:10px;
        max-width:none;
        text-align:left;
    }

    .cch-leaflet-map{
        height:370px;
    }

    .cch-map-route-info{
        grid-template-columns:1fr;
    }
}


@media(max-width:520px){

    .cch-leaflet-map{
        height:320px;
    }

}


/* ==========================================================================
   CCH - TRAZADOS OFICIALES
   ========================================================================== */

.cch-route-div-icon{
    background:transparent !important;
    border:0 !important;
}

.cch-route-pin{
    width:30px;
    height:30px;

    display:flex;
    align-items:center;
    justify-content:center;

    border:3px solid #111;
    border-radius:50%;

    background:var(--route-color);

    color:#111;

    font-size:11px;
    line-height:1;
    font-weight:1000;

    box-shadow:
        0 0 0 2px #fff,
        3px 3px 0 #111;
}

.cch-route-pin.is-main{
    width:46px;
    height:46px;

    font-size:16px;

    border-width:4px;
}

.cch-route-tooltip{
    min-width:130px;
}

.cch-route-tooltip small{
    display:block;

    margin-bottom:4px;

    font-size:9px;
    font-weight:900;
    letter-spacing:.12em;
}

.cch-route-tooltip strong{
    display:block;

    font-size:12px;
    line-height:1.2;
}

.cch-route-popup .leaflet-popup-content{
    font-size:13px;
    line-height:1.35;
}

.cch-leaflet-map{
    position:relative;
    z-index:1;
}

/*
 * Evita que el mapa compita visualmente
 * con el resto del diseño brutalista.
 */
.cch-leaflet-map .leaflet-control-zoom a{
    border-radius:0 !important;
    color:#111 !important;
    font-weight:900;
}

.cch-leaflet-map .leaflet-control-attribution{
    font-size:9px;
}


@media(max-width:520px){

    .cch-route-pin{
        width:27px;
        height:27px;

        font-size:10px;
    }

    .cch-route-pin.is-main{
        width:40px;
        height:40px;
    }

}


/* ========================================================================
   CCH_MAP_RESTYLE_FINAL_2026
   Refinamiento visual de mapas interactivos
   ======================================================================== */

.cch-leaflet-map{
    overflow:hidden;
}

.cch-leaflet-map .leaflet-control-attribution{
    font-size:10px !important;
}

.cch-leaflet-map .leaflet-control-zoom a{
    width:34px !important;
    height:34px !important;
    line-height:34px !important;
    font-size:24px !important;
}

.cch-leaflet-map .leaflet-marker-icon{
    transition:transform .18s ease, filter .18s ease, opacity .18s ease;
}

.cch-leaflet-map .leaflet-marker-icon:hover{
    transform:scale(1.04);
}

.cch-leaflet-map .cch-map-flag,
.cch-leaflet-map .cch-route-flag,
.cch-leaflet-map .cch-flag-overlay{
    width:110px !important;
    max-width:110px !important;
    height:auto !important;
    right:10px !important;
    bottom:10px !important;
    opacity:.95 !important;
    box-shadow:0 6px 14px rgba(0,0,0,.12) !important;
}

@media (max-width: 820px){
    .cch-leaflet-map .cch-map-flag,
    .cch-leaflet-map .cch-route-flag,
    .cch-leaflet-map .cch-flag-overlay{
        width:88px !important;
        max-width:88px !important;
        right:8px !important;
        bottom:8px !important;
    }
}

/* ========================================================================
   CCH - FIX BANDERA LEAFLET GIGANTE
   ======================================================================== */

#cch-route-map .leaflet-control-attribution .leaflet-attribution-flag{
    display:none !important;
    width:0 !important;
    height:0 !important;
    max-width:0 !important;
    max-height:0 !important;
}

#cch-route-map .leaflet-control-attribution svg{
    width:auto !important;
    height:auto !important;
    max-width:none !important;
}



/* ========================================================================
   CCH ROAD ROUTES 2026
   ======================================================================== */

/*
 * Los números de etapas se retiran.
 * Dejamos solamente salida/meta.
 */

#cch-route-map
.leaflet-marker-icon
.cch-route-pin:not(.is-main){
    display:none !important;
}

/*
 * Ruta oficial: más fina y técnica.
 */

#cch-route-map
.leaflet-overlay-pane
path{
    stroke-linecap:round;
    stroke-linejoin:round;
}

/*
 * La atribución permanece visible,
 * pero compacta.
 */

#cch-route-map
.leaflet-control-attribution{
    font-size:9px !important;
    line-height:1.2 !important;
}



/* ========================================================================
   CCH CLEAN ROUTE MARKERS
   ======================================================================== */

.cch-clean-route-marker{
    background:transparent !important;
    border:0 !important;
}

.cch-clean-route-marker span{
    width:30px;
    height:30px;

    display:flex;
    align-items:center;
    justify-content:center;

    background:#111;
    border:2px solid #fff;
    border-radius:50%;

    color:#fff;

    font-family:
        Arial,
        Helvetica,
        sans-serif;

    font-size:11px;
    font-weight:800;

    line-height:1;

    box-shadow:
        0 2px 5px
        rgba(0,0,0,.25);
}



/* ========================================================================
   CCH_ROUTE_DIRECTION_2026
   Flechas de sentido + Salida / Meta
   ======================================================================== */

.cch-direction-marker{
    background:transparent !important;
    border:0 !important;
    pointer-events:none !important;
}

.cch-direction-marker span{
    width:24px;
    height:24px;

    display:flex;
    align-items:center;
    justify-content:center;

    color:#111;

    font-family:
        Arial,
        Helvetica,
        sans-serif;

    font-size:17px;
    line-height:1;

    font-weight:900;

    transform-origin:center center;

    /*
     * Halo blanco para que la flecha
     * siempre se vea sobre la línea.
     */
    text-shadow:
        -1px -1px 0 #fff,
         1px -1px 0 #fff,
        -1px  1px 0 #fff,
         1px  1px 0 #fff,
         0    2px 2px rgba(0,0,0,.20);
}


.cch-endpoint-marker{
    background:transparent !important;
    border:0 !important;
}

.cch-endpoint-marker span{
    min-width:68px;
    height:26px;

    padding:0 9px;

    display:flex;
    align-items:center;
    justify-content:center;

    border:2px solid #111;

    font-family:
        Arial,
        Helvetica,
        sans-serif;

    font-size:10px;
    line-height:1;

    font-weight:900;

    letter-spacing:.08em;

    box-shadow:
        3px 3px 0 #111;

    white-space:nowrap;
}


.cch-endpoint-marker.is-start span{
    background:#fff;
    color:#111;
}


.cch-endpoint-marker.is-finish span{
    background:#111;
    color:#fff;

    border-color:#fff;

    box-shadow:
        3px 3px 0 rgba(0,0,0,.45);
}


@media(max-width:520px){

    .cch-direction-marker span{
        font-size:14px;
    }

    .cch-endpoint-marker span{
        min-width:58px;
        height:24px;

        padding:0 7px;

        font-size:9px;
    }

}


/* ========================================================================
   CCH_ROUTE_DIRECTION_FINAL_2026
   ======================================================================== */

.cch-direction-marker{
    width:18px !important;
    height:18px !important;
}

.cch-direction-marker span{
    width:18px !important;
    height:18px !important;

    font-size:13px !important;

    opacity:.92;

    text-shadow:
        -1px -1px 0 #fff,
         1px -1px 0 #fff,
        -1px  1px 0 #fff,
         1px  1px 0 #fff,
         0    1px 2px rgba(0,0,0,.22);
}


@media(max-width:520px){

    .cch-direction-marker{
        width:16px !important;
        height:16px !important;
    }

    .cch-direction-marker span{
        width:16px !important;
        height:16px !important;

        font-size:11px !important;
    }

}


/* ========================================================================
   CCH MANUAL ROUTES 2026
   ======================================================================== */

.cch-manual-endpoint{
    background:transparent !important;
    border:0 !important;
}

.cch-manual-endpoint span{
    min-width:62px;
    height:24px;

    padding:0 8px;

    display:flex;
    align-items:center;
    justify-content:center;

    background:#111;

    border:2px solid #fff;

    color:#fff;

    font-family:
        Arial,
        Helvetica,
        sans-serif;

    font-size:9px;

    font-weight:900;

    letter-spacing:.08em;

    line-height:1;

    white-space:nowrap;

    box-shadow:
        2px 2px 0
        rgba(0,0,0,.25);
}



/* ==========================================================================
   CCH PNG OFFICIAL MAPS 2026
   ========================================================================== */

#cch-route-map{
    background:#111 !important;
}

#cch-route-map .leaflet-image-layer{
    image-rendering:auto;
}

.cch-png-endpoint{
    background:transparent !important;
    border:0 !important;
}

.cch-png-endpoint span{
    min-width:60px;
    height:22px;

    padding:0 8px;

    display:flex;
    align-items:center;
    justify-content:center;

    background:#111;

    border:2px solid #fff;

    color:#fff;

    font-family:
        Arial,
        Helvetica,
        sans-serif;

    font-size:9px;
    font-weight:900;

    line-height:1;

    letter-spacing:.07em;

    white-space:nowrap;

    box-shadow:
        2px 2px 0
        rgba(0,0,0,.28);
}

#cch-route-map .leaflet-control-zoom{
    border:0 !important;
    box-shadow:
        3px 3px 0
        rgba(0,0,0,.22) !important;
}

#cch-route-map .leaflet-control-zoom a{
    border-radius:0 !important;
}



/* ========================================================================
   CCH_ENDPOINT_LABELS_MARGIN_2026
   Mejora visual de etiquetas SALIDA / META en mapas PNG oficiales
   ======================================================================== */

#cch-route-map .leaflet-marker-pane [data-cch-endpoint-label="1"]{
    pointer-events:none !important;
    z-index:999 !important;
}

#cch-route-map .leaflet-marker-pane [data-cch-endpoint-label="1"] > div,
#cch-route-map .leaflet-marker-pane [data-cch-endpoint-label="1"]{
    font-family:inherit !important;
}

#cch-route-map .cch-endpoint-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:70px;
    height:28px;
    padding:0 12px;
    border:2px solid #ffffff;
    background:#111111;
    color:#ffffff;
    font-size:12px;
    line-height:1;
    font-weight:900;
    letter-spacing:.06em;
    text-transform:uppercase;
    box-shadow:4px 4px 0 rgba(0,0,0,.35);
    white-space:nowrap;
}

#cch-route-map .cch-endpoint-badge.is-start{
    background:#111111;
    color:#ffffff;
}

#cch-route-map .cch-endpoint-badge.is-finish{
    background:#2a2a2a;
    color:#ffffff;
}

@media (max-width: 820px){
    #cch-route-map .cch-endpoint-badge{
        min-width:60px;
        height:24px;
        padding:0 10px;
        font-size:11px;
        box-shadow:3px 3px 0 rgba(0,0,0,.30);
    }
}



/* ========================================================================
   CCH_PNG_MAP_LAYOUT_FINAL_2026
   Ajuste visual final de mapas oficiales PNG
   ======================================================================== */

#cch-route-map{
    position:relative !important;
    background:#000 !important;
    min-height:420px !important;
    height:420px !important;
    border:3px solid rgba(255,255,255,.85) !important;
    box-sizing:border-box !important;
    overflow:hidden !important;
}

/* Oculta etiquetas viejas dentro del mapa */
#cch-route-map .leaflet-marker-pane [data-cch-endpoint-label="1"]{
    display:none !important;
}

/* Panel interno Leaflet */
#cch-route-map .leaflet-container,
#cch-route-map.leaflet-container{
    background:#000 !important;
}

/* Controles de zoom */
#cch-route-map .leaflet-control-zoom{
    margin-top:10px !important;
    margin-left:10px !important;
    box-shadow:none !important;
}

#cch-route-map .leaflet-control-zoom a{
    width:36px !important;
    height:36px !important;
    line-height:36px !important;
    font-size:28px !important;
    border-radius:0 !important;
    border:2px solid #111 !important;
    box-shadow:4px 4px 0 rgba(0,0,0,.45) !important;
}

/* Mejor uso del espacio visual */
#cch-route-map .leaflet-image-layer{
    image-rendering:auto !important;
    max-width:none !important;
    max-height:none !important;
}

/* Etiqueta fija al margen */
.cch-png-endpoint-badge{
    position:absolute !important;
    right:14px !important;
    bottom:14px !important;
    z-index:900 !important;
    pointer-events:none !important;
    display:inline-flex !important;
    align-items:center !important;
    gap:8px !important;
    padding:10px 14px !important;
    background:#111 !important;
    color:#fff !important;
    border:2px solid #fff !important;
    font-weight:900 !important;
    font-size:14px !important;
    line-height:1 !important;
    letter-spacing:.06em !important;
    text-transform:uppercase !important;
    box-shadow:6px 6px 0 rgba(0,0,0,.35) !important;
}

.cch-png-endpoint-badge::before{
    content:"●";
    display:inline-block;
    font-size:14px;
    line-height:1;
}

@media (max-width: 1024px){
    #cch-route-map{
        min-height:360px !important;
        height:360px !important;
    }
}

@media (max-width: 640px){
    #cch-route-map{
        min-height:270px !important;
        height:270px !important;
    }

    .cch-png-endpoint-badge{
        right:10px !important;
        bottom:10px !important;
        padding:8px 10px !important;
        font-size:11px !important;
    }
}



/* ========================================================================
   CCH_OFFICIAL_MAP_COVER_FINAL_2026
   ======================================================================== */

/*
 * Evita que se vea cualquier mapa anterior mientras
 * se inicializa el PNG oficial.
 */
#cch-route-map{
    visibility:hidden !important;
    opacity:0 !important;

    height:420px !important;
    min-height:420px !important;

    background:#000 !important;

    overflow:hidden !important;
}

/*
 * Se muestra solamente cuando el PNG oficial
 * ya está cargado.
 */
#cch-route-map.cch-official-ready{
    visibility:visible !important;
    opacity:1 !important;
}

/*
 * El mapa ocupa TODO el marco disponible.
 */
#cch-route-map.leaflet-container{
    width:100% !important;
    height:420px !important;
}

/*
 * Imagen limpia.
 */
#cch-route-map .leaflet-image-layer{
    max-width:none !important;
    max-height:none !important;
}

/*
 * No mostrar ninguna etiqueta flotante antigua
 * de SALIDA/META dentro de la imagen.
 *
 * Ya tenemos la información en la franja inferior.
 */
#cch-route-map .cch-png-endpoint,
#cch-route-map .cch-manual-endpoint,
#cch-route-map .cch-endpoint-marker,
#cch-route-map .cch-png-endpoint-badge,
#cch-route-map [data-cch-endpoint-label="1"]{
    display:none !important;
}

/*
 * Zoom limpio al margen.
 */
#cch-route-map .leaflet-control-zoom{
    margin-top:10px !important;
    margin-left:10px !important;
}

#cch-route-map .leaflet-control-zoom a{
    width:34px !important;
    height:34px !important;
    line-height:34px !important;

    font-size:24px !important;

    border-radius:0 !important;
}

/*
 * Responsive.
 */
@media(max-width:820px){

    #cch-route-map,
    #cch-route-map.leaflet-container{
        height:360px !important;
        min-height:360px !important;
    }

}

@media(max-width:520px){

    #cch-route-map,
    #cch-route-map.leaflet-container{
        height:290px !important;
        min-height:290px !important;
    }

}


/* ========================================================================
   CCH_SEO_H1_START
   Marca SEO visible dentro del hero
   ======================================================================== */

.cch-hero-seo-title {
    display: block;
    margin: 0 0 12px;
    font-family: inherit;
    font-size: clamp(13px, 1.15vw, 18px);
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: .12em;
    text-transform: uppercase;
}

/* CCH_SEO_H1_END */


/* Ocultar titulo SEO visual del hero */
.cch-hero-seo-title {
    display: none !important;
}


/* ================================================================
   INSCRIPCION GRATUITA - HERO
   ================================================================ */

.cch-free-registration {
    margin: 18px 0 14px;
    font-size: 15px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: #f8d828;
}

@media (max-width: 767px) {
    .cch-free-registration {
        margin: 14px 0 12px;
        font-size: 13px;
        letter-spacing: .10em;
    }
}

