
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@300;400;600;700;800&family=IBM+Plex+Mono:wght@400;600&display=swap');

:root {
  --cds-background: #f4f4f4;
  --cds-layer: #ffffff;
  --cds-text-primary: #161616;
  --cds-text-secondary: #525252;
  --cds-link-primary: #0f62fe;
  --cds-border: #e0e0e0;
  --cds-focus: #0f62fe;
  --font-sans: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --font-mono: 'IBM Plex Mono', "Menlo", "DejaVu Sans Mono", "Bitstream DejaVu Sans Mono", Courier, monospace;
}

* { box-sizing: border-box; }
html { width: 100%; overflow-x: hidden; }
body { width: 100%; margin: 0; padding: 0; overflow-x: hidden; background: var(--cds-background); color: var(--cds-text-primary); font-family: var(--font-sans); line-height: 1.5; font-size: 16px; }
a { color: var(--cds-link-primary); text-decoration: none; overflow-wrap: break-word; }
a:hover { text-decoration: underline; }
img { max-width: 100%; height: auto; display: block; }
h1, h2, h3, h4 { font-weight: 400; margin: 0 0 1rem; overflow-wrap: break-word; }
p { margin: 0 0 1.35rem; overflow-wrap: break-word; }
button { font: inherit; }

/* Sticky Top Header (IBM Style) */
.cds-top-header { position: sticky; top: 0; z-index: 100; background: var(--cds-layer); border-bottom: 1px solid var(--cds-border); width: 100%; }
.cds-top-header-inner { max-width: 1440px; margin: 0 auto; padding: 1rem 1.5rem; display: grid; grid-template-columns: 1fr; gap: 0.5rem; }
.cds-header-col-main { display: flex; flex-direction: column; gap: 0.25rem; width: 100%; }

@media (min-width: 64rem) {
  .cds-top-header-inner { grid-template-columns: 310px 1fr; gap: 3rem; padding: 1.75rem 1.5rem; }
}

/* Grid Layout */
.cds-container { width: 100%; max-width: 1440px; margin: 0 auto; padding: 2.5rem 1.5rem; }
.cds-grid { width: 100%; min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 2rem; align-items: start; }
.cds-grid > * { min-width: 0; }

.cds-col-meta { min-width: 0; display: flex; flex-direction: column; gap: 1.5rem; order: 1; }
.cds-col-main { min-width: 0; width: 100%; max-width: 100%; order: 2; }

.cds-mobile-hero { display: block; margin: 0 0 1.5rem; }
.cds-desktop-hero { display: none; }

@media (min-width: 64rem) {
  .cds-grid { grid-template-columns: 310px 1fr; gap: 3rem; }
  .cds-col-meta { order: 1; position: sticky; top: 10rem; }
  .cds-col-main { order: 2; }
  .cds-mobile-hero { display: none; }
  .cds-desktop-hero { display: block; }
}

/* Typography */
.cds-display-1 { font-size: clamp(2.25rem, 5.5vw, 4rem); line-height: 1.05; font-weight: 300; margin: 0; }
.cds-heading-4 { font-size: 1.45rem; line-height: 1.25; font-weight: 400; margin-top: 2rem; margin-bottom: 1.25rem; }
.cds-heading-3 { font-size: 1.35rem; line-height: 1.4; font-weight: 400; }
.cds-body-long-2 { font-size: 1.15rem; line-height: 1.7; font-weight: 300; max-width: 72ch; }
.cds-body-long-1 { font-size: 1.05rem; line-height: 1.66; font-weight: 400; max-width: 72ch; }
.cds-label { font-family: var(--font-mono); font-size: 0.75rem; line-height: 1.3; color: var(--cds-text-secondary); text-transform: uppercase; letter-spacing: 0.32px; display: block; margin-bottom: 0.25rem; }
.cds-mono { font-family: var(--font-mono); }

/* Components */
.cds-back-link { display: inline-flex; align-items: center; font-size: 0.875rem; font-weight: 600; color: var(--cds-text-secondary); }
.cds-back-link:hover { color: var(--cds-text-primary); text-decoration: none; }
.cds-back-link::before { content: "←"; margin-right: 0.5rem; }

