/* ============================================================================
   demo-outdoor.css · Guías de Montaña & Aventura (DARK, pino + naranja señal) · Capa 2
   Scopeado 100% en html.demo-outdoor. Escrito entero desde el blueprint propio
   (mockup "Cumbre Sur") — NO deriva de ningún theme Porto. Re-skineable: los
   colores salen de var(--primary)/(--secondary)/(--dark)/(--light)/(--quaternary),
   que SkinColorService reinyecta por tenant. Solo literales de contraste
   (rgba sobre foto) quedan inline.
   Dirección "bitácora de expedición": display sans 800 + MONO para datos
   (coordenadas, fechas, altitudes, cupos).
   ⚠ get_dynamic_css_variables() aplica la font tertiary (mono) a todos los <p>
   → este archivo re-afirma la sans en el scope del demo.
   Capa A (cd-system-base.css) ya alinea botones/badges/paginación globales;
   acá va la Capa B: home custom + ensamble de módulos (services/gallery/team/blog).
   ============================================================================ */

html.demo-outdoor {
    --ov-signal: var(--primary, #F5602C);
    --ov-signal2: var(--tertiary, #D94D1E);
    --ov-pine: var(--dark, #131A16);
    --ov-pine2: var(--secondary, #1C2620);
    --ov-snow: var(--light, #F2F4F0);
    --ov-stone: var(--quaternary, #9AA69E);
    --ov-line: rgba(255, 255, 255, .12);
    --ov-disp-ff: var(--font-family-secondary, "Archivo", "Helvetica Neue", Arial, sans-serif);
    --ov-mono-ff: var(--font-family-tertiary, "Roboto Mono", "SF Mono", ui-monospace, Menlo, monospace);
    --ov-sans-ff: var(--font-family-primary, "Jost", "Helvetica Neue", Arial, system-ui, sans-serif);
}

html.demo-outdoor body,
html.demo-outdoor .ov-main {
    background: var(--ov-pine);
    color: var(--ov-snow);
    font-family: var(--ov-sans-ff);
    font-weight: 300;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}
/* re-afirmar la sans en p (la font tertiary=mono se aplica global vía get_dynamic_css_variables) */
html.demo-outdoor .ov-main p,
html.demo-outdoor .ov-footer p,
html.demo-outdoor .main p { font-family: var(--ov-sans-ff); }
html.demo-outdoor img { max-width: 100%; }
html.demo-outdoor a { color: inherit; text-decoration: none; }
html.demo-outdoor .ov-wrap { max-width: 1280px; margin: 0 auto; padding: 0 34px; position: relative; z-index: 2; }
html.demo-outdoor .ov-disp {
    font-family: var(--ov-disp-ff);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
    line-height: 1.04;
    margin: 0;
}
html.demo-outdoor .ov-mono { font-family: var(--ov-mono-ff); }
html.demo-outdoor .ov-k {
    font-size: .68rem; letter-spacing: .22em; text-transform: uppercase;
    color: var(--ov-signal); display: inline-block;
}
html.demo-outdoor .ov-muted { color: var(--ov-stone); }
/* topo lines decorativas (curvas de nivel) */
html.demo-outdoor .ov-topo {
    position: absolute; inset: 0; opacity: .07; pointer-events: none; z-index: 1;
    background-image: repeating-radial-gradient(ellipse 900px 500px at 20% 110%, transparent 0 34px, var(--ov-snow) 34px 35px);
}

/* ── botones ── */
html.demo-outdoor .ov-btn {
    display: inline-flex; align-items: center; gap: .55em;
    font-family: var(--ov-sans-ff); font-size: .76rem; font-weight: 600;
    letter-spacing: .14em; text-transform: uppercase; padding: 15px 30px;
    border: 1px solid var(--ov-snow); border-radius: 0; cursor: pointer; transition: .25s;
}
html.demo-outdoor .ov-btn--sig { background: var(--ov-signal); border-color: var(--ov-signal); color: #fff; }
html.demo-outdoor .ov-btn--sig:hover { background: var(--ov-signal2); border-color: var(--ov-signal2); color: #fff; }
html.demo-outdoor .ov-btn--out { color: var(--ov-snow); border-color: var(--ov-line); }
html.demo-outdoor .ov-btn--out:hover { border-color: var(--ov-signal); color: var(--ov-signal); }

/* ══ HEADER (nav bar pine sticky glass) ══ */
html.demo-outdoor .ov-header {
    position: sticky; top: 0; z-index: 1030;
    background: rgba(0, 0, 0, .55); backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--ov-line);
}
html.demo-outdoor .ov-bar {
    max-width: 1280px; margin: 0 auto; padding: 14px 34px;
    display: flex; align-items: center; justify-content: space-between; gap: 24px;
}
html.demo-outdoor .ov-brand { display: flex; align-items: center; }
html.demo-outdoor .ov-nav { display: flex; gap: 26px; }
html.demo-outdoor .ov-nav a.ov-nav-cta { display: none; }
html.demo-outdoor .ov-nav a {
    font-size: .72rem; font-weight: 500; letter-spacing: .16em;
    text-transform: uppercase; color: var(--ov-stone); transition: .2s;
}
html.demo-outdoor .ov-nav a:hover, html.demo-outdoor .ov-nav a.on { color: var(--ov-signal); }
html.demo-outdoor .ov-hright { display: flex; align-items: center; gap: 16px; }
html.demo-outdoor .ov-hd-cta {
    font-size: .7rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
    background: var(--ov-signal); color: #fff; padding: 12px 22px; transition: .2s;
}
html.demo-outdoor .ov-hd-cta:hover { background: var(--ov-signal2); color: #fff; }
html.demo-outdoor .ov-burger { display: none; background: none; border: 0; flex-direction: column; gap: 5px; cursor: pointer; padding: 6px; }
html.demo-outdoor .ov-burger span { width: 24px; height: 2px; background: var(--ov-snow); display: block; }

/* ══ HERO ══ */
html.demo-outdoor .ov-hero { position: relative; min-height: 92vh; display: flex; align-items: flex-end; overflow: hidden; }
html.demo-outdoor .ov-hero-bg { position: absolute; inset: 0; background-size: cover; background-position: center; }
html.demo-outdoor .ov-hero-bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0, 0, 0, .5), rgba(0, 0, 0, .12) 45%, rgba(0, 0, 0, .8)); }
html.demo-outdoor .ov-hero-inner { position: relative; z-index: 2; width: 100%; padding-bottom: 56px; }
html.demo-outdoor .ov-coords { font-size: .72rem; letter-spacing: .24em; text-transform: uppercase; color: var(--ov-snow); display: block; margin-bottom: 14px; opacity: .85; }
html.demo-outdoor .ov-hero h1 { font-size: clamp(2.6rem, 7.2vw, 5.6rem); color: var(--ov-snow); }
html.demo-outdoor .ov-hero h1 em { font-style: normal; color: var(--ov-signal); }
html.demo-outdoor .ov-hero-sub { display: flex; justify-content: space-between; align-items: flex-end; gap: 26px; margin-top: 22px; flex-wrap: wrap; }
html.demo-outdoor .ov-hero-sub p { font-size: 1.04rem; color: rgba(255, 255, 255, .82); max-width: 44ch; margin: 0; }
html.demo-outdoor .ov-hero-actions { display: flex; gap: 12px; flex-wrap: wrap; }

/* ══ DATA STRIP (mono) ══ */
html.demo-outdoor .ov-data { border-top: 1px solid var(--ov-line); border-bottom: 1px solid var(--ov-line); background: var(--ov-pine2); }
html.demo-outdoor .ov-data-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; }
html.demo-outdoor .ov-dcell { padding: 26px 18px; border-right: 1px solid var(--ov-line); text-align: center; }
html.demo-outdoor .ov-dcell:last-child { border-right: 0; }
html.demo-outdoor .ov-dcell b { font-size: 1.9rem; font-weight: 600; color: var(--ov-snow); display: block; line-height: 1.1; }
html.demo-outdoor .ov-dcell span { font-size: .62rem; letter-spacing: .22em; text-transform: uppercase; color: var(--ov-stone); }

/* ══ ACTIVIDADES ══ */
html.demo-outdoor .ov-acts { padding: 100px 0; position: relative; }
html.demo-outdoor .ov-sec-head { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 44px; flex-wrap: wrap; gap: 14px; }
html.demo-outdoor .ov-sec-head h2 { font-size: clamp(2rem, 4.6vw, 3.4rem); margin-top: 6px; }
html.demo-outdoor .ov-sec-head h2 em { font-style: normal; color: var(--ov-signal); }
html.demo-outdoor .ov-sec-head p { color: var(--ov-stone); max-width: 38ch; margin: 0; }
html.demo-outdoor .ov-act-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
html.demo-outdoor .ov-act { position: relative; min-height: 300px; display: flex; align-items: flex-end; overflow: hidden; border: 1px solid var(--ov-line); }
html.demo-outdoor .ov-act-bg { position: absolute; inset: 0; background-size: cover; background-position: center; transition: .6s; filter: saturate(.9); }
html.demo-outdoor .ov-act:hover .ov-act-bg { transform: scale(1.06); filter: saturate(1.05); }
html.demo-outdoor .ov-act-bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 40%, rgba(0, 0, 0, .85)); }
html.demo-outdoor .ov-act-body { position: relative; z-index: 2; padding: 22px; }
html.demo-outdoor .ov-act-n { font-size: .64rem; letter-spacing: .2em; color: var(--ov-signal); }
html.demo-outdoor .ov-act h3 { font-size: 1.4rem; margin-top: 4px; color: var(--ov-snow); }
html.demo-outdoor .ov-act p { font-size: .82rem; color: rgba(255, 255, 255, .72); margin: 2px 0 0; }
/* La card entera es un link: sin subrayado, con «Ver salidas →» que aparece al pasar */
html.demo-outdoor a.ov-act { color: inherit; text-decoration: none; display: flex; }
html.demo-outdoor a.ov-act:hover, html.demo-outdoor a.ov-act:focus { color: inherit; text-decoration: none; }
html.demo-outdoor .ov-act-go { display: inline-block; margin-top: 12px; font-size: .62rem; letter-spacing: .2em; text-transform: uppercase; color: var(--ov-signal); opacity: 0; transform: translateY(6px); transition: .35s; }
html.demo-outdoor .ov-act:hover .ov-act-go, html.demo-outdoor .ov-act:focus-visible .ov-act-go { opacity: 1; transform: none; }
@media (hover: none) { html.demo-outdoor .ov-act-go { opacity: 1; transform: none; } }

/* ══ TABLERO "PRÓXIMAS SALIDAS" (killer board — banda snow) ══ */
html.demo-outdoor .ov-board { background: var(--ov-snow); color: var(--ov-pine); padding: 100px 0; }
html.demo-outdoor .ov-board .ov-k { color: var(--ov-signal2); }
html.demo-outdoor .ov-board .ov-sec-head h2 { color: var(--ov-pine); }
html.demo-outdoor .ov-board .ov-sec-head p { color: rgba(0, 0, 0, .55); }
html.demo-outdoor .ov-brow {
    display: grid; grid-template-columns: 110px 1.5fr 110px 130px 96px 150px;
    gap: 14px; align-items: center; padding: 18px 14px;
    border-bottom: 1px solid rgba(0, 0, 0, .12); transition: .2s;
}
html.demo-outdoor .ov-brow:hover { background: rgba(var(--primary-rgb, 245, 96, 44), .06); }
html.demo-outdoor .ov-brow--head {
    font-size: .62rem; letter-spacing: .2em; text-transform: uppercase;
    color: rgba(0, 0, 0, .45); border-bottom: 2px solid var(--ov-pine); padding-top: 0;
}
html.demo-outdoor .ov-brow--head:hover { background: transparent; }
html.demo-outdoor .ov-bdate { font-weight: 600; font-size: .9rem; }
html.demo-outdoor .ov-btrip b { font-size: 1.02rem; letter-spacing: .04em; display: block; }
html.demo-outdoor .ov-btrip small { display: block; font-family: var(--ov-sans-ff); font-weight: 400; color: rgba(0, 0, 0, .55); font-size: .78rem; }
html.demo-outdoor .ov-bdur { font-size: .8rem; color: rgba(0, 0, 0, .7); }
html.demo-outdoor .ov-bdif { letter-spacing: .18em; color: var(--ov-signal2); font-size: .8rem; }
html.demo-outdoor .ov-bcupo { font-size: .78rem; }
html.demo-outdoor .ov-bcupo.low { color: var(--ov-signal2); font-weight: 700; }
html.demo-outdoor .ov-bcupo.full { color: rgba(0, 0, 0, .45); text-decoration: line-through; }
html.demo-outdoor .ov-brow--full .ov-bgo { background: transparent; color: var(--ov-pine); box-shadow: inset 0 0 0 1px var(--ov-pine); }
html.demo-outdoor .ov-brow--full .ov-bgo:hover { background: var(--ov-pine); color: var(--ov-snow); }
html.demo-outdoor .ov-bgo {
    justify-self: end; font-size: .68rem; font-weight: 700; letter-spacing: .12em;
    text-transform: uppercase; background: var(--ov-pine); color: var(--ov-snow);
    padding: 10px 18px; transition: .2s; white-space: nowrap;
}
html.demo-outdoor .ov-bgo:hover { background: var(--ov-signal); color: #fff; }
html.demo-outdoor .ov-board-all { margin: 28px 0 0; text-align: right; }
html.demo-outdoor .ov-board-all .ov-btn--out { color: var(--ov-pine); border-color: rgba(0, 0, 0, .3); }
html.demo-outdoor .ov-board-all .ov-btn--out:hover { color: var(--ov-signal); border-color: var(--ov-signal); }

/* ══ SALIDAS INSIGNIA (services home) ══ */
html.demo-outdoor .ov-trips { padding: 100px 0; }
html.demo-outdoor .ov-trips-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
html.demo-outdoor .ov-trip { border: 1px solid var(--ov-line); background: var(--ov-pine2); display: grid; grid-template-columns: 1fr 1.1fr; overflow: hidden; min-height: 280px; }
html.demo-outdoor .ov-trip figure { overflow: hidden; margin: 0; }
html.demo-outdoor .ov-trip img { width: 100%; height: 100%; object-fit: cover; transition: .6s; }
html.demo-outdoor .ov-trip:hover img { transform: scale(1.05); }
html.demo-outdoor .ov-trip-body { padding: 26px; display: flex; flex-direction: column; }
html.demo-outdoor .ov-trip-meta { font-size: .64rem; letter-spacing: .18em; text-transform: uppercase; color: var(--ov-stone); display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 10px; }
html.demo-outdoor .ov-trip h3 { font-size: 1.5rem; color: var(--ov-snow); }
html.demo-outdoor .ov-trip-body p { font-size: .86rem; color: var(--ov-stone); flex: 1; margin: 8px 0 0; }
html.demo-outdoor .ov-trip-foot { display: flex; justify-content: space-between; align-items: baseline; border-top: 1px solid var(--ov-line); padding-top: 14px; margin-top: 16px; gap: 12px; }
html.demo-outdoor .ov-trip-price { font-weight: 600; color: var(--ov-snow); font-size: .92rem; }
html.demo-outdoor .ov-trip-more { font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ov-signal); white-space: nowrap; }

/* ══ LA COOPERATIVA ══ */
html.demo-outdoor .ov-coop { background: var(--ov-pine2); border-top: 1px solid var(--ov-line); border-bottom: 1px solid var(--ov-line); padding: 100px 0; }
html.demo-outdoor .ov-coop-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 60px; align-items: center; }
html.demo-outdoor .ov-coop h2 { font-size: clamp(2rem, 4.4vw, 3.2rem); margin: 14px 0 20px; }
html.demo-outdoor .ov-coop h2 em { font-style: normal; color: var(--ov-signal); }
html.demo-outdoor .ov-coop p { color: var(--ov-stone); margin-bottom: 12px; }
html.demo-outdoor .ov-cert { display: inline-flex; align-items: center; gap: 12px; border: 1px solid var(--ov-line); padding: 14px 20px; margin-top: 16px; }
html.demo-outdoor .ov-cert-dot { width: 10px; height: 10px; background: var(--ov-signal); border-radius: 50%; flex: 0 0 auto; }
html.demo-outdoor .ov-cert span:last-child { font-size: .7rem; letter-spacing: .18em; text-transform: uppercase; }
html.demo-outdoor .ov-coop-figure { position: relative; overflow: hidden; margin: 0; }
html.demo-outdoor .ov-coop-figure img { width: 100%; height: 480px; object-fit: cover; }
html.demo-outdoor .ov-coop-tag { position: absolute; left: 18px; bottom: 18px; background: var(--ov-pine); padding: 12px 18px; font-size: .66rem; letter-spacing: .2em; text-transform: uppercase; color: var(--ov-snow); }

/* ══ TUS GUÍAS (team home) ══ */
html.demo-outdoor .ov-guides { padding: 100px 0; }
html.demo-outdoor .ov-guide-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
html.demo-outdoor .ov-guide figure { height: 360px; overflow: hidden; position: relative; border: 1px solid var(--ov-line); margin: 0; }
html.demo-outdoor .ov-guide img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.85); transition: .5s; }
html.demo-outdoor .ov-guide:hover img { filter: saturate(1.05); }
html.demo-outdoor .ov-guide-meta { padding: 14px 4px; }
html.demo-outdoor .ov-guide h3 { font-size: 1.2rem; color: var(--ov-snow); }
html.demo-outdoor .ov-guide-role { font-size: .64rem; letter-spacing: .18em; text-transform: uppercase; color: var(--ov-signal); margin-top: 4px; }

