/* ============================================================================
   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 {
    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; }

/* ══ 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-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; }

/* ══ 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 ══ */
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-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); }
/* 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) {
    html.demo-outdoor .ov-nav {
        display: none; position: absolute; top: 100%; left: 0; right: 0;
        flex-direction: column; gap: 0; background: rgba(0, 0, 0, .93);
        border-bottom: 1px solid var(--ov-line); padding: 8px 0;
    }
    html.demo-outdoor .ov-nav.open { display: flex; }
    html.demo-outdoor .ov-nav a { padding: 14px 34px; }
    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; }
}
@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; }
}
@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; }
}