.cds-hero-img { width: 100%; max-width: 100%; max-height: 600px; object-fit: contain; background: #fff; padding: 1rem; border: 1px solid var(--cds-border); margin-bottom: 2rem; }

.cds-data-list { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; border-top: 1px solid var(--cds-border); padding-top: 1.5rem; }
.cds-data-item { display: flex; flex-direction: column; min-width: 0; }
.cds-data-value { font-size: 1.15rem; font-weight: 600; font-family: var(--font-mono); overflow-wrap: break-word; }

.cds-info-cards { display: flex; flex-direction: column; gap: 1rem; }
.cds-card { background: var(--cds-layer); border: 1px solid var(--cds-border); padding: 1.5rem; }
.cds-card:hover { border-color: var(--cds-text-secondary); }
.cds-card .cds-label { color: var(--cds-link-primary); font-weight: 600; }
.cds-card p { margin: 0; font-size: 1rem; line-height: 1.6; }
.cds-card-link { display: inline-block; margin-top: 0.85rem; font-weight: 600; font-size: 0.9rem; }

/* Wikiloc Link Icon (IBM Primary Style) */
.cds-wikiloc-link { display: inline-flex; align-items: center; gap: 0.75rem; padding: 0.85rem 1.5rem; background: var(--cds-focus); color: #ffffff; font-weight: 400; font-size: 0.95rem; transition: background 0.2s; border: 1px solid transparent; }
.cds-wikiloc-link:hover { background: #0353e9; color: #ffffff; text-decoration: none; }
.cds-wikiloc-link svg { fill: currentColor; }

/* Accordion */
.cds-accordion { border-top: 1px solid var(--cds-border); }
.cds-accordion-item { border-bottom: 1px solid var(--cds-border); background: var(--cds-layer); }
.cds-accordion-header { width: 100%; text-align: left; background: none; border: none; padding: 1.25rem 1.5rem; font-size: 1.05rem; font-family: var(--font-sans); cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.cds-accordion-header:hover { background: #e5e5e5; }
.cds-accordion-content { padding: 0 1.5rem 1.5rem; display: none; color: var(--cds-text-secondary); }
.cds-accordion-item[open] .cds-accordion-content { display: block; }
.cds-accordion-item[open] .cds-accordion-header { font-weight: 600; }

/* Route picker */
.route-picker { width: 100%; min-width: 0; display: grid; grid-template-columns: 1fr; gap: 0.75rem; margin-bottom: 1.5rem; }
@media (min-width: 48rem) {
  .route-picker { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.route-choice { width: 100%; min-width: 0; appearance: none; background: var(--cds-layer); border: 1px solid var(--cds-border); border-left: 4px solid transparent; padding: 1rem 1.25rem; cursor: pointer; color: var(--cds-text-secondary); text-align: left; line-height: 1.4; }
.route-choice:hover { color: var(--cds-text-primary); border-color: var(--cds-text-secondary); }
.route-choice.active { color: var(--cds-text-primary); border-left-color: var(--cds-focus); font-weight: 600; background: #fbfbfb; }
.cds-route-title { font-size: clamp(1.4rem, 2.5vw, 1.85rem); line-height: 1.2; font-weight: 400; margin: 0 0 1.25rem; }
.cds-route-panel { display: none; width: 100%; background: var(--cds-layer); border: 1px solid var(--cds-border); padding: clamp(1.25rem, 3vw, 2rem); }
.cds-route-panel.active { display: block; }
.cds-tags { display: flex; gap: 0.5rem; margin-bottom: 1.5rem; flex-wrap: wrap; }
.cds-tag { background: #e0e0e0; color: #161616; padding: 0.25rem 0.6rem; font-size: 0.75rem; font-family: var(--font-mono); border-radius: 4px; }

/* Nearby Peaks Buttons */
.near-peaks-container {
    margin-top: 5rem; padding: clamp(3rem, 6vw, 5rem) 1.5rem;
    border-top: 1px solid var(--cds-border); width: 100%;
    background: #fbfbfb; text-align: center;
}
.near-peaks-grid {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
    gap: 1rem; max-width: 960px; margin: 2rem auto 0;
}
.near-peak-card {
    width: 100%; min-width: 0; min-height: 92px; position: relative;
    display: grid; grid-template-columns: 76px minmax(0, 1fr); align-items: center;
    gap: 1rem; padding: 0.75rem; background: var(--cds-layer);
    border: 1px solid var(--cds-border); color: var(--cds-text-primary);
    text-decoration: none; overflow: hidden; text-align: left;
    transition: border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}
.near-peak-card::after {
    content: "→"; position: absolute; right: 1rem; top: 50%; transform: translateY(-50%);
    color: var(--cds-link-primary); font-size: 1.15rem; opacity: 0; transition: opacity 0.2s ease, right 0.2s ease;
}
.near-peak-card:hover {
    transform: translateY(-3px); box-shadow: 0 10px 22px rgba(0,0,0,0.08);
    border-color: var(--cds-focus); background: #ffffff; text-decoration: none;
}
.near-peak-card:hover::after { opacity: 1; right: 0.8rem; }
.near-peak-card img {
    position: static; width: 76px; height: 76px; object-fit: cover;
    background: #e0e0e0; border: 1px solid var(--cds-border); opacity: 1; transition: transform 0.2s ease;
}
.near-peak-card:hover img { transform: scale(1.03); }
.near-peak-card-content { min-width: 0; position: static; z-index: 1; padding: 0 1.75rem 0 0; background: none; text-align: left; }
.near-peak-card .cds-label { color: var(--cds-text-secondary); opacity: 1; margin-bottom: 0.3rem; }
.near-peak-card h3 {
    font-size: 1.1rem; line-height: 1.25; font-weight: 600; margin: 0;
    color: var(--cds-text-primary); overflow-wrap: anywhere;
}
@media (max-width: 38rem) {
  .near-peaks-grid { grid-template-columns: 1fr; }
  .near-peak-card { grid-template-columns: 64px minmax(0, 1fr); min-height: 80px; }
  .near-peak-card img { width: 64px; height: 64px; }
}

/* Index Page */
.idx-header { padding: 5rem 1.5rem; background: var(--cds-text-primary); color: var(--cds-layer); text-align: center; }
.idx-header-inner { max-width: 800px; margin: 0 auto; }
.idx-header h1 { margin: 0; color: var(--cds-layer); }
.idx-header p { margin: 1.25rem auto 0; color: #c6c6c6; }
.idx-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr)); gap: 1.5rem; }
.idx-card { background: var(--cds-layer); padding: 1.5rem; display: flex; flex-direction: column; border: 1px solid var(--cds-border); color: inherit; transition: all 0.2s; }
.idx-card:hover { border-color: var(--cds-focus); transform: translateY(-3px); box-shadow: 0 6px 16px rgba(0,0,0,0.06); text-decoration: none; }
.idx-card img { width: 100%; aspect-ratio: 4/3; object-fit: contain; background: #fff; margin-bottom: 1rem; }
.idx-card h2 { font-size: 1.35rem; font-weight: 600; margin: 0 0 0.5rem; }
.idx-card-meta { display: flex; justify-content: space-between; align-items: center; margin-top: auto; padding-top: 1rem; border-top: 1px solid var(--cds-border); }

/* Video Shorts Slider */
.social-slider-section {
    margin: 2rem 0 4rem; padding: 2rem;
    background: #f4f4f4; border-radius: 16px;
    width: 100%; overflow: hidden; color: var(--cds-text-primary);
}
.social-slider-title-wrap {
    display: flex; justify-content: space-between; align-items: center;
    gap: 1rem; padding: 0 0 1.5rem;
}
.social-slider-title { font-size: 1.45rem; font-weight: 600; color: var(--cds-text-primary); margin: 0; }
.social-slider-icon { font-size: 1.25rem; color: #ff0000; line-height: 1; flex: 0 0 auto; }

.social-slider-outer { position: relative; width: 100%; min-width: 0; isolation: isolate; }
.social-slider-container {
    --slider-gap: 1rem;
    display: grid; grid-auto-flow: column; grid-auto-columns: minmax(220px, 260px);
    gap: var(--slider-gap); overflow-x: auto; overflow-y: hidden;
    padding: 0.25rem 0.25rem 1.25rem; scroll-padding-inline: 0.25rem;
    scroll-snap-type: x mandatory; scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}
.social-slider-container::-webkit-scrollbar { display: none; }

.social-video-card {
    min-width: 0; scroll-snap-align: start; background: #ffffff;
    border: 1px solid var(--cds-border); overflow: hidden; border-radius: 16px;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
    display: flex; flex-direction: column;
}
.social-video-card:hover { border-color: var(--cds-focus); box-shadow: 0 8px 20px rgba(0,0,0,0.08); transform: translateY(-2px); }

.social-video-wrap {
    position: relative; width: 100%; aspect-ratio: 9 / 16;
    background: #000; overflow: hidden; border-radius: 16px 16px 0 0;
}
.social-video-wrap iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

.social-video-info { padding: 1rem; flex-grow: 1; display: flex; flex-direction: column; justify-content: space-between; }
.social-video-desc {
    font-size: 0.875rem; line-height: 1.4; color: var(--cds-text-primary);
    margin: 0 0 1rem; font-weight: 400;
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.social-video-footer {
    display: flex; align-items: center; gap: 8px;
    font-size: 0.75rem; color: var(--cds-text-secondary); border-top: 1px solid var(--cds-border); padding-top: 0.75rem;
}
.platform-icon { width: 16px; height: 16px; fill: #ff0000; flex: 0 0 auto; }

.slider-nav {
    position: absolute; top: 42%; transform: translateY(-50%);
    width: 44px; height: 44px; background: rgba(255,255,255,0.96);
    border: 1px solid var(--cds-border); border-radius: 50%; color: var(--cds-text-primary);
    display: flex; align-items: center; justify-content: center;
    cursor: pointer; z-index: 10; transition: opacity 0.2s ease, background 0.2s ease, border-color 0.2s ease;
    box-shadow: 0 6px 18px rgba(0,0,0,0.16);
}
.slider-nav:hover { background: #ffffff; border-color: var(--cds-focus); color: var(--cds-focus); }
.slider-nav.is-hidden { opacity: 0; pointer-events: none; }
.slider-nav.prev { left: 0.5rem; }
.slider-nav.next { right: 0.5rem; }

@media (min-width: 64rem) {
  .social-slider-container { grid-auto-columns: minmax(240px, 280px); padding-inline: 3.25rem; scroll-padding-inline: 3.25rem; }
}
@media (max-width: 48rem) {
  .social-slider-container { grid-auto-columns: minmax(72vw, 1fr); }
  .slider-nav { display: none; }
}

/* Index Page: directory + external SVG map */
.idx-dual-layout {
    display: grid;
    grid-template-columns: minmax(320px, 400px) minmax(0, 1fr);
    min-height: calc(100svh - 64px);
    background: #ffffff;
}

.idx-sidebar {
    min-width: 0;
    height: calc(100svh - 64px);
    overflow-y: auto;
    border-right: 1px solid var(--cds-border);
    background: #f4f4f4;
    padding: 1.5rem;
}

.idx-sidebar-header {
    margin-bottom: 2rem;
}

.idx-map-container {
    position: relative;
    min-width: 0;
    min-height: calc(100svh - 64px);
    background: linear-gradient(135deg, #f8fafc 0%, #eef4f8 100%);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    padding: clamp(1rem, 2.4vw, 2.5rem);
}

.idx-map-title {
    position: absolute;
    top: clamp(1rem, 2vw, 2rem);
    left: clamp(1rem, 2vw, 2rem);
    z-index: 3;
    max-width: 390px;
    background: rgba(255,255,255,0.94);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(224,224,224,0.88);
    border-radius: 16px;
    padding: 1.15rem 1.3rem;
    box-shadow: 0 12px 30px rgba(0,0,0,0.07);
}

.idx-map-title h2 {
    margin: 0 0 0.35rem;
    font-size: 1.35rem;
    font-weight: 700;
}

.idx-map-title p {
    margin: 0;
    color: var(--cds-text-secondary);
    font-size: 1rem;
    line-height: 1.5;
}

.idx-map-shell {
    position: relative;
    width: min(100%, 1180px);
    margin: 0 auto;
}

.map-svg {
    width: 100%;
    max-height: calc(100svh - 120px);
    height: auto;
    display: block;
    overflow: visible;
    filter: drop-shadow(0 18px 38px rgba(15, 23, 42, 0.10));
}

.map-base-image {
    pointer-events: none;
}

.peak-map-link,
.peak-map-link:hover {
    text-decoration: none;
    color: inherit;
}

.peak-map-label {
    cursor: pointer;
    outline: none;
}

.peak-map-connector {
    stroke: rgba(15, 98, 254, 0.30);
    stroke-width: 1.5;
    stroke-linecap: round;
    vector-effect: non-scaling-stroke;
    opacity: 0;
    pointer-events: none;
    transition: stroke 0.16s ease, opacity 0.16s ease;
}

.peak-map-dot {
    fill: var(--cds-focus);
    stroke: #ffffff;
    stroke-width: 3;
    vector-effect: non-scaling-stroke;
    filter: drop-shadow(0 2px 5px rgba(15, 23, 42, 0.24));
    transition: fill 0.16s ease, r 0.16s ease, stroke-width 0.16s ease;
}

.peak-map-pill {
    opacity: 0;
    transition: opacity 0.18s ease;
}

.peak-map-pill rect {
    fill: rgba(255,255,255,0.94);
    stroke: rgba(15, 98, 254, 0.36);
    stroke-width: 1.8;
    vector-effect: non-scaling-stroke;
    filter: drop-shadow(0 5px 14px rgba(15, 23, 42, 0.14));
    transition: fill 0.16s ease, stroke 0.16s ease, stroke-width 0.16s ease;
}

.peak-map-pill text {
    font-family: var(--font-mono);
    text-anchor: middle;
    pointer-events: none;
    fill: var(--cds-text-primary);
}

.peak-map-name {
    font-size: 56px;
    font-weight: 800;
    letter-spacing: -0.02em;
}

.peak-map-alt {
    font-size: 42px;
    font-weight: 600;
    fill: var(--cds-text-secondary);
}

.peak-map-label:hover .peak-map-connector,
.peak-map-label.is-active .peak-map-connector,
.peak-map-link:focus .peak-map-connector {
    stroke: var(--cds-focus);
    opacity: 1;
}

.peak-map-label:hover .peak-map-pill,
.peak-map-label.is-active .peak-map-pill,
.peak-map-link:focus .peak-map-pill {
    opacity: 1;
}

.peak-map-label:hover .peak-map-dot,
.peak-map-label.is-active .peak-map-dot,
.peak-map-link:focus .peak-map-dot {
    r: 18;
    stroke-width: 3.6;
}

.peak-map-label:hover .peak-map-pill rect,
.peak-map-label.is-active .peak-map-pill rect,
.peak-map-link:focus .peak-map-pill rect {
    fill: #ffffff;
    stroke: var(--cds-focus);
    stroke-width: 2.3;
}

.peak-map-label:hover .peak-map-alt,
.peak-map-label.is-active .peak-map-alt,
.peak-map-link:focus .peak-map-alt {
    fill: var(--cds-focus);
}

.map-focus-card {
    position: absolute;
    right: clamp(0.75rem, 2vw, 1.5rem);
    bottom: clamp(0.75rem, 2vw, 1.5rem);
    z-index: 4;
    width: min(340px, calc(100% - 1.5rem));
    background: rgba(255,255,255,0.94);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(224,224,224,0.9);
    border-radius: 18px;
    padding: 1rem 1.1rem;
    box-shadow: 0 14px 34px rgba(15, 23, 42, 0.12);
}

.map-focus-card strong {
    display: block;
    margin-top: 0.25rem;
    font-size: 1.1rem;
    line-height: 1.25;
    color: var(--cds-text-primary);
}

.map-focus-card p {
    margin: 0.45rem 0 0;
    color: var(--cds-text-secondary);
    font-size: 0.9rem;
    line-height: 1.4;
}

/* Sidebar Peak Cards */
.idx-side-card {
    display: flex;
    gap: 1rem;
    background: #ffffff;
    border-radius: 14px;
    padding: 0.75rem;
    margin-bottom: 1rem;
    text-decoration: none;
    color: inherit;
    border: 1px solid transparent;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
    align-items: center;
}

.idx-side-card:hover,
.idx-side-card.is-active {
    border-color: var(--cds-focus);
    box-shadow: 0 6px 16px rgba(15, 23, 42, 0.08);
    transform: translateX(4px);
    text-decoration: none;
}

.idx-side-card img,
.idx-side-card-placeholder {
    width: 64px;
    height: 64px;
    border-radius: 10px;
    flex-shrink: 0;
}

.idx-side-card img {
    object-fit: cover;
}

.idx-side-card-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #e0e0e0;
    color: var(--cds-text-secondary);
    font-size: 1.25rem;
    font-weight: 700;
}

.idx-side-card-info h3 {
    margin: 0;
    font-size: 1rem;
    color: var(--cds-text-primary);
    font-weight: 600;
}

.idx-side-card-info p {
    margin: 0.25rem 0 0;
    font-size: 0.8125rem;
    color: var(--cds-text-secondary);
}

.idx-side-card-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 0.25rem;
}

@media (max-width: 1024px) {
    .idx-dual-layout {
        grid-template-columns: 1fr;
        min-height: auto;
    }
    .idx-sidebar {
        width: 100%;
        height: auto;
        max-height: none;
        border-right: none;
        border-bottom: 1px solid var(--cds-border);
    }
    .idx-map-container {
        min-height: 68vh;
        height: auto;
        overflow: hidden;
        padding-top: 6.25rem;
    }
    .idx-map-title {
        top: 1rem;
        left: 1rem;
        right: 1rem;
        max-width: none;
    }
    .idx-map-shell {
        width: min(100%, 900px);
    }
    .map-svg {
        max-height: none;
    }
    .peak-map-name { font-size: 62px; }
    .peak-map-alt { font-size: 46px; }
    .map-focus-card {
        position: relative;
        right: auto;
        bottom: auto;
        width: 100%;
        margin-top: 1rem;
    }
}




/* Full static site layer */
.site-shell-header { position: sticky; top: 0; z-index: 110; background: rgba(255,255,255,.96); backdrop-filter: blur(10px); border-bottom: 1px solid var(--cds-border); }
.site-shell-inner { max-width: 1440px; margin: 0 auto; padding: .85rem 1.5rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.site-brand { display: inline-flex; flex-direction: column; gap: .1rem; color: var(--cds-text-primary); text-decoration: none; min-width: 11rem; }
.site-brand strong { font-weight: 600; letter-spacing: -.01em; }
.site-brand span { font-family: var(--font-mono); font-size: .72rem; color: var(--cds-text-secondary); text-transform: uppercase; letter-spacing: .4px; }
.site-nav { display: flex; gap: .35rem; flex-wrap: wrap; justify-content: flex-end; }
.site-nav a { color: var(--cds-text-secondary); padding: .55rem .75rem; border: 1px solid transparent; font-size: .95rem; }
.site-nav a:hover, .site-nav a[aria-current="page"] { color: var(--cds-text-primary); background: #f4f4f4; border-color: var(--cds-border); text-decoration: none; }
.cds-footer { background: #161616; margin-top: 4rem; }
.cds-footer-inner { max-width: 1440px; margin: 0 auto; padding: 2rem 1.5rem; display: grid; gap: 1rem; color: #c6c6c6; }
.cds-footer-links { display: flex; gap: 1rem; flex-wrap: wrap; }
.cds-footer-links a { color: #f4f4f4; font-size: .95rem; }
.home-hero { max-width: 1440px; margin: 0 auto; padding: clamp(4rem, 9vw, 8rem) 1.5rem 3rem; display: grid; grid-template-columns: minmax(0, 1fr); gap: 2rem; }
.home-hero h1 { font-size: clamp(3rem, 8vw, 6.5rem); line-height: .95; font-weight: 300; letter-spacing: -.04em; max-width: 11ch; }
.home-hero p { max-width: 62ch; color: var(--cds-text-secondary); font-size: clamp(1.12rem, 2vw, 1.35rem); line-height: 1.65; }
.home-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.5rem; }
.btn-primary, .btn-secondary { display: inline-flex; align-items: center; justify-content: center; min-height: 3rem; padding: .8rem 1.2rem; border: 1px solid var(--cds-focus); text-decoration: none; }
.btn-primary { background: var(--cds-focus); color: #fff; }
.btn-primary:hover { background: #0353e9; color: #fff; text-decoration: none; }
.btn-secondary { color: var(--cds-focus); background: #fff; }
.btn-secondary:hover { background: #eaf1ff; text-decoration: none; }
.home-panel { background: #fff; border: 1px solid var(--cds-border); padding: clamp(1.5rem, 4vw, 2.5rem); align-self: start; }
.home-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 1.5rem; }
.home-stat { border-top: 1px solid var(--cds-border); padding-top: 1rem; }
.home-stat strong { display: block; font-family: var(--font-mono); font-size: 1.65rem; }
.site-section { max-width: 1440px; margin: 0 auto; padding: 2rem 1.5rem; }
.card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1rem; }
.site-card { display: flex; flex-direction: column; justify-content: space-between; min-height: 13rem; padding: 1.5rem; background: #fff; border: 1px solid var(--cds-border); color: var(--cds-text-primary); }
.site-card:hover { border-color: var(--cds-text-secondary); text-decoration: none; }
.site-card h2, .site-card h3 { font-size: 1.45rem; line-height: 1.22; margin-bottom: .75rem; }
.site-card p { color: var(--cds-text-secondary); font-size: .98rem; }
.static-page { max-width: 1180px; }
.static-hero { padding: clamp(2.5rem, 7vw, 5rem) 0 2rem; border-bottom: 1px solid var(--cds-border); margin-bottom: 2rem; }
.static-hero h1 { font-size: clamp(2.4rem, 6vw, 5rem); line-height: 1.02; font-weight: 300; letter-spacing: -.035em; max-width: 13ch; }
.static-hero p { color: var(--cds-text-secondary); font-size: 1.15rem; max-width: 72ch; }
.static-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2rem; }
.static-aside { display: none; }
.static-body { background: #fff; border: 1px solid var(--cds-border); padding: clamp(1.5rem, 4vw, 3rem); }
.static-body h2 { font-size: clamp(1.65rem, 3vw, 2.25rem); line-height: 1.2; font-weight: 400; margin-top: 2.5rem; }
.static-body h2:first-child { margin-top: 0; }
.static-body h3 { font-size: 1.35rem; margin-top: 2rem; }
.static-body p, .static-body li { font-size: 1.05rem; line-height: 1.75; color: var(--cds-text-secondary); }
.static-body ul, .static-body ol { padding-left: 1.3rem; margin: 0 0 1.35rem; }
.breadcrumb { display: flex; gap: .5rem; flex-wrap: wrap; font-size: .9rem; color: var(--cds-text-secondary); margin-bottom: 1rem; }
.breadcrumb a { color: var(--cds-text-secondary); }
.section-header { max-width: 900px; margin-bottom: 2rem; }
.section-header h1 { font-size: clamp(2.5rem, 6vw, 5rem); line-height: 1; font-weight: 300; letter-spacing: -.035em; }
@media (min-width: 64rem) {
  .home-hero { grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr); align-items: center; }
  .static-grid { grid-template-columns: 260px minmax(0, 1fr); }
  .static-aside { display: block; position: sticky; top: 6rem; align-self: start; }
}
@media (max-width: 48rem) {
  .site-shell-inner { align-items: flex-start; flex-direction: column; }
  .site-nav { justify-content: flex-start; }
  .site-nav a { padding-left: 0; }
}


/* TrekkingSierra v25: marca + dropdown CSS-only */
.site-shell-header{position:sticky;top:0;z-index:1000;background:rgba(255,255,255,.96);backdrop-filter:blur(14px);border-bottom:1px solid rgba(224,224,224,.95)}
.site-shell-inner{max-width:1440px;margin:0 auto;padding:.85rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem}
.site-brand{display:inline-flex;align-items:center;gap:.8rem;color:var(--cds-text-primary);text-decoration:none;min-width:0}.site-brand:hover{text-decoration:none}.site-brand-logo{height:54px;width:auto;max-width:230px;object-fit:contain}.site-brand-fallback{display:flex;flex-direction:column;line-height:1.1}.site-brand-fallback strong{font-size:1.2rem;letter-spacing:-.02em}.site-brand-fallback span{font-family:var(--font-mono);font-size:.72rem;color:var(--cds-text-secondary);text-transform:uppercase;letter-spacing:.03em}
.nav-toggle-input{position:absolute;inline-size:1px;block-size:1px;opacity:0;pointer-events:none}.nav-toggle-label{display:none;width:46px;height:46px;border:1px solid var(--cds-border);background:#fff;align-items:center;justify-content:center;cursor:pointer;margin-left:auto}.nav-toggle-label span,.nav-toggle-label span:before,.nav-toggle-label span:after{content:"";display:block;width:22px;height:2px;background:var(--cds-text-primary);transition:transform .2s ease,opacity .2s ease}.nav-toggle-label span:before{transform:translateY(-7px)}.nav-toggle-label span:after{transform:translateY(5px)}
.site-nav{display:flex;align-items:center;justify-content:flex-end;gap:.15rem}.site-nav-list{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:.2rem}.site-nav-item{position:relative;margin:0;padding:0}.site-nav-link{display:inline-flex;align-items:center;gap:.35rem;padding:.8rem .9rem;color:var(--cds-text-primary);font-weight:600;font-size:.96rem;text-decoration:none}.site-nav-link:hover,.site-nav-link[aria-current="page"]{color:var(--cds-focus);text-decoration:none}.site-nav-item.has-dropdown>.site-nav-link:after{content:"⌄";font-size:.85rem;transform:translateY(-1px)}.nav-dropdown{position:absolute;top:calc(100% + .35rem);left:0;min-width:230px;display:none;background:#fff;border:1px solid var(--cds-border);box-shadow:0 18px 42px rgba(0,0,0,.12);padding:.55rem;list-style:none;margin:0}.site-nav-item:hover .nav-dropdown,.site-nav-item:focus-within .nav-dropdown{display:block}.nav-dropdown a{display:block;padding:.72rem .85rem;color:var(--cds-text-primary);font-size:.94rem;font-weight:500;text-decoration:none;border-radius:8px}.nav-dropdown a:hover{background:#f4f4f4;color:var(--cds-focus);text-decoration:none}.nav-screen{display:none}
.home-hero-v2{position:relative;min-height:min(760px,calc(100svh - 72px));display:grid;align-items:stretch;background:#111;color:#fff;overflow:hidden}.home-hero-v2:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.74) 0%,rgba(0,0,0,.42) 48%,rgba(0,0,0,.12) 100%);z-index:1}.home-hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.92}.home-hero-content{position:relative;z-index:2;max-width:1440px;width:100%;margin:0 auto;padding:clamp(4rem,8vw,8rem) 1.5rem;display:grid;grid-template-columns:minmax(0,760px) minmax(280px,390px);gap:clamp(2rem,6vw,5rem);align-items:end}.home-hero-copy h1{color:#fff;font-size:clamp(3rem,8vw,7.5rem);line-height:.9;letter-spacing:-.065em;font-weight:300;margin-bottom:1.4rem}.home-hero-copy p{color:rgba(255,255,255,.86);max-width:65ch;font-size:clamp(1.05rem,2vw,1.35rem);line-height:1.65}.home-actions{display:flex;flex-wrap:wrap;gap:.85rem;margin-top:2rem}.btn-primary,.btn-secondary{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:.9rem 1.3rem;border:1px solid transparent;font-weight:600;text-decoration:none}.btn-primary{background:#0f62fe;color:#fff}.btn-primary:hover{background:#0353e9;color:#fff;text-decoration:none}.btn-secondary{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.36)}.btn-secondary:hover{background:rgba(255,255,255,.16);color:#fff;text-decoration:none}.home-feature-panel{background:rgba(255,255,255,.92);color:var(--cds-text-primary);border:1px solid rgba(255,255,255,.7);box-shadow:0 24px 65px rgba(0,0,0,.22);padding:clamp(1.2rem,3vw,2rem)}.home-feature-panel p{color:var(--cds-text-secondary)}.home-stats{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;margin-top:1.4rem}.home-stat{background:#f4f4f4;padding:1rem}.home-stat strong{display:block;font-size:2rem;font-weight:300;line-height:1}
.home-visual-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem}.visual-card{position:relative;min-height:360px;border:1px solid var(--cds-border);background:#fff;overflow:hidden;color:var(--cds-text-primary);text-decoration:none}.visual-card:hover{text-decoration:none;border-color:var(--cds-focus)}.visual-card img{width:100%;height:230px;object-fit:cover;background:#e0e0e0}.visual-card-body{padding:1.4rem}.visual-card-body h2{font-size:clamp(1.5rem,3vw,2.1rem);line-height:1.1}.visual-card-body p{color:var(--cds-text-secondary)}
.latest-guide-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:1rem}.guide-card{background:#fff;border:1px solid var(--cds-border);display:flex;flex-direction:column;min-height:100%;color:inherit;text-decoration:none}.guide-card:hover{border-color:var(--cds-focus);text-decoration:none;transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.06)}.guide-card img{width:100%;aspect-ratio:16/9;object-fit:cover;background:#e0e0e0}.guide-card-body{padding:1.25rem;display:flex;flex-direction:column;flex:1}.guide-card h2,.guide-card h3{font-size:1.25rem;font-weight:600;line-height:1.25}.guide-card p{color:var(--cds-text-secondary);font-size:.98rem}.guide-card-footer{margin-top:auto;padding-top:1rem;color:var(--cds-focus);font-weight:600}
.guide-hero{background:#161616;color:#fff;padding:clamp(4rem,8vw,7rem) 1.5rem}.guide-hero-inner{max-width:980px;margin:0 auto}.guide-hero h1{color:#fff;font-size:clamp(2.75rem,7vw,6rem);line-height:.96;letter-spacing:-.055em;font-weight:300}.guide-hero p{color:#c6c6c6;font-size:1.18rem;max-width:72ch}.guide-layout{max-width:1120px;margin:0 auto;padding:clamp(2rem,5vw,4rem) 1.5rem}.guide-article{background:#fff;border:1px solid var(--cds-border)}.guide-article-header{padding:clamp(1.5rem,5vw,3rem);border-bottom:1px solid var(--cds-border)}.guide-article-header h1{font-size:clamp(2.3rem,6vw,4.5rem);line-height:.98;letter-spacing:-.05em;font-weight:300}.guide-meta{display:flex;gap:.75rem;flex-wrap:wrap;color:var(--cds-text-secondary);font-size:.92rem;margin-top:1rem}.guide-hero-image img{width:100%;max-height:520px;object-fit:cover;background:#e0e0e0}.guide-content{padding:clamp(1.5rem,5vw,3rem)}.guide-content>*{max-width:780px}.guide-content h2{font-size:clamp(1.8rem,4vw,2.7rem);line-height:1.1;margin-top:2.8rem;font-weight:400}.guide-content h3{font-size:1.45rem;margin-top:2rem;font-weight:600}.guide-content p,.guide-content li{font-size:1.08rem;line-height:1.78;color:var(--cds-text-secondary)}.guide-content ul,.guide-content ol{padding-left:1.4rem;margin-bottom:1.4rem}.guide-figure{margin:2.2rem 0;max-width:920px}.guide-figure img{width:100%;border:1px solid var(--cds-border);background:#e0e0e0}.guide-figure figcaption{color:var(--cds-text-secondary);font-size:.92rem;margin-top:.6rem}.guide-video{margin:2.2rem 0;max-width:920px}.guide-video iframe,.guide-video video{width:100%;aspect-ratio:16/9;border:0;background:#000}.empty-guides{background:#fff;border:1px solid var(--cds-border);padding:2rem;color:var(--cds-text-secondary)}
@media (max-width:56rem){.site-shell-inner{padding:.7rem 1rem}.site-brand-logo{height:44px;max-width:190px}.site-brand-fallback span{display:none}.nav-toggle-label{display:inline-flex}.site-nav{position:fixed;top:0;right:0;width:min(88vw,380px);height:100svh;background:#fff;border-left:1px solid var(--cds-border);box-shadow:-18px 0 50px rgba(0,0,0,.18);transform:translateX(102%);transition:transform .22s ease;z-index:1002;align-items:stretch;justify-content:flex-start;padding:5rem 1.2rem 2rem;overflow-y:auto}.nav-toggle-input:checked~.site-nav{transform:translateX(0)}.nav-toggle-input:checked~.nav-screen{display:block;opacity:1;pointer-events:auto}.nav-toggle-input:checked+.site-brand+.nav-toggle-label span{background:transparent}.nav-toggle-input:checked+.site-brand+.nav-toggle-label span:before{transform:translateY(0) rotate(45deg)}.nav-toggle-input:checked+.site-brand+.nav-toggle-label span:after{transform:translateY(-2px) rotate(-45deg)}.nav-toggle-label{position:relative;z-index:1003}.site-nav-list{width:100%;display:flex;flex-direction:column;align-items:stretch;gap:.3rem}.site-nav-link{width:100%;padding:.9rem .4rem;font-size:1.08rem}.site-nav-item.has-dropdown>.site-nav-link:after{display:none}.nav-dropdown{position:static;display:block;min-width:0;box-shadow:none;border:0;padding:.1rem 0 .7rem .8rem;background:transparent}.nav-dropdown a{padding:.55rem .4rem;color:var(--cds-text-secondary)}.nav-screen{position:fixed;inset:0;background:rgba(0,0,0,.42);opacity:0;pointer-events:none;z-index:1001}.home-hero-content{grid-template-columns:1fr;align-items:end}.home-feature-panel{max-width:460px}.home-visual-grid{grid-template-columns:1fr}}


/* TrekkingSierra v26: front limpio + mapa con zonas amplias */
.site-brand-logo[src$="logo-trekkingsierra.webp"] + .site-brand-fallback{display:none}
.peak-map-pill,.peak-map-connector{display:none!important}.idx-map-title{max-width:440px}.idx-map-title p{font-size:1.02rem}.idx-map-shell{width:min(100%,1220px);display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,360px);gap:1rem;align-items:end}.map-svg{grid-column:1;overflow:visible;max-height:calc(100svh - 150px)}.map-focus-card{position:relative;right:auto;bottom:auto;z-index:4;grid-column:2;align-self:end;width:auto;max-width:360px;background:rgba(255,255,255,.96)}.map-focus-card a{display:inline-flex;margin-top:.85rem;color:#fff;background:var(--cds-focus);padding:.65rem .9rem;text-decoration:none;font-weight:700}.map-focus-card a:hover{background:#0353e9;text-decoration:none}.province-zone-link,.province-zone-link:hover{text-decoration:none;color:inherit}.province-zone-layer{cursor:pointer;outline:none}.province-hover-shape{fill:rgba(15,98,254,.18);stroke:rgba(15,98,254,.72);stroke-width:4;vector-effect:non-scaling-stroke;opacity:0;transition:opacity .14s ease,stroke-width .14s ease;pointer-events:none}.province-hit-area{fill:transparent;stroke:transparent;pointer-events:all}.province-zone-layer:hover .province-hover-shape,.province-zone-layer.is-active .province-hover-shape,.province-zone-link:focus .province-hover-shape{opacity:1;stroke-width:5.5}.peak-map-dot{fill:var(--cds-focus);stroke:#fff;stroke-width:5;vector-effect:non-scaling-stroke;filter:drop-shadow(0 3px 7px rgba(15,23,42,.30));transition:stroke-width .14s ease,fill .14s ease}.peak-map-dot-ring{fill:rgba(15,98,254,.14);stroke:rgba(15,98,254,.35);stroke-width:2;vector-effect:non-scaling-stroke;pointer-events:none}.province-zone-layer:hover .peak-map-dot,.province-zone-layer.is-active .peak-map-dot,.province-zone-link:focus .peak-map-dot{fill:#0f62fe;stroke-width:8}.peak-map-mini-label{font-family:var(--font-mono);font-size:46px;font-weight:800;text-anchor:middle;fill:#161616;paint-order:stroke;stroke:#fff;stroke-width:9;stroke-linejoin:round;pointer-events:none;opacity:0;transition:opacity .14s ease}.province-zone-layer:hover .peak-map-mini-label,.province-zone-layer.is-active .peak-map-mini-label,.province-zone-link:focus .peak-map-mini-label{opacity:1}.idx-side-card.is-active{border-color:var(--cds-focus);box-shadow:inset 4px 0 0 var(--cds-focus);background:#fff}.idx-side-card:focus-visible{outline:3px solid var(--cds-focus);outline-offset:-3px}
@media (max-width:980px){.idx-map-shell{grid-template-columns:1fr}.map-svg,.map-focus-card{grid-column:1}.map-focus-card{max-width:none}.idx-map-title{position:relative;top:auto;left:auto;margin-bottom:1rem}.idx-map-container{justify-content:flex-start;overflow:visible}.map-svg{max-height:none}.peak-map-mini-label{font-size:38px}}
@media (max-width:640px){.peak-map-mini-label{display:none}.peak-map-dot{stroke-width:6}.idx-sidebar{height:auto;max-height:42svh}.idx-dual-layout{display:block}}


/* TrekkingSierra v27: mapa de techos con etiquetas visibles */
.idx-dual-layout{grid-template-columns:minmax(280px,330px) minmax(0,1fr)}
.idx-map-container{overflow:auto;align-items:flex-start;padding:1.4rem 1.25rem 2rem}
.idx-map-title{position:relative;top:auto;left:auto;max-width:820px;margin-bottom:1rem}
.idx-map-title h2{max-width:18ch}
.idx-map-title p{font-size:1.04rem;max-width:64ch}
.idx-map-shell{width:min(1520px,max(1120px,100%));max-width:none}
.map-svg{display:block;width:100%;height:auto;overflow:visible;max-height:none}
.province-zone-link,.province-zone-link:hover{text-decoration:none;color:inherit}
.province-zone-layer{cursor:pointer;outline:none}
.province-hit-area{fill:rgba(0,0,0,.001);fill-rule:evenodd;stroke:transparent;pointer-events:fill}
.province-hover-shape{fill:rgba(15,98,254,.10);stroke:rgba(15,98,254,.48);stroke-width:4;vector-effect:non-scaling-stroke;opacity:0;transition:opacity .16s ease,stroke .16s ease,fill .16s ease;pointer-events:none}
.peak-map-dot-ring{fill:rgba(15,98,254,.10);stroke:rgba(15,98,254,.30);stroke-width:2;vector-effect:non-scaling-stroke;pointer-events:none}
.peak-map-dot{fill:#0f62fe;stroke:#fff;stroke-width:5;vector-effect:non-scaling-stroke;filter:drop-shadow(0 3px 10px rgba(15,23,42,.28));transition:transform .16s ease,stroke-width .16s ease,fill .16s ease;transform-origin:center}
.peak-map-connector{display:block!important;stroke:#5f6b7a;stroke-width:8;stroke-linecap:round;vector-effect:non-scaling-stroke;opacity:.72;pointer-events:none;transition:stroke .16s ease,opacity .16s ease}
.peak-map-pill{display:block!important;pointer-events:none;filter:drop-shadow(0 14px 18px rgba(15,23,42,.12))}
.peak-map-pill rect{fill:rgba(255,255,255,.98);stroke:#264031;stroke-width:5;vector-effect:non-scaling-stroke;transition:fill .16s ease,stroke .16s ease,transform .16s ease}
.peak-map-pill text{font-family:var(--font-sans);text-anchor:middle;pointer-events:none}
.peak-map-name{font-size:56px;font-weight:800;letter-spacing:-.02em;fill:#182117}
.peak-map-alt{font-size:34px;font-weight:700;letter-spacing:.02em;fill:#2f6a45}
.province-zone-layer:hover .province-hover-shape,.province-zone-layer.is-active .province-hover-shape,.province-zone-link:focus .province-hover-shape{opacity:1;fill:rgba(15,98,254,.16);stroke:rgba(15,98,254,.72)}
.province-zone-layer:hover .peak-map-dot,.province-zone-layer.is-active .peak-map-dot,.province-zone-link:focus .peak-map-dot{fill:#0353e9;stroke-width:8}
.province-zone-layer:hover .peak-map-dot-ring,.province-zone-layer.is-active .peak-map-dot-ring,.province-zone-link:focus .peak-map-dot-ring{fill:rgba(15,98,254,.18);stroke:rgba(15,98,254,.48)}
.province-zone-layer:hover .peak-map-connector,.province-zone-layer.is-active .peak-map-connector,.province-zone-link:focus .peak-map-connector{stroke:#0f62fe;opacity:1}
.province-zone-layer:hover .peak-map-pill rect,.province-zone-layer.is-active .peak-map-pill rect,.province-zone-link:focus .peak-map-pill rect{fill:#fdfdfc;stroke:#0f62fe}
.province-zone-layer:hover .peak-map-name,.province-zone-layer.is-active .peak-map-name,.province-zone-link:focus .peak-map-name{fill:#0f2745}
.province-zone-layer:hover .peak-map-alt,.province-zone-layer.is-active .peak-map-alt,.province-zone-link:focus .peak-map-alt{fill:#0f62fe}
.idx-map-note{margin-top:1rem;max-width:70ch;color:var(--cds-text-secondary)}
.idx-side-card.is-active{border-color:var(--cds-focus);box-shadow:inset 4px 0 0 var(--cds-focus);background:#fff}
.idx-side-card-info h3{font-size:1.05rem}
.idx-side-card-meta .cds-mono{font-size:.82rem!important}
@media (max-width:1280px){.peak-map-name{font-size:52px}.peak-map-alt{font-size:31px}}
@media (max-width:1024px){.idx-dual-layout{grid-template-columns:1fr}.idx-sidebar{max-height:none;border-right:none;border-bottom:1px solid var(--cds-border)}.idx-map-container{padding-top:1.2rem}.idx-map-shell{width:1120px}.peak-map-name{font-size:50px}.peak-map-alt{font-size:30px}}
@media (max-width:720px){.idx-sidebar{height:auto;max-height:40svh}.idx-map-shell{width:1020px}.peak-map-name{font-size:46px}.peak-map-alt{font-size:28px}}


/* TrekkingSierra v40: rediseño /techos/ — marcadores numerados, búsqueda y tooltip */
.techos-directory{background:linear-gradient(180deg,#f7faf7 0%,#eef3ed 60%,#e7eee7 100%);min-height:100vh}
.techos-directory main{padding:0;display:block}
.techos-page{max-width:1480px;margin:0 auto;padding:1.4rem 1.4rem 4rem}
.techos-hero{position:relative;margin-bottom:1.5rem;padding:1.6rem 1.8rem 1.7rem;border-radius:20px;background:linear-gradient(135deg,#163d2a 0%,#234735 45%,#2d6a48 100%);color:#fff;box-shadow:0 22px 44px -28px rgba(22,61,42,.55);overflow:hidden}
.techos-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 92% 12%,rgba(255,255,255,.18) 0,rgba(255,255,255,0) 45%);pointer-events:none}
.techos-hero-eyebrow{position:relative;display:inline-flex;align-items:center;gap:.45rem;padding:.32rem .8rem;border-radius:999px;background:rgba(255,255,255,.16);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#cce4d6}
.techos-hero h1{position:relative;margin:.7rem 0 .6rem;font-size:clamp(1.55rem,3vw,2.4rem);line-height:1.08;font-weight:850;letter-spacing:-.012em}
.techos-hero p{position:relative;margin:0;max-width:78ch;font-size:1.03rem;color:#dbece2}
.techos-stats{position:relative;display:flex;flex-wrap:wrap;gap:1.1rem 2.2rem;margin-top:1.1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.14)}
.techos-stat{display:flex;flex-direction:column;gap:.15rem}
.techos-stat strong{font-size:1.32rem;font-weight:850;color:#fff;line-height:1}
.techos-stat span{font-size:.74rem;color:#9bc7af;letter-spacing:.06em;text-transform:uppercase}
.techos-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:1.4rem;align-items:start}
.techos-map-card{position:relative;background:#fff;border-radius:20px;border:1px solid rgba(38,64,49,.10);box-shadow:0 24px 48px -32px rgba(22,61,42,.30);overflow:hidden}
.techos-map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 1rem;border-bottom:1px solid rgba(38,64,49,.08);background:#fbfdfb;flex-wrap:wrap}
.techos-map-legend{display:flex;align-items:center;gap:.6rem;color:#536258;font-size:.85rem}
.techos-map-legend-dot{display:inline-block;width:11px;height:11px;border-radius:50%;background:#2d704b;box-shadow:0 0 0 4px rgba(45,112,75,.18)}
.techos-map-meta{display:flex;align-items:baseline;gap:.45rem;color:#536258;font-size:.82rem}
.techos-map-meta strong{color:#172318;font-weight:800}
.techos-map-shell{position:relative;width:100%;background:radial-gradient(circle at 50% 38%,#fbfdfb 0,#f1f6f1 60%,#e6ede6 100%)}
.techos-map-svg{display:block;width:100%;height:auto;max-height:78vh;min-height:520px;overflow:visible}
.techos-map-base{opacity:.78;filter:saturate(.78) contrast(.95)}
.techos-marker-link{outline:none;text-decoration:none;color:inherit}
.techos-marker{cursor:pointer}
.techos-marker-hit{fill:rgba(0,0,0,.001);pointer-events:fill}
.techos-marker-halo{fill:rgba(45,112,75,.18);stroke:rgba(45,112,75,.45);stroke-width:3;vector-effect:non-scaling-stroke;opacity:0;transition:opacity .18s ease;pointer-events:none}
.techos-marker-pin{fill:#fff;stroke:#2d704b;stroke-width:5;vector-effect:non-scaling-stroke;filter:drop-shadow(0 6px 14px rgba(22,51,32,.30));transition:fill .18s ease,stroke .18s ease,r .18s ease;pointer-events:none}
.techos-marker-num{font-family:var(--font-sans);font-size:30px;font-weight:850;text-anchor:middle;dominant-baseline:central;fill:#1a3d2a;pointer-events:none;transition:fill .18s ease}
.techos-marker-name{font-family:var(--font-sans);font-size:44px;font-weight:800;letter-spacing:-.005em;text-anchor:middle;dominant-baseline:middle;fill:#16251a;paint-order:stroke fill;stroke:#fff;stroke-width:11;stroke-linejoin:round;stroke-linecap:round;pointer-events:none;transition:fill .18s ease}
.techos-marker-name-tight{font-size:38px;stroke-width:9}
.techos-marker-name-tiny{font-size:32px;stroke-width:8}
.techos-marker:hover .techos-marker-pin,.techos-marker.is-active .techos-marker-pin,.techos-marker-link:focus .techos-marker-pin{fill:#2d704b;stroke:#16321f}
.techos-marker:hover .techos-marker-num,.techos-marker.is-active .techos-marker-num,.techos-marker-link:focus .techos-marker-num{fill:#fff}
.techos-marker:hover .techos-marker-name,.techos-marker.is-active .techos-marker-name,.techos-marker-link:focus .techos-marker-name{fill:#0e2a1a;stroke-width:13}
.techos-marker:hover .techos-marker-halo,.techos-marker.is-active .techos-marker-halo,.techos-marker-link:focus .techos-marker-halo{opacity:1}
.techos-marker-link:focus-visible .techos-marker-pin{stroke:#0f62fe;stroke-width:7}
.techos-marker.is-dimmed{opacity:.20}
.techos-marker.is-dimmed:hover{opacity:1}
.techos-tooltip{position:absolute;top:0;left:0;pointer-events:none;background:#16251a;color:#fff;padding:.55rem .8rem;border-radius:12px;font-size:.85rem;line-height:1.25;box-shadow:0 18px 32px -14px rgba(0,0,0,.5);transform:translate(-50%,calc(-100% - 22px));opacity:0;visibility:hidden;transition:opacity .15s ease;z-index:5;white-space:nowrap;max-width:260px;will-change:transform,top,left}
.techos-tooltip.is-visible{opacity:1;visibility:visible}
.techos-tooltip span{display:block;color:#9bc7af;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;margin-bottom:.18rem}
.techos-tooltip strong{display:block;font-size:1rem;font-weight:800;letter-spacing:-.005em;color:#fff}
.techos-tooltip em{display:inline-block;font-style:normal;margin-top:.35rem;font-weight:700;color:#fff;background:rgba(155,199,175,.20);padding:.18rem .55rem;border-radius:999px;font-size:.74rem;letter-spacing:.04em}
.techos-tooltip::after{content:"";position:absolute;left:50%;bottom:-6px;transform:translateX(-50%) rotate(45deg);width:14px;height:14px;background:#16251a;border-radius:2px}
.techos-sidebar{position:sticky;top:1rem;background:#fff;border-radius:20px;border:1px solid rgba(38,64,49,.10);box-shadow:0 24px 48px -32px rgba(22,61,42,.30);max-height:calc(100vh - 2rem);display:flex;flex-direction:column;overflow:hidden}
.techos-sidebar-header{padding:1.05rem 1.1rem .8rem;border-bottom:1px solid rgba(38,64,49,.08);display:flex;flex-direction:column;gap:.65rem}
.techos-sidebar-header h2{margin:0;font-size:1.05rem;color:#16251a;font-weight:800;letter-spacing:-.005em}
.techos-search{position:relative}
.techos-search-input{width:100%;padding:.6rem .85rem .6rem 2.2rem;border:1px solid rgba(38,64,49,.18);border-radius:12px;background:#f7faf7;font-family:var(--font-sans);font-size:.92rem;color:#172318;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}
.techos-search-input:focus{outline:none;border-color:#2d704b;background:#fff;box-shadow:0 0 0 3px rgba(45,112,75,.16)}
.techos-search-icon{position:absolute;left:.7rem;top:50%;transform:translateY(-50%);width:16px;height:16px;color:#536258;pointer-events:none}
.techos-list{list-style:none;margin:0;padding:.5rem;overflow-y:auto;flex:1;scrollbar-width:thin;scrollbar-color:#bfd1c4 transparent}
.techos-list::-webkit-scrollbar{width:8px}
.techos-list::-webkit-scrollbar-thumb{background:#bfd1c4;border-radius:4px}
.techos-list>li{margin:0}
.techos-list>li+li{margin-top:.18rem}
.techos-list-empty{padding:1.6rem 1rem;text-align:center;color:#536258;font-size:.88rem;display:none}
.techos-list-empty.is-visible{display:block}
.techos-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.7rem;padding:.55rem .7rem;border-radius:12px;text-decoration:none;color:inherit;border:1px solid transparent;transition:background .14s ease,border-color .14s ease,transform .14s ease}
.techos-card:hover,.techos-card.is-active{background:#f3f8f2;border-color:rgba(45,112,75,.32);transform:translateX(2px)}
.techos-card.is-hidden{display:none}
.techos-card-num{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:#eaf1ea;color:#2d704b;font-size:.78rem;font-weight:850;flex-shrink:0;transition:background .14s ease,color .14s ease}
.techos-card:hover .techos-card-num,.techos-card.is-active .techos-card-num{background:#2d704b;color:#fff}
.techos-card-info{min-width:0}
.techos-card-info h3{margin:0;font-size:.94rem;font-weight:700;color:#16251a;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.techos-card-province{display:block;font-size:.74rem;color:#536258;letter-spacing:.02em;margin-top:.12rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.techos-card-alt{display:flex;align-items:baseline;font-family:var(--font-mono);font-size:.92rem;font-weight:800;color:#1a3d2a;flex-shrink:0}
.techos-card-alt small{font-size:.7rem;color:#536258;font-weight:600;margin-left:.12rem}
@media (max-width:1100px){.techos-layout{grid-template-columns:1fr}.techos-sidebar{position:static;max-height:none;order:2}.techos-list{max-height:55vh}.techos-map-card{order:1}}
@media (max-width:640px){.techos-page{padding:1rem .9rem 3rem}.techos-hero{padding:1.2rem 1.15rem 1.3rem;border-radius:16px}.techos-hero h1{font-size:1.45rem}.techos-stats{gap:.8rem 1.4rem}.techos-stat strong{font-size:1.1rem}.techos-map-svg{min-height:380px;max-height:62vh}.techos-marker-num{font-size:36px}.techos-marker-pin{stroke-width:6}.techos-tooltip{font-size:.78rem}}
@media (hover:none){.techos-marker-halo{opacity:.4}}


/* TrekkingSierra v42: marcadores con icono de montaña y altitud visible */
.techos-marker-pin,.techos-marker-num,.techos-marker-halo{display:none!important}
.techos-marker-icon{pointer-events:none}
.techos-marker-shadow{fill:rgba(22,51,32,.30)}
.techos-marker-glow{fill:rgba(45,112,75,.10);stroke:rgba(45,112,75,.42);stroke-width:3;vector-effect:non-scaling-stroke;opacity:0;transition:opacity .18s ease,fill .18s ease}
.techos-marker-base{fill:#2d704b;stroke:#16321f;stroke-width:4;stroke-linejoin:round;vector-effect:non-scaling-stroke;filter:drop-shadow(0 8px 14px rgba(22,51,32,.35));transition:fill .18s ease,stroke .18s ease}
.techos-marker-second{fill:#3f8f60;stroke:#16321f;stroke-width:4;stroke-linejoin:round;vector-effect:non-scaling-stroke;transition:fill .18s ease}
.techos-marker-snow{fill:#ffffff;stroke:#16321f;stroke-width:3;stroke-linejoin:round;vector-effect:non-scaling-stroke;transition:fill .18s ease}
.techos-marker-name{font-family:var(--font-sans);font-size:70px;font-weight:850;letter-spacing:-.005em;text-anchor:middle;dominant-baseline:middle;fill:#16251a;paint-order:stroke fill;stroke:#fff;stroke-width:16;stroke-linejoin:round;stroke-linecap:round;pointer-events:none;transition:fill .18s ease,stroke-width .18s ease}
.techos-marker-name-tight{font-size:58px;stroke-width:13}
.techos-marker-name-tiny{font-size:48px;stroke-width:11}
.techos-marker-alt{font-family:var(--font-mono);font-size:48px;font-weight:800;letter-spacing:.01em;text-anchor:middle;dominant-baseline:middle;fill:#2d704b;paint-order:stroke fill;stroke:#fff;stroke-width:13;stroke-linejoin:round;stroke-linecap:round;pointer-events:none;transition:fill .18s ease,stroke-width .18s ease}
.techos-marker-alt-tight{font-size:40px;stroke-width:11}
.techos-marker-alt-tiny{font-size:34px;stroke-width:10}
.techos-marker:hover .techos-marker-base,.techos-marker.is-active .techos-marker-base,.techos-marker-link:focus .techos-marker-base{fill:#1f5235}
.techos-marker:hover .techos-marker-second,.techos-marker.is-active .techos-marker-second,.techos-marker-link:focus .techos-marker-second{fill:#327050}
.techos-marker:hover .techos-marker-glow,.techos-marker.is-active .techos-marker-glow,.techos-marker-link:focus .techos-marker-glow{opacity:1;fill:rgba(45,112,75,.18)}
.techos-marker:hover .techos-marker-name,.techos-marker.is-active .techos-marker-name,.techos-marker-link:focus .techos-marker-name{fill:#0e2a1a;stroke-width:16}
.techos-marker:hover .techos-marker-alt,.techos-marker.is-active .techos-marker-alt,.techos-marker-link:focus .techos-marker-alt{fill:#1f5235}

/* Tipografía y panel del hero/listado más generosos */
.techos-hero h1{font-size:clamp(1.8rem,3.4vw,2.7rem);line-height:1.1}
.techos-hero p{font-size:1.1rem;max-width:74ch;line-height:1.55}
.techos-stat strong{font-size:1.5rem}
.techos-stat span{font-size:.78rem}
.techos-map-legend{font-size:.95rem}
.techos-map-meta{font-size:.92rem}
.techos-sidebar-header h2{font-size:1.18rem}
.techos-search-input{font-size:1rem;padding:.7rem 1rem .7rem 2.4rem}
.techos-search-icon{width:18px;height:18px;left:.85rem}
.techos-card{padding:.7rem .85rem;gap:.85rem}
.techos-card-num{width:32px;height:32px;font-size:.86rem}
.techos-card-info h3{font-size:1.04rem}
.techos-card-province{font-size:.82rem}
.techos-card-alt{font-size:1.04rem}
.techos-card-alt small{font-size:.74rem;margin-left:.18rem}
.techos-tooltip{font-size:.96rem;padding:.7rem .95rem}
.techos-tooltip span{font-size:.74rem}
.techos-tooltip strong{font-size:1.1rem}
.techos-tooltip em{font-size:.82rem;padding:.22rem .65rem}

@media (max-width:640px){
  .techos-marker-name{font-size:58px;stroke-width:13}
  .techos-marker-alt{font-size:40px;stroke-width:10}
  .techos-marker-name-tight{font-size:48px}
  .techos-marker-name-tiny{font-size:40px}
  .techos-card-info h3{font-size:1rem}
  .techos-card-alt{font-size:1rem}
}


/* TrekkingSierra v44: mapa estable, tooltip legible y hover por provincia */
.techos-map-svg{min-height:560px;max-height:76vh}
.techos-map-base{opacity:.84;filter:saturate(.7) contrast(.98)}
.techos-province-hit{fill:#000;fill-opacity:.001;stroke:none;pointer-events:fill}
.techos-province-highlight{
  fill:#2d704b;
  fill-opacity:0;
  stroke:#24543a;
  stroke-opacity:0;
  stroke-width:5;
  fill-rule:evenodd;
  clip-rule:evenodd;
  vector-effect:non-scaling-stroke;
  opacity:1;
  pointer-events:none;
  transition:fill-opacity .16s ease,stroke-opacity .16s ease;
}
.techos-marker-icon{opacity:.96;transition:opacity .16s ease}
.techos-marker-shadow{fill:rgba(22,51,32,.18)}
.techos-marker-glow{stroke-width:2;fill:rgba(45,112,75,.08)}
.techos-marker-base{fill:#24543a;stroke:#102418;stroke-width:3.2;filter:drop-shadow(0 5px 9px rgba(22,51,32,.26))}
.techos-marker-second{fill:#3b8058;stroke:#102418;stroke-width:3.2}
.techos-marker-snow{stroke-width:2.4}
.techos-marker:hover .techos-province-highlight,
.techos-marker.is-active .techos-province-highlight,
.techos-marker-link:focus .techos-province-highlight{
  fill-opacity:.20;
  stroke-opacity:.75;
}
.techos-marker:hover .techos-marker-glow,
.techos-marker.is-active .techos-marker-glow,
.techos-marker-link:focus .techos-marker-glow{opacity:0}
.techos-marker:hover .techos-marker-base,
.techos-marker.is-active .techos-marker-base,
.techos-marker-link:focus .techos-marker-base{fill:#24543a;stroke:#102418}
.techos-marker:hover .techos-marker-second,
.techos-marker.is-active .techos-marker-second,
.techos-marker-link:focus .techos-marker-second{fill:#3b8058;stroke:#102418}
.techos-marker-label{
  opacity:0;
  pointer-events:none;
  transition:opacity .14s ease;
}
.techos-marker-label-bg{
  fill:rgba(255,255,255,.96);
  stroke:rgba(36,84,58,.58);
  stroke-width:3;
  vector-effect:non-scaling-stroke;
  filter:drop-shadow(0 14px 24px rgba(15,35,23,.18));
}
.techos-marker-name,
.techos-marker-alt{
  display:block!important;
  opacity:1!important;
  font-family:var(--font-sans);
  text-anchor:middle;
  dominant-baseline:middle;
  pointer-events:none;
  paint-order:stroke fill;
  stroke:#fff;
  stroke-linejoin:round;
  stroke-linecap:round;
  transform:none!important;
}
.techos-marker-name{
  font-size:62px;
  font-weight:850;
  fill:#122519;
  stroke-width:13;
}
.techos-marker-name-tight{font-size:54px;stroke-width:11}
.techos-marker-name-tiny{font-size:46px;stroke-width:9}
.techos-marker-alt{
  font-family:var(--font-mono);
  font-size:44px;
  font-weight:800;
  fill:#2d704b;
  stroke-width:10;
}
.techos-marker-alt-tight{font-size:38px;stroke-width:9}
.techos-marker-alt-tiny{font-size:32px;stroke-width:8}
.techos-marker:hover .techos-marker-label,
.techos-marker.is-active .techos-marker-label,
.techos-marker-link:focus .techos-marker-label{
  opacity:1;
}
.techos-marker:hover .techos-marker-icon,
.techos-marker.is-active .techos-marker-icon,
.techos-marker-link:focus .techos-marker-icon{opacity:1}
.techos-marker.is-dimmed .techos-marker-icon{opacity:.22}
.techos-marker.is-dimmed .techos-marker-label{opacity:0}
.techos-tooltip{
  display:none!important;
}
.techos-card:hover,
.techos-card.is-active{background:#eef6ef}
@media (max-width:1100px){.techos-map-svg{min-height:500px;max-height:none}}
@media (max-width:640px){
  .techos-map-svg{min-height:390px}
  .techos-marker-icon{opacity:1}
  .techos-marker-label{display:none}
}


/* TrekkingSierra v50 — /techos/ rediseñado al lenguaje visual del resto del sitio.
   Tipografías IBM Plex, paleta Carbon (#161616 / #f4f4f4 / #0f62fe), planos limpios,
   mapa grande y marcadores claros. Se usan clases con prefijo .tx- para no chocar
   con CSS heredada del v40/v42/v44. */

/* Reset background del directorio para que coincida con el resto del sitio */
.techos-directory{background:var(--cds-background);min-height:100vh}
.techos-directory main{padding:0;display:block;background:var(--cds-background)}

/* Wrapper general */
.tx-page{max-width:1440px;margin:0 auto;padding:1.5rem 1.5rem 4rem;font-family:var(--font-sans);color:var(--cds-text-primary)}

/* Breadcrumb */
.tx-page .breadcrumb{margin-bottom:1.25rem;font-size:.9rem;color:var(--cds-text-secondary);display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.tx-page .breadcrumb a{color:var(--cds-text-secondary)}
.tx-page .breadcrumb a:hover{color:var(--cds-text-primary);text-decoration:underline}
.tx-page .breadcrumb span[aria-hidden]{color:var(--cds-border)}

/* Hero alineado al estilo "section-header" del resto del sitio */
.tx-hero{max-width:1100px;margin:0 0 2.25rem}
.tx-hero .cds-label{margin-bottom:.6rem}
.tx-hero h1{
  font-size:clamp(2.25rem,5.5vw,4rem);
  line-height:1.04;
  font-weight:300;
  letter-spacing:-.035em;
  margin:0 0 1.1rem;
  color:var(--cds-text-primary);
}
.tx-hero p{
  font-size:clamp(1.05rem,1.4vw,1.18rem);
  line-height:1.65;
  color:var(--cds-text-secondary);
  font-weight:300;
  max-width:72ch;
  margin:0;
}
.tx-hero-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.5rem}
.tx-hero-media{
  margin:2rem 0 1.5rem;
  width:100%;
  max-width:1100px;
  background:#f4f4f4;
  border:1px solid var(--cds-border);
  overflow:hidden;
}
.tx-hero-image{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:16/9;
  object-fit:cover;
}

/* Stats: tira plana al estilo Carbon (sin border-radius, separadores 1px) */
.tx-stats{
  display:flex;
  flex-wrap:wrap;
  gap:1px;
  margin:2rem 0 0;
  background:var(--cds-border);
  border:1px solid var(--cds-border);
}
.tx-stat{
  flex:1 1 180px;
  background:var(--cds-layer);
  padding:1.25rem 1.4rem;
  display:flex;
  flex-direction:column;
  gap:.4rem;
}
.tx-stat-value{
  font-family:var(--font-mono);
  font-size:1.85rem;
  font-weight:400;
  line-height:1.05;
  color:var(--cds-text-primary);
  letter-spacing:-.01em;
}
.tx-stat-label{
  font-family:var(--font-mono);
  font-size:.72rem;
  letter-spacing:.32px;
  text-transform:uppercase;
  color:var(--cds-text-secondary);
}
.tx-stat-meta{
  font-size:.92rem;color:var(--cds-text-secondary);line-height:1.35;margin-top:.1rem;
}

/* Layout: mapa + sidebar */
.tx-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(320px,400px);
  gap:1.5rem;
  align-items:start;
}
@media (max-width:1100px){
  .tx-layout{grid-template-columns:1fr}
}

/* Map panel */
.tx-map-panel{
  background:var(--cds-layer);
  border:1px solid var(--cds-border);
  position:relative;
  display:flex;
  flex-direction:column;
}
.tx-map-toolbar{
  display:flex;
  flex-wrap:wrap;
  gap:1rem;
  padding:.85rem 1.25rem;
  border-bottom:1px solid var(--cds-border);
  align-items:center;
  justify-content:space-between;
  background:var(--cds-layer);
}
.tx-map-toolbar .cds-label{margin:0}
.tx-map-toolbar-meta{font-family:var(--font-mono);font-size:.78rem;color:var(--cds-text-secondary);letter-spacing:.4px;text-transform:uppercase}
.tx-map-toolbar-meta strong{color:var(--cds-text-primary);font-weight:600;font-size:.9rem;letter-spacing:0;text-transform:none;margin-right:.35rem}

.tx-map-shell{position:relative;width:100%;background:#fafbfc;flex:1}
.tx-map-svg{
  display:block;
  width:100%;
  height:auto;
  min-height:640px;
  max-height:82vh;
  overflow:visible;
}
@media (max-width:1100px){.tx-map-svg{min-height:520px;max-height:none}}
@media (max-width:640px){.tx-map-svg{min-height:380px}}
.tx-map-base{opacity:.95;filter:saturate(.6) contrast(.96)}

/* Map markers — pin azul Carbon con icono blanco de montaña */
.tx-marker-link{outline:none;text-decoration:none;color:inherit}
.tx-marker-link:focus-visible{outline:none}
.tx-marker{cursor:pointer}
.tx-marker-hit{fill:rgba(0,0,0,.001);pointer-events:fill}

.tx-marker-halo{
  fill:rgba(15,98,254,.10);
  stroke:rgba(15,98,254,.45);
  stroke-width:4;
  vector-effect:non-scaling-stroke;
  opacity:0;
  transition:opacity .18s ease;
  pointer-events:none;
}
.tx-marker-shadow{fill:rgba(22,28,46,.18);pointer-events:none}
.tx-marker-pin{
  fill:#0f62fe;
  stroke:#fff;
  stroke-width:8;
  vector-effect:non-scaling-stroke;
  filter:drop-shadow(0 8px 16px rgba(15,98,254,.32));
  transition:fill .18s ease;
  pointer-events:none;
}
.tx-marker-icon{
  fill:#fff;
  stroke:none;
  pointer-events:none;
}

/* Etiqueta del marker (visible en hover/focus/active) */
.tx-marker-label{opacity:0;pointer-events:none;transition:opacity .15s ease}
.tx-marker-label-bg{
  fill:#fff;
  stroke:#0f62fe;
  stroke-width:5;
  vector-effect:non-scaling-stroke;
  filter:drop-shadow(0 14px 28px rgba(22,28,46,.20));
}
.tx-marker-name,
.tx-marker-alt{
  font-family:var(--font-sans);
  text-anchor:middle;
  dominant-baseline:middle;
  paint-order:stroke fill;
  stroke:#fff;
  stroke-linejoin:round;
  stroke-linecap:round;
  pointer-events:none;
}
.tx-marker-name{
  font-size:60px;
  font-weight:600;
  fill:#161616;
  stroke-width:0;
  letter-spacing:-.005em;
}
.tx-marker-name-tight{font-size:50px}
.tx-marker-name-tiny{font-size:42px}
.tx-marker-alt{
  font-family:var(--font-mono);
  font-size:46px;
  font-weight:500;
  fill:#0f62fe;
  stroke-width:0;
}
.tx-marker-alt-tight{font-size:40px}
.tx-marker-alt-tiny{font-size:34px}

.tx-marker:hover .tx-marker-halo,
.tx-marker.is-active .tx-marker-halo,
.tx-marker-link:focus-visible .tx-marker-halo{opacity:1}
.tx-marker:hover .tx-marker-pin,
.tx-marker.is-active .tx-marker-pin,
.tx-marker-link:focus-visible .tx-marker-pin{fill:#0353e9}
.tx-marker:hover .tx-marker-label,
.tx-marker.is-active .tx-marker-label,
.tx-marker-link:focus-visible .tx-marker-label{opacity:1}
.tx-marker.is-dimmed{opacity:.18}
.tx-marker.is-dimmed:hover{opacity:1}

/* Sidebar */
.tx-side{
  background:var(--cds-layer);
  border:1px solid var(--cds-border);
  position:sticky;
  top:6rem;
  display:flex;
  flex-direction:column;
  max-height:calc(100vh - 7rem);
}
@media (max-width:1100px){
  .tx-side{position:static;max-height:none;order:2}
  .tx-map-panel{order:1}
}
.tx-side-header{
  padding:1rem 1.2rem .9rem;
  border-bottom:1px solid var(--cds-border);
  display:flex;
  flex-direction:column;
  gap:.85rem;
}
.tx-side-header h2{
  font-size:1.05rem;
  margin:0;
  font-weight:600;
  letter-spacing:-.005em;
  color:var(--cds-text-primary);
}
.tx-search{position:relative}
.tx-search-icon{
  position:absolute;left:.75rem;top:50%;transform:translateY(-50%);
  width:16px;height:16px;color:var(--cds-text-secondary);pointer-events:none;
}
.tx-search-input{
  width:100%;
  padding:.6rem .9rem .6rem 2.25rem;
  border:1px solid var(--cds-border);
  background:#fff;
  font-family:var(--font-sans);
  font-size:.95rem;
  color:var(--cds-text-primary);
  transition:border-color .15s ease,box-shadow .15s ease;
}
.tx-search-input:focus{
  outline:none;
  border-color:var(--cds-focus);
  box-shadow:0 0 0 2px rgba(15,98,254,.18);
}

/* Sort buttons (filtro de orden) */
.tx-sort{display:flex;gap:.35rem;flex-wrap:wrap}
.tx-sort button{
  appearance:none;
  background:transparent;
  border:1px solid var(--cds-border);
  padding:.4rem .75rem;
  font-family:var(--font-mono);
  font-size:.7rem;
  letter-spacing:.4px;
  text-transform:uppercase;
  color:var(--cds-text-secondary);
  cursor:pointer;
  transition:color .15s ease,border-color .15s ease,background .15s ease;
}
.tx-sort button:hover{color:var(--cds-text-primary);border-color:var(--cds-text-secondary)}
.tx-sort button.is-active{color:var(--cds-focus);border-color:var(--cds-focus);background:#eaf1ff}

/* Lista lateral */
.tx-list{
  list-style:none;
  margin:0;
  padding:.4rem;
  overflow-y:auto;
  flex:1;
  scrollbar-width:thin;
  scrollbar-color:var(--cds-border) transparent;
}
.tx-list::-webkit-scrollbar{width:6px}
.tx-list::-webkit-scrollbar-thumb{background:var(--cds-border);border-radius:3px}
.tx-list>li{margin:0}
.tx-list>li+li{margin-top:1px}

.tx-card{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:.85rem;
  padding:.7rem .9rem;
  text-decoration:none;
  color:inherit;
  border-left:3px solid transparent;
  background:transparent;
  transition:background .14s ease,border-color .14s ease;
}
.tx-card:hover,.tx-card.is-active{
  background:#f4f4f4;
  border-left-color:var(--cds-focus);
  text-decoration:none;
}
.tx-card.is-hidden{display:none}
.tx-card-num{
  display:inline-flex;align-items:center;justify-content:center;
  width:30px;height:30px;
  border:1px solid var(--cds-border);
  font-family:var(--font-mono);
  font-size:.74rem;
  font-weight:600;
  color:var(--cds-text-secondary);
  background:#fff;
  flex-shrink:0;
  transition:background .14s ease,color .14s ease,border-color .14s ease;
}
.tx-card:hover .tx-card-num,
.tx-card.is-active .tx-card-num{background:var(--cds-focus);color:#fff;border-color:var(--cds-focus)}
.tx-card-info{min-width:0}
.tx-card-info h3{
  margin:0;
  font-size:.96rem;
  font-weight:600;
  color:var(--cds-text-primary);
  line-height:1.25;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.tx-card-prov{
  display:block;
  font-family:var(--font-mono);
  font-size:.7rem;
  letter-spacing:.4px;
  text-transform:uppercase;
  color:var(--cds-text-secondary);
  margin-top:.18rem;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.tx-card-alt{
  font-family:var(--font-mono);
  font-size:.92rem;
  font-weight:600;
  color:var(--cds-text-primary);
  white-space:nowrap;
  flex-shrink:0;
}
.tx-card-alt small{
  font-size:.7rem;color:var(--cds-text-secondary);font-weight:400;margin-left:.15rem;
}
.tx-list-empty{
  padding:1.6rem 1rem;text-align:center;color:var(--cds-text-secondary);font-size:.9rem;display:none;
}
.tx-list-empty.is-visible{display:block}

/* Secciones SEO bajo el mapa */
.tx-section{margin-top:3.5rem;max-width:1100px}
.tx-section .cds-label{margin-bottom:.5rem}
.tx-section h2{
  font-size:clamp(1.65rem,3.2vw,2.4rem);
  font-weight:300;
  letter-spacing:-.025em;
  line-height:1.1;
  margin:0 0 1.1rem;
  color:var(--cds-text-primary);
}
.tx-section p{font-size:1.05rem;line-height:1.66;color:var(--cds-text-secondary);max-width:72ch;font-weight:300;margin:0 0 1.1rem}
.tx-section p:last-child{margin-bottom:0}

/* Cuadrícula de buckets por altitud */
.tx-buckets{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));
  gap:1px;
  background:var(--cds-border);
  border:1px solid var(--cds-border);
  margin-top:1.5rem;
}
.tx-bucket{background:var(--cds-layer);padding:1.4rem 1.4rem 1.5rem;display:flex;flex-direction:column;gap:.85rem}
.tx-bucket-head{display:flex;justify-content:space-between;align-items:baseline;gap:.6rem;border-bottom:1px solid var(--cds-border);padding-bottom:.7rem}
.tx-bucket-head h3{
  font-size:1.1rem;font-weight:600;margin:0;letter-spacing:-.005em;color:var(--cds-text-primary);
}
.tx-bucket-head .tx-bucket-count{
  font-family:var(--font-mono);
  font-size:.78rem;
  color:var(--cds-text-secondary);
  background:#f4f4f4;
  padding:.18rem .55rem;
  letter-spacing:.4px;
}
.tx-bucket-desc{font-size:.92rem;color:var(--cds-text-secondary);margin:0;line-height:1.5;font-weight:400}
.tx-bucket-list{list-style:none;margin:0;padding:0;display:grid;gap:.3rem}
.tx-bucket-list a{
  display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;
  padding:.6rem .8rem;
  background:#fafbfc;
  border:1px solid var(--cds-border);
  border-left:3px solid transparent;
  text-decoration:none;
  color:var(--cds-text-primary);
  font-size:.94rem;
  transition:border-color .14s ease,background .14s ease;
}
.tx-bucket-list a:hover{
  border-color:var(--cds-focus);
  border-left-color:var(--cds-focus);
  background:#fff;
  text-decoration:none;
}
.tx-bucket-list a strong{font-weight:600;color:var(--cds-text-primary);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tx-bucket-list a span{font-family:var(--font-mono);font-size:.78rem;color:var(--cds-text-secondary);flex-shrink:0;letter-spacing:.4px}
.tx-bucket-list a:hover span{color:var(--cds-focus)}

/* FAQ con <details> */
.tx-faq{margin-top:3.5rem}
.tx-faq-list{margin-top:1.5rem;border-top:1px solid var(--cds-border);background:var(--cds-layer)}
.tx-faq-item{border-bottom:1px solid var(--cds-border)}
.tx-faq-item summary{
  list-style:none;cursor:pointer;
  padding:1.1rem 1.4rem;
  font-size:1.02rem;font-weight:500;
  display:flex;justify-content:space-between;gap:1rem;align-items:center;
  color:var(--cds-text-primary);
  transition:background .14s ease;
}
.tx-faq-item summary::-webkit-details-marker{display:none}
.tx-faq-item summary::after{
  content:"+";
  font-family:var(--font-mono);
  font-size:1.4rem;
  font-weight:400;
  color:var(--cds-focus);
  transition:transform .2s ease;
  flex-shrink:0;
}
.tx-faq-item[open] summary::after{transform:rotate(45deg)}
.tx-faq-item summary:hover{background:#f4f4f4}
.tx-faq-item-content{padding:0 1.4rem 1.3rem;color:var(--cds-text-secondary);font-size:.98rem;line-height:1.66;max-width:72ch}
.tx-faq-item-content p{margin:0 0 .8rem}
.tx-faq-item-content p:last-child{margin-bottom:0}

/* CTA final */
.tx-cta{
  margin-top:3.5rem;background:#161616;color:#fff;padding:clamp(2rem,4vw,3rem) clamp(1.5rem,3vw,2.5rem);
  display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem;
}
.tx-cta h2{font-size:clamp(1.4rem,2.6vw,1.85rem);font-weight:400;margin:0 0 .55rem;color:#fff;letter-spacing:-.01em;line-height:1.2}
.tx-cta p{margin:0;color:#c6c6c6;max-width:55ch;font-size:1rem;line-height:1.55}
.tx-cta .btn-primary,.tx-cta .btn-secondary{flex-shrink:0}
.tx-cta .btn-secondary{background:transparent;border-color:rgba(255,255,255,.4);color:#fff}
.tx-cta .btn-secondary:hover{background:rgba(255,255,255,.08);border-color:#fff;color:#fff}

@media (max-width:640px){
  .tx-page{padding:1rem 1rem 3rem}
  .tx-stats{gap:0;flex-direction:column}
  .tx-stat{flex:1 1 100%;border-bottom:1px solid var(--cds-border)}
  .tx-stat:last-child{border-bottom:0}
  .tx-hero-media{margin:1.4rem 0 1rem}
  .tx-section{margin-top:2.5rem}
  .tx-cta{flex-direction:column;align-items:flex-start}
}


/* TrekkingSierra v51: badge "Frontera" para techos compartidos por dos provincias */
.tx-card-frontera{
  display:inline-block;
  margin-left:.4rem;
  padding:.05rem .4rem;
  font-family:var(--font-mono);
  font-size:.6rem;
  letter-spacing:.4px;
  text-transform:uppercase;
  background:#eaf1ff;
  color:var(--cds-focus);
  border:1px solid rgba(15,98,254,.32);
  vertical-align:middle;
  white-space:nowrap;
}
.tx-bucket-list a small{
  font-family:var(--font-mono);
  font-size:.7rem;
  font-weight:400;
  color:var(--cds-text-secondary);
  margin-left:.45rem;
  letter-spacing:.4px;
}
.tx-bucket-list a:hover small{color:var(--cds-text-primary)}


/* TrekkingSierra v52: zoom/pan móvil, labels táctiles, reduced motion y dark mode */
.tx-map-shell{overflow:hidden}
.tx-map-viewport{will-change:transform}
.tx-map-svg{overflow:hidden;touch-action:none}
.tx-map-controls{
  position:absolute;
  right:.75rem;
  bottom:.75rem;
  z-index:7;
  display:none;
  align-items:center;
  gap:.35rem;
  padding:.35rem;
  background:rgba(255,255,255,.92);
  border:1px solid var(--cds-border);
  box-shadow:0 12px 28px rgba(0,0,0,.16);
  backdrop-filter:blur(8px);
}
.tx-map-control{
  appearance:none;
  border:1px solid var(--cds-border);
  background:var(--cds-layer);
  color:var(--cds-text-primary);
  min-width:42px;
  height:42px;
  padding:0 .75rem;
  font-family:var(--font-mono);
  font-size:1.25rem;
  font-weight:600;
  line-height:1;
  cursor:pointer;
}
.tx-map-control:hover,
.tx-map-control:focus-visible{
  outline:none;
  border-color:var(--cds-focus);
  color:var(--cds-focus);
}
.tx-map-control-reset{
  min-width:64px;
  font-size:.72rem;
  letter-spacing:.4px;
  text-transform:uppercase;
}
.tx-filter-toggle{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  font-family:var(--font-mono);
  font-size:.72rem;
  letter-spacing:.4px;
  text-transform:uppercase;
  color:var(--cds-text-secondary);
  cursor:pointer;
}
.tx-filter-toggle input{
  accent-color:var(--cds-focus);
  width:16px;
  height:16px;
}
.tx-card.is-dimmed{opacity:.34}
.tx-list>li.is-filter-hidden,
.tx-marker.is-filter-hidden{display:none}

@media (max-width:640px){
  .tx-map-controls{display:flex}
  .tx-map-shell{min-height:380px}
  .tx-map-svg{min-height:420px;max-height:70vh}
}

@media (hover:none){
  .tx-marker:hover .tx-marker-halo{opacity:0}
  .tx-marker:hover .tx-marker-pin{fill:#0f62fe}
  .tx-marker:hover .tx-marker-label{opacity:0}
  .tx-marker.is-active .tx-marker-halo,
  .tx-marker-link:focus-visible .tx-marker-halo{opacity:1}
  .tx-marker.is-active .tx-marker-pin,
  .tx-marker-link:focus-visible .tx-marker-pin{fill:#0353e9}
  .tx-marker.is-active .tx-marker-label,
  .tx-marker-link:focus-visible .tx-marker-label{opacity:1}
  .tx-marker.is-dimmed:hover{opacity:.18}
}

@media (prefers-reduced-motion: reduce){
  .tx-marker-halo,
  .tx-marker-label,
  .tx-marker-pin,
  .tx-card,
  .tx-sort button,
  .tx-search-input,
  .tx-faq-item summary::after{
    transition:none;
    animation:none;
  }
}

@media (prefers-color-scheme: dark){
  :root{
    color-scheme:dark;
    --cds-background:#161616;
    --cds-layer:#262626;
    --cds-text-primary:#f4f4f4;
    --cds-text-secondary:#c6c6c6;
    --cds-link-primary:#78a9ff;
    --cds-border:#393939;
    --cds-focus:#78a9ff;
  }
  .site-shell-header,
  .site-nav,
  .nav-dropdown{background:#262626}
  .nav-screen{background:rgba(0,0,0,.62)}
  .tx-map-shell{background:#161616}
  .tx-map-base{opacity:.86;filter:saturate(.55) contrast(.95) brightness(.78)}
  .tx-map-controls{background:rgba(38,38,38,.92);box-shadow:0 12px 28px rgba(0,0,0,.36)}
  .tx-search-input,
  .tx-card-num,
  .tx-bucket-list a,
  .tx-bucket-head .tx-bucket-count{background:#262626}
  .tx-card:hover,
  .tx-card.is-active,
  .tx-faq-item summary:hover,
  .tx-bucket-list a:hover{background:#393939}
  .tx-sort button.is-active,
  .tx-card-frontera{background:rgba(120,169,255,.16)}
  .tx-marker-pin{stroke:#262626}
  .tx-marker-label-bg{fill:#262626;stroke:#78a9ff;filter:drop-shadow(0 14px 28px rgba(0,0,0,.55))}
  .tx-marker-name{fill:#f4f4f4;stroke:#262626}
  .tx-marker-alt{fill:#78a9ff;stroke:#262626}
  .tx-cta{background:#0f0f0f}
}


/* TrekkingSierra v57: legibilidad, contraste y escala de texto */
:root{
  color-scheme:light;
  --cds-background:#f7f8f8;
  --cds-layer:#ffffff;
  --cds-layer-subtle:#f1f3f4;
  --cds-text-primary:#161616;
  --cds-text-secondary:#393939;
  --cds-text-muted:#525252;
  --cds-link-primary:#0043ce;
  --cds-focus:#0043ce;
  --cds-border:#c8ced0;
}
html{font-size:17px;color-scheme:light}
body{
  background:var(--cds-background);
  color:var(--cds-text-primary);
  font-size:1rem;
  line-height:1.62;
  text-rendering:optimizeLegibility;
}
a{color:var(--cds-link-primary)}
p,li{line-height:1.72}
h1,h2,h3,h4,
.home-hero-copy h1,
.guide-hero h1,
.guide-article-header h1,
.static-hero h1,
.section-header h1,
.tx-hero h1,
.tx-section h2{
  letter-spacing:0;
}

.cds-display-1{font-size:clamp(2.45rem,5.2vw,4.15rem);line-height:1.08;font-weight:400}
.cds-heading-4{font-size:clamp(1.7rem,2.6vw,2.25rem);line-height:1.18;font-weight:500}
.cds-heading-3{font-size:1.48rem;line-height:1.35;font-weight:500}
.cds-body-long-2{font-size:1.22rem;line-height:1.76;font-weight:400;color:var(--cds-text-primary)}
.cds-body-long-1{font-size:1.12rem;line-height:1.76;font-weight:400;color:var(--cds-text-primary)}
.cds-label{font-size:.82rem;line-height:1.35;color:var(--cds-text-muted);font-weight:600}
.cds-back-link{font-size:.96rem;color:var(--cds-text-secondary)}
.cds-data-value{font-size:1.24rem}
.cds-data-value-compact{font-size:1.08rem}
.cds-card{border-color:var(--cds-border)}
.cds-card p{font-size:1.07rem;line-height:1.68;color:var(--cds-text-primary)}
.cds-card-link{font-size:1rem}
.cds-accordion-header{font-size:1.13rem;color:var(--cds-text-primary)}
.cds-accordion-content{font-size:1.07rem;line-height:1.74;color:var(--cds-text-primary)}
.route-choice{font-size:1.05rem;line-height:1.5;color:var(--cds-text-primary)}
.cds-route-panel p,
.cds-route-panel li{font-size:1.1rem;line-height:1.76;color:var(--cds-text-primary)}
.cds-tag{font-size:.82rem}

.site-shell-header,
.site-nav,
.nav-dropdown{background:#ffffff}
.site-nav-link{font-size:1.02rem}
.nav-dropdown a{font-size:1rem}
.site-section{padding:clamp(2.25rem,4vw,3.5rem) 1.5rem}
.section-header{max-width:980px}
.section-header h1,
.section-header h2{line-height:1.12;font-weight:500}

.home-hero-v2:before{
  background:linear-gradient(90deg,rgba(0,0,0,.84) 0%,rgba(0,0,0,.62) 50%,rgba(0,0,0,.28) 100%);
}
.home-hero-copy h1{font-weight:400;line-height:.98}
.home-hero-copy p{
  color:#ffffff;
  font-size:clamp(1.18rem,1.8vw,1.42rem);
  line-height:1.68;
  font-weight:400;
  text-shadow:0 1px 2px rgba(0,0,0,.28);
}
.home-feature-panel{background:#ffffff;color:var(--cds-text-primary)}
.home-feature-panel p,
.visual-card-body p,
.guide-card p,
.site-card p,
.empty-guides,
.empty-guides p{
  color:var(--cds-text-primary);
  font-size:1.08rem;
  line-height:1.68;
  font-weight:400;
}
.home-stat strong{font-weight:500}
.visual-card-body h2{font-weight:500;line-height:1.16}
.visual-card strong,
.guide-card-footer{font-size:1.02rem}
.guide-card h2,
.guide-card h3{font-size:1.34rem;line-height:1.28}

.guide-hero p{
  color:#f4f4f4;
  font-size:1.24rem;
  line-height:1.68;
  font-weight:400;
}
.guide-hero h1,
.guide-article-header h1{font-weight:400;line-height:1.06}
.guide-meta{color:var(--cds-text-muted);font-size:1rem}
.guide-article,
.guide-card,
.visual-card,
.site-card,
.static-body{background:#ffffff;border-color:var(--cds-border)}
.guide-article-header .cds-body-long-1{color:var(--cds-text-primary)}
.guide-content{font-size:1rem}
.guide-content p,
.guide-content li{
  font-size:1.16rem;
  line-height:1.82;
  color:var(--cds-text-primary);
  font-weight:400;
}
.guide-content h2{font-size:clamp(1.95rem,3vw,2.75rem);font-weight:500;line-height:1.16}
.guide-content h3{font-size:1.58rem;line-height:1.25}
.guide-figure figcaption{color:var(--cds-text-muted);font-size:1rem;line-height:1.5}

.static-hero h1{font-weight:500;line-height:1.08;max-width:16ch}
.static-hero p{
  color:var(--cds-text-primary);
  font-size:1.24rem;
  line-height:1.72;
  font-weight:400;
}
.static-body{box-shadow:0 1px 0 rgba(22,22,22,.03)}
.static-body h2{font-size:clamp(1.8rem,2.6vw,2.35rem);font-weight:500;line-height:1.22}
.static-body h3{font-size:1.5rem;line-height:1.3;font-weight:600}
.static-body p,
.static-body li{
  font-size:1.13rem;
  line-height:1.84;
  color:var(--cds-text-primary);
  font-weight:400;
}
.breadcrumb,
.breadcrumb a,
.tx-page .breadcrumb,
.tx-page .breadcrumb a{color:var(--cds-text-muted);font-size:.96rem}

.tx-hero h1{font-weight:500;line-height:1.08}
.tx-hero p{
  font-size:clamp(1.14rem,1.3vw,1.26rem);
  line-height:1.72;
  color:var(--cds-text-primary);
  font-weight:400;
}
.tx-stat-label,
.tx-stat-meta,
.tx-map-toolbar-meta,
.tx-filter-toggle,
.tx-card-prov,
.tx-card-alt small,
.tx-bucket-head .tx-bucket-count,
.tx-bucket-list a span,
.tx-list-empty{color:var(--cds-text-muted)}
.tx-stat-label,
.tx-filter-toggle,
.tx-sort button{font-size:.78rem}
.tx-stat-meta{font-size:1rem;line-height:1.45}
.tx-search-input{font-size:1.02rem;color:var(--cds-text-primary);background:#ffffff}
.tx-sort button{color:var(--cds-text-secondary)}
.tx-side-header h2{font-size:1.18rem}
.tx-card{padding:.82rem .95rem}
.tx-card-info h3{font-size:1.05rem;line-height:1.3}
.tx-card-prov{font-size:.78rem;line-height:1.35}
.tx-card-alt{font-size:1.02rem}
.tx-section h2{font-weight:500;line-height:1.16}
.tx-section p{
  font-size:1.14rem;
  line-height:1.78;
  color:var(--cds-text-primary);
  font-weight:400;
}
.tx-bucket-head h3{font-size:1.18rem}
.tx-bucket-desc{font-size:1.03rem;line-height:1.62;color:var(--cds-text-primary)}
.tx-bucket-list a{font-size:1rem;background:#ffffff}
.tx-faq-item summary{font-size:1.1rem}
.tx-faq-item-content{
  color:var(--cds-text-primary);
  font-size:1.08rem;
  line-height:1.76;
}
.tx-cta p{color:#e0e0e0;font-size:1.08rem;line-height:1.65}

.cds-footer-inner{font-size:1rem;line-height:1.6}
.cds-footer-links a{font-size:1rem}

@media (prefers-color-scheme:dark){
  :root{
    color-scheme:light;
    --cds-background:#f7f8f8;
    --cds-layer:#ffffff;
    --cds-layer-subtle:#f1f3f4;
    --cds-text-primary:#161616;
    --cds-text-secondary:#393939;
    --cds-text-muted:#525252;
    --cds-link-primary:#0043ce;
    --cds-focus:#0043ce;
    --cds-border:#c8ced0;
  }
  body,
  .techos-directory,
  .techos-directory main{background:var(--cds-background);color:var(--cds-text-primary)}
  .site-shell-header,
  .site-nav,
  .nav-dropdown,
  .tx-map-toolbar,
  .tx-map-panel,
  .tx-side,
  .tx-stat,
  .tx-bucket,
  .tx-faq-list,
  .guide-article,
  .guide-card,
  .visual-card,
  .site-card,
  .static-body{background:#ffffff;color:var(--cds-text-primary)}
  .tx-map-shell{background:#fafbfc}
  .tx-map-base{opacity:.95;filter:saturate(.6) contrast(.96)}
  .tx-search-input,
  .tx-card-num,
  .tx-bucket-list a,
  .tx-bucket-head .tx-bucket-count{background:#ffffff;color:var(--cds-text-primary)}
  .tx-card:hover,
  .tx-card.is-active,
  .tx-faq-item summary:hover,
  .tx-bucket-list a:hover{background:#f1f3f4}
  .tx-marker-pin{stroke:#ffffff}
  .tx-marker-label-bg{fill:#ffffff;stroke:var(--cds-focus);filter:drop-shadow(0 14px 28px rgba(22,28,46,.20))}
  .tx-marker-name{fill:#161616;stroke:#ffffff}
  .tx-marker-alt{fill:var(--cds-focus);stroke:#ffffff}
  .cds-accordion-item[open] .cds-accordion-header,
  .cds-accordion-header:focus,
  .cds-accordion-header:active,
  .tx-faq-item[open] summary,
  .tx-faq-item summary:focus,
  .tx-faq-item summary:active{background:#f1f3f4;color:#161616}
}

@media (max-width:640px){
  html{font-size:16.5px}
  .cds-container{padding:1.5rem 1rem}
  .cds-display-1{font-size:clamp(2.1rem,11vw,3rem)}
  .home-hero-copy p,
  .guide-hero p,
  .static-hero p,
  .tx-hero p{font-size:1.12rem}
  .guide-content p,
  .guide-content li,
  .static-body p,
  .static-body li,
  .tx-section p{font-size:1.07rem;line-height:1.78}
}


/* TrekkingSierra v57 final: ultima capa de contraste y lectura */
:root{
  color-scheme:light;
  --cds-background:#f7f8f8;
  --cds-layer:#ffffff;
  --cds-layer-subtle:#f1f3f4;
  --cds-text-primary:#161616;
  --cds-text-secondary:#393939;
  --cds-text-muted:#525252;
  --cds-link-primary:#0043ce;
  --cds-focus:#0043ce;
  --cds-border:#c8ced0;
}
html{font-size:17px;color-scheme:light}
body{background:var(--cds-background);color:var(--cds-text-primary);font-size:1rem;line-height:1.62}
a{color:var(--cds-link-primary)}
h1,h2,h3,h4,
.home-hero-copy h1,
.guide-hero h1,
.guide-article-header h1,
.static-hero h1,
.section-header h1,
.tx-hero h1,
.tx-section h2{letter-spacing:0}
.cds-display-1{font-size:clamp(2.45rem,5.2vw,4.15rem);line-height:1.08;font-weight:400}
.cds-heading-4{font-size:clamp(1.7rem,2.6vw,2.25rem);line-height:1.18;font-weight:500}
.cds-heading-3{font-size:1.48rem;line-height:1.35;font-weight:500}
.cds-body-long-2{font-size:1.22rem;line-height:1.76;font-weight:400;color:var(--cds-text-primary)}
.cds-body-long-1{font-size:1.12rem;line-height:1.76;font-weight:400;color:var(--cds-text-primary)}
.cds-label{font-size:.82rem;line-height:1.35;color:var(--cds-text-muted);font-weight:600}
.cds-data-value{font-size:1.24rem}
.cds-data-value-compact{font-size:1.08rem}
.cds-card p,
.cds-accordion-content,
.cds-route-panel p,
.cds-route-panel li{font-size:1.08rem;line-height:1.74;color:var(--cds-text-primary);font-weight:400}
.cds-accordion-header{font-size:1.13rem;color:var(--cds-text-primary)}
.route-choice{font-size:1.05rem;line-height:1.5;color:var(--cds-text-primary)}
.site-nav-link{font-size:1.02rem}
.nav-dropdown a{font-size:1rem}
.home-hero-v2:before{background:linear-gradient(90deg,rgba(0,0,0,.84) 0%,rgba(0,0,0,.62) 50%,rgba(0,0,0,.28) 100%)}
.home-hero-copy h1{font-weight:400;line-height:.98}
.home-hero-copy p{color:#ffffff;font-size:clamp(1.18rem,1.8vw,1.42rem);line-height:1.68;font-weight:400;text-shadow:0 1px 2px rgba(0,0,0,.28)}
.home-feature-panel{background:#ffffff;color:var(--cds-text-primary)}
.home-feature-panel p,
.visual-card-body p,
.guide-card p,
.site-card p,
.empty-guides,
.empty-guides p{color:var(--cds-text-primary);font-size:1.08rem;line-height:1.68;font-weight:400}
.visual-card-body h2,
.guide-card h2,
.guide-card h3{font-weight:600;line-height:1.25}
.guide-card h2,
.guide-card h3{font-size:1.34rem}
.guide-hero h1,
.guide-article-header h1,
.static-hero h1,
.tx-hero h1{font-weight:500}
.guide-hero p{color:#f4f4f4;font-size:1.24rem;line-height:1.68;font-weight:400}
.guide-meta{color:var(--cds-text-muted);font-size:1rem}
.guide-content p,
.guide-content li{font-size:1.16rem;line-height:1.82;color:var(--cds-text-primary);font-weight:400}
.guide-content h2{font-size:clamp(1.95rem,3vw,2.75rem);font-weight:500;line-height:1.16}
.guide-content h3{font-size:1.58rem;line-height:1.25}
.guide-figure figcaption{color:var(--cds-text-muted);font-size:1rem;line-height:1.5}
.static-hero p{color:var(--cds-text-primary);font-size:1.24rem;line-height:1.72;font-weight:400}
.static-body p,
.static-body li{font-size:1.13rem;line-height:1.84;color:var(--cds-text-primary);font-weight:400}
.static-body h2{font-size:clamp(1.8rem,2.6vw,2.35rem);font-weight:500;line-height:1.22}
.static-body h3{font-size:1.5rem;line-height:1.3;font-weight:600}
.breadcrumb,
.breadcrumb a,
.tx-page .breadcrumb,
.tx-page .breadcrumb a{color:var(--cds-text-muted);font-size:.96rem}
.tx-hero p{font-size:clamp(1.14rem,1.3vw,1.26rem);line-height:1.72;color:var(--cds-text-primary);font-weight:400}
.tx-section p{font-size:1.14rem;line-height:1.78;color:var(--cds-text-primary);font-weight:400}
.tx-stat-label,
.tx-stat-meta,
.tx-map-toolbar-meta,
.tx-filter-toggle,
.tx-card-prov,
.tx-card-alt small,
.tx-bucket-head .tx-bucket-count,
.tx-bucket-list a span,
.tx-list-empty{color:var(--cds-text-muted)}
.tx-search-input{font-size:1.02rem;color:var(--cds-text-primary);background:#ffffff}
.tx-side-header h2{font-size:1.18rem}
.tx-card-info h3{font-size:1.05rem;line-height:1.3}
.tx-card-prov{font-size:.78rem;line-height:1.35}
.tx-card-alt{font-size:1.02rem}
.tx-bucket-desc{font-size:1.03rem;line-height:1.62;color:var(--cds-text-primary)}
.tx-bucket-list a{font-size:1rem;background:#ffffff}
.tx-faq-item summary{font-size:1.1rem}
.tx-faq-item-content{color:var(--cds-text-primary);font-size:1.08rem;line-height:1.76}
.tx-cta p{color:#e0e0e0;font-size:1.08rem;line-height:1.65}
.site-shell-header,
.site-nav,
.nav-dropdown,
.tx-map-toolbar,
.tx-map-panel,
.tx-side,
.tx-stat,
.tx-bucket,
.tx-faq-list,
.guide-article,
.guide-card,
.visual-card,
.site-card,
.static-body{background:#ffffff;color:var(--cds-text-primary)}
.tx-map-shell{background:#fafbfc}
.tx-map-base{opacity:.95;filter:saturate(.6) contrast(.96)}
.tx-search-input,
.tx-card-num,
.tx-bucket-list a,
.tx-bucket-head .tx-bucket-count{background:#ffffff;color:var(--cds-text-primary)}
.tx-card:hover,
.tx-card.is-active,
.tx-faq-item summary:hover,
.tx-bucket-list a:hover{background:#f1f3f4}
.tx-marker-pin{stroke:#ffffff}
.tx-marker-label-bg{fill:#ffffff;stroke:var(--cds-focus);filter:drop-shadow(0 14px 28px rgba(22,28,46,.20))}
.tx-marker-name{fill:#161616;stroke:#ffffff}
.tx-marker-alt{fill:var(--cds-focus);stroke:#ffffff}
.cds-accordion-item[open] .cds-accordion-header,
.cds-accordion-header:focus,
.cds-accordion-header:active,
.tx-faq-item[open] summary,
.tx-faq-item summary:focus,
.tx-faq-item summary:active{background:#f1f3f4;color:#161616}
.cds-accordion-item[open] .cds-accordion-header svg,
.cds-accordion-header:focus svg,
.cds-accordion-header:active svg{color:#161616;fill:currentColor}
@media (prefers-color-scheme:dark){
  :root{
    color-scheme:light;
    --cds-background:#f7f8f8;
    --cds-layer:#ffffff;
    --cds-text-primary:#161616;
    --cds-text-secondary:#393939;
    --cds-text-muted:#525252;
    --cds-link-primary:#0043ce;
    --cds-focus:#0043ce;
    --cds-border:#c8ced0;
  }
}
@media (max-width:640px){
  html{font-size:16.5px}
  .cds-container{padding:1.5rem 1rem}
  .cds-display-1{font-size:clamp(2.1rem,11vw,3rem)}
  .home-hero-copy p,
  .guide-hero p,
  .static-hero p,
  .tx-hero p{font-size:1.12rem}
  .guide-content p,
  .guide-content li,
  .static-body p,
  .static-body li,
  .tx-section p{font-size:1.07rem;line-height:1.78}
}


/* TrekkingSierra v55: fichas de pico optimizadas para imagen 1350x1080 */
.cds-peak-hero{
  width:100%;
  margin:0 0 clamp(1.5rem,3vw,2.5rem);
}
.cds-hero-img{
  display:block;
  width:100%;
  max-width:min(100%,940px);
  height:auto;
  aspect-ratio:1350 / 1080;
  object-fit:cover;
  object-position:center;
  background:#e8e8e8;
  padding:0;
  border:1px solid var(--cds-border);
  margin:0;
}
.cds-data-item-full{grid-column:1 / -1}
.cds-data-value-compact{font-size:1rem}
.route-choice.active,
.route-choice.active:hover,
.route-choice[aria-selected="true"]{
  color:#ffffff;
  background:var(--cds-focus);
  border-color:var(--cds-focus);
  border-left-color:var(--cds-focus);
  font-weight:600;
}
.route-choice.active .route-choice-title,
.route-choice[aria-selected="true"] .route-choice-title{color:#ffffff}
@media (min-width:64rem){
  .cds-desktop-hero{display:block}
  .cds-mobile-hero{display:none}
  .cds-desktop-hero .cds-hero-img{max-width:min(100%,940px)}
}
@media (max-width:63.99rem){
  .cds-grid{gap:0}
  .cds-col-meta,
  .cds-col-main,
  .cds-sticky{display:contents}
  .cds-peak-header{order:1;margin-bottom:1rem!important}
  .cds-mobile-hero{display:block;order:2}
  .cds-desktop-hero{display:none}
  .cds-data-list{order:3;margin-bottom:2.25rem}
  .cds-peak-intro{order:4;margin-bottom:2.5rem!important}
  .cds-peak-practical{order:5;margin-bottom:3rem}
  .cds-peak-routes{order:6}
  .cds-peak-faqs{order:7}
  .cds-peak-videos{order:8}
  .cds-hero-img{max-width:none}
}
@media (max-width:48rem){
  .route-picker{
    display:flex;
    grid-template-columns:none;
    gap:.75rem;
    overflow-x:auto;
    overflow-y:hidden;
    overscroll-behavior-x:contain;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
    padding:.1rem .1rem .95rem;
    margin-bottom:1.25rem;
  }
  .route-picker::-webkit-scrollbar{display:none}
  .route-choice{
    flex:0 0 min(82vw,21rem);
    scroll-snap-align:start;
    min-height:4.75rem;
    border-left-width:1px;
    border-bottom:4px solid transparent;
    padding:1rem 1.1rem;
  }
  .route-choice.active,
  .route-choice[aria-selected="true"]{border-bottom-color:#78a9ff}
}
@media (max-width:38rem){
  .cds-data-list{grid-template-columns:1fr}
  .cds-data-item-full{grid-column:auto}
}

/* TrekkingSierra v56: contraste de FAQs en mobile/focus */
.cds-accordion-header,
.tx-faq-item summary{
  color:var(--cds-text-primary);
  -webkit-tap-highlight-color:rgba(15,98,254,.16);
}
.cds-accordion-item[open] .cds-accordion-header,
.cds-accordion-header:focus,
.cds-accordion-header:active,
.tx-faq-item[open] summary,
.tx-faq-item summary:focus,
.tx-faq-item summary:active{
  background:#f4f4f4;
  color:#161616;
}
.cds-accordion-item[open] .cds-accordion-header svg,
.cds-accordion-header:focus svg,
.cds-accordion-header:active svg{
  color:#161616;
  fill:currentColor;
}
.cds-peak-faqs ::selection,
.tx-faq ::selection{
  background:#0f62fe;
  color:#ffffff;
}
@media (prefers-color-scheme:dark){
  .cds-accordion-item[open] .cds-accordion-header,
  .cds-accordion-header:focus,
  .cds-accordion-header:active,
  .tx-faq-item[open] summary,
  .tx-faq-item summary:focus,
  .tx-faq-item summary:active{
    background:#393939;
    color:#f4f4f4;
  }
  .cds-accordion-item[open] .cds-accordion-header svg,
  .cds-accordion-header:focus svg,
  .cds-accordion-header:active svg{
    color:#f4f4f4;
  }
}


/* TrekkingSierra v57 actual final: contraste por encima de todas las capas */
:root{
  color-scheme:light;
  --cds-background:#f7f8f8;
  --cds-layer:#ffffff;
  --cds-text-primary:#161616;
  --cds-text-secondary:#393939;
  --cds-text-muted:#525252;
  --cds-link-primary:#0043ce;
  --cds-focus:#0043ce;
  --cds-border:#c8ced0;
}
html{font-size:17px;color-scheme:light}
body{background:var(--cds-background);color:var(--cds-text-primary);font-size:1rem;line-height:1.62}
a{color:var(--cds-link-primary)}
h1,h2,h3,h4,
.home-hero-copy h1,
.guide-hero h1,
.guide-article-header h1,
.static-hero h1,
.section-header h1,
.tx-hero h1,
.tx-section h2{letter-spacing:0}
.cds-display-1{font-size:clamp(2.45rem,5.2vw,4.15rem);line-height:1.08;font-weight:400}
.cds-heading-4{font-size:clamp(1.7rem,2.6vw,2.25rem);line-height:1.18;font-weight:500}
.cds-heading-3{font-size:1.48rem;line-height:1.35;font-weight:500}
.cds-body-long-2{font-size:1.22rem;line-height:1.76;font-weight:400;color:var(--cds-text-primary)}
.cds-body-long-1{font-size:1.12rem;line-height:1.76;font-weight:400;color:var(--cds-text-primary)}
.cds-label{font-size:.82rem;line-height:1.35;color:var(--cds-text-muted);font-weight:600}
.cds-data-value{font-size:1.24rem}
.cds-data-value-compact{font-size:1.08rem}
.cds-card p,
.cds-accordion-content,
.cds-route-panel p,
.cds-route-panel li{font-size:1.08rem;line-height:1.74;color:var(--cds-text-primary);font-weight:400}
.cds-accordion-header{font-size:1.13rem;color:var(--cds-text-primary)}
.route-choice{font-size:1.05rem;line-height:1.5;color:var(--cds-text-primary)}
.route-choice.active,
.route-choice.active:hover,
.route-choice[aria-selected="true"]{background:var(--cds-focus);border-color:var(--cds-focus);border-left-color:var(--cds-focus);color:#ffffff}
@media (max-width:48rem){
  .route-choice.active,
  .route-choice[aria-selected="true"]{border-bottom-color:var(--cds-focus)}
}
.site-nav-link{font-size:1.02rem}
.nav-dropdown a{font-size:1rem}
.home-hero-v2:before{background:linear-gradient(90deg,rgba(0,0,0,.84) 0%,rgba(0,0,0,.62) 50%,rgba(0,0,0,.28) 100%)}
.home-hero-copy h1{font-weight:400;line-height:.98}
.home-hero-copy p{color:#ffffff;font-size:clamp(1.18rem,1.8vw,1.42rem);line-height:1.68;font-weight:400;text-shadow:0 1px 2px rgba(0,0,0,.28)}
.home-feature-panel p,
.visual-card-body p,
.guide-card p,
.site-card p,
.empty-guides,
.empty-guides p{color:var(--cds-text-primary);font-size:1.08rem;line-height:1.68;font-weight:400}
.guide-card h2,
.guide-card h3{font-size:1.34rem;line-height:1.28}
.guide-hero h1,
.guide-article-header h1,
.static-hero h1,
.tx-hero h1{font-weight:500}
.guide-hero p{color:#f4f4f4;font-size:1.24rem;line-height:1.68;font-weight:400}
.guide-meta{color:var(--cds-text-muted);font-size:1rem}
.guide-content p,
.guide-content li{font-size:1.16rem;line-height:1.82;color:var(--cds-text-primary);font-weight:400}
.guide-content h2{font-size:clamp(1.95rem,3vw,2.75rem);font-weight:500;line-height:1.16}
.guide-content h3{font-size:1.58rem;line-height:1.25}
.static-hero p{color:var(--cds-text-primary);font-size:1.24rem;line-height:1.72;font-weight:400}
.static-body p,
.static-body li{font-size:1.13rem;line-height:1.84;color:var(--cds-text-primary);font-weight:400}
.static-body h2{font-size:clamp(1.8rem,2.6vw,2.35rem);font-weight:500;line-height:1.22}
.static-body h3{font-size:1.5rem;line-height:1.3;font-weight:600}
.breadcrumb,
.breadcrumb a,
.tx-page .breadcrumb,
.tx-page .breadcrumb a{color:var(--cds-text-muted);font-size:.96rem}
.tx-hero p{font-size:clamp(1.14rem,1.3vw,1.26rem);line-height:1.72;color:var(--cds-text-primary);font-weight:400}
.tx-section p{font-size:1.14rem;line-height:1.78;color:var(--cds-text-primary);font-weight:400}
.tx-stat-label,
.tx-stat-meta,
.tx-map-toolbar-meta,
.tx-filter-toggle,
.tx-card-prov,
.tx-card-alt small,
.tx-bucket-head .tx-bucket-count,
.tx-bucket-list a span,
.tx-list-empty{color:var(--cds-text-muted)}
.tx-search-input{font-size:1.02rem;color:var(--cds-text-primary);background:#ffffff}
.tx-side-header h2{font-size:1.18rem}
.tx-card-info h3{font-size:1.05rem;line-height:1.3}
.tx-card-prov{font-size:.78rem;line-height:1.35}
.tx-card-alt{font-size:1.02rem}
.tx-bucket-desc{font-size:1.03rem;line-height:1.62;color:var(--cds-text-primary)}
.tx-bucket-list a{font-size:1rem;background:#ffffff}
.tx-faq-item summary{font-size:1.1rem}
.tx-faq-item-content{color:var(--cds-text-primary);font-size:1.08rem;line-height:1.76}
.tx-cta p{color:#e0e0e0;font-size:1.08rem;line-height:1.65}
.site-shell-header,
.site-nav,
.nav-dropdown,
.tx-map-toolbar,
.tx-map-panel,
.tx-side,
.tx-stat,
.tx-bucket,
.tx-faq-list,
.guide-article,
.guide-card,
.visual-card,
.site-card,
.static-body{background:#ffffff;color:var(--cds-text-primary)}
.tx-map-shell{background:#fafbfc}
.tx-map-base{opacity:.95;filter:saturate(.6) contrast(.96)}
.tx-search-input,
.tx-card-num,
.tx-bucket-list a,
.tx-bucket-head .tx-bucket-count{background:#ffffff;color:var(--cds-text-primary)}
.tx-card:hover,
.tx-card.is-active,
.tx-faq-item summary:hover,
.tx-bucket-list a:hover{background:#f1f3f4}
.tx-marker-pin{stroke:#ffffff}
.tx-marker-label-bg{fill:#ffffff;stroke:var(--cds-focus);filter:drop-shadow(0 14px 28px rgba(22,28,46,.20))}
.tx-marker-name{fill:#161616;stroke:#ffffff}
.tx-marker-alt{fill:var(--cds-focus);stroke:#ffffff}
.cds-accordion-item[open] .cds-accordion-header,
.cds-accordion-header:focus,
.cds-accordion-header:active,
.tx-faq-item[open] summary,
.tx-faq-item summary:focus,
.tx-faq-item summary:active{background:#f1f3f4;color:#161616}
.cds-accordion-item[open] .cds-accordion-header svg,
.cds-accordion-header:focus svg,
.cds-accordion-header:active svg{color:#161616;fill:currentColor}
@media (prefers-color-scheme:dark){
  :root{
    color-scheme:light;
    --cds-background:#f7f8f8;
    --cds-layer:#ffffff;
    --cds-text-primary:#161616;
    --cds-text-secondary:#393939;
    --cds-text-muted:#525252;
    --cds-link-primary:#0043ce;
    --cds-focus:#0043ce;
    --cds-border:#c8ced0;
  }
  body,
  .techos-directory,
  .techos-directory main{background:var(--cds-background);color:var(--cds-text-primary)}
  .cds-accordion-item[open] .cds-accordion-header,
  .cds-accordion-header:focus,
  .cds-accordion-header:active,
  .tx-faq-item[open] summary,
  .tx-faq-item summary:focus,
  .tx-faq-item summary:active{background:#f1f3f4;color:#161616}
  .cds-accordion-item[open] .cds-accordion-header svg,
  .cds-accordion-header:focus svg,
  .cds-accordion-header:active svg{color:#161616}
}
@media (max-width:640px){
  html{font-size:16.5px}
  .cds-container{padding:1.5rem 1rem}
  .cds-display-1{font-size:clamp(2.1rem,11vw,3rem)}
  .home-hero-copy p,
  .guide-hero p,
  .static-hero p,
  .tx-hero p{font-size:1.12rem}
  .guide-content p,
  .guide-content li,
  .static-body p,
  .static-body li,
  .tx-section p{font-size:1.07rem;line-height:1.78}
}