/* ══ BITÁCORA (blog home) ══ */
html.demo-outdoor .ov-log { padding: 0 0 100px; }
html.demo-outdoor .ov-log-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
html.demo-outdoor .ov-log-card { display: block; border: 1px solid var(--ov-line); background: var(--ov-pine2); padding-bottom: 18px; transition: .25s; }
html.demo-outdoor .ov-log-card:hover { border-color: var(--ov-signal); }
html.demo-outdoor .ov-log-card figure { height: 200px; overflow: hidden; margin: 0 0 14px; }
html.demo-outdoor .ov-log-card img { width: 100%; height: 100%; object-fit: cover; transition: .5s; }
html.demo-outdoor .ov-log-card:hover img { transform: scale(1.05); }
html.demo-outdoor .ov-log-meta { font-size: .64rem; letter-spacing: .18em; text-transform: uppercase; color: var(--ov-signal); padding: 0 18px; }
html.demo-outdoor .ov-log-card h3 { font-size: 1.05rem; color: var(--ov-snow); padding: 6px 18px 0; line-height: 1.3; }

/* ══ QUOTE ══ */
html.demo-outdoor .ov-quote-sec { padding: 60px 0 100px; }
html.demo-outdoor .ov-quote { text-align: center; max-width: 800px; margin: 0 auto; }
html.demo-outdoor .ov-stars { color: var(--ov-signal); letter-spacing: .4em; margin-bottom: 18px; }
html.demo-outdoor .ov-quote blockquote { font-size: clamp(1.3rem, 2.8vw, 1.9rem); font-weight: 300; line-height: 1.45; color: var(--ov-snow); border: 0; margin: 0; padding: 0; }
html.demo-outdoor .ov-quote cite { display: block; margin-top: 22px; font-style: normal; font-size: .68rem; letter-spacing: .24em; text-transform: uppercase; color: var(--ov-stone); }

