﻿/* ============================================================
   RESET — Normalización base
   ============================================================ */
html { box-sizing: border-box }
*, *:before, *:after { box-sizing: inherit }
html { -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100% }
body { margin: 0 }
article, aside, details, figcaption, figure, footer, header, main, menu, nav, section { display: block }
summary { display: list-item }
audio, canvas, progress, video { display: inline-block }
progress { vertical-align: baseline }
audio:not([controls]) { display: none; height: 0 }
[hidden], template { display: none }
a { background-color: transparent }
a:active, a:hover { text-decoration: none; outline-width: 0 }
/* CORREGIDO: Inherited → inherit */
abbr[title] { border-bottom: none; text-decoration: underline dotted }
b, strong { font-weight: bolder }
dfn { font-style: italic }
mark { background: #ff0; color: #000 }
small { font-size: 80% }
sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline }
sub { bottom: -0.25em }
sup { top: -0.5em }
figure { margin: 1em 40px }
img { border-style: none }
code, kbd, pre, samp { font-family: monospace, monospace; font-size: 1em }
hr { box-sizing: content-box; height: 0; overflow: visible }
button, input, select, textarea, optgroup { font: inherit; margin: 0 }
optgroup { font-weight: bold }
button, input { overflow: visible }
button, select { text-transform: none }
button, [type=button], [type=reset], [type=submit] { -webkit-appearance: button }
button::-moz-focus-inner, [type=button]::-moz-focus-inner, [type=reset]::-moz-focus-inner, [type=submit]::-moz-focus-inner { border-style: none; padding: 0 }
button:-moz-focusring, [type=button]:-moz-focusring, [type=reset]:-moz-focusring, [type=submit]:-moz-focusring { outline: 1px dotted ButtonText }
fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: .35em .625em .75em }
legend { color: inherit; display: table; max-width: 100%; padding: 0; white-space: normal }
textarea { overflow: auto }
[type=checkbox], [type=radio] { padding: 0 }
[type=number]::-webkit-inner-spin-button, [type=number]::-webkit-outer-spin-button { height: auto }
[type=search] { -webkit-appearance: textfield; outline-offset: -2px }
[type=search]::-webkit-search-decoration { -webkit-appearance: none }
::-webkit-file-upload-button { -webkit-appearance: button; font: inherit }

/* ============================================================
   TIPOGRAFÍA Y BASE
   ============================================================ */
/* CORREGIDO: unificado en una sola declaración de body/html */
html, body {
  height: 100%;
  font-family: "Roboto", Verdana, sans-serif;
  font-size: 18px;
  line-height: 1.5;
}
html { overflow-x: hidden }

h1 { font-size: 40px }
h2 { font-size: 36px }
h3 { font-size: 34px }
h4 { font-size: 30px }
h5 { font-size: 22px }
h6 { font-size: 18px }
h1, h2, h3, h4, h5, h6 { font-family: "Ephesis", Arial, sans-serif; font-weight: 400; margin: 10px 0 }

