/* ============================================================================
   demo-bodega.css · Bodega Boutique (LIGHT "terroir premium",
   pergamino + borravino + cobre) · Capa 2
   Scopeado 100% en html.demo-bodega. Escrito entero desde el blueprint propio
   (mockup "Las Ánimas") — NO deriva de ningún theme Porto. Re-skineable: los
   colores salen de var(--primary)/(--secondary)/(--tertiary)/(--quaternary)/
   (--dark)/(--light), que SkinColorService reinyecta por tenant. Solo literales
   de contraste (rgba sobre foto / sobre borravino) quedan inline.
   Dirección #7 "terroir premium": Libre Caslon Text (serif old-style, itálicas
   cobre en los remates <em>) + Jost (UI/eyebrows .36em) + EB Garamond (quote).
   Estética de etiqueta de vino: marcos doble filete, reglas horizontales,
   secciones oscuras borravino (data strip + agenda) sobre base clara.
   Capa A (cd-system-base.css) ya alinea botones/badges/paginación globales;
   acá va la Capa B: home custom + ensamble de módulos (products/services/
   gallery/faqs) + overrides #57 (solo en bandas oscuras) y #58 (#footer a).
   ============================================================================ */

html.demo-bodega {
    --bo-wine: var(--primary, #5A1A2A);
    --bo-wine2: var(--primary-100, #401320);
    --bo-copper: var(--secondary, #B47B45);
    --bo-copper2: var(--tertiary, #96622F);
    --bo-stone: var(--quaternary, #8A7A6E);
    --bo-ink: var(--dark, #2A1018);
    --bo-parch: var(--light, #F4EDE0);
    --bo-paper: color-mix(in srgb, var(--light, #F4EDE0) 55%, white);
    --bo-line: rgba(var(--primary-rgb, 90, 26, 42), .16);
    --bo-line-soft: rgba(var(--primary-rgb, 90, 26, 42), .09);
    --bo-parch-line: rgba(244, 237, 224, .16);       /* líneas sobre borravino */
    --bo-gold: color-mix(in srgb, var(--bo-copper) 72%, white); /* cobre claro sobre oscuro */
    --bo-serif-ff: var(--font-family-secondary, "Libre Caslon Text", Didot, Georgia, serif);
    --bo-sans-ff: var(--font-family-primary, "Jost", "Avenir Next", "Helvetica Neue", system-ui, sans-serif);
    --bo-quote-ff: var(--font-family-tertiary, "EB Garamond", Georgia, serif);
}

html.demo-bodega body,
html.demo-bodega .body,
html.demo-bodega .bo-main {
    background: var(--bo-parch);
    color: var(--bo-ink);
    font-family: var(--bo-sans-ff);
    font-weight: 300;
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
}
html.demo-bodega .bo-main p,
html.demo-bodega .bo-footer p,
html.demo-bodega .main p { font-family: var(--bo-sans-ff); }
html.demo-bodega img { max-width: 100%; }
html.demo-bodega a { color: inherit; text-decoration: none; }
html.demo-bodega .bo-wrap { max-width: 1240px; margin: 0 auto; padding: 0 34px; position: relative; z-index: 2; }
html.demo-bodega .bo-serif {
    font-family: var(--bo-serif-ff);
    font-weight: 500;
    line-height: 1.1;
    letter-spacing: .005em;
    margin: 0;
}
html.demo-bodega .bo-serif em, html.demo-bodega .bo-main h1 em,
html.demo-bodega .bo-main h2 em { font-style: italic; color: var(--bo-copper2); }
html.demo-bodega .bo-k {
    font-family: var(--bo-sans-ff); font-size: .66rem; letter-spacing: .36em;
    text-transform: uppercase; color: var(--bo-copper2); font-weight: 500; display: inline-block;
}
/* regla horizontal de etiqueta (filetes a ambos lados del eyebrow) */
html.demo-bodega .bo-rule { display: flex; align-items: center; justify-content: center; gap: 14px; }
html.demo-bodega .bo-rule::before, html.demo-bodega .bo-rule::after { content: ""; height: 1px; background: var(--bo-line); flex: 0 0 44px; }
html.demo-bodega .bo-rule--left { justify-content: flex-start; }
html.demo-bodega .bo-rule--left::before { display: none; }

/* ── botones (rectos, uppercase Jost, borde borravino) ── */
html.demo-bodega .bo-btn {
    display: inline-flex; align-items: center; gap: .6em;
    font-family: var(--bo-sans-ff); font-size: .72rem; font-weight: 500;
    letter-spacing: .2em; text-transform: uppercase; padding: 15px 32px;
    border: 1px solid var(--bo-wine); border-radius: var(--border-radius, 0);
    cursor: pointer; transition: .28s;
}
html.demo-bodega .bo-btn--fill { background: var(--bo-wine); border-color: var(--bo-wine); color: var(--bo-parch); }
html.demo-bodega .bo-btn--fill:hover { background: var(--bo-wine2); border-color: var(--bo-wine2); color: var(--bo-parch); }
html.demo-bodega .bo-btn--ghost { color: var(--bo-wine); }
html.demo-bodega .bo-btn--ghost:hover { background: var(--bo-wine); color: var(--bo-parch); }

/* ══ HEADER (barra pergamino sticky glass) ══ */
html.demo-bodega .bo-header {
    position: sticky; top: 0; z-index: 1030;
    background: rgba(244, 237, 224, .93); backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--bo-line);
}
html.demo-bodega .bo-bar {
    max-width: 1240px; margin: 0 auto; padding: 14px 34px;
    display: flex; align-items: center; justify-content: space-between; gap: 24px;
}
html.demo-bodega .bo-brand { display: flex; align-items: center; }
html.demo-bodega .bo-nav { display: flex; gap: 28px; }
html.demo-bodega .bo-nav a {
    font-size: .7rem; font-weight: 400; letter-spacing: .18em;
    text-transform: uppercase; color: var(--bo-stone); transition: .2s;
}
html.demo-bodega .bo-nav a:hover, html.demo-bodega .bo-nav a.on { color: var(--bo-wine); }
html.demo-bodega .bo-hright { display: flex; align-items: center; gap: 16px; }
html.demo-bodega .bo-hd-cta {
    font-size: .68rem; font-weight: 500; letter-spacing: .18em; text-transform: uppercase;
    border: 1px solid var(--bo-copper); color: var(--bo-copper2); padding: 10px 20px; transition: .25s;
}
html.demo-bodega .bo-hd-cta:hover { background: var(--bo-wine); border-color: var(--bo-wine); color: var(--bo-parch); }
html.demo-bodega .bo-burger { display: none; background: none; border: 0; flex-direction: column; gap: 5px; cursor: pointer; padding: 6px; }
html.demo-bodega .bo-burger span { width: 24px; height: 2px; background: var(--bo-wine); display: block; }

/* ══ HERO (atardecer full-bleed + velo tinta) ══ */
html.demo-bodega .bo-hero { position: relative; min-height: 96vh; display: flex; align-items: flex-end; overflow: hidden; }
html.demo-bodega .bo-hero-bg { position: absolute; inset: 0; background-size: cover; background-position: center; }
html.demo-bodega .bo-hero-bg::after {
    content: ""; position: absolute; inset: 0;
    background: linear-gradient(180deg, rgba(42, 16, 24, .42), rgba(42, 16, 24, .08) 42%, rgba(42, 16, 24, .88));
}
html.demo-bodega .bo-hero-inner { position: relative; z-index: 2; width: 100%; padding-bottom: 64px; }
html.demo-bodega .bo-hero .bo-k { display: block; margin-bottom: 14px; color: var(--bo-gold); }
html.demo-bodega .bo-hero h1 { font-size: clamp(2.9rem, 6.8vw, 5.6rem); color: var(--bo-parch); max-width: 16ch; text-wrap: balance; }
html.demo-bodega .bo-hero h1 em { color: var(--bo-gold); }
html.demo-bodega .bo-hero-sub { display: flex; justify-content: space-between; align-items: flex-end; gap: 26px; margin-top: 22px; flex-wrap: wrap; }
html.demo-bodega .bo-hero-sub p { font-size: 1.05rem; color: rgba(255, 255, 255, .85); max-width: 46ch; margin: 0; }
html.demo-bodega .bo-hero-actions { display: flex; gap: 12px; flex-wrap: wrap; }
html.demo-bodega .bo-hero .bo-btn--fill { background: var(--bo-copper); border-color: var(--bo-copper); color: var(--bo-ink); }
html.demo-bodega .bo-hero .bo-btn--fill:hover { background: var(--bo-gold); border-color: var(--bo-gold); }
html.demo-bodega .bo-hero .bo-btn--ghost { color: var(--bo-parch); border-color: rgba(244, 237, 224, .55); }
html.demo-bodega .bo-hero .bo-btn--ghost:hover { background: var(--bo-parch); color: var(--bo-wine2); border-color: var(--bo-parch); }

/* ══ FRANJA DATOS DE FINCA (borravino) ══ */
html.demo-bodega .bo-data { background: var(--bo-wine2); color: var(--bo-parch); }
html.demo-bodega .bo-data-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; }
html.demo-bodega .bo-dcell { padding: 30px 16px; text-align: center; border-right: 1px solid var(--bo-parch-line); }
html.demo-bodega .bo-dcell:last-child { border-right: 0; }
html.demo-bodega .bo-dcell b { font-size: 2.05rem; font-weight: 500; color: var(--bo-gold); display: block; line-height: 1; }
html.demo-bodega .bo-dcell span { font-size: .6rem; letter-spacing: .26em; text-transform: uppercase; color: rgba(244, 237, 224, .55); }

/* ── section heads ── */
html.demo-bodega section { position: relative; }
html.demo-bodega .bo-sec-head { max-width: 640px; margin-bottom: 52px; }
html.demo-bodega .bo-sec-head.bo-center, html.demo-bodega .bo-center { margin-left: auto; margin-right: auto; text-align: center; }
html.demo-bodega .bo-sec-head .bo-rule { margin-bottom: 14px; }
html.demo-bodega .bo-sec-head h2 { font-size: clamp(1.9rem, 3.6vw, 2.9rem); text-wrap: balance; color: var(--bo-wine2); }
html.demo-bodega .bo-sec-head p { color: var(--bo-stone); margin: 14px 0 0; }

/* ══ CATÁLOGO DE ETIQUETAS (products — cards 3:4 con tag de partida) ══ */
html.demo-bodega .bo-labels { background: var(--bo-paper); border-top: 1px solid var(--bo-line-soft); border-bottom: 1px solid var(--bo-line-soft); padding: 96px 0; }
html.demo-bodega .bo-lgrid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
html.demo-bodega .bo-lcard { background: var(--bo-parch); border: 1px solid var(--bo-line); padding: 10px; transition: .3s; position: relative; display: block; }
html.demo-bodega .bo-lcard:hover { transform: translateY(-5px); box-shadow: 0 22px 44px -20px rgba(var(--primary-rgb, 90, 26, 42), .35); }
html.demo-bodega .bo-lph { aspect-ratio: 3/4; overflow: hidden; position: relative; background: var(--bo-paper); }
html.demo-bodega .bo-lph img { width: 100%; height: 100%; object-fit: cover; display: block; }
html.demo-bodega .bo-lph-empty { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 3rem; color: var(--bo-line); }
html.demo-bodega .bo-ltag {
    position: absolute; top: 18px; left: -1px; z-index: 2; background: var(--bo-wine);
    color: var(--bo-parch); font-size: .56rem; letter-spacing: .22em; text-transform: uppercase; padding: 6px 12px;
}
html.demo-bodega .bo-lbody { padding: 20px 12px 14px; text-align: center; border: 1px solid var(--bo-line-soft); border-top: 0; }
html.demo-bodega .bo-lbody h3 { font-size: 1.16rem; letter-spacing: .06em; color: var(--bo-wine2); }
html.demo-bodega .bo-lvar { font-size: .6rem; letter-spacing: .3em; text-transform: uppercase; color: var(--bo-copper2); margin-top: 6px; }
html.demo-bodega .bo-ldesc { font-size: .8rem; color: var(--bo-stone); margin: 10px 0 0; line-height: 1.55; }
html.demo-bodega .bo-lprice { font-size: 1.05rem; color: var(--bo-wine); margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--bo-line-soft); }
html.demo-bodega .bo-lprice span { font-size: .62rem; letter-spacing: .2em; text-transform: uppercase; color: var(--bo-stone); font-family: var(--bo-sans-ff); display: block; margin-top: 2px; }
html.demo-bodega .bo-more { text-align: center; margin-top: 40px; }

/* ══ LA FINCA (editorial 2 imágenes solapadas) ══ */
html.demo-bodega .bo-finca { padding: 96px 0 140px; }
html.demo-bodega .bo-finca-cols { display: grid; grid-template-columns: 1.05fr .95fr; gap: 64px; align-items: center; }
html.demo-bodega .bo-finca-imgs { position: relative; }
html.demo-bodega .bo-finca-a { width: 82%; aspect-ratio: 4/5; object-fit: cover; display: block; }
html.demo-bodega .bo-finca-b { position: absolute; right: 0; bottom: -48px; width: 52%; aspect-ratio: 1; object-fit: cover; border: 8px solid var(--bo-parch); box-shadow: 0 24px 48px -18px rgba(42, 16, 24, .35); }
html.demo-bodega .bo-finca h2 { font-size: clamp(1.9rem, 3.4vw, 2.8rem); margin: 14px 0 20px; color: var(--bo-wine2); }
html.demo-bodega .bo-finca p { color: color-mix(in srgb, var(--bo-ink) 72%, var(--bo-stone)); margin-bottom: 14px; max-width: 52ch; }
html.demo-bodega .bo-firma { font-family: var(--bo-quote-ff); font-style: italic; font-size: 1.15rem; color: var(--bo-copper2); margin-top: 18px; }

/* ══ TABLERO AGENDA (killer — banda borravino) ══
     Banda oscura sobre base clara: contraste cuidado (trampa #57 aplica acá). */
html.demo-bodega .bo-agenda { background: var(--bo-wine2); color: var(--bo-parch); padding: 96px 0; }
html.demo-bodega .bo-agenda .bo-sec-head h2 { color: var(--bo-parch); }
html.demo-bodega .bo-agenda .bo-sec-head h2 em { color: var(--bo-gold); }
html.demo-bodega .bo-agenda .bo-sec-head p { color: rgba(244, 237, 224, .6); }
html.demo-bodega .bo-agenda .bo-k { color: var(--bo-gold); }
html.demo-bodega .bo-agenda .bo-rule::before, html.demo-bodega .bo-agenda .bo-rule::after { background: var(--bo-parch-line); }
html.demo-bodega .bo-board { max-width: 980px; margin: 0 auto; border: 1px solid rgba(244, 237, 224, .2); }
html.demo-bodega .bo-bhead {
    display: grid; grid-template-columns: 1.5fr .8fr .7fr 1fr .9fr; gap: 10px; padding: 14px 26px;
    font-size: .58rem; letter-spacing: .26em; text-transform: uppercase; color: var(--bo-gold);
    border-bottom: 1px solid rgba(244, 237, 224, .2); background: rgba(0, 0, 0, .18);
}
html.demo-bodega .bo-frow {
    display: grid; grid-template-columns: 1.5fr .8fr .7fr 1fr .9fr; gap: 10px; align-items: center;
    padding: 20px 26px; border-bottom: 1px solid rgba(244, 237, 224, .1); transition: .2s;
}
html.demo-bodega .bo-frow:last-child { border-bottom: 0; }
html.demo-bodega .bo-frow:hover { background: rgba(244, 237, 224, .05); }
html.demo-bodega .bo-fexp b { font-size: 1.08rem; font-weight: 500; display: block; color: var(--bo-parch); }
html.demo-bodega .bo-fexp span { font-size: .68rem; color: rgba(244, 237, 224, .55); }
html.demo-bodega .bo-fcell { font-size: .82rem; color: rgba(244, 237, 224, .8); }
html.demo-bodega .bo-fcupos { font-size: .62rem; letter-spacing: .18em; text-transform: uppercase; }
html.demo-bodega .bo-fcupos.ok { color: #A8C9A0; }
html.demo-bodega .bo-fcupos.low { color: var(--bo-gold); }
html.demo-bodega .bo-fcupos.full { color: rgba(244, 237, 224, .35); text-decoration: line-through; }
html.demo-bodega .bo-fgo {
    justify-self: end; font-size: .62rem; letter-spacing: .2em; text-transform: uppercase;
    border: 1px solid var(--bo-copper); color: var(--bo-gold); padding: 9px 18px; transition: .25s; white-space: nowrap;
}
html.demo-bodega .bo-fgo:hover { background: var(--bo-copper); color: var(--bo-wine2); }
html.demo-bodega .bo-fgo--off { opacity: .35; pointer-events: none; }
html.demo-bodega .bo-fnote { text-align: center; margin: 30px 0 0; font-size: .78rem; color: rgba(244, 237, 224, .55); }
html.demo-bodega .bo-fnote b { color: var(--bo-gold); font-weight: 500; }

/* ══ GALERÍA (strip 4:3) ══ */
html.demo-bodega .bo-gal { padding: 96px 0; }
html.demo-bodega .bo-gal-strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
html.demo-bodega .bo-gal-strip figure { margin: 0; overflow: hidden; }
html.demo-bodega .bo-gal-strip img { aspect-ratio: 4/3; object-fit: cover; width: 100%; filter: saturate(.92); transition: .35s; display: block; }
html.demo-bodega .bo-gal-strip figure:hover img { filter: saturate(1.05); transform: scale(1.02); }

/* ══ QUOTE / MANIFIESTO ══ */
html.demo-bodega .bo-quote-sec { background: var(--bo-paper); border-top: 1px solid var(--bo-line-soft); padding: 96px 0; }
html.demo-bodega .bo-quote { max-width: 800px; margin: 0 auto; text-align: center; }
html.demo-bodega .bo-quote blockquote.bo-quote-ff {
    font-family: var(--bo-quote-ff); font-style: italic;
    font-size: clamp(1.5rem, 3vw, 2.2rem); line-height: 1.4; color: var(--bo-wine);
    border: 0; margin: 0; padding: 0;
}
html.demo-bodega .bo-quote cite { display: block; margin-top: 22px; font-style: normal; font-size: .66rem; letter-spacing: .3em; text-transform: uppercase; color: var(--bo-stone); }

/* ══ PAGE HEADER (banda borravino — módulos/about/contact) ══ */
html.demo-bodega .bo-pagehead { background: var(--bo-wine2); border-bottom: 1px solid var(--bo-line); padding: 110px 0 52px; position: relative; overflow: hidden; }
html.demo-bodega .bo-crumb ol { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; padding: 0; margin: 0 0 14px; }
html.demo-bodega .bo-crumb li { font-size: .62rem; letter-spacing: .24em; text-transform: uppercase; color: rgba(244, 237, 224, .5); }
html.demo-bodega .bo-crumb a { color: rgba(244, 237, 224, .5); }
html.demo-bodega .bo-crumb a:hover { color: var(--bo-gold); }
html.demo-bodega .bo-crumb li span { color: var(--bo-gold); }
html.demo-bodega .bo-pagehead h1 { font-size: clamp(2.3rem, 5.4vw, 3.8rem); color: var(--bo-parch); }
html.demo-bodega .bo-pagehead p { color: rgba(244, 237, 224, .6); margin: 12px 0 0; max-width: 60ch; }

/* ══ SECCIONES INTERNAS (about / contact) ══ */
html.demo-bodega .bo-sec { padding: 90px 0; }
html.demo-bodega .bo-about-grid, html.demo-bodega .bo-contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
html.demo-bodega .bo-about-title { font-size: clamp(1.9rem, 4.6vw, 3rem); margin: 14px 0 22px; color: var(--bo-wine2); }
html.demo-bodega .bo-sec p { color: color-mix(in srgb, var(--bo-ink) 72%, var(--bo-stone)); margin-bottom: 14px; }
html.demo-bodega .bo-about-img { width: 100%; height: 480px; object-fit: cover; }
html.demo-bodega .bo-badge { display: inline-flex; align-items: center; gap: 12px; border: 1px solid var(--bo-line); padding: 14px 20px; margin-top: 16px; }
html.demo-bodega .bo-badge-dot { width: 9px; height: 9px; background: var(--bo-copper); border-radius: 50%; flex: 0 0 auto; }
html.demo-bodega .bo-badge span:last-child { font-size: .7rem; letter-spacing: .18em; text-transform: uppercase; color: var(--bo-wine2); }
html.demo-bodega .bo-valores { background: var(--bo-paper); border-top: 1px solid var(--bo-line-soft); padding: 80px 0; }
html.demo-bodega .bo-val-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; background: var(--bo-line); border: 1px solid var(--bo-line); }
html.demo-bodega .bo-val-cell { background: var(--bo-paper); padding: 30px 26px; }
html.demo-bodega .bo-val-n { font-style: italic; font-size: 1.5rem; color: var(--bo-copper); }
html.demo-bodega .bo-val-cell h3 {
    font-family: var(--bo-sans-ff); font-weight: 500; font-size: .95rem;
    letter-spacing: .06em; text-transform: uppercase; margin: 10px 0 6px; color: var(--bo-wine2);
}
html.demo-bodega .bo-val-cell p { font-size: .83rem; color: var(--bo-stone); margin: 0; }
html.demo-bodega .bo-contact-list { list-style: none; padding: 0; margin: 22px 0 0; }
html.demo-bodega .bo-contact-list li { padding: 14px 0; border-bottom: 1px solid var(--bo-line); color: var(--bo-ink); }
html.demo-bodega .bo-contact-list strong { display: block; font-size: .64rem; letter-spacing: .2em; text-transform: uppercase; color: var(--bo-copper2); margin-bottom: 4px; font-weight: 500; }
html.demo-bodega .bo-contact-form .bo-input {
    width: 100%; background: #fff; border: 1px solid var(--bo-line); color: var(--bo-ink);
    padding: 14px 16px; margin-bottom: 14px; font-family: var(--bo-sans-ff); font-size: .95rem; border-radius: 0;
}
html.demo-bodega .bo-contact-form .bo-input::placeholder { color: var(--bo-stone); }
html.demo-bodega .bo-contact-form .bo-input:focus { outline: none; border-color: var(--bo-copper); }
html.demo-bodega .bo-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
html.demo-bodega .bo-alert { background: rgba(var(--secondary-rgb, 180, 123, 69), .14); border: 1px solid var(--bo-copper); color: var(--bo-ink); padding: 14px 16px; margin-bottom: 16px; }
html.demo-bodega .bo-map iframe { width: 100%; height: 420px; border: 0; display: block; filter: grayscale(.35); }

/* ══ FOOTER (tinta) ══ */
html.demo-bodega .bo-footer { background: var(--bo-ink); color: rgba(244, 237, 224, .6); padding: 64px 0 30px; }
html.demo-bodega .bo-fin { max-width: 1240px; margin: 0 auto; padding: 0 34px; }
html.demo-bodega .bo-fgrid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 40px; padding-bottom: 44px; border-bottom: 1px solid rgba(244, 237, 224, .1); }
html.demo-bodega .bo-fbrand p { font-size: .84rem; color: rgba(244, 237, 224, .6); max-width: 34ch; }
html.demo-bodega .bo-footer h4 { font-size: .64rem; letter-spacing: .3em; text-transform: uppercase; color: var(--bo-gold); margin-bottom: 16px; font-weight: 500; }
html.demo-bodega .bo-footer ul { list-style: none; padding: 0; margin: 0; }
html.demo-bodega .bo-footer ul li { margin-bottom: 8px; font-size: .84rem; color: rgba(244, 237, 224, .6); }
/* trampa #58: Porto define #footer a{color:#555} (especificidad de ID) → todo link
   del footer se re-declara con !important para no quedar ilegible sobre tinta. */
html.demo-bodega #footer.bo-footer ul a,
html.demo-bodega #footer.bo-footer .bo-fbot a { color: rgba(244, 237, 224, .6) !important; }
html.demo-bodega #footer.bo-footer ul a:hover,
html.demo-bodega #footer.bo-footer .bo-fbot a:hover { color: var(--bo-parch) !important; }
html.demo-bodega .bo-social { display: flex; gap: 12px; margin-bottom: 16px; }
html.demo-bodega #footer.bo-footer .bo-social a { width: 38px; height: 38px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid rgba(244, 237, 224, .18); color: rgba(244, 237, 224, .6) !important; transition: .2s; }
html.demo-bodega #footer.bo-footer .bo-social a:hover { border-color: var(--bo-copper); color: var(--bo-gold) !important; }
/* CTA reutilizado en el footer (trampa #58): color REAL verificado con getComputedStyle */
html.demo-bodega .bo-fcta { display: inline-block; }
html.demo-bodega #footer.bo-footer a.bo-hd-cta { color: var(--bo-gold) !important; border-color: var(--bo-copper); }
html.demo-bodega #footer.bo-footer a.bo-hd-cta:hover { background: var(--bo-copper); color: var(--bo-ink) !important; }
html.demo-bodega .bo-fbot { display: flex; justify-content: space-between; align-items: center; padding-top: 26px; font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; flex-wrap: wrap; gap: 10px; }

/* ══ CAPA B · ENSAMBLE DE MÓDULOS (products / services / gallery / faqs compartidos) ══
   El demo es LIGHT → base pergamino, cards paper, acentos borravino/cobre.
   Nunca @if($activeDemo) en blades de módulos — solo estas reglas. */
html.demo-bodega .main > section:not([class*="bo-"]),
html.demo-bodega .main .section:not([class*="bo-"]) { background: var(--bo-parch); border: 0; }
/* fondos grises/claros heredados de vistas compartidas → pergamino/paper */
html.demo-bodega .main .bg-color-light,
html.demo-bodega .main .bg-light { background: var(--bo-parch) !important; }
html.demo-bodega .main .bg-color-grey,
html.demo-bodega .main .bg-color-grey-scale-1 { background: var(--bo-paper) !important; }
/* cards de módulo → paper con borde de etiqueta */
html.demo-bodega .main .card,
html.demo-bodega .main .service-item,
html.demo-bodega .main .gallery-item,
html.demo-bodega .main .team-item,
html.demo-bodega .main .post-item,
html.demo-bodega .main .thumb-info {
    background: var(--bo-paper); border: 1px solid var(--bo-line); border-radius: var(--border-radius, 0);
    box-shadow: none;
}
html.demo-bodega .main .card .card-body { background: var(--bo-paper); color: var(--bo-ink); }
/* tipografía de módulos → serif borravino en headings, stone en texto */
html.demo-bodega .main h1, html.demo-bodega .main h2, html.demo-bodega .main h3,
html.demo-bodega .main h4, html.demo-bodega .main h5 { font-family: var(--bo-serif-ff); color: var(--bo-wine2); }
html.demo-bodega .main .card h1, html.demo-bodega .main .card h2, html.demo-bodega .main .card h3,
html.demo-bodega .main .card h4, html.demo-bodega .main .card h5 { color: var(--bo-wine2); }
html.demo-bodega .main p, html.demo-bodega .main li { color: color-mix(in srgb, var(--bo-ink) 68%, var(--bo-stone)); }
/* dentro del page-header borravino los headings/subtítulos van pergamino (banda
   oscura — esta regla vive DESPUÉS del bloque .main p para ganarle en cascada) */
html.demo-bodega .main .bo-hero h1 { color: var(--bo-parch); font-family: var(--bo-serif-ff); }
html.demo-bodega .main .bo-hero h1 em { color: var(--bo-gold); }
html.demo-bodega .main .bo-hero-sub p { color: rgba(255, 255, 255, .85); }
html.demo-bodega .main .bo-pagehead h1 { color: var(--bo-parch); font-family: var(--bo-serif-ff); }
html.demo-bodega .main .bo-pagehead p { color: rgba(244, 237, 224, .6); }
html.demo-bodega .main .bo-pagehead .bo-crumb li,
html.demo-bodega .main .bo-pagehead .bo-crumb a { color: rgba(244, 237, 224, .5); }
html.demo-bodega .main .bo-pagehead .bo-crumb li span { color: var(--bo-gold); }
/* acentos / precios / links primarios → borravino */
html.demo-bodega .main a.text-color-primary,
html.demo-bodega .main .text-color-primary,
html.demo-bodega .main .price { color: var(--bo-wine) !important; }
/* botones de módulo (Capa A los pinta con --primary=borravino) → texto pergamino */
html.demo-bodega .main .btn-primary { color: var(--bo-parch) !important; }
/* FAQs accordion (vista compartida) → superficie paper con filete */
html.demo-bodega .main .accordion .card,
html.demo-bodega .main .accordion .card-header,
html.demo-bodega .main .accordion .card-body { background: var(--bo-paper); }
html.demo-bodega .main .accordion .card-header a { color: var(--bo-wine2) !important; font-family: var(--bo-serif-ff); }
html.demo-bodega .main .accordion .card-body p { color: color-mix(in srgb, var(--bo-ink) 68%, var(--bo-stone)); }
/* formularios de vistas compartidas (sidebar de filtros, etc.) */
html.demo-bodega .main .form-control {
    background: #fff; border-color: var(--bo-line); color: var(--bo-ink); border-radius: 0;
}
html.demo-bodega .main .form-control::placeholder { color: var(--bo-stone); }
/* badges/pills de categorías → smallcaps cobre */
html.demo-bodega .main .badge { letter-spacing: .14em; text-transform: uppercase; }
/* Fix legibilidad grilla /services: la vista compartida pinta títulos con
   var(--light) INLINE (pensado para skins oscuros); en este demo claro las
   cards son paper → títulos borravino, textos stone (patrón demo-hotel). */
html.demo-bodega .main .service-card h3,
html.demo-bodega .main .service-card h3 a { color: var(--bo-wine2) !important; }
html.demo-bodega .main .service-card p[itemprop="description"] { color: var(--bo-stone) !important; }
/* Galería: la vista compartida usa superficie var(--dark) inline ("la cava" —
   coherente con las bandas oscuras del demo). Legibilidad sobre tinta:
   pills de categoría/tag y captions en pergamino/cobre claro (el borravino
   --primary desaparece sobre tinta). */
html.demo-bodega #gallery-content .btn-outline-light {
    color: var(--bo-parch) !important; border-color: rgba(244, 237, 224, .35) !important; background: transparent !important;
}
html.demo-bodega #gallery-content .btn-outline-light:hover { border-color: var(--bo-copper) !important; color: var(--bo-gold) !important; }
html.demo-bodega #gallery-content .btn-outline-primary {
    color: var(--bo-gold) !important; border-color: var(--bo-copper) !important; background: transparent !important;
}
html.demo-bodega #gallery-content .btn-outline-primary:hover { background: var(--bo-copper) !important; color: var(--bo-ink) !important; }
html.demo-bodega #gallery-content .btn-primary {
    background: var(--bo-copper) !important; border-color: var(--bo-copper) !important; color: var(--bo-ink) !important;
}
html.demo-bodega #gallery-content .gallery-item span[style*="--primary"],
html.demo-bodega #gallery-content .gallery-item .text-1 { color: var(--bo-gold) !important; }
html.demo-bodega #gallery-content .text-muted { color: rgba(244, 237, 224, .45) !important; }

/* ══ CATÁLOGO /modelos bespoke (products · demos/demo-bodega/catalogue+show) ══ */
html.demo-bodega .bo-cat { padding: 72px 0 96px; }
html.demo-bodega .bo-cat-filters { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-bottom: 44px; }
html.demo-bodega .bo-pill {
    font-size: .64rem; letter-spacing: .2em; text-transform: uppercase;
    border: 1px solid var(--bo-line); color: var(--bo-stone); padding: 9px 18px; transition: .2s;
}
html.demo-bodega .bo-pill:hover { border-color: var(--bo-wine); color: var(--bo-wine); }
html.demo-bodega .bo-pill.on { background: var(--bo-wine); border-color: var(--bo-wine); color: var(--bo-parch); }
html.demo-bodega .bo-cat .bo-lgrid { grid-template-columns: repeat(3, 1fr); }
html.demo-bodega .bo-empty { text-align: center; color: var(--bo-stone); padding: 60px 0; }
/* show (ficha etiqueta) */
html.demo-bodega .bo-prod { padding: 72px 0 96px; }
html.demo-bodega .bo-prod-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 56px; align-items: start; }
html.demo-bodega .bo-prod-ph { aspect-ratio: 3/4; overflow: hidden; border: 1px solid var(--bo-line); padding: 10px; background: var(--bo-parch); position: relative; }
html.demo-bodega .bo-prod-ph img { width: 100%; height: 100%; object-fit: cover; display: block; }
html.demo-bodega .bo-prod-body h1 { font-size: clamp(2rem, 4.4vw, 3.2rem); color: var(--bo-wine2); }
html.demo-bodega .bo-prod-var { font-size: .64rem; letter-spacing: .3em; text-transform: uppercase; color: var(--bo-copper2); margin: 10px 0 18px; }
html.demo-bodega .bo-prod-desc { color: color-mix(in srgb, var(--bo-ink) 72%, var(--bo-stone)); max-width: 56ch; }
html.demo-bodega .bo-prod-price { font-family: var(--bo-serif-ff); font-size: 1.9rem; color: var(--bo-wine); margin: 22px 0 4px; }
html.demo-bodega .bo-prod-price span { font-size: .64rem; letter-spacing: .2em; text-transform: uppercase; color: var(--bo-stone); font-family: var(--bo-sans-ff); display: block; margin-top: 4px; }
html.demo-bodega .bo-prod-cta { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 26px; }
html.demo-bodega .bo-prod-rel { margin-top: 80px; }
html.demo-bodega .bo-prod-rel .bo-lgrid { grid-template-columns: repeat(4, 1fr); }

/* ── responsive ── */
@media (max-width: 991px) {
    html.demo-bodega .bo-nav {
        display: none; position: absolute; top: 100%; left: 0; right: 0;
        flex-direction: column; gap: 0; background: rgba(244, 237, 224, .98);
        border-bottom: 1px solid var(--bo-line); padding: 8px 0;
    }
    html.demo-bodega .bo-nav.open { display: flex; }
    html.demo-bodega .bo-nav a { padding: 14px 34px; }
    html.demo-bodega .bo-burger { display: flex; }
    html.demo-bodega .bo-hd-cta { display: none; }
    html.demo-bodega .bo-fcta { display: inline-block; }
}
@media (max-width: 960px) {
    html.demo-bodega .bo-lgrid, html.demo-bodega .bo-cat .bo-lgrid,
    html.demo-bodega .bo-prod-rel .bo-lgrid { grid-template-columns: 1fr 1fr; }
    html.demo-bodega .bo-finca-cols { grid-template-columns: 1fr; gap: 84px; }
    html.demo-bodega .bo-about-grid, html.demo-bodega .bo-contact-grid,
    html.demo-bodega .bo-prod-grid { grid-template-columns: 1fr; gap: 40px; }
    html.demo-bodega .bo-about-img { height: 360px; }
    html.demo-bodega .bo-fgrid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 820px) {
    html.demo-bodega .bo-bhead { display: none; }
    html.demo-bodega .bo-frow { grid-template-columns: 1fr 1fr; gap: 10px; }
    html.demo-bodega .bo-fgo { justify-self: start; }
    html.demo-bodega .bo-gal-strip { grid-template-columns: 1fr 1fr; }
    html.demo-bodega .bo-val-grid { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
    html.demo-bodega .bo-data-grid { grid-template-columns: 1fr 1fr; }
    html.demo-bodega .bo-dcell { border-bottom: 1px solid var(--bo-parch-line); }
    html.demo-bodega .bo-form-row { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
    html.demo-bodega .bo-lgrid, html.demo-bodega .bo-cat .bo-lgrid,
    html.demo-bodega .bo-prod-rel .bo-lgrid { grid-template-columns: 1fr; }
    html.demo-bodega .bo-fgrid { grid-template-columns: 1fr; }
    html.demo-bodega .bo-wrap, html.demo-bodega .bo-bar, html.demo-bodega .bo-fin { padding-left: 20px; padding-right: 20px; }
}