/* ══ CTA FINAL ══ */
html.demo-outdoor .ov-cta { position: relative; min-height: 64vh; display: flex; align-items: center; overflow: hidden; }
html.demo-outdoor .ov-cta-bg { position: absolute; inset: 0; background-size: cover; background-position: center; }
html.demo-outdoor .ov-cta-bg::after { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, .68); }
html.demo-outdoor .ov-cta-inner { position: relative; z-index: 2; width: 100%; text-align: center; }
html.demo-outdoor .ov-cta h2 { font-size: clamp(2.4rem, 6.4vw, 4.6rem); margin-top: 12px; color: var(--ov-snow); }
html.demo-outdoor .ov-cta h2 em { font-style: normal; color: var(--ov-signal); }
html.demo-outdoor .ov-cta p { color: rgba(255, 255, 255, .75); margin: 16px auto 28px; max-width: 46ch; }
html.demo-outdoor .ov-cta-row { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }

/* ══ PAGE HEADER (banda pine-2 bitácora — módulos/about/contact) ══ */
html.demo-outdoor .ov-pagehead { background: var(--ov-pine2); border-bottom: 1px solid var(--ov-line); padding: 120px 0 54px; position: relative; overflow: hidden; }
html.demo-outdoor .ov-crumb ol { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; padding: 0; margin: 0 0 14px; }
html.demo-outdoor .ov-crumb li { font-size: .64rem; letter-spacing: .2em; text-transform: uppercase; color: var(--ov-stone); }
html.demo-outdoor .ov-crumb a { color: var(--ov-stone); }
html.demo-outdoor .ov-crumb a:hover { color: var(--ov-signal); }
html.demo-outdoor .ov-crumb li span { color: var(--ov-signal); }
html.demo-outdoor .ov-pagehead h1 { font-size: clamp(2.2rem, 5.6vw, 4rem); color: var(--ov-snow); }
html.demo-outdoor .ov-pagehead p { color: var(--ov-stone); margin: 12px 0 0; max-width: 60ch; }

/* ══ SECCIONES INTERNAS (about / contact) ══ */
html.demo-outdoor .ov-sec { padding: 90px 0; }
html.demo-outdoor .ov-about-grid, html.demo-outdoor .ov-contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
html.demo-outdoor .ov-about-title { font-size: clamp(1.9rem, 4.6vw, 3rem); margin: 14px 0 22px; }
html.demo-outdoor .ov-sec p { color: var(--ov-stone); margin-bottom: 14px; }
html.demo-outdoor .ov-about-img { width: 100%; height: 480px; object-fit: cover; }
html.demo-outdoor .ov-contact-list { list-style: none; padding: 0; margin: 22px 0 0; }
html.demo-outdoor .ov-contact-list li { padding: 14px 0; border-bottom: 1px solid var(--ov-line); color: var(--ov-snow); }
html.demo-outdoor .ov-contact-list strong { display: block; font-size: .64rem; letter-spacing: .2em; text-transform: uppercase; color: var(--ov-signal); margin-bottom: 4px; font-weight: 600; }
html.demo-outdoor .ov-contact-form .ov-input {
    width: 100%; background: var(--ov-pine2); border: 1px solid var(--ov-line); color: var(--ov-snow);
    padding: 14px 16px; margin-bottom: 14px; font-family: var(--ov-sans-ff); font-size: .95rem; border-radius: 0;
}
html.demo-outdoor .ov-contact-form .ov-input::placeholder { color: var(--ov-stone); }
html.demo-outdoor .ov-contact-form .ov-input:focus { outline: none; border-color: var(--ov-signal); }
html.demo-outdoor .ov-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
html.demo-outdoor .ov-alert { background: rgba(var(--primary-rgb, 245, 96, 44), .14); border: 1px solid var(--ov-signal); color: var(--ov-snow); padding: 14px 16px; margin-bottom: 16px; }

/* ══ FOOTER ══ */
/* franja clara sobre el footer: Porto trae #footer{margin-top:50px} y por el gap asoma el wrapper .body claro */
html.demo-outdoor #footer { margin-top: 0; }
html.demo-outdoor .body { background-color: #131A16; }
html.demo-outdoor .ov-footer { background: #0E1411; background: color-mix(in srgb, var(--ov-pine) 88%, black); padding: 66px 0 34px; border-top: 1px solid var(--ov-line); }
html.demo-outdoor .ov-fin { max-width: 1280px; margin: 0 auto; padding: 0 34px; }
html.demo-outdoor .ov-fgrid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 38px; margin-bottom: 40px; }
html.demo-outdoor .ov-fbrand p { font-size: .87rem; color: var(--ov-stone); max-width: 34ch; }
html.demo-outdoor .ov-footer h4 { font-size: .62rem; letter-spacing: .24em; text-transform: uppercase; color: var(--ov-signal); margin-bottom: 16px; font-weight: 600; }
html.demo-outdoor .ov-footer ul { list-style: none; padding: 0; margin: 0; }
html.demo-outdoor .ov-footer ul li { margin-bottom: 8px; }
html.demo-outdoor .ov-footer ul a, html.demo-outdoor .ov-footer ul li { font-size: .86rem; color: var(--ov-stone); }
html.demo-outdoor .ov-footer ul a:hover { color: var(--ov-snow); }
html.demo-outdoor .ov-social { display: flex; gap: 12px; margin-bottom: 16px; }
html.demo-outdoor .ov-social a { width: 38px; height: 38px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--ov-line); color: var(--ov-stone); transition: .2s; }
html.demo-outdoor .ov-social a:hover { border-color: var(--ov-signal); color: var(--ov-signal); }
html.demo-outdoor .ov-fcta { display: inline-block; }
html.demo-outdoor .ov-fbot { border-top: 1px solid var(--ov-line); padding-top: 22px; display: flex; justify-content: space-between; font-size: .62rem; letter-spacing: .16em; text-transform: uppercase; flex-wrap: wrap; gap: 8px; color: var(--ov-stone); }
html.demo-outdoor .ov-fcommunity { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 14px; font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; color: var(--ov-snow); text-decoration: none; border-bottom: 1px solid var(--ov-signal); padding-bottom: 4px; }
html.demo-outdoor .ov-fcommunity:hover { color: var(--ov-signal); }
html.demo-outdoor .ov-fbot a { color: var(--ov-stone); }
html.demo-outdoor .ov-fbot a:hover { color: var(--ov-signal); }

/* ══ CAPA B · ENSAMBLE DE MÓDULOS (services / gallery / team / blog compartidos) ══
   El demo es DARK → fondo pine, cards pine-2 legibles, acentos naranja.
   Nunca @if($activeDemo) en blades de módulos — solo estas reglas. */
html.demo-outdoor .main > section:not(.ov-board):not(.ov-hero):not(.ov-cta) { background: var(--ov-pine); }
html.demo-outdoor .main .section:not(.ov-hero):not(.ov-cta):not(.ov-board) { background: var(--ov-pine); }
/* Misma grilla que la home en TODAS las páginas: contenedor 1280 + 34px de margen
   (los módulos traen .container / .container-xl-custom del theme, que a 1440px va
   de borde a borde con 12px). Mismo aire vertical: 80px arriba y abajo por sección
   (las utilidades py-* del theme son !important, de ahí el !important acá). */