hr { border: 0; border-top: 1px solid #eee; margin: 20px 0 }

/* ============================================================
   CLASES DE FUENTE
   ============================================================ */
.be-serif      { font-family: "Ephesis", serif }
.be-Roboto     { font-family: "Roboto"; font-optical-sizing: auto; font-weight: 100; font-style: normal; font-variation-settings: "wdth" 100 }
.be-Ephesis    { font-family: "Ephesis" }
.be-Parisienne { font-family: "Parisienne" }
.be-Work-Sans  { font-family: "Work Sans" }
.be-sibar-topf { font-family: "Roboto"; font-size: 24px }

/* ============================================================
   COMPONENTES — Imágenes, enlaces, tablas
   ============================================================ */
.be-image { max-width: 100%; height: auto }
img { vertical-align: middle; max-width: 100%; height: auto }
a { color: inherit }
a:link, a:visited, a:hover, a:active { text-decoration: none }

.be-table, .be-table-all { border-collapse: collapse; border-spacing: 0; width: 100%; display: table }
.be-table-all { border: 1px solid #ccc }
.be-bordered tr, .be-table-all tr { border-bottom: 1px solid #ddd }
.be-striped tbody tr:nth-child(even) { background-color: #f1f1f1 }
.be-table-all tr:nth-child(odd)  { background-color: #fff }
.be-table-all tr:nth-child(even) { background-color: #f1f1f1 }
.be-hoverable tbody tr:hover, .be-ul.be-hoverable li:hover { background-color: #ccc }
.be-centered tr th, .be-centered tr td { text-align: center }
.be-table td, .be-table th, .be-table-all td, .be-table-all th { padding: 8px; display: table-cell; text-align: left; vertical-align: top }
.be-table th:first-child, .be-table td:first-child, .be-table-all th:first-child, .be-table-all td:first-child { padding-left: 16px }

/* ============================================================
   BOTONES Y CONTROLES
   ============================================================ */
.be-btn, .be-button { border: none; display: inline-block; padding: 16px; vertical-align: middle; overflow: hidden; text-decoration: none; color: inherit; background-color: inherit; text-align: center; cursor: pointer; white-space: nowrap }
.be-btn:hover { box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19) }
.be-btn, .be-button { -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none }
.be-disabled, .be-btn:disabled, .be-button:disabled { cursor: not-allowed; opacity: 0.3 }
.be-disabled *, :disabled * { pointer-events: none }
.be-btn.be-disabled:hover, .be-btn:disabled:hover { box-shadow: none }
.be-button:hover { color: #000 !important; background-color: #ccc !important }

/* ============================================================
   BADGES, LISTAS, TOOLTIPS
   ============================================================ */
.be-badge, .be-tag { background-color: #000; color: #fff; display: inline-block; padding-left: 8px; padding-right: 8px; text-align: center }
.be-badge { border-radius: 50%; height: 13px; width: 13px; padding: 0 }
.be-ul { list-style-type: none; padding: 0; margin: 0 }
.be-ul li { padding: 8px 16px }
.be-ul li:last-child { border-bottom: none }
.be-tooltip, .be-display-container { position: relative }
.be-tooltip .be-text { display: none }
.be-tooltip:hover .be-text { display: inline-block }
.be-ripple:active { opacity: 0.5 }
.be-ripple { transition: opacity 0s }

/* ============================================================
   INPUTS Y FORMULARIOS
   ============================================================ */
.be-input { padding: 8px; display: block; border: none; border-bottom: 1px solid #ccc; width: 100% }
.be-select { padding: 9px 0; width: 100%; border: none; border-bottom: 1px solid #ccc }

/* ============================================================
   DROPDOWNS
   ============================================================ */
.be-dropdown-click, .be-dropdown-hover { position: relative; display: inline-block; cursor: pointer }
.be-dropdown-hover:hover .be-dropdown-content { display: block }
.be-dropdown-hover:first-child, .be-dropdown-click:hover { background-color: #ccc; color: #000 }
.be-dropdown-hover:hover > .be-button:first-child, .be-dropdown-click:hover > .be-button:first-child { background-color: #ccc; color: #000 }
.be-dropdown-content { cursor: auto; color: #000; background-color: #fff; display: none; position: absolute; min-width: 160px; margin: 0; padding: 0; z-index: 1 }
.be-check, .be-radio { width: 24px; height: 24px; position: relative; top: 6px }

/* ============================================================
   SIDEBAR Y BARRAS
   ============================================================ */
.be-sidebar { height: 100%; width: 200px; background-color: #fff; position: fixed !important; z-index: 1; overflow: auto }
.be-bar-block .be-dropdown-hover, .be-bar-block .be-dropdown-click { width: 100% }
.be-bar-block .be-dropdown-hover .be-dropdown-content, .be-bar-block .be-dropdown-click .be-dropdown-content { min-width: 100% }
.be-bar-block .be-dropdown-hover .be-button, .be-bar-block .be-dropdown-click .be-button { width: 100%; text-align: left; padding: 8px 16px }
.be-main, #main { transition: margin-left .4s }

/* ============================================================
   MODAL
   ============================================================ */
.be-modal { z-index: 3; display: none; padding-top: 100px; position: fixed; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-color: rgba(0,0,0,0.4) }
.be-modal-content { margin: auto; background-color: #fff; position: relative; padding: 0; outline: 0; width: 600px }

/* ============================================================
   BARRA DE NAVEGACIÓN
   ============================================================ */
.be-bar { width: 100%; overflow: hidden }
.be-center .be-bar { display: inline-block; width: auto }
.be-bar .be-bar-item { padding: 30px 24px; float: left; width: auto; border: none; display: block; outline: 0 }
.be-bar .be-dropdown-hover, .be-bar .be-dropdown-click { position: static; float: left }
.be-bar .be-button { white-space: normal }
.be-bar-block .be-bar-item { width: 100%; display: block; padding: 30px 24px; text-align: left; border: none; white-space: normal; float: none; outline: 0 }
.be-bar-block.be-center .be-bar-item { text-align: center }
.be-block { display: block; width: 100% }
.be-responsive { display: block; overflow-x: auto }

/* ============================================================
   CLEARFIX Y LAYOUT
   ============================================================ */
.be-container:after, .be-container:before,
.be-panel:after,     .be-panel:before,
.be-row:after,       .be-row:before,
.be-row-padding:after, .be-row-padding:before,
.be-cell-row:before, .be-cell-row:after,
.be-clear:after,     .be-clear:before,
.be-bar:before,      .be-bar:after { content: ""; display: table; clear: both }

/* ============================================================
   GRID — Columnas responsive
   ============================================================ */
.be-col, .be-half, .be-third, .be-twothird, .be-threequarter, .be-quarter { float: left; width: 100% }
.be-col.s1  { width: 8.33333%  } .be-col.s2  { width: 16.66666% } .be-col.s3  { width: 24.99999% } .be-col.s4  { width: 33.33333% }
.be-col.s5  { width: 41.66666% } .be-col.s6  { width: 49.99999% } .be-col.s7  { width: 58.33333% } .be-col.s8  { width: 66.66666% }
.be-col.s9  { width: 74.99999% } .be-col.s10 { width: 83.33333% } .be-col.s11 { width: 91.66666% } .be-col.s12 { width: 99.99999% }

@media (min-width: 601px) {
  .be-col.m1 { width: 8.33333% } .be-col.m2 { width: 16.66666% } .be-col.m3, .be-quarter { width: 24.99999% } .be-col.m4, .be-third { width: 33.33333% }
  .be-col.m5 { width: 41.66666% } .be-col.m6, .be-half { width: 49.99999% } .be-col.m7 { width: 58.33333% } .be-col.m8, .be-twothird { width: 66.66666% }
  .be-col.m9, .be-threequarter { width: 74.99999% } .be-col.m10 { width: 83.33333% } .be-col.m11 { width: 91.66666% } .be-col.m12 { width: 99.99999% }
}
@media (min-width: 993px) {
  .be-col.l1 { width: 8.33333% } .be-col.l2 { width: 16.66666% } .be-col.l3 { width: 24.99999% } .be-col.l4 { width: 33.33333% }
  .be-col.l5 { width: 41.66666% } .be-col.l6 { width: 49.99999% } .be-col.l7 { width: 58.33333% } .be-col.l8 { width: 66.66666% }
  .be-col.l9 { width: 74.99999% } .be-col.l10 { width: 83.33333% } .be-col.l11 { width: 91.66666% } .be-col.l12 { width: 99.99999% }
}

/* ============================================================
   UTILIDADES DE LAYOUT
   ============================================================ */
.be-rest { overflow: hidden }
.be-stretch { margin-left: -16px; margin-right: -16px }
.be-content, .be-auto { margin-left: auto; margin-right: auto }
.be-content { max-width: 96% }
.be-auto    { max-width: 1140px }
.be-cell-row    { display: table; width: 100% }
.be-cell        { display: table-cell }
.be-cell-top    { vertical-align: top }
.be-cell-middle { vertical-align: middle }
.be-cell-bottom { vertical-align: bottom }
.be-hide              { display: none !important }
.be-show-block, .be-show { display: block !important }
.be-show-inline-block   { display: inline-block !important }
.be-inline { display: inline }
.be-left   { float: left !important }
.be-right  { float: right !important }
.be-block  { display: block; width: 100% }

@media (max-width: 1205px) { .be-auto { max-width: 95% } }

@media (max-width: 600px) {
  .be-modal-content { margin: 0 10px; width: auto !important }
  .be-modal { padding-top: 30px }
  .be-dropdown-hover.be-mobile .be-dropdown-content, .be-dropdown-click.be-mobile .be-dropdown-content { position: relative }
  .be-hide-small { display: none !important }
  .be-mobile { display: block; width: 100% !important }
  .be-bar-item.be-mobile, .be-dropdown-hover.be-mobile, .be-dropdown-click.be-mobile { text-align: center }
  .be-dropdown-hover.be-mobile, .be-dropdown-hover.be-mobile .be-btn, .be-dropdown-hover.be-mobile .be-button,
  .be-dropdown-click.be-mobile, .be-dropdown-click.be-mobile .be-btn, .be-dropdown-click.be-mobile .be-button { width: 100% }
}
@media (max-width: 768px)  { .be-modal-content { width: 500px } .be-modal { padding-top: 50px } }
@media (min-width: 993px)  { .be-modal-content { width: 900px } .be-hide-large { display: none !important } .be-sidebar.be-collapse { display: block !important } }
@media (max-width: 992px) and (min-width: 601px) { .be-hide-medium { display: none !important } }
@media (max-width: 992px)  { .be-sidebar.be-collapse { display: none } .be-main { margin-left: 0 !important; margin-right: 0 !important } .be-auto { max-width: 100% } }

/* ============================================================
   POSICIONAMIENTO FIJO Y OVERLAYS
   ============================================================ */
.be-top, .be-bottom { position: fixed; width: 100%; z-index: 1 }
.be-top    { top: 0 }
.be-bottom { bottom: 0 }
.be-overlay { position: fixed; display: none; width: 100%; height: 100%; top: 0; left: 0; right: 0; bottom: 0; background-color: rgba(0,0,0,0.5); z-index: 2 }

/* ============================================================
   POSICIONAMIENTO DISPLAY
   ============================================================ */
.be-display-topleft      { position: absolute; left: 0; top: 0 }
.be-display-topright     { position: absolute; right: 0; top: 0 }
.be-display-bottomleft   { position: absolute; left: 0; bottom: 0 }
.be-display-bottomright  { position: absolute; right: 0; bottom: 0 }
.be-display-middle       { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); -ms-transform: translate(-50%,-50%) }
.be-display-left         { position: absolute; top: 50%; left: 0; transform: translate(0,-50%) }
.be-display-right        { position: absolute; top: 50%; right: 0; transform: translate(0,-50%) }
.be-display-topmiddle    { position: absolute; left: 50%; top: 0; transform: translate(-50%,0) }
.be-display-bottommiddle { position: absolute; left: 50%; bottom: 0; transform: translate(-50%,0) }
.be-display-container:hover .be-display-hover { display: block }
.be-display-container:hover span.be-display-hover { display: inline-block }
.be-display-hover    { display: none }
.be-display-position { position: absolute }

/* ============================================================
   BORDES REDONDEADOS
   ============================================================ */
.be-circle       { border-radius: 50% }
.be-round-small  { border-radius: 2px }
.be-round, .be-round-medium { border-radius: 4px }
.be-round-large  { border-radius: 8px }
.be-round-xlarge { border-radius: 16px }
.be-round-xxlarge{ border-radius: 32px }

/* ============================================================
   PADDING DE FILAS Y CONTENEDORES
   ============================================================ */
.be-row-padding, .be-row-padding > .be-half, .be-row-padding > .be-third, .be-row-padding > .be-twothird,
.be-row-padding > .be-threequarter, .be-row-padding > .be-quarter, .be-row-padding > .be-col { padding: 0 30px }
.be-container, .be-panel { padding: 0.01em 16px }
.be-panel { margin-top: 16px; margin-bottom: 16px }

/* ============================================================
   CÓDIGO
   ============================================================ */
.be-code, .be-codespan { font-family: Consolas, "courier new"; font-size: 16px }
.be-code    { width: auto; background-color: #fff; padding: 8px 12px; border-left: 4px solid #4CAF50; word-wrap: break-word }
.be-codespan{ color: crimson; background-color: #f1f1f1; padding-left: 4px; padding-right: 4px; font-size: 110% }

/* ============================================================
   SOMBRAS (CARDS)
   ============================================================ */
.be-card, .be-card-2     { box-shadow: 0 2px 5px 0 rgba(0,0,0,0.16), 0 2px 10px 0 rgba(0,0,0,0.12) }
.be-card-4, .be-hover-shadow:hover { box-shadow: 0 4px 10px 0 rgba(0,0,0,0.2), 0 4px 20px 0 rgba(0,0,0,0.19) }

/* ============================================================
   ANIMACIONES
   ============================================================ */
.be-spin { animation: be-spin 2s infinite linear }
@keyframes be-spin { 0% { transform: rotate(0deg) } 100% { transform: rotate(359deg) } }
.be-animate-fading { animation: fading 10s infinite }
@keyframes fading { 0% { opacity: 0 } 50% { opacity: 1 } 100% { opacity: 0 } }
.be-animate-opacity { animation: opac 0.8s }
@keyframes opac { from { opacity: 0 } to { opacity: 1 } }
.be-animate-top    { position: relative; animation: animatetop 0.4s }
@keyframes animatetop    { from { top: -300px; opacity: 0 } to { top: 0; opacity: 1 } }
.be-animate-left   { position: relative; animation: animateleft 0.4s }
@keyframes animateleft   { from { left: -300px; opacity: 0 } to { left: 0; opacity: 1 } }
.be-animate-right  { position: relative; animation: animateright 0.4s }
@keyframes animateright  { from { right: -300px; opacity: 0 } to { right: 0; opacity: 1 } }
.be-animate-bottom { position: relative; animation: animatebottom 0.4s }
@keyframes animatebottom { from { bottom: -300px; opacity: 0 } to { bottom: 0; opacity: 1 } }
.be-animate-zoom   { animation: animatezoom 0.6s }
@keyframes animatezoom { from { transform: scale(0) } to { transform: scale(1) } }
.be-animate-input  { transition: width 0.4s ease-in-out }
.be-animate-input:focus { width: 100% !important }

/* ============================================================
   OPACIDAD Y FILTROS
   ============================================================ */
.be-opacity, .be-hover-opacity:hover { opacity: 0.60 }
.be-opacity-off, .be-hover-opacity-off:hover { opacity: 1 }
.be-opacity-max { opacity: 0.25 }
.be-opacity-min { opacity: 0.75 }
.be-greyscale-max, .be-grayscale-max, .be-hover-greyscale:hover, .be-hover-grayscale:hover { filter: grayscale(100%) }
.be-greyscale, .be-grayscale { filter: grayscale(75%) }
.be-greyscale-min, .be-grayscale-min { filter: grayscale(50%) }
.be-sepia { filter: sepia(75%) }
.be-sepia-max, .be-hover-sepia:hover { filter: sepia(100%) }
.be-sepia-min { filter: sepia(50%) }

/* ============================================================
   TAMAÑOS DE TEXTO
   ============================================================ */
.be-tiny    { font-size: 10px !important }
.be-small   { font-size: 12px !important }
.be-medium  { font-size: 15px !important }
.be-large   { font-size: 18px !important }
.be-xlarge  { font-size: 24px !important }
.be-xxlarge { font-size: 36px !important }
.be-xxxlarge{ font-size: 48px !important }
.be-jumbo   { font-size: 64px !important }
.be-wide    { font-weight: 700 !important; letter-spacing: 1.5px !important }

/* ============================================================
   ALINEACIÓN DE TEXTO
   ============================================================ */
.be-left-align  { text-align: left !important }
.be-right-align { text-align: right !important }
.be-justify     { text-align: justify !important }
.be-center      { text-align: center !important }

/* ============================================================
   BORDES UTILITARIOS
   ============================================================ */
.be-border-0      { border: 0 !important }
.be-border        { border: 1px solid #ccc !important }
.be-border-top    { border-top: 20px solid #f44336 !important }
.be-border-bottom { border-bottom: 20px solid #f44336 !important }
.be-border-left   { border-left: 1px solid #ccc !important }
.be-border-right  { border-right: 1px solid #ccc !important }
.be-topbar    { border-top: 6px solid #ccc !important }
.be-bottombar { border-bottom: 6px solid #ccc !important }
.be-leftbar   { border-left: 6px solid #ccc !important }
.be-rightbar  { border-right: 6px solid #ccc !important }

/* ============================================================
   MÁRGENES Y PADDINGS
   ============================================================ */
.be-section, .be-code { margin-top: 16px !important; margin-bottom: 16px !important }
.be-margin        { margin: 16px !important }
.be-margin-top    { margin-top: 16px !important }
.be-margin-bottom { margin-bottom: 16px !important }
.be-margin-left   { margin-left: 16px !important }
.be-margin-right  { margin-right: 16px !important }
.be-padding-small { padding: 4px 8px !important }
.be-padding       { padding: 8px 16px !important }
.be-padding-large { padding: 12px 24px !important }
.be-padding-8     { padding: 8px !important }
.be-padding-16    { padding-top: 16px !important; padding-bottom: 16px !important }
.be-padding-24    { padding-top: 24px !important; padding-bottom: 24px !important }
.be-padding-32    { padding-top: 32px !important; padding-bottom: 32px !important }
.be-padding-48    { padding-top: 48px !important; padding-bottom: 48px !important }
.be-padding-64    { padding-top: 64px !important; padding-bottom: 64px !important }

/* ============================================================
   MISCELÁNEA
   ============================================================ */
.be-transparent, .be-hover-none:hover { background-color: transparent !important }
.be-hover-none:hover { box-shadow: none !important }
.be-noline { text-decoration: none }
.be-hover-opacity { cursor: pointer }

/* ============================================================
   COLORES — Fondos
   ============================================================ */
.be-amber,        .be-hover-amber:hover        { color: #000 !important; background-color: #ffc107 !important }
.be-aqua,         .be-hover-aqua:hover         { color: #000 !important; background-color: #00ffff !important }
.be-blue,         .be-hover-blue:hover         { color: #fff !important; background-color: #2196F3 !important }
.be-light-blue,   .be-hover-light-blue:hover   { color: #000 !important; background-color: #87CEEB !important }
.be-brown,        .be-hover-brown:hover        { color: #fff !important; background-color: #795548 !important }
.be-cyan,         .be-hover-cyan:hover         { color: #000 !important; background-color: #00bcd4 !important }
.be-blue-grey,    .be-hover-blue-grey:hover,
.be-blue-gray,    .be-hover-blue-gray:hover    { color: #fff !important; background-color: #607d8b !important }
.be-green,        .be-hover-green:hover        { color: #fff !important; background-color: #4CAF50 !important }
.be-light-green,  .be-hover-light-green:hover  { color: #000 !important; background-color: #8bc34a !important }
.be-indigo,       .be-hover-indigo:hover       { color: #fff !important; background-color: #3f51b5 !important }
.be-khaki,        .be-hover-khaki:hover        { color: #000 !important; background-color: #f0e68c !important }
.be-lime,         .be-hover-lime:hover         { color: #000 !important; background-color: #cddc39 !important }
.be-orange,       .be-hover-orange:hover       { color: #000 !important; background-color: #ff9800 !important }
.be-deep-orange,  .be-hover-deep-orange:hover  { color: #fff !important; background-color: #ff5722 !important }
.be-pink,         .be-hover-pink:hover         { color: #fff !important; background-color: #e91e63 !important }
.be-purple,       .be-hover-purple:hover       { color: #fff !important; background-color: #9c27b0 !important }
.be-deep-purple,  .be-hover-deep-purple:hover  { color: #fff !important; background-color: #673ab7 !important }
.be-red,          .be-hover-red:hover          { color: #fff !important; background-color: #f44336 !important }
.be-sand,         .be-hover-sand:hover         { color: #000 !important; background-color: #fdf5e6 !important }
.be-teal,         .be-hover-teal:hover         { color: #fff !important; background-color: #009688 !important }
.be-yellow,       .be-hover-yellow:hover       { color: #000 !important; background-color: #ffeb3b !important }
.be-white,        .be-hover-white:hover        { color: #000 !important; background-color: #fff !important }
.be-black,        .be-hover-black:hover        { color: #fff !important; background-color: #000 !important }
.be-grey,         .be-hover-grey:hover,
.be-gray,         .be-hover-gray:hover         { color: #000 !important; background-color: #9e9e9e !important }
.be-light-grey,   .be-hover-light-grey:hover,
.be-light-gray,   .be-hover-light-gray:hover   { color: #000 !important; background-color: #E5E3E3 }
.be-camel,        .be-hover-camel:hover        { color: #000 !important; background-color: #e9e4cd !important }
.be-bordo,        .be-hover-bordo:hover        { color: #fdeec5 !important; background-color: #942f34 !important }
.be-dark-grey,    .be-hover-dark-grey:hover,
.be-dark-gray,    .be-hover-dark-gray:hover    { color: #fff !important; background-color: #616161 !important }
.be-pale-red,     .be-hover-pale-red:hover     { color: #000 !important; background-color: #ffdddd !important }
.be-pale-green,   .be-hover-pale-green:hover   { color: #000 !important; background-color: #ddffdd !important }
.be-pale-yellow,  .be-hover-pale-yellow:hover  { color: #000 !important; background-color: #ffffcc !important }
.be-pale-blue,    .be-hover-pale-blue:hover    { color: #000 !important; background-color: #ddffff !important }

/* ============================================================
   COLORES — Texto
   ============================================================ */
.be-text-amber,       .be-hover-text-amber:hover       { color: #ffc107 !important }
.be-text-bordo,       .be-hover-text-bordo:hover       { color: #942f34 !important }
.be-text-aqua,        .be-hover-text-aqua:hover        { color: #00ffff !important }
.be-text-blue,        .be-hover-text-blue:hover        { color: #2196F3 !important }
.be-text-light-blue,  .be-hover-text-light-blue:hover  { color: #87CEEB !important }
.be-text-brown,       .be-hover-text-brown:hover       { color: #795548 !important }
.be-text-cyan,        .be-hover-text-cyan:hover        { color: #00bcd4 !important }
.be-text-blue-grey,   .be-hover-text-blue-grey:hover,
.be-text-blue-gray,   .be-hover-text-blue-gray:hover   { color: #607d8b !important }
.be-text-green,       .be-hover-text-green:hover       { color: #4CAF50 !important }
.be-text-light-green, .be-hover-text-light-green:hover { color: #8bc34a !important }
.be-text-indigo,      .be-hover-text-indigo:hover      { color: #3f51b5 !important }
.be-text-khaki,       .be-hover-text-khaki:hover       { color: #b4aa50 !important }
.be-text-lime,        .be-hover-text-lime:hover        { color: #cddc39 !important }
.be-text-orange,      .be-hover-text-orange:hover      { color: #ff9800 !important }
.be-text-deep-orange, .be-hover-text-deep-orange:hover { color: #ff5722 !important }
.be-text-pink,        .be-hover-text-pink:hover        { color: #e91e63 !important }
.be-text-purple,      .be-hover-text-purple:hover      { color: #9c27b0 !important }
.be-text-deep-purple, .be-hover-text-deep-purple:hover { color: #673ab7 !important }
.be-text-red,         .be-hover-text-red:hover         { color: #f44336 !important }
.be-text-sand,        .be-hover-text-sand:hover        { color: #fdf5e6 !important }
.be-text-teal,        .be-hover-text-teal:hover        { color: #009688 !important }
.be-text-yellow,      .be-hover-text-yellow:hover      { color: #d2be0e !important }
.be-text-white,       .be-hover-text-white:hover       { color: #fff !important }
.be-text-black,       .be-hover-text-black:hover       { color: #000 !important }
.be-text-grey,        .be-hover-text-grey:hover,
.be-text-gray,        .be-hover-text-gray:hover        { color: #757575 !important }
.be-text-light-grey,  .be-hover-text-light-grey:hover,
.be-text-light-gray,  .be-hover-text-light-gray:hover  { color: #f1f1f1 !important }
.be-text-dark-grey,   .be-hover-text-dark-grey:hover,
.be-text-dark-gray,   .be-hover-text-dark-gray:hover   { color: #3a3a3a !important }
.be-text-shadow { text-shadow: 2px 2px grey }

/* ============================================================
   COLORES — Bordes
   ============================================================ */
.be-border-amber,       .be-hover-border-amber:hover       { border-color: #ffc107 !important }
.be-border-aqua,        .be-hover-border-aqua:hover        { border-color: #00ffff !important }
.be-border-blue,        .be-hover-border-blue:hover        { border-color: #2196F3 !important }
.be-border-light-blue,  .be-hover-border-light-blue:hover  { border-color: #87CEEB !important }
.be-border-brown,       .be-hover-border-brown:hover       { border-color: #795548 !important }
.be-border-cyan,        .be-hover-border-cyan:hover        { border-color: #00bcd4 !important }
.be-border-blue-grey,   .be-hover-border-blue-grey:hover,
.be-border-blue-gray,   .be-hover-border-blue-gray:hover   { border-color: #607d8b !important }
.be-border-green,       .be-hover-border-green:hover       { border-color: #4CAF50 !important }
.be-border-light-green, .be-hover-border-light-green:hover { border-color: #8bc34a !important }
.be-border-indigo,      .be-hover-border-indigo:hover      { border-color: #3f51b5 !important }
.be-border-khaki,       .be-hover-border-khaki:hover       { border-color: #f0e68c !important }
.be-border-lime,        .be-hover-border-lime:hover        { border-color: #cddc39 !important }
.be-border-orange,      .be-hover-border-orange:hover      { border-color: #ff9800 !important }
.be-border-deep-orange, .be-hover-border-deep-orange:hover { border-color: #ff5722 !important }
.be-border-pink,        .be-hover-border-pink:hover        { border-color: #e91e63 !important }
.be-border-purple,      .be-hover-border-purple:hover      { border-color: #9c27b0 !important }
.be-border-deep-purple, .be-hover-border-deep-purple:hover { border-color: #673ab7 !important }
.be-border-red,         .be-hover-border-red:hover         { border-color: #f44336 !important }
.be-border-sand,        .be-hover-border-sand:hover        { border-color: #fdf5e6 !important }
.be-border-teal,        .be-hover-border-teal:hover        { border-color: #009688 !important }
.be-border-yellow,      .be-hover-border-yellow:hover      { border-color: #ffeb3b !important }
.be-border-white,       .be-hover-border-white:hover       { border-color: #fff !important }
.be-border-black,       .be-hover-border-black:hover       { border-color: #000 !important }
.be-border-grey,        .be-hover-border-grey:hover,
.be-border-gray,        .be-hover-border-gray:hover        { border-color: #9e9e9e !important }
.be-border-light-grey,  .be-hover-border-light-grey:hover,
.be-border-light-gray,  .be-hover-border-light-gray:hover  { border-color: #f1f1f1 !important }
.be-border-dark-grey,   .be-hover-border-dark-grey:hover,
.be-border-dark-gray,   .be-hover-border-dark-gray:hover   { border-color: #616161 !important }
.be-border-pale-red,    .be-hover-border-pale-red:hover    { border-color: #ffe7e7 !important }
.be-border-pale-green,  .be-hover-border-pale-green:hover  { border-color: #e7ffe7 !important }
.be-border-pale-yellow, .be-hover-border-pale-yellow:hover { border-color: #ffffcc !important }
.be-border-pale-blue,   .be-hover-border-pale-blue:hover   { border-color: #e7ffff !important }

/* ============================================================
   COMPONENTES ESPECÍFICOS DE LA WEB
   ============================================================ */

/* Slideshow de testimonios — CORREGIDO: eliminada definición duplicada */
.mySlides { display: none; text-align: center }
.menu     { display: none }

/* Slideshow: controles prev/next */
.prev, .next { cursor: pointer; position: absolute; top: 50%; width: auto; margin-top: -30px; padding: 16px; color: #888; font-weight: bold; font-size: 14px; border-radius: 0 3px 3px 0; user-select: none }
.next { position: absolute; right: 0; border-radius: 3px 0 0 3px }
.prev:hover, .next:hover { background-color: rgba(0,0,0,0.8); color: white }

/* Dots del slideshow */
.dot-container { text-align: center; padding: 20px; background: #000 }
.dot { cursor: pointer; height: 15px; width: 15px; margin: 0 2px; background-color: #fff; border-radius: 50%; display: inline-block; transition: background-color 0.6s ease }
.active, .dot:hover { background-color: #B0B0B0 }

/* Citas */
q { font-style: italic }
.author { color: #332AAA }

/* Hero con imagen de fondo y animación Ken Burns */
@keyframes ken-burns {
  from { transform: scale(1); }
  to   { transform: scale(1.08); }
}
.video-header {
  position: relative;
  width: 100%;
  height: 70vh;
  overflow: hidden;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.video-header::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background-image: inherit;
  background-size: cover;
  background-position: center;
  animation: ken-burns 14s ease-in-out infinite alternate;
  z-index: 0;
}
.video-header__overlay {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background: rgba(0,0,0,0.45);
  z-index: 1;
}
.video-header__content { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); z-index: 2; color: white; text-align: center; font-size: 2rem }

/* Parallax */
.bgimg-1, .bgimg-2 { background-attachment: fixed; background-position: center; background-repeat: no-repeat; background-size: cover }
.bgimg-1 { background-image: url('../imagenes/sala-bar-restaurante-the-beefeater.jpg'); max-height: 20% }
.bgimg-2 { background-image: url('../imagenes/tor.jpg'); min-height: 10px }

/* CORREGIDO: breakpoint ajustado a móvil (era max-device-width:1600px que desactivaba parallax en todo) */
@media only screen and (max-width: 768px) {
  .bgimg-1, .bgimg-2 { background-attachment: scroll; min-height: 400px }
}

/* Separador de footer */
.footersep { background-image: url('../imagenes/cortina.png'); background-repeat: repeat-x }

/* ============================================================
   FOOTER — Layout, contacto, redes y pie legal
   ============================================================ */
footer {
  background: #111;
}

.footer-bar {
  height: 4px;
  background: #942f34;
}

.footer-body {
  padding: 3rem 2rem 2rem;
}

.footer-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 3rem;
  max-width: 1140px;
  margin: 0 auto;
  align-items: start;
}

@media (max-width: 992px) {
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-col--map { grid-column: 1 / -1; }
}

@media (max-width: 600px) {
  .footer-grid { grid-template-columns: 1fr; gap: 2rem; }
  .footer-col--map { grid-column: auto; }
  .footer-body { padding: 2rem 1.2rem; }
}

/* Columna marca */
.footer-col--brand { text-align: center; }

.footer-logo {
  width: 240px;
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 auto 0.75rem;
}

.footer-slogan {
  color: rgba(255,255,255,0.35);
  font-style: italic;
  font-size: 0.82rem;
  margin: 0 0 1.2rem;
  letter-spacing: 0.5px;
}

/* Redes sociales */
.footer-social {
  display: flex;
  justify-content: center;
  gap: 10px;
}

.footer-social__link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,0.2);
  color: rgba(255,255,255,0.6);
  font-size: 0.95rem;
  text-decoration: none;
  transition: border-color 0.2s, color 0.2s, background 0.2s;
}

.footer-social__link:hover {
  border-color: #942f34;
  color: #fff;
  background: #942f34;
}

/* Títulos de columna */
.footer-col-title {
  color: #fff;
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.5px;
  margin: 0 0 1.2rem;
  padding-bottom: 0.7rem;
  border-bottom: 1px solid rgba(255,255,255,0.12);
}

/* Lista de contacto */
.footer-contact-list {
  list-style: none;
  padding: 0;
  margin: 0 0 1.5rem;
}

.footer-contact-list li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  color: rgba(255,255,255,0.65);
  font-size: 0.88rem;
  line-height: 1.6;
  margin-bottom: 0.8rem;
}

.footer-contact-list li i {
  color: #942f34;
  margin-top: 3px;
  flex-shrink: 0;
  width: 14px;
  text-align: center;
}

.footer-contact-list a {
  color: rgba(255,255,255,0.65);
  text-decoration: none;
  transition: color 0.2s;
}

.footer-contact-list a:hover { color: #fff; }

/* Mapa */
.footer-col--map iframe {
  border-radius: 10px;
  display: block;
  width: 100%;
  height: 240px;
}

/* Pie legal */
.footer-legal {
  border-top: 1px solid rgba(255,255,255,0.06);
  padding: 1.2rem 2rem;
  max-width: 1140px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.6rem;
}

.footer-legal > span {
  color: rgba(255,255,255,0.75);
  font-size: 0.78rem;
}

.footer-legal-links {
  display: flex;
  gap: 1.5rem;
  flex-wrap: wrap;
}

.footer-legal-links a {
  color: rgba(255,255,255,0.85);
  font-size: 0.78rem;
  text-decoration: none;
  transition: color 0.2s;
}

.footer-legal-links a:hover { color: #fff; }

/* Fondo decorativo */
.be-back1 { background-image: url('../imagenes/back.png'); background-repeat: repeat-x }

/* ============================================================
   TESTIMONIOS — Carrusel de reseñas
   ============================================================ */
.testimonios-section {
  background: #1c1c1c;
  padding: 2rem 0 3rem;
}

.testimonios-slides {
  display: grid;
}
.testimonios-slides .mySlides {
  grid-area: 1 / 1 / 2 / 2;
  display: block !important;
  visibility: hidden;
  pointer-events: none;
}
.testimonios-slides .mySlides.testimonio-active {
  visibility: visible;
  pointer-events: auto;
}

.testimonio-titulo {
  color: #fff;
  letter-spacing: 1px;
}

.testimonio-subtitulo {
  color: rgba(255,255,255,0.5);
  font-size: 0.95rem;
  margin: 0 0 2.5rem;
}

.testimonio-card {
  background: #fff;
  border-radius: 14px;
  padding: 2.5rem 3rem;
  text-align: center;
  max-width: 760px;
  margin: 0 auto;
  box-shadow: 0 12px 40px rgba(0,0,0,0.4);
}

.testimonio-comillas {
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 5rem;
  line-height: 0.6;
  color: #942f34;
  margin-bottom: 1.2rem;
  user-select: none;
}

.testimonio-texto {
  font-size: 1.05rem;
  line-height: 1.9;
  color: #444;
  font-style: italic;
  margin: 0 0 1.5rem;
}

.testimonio-estrellas {
  color: #c8972a;
  font-size: 1.15rem;
  letter-spacing: 5px;
  margin-bottom: 1rem;
}

.testimonio-autor {
  font-weight: 700;
  color: #942f34;
  font-size: 0.9rem;
  letter-spacing: 0.5px;
}

.testimonios-nav {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1.5rem;
  margin-top: 2rem;
}

.testimonio-arrow {
  color: rgba(255,255,255,0.55);
  font-size: 1.6rem;
  cursor: pointer;
  transition: color 0.2s;
  user-select: none;
  line-height: 1;
}

.testimonio-arrow:hover { color: #fff; }

.testimonios-dots { display: flex; gap: 10px; align-items: center; }

.testimonio-dot {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: rgba(255,255,255,0.25);
  border: 1px solid rgba(255,255,255,0.55);
  cursor: pointer;
  transition: background 0.2s;
}

.testimonio-dot:hover { background: rgba(255,255,255,0.7); }

@media (max-width: 600px) {
  .testimonio-card { padding: 2rem 1.5rem; }
  .testimonio-comillas { font-size: 3.5rem; }
}

/* ============================================================
   GALERÍA — Flechas de navegación en modal
   ============================================================ */
.galeria-nav {
  position: fixed;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(255,255,255,0.1);
  border: 1px solid rgba(255,255,255,0.2);
  color: #fff;
  font-size: 1.8rem;
  width: 48px;
  height: 64px;
  cursor: pointer;
  border-radius: 6px;
  z-index: 1000;
  transition: background 0.2s, border-color 0.2s;
  line-height: 1;
}

.galeria-nav:hover {
  background: rgba(148,47,52,0.75);
  border-color: #942f34;
}

.galeria-nav--prev { left: 16px; }
.galeria-nav--next { right: 16px; }

/* ============================================================
   GALERÍA — Sección grid de fotos
   ============================================================ */
.galeria-section {
  background: #111;
  padding: 4.5rem 2rem;
}

.galeria-section__inner {
  max-width: 1140px;
  margin: 0 auto;
}

.galeria-header {
  text-align: center;
  margin-bottom: 3rem;
}

.galeria-supra {
  display: block;
  color: #942f34;
  letter-spacing: 0.18em;
  font-size: 0.82rem;
  text-transform: uppercase;
  margin: 0 0 0.4rem;
}

.galeria-titulo {
  font-size: 3rem;
  margin: 0 0 0.5rem;
  color: #fff;
}

.galeria-underline {
  width: 50px;
  height: 3px;
  background: #942f34;
  margin: 1rem auto 0;
}

.galeria-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.75rem;
}

@media (max-width: 768px) { .galeria-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px) { .galeria-grid { grid-template-columns: 1fr; } }

.galeria-item {
  position: relative;
  aspect-ratio: 4 / 3;
  border-radius: 8px;
  overflow: hidden;
  cursor: pointer;
}

.galeria-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.55s ease;
}

.galeria-item__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.3s;
}

.galeria-item__overlay i {
  color: #fff;
  font-size: 1.6rem;
  opacity: 0;
  transform: scale(0.6);
  transition: opacity 0.28s, transform 0.28s;
}

.galeria-item:hover img { transform: scale(1.07); }

.galeria-item:hover .galeria-item__overlay { background: rgba(0, 0, 0, 0.45); }

.galeria-item:hover .galeria-item__overlay i {
  opacity: 1;
  transform: scale(1);
}

/* ============================================================
   PRESENTACIÓN — Encabezado, stats y cuatro pilares
   ============================================================ */
.presentacion-section { background: #fff; }

.presentacion-header {
  padding: 3rem 2rem 0;
  max-width: 820px;
  margin: 0 auto;
}

.presentacion-supra {
  color: #942f34;
  letter-spacing: 0.18em;
  font-size: 0.82rem;
  text-transform: uppercase;
  margin: 0 0 0.5rem;
}

.presentacion-titulo {
  font-size: 3.2rem;
  margin: 0 0 1.2rem;
  line-height: 1.1;
}

.presentacion-desc {
  font-size: 1rem;
  line-height: 1.85;
  color: #444;
  margin: 0;
}

.presentacion-underline {
  width: 50px;
  height: 3px;
  background: #942f34;
  margin: 1.5rem auto 0;
}

/* Franja de stats */
.presentacion-stats {
  background: #1c1c1c;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  margin-top: 2.5rem;
}

.pstat {
  flex: 1;
  min-width: 180px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 1.8rem 1rem;
  border-right: 1px solid rgba(255,255,255,0.07);
}

.pstat:last-child { border-right: none; }

.pstat-valor {
  font-size: 1.5rem;
  color: #fff;
  display: block;
  margin-bottom: 0.3rem;
  line-height: 1.2;
}

.pstat-label {
  font-size: 0.72rem;
  color: rgba(255,255,255,0.42);
  letter-spacing: 0.8px;
  text-transform: uppercase;
}

/* Cuatro pilares */
.presentacion-pilares {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  padding: 3rem 2rem;
  max-width: 1140px;
  margin: 0 auto;
}

@media (max-width: 992px) {
  .presentacion-pilares { grid-template-columns: repeat(2, 1fr); gap: 2rem; }
}

@media (max-width: 600px) {
  .presentacion-pilares { grid-template-columns: 1fr; }
  .presentacion-titulo  { font-size: 2.4rem; }
}

.pilar { text-align: center; padding: 1rem; }

.pilar-img {
  width: 150px;
  height: 150px;
  border-radius: 50%;
  object-fit: cover;
  display: block;
  margin: 0 auto 1.2rem;
  box-shadow: 0 4px 18px rgba(0,0,0,0.13);
}

.pilar-titulo {
  font-size: 1.05rem;
  font-weight: 700;
  margin: 0 0 0.7rem;
  color: #1a1a1a;
  letter-spacing: 0.3px;
}

.pilar-texto {
  font-size: 0.88rem;
  line-height: 1.75;
  color: #555;
  margin: 0;
}

/* ============================================================
   ESPECIALIDADES — Cortes y texto de calidad
   ============================================================ */
.especialidades-section {
  background: #f8f7f5;
  padding-bottom: 3.5rem;
}

.especialidades-header {
  padding: 3rem 2rem 2rem;
}

.especialidades-supra {
  color: #942f34;
  letter-spacing: 0.18em;
  font-size: 0.82rem;
  text-transform: uppercase;
  margin: 0 0 0.4rem;
}

.especialidades-titulo { font-size: 3rem; margin: 0 0 0.5rem; }

.especialidades-subtitulo { color: #666; font-size: 1rem; margin: 0; }

.especialidades-underline {
  width: 50px;
  height: 3px;
  background: #942f34;
  margin: 1rem auto 0;
}

/* 4 tarjetas de corte */
.especialidades-cortes {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 2rem 3rem;
}

@media (max-width: 992px) { .especialidades-cortes { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 500px)  { .especialidades-cortes { grid-template-columns: repeat(2, 1fr); gap: 1rem; } }

.corte-card {
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 3px 16px rgba(0,0,0,0.08);
  transition: transform 0.25s, box-shadow 0.25s;
}

.corte-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 28px rgba(0,0,0,0.14);
}

.corte-card__img {
  aspect-ratio: 4 / 3;
  overflow: hidden;
}

.corte-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}

.corte-card:hover .corte-card__img img { transform: scale(1.06); }

.corte-card__nombre {
  padding: 0.8rem 1rem;
  font-weight: 700;
  font-size: 0.95rem;
  color: #1a1a1a;
  margin: 0;
  text-align: center;
  border-top: 3px solid #942f34;
  letter-spacing: 0.3px;
}

/* Bloque calidad: texto + sello */
.especialidades-calidad {
  display: grid;
  grid-template-columns: 3fr 1fr;
  gap: 3rem;
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 2rem;
  align-items: center;
}

@media (max-width: 992px) {
  .especialidades-calidad { grid-template-columns: 1fr; }
  .especialidades-sello   { text-align: center; order: -1; }
}

.especialidades-texto p {
  font-size: 0.95rem;
  line-height: 1.85;
  color: #333;
  text-align: justify;
  margin-bottom: 1rem;
}

.especialidades-texto p:last-child { margin-bottom: 0; }

.especialidades-sello img {
  max-width: 80%;
  display: block;
  margin: 0 auto;
}

.especialidades-sello__label {
  text-align: center;
  font-size: 0.78rem;
  color: #999;
  letter-spacing: 1px;
  text-transform: uppercase;
  margin: 0.6rem 0 0;
}

/* ============================================================
   CARTAS — Tarjetas de propuesta gastronómica
   ============================================================ */
.cartas-section {
  background: #111;
  padding: 4.5rem 2rem;
}

.cartas-section__inner {
  max-width: 1140px;
  margin: 0 auto;
}

.cartas-header { margin-bottom: 3rem; }

.cartas-supra {
  color: #942f34;
  letter-spacing: 0.18em;
  font-size: 0.82rem;
  text-transform: uppercase;
  margin: 0 0 0.4rem;
}

.cartas-titulo { font-size: 3rem; margin: 0 0 0.5rem; color: #fff; }

.cartas-subtitulo { color: rgba(255,255,255,0.55); font-size: 1rem; margin: 0; }

.cartas-underline {
  width: 50px;
  height: 3px;
  background: #942f34;
  margin: 1rem auto 0;
}

.cartas-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

@media (max-width: 992px) { .cartas-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .cartas-grid { grid-template-columns: 1fr; } }

.carta-card {
  position: relative;
  border-radius: 14px;
  overflow: hidden;
  aspect-ratio: 3 / 4;
  display: block;
  cursor: pointer;
}

.carta-card::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.88) 0%, rgba(0,0,0,0.32) 50%, rgba(0,0,0,0.04) 100%);
  transition: background 0.35s ease;
}

.carta-card:hover::after {
  background: linear-gradient(to top, rgba(0,0,0,0.94) 0%, rgba(0,0,0,0.52) 55%, rgba(0,0,0,0.16) 100%);
}

.carta-card__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.carta-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.65s ease;
}

.carta-card:hover .carta-card__img img { transform: scale(1.08); }

.carta-card__body {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 2rem 1.75rem;
  z-index: 1;
}

.carta-card__titulo {
  font-size: 1.45rem;
  font-weight: 700;
  color: #fff;
  margin: 0 0 0.65rem;
  letter-spacing: 0.3px;
}

.carta-card__texto {
  font-size: 0.88rem;
  line-height: 1.65;
  color: rgba(255,255,255,0.82);
  margin: 0 0 1.3rem;
}

.carta-card__btn {
  display: inline-block;
  padding: 0.5rem 1.5rem;
  border: 2px solid rgba(255,255,255,0.7);
  color: #fff;
  text-decoration: none;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  transition: background 0.22s, border-color 0.22s;
}

.carta-card:hover .carta-card__btn {
  background: rgba(255,255,255,0.18);
  border-color: #fff;
}

/* ============================================================
   HISTORIA — Layout y tipografía
   ============================================================ */
.historia-section {
  padding: 3rem 2rem;
  max-width: 1140px;
  margin: 0 auto;
}

.historia-header { margin-bottom: 2.5rem; }

.historia-supra {
  color: #942f34;
  letter-spacing: 0.18em;
  font-size: 0.82rem;
  text-transform: uppercase;
  margin: 0 0 0.4rem;
}

.historia-titulo {
  font-size: 3rem;
  margin: 0 0 0.5rem;
}

.historia-subtitulo {
  color: #666;
  font-size: 1rem;
  margin: 0;
}

.historia-underline {
  width: 50px;
  height: 3px;
  background: #942f34;
  margin: 1rem auto 0;
}

/* Hitos */
.historia-hitos {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  margin: 0 0 3rem;
  flex-wrap: wrap;
  row-gap: 1rem;
}

.hito {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  min-width: 120px;
}

.hito-año {
  font-size: 2rem;
  font-weight: 700;
  color: #942f34;
  font-family: "Roboto", sans-serif;
  line-height: 1;
}

.hito-label {
  font-size: 0.75rem;
  color: #999;
  letter-spacing: 0.5px;
  text-align: center;
  text-transform: uppercase;
}

.hito-line {
  flex: 1;
  max-width: 80px;
  height: 1px;
  background: #ddd;
  margin-bottom: 1.4rem;
}

/* Grid texto + lateral */
.historia-content {
  display: grid;
  grid-template-columns: 3fr 2fr;
  gap: 3.5rem;
  align-items: start;
}

@media (max-width: 992px) {
  .historia-content { grid-template-columns: 1fr; gap: 2rem; }
  .historia-lateral { order: -1; }
  .hito-line { max-width: 50px; }
}

.historia-texto p {
  text-align: justify;
  line-height: 1.85;
  color: #333;
  margin-bottom: 1.1rem;
  font-size: 0.97rem;
}

.historia-img {
  width: 100%;
  border-radius: 12px;
  box-shadow: 0 6px 24px rgba(0,0,0,0.12);
  display: block;
  margin-bottom: 1.2rem;
}

.historia-director {
  font-size: 0.88rem;
  line-height: 1.75;
  color: #555;
  text-align: justify;
  border-left: 3px solid #942f34;
  padding-left: 1rem;
}

/* Pull quote */
.historia-quote {
  display: block;
  margin: 3rem auto 0;
  max-width: 560px;
  text-align: center;
  font-size: 2.4rem;
  color: #942f34;
  border: none;
  padding: 1.5rem 2rem;
  position: relative;
  line-height: 1.3;
}

.historia-quote::before,
.historia-quote::after {
  content: '';
  display: block;
  width: 40px;
  height: 2px;
  background: #942f34;
  margin: 0 auto;
}

.historia-quote::before { margin-bottom: 1rem; }
.historia-quote::after  { margin-top: 1rem; }

/* ============================================================
   FAQ — Sección preguntas frecuentes
   ============================================================ */
.faq-section {
  background: #f8f7f5;
  padding: 4.5rem 2rem;
}

.faq-section__inner {
  max-width: 1140px;
  margin: 0 auto;
}

.faq-header {
  text-align: center;
  margin-bottom: 3rem;
}

.faq-supra {
  display: block;
  color: #942f34;
  letter-spacing: 0.18em;
  font-size: 0.82rem;
  text-transform: uppercase;
  margin: 0 0 0.4rem;
}

.faq-titulo {
  font-size: 3rem;
  margin: 0 0 0.5rem;
  color: #1a1a1a;
}

.faq-subtitulo {
  color: #777;
  font-size: 1rem;
  margin: 0;
}

.faq-underline {
  width: 50px;
  height: 3px;
  background: #942f34;
  margin: 1rem auto 0;
}

.faq-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.25rem;
}

@media (max-width: 768px) { .faq-list { grid-template-columns: 1fr; } }

.faq-item {
  background: #fff;
  border-radius: 12px;
  padding: 1.75rem 1.75rem 1.75rem 1.5rem;
  border-top: 3px solid #942f34;
  box-shadow: 0 2px 16px rgba(0,0,0,0.05);
  transition: transform 0.22s, box-shadow 0.22s;
}

.faq-item:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 28px rgba(0,0,0,0.09);
}

.faq-question {
  font-family: 'Roboto', sans-serif;
  font-size: 1rem;
  font-weight: 700;
  margin: 0 0 0.75rem;
  color: #1a1a1a;
  line-height: 1.4;
}

.faq-answer {
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.75;
  color: #555;
}

.faq-answer a {
  color: #942f34;
  text-decoration: underline;
}

/* ============================================================
   SITE-NAV — Barra de navegación principal
   ============================================================ */
.site-nav {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
  background: rgba(14, 14, 14, 0.86);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(148, 47, 52, 0.45);
  transition: background 0.3s;
}

.site-nav__inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  height: 64px;
  padding: 0 1.75rem;
}

.site-nav__logo { height: 36px; width: auto; display: block; flex-shrink: 0; }

.site-nav__links {
  display: flex;
  align-items: center;
  gap: 0.1rem;
  margin-left: 1.75rem;
  flex: 1;
}

.site-nav__link {
  color: rgba(255, 255, 255, 0.78);
  text-decoration: none;
  font-size: 0.88rem;
  font-weight: 500;
  letter-spacing: 0.25px;
  padding: 0.45rem 0.9rem;
  border-radius: 6px;
  white-space: nowrap;
  transition: color 0.2s, background 0.2s;
}

.site-nav__link:hover {
  color: #fff;
  background: rgba(255, 255, 255, 0.09);
}

.site-nav__cta {
  margin-left: auto;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  background: #4CAF50;
  color: #fff;
  text-decoration: none;
  font-size: 0.84rem;
  font-weight: 700;
  padding: 0.5rem 1.25rem;
  border-radius: 999px;
  letter-spacing: 0.3px;
  transition: background 0.2s, transform 0.15s;
}

.site-nav__cta:hover { background: #43a047; transform: scale(1.04); }

.site-nav__lang-link {
  text-decoration: none;
  display: flex;
  align-items: center;
  flex-shrink: 0;
  transition: transform 0.2s;
  margin-right: 0.6rem;
}
.site-nav__lang-link img {
  width: 28px;
  height: auto;
  display: block;
  border-radius: 2px;
  box-shadow: 0 0 0 1px rgba(0,0,0,0.15);
}
.site-nav__lang-link:hover { transform: scale(1.15); }
.site-nav__mobile-link img {
  width: 22px;
  height: auto;
  vertical-align: middle;
  border-radius: 2px;
  margin-right: 6px;
  box-shadow: 0 0 0 1px rgba(0,0,0,0.12);
}

.site-nav__toggle {
  display: none;
  background: none;
  border: none;
  color: rgba(255,255,255,0.88);
  font-size: 1.2rem;
  cursor: pointer;
  padding: 0.5rem;
  margin-left: auto;
  line-height: 1;
}

.site-nav__mobile {
  position: fixed;
  top: 64px;
  left: 0;
  width: 100%;
  background: rgba(10, 10, 10, 0.96);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  border-bottom: 1px solid rgba(148, 47, 52, 0.5);
  z-index: 999;
  display: flex;
  flex-direction: column;
  padding: 0.5rem 0 1.25rem;
  visibility: hidden;
  opacity: 0;
  transform: translateY(-6px);
  transition: opacity 0.22s ease, transform 0.22s ease, visibility 0s 0.22s;
}

.site-nav__mobile.is-open {
  visibility: visible;
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.22s ease, transform 0.22s ease, visibility 0s 0s;
}

.site-nav__mobile-link {
  color: rgba(255, 255, 255, 0.8);
  text-decoration: none;
  font-size: 1rem;
  font-weight: 500;
  padding: 0.85rem 1.75rem;
  border-left: 3px solid transparent;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
  transition: color 0.18s, background 0.18s, border-color 0.18s;
}

.site-nav__mobile-link:hover {
  color: #fff;
  background: rgba(255, 255, 255, 0.05);
  border-left-color: #942f34;
}

.site-nav__mobile-cta {
  margin: 1rem 1.75rem 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  background: #4CAF50;
  color: #fff;
  text-decoration: none;
  font-size: 0.95rem;
  font-weight: 700;
  padding: 0.85rem 1.5rem;
  border-radius: 999px;
  transition: background 0.2s;
}

.site-nav__mobile-cta:hover { background: #43a047; }

.site-nav__toggle[aria-expanded="true"] i::before { content: "\f00d"; }

@media (max-width: 768px) {
  .site-nav__links,
  .site-nav__cta { display: none; }
  .site-nav__toggle { display: block; }
}

/* ============================================================
   HERO DE SUBPÁGINAS — Cabecera parallax con imagen fija
   ============================================================ */
.page-hero {
  background-attachment: fixed;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  min-height: 400px;
  position: relative;
}
.page-hero__overlay {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background: rgba(0, 0, 0, 0.45);
}
@media only screen and (max-width: 768px) {
  .page-hero { background-attachment: scroll; }
}

/* ============================================================
   MENÚ — Layout de carta
   ============================================================ */
.menu-section { margin-bottom: 2.5rem; }
.menu-section h3 {
  font-size: 2rem;
  color: #942f34;
  border-bottom: 2px solid #942f34;
  padding-bottom: 6px;
  margin: 2rem 0 1rem;
}
.menu-item {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 0.6rem 0;
  border-bottom: 1px solid rgba(0,0,0,0.07);
  gap: 1rem;
}
.menu-item:last-child { border-bottom: none; }
.menu-item__desc { flex: 1; }
.menu-item__en { display: block; color: #942f34; font-size: 0.88em; }
.menu-item__note { display: block; color: #555; font-size: 0.82em; }
.menu-item__price {
  font-weight: 700;
  color: #333;
  white-space: nowrap;
  min-width: 3rem;
  text-align: right;
}
.spirit-list { margin: 0.5rem 0 1rem; }
.spirit-header,
.spirit-item {
  display: flex;
  align-items: baseline;
  padding: 0.45rem 0;
  border-bottom: 1px solid rgba(0,0,0,0.06);
  gap: 0.5rem;
}
.spirit-header { border-bottom: 2px solid #942f34; padding-bottom: 0.4rem; }
.spirit-item:last-child { border-bottom: none; }
.spirit-name { flex: 1; font-weight: 700; }
.spirit-price {
  width: 72px;
  text-align: right;
  font-weight: 700;
  white-space: nowrap;
  color: #333;
}
.spirit-header .spirit-price {
  color: #942f34;
  font-size: 0.88em;
  letter-spacing: 0.5px;
}
.menu-note { font-size: 0.9em; color: #666; margin: 0.25rem 0 0.75rem; }
.menu-footer-note {
  font-size: 0.85em;
  color: #777;
  text-align: center;
  margin: 0.5rem 0 2rem;
  padding-top: 0.5rem;
  border-top: 1px solid #ddd;
}

/* ============================================================
   PAGE INTRO — Sección de introducción SEO/AEO en subpáginas
   ============================================================ */
.page-intro {
  background: #f8f7f5;
  padding: 72px 16px 60px;
}
.page-intro__inner {
  max-width: 860px;
  margin: 0 auto;
}
.page-intro__header {
  text-align: center;
  margin-bottom: 2rem;
}
.page-intro__supra {
  display: inline-block;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: #942f34;
  margin-bottom: 0.4rem;
}
.page-intro__title {
  font-size: clamp(2rem, 5vw, 3rem);
  color: #1a1a1a;
  line-height: 1.15;
  margin: 0.2rem 0 1rem;
}
.page-intro__underline {
  width: 48px;
  height: 3px;
  background: #942f34;
  margin: 0 auto;
}
.page-intro__body {
  margin: 2rem auto 0;
}
.page-intro__body p {
  color: #444;
  line-height: 1.85;
  margin-bottom: 1.2rem;
  font-size: 1.04rem;
}
.page-intro__highlights {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
  margin-top: 2.5rem;
}
.page-intro__highlight {
  background: #fff;
  border-top: 3px solid #942f34;
  padding: 1.25rem 1rem;
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
  text-align: center;
}
.page-intro__highlight-value {
  display: block;
  font-size: 1.5rem;
  font-weight: 700;
  color: #942f34;
}
.page-intro__highlight-label {
  display: block;
  font-size: 0.83rem;
  color: #666;
  margin-top: 0.3rem;
  line-height: 1.4;
}
@media (max-width: 600px) {
  .page-intro__highlights { grid-template-columns: 1fr; }
}

/* ============================================================
   PÁGINAS LEGALES
   ============================================================ */
.legal-hero {
  background: #1a1a1a;
  padding: 64px 16px 52px;
  text-align: center;
}
.legal-hero h1 {
  font-family: 'Roboto', sans-serif;
  font-weight: 700;
  font-size: clamp(2.5rem, 6vw, 4rem);
  color: #fff;
  margin: 0;
}
.legal-hero__sub {
  color: rgba(255,255,255,0.5);
  font-size: 0.82rem;
  letter-spacing: 2px;
  text-transform: uppercase;
  margin-top: 0.5rem;
}
.legal-body {
  max-width: 860px;
  margin: 0 auto;
  padding: 56px 16px 80px;
}
.legal-meta {
  background: #f8f7f5;
  border-left: 3px solid #942f34;
  padding: 1rem 1.25rem;
  margin-bottom: 2.5rem;
  font-size: 0.9rem;
  color: #555;
  line-height: 1.7;
}
.legal-meta strong { color: #333; }
.legal-body h2 {
  font-family: 'Roboto', sans-serif;
  font-size: 1.1rem;
  font-weight: 700;
  color: #942f34;
  margin: 2.5rem 0 0.6rem;
  padding-bottom: 6px;
  border-bottom: 1px solid #e5e5e5;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.legal-body h3 {
  font-family: 'Roboto', sans-serif;
  font-size: 1rem;
  font-weight: 700;
  color: #333;
  margin: 1.5rem 0 0.4rem;
}
.legal-body p { color: #444; line-height: 1.85; margin-bottom: 1rem; }
.legal-body ul { color: #444; line-height: 1.85; margin: 0.4rem 0 1rem 1.5rem; }
.legal-body li { margin-bottom: 0.2rem; }
.legal-body a { color: #942f34; }
.legal-body a:hover { text-decoration: underline; }
.legal-update {
  margin-top: 3rem;
  padding-top: 1rem;
  border-top: 1px solid #e5e5e5;
  font-size: 0.85rem;
  color: #888;
}

/* ============================================================
   BOTONES RESERVA — Efecto idéntico al nav CTA (.site-nav__cta)
   Anula el .be-button:hover genérico (color:#000;bg:#ccc)
   ============================================================ */
.be-button.be-green {
  transition: background-color 0.2s, transform 0.15s, box-shadow 0.2s;
}
.be-button.be-green:hover,
.be-button.be-green:focus-visible {
  color: #fff !important;
  background-color: #43a047 !important;
  transform: scale(1.04);
  box-shadow: none;
}

/* ============================================================
   COOKIE CONSENT
   ============================================================ */
#cc-banner {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 9000;
  background: #fff;
  border-top: 3px solid #942f34;
  box-shadow: 0 -4px 24px rgba(0,0,0,0.12);
}
.cc-wrap {
  max-width: 1140px;
  margin: 0 auto;
  padding: 18px 24px;
  display: flex;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
}
.cc-text {
  flex: 1;
  min-width: 200px;
  font-size: 0.87rem;
  color: #333;
  margin: 0;
  line-height: 1.55;
}
.cc-link { color: #942f34; text-decoration: underline; }
.cc-btns {
  display: flex;
  gap: 10px;
  flex-shrink: 0;
  flex-wrap: wrap;
}
.cc-btn {
  padding: 9px 18px;
  border-radius: 4px;
  font-family: 'Roboto', sans-serif;
  font-size: 0.84rem;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  transition: opacity 0.15s;
  line-height: 1;
}
.cc-btn:hover { opacity: 0.82; }
.cc-btn-ghost  { background: transparent; border: 1px solid #aaa; color: #333; }
.cc-btn-dark   { background: #333; border: 1px solid #333; color: #fff; }
.cc-btn-outline { background: transparent; border: 1px solid #942f34; color: #942f34; }
.cc-btn-solid  { background: #4CAF50; border: 1px solid #4CAF50; color: #fff; }

/* Modal */
#cc-modal {
  position: fixed;
  inset: 0;
  z-index: 10000;
  background: rgba(0,0,0,0.55);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
}
.cc-modal-box {
  background: #fff;
  border-radius: 8px;
  width: 100%;
  max-width: 520px;
  box-shadow: 0 16px 48px rgba(0,0,0,0.28);
  overflow: hidden;
}
.cc-modal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 22px;
  background: #1a1a1a;
  color: #fff;
  font-size: 0.96rem;
}
.cc-modal-x {
  background: transparent;
  border: none;
  color: rgba(255,255,255,0.7);
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  padding: 0 4px;
}
.cc-modal-x:hover { color: #fff; }
.cc-modal-body { padding: 4px 22px; }
.cc-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  padding: 18px 0;
  border-bottom: 1px solid #eee;
}
.cc-row:last-child { border-bottom: none; }
.cc-row-info { flex: 1; }
.cc-row-info strong { font-size: 0.9rem; color: #1a1a1a; }
.cc-row-info p { font-size: 0.8rem; color: #666; margin: 5px 0 0; line-height: 1.5; }
.cc-always {
  font-size: 0.78rem;
  color: #4CAF50;
  font-weight: 700;
  white-space: nowrap;
  flex-shrink: 0;
  padding-top: 3px;
}
.cc-toggle {
  position: relative;
  display: inline-block;
  width: 46px;
  height: 26px;
  flex-shrink: 0;
  cursor: pointer;
}
.cc-toggle input { opacity: 0; width: 0; height: 0; position: absolute; }
.cc-slider {
  position: absolute;
  inset: 0;
  background: #ccc;
  border-radius: 26px;
  transition: background 0.25s;
}
.cc-slider::before {
  content: '';
  position: absolute;
  width: 20px;
  height: 20px;
  left: 3px;
  top: 3px;
  background: #fff;
  border-radius: 50%;
  transition: transform 0.25s;
  box-shadow: 0 1px 3px rgba(0,0,0,0.2);
}
.cc-toggle input:checked + .cc-slider { background: #4CAF50; }
.cc-toggle input:checked + .cc-slider::before { transform: translateX(20px); }
.cc-modal-foot {
  padding: 16px 22px;
  border-top: 1px solid #eee;
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}
/* Map placeholder */
.map-ph {
  width: 100%;
  background: #f0efee;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border-radius: 4px;
}
.map-ph__btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 20px;
  background: #1a1a1a;
  color: #fff;
  border: none;
  border-radius: 4px;
  font-family: 'Roboto', sans-serif;
  font-size: 0.88rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s;
}
.map-ph__btn:hover { background: #942f34; }
.map-ph__note {
  font-size: 0.75rem;
  color: #888;
  margin: 0;
  text-align: center;
}

.cc-manage-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 20px 0;
  padding: 12px 22px;
  background: #1a1a1a;
  color: #fff;
  border: none;
  border-radius: 4px;
  font-family: 'Roboto', sans-serif;
  font-size: 0.9rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s;
}
.cc-manage-btn:hover { background: #942f34; }
@media (max-width: 600px) {
  .cc-wrap { flex-direction: column; gap: 14px; }
  .cc-btns { width: 100%; }
  .cc-btn { flex: 1; text-align: center; }
}

/* ============================================================
   UTILIDADES — elimina estilos inline del HTML
   ============================================================ */

/* Offset del navbar fijo (64px) */
main { margin-top: 64px; }

/* Hero background images — rutas absolutas válidas en cualquier subdirectorio */
.hero-bg--slider  { background-image: url('/imagenes/carne-brasa-camarero-the-beefeater.jpg'); }
.hero-bg--menu    { background-image: url('/imagenes/vaca-vieja-brasa-fuengirola.jpg'); }
.hero-bg--bodega  { background-image: url('/imagenes/botellas-vino-bodega-the-beefeater.jpg'); }
.hero-bg--postres { background-image: url('/imagenes/tarta-chocolate-postres-caseros.jpg'); }

/* Capa de contenido sobre el hero */
.hero-z { z-index: 2; }

/* Logo en hero */
.hero-logo     { width: 100%; height: auto; }
.hero-logo--sm { width: 280px; max-width: 80%; height: auto; }

/* Icono inline con margen derecho */
.be-icon-mr { margin-right: 8px; }

/* Color verde Tripadvisor para estrellas de reseñas */
.be-text-tripadvisor { color: #00aa6c; }

/* Modal de galería */
.be-modal--gallery      { padding-top: 0; }
.galeria-modal__img     { max-width: 100%; max-height: 75vh; object-fit: contain; }
.galeria-modal__caption { color: rgba(255,255,255,0.6); font-size: 0.85rem; margin-top: 0.5rem; }

/* Embed de Google Maps */
.mapa-embed { border: 0; }

/* Contenedor de ancho máximo en páginas de carta */
.menu-contenido     { max-width: 820px; margin: 0 auto; }
.menu-contenido--sm { max-width: 680px; margin: 0 auto; }

/* Etiqueta bilingüe en encabezados h3 */
.h3-lang  { font-size: 0.65em; }
.h3-badge { font-size: 0.7em; color: #888; font-weight: normal; }

/* SVG icono inline en testimonios */
.be-svg-inline { vertical-align: middle; fill: currentColor; }

/* Primer menu-item sin separador superior */
.menu-item--first { margin-top: 0.5rem; }

/* Encabezado de sección de cervezas en carta de vinos */
.vinos-h3--beer { font-size: 1.4rem; margin-top: 1.5rem; }

/* Nota al pie de carta con margen superior extra */
.menu-footer-note--top { margin-top: 2rem; }

/* Banner de advertencia de idioma en páginas legales EN */
.aviso-idioma {
  background: #fff8e1;
  border-left: 3px solid #f4a300;
  padding: 0.9rem 1.1rem;
  font-size: 0.88rem;
  color: #5a4500;
  margin-bottom: 2rem;
}