html.demo-outdoor .main .container, html.demo-outdoor .main .container-xl-custom, html.demo-outdoor .main .container-xxl-custom { max-width: 1280px; padding-left: 34px; padding-right: 34px; }
html.demo-outdoor .main > .section:not(.ov-pagehead):not(.ov-hero):not(.ov-cta):not(.ov-board),
html.demo-outdoor .main > section.ov-sec { padding-top: 80px !important; padding-bottom: 80px !important; }
html.demo-outdoor .main > .section .container.py-5, html.demo-outdoor .main > .section .container.py-4 { padding-top: 0 !important; padding-bottom: 0 !important; }
/* Loader del filtro (equipo/galería): el theme lo pinta claro sobre nuestro fondo oscuro */
html.demo-outdoor .sort-destination-loader:after { background-color: var(--ov-pine); }
/* cards de módulo → fondo pine-2, borde línea, texto snow */
html.demo-outdoor .main .card,
html.demo-outdoor .main .service-item,
html.demo-outdoor .main .gallery-item,
html.demo-outdoor .main .team-item,
html.demo-outdoor .main .post-item,
html.demo-outdoor .main .thumb-info {
    background: var(--ov-pine2); border: 1px solid var(--ov-line); color: var(--ov-snow);
}
html.demo-outdoor .main .card .card-body { color: var(--ov-snow); }
html.demo-outdoor .main h1, html.demo-outdoor .main h2, html.demo-outdoor .main h3,
html.demo-outdoor .main h4, html.demo-outdoor .main h5 { color: var(--ov-snow); }
html.demo-outdoor .main p, html.demo-outdoor .main li, html.demo-outdoor .main .text-color-dark { color: var(--ov-stone); }
/* Porto define .text-color-dark con !important (var(--dark) ≈ negro) → en este demo DARK
   los títulos de card de vistas compartidas (team/blog) quedaban ilegibles sobre pine.
   Override con !important: headings → snow, texto corrido → stone. */
html.demo-outdoor .main h1.text-color-dark, html.demo-outdoor .main h2.text-color-dark,
html.demo-outdoor .main h3.text-color-dark, html.demo-outdoor .main h4.text-color-dark,
html.demo-outdoor .main h5.text-color-dark, html.demo-outdoor .main h6.text-color-dark { color: var(--ov-snow) !important; }
html.demo-outdoor .main p.text-color-dark, html.demo-outdoor .main span.text-color-dark,
html.demo-outdoor .main li.text-color-dark { color: var(--ov-stone) !important; }
/* enlaces / precios / acentos → naranja señal */
html.demo-outdoor .main a.text-color-primary,
html.demo-outdoor .main .text-color-primary,
html.demo-outdoor .main .price { color: var(--ov-signal) !important; }
/* botones de módulo → blanco sobre naranja (la Capa A ya los pinta con --primary) */
html.demo-outdoor .main .btn-primary { color: #fff !important; }
/* fondos claros heredados de vistas compartidas → neutralizar a pine */
html.demo-outdoor .main .bg-color-light,
html.demo-outdoor .main .bg-light { background: var(--ov-pine) !important; }

/* ── responsive ── */
@media (max-width: 991px) {
    /* Menú móvil: panel SÓLIDO (antes rgba .93 dejaba leer el título de la página
       detrás), items con más aire, y la CTA del header como último ítem. */
    html.demo-outdoor .ov-nav {
        display: none; position: absolute; top: 100%; left: 0; right: 0;
        flex-direction: column; gap: 0; background: var(--ov-pine, #14171c);
        border-bottom: 1px solid var(--ov-line); padding: 8px 0 16px;
        box-shadow: 0 24px 40px rgba(0, 0, 0, .45); max-height: calc(100vh - 72px); overflow-y: auto;
    }
    html.demo-outdoor .ov-nav.open { display: flex; }
    html.demo-outdoor .ov-nav a { padding: 15px 34px; border-bottom: 1px solid rgba(255, 255, 255, .05); }
    html.demo-outdoor .ov-nav a.ov-nav-cta { display: inline-block; margin: 14px 34px 0; padding: 13px 20px; background: var(--ov-signal); color: #111; text-align: center; border: 0; }
    html.demo-outdoor .ov-burger { display: flex; }
    html.demo-outdoor .ov-hd-cta { display: none; }
    html.demo-outdoor .ov-fcta { display: inline-block; }
}
@media (max-width: 900px) {
    html.demo-outdoor .ov-act-grid { grid-template-columns: 1fr 1fr; }
    html.demo-outdoor .ov-trips-grid { grid-template-columns: 1fr; }
    html.demo-outdoor .ov-trip { grid-template-columns: 1fr; }
    html.demo-outdoor .ov-trip figure { height: 200px; }
    html.demo-outdoor .ov-brow { grid-template-columns: 90px 1fr 130px; font-size: .9rem; }
    html.demo-outdoor .ov-bdur, html.demo-outdoor .ov-bdif, html.demo-outdoor .ov-bcupo { display: none; }
    /* La fila de encabezado tiene 6 celdas (Fecha/Salida/Duración/Dificultad/Cupos)
       que no colapsan como las de datos → se amontonan. En mobile cada fila ya se
       lee sola (fecha + salida + Sumate), así que ocultamos el encabezado. */
    html.demo-outdoor .ov-brow--head { display: none; }
}
@media (max-width: 880px) {
    html.demo-outdoor .ov-coop-grid, html.demo-outdoor .ov-about-grid, html.demo-outdoor .ov-contact-grid { grid-template-columns: 1fr; gap: 40px; }
    html.demo-outdoor .ov-coop-figure img, html.demo-outdoor .ov-about-img { height: 360px; }
    html.demo-outdoor .ov-guide-grid, html.demo-outdoor .ov-log-grid { grid-template-columns: 1fr 1fr; }
    html.demo-outdoor .ov-fgrid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
    html.demo-outdoor .ov-data-grid { grid-template-columns: 1fr 1fr; }
    html.demo-outdoor .ov-dcell { border-bottom: 1px solid var(--ov-line); }
    html.demo-outdoor .ov-form-row { grid-template-columns: 1fr; }
    /* Page-header más bajo en mobile (era 120px 0 54px — banda casi vacía en teléfono) */
    html.demo-outdoor .ov-pagehead { padding: 84px 0 38px; }
    /* Menos aire vertical entre secciones (deluxe: se recorre más rápido) */
    html.demo-outdoor .ov-acts, html.demo-outdoor .ov-board, html.demo-outdoor .ov-trips,
    html.demo-outdoor .ov-coop, html.demo-outdoor .ov-guides, html.demo-outdoor .ov-sec { padding-top: 64px; padding-bottom: 64px; }
    html.demo-outdoor .main > .section:not(.ov-pagehead):not(.ov-hero):not(.ov-cta):not(.ov-board),
    html.demo-outdoor .main > section.ov-sec { padding-top: 64px !important; padding-bottom: 64px !important; }
}
@media (max-width: 560px) {
    html.demo-outdoor .ov-act-grid, html.demo-outdoor .ov-guide-grid, html.demo-outdoor .ov-log-grid { grid-template-columns: 1fr; }
    html.demo-outdoor .ov-wrap, html.demo-outdoor .ov-bar, html.demo-outdoor .ov-fin { padding-left: 20px; padding-right: 20px; }
    html.demo-outdoor .main .container, html.demo-outdoor .main .container-xl-custom, html.demo-outdoor .main .container-xxl-custom { padding-left: 20px; padding-right: 20px; }
    /* Footer: colapsar a 1 columna — antes quedaba en 2 y la columna "Seguinos"
       (~165px) cortaba los íconos sociales y el botón "Próximas salidas". */
    html.demo-outdoor .ov-fgrid { grid-template-columns: 1fr; gap: 30px; }
    html.demo-outdoor .ov-social { flex-wrap: wrap; }
    html.demo-outdoor .ov-fcta { white-space: normal; text-align: center; }
    /* Page-header aún más compacto en teléfonos chicos */
    html.demo-outdoor .ov-pagehead { padding: 70px 0 30px; }
    html.demo-outdoor .ov-acts, html.demo-outdoor .ov-board, html.demo-outdoor .ov-trips,
    html.demo-outdoor .ov-coop, html.demo-outdoor .ov-guides, html.demo-outdoor .ov-sec { padding-top: 52px; padding-bottom: 52px; }
    html.demo-outdoor .main > .section:not(.ov-pagehead):not(.ov-hero):not(.ov-cta):not(.ov-board),
    html.demo-outdoor .main > section.ov-sec { padding-top: 52px !important; padding-bottom: 52px !important; }
    /* Tablero de salidas: fecha más angosta + CTA que se ajusta al contenido */
    html.demo-outdoor .ov-brow { grid-template-columns: 74px 1fr auto; gap: 10px; padding: 16px 4px; }
    html.demo-outdoor .ov-bgo { padding: 9px 13px; font-size: .62rem; }
}

/* ══ RESPALDO (logos de certificaciones · footer y Quiénes somos) ══ */
html.demo-outdoor .ov-partners { margin-bottom: 44px; padding-bottom: 36px; border-bottom: 1px solid var(--ov-line); }
html.demo-outdoor .ov-partners h4 { font-size: .62rem; letter-spacing: .24em; text-transform: uppercase; color: var(--ov-signal); margin-bottom: 18px; font-weight: 600; }
html.demo-outdoor .ov-partners-row { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 18px 40px; }
/* Logos transparentes, sin placa: cada marca se apoya directo sobre el fondo (en el pie va la versión clara, partner{n}_image_light) */
html.demo-outdoor .ov-partners-row li { height: 72px; display: flex; align-items: center; justify-content: center; }
html.demo-outdoor .ov-partners-row li a { display: flex; align-items: center; justify-content: center; height: 100%; }
html.demo-outdoor .ov-partners-row img { max-height: 72px; max-width: 250px; width: auto; height: auto; object-fit: contain; display: block; opacity: .92; transition: opacity .2s; }
html.demo-outdoor .ov-partners-row li:hover img { opacity: 1; }
html.demo-outdoor .ov-partner-txt { font-size: .66rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ov-pine); font-weight: 600; text-align: center; }
html.demo-outdoor .ov-partners--page { max-width: 1280px; margin: 0 auto 90px; padding: 0 34px; border-bottom: 0; }
html.demo-outdoor .ov-partners--page h4 { font-size: .68rem; letter-spacing: .22em; }

/* ══ NOVEDADES (newsletter en el pie) ══ */
html.demo-outdoor .ov-fnews { display: grid; grid-template-columns: 1.4fr 1fr; gap: 38px; align-items: center; padding: 28px 0 34px; margin-bottom: 30px; border-top: 1px solid var(--ov-line); }
html.demo-outdoor .ov-fnews p { font-size: .86rem; color: var(--ov-stone); margin: 0; max-width: 48ch; }
html.demo-outdoor .ov-fnews .input-group { display: flex; }
html.demo-outdoor .ov-fnews .ov-fnews-input { background: color-mix(in srgb, var(--ov-pine) 70%, black); border: 1px solid var(--ov-line); color: var(--ov-snow); border-radius: 0; height: 46px; box-shadow: none; }
html.demo-outdoor .ov-fnews .ov-fnews-input::placeholder { color: var(--ov-stone); }
html.demo-outdoor .ov-fnews .ov-fnews-btn { background: var(--ov-signal); color: #fff; border: 0; border-radius: 0; font-family: var(--ov-mono-ff); font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; padding: 0 18px; }
html.demo-outdoor .ov-fnews .ov-fnews-btn:hover { background: var(--ov-signal2); }
html.demo-outdoor .ov-fnews .alert { border-radius: 0; font-size: .82rem; }

/* ══ POPUP NEWSLETTER (una vez por visitante; site.footer.newsletter_popup=1) ══ */
html.demo-outdoor .ov-npop { position: fixed; inset: 0; z-index: 1200; background: rgba(8, 18, 34, .62); backdrop-filter: blur(3px); display: flex; align-items: center; justify-content: center; padding: 20px; }
html.demo-outdoor .ov-npop[hidden] { display: none; }
html.demo-outdoor .ov-npop__box { position: relative; width: min(520px, 100%); background: var(--ov-pine); color: var(--ov-snow); padding: 38px 36px 30px; border-top: 4px solid var(--ov-signal); box-shadow: 0 30px 80px rgba(0, 0, 0, .45); animation: ovNpopIn .35s ease-out both; }
@keyframes ovNpopIn { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
html.demo-outdoor .ov-npop__box .ov-k { color: var(--ov-sun); display: block; margin-bottom: 10px; }
html.demo-outdoor .ov-npop__box h3 { font-size: 1.7rem; line-height: 1.1; margin: 0 0 12px; color: #fff; }
html.demo-outdoor .ov-npop__box p { font-size: .92rem; color: rgba(255, 255, 255, .78); margin: 0 0 20px; }
html.demo-outdoor .ov-npop__box .input-group { display: flex; }
html.demo-outdoor .ov-npop__box .ov-fnews-input { background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .22); color: #fff; border-radius: 0; height: 48px; box-shadow: none; }
html.demo-outdoor .ov-npop__box .ov-fnews-input::placeholder { color: rgba(255, 255, 255, .55); }
html.demo-outdoor .ov-npop__box .ov-fnews-btn { background: var(--ov-signal); color: #fff; border: 0; border-radius: 0; font-family: var(--ov-mono-ff); font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; padding: 0 18px; }
html.demo-outdoor .ov-npop__box .ov-fnews-btn:hover { background: var(--ov-signal2); }
html.demo-outdoor .ov-npop__box .alert { border-radius: 0; font-size: .82rem; }
html.demo-outdoor .ov-npop__close { position: absolute; top: 10px; right: 14px; background: none; border: 0; color: rgba(255, 255, 255, .7); font-size: 1.8rem; line-height: 1; cursor: pointer; }
html.demo-outdoor .ov-npop__close:hover { color: #fff; }
html.demo-outdoor .ov-npop__later { display: block; margin: 16px auto 0; background: none; border: 0; color: rgba(255, 255, 255, .55); font-size: .66rem; letter-spacing: .18em; text-transform: uppercase; cursor: pointer; }
html.demo-outdoor .ov-npop__later:hover { color: #fff; }
html.demo-outdoor.scheme-light .ov-npop__box { background: var(--ov-ink); }
@media (max-width: 575px) { html.demo-outdoor .ov-npop__box { padding: 30px 22px 22px; } html.demo-outdoor .ov-npop__box h3 { font-size: 1.4rem; } }
/* listado: edición completa dentro de «+ fechas» */
html.demo-outdoor .ou-more-dates__full { text-decoration: none; font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; padding: 2px 7px; margin-left: 4px; background: var(--ov-signal); color: #fff; vertical-align: 1px; }

/* ══ NUESTROS GUÍAS (Quiénes somos · ficha completa) ══ */
html.demo-outdoor .ov-guides--about { padding-top: 0; }
html.demo-outdoor .ov-guide-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
html.demo-outdoor .ov-guide--full { display: grid; grid-template-columns: 220px 1fr; border: 1px solid var(--ov-line); background: var(--ov-pine2); }
html.demo-outdoor .ov-guide--full figure { height: 100%; min-height: 280px; border: 0; }
html.demo-outdoor .ov-guide-body { padding: 24px 24px 22px; display: flex; flex-direction: column; }
html.demo-outdoor .ov-guide-body h3 { font-size: 1.25rem; color: var(--ov-snow); }
html.demo-outdoor .ov-guide-body p { color: var(--ov-stone); font-size: .9rem; margin: 14px 0 0; line-height: 1.65; }
html.demo-outdoor .ov-guide-more { margin-top: auto; padding-top: 16px; font-size: .66rem; letter-spacing: .18em; text-transform: uppercase; color: var(--ov-signal); }
html.demo-outdoor .ov-guide-more:hover { color: var(--ov-snow); }

/* ══ A MEDIDA (módulo salidas · banda y tarjeta) ══ */
html.demo-outdoor .ou-private h3 { font-family: var(--ov-disp-ff); text-transform: uppercase; letter-spacing: .03em; }
html.demo-outdoor .ou-private .btn-primary { font-family: var(--ov-mono-ff); font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; }

@media (max-width: 991px) {
    html.demo-outdoor .ov-fnews { grid-template-columns: 1fr; gap: 16px; }
    html.demo-outdoor .ov-guide-list { grid-template-columns: 1fr; }
}
@media (max-width: 575px) {
    html.demo-outdoor .ov-guide--full { grid-template-columns: 1fr; }
    html.demo-outdoor .ov-guide--full figure { height: 300px; min-height: 0; }
    html.demo-outdoor .ov-partners-row { gap: 16px 26px; }
    html.demo-outdoor .ov-partners-row li { height: 52px; }
    html.demo-outdoor .ov-partners-row img { max-height: 52px; max-width: 160px; }
}

/* ============================================================================
   ESQUEMA CLARO · html.demo-outdoor.scheme-light (site.theme.scheme=light)
   «Invierno»: fondos nieve + gris cálido, texto tinta (--dark), acento --primary,
   detalle --tertiary (amarillo). Las bandas oscuras que quedan: hero, CTA, page
   header y pie (en --dark). Mismo markup, sólo recolor. Los colores salen de las
   variables del tenant (SkinColorService), así que cualquier marca lo puede usar.
   ============================================================================ */
html.demo-outdoor.scheme-light {
    --ov-snow: var(--light, #FCFCFC);            /* fondo base */
    --ov-sand: var(--quaternary, #DEDAD5);       /* banda gris cálido */
    --ov-ink: var(--dark, #10223E);              /* texto / bandas oscuras */
    --ov-ink2: var(--secondary, #1A3357);        /* tono 2 del oscuro */
    --ov-sun: var(--tertiary, #F0BB4D);          /* detalle */
    --ov-mute: color-mix(in srgb, var(--dark, #10223E) 62%, white);
    --ov-line: color-mix(in srgb, var(--dark, #10223E) 14%, transparent);
    --ov-line-dark: rgba(255, 255, 255, .14);
}
html.demo-outdoor.scheme-light body, html.demo-outdoor.scheme-light .body,
html.demo-outdoor.scheme-light .ov-main { background: var(--ov-snow); color: var(--ov-ink); font-weight: 400; }
html.demo-outdoor.scheme-light .ov-topo { opacity: .09; background-image: repeating-radial-gradient(ellipse 900px 500px at 20% 110%, transparent 0 34px, var(--ov-ink) 34px 35px); }
html.demo-outdoor.scheme-light .ov-muted { color: var(--ov-mute); }
html.demo-outdoor.scheme-light .ov-btn { border-color: var(--ov-ink); color: var(--ov-ink); }
html.demo-outdoor.scheme-light .ov-btn--sig { background: var(--ov-signal); border-color: var(--ov-signal); color: #fff; }
html.demo-outdoor.scheme-light .ov-btn--out { color: var(--ov-ink); border-color: color-mix(in srgb, var(--ov-ink) 35%, transparent); }
html.demo-outdoor.scheme-light .ov-btn--out:hover { color: var(--ov-signal); border-color: var(--ov-signal); }
/* header claro (vidrio nieve) */
html.demo-outdoor.scheme-light .ov-header { background: color-mix(in srgb, var(--ov-snow) 86%, transparent); border-bottom-color: var(--ov-line); }
html.demo-outdoor.scheme-light .ov-nav a { color: var(--ov-ink); opacity: .78; font-weight: 600; }
html.demo-outdoor.scheme-light .ov-nav a:hover, html.demo-outdoor.scheme-light .ov-nav a.on { color: var(--ov-signal); opacity: 1; }
html.demo-outdoor.scheme-light .ov-burger span { background: var(--ov-ink); }
@media (max-width: 991px) {
    html.demo-outdoor.scheme-light .ov-nav { background: var(--ov-snow); border-color: var(--ov-line); }
    html.demo-outdoor.scheme-light .ov-nav a { color: var(--ov-ink); }
}
/* hero: foto con velo tinta (sigue oscuro) — botón outline blanco sobre foto */
html.demo-outdoor.scheme-light .ov-hero-bg::after { background: linear-gradient(180deg, color-mix(in srgb, var(--ov-ink) 42%, transparent), color-mix(in srgb, var(--ov-ink) 10%, transparent) 45%, color-mix(in srgb, var(--ov-ink) 82%, transparent)); }
html.demo-outdoor.scheme-light .ov-hero .ov-btn--out { color: #fff; border-color: rgba(255, 255, 255, .55); }
html.demo-outdoor.scheme-light .ov-hero .ov-btn--out:hover { background: #fff; color: var(--ov-ink); border-color: #fff; }
html.demo-outdoor.scheme-light .ov-coords { color: #fff; }
html.demo-outdoor.scheme-light .ov-hero h1 { color: #fff; }
html.demo-outdoor.scheme-light .ov-hero h1 em { color: var(--ov-sun); }
/* franja de datos */
html.demo-outdoor.scheme-light .ov-data { background: var(--ov-sand); border-color: var(--ov-line); }
html.demo-outdoor.scheme-light .ov-dcell { border-right-color: var(--ov-line); }
html.demo-outdoor.scheme-light .ov-dcell b { color: var(--ov-ink); }
html.demo-outdoor.scheme-light .ov-dcell span { color: var(--ov-mute); }
/* secciones */
html.demo-outdoor.scheme-light .ov-sec-head h2, html.demo-outdoor.scheme-light .ov-disp { color: var(--ov-ink); }
html.demo-outdoor.scheme-light .ov-sec-head p, html.demo-outdoor.scheme-light .ov-sec p { color: var(--ov-mute); }
html.demo-outdoor.scheme-light .ov-act { border-color: var(--ov-line); }
html.demo-outdoor.scheme-light .ov-act-bg::after { background: linear-gradient(180deg, transparent 40%, color-mix(in srgb, var(--ov-ink) 88%, transparent)); }
html.demo-outdoor.scheme-light .ov-act h3 { color: #fff; }
html.demo-outdoor.scheme-light .ov-act-n, html.demo-outdoor.scheme-light .ov-act-go { color: var(--ov-sun); }
/* tablero: banda gris cálido, filas tinta */
html.demo-outdoor.scheme-light .ov-board { background: var(--ov-sand); color: var(--ov-ink); }
html.demo-outdoor.scheme-light .ov-board .ov-k { color: var(--ov-signal); }
html.demo-outdoor.scheme-light .ov-board .ov-sec-head h2 { color: var(--ov-ink); }
html.demo-outdoor.scheme-light .ov-board .ov-sec-head p { color: var(--ov-mute); }
html.demo-outdoor.scheme-light .ov-brow { border-bottom-color: color-mix(in srgb, var(--ov-ink) 16%, transparent); }
html.demo-outdoor.scheme-light .ov-brow:hover { background: color-mix(in srgb, var(--ov-snow) 60%, transparent); }
html.demo-outdoor.scheme-light .ov-brow--head { color: var(--ov-mute); border-bottom-color: var(--ov-ink); }
html.demo-outdoor.scheme-light .ov-btrip small, html.demo-outdoor.scheme-light .ov-bdur { color: var(--ov-mute); }
html.demo-outdoor.scheme-light .ov-bdif, html.demo-outdoor.scheme-light .ov-bcupo.low { color: var(--ov-signal); }
html.demo-outdoor.scheme-light .ov-bgo { background: var(--ov-ink); color: #fff; }
html.demo-outdoor.scheme-light .ov-bgo:hover { background: var(--ov-signal); }
html.demo-outdoor.scheme-light .ov-brow--full .ov-bgo { color: var(--ov-ink); box-shadow: inset 0 0 0 1px var(--ov-ink); }
html.demo-outdoor.scheme-light .ov-board-all .ov-btn--out { color: var(--ov-ink); border-color: color-mix(in srgb, var(--ov-ink) 35%, transparent); }
/* insignia / cooperativa / guías / blog */
html.demo-outdoor.scheme-light .ov-trip, html.demo-outdoor.scheme-light .ov-log-card, html.demo-outdoor.scheme-light .ov-guide--full { background: #fff; border-color: var(--ov-line); }
html.demo-outdoor.scheme-light .ov-trip h3, html.demo-outdoor.scheme-light .ov-trip-price, html.demo-outdoor.scheme-light .ov-log-card h3,
html.demo-outdoor.scheme-light .ov-guide h3, html.demo-outdoor.scheme-light .ov-guide-body h3, html.demo-outdoor.scheme-light .ov-coop h2 { color: var(--ov-ink); }
html.demo-outdoor.scheme-light .ov-trip-body p, html.demo-outdoor.scheme-light .ov-trip-meta, html.demo-outdoor.scheme-light .ov-coop p,
html.demo-outdoor.scheme-light .ov-guide-body p { color: var(--ov-mute); }
html.demo-outdoor.scheme-light .ov-trip-foot { border-top-color: var(--ov-line); }
html.demo-outdoor.scheme-light .ov-coop { background: var(--ov-snow); border-color: var(--ov-line); }
html.demo-outdoor.scheme-light .ov-cert { border-color: var(--ov-line); color: var(--ov-ink); }
html.demo-outdoor.scheme-light .ov-cert-dot { background: var(--ov-sun); }
html.demo-outdoor.scheme-light .ov-coop-tag { background: var(--ov-ink); color: #fff; }
html.demo-outdoor.scheme-light .ov-guide figure { border-color: var(--ov-line); }
html.demo-outdoor.scheme-light .ov-guide img { filter: none; }
html.demo-outdoor.scheme-light .ov-log-card:hover { border-color: var(--ov-signal); }
/* reseña */
html.demo-outdoor.scheme-light .ov-stars { color: var(--ov-sun); }
html.demo-outdoor.scheme-light .ov-quote blockquote { color: var(--ov-ink); font-weight: 400; }
html.demo-outdoor.scheme-light .ov-quote cite { color: var(--ov-mute); }
/* CTA final: velo tinta */
html.demo-outdoor.scheme-light .ov-cta-bg::after { background: color-mix(in srgb, var(--ov-ink) 72%, transparent); }
html.demo-outdoor.scheme-light .ov-cta h2 { color: #fff; }
html.demo-outdoor.scheme-light .ov-cta h2 em { color: var(--ov-sun); }
html.demo-outdoor.scheme-light .ov-cta .ov-btn--out { color: #fff; border-color: rgba(255, 255, 255, .55); }
html.demo-outdoor.scheme-light .ov-cta .ov-btn--out:hover { background: #fff; color: var(--ov-ink); }
/* page header: banda tinta */
html.demo-outdoor.scheme-light .ov-pagehead { background: var(--ov-ink); border-bottom: 0; }
html.demo-outdoor.scheme-light .ov-pagehead .ov-topo { background-image: repeating-radial-gradient(ellipse 900px 500px at 20% 110%, transparent 0 34px, #fff 34px 35px); opacity: .07; }
html.demo-outdoor.scheme-light .ov-pagehead h1 { color: #fff; }
html.demo-outdoor.scheme-light .ov-pagehead p, html.demo-outdoor.scheme-light .ov-crumb li, html.demo-outdoor.scheme-light .ov-crumb a { color: rgba(255, 255, 255, .7); }
html.demo-outdoor.scheme-light .ov-crumb li span { color: var(--ov-sun); }
/* about / contact */
html.demo-outdoor.scheme-light .ov-about-title { color: var(--ov-ink); }
/* respaldo (logos) en página */
html.demo-outdoor.scheme-light .ov-partners--page h4 { color: var(--ov-signal); }
/* pie: tinta */
html.demo-outdoor.scheme-light .ov-footer { background: var(--ov-ink); border-top: 0; }
html.demo-outdoor.scheme-light .ov-footer h4, html.demo-outdoor.scheme-light .ov-partners h4 { color: var(--ov-sun); }
html.demo-outdoor.scheme-light .ov-footer .ov-partners { border-bottom-color: var(--ov-line-dark); }
html.demo-outdoor.scheme-light .ov-fbrand p, html.demo-outdoor.scheme-light .ov-footer ul a, html.demo-outdoor.scheme-light .ov-footer ul li,
html.demo-outdoor.scheme-light .ov-fbot, html.demo-outdoor.scheme-light .ov-fbot a, html.demo-outdoor.scheme-light .ov-fnews p { color: rgba(255, 255, 255, .72); }
html.demo-outdoor.scheme-light .ov-footer ul a:hover, html.demo-outdoor.scheme-light .ov-fbot a:hover { color: #fff; }
html.demo-outdoor.scheme-light .ov-social a { border-color: var(--ov-line-dark); color: rgba(255, 255, 255, .72); }
html.demo-outdoor.scheme-light .ov-social a:hover { border-color: var(--ov-sun); color: var(--ov-sun); }
html.demo-outdoor.scheme-light .ov-fcommunity { color: #fff; border-bottom-color: var(--ov-sun); }
html.demo-outdoor.scheme-light .ov-fbot, html.demo-outdoor.scheme-light .ov-fnews { border-top-color: var(--ov-line-dark); }
html.demo-outdoor.scheme-light .ov-fnews .ov-fnews-input { background: rgba(255, 255, 255, .08); border-color: var(--ov-line-dark); color: #fff; }
html.demo-outdoor.scheme-light .ov-fnews .ov-fnews-input::placeholder { color: rgba(255, 255, 255, .55); }
/* Capa B · módulos compartidos en claro: secciones nieve, cards blancas, texto tinta */
html.demo-outdoor.scheme-light .main > section:not(.ov-board):not(.ov-hero):not(.ov-cta):not(.ov-pagehead),
html.demo-outdoor.scheme-light .main .section:not(.ov-hero):not(.ov-cta):not(.ov-board):not(.ov-pagehead) { background: var(--ov-snow) !important; }
html.demo-outdoor.scheme-light .sort-destination-loader:after { background-color: var(--ov-snow); }
html.demo-outdoor.scheme-light .main .card, html.demo-outdoor.scheme-light .main .service-item, html.demo-outdoor.scheme-light .main .gallery-item,
html.demo-outdoor.scheme-light .main .team-item, html.demo-outdoor.scheme-light .main .post-item, html.demo-outdoor.scheme-light .main .thumb-info,
html.demo-outdoor.scheme-light .main .ou-faq__item, html.demo-outdoor.scheme-light .main .ou-private, html.demo-outdoor.scheme-light .main .ou-community,
html.demo-outdoor.scheme-light .main .blog-card { background: #fff !important; border: 1px solid var(--ov-line) !important; color: var(--ov-ink); }
html.demo-outdoor.scheme-light .main .card .card-body { color: var(--ov-ink); }
html.demo-outdoor.scheme-light .main h1, html.demo-outdoor.scheme-light .main h2, html.demo-outdoor.scheme-light .main h3,
html.demo-outdoor.scheme-light .main h4, html.demo-outdoor.scheme-light .main h5 { color: var(--ov-ink); }
html.demo-outdoor.scheme-light .main p, html.demo-outdoor.scheme-light .main li, html.demo-outdoor.scheme-light .main .text-color-dark { color: var(--ov-mute); }
html.demo-outdoor.scheme-light .main h1.text-color-dark, html.demo-outdoor.scheme-light .main h2.text-color-dark, html.demo-outdoor.scheme-light .main h3.text-color-dark,
html.demo-outdoor.scheme-light .main h4.text-color-dark, html.demo-outdoor.scheme-light .main h5.text-color-dark, html.demo-outdoor.scheme-light .main h6.text-color-dark { color: var(--ov-ink) !important; }
html.demo-outdoor.scheme-light .main p.text-color-dark, html.demo-outdoor.scheme-light .main span.text-color-dark, html.demo-outdoor.scheme-light .main li.text-color-dark { color: var(--ov-mute) !important; }
html.demo-outdoor.scheme-light .main .bg-color-light, html.demo-outdoor.scheme-light .main .bg-light { background: var(--ov-sand) !important; }
/* módulo salidas: lo que las vistas pintan inline para «dark» pasa a tinta/nieve */
html.demo-outdoor.scheme-light .main .ou-card__title, html.demo-outdoor.scheme-light .main .ou-price, html.demo-outdoor.scheme-light .main .ou-detail h1,
html.demo-outdoor.scheme-light .main .ou-detail .font-weight-bold:not(.btn):not(.alert) { color: var(--ov-ink) !important; }
html.demo-outdoor.scheme-light .main .ou-facts, html.demo-outdoor.scheme-light .main .ou-faq__item p { color: var(--ov-mute) !important; }
html.demo-outdoor.scheme-light .main .btn-outline-primary { color: var(--ov-signal); border-color: var(--ov-signal); }
html.demo-outdoor.scheme-light .main .btn-outline-primary:hover { background: var(--ov-signal); color: #fff; }
html.demo-outdoor.scheme-light .main .btn-primary { background: var(--ov-signal); border-color: var(--ov-signal); color: #fff !important; }
html.demo-outdoor.scheme-light .main .badge { background: var(--ov-sand); color: var(--ov-ink); }
html.demo-outdoor.scheme-light .main .ou-spots--full { background: var(--ov-sand); color: var(--ov-mute); }
/* hero y CTA quedan sobre foto: texto blanco aunque la Capa B pinte los h1/p del .main en tinta */
html.demo-outdoor.scheme-light .main .ov-hero h1, html.demo-outdoor.scheme-light .main .ov-cta h2 { color: #fff; }
html.demo-outdoor.scheme-light .main .ov-hero h1 em, html.demo-outdoor.scheme-light .main .ov-cta h2 em { color: var(--ov-sun); }
html.demo-outdoor.scheme-light .main .ov-hero-sub p, html.demo-outdoor.scheme-light .main .ov-cta p { color: rgba(255, 255, 255, .88); }
html.demo-outdoor.scheme-light .main .ov-act h3 { color: #fff; }
html.demo-outdoor.scheme-light .main .ov-act p { color: rgba(255, 255, 255, .78); }
html.demo-outdoor.scheme-light .main .ov-pagehead h1 { color: #fff; }
html.demo-outdoor.scheme-light .main .ov-pagehead p { color: rgba(255, 255, 255, .7); }
/* botones sobre bandas tinta (pie, newsletter): amarillo con texto tinta — la combinación del manual */
html.demo-outdoor.scheme-light .ov-footer .ov-fcta,
html.demo-outdoor.scheme-light .ov-fnews .ov-fnews-btn { background: var(--ov-sun); color: var(--ov-ink); font-weight: 700; }
html.demo-outdoor.scheme-light .ov-footer .ov-fcta:hover,
html.demo-outdoor.scheme-light .ov-fnews .ov-fnews-btn:hover { background: #fff; color: var(--ov-ink); }
/* hover de los botones terracota: terracota más oscuro con texto blanco (signal2 = tertiary = amarillo → texto blanco ilegible) */
html.demo-outdoor.scheme-light { --ov-signal2: color-mix(in srgb, var(--primary, #A44424) 82%, black); }
html.demo-outdoor.scheme-light .ov-hd-cta:hover, html.demo-outdoor.scheme-light .ov-btn--sig:hover,
html.demo-outdoor.scheme-light .main .btn-primary:hover { background: var(--ov-signal2); border-color: var(--ov-signal2); color: #fff; }
html.demo-outdoor .ov-hd-cta:hover, html.demo-outdoor .ov-btn:hover, html.demo-outdoor .ov-bgo:hover, html.demo-outdoor .ov-fcta:hover { text-decoration: none; }
/* el theme pinta #footer a (id → gana a nuestras clases): fijar el color del CTA del pie con la misma arma */
html.demo-outdoor #footer .ov-fcta, html.demo-outdoor #footer .ov-fcta:hover { color: #fff; }
html.demo-outdoor.scheme-light #footer .ov-fcta { color: var(--ov-ink); }
html.demo-outdoor.scheme-light #footer .ov-fcta:hover { background: #fff; color: var(--ov-ink); }
html.demo-outdoor.scheme-light #footer .ov-fnews-btn, html.demo-outdoor.scheme-light #footer .ov-fnews-btn:hover { color: var(--ov-ink); }
/* Regla de acento del esquema claro (misma que el logo del manual): sobre fondo claro el acento es el
   terracota; sobre navy o foto oscura el acento es el amarillo (el terracota no contrasta: 2.6:1).
   El amarillo nunca va sobre fondo claro (1.7:1). Detalles que quedaban cruzados: */
html.demo-outdoor.scheme-light .ov-stars, html.demo-outdoor.scheme-light .ov-cert-dot { color: var(--ov-signal); background-color: transparent; }
html.demo-outdoor.scheme-light .ov-cert-dot { background: var(--ov-signal); }
html.demo-outdoor.scheme-light .ov-cta .ov-k, html.demo-outdoor.scheme-light .ov-hero .ov-k { color: var(--ov-sun); }
html.demo-outdoor.scheme-light .ov-board .ov-k, html.demo-outdoor.scheme-light .ov-board .ov-bdif, html.demo-outdoor.scheme-light .ov-board .ov-bcupo.low { color: var(--ov-signal2); }
/* Chip de cupo de la ficha con la paleta de la marca (el theme traía verde agua y degradés de plantilla):
   con lugar = arena + punto verde · pocos lugares = amarillo · completa = terracota liso · cerrada/consultar = arena */
html.demo-outdoor .main .ou-actions__spots { background-image: none !important; border: 0 !important; display: flex; align-items: center; letter-spacing: .01em; }
html.demo-outdoor .main .ou-actions__spots.alert-success { background: var(--ov-sand, #DEDAD5) !important; color: var(--ov-ink, #10223E) !important; }
html.demo-outdoor .main .ou-actions__spots.alert-success i { color: #2E7D4F; }
html.demo-outdoor .main .ou-actions__spots.alert-warning { background: var(--ov-sun, #F0BB4D) !important; color: var(--ov-ink, #10223E) !important; }
html.demo-outdoor .main .ou-actions__spots.alert-danger { background: var(--primary, #A44424) !important; color: #fff !important; }
html.demo-outdoor .main .ou-actions__spots.alert-secondary { background: var(--ov-sand, #DEDAD5) !important; color: var(--ov-ink, #10223E) !important; }

/* ── Pulido de cierre (relevamiento 15/10) ─────────────────────────────────────────── */
/* Pie: el theme pinta #footer a en gris #555 (2.1:1 sobre navy) y su id gana a las clases → misma arma */
html.demo-outdoor.scheme-light #footer.ov-footer ul a, html.demo-outdoor.scheme-light #footer .ov-fbot a,
html.demo-outdoor.scheme-light #footer .ov-social a { color: rgba(255, 255, 255, .78); }
html.demo-outdoor.scheme-light #footer .ov-fcommunity { color: #fff; }
html.demo-outdoor.scheme-light #footer.ov-footer ul a:hover, html.demo-outdoor.scheme-light #footer .ov-fbot a:hover,
html.demo-outdoor.scheme-light #footer .ov-fcommunity:hover, html.demo-outdoor.scheme-light #footer .ov-social a:hover { color: var(--ov-sun); }
html.demo-outdoor.scheme-light #footer .ov-social a { border-color: rgba(255, 255, 255, .3); }
html.demo-outdoor .ov-footer .ov-partners { padding-top: 8px; }
html.demo-outdoor #footer { padding-top: 56px; }
/* Logos de respaldo: misma altura óptica (los escudos quedaban chicos al lado del ancho de A3) */
html.demo-outdoor .ov-partners-row li { height: 64px; }
html.demo-outdoor .ov-partners-row img { max-height: 64px; max-width: 190px; }
/* Cuerpo de texto del esquema claro: un punto más oscuro (estaba al límite de 4.5:1) */
html.demo-outdoor.scheme-light { --ov-mute: color-mix(in srgb, var(--dark, #10223E) 76%, white); }
/* Tarjetas de actividad sobre fotos de nieve: degradé más alto y bajada legible */
html.demo-outdoor.scheme-light .ov-act-bg::after { background: linear-gradient(180deg, transparent 25%, color-mix(in srgb, var(--ov-ink) 55%, transparent) 55%, color-mix(in srgb, var(--ov-ink) 92%, transparent)); }
html.demo-outdoor .ov-act p { font-size: .9rem; color: rgba(255, 255, 255, .9); }
/* Coordenadas del hero sobre foto clara: sombra suave para que se lean */
html.demo-outdoor .ov-coords { opacity: 1; text-shadow: 0 1px 10px rgba(0, 0, 0, .55); }
/* Títulos sin palabra sola en la última línea */
html.demo-outdoor h1, html.demo-outdoor h2, html.demo-outdoor .ov-disp { text-wrap: balance; }
/* Home · tablero: la fecha no se parte */
html.demo-outdoor .ov-bdate { white-space: nowrap; }
@media (max-width: 760px) {
    /* áreas de toque de al menos 44px */
    html.demo-outdoor .ov-bgo, html.demo-outdoor .ou-filters .btn, html.demo-outdoor .ov-btn { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
    html.demo-outdoor .ov-board-all { text-align: center; }
    html.demo-outdoor .ov-board-all .ov-btn { width: 100%; }
    /* «Ver bitácora» va después de las notas, no antes */
    html.demo-outdoor .ov-log .ov-sec-head .ov-btn { display: none; }
}
html.demo-outdoor .ov-log-more { display: none; }
@media (max-width: 760px) { html.demo-outdoor .ov-log-more { display: flex; width: 100%; margin-top: 24px; } }
/* Contacto: etiquetas visibles, enlaces tel/mail, WhatsApp arriba, campos claros en el esquema claro (como la inscripción) */
html.demo-outdoor .ov-field { display: block; margin: 0; }
html.demo-outdoor .ov-label { display: block; font-size: .78rem; font-weight: 600; margin-bottom: 6px; color: var(--ov-snow); }
html.demo-outdoor .ov-contact-form .ov-input { margin-bottom: 16px; }
html.demo-outdoor .ov-contact-list a { color: inherit; text-decoration: none; border-bottom: 1px solid var(--ov-line); }
html.demo-outdoor .ov-contact-list a:hover { color: var(--ov-signal); border-bottom-color: var(--ov-signal); }
html.demo-outdoor .ov-contact-wa { margin: 4px 0 6px; }
html.demo-outdoor .ov-consent { display: flex; gap: 10px; align-items: flex-start; font-size: .82rem; margin-bottom: 16px; cursor: pointer; }
html.demo-outdoor .ov-consent input { margin-top: 3px; width: 18px; height: 18px; flex-shrink: 0; }
html.demo-outdoor .ov-alert--error { border-color: #c0392b; }
html.demo-outdoor.scheme-light .ov-label { color: var(--ov-ink); }
html.demo-outdoor.scheme-light .ov-contact-list li { color: var(--ov-ink); border-bottom-color: var(--ov-line-dark, rgba(16,34,62,.12)); }
html.demo-outdoor.scheme-light .ov-contact-form .ov-input { background: #fff; color: var(--ov-ink); border-color: rgba(16, 34, 62, .2); }
html.demo-outdoor.scheme-light .ov-contact-form .ov-input::placeholder { color: color-mix(in srgb, var(--ov-ink) 45%, white); }
html.demo-outdoor.scheme-light .ov-alert { color: var(--ov-ink); }
@media (max-width: 760px) { html.demo-outdoor .ov-form-row { grid-template-columns: 1fr; gap: 0; } html.demo-outdoor .ov-contact-wa { width: 100%; } }
/* Home · tablero: fila completa legible (heredaba fondo tinta + texto tinta) y sin columna de dificultad si nadie la cargó */
html.demo-outdoor.scheme-light .ov-brow--full .ov-bgo { background: transparent; }
html.demo-outdoor.scheme-light .ov-brow--full .ov-bgo:hover { background: var(--ov-ink); color: #fff; }
html.demo-outdoor .ov-board--nodif .ov-bdif, html.demo-outdoor .ov-board--nodif .ov-brow--head > span:nth-child(4) { display: none; }
@media (min-width: 901px) { html.demo-outdoor .ov-board--nodif .ov-brow { grid-template-columns: 120px 1.5fr 130px 110px 150px; } }
/* Blog en celular: tarjetas más juntas y paginación tocable */
@media (max-width: 575.98px) {
    html.demo-outdoor .main .blog-card, html.demo-outdoor .main article.post { margin-bottom: 24px !important; }
    html.demo-outdoor .main .pagination .page-link { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
}
/* Home · numeración de las tarjetas de actividad legible sobre la foto */
html.demo-outdoor .ov-act .ov-act-n { color: #fff; opacity: .95; text-shadow: 0 1px 8px rgba(0, 0, 0, .6); }

/* ── Selector de idioma inline (ES · EN) en el header ─────────────────── */
html.demo-outdoor .cd-lang-inline { display: inline-flex; align-items: center; gap: 7px; font-size: .68rem; letter-spacing: .16em; font-weight: 600; }
html.demo-outdoor .cd-lang-inline__item { color: var(--ov-stone); text-decoration: none; padding: 4px 1px; border-bottom: 1px solid transparent; transition: .2s; }
html.demo-outdoor .cd-lang-inline__item:hover { color: var(--ov-signal); }
html.demo-outdoor .cd-lang-inline__item.is-current { color: var(--ov-signal); border-bottom-color: currentColor; }
html.demo-outdoor .cd-lang-inline__sep { color: var(--ov-stone); opacity: .5; }
