/* EndoSmile: dark carbón + dorado del logo */
:root {
    --fondo: #121519;
    --fondo-alt: #171b20;
    --panel: #1c2128;
    --panel-2: #232932;
    --linea: rgba(201, 168, 99, .18);
    --linea-suave: rgba(255, 255, 255, .07);
    --oro: #c9a863;
    --oro-claro: #e8d29f;
    --oro-oscuro: #a2843f;
    --texto: #e9e6df;
    --gris: #9ba1a9;
    --gris-2: #6f767f;
    --radio: 18px;
    --sans: "Jost", system-ui, -apple-system, "Segoe UI", sans-serif;
    --serif: "Cormorant Garamond", Georgia, serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 76px; overflow-x: hidden; overflow-x: clip; }
body {
    margin: 0;
    background: var(--fondo);
    color: var(--texto);
    font: 400 16px/1.65 var(--sans);
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
    overflow-x: clip;
}
a { color: inherit; text-decoration: none; }
h1, h2, h3 { margin: 0; font-weight: 300; letter-spacing: -.01em; line-height: 1.12; }
em { font-family: var(--serif); font-style: italic; font-weight: 500; color: var(--oro); letter-spacing: 0; }
button, input { font: inherit; color: inherit; }
::selection { background: var(--oro); color: #111; }

.wrap { width: 100%; max-width: 1160px; margin: 0 auto; padding: 0 24px; }
@media (max-width: 600px) { .wrap { padding: 0 16px; } }

.eyebrow {
    display: flex; align-items: center; gap: 12px;
    margin: 0 0 18px; color: var(--oro);
    font-size: 12px; font-weight: 500; letter-spacing: .22em; text-transform: uppercase;
}
.linea { width: 28px; height: 1px; background: var(--oro); opacity: .7; }
.lead { color: var(--gris); font-size: 17px; font-weight: 300; max-width: 560px; }

/* Botones */
.btn {
    display: inline-flex; align-items: center; justify-content: center;
    min-height: 50px; padding: 0 28px; border-radius: 999px; border: 1px solid transparent;
    font-size: 14px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; cursor: pointer;
    transition: transform .2s, box-shadow .25s, background .25s, color .25s, border-color .25s;
}
.hero-in > *, .nosotros > *, .visitanos > *, .cotizador > * { min-width: 0; }
.btn { white-space: normal; text-align: center; line-height: 1.3; }
.btn-oro {
    background: linear-gradient(135deg, var(--oro-claro), var(--oro) 45%, var(--oro-oscuro));
    color: #17140d;
    box-shadow: 0 8px 26px -10px rgba(201, 168, 99, .55);
}
.btn-oro:hover { transform: translateY(-2px); box-shadow: 0 14px 34px -10px rgba(201, 168, 99, .7); }
.btn-linea { border-color: var(--linea); color: var(--oro-claro); }
.btn-linea:hover { border-color: var(--oro); background: rgba(201, 168, 99, .08); }
.btn-chico { min-height: 40px; padding: 0 20px; font-size: 12px; }

/* Header */
.top {
    position: sticky; top: 0; z-index: 20;
    background: rgba(18, 21, 25, .72);
    backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
    border-bottom: 1px solid var(--linea-suave);
}
.top-in { display: flex; align-items: center; gap: 32px; height: 68px; }
.marca { display: flex; align-items: center; gap: 10px; }
.marca-icono { width: 30px; height: 30px; fill: none; stroke: var(--oro); stroke-width: 6; stroke-linecap: round; stroke-linejoin: round; }
.marca-texto { color: var(--oro); font-size: 20px; letter-spacing: .06em; }
.marca-texto span { font-weight: 300; }
.marca-texto b { font-weight: 600; }
.menu { display: flex; gap: 28px; margin-left: auto; }
.menu a { color: var(--gris); font-size: 14px; letter-spacing: .04em; transition: color .2s; }
.menu a:hover { color: var(--oro-claro); }
@media (max-width: 1060px) { .menu { display: none; } .top-in { justify-content: space-between; } }

/* Hero */
.hero { position: relative; padding: 72px 0 96px; overflow: hidden; }
.hero::before {
    content: ""; position: absolute; inset: -20% -10% auto auto; width: 820px; height: 820px;
    background: radial-gradient(circle, rgba(201, 168, 99, .16), transparent 62%);
    pointer-events: none;
}
.hero::after {
    content: ""; position: absolute; left: -200px; bottom: -300px; width: 600px; height: 600px;
    background: radial-gradient(circle, rgba(120, 140, 170, .08), transparent 65%);
    pointer-events: none;
}
.hero-in { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: 64px; align-items: center; }
.hero h1 { font-size: clamp(42px, 6vw, 72px); margin-bottom: 22px; }
.hero h1 em { font-size: 1.08em; }
.acciones { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.hero-datos { display: flex; gap: 36px; margin: 48px 0 0; padding: 28px 0 0; list-style: none; border-top: 1px solid var(--linea-suave); }
.hero-datos li { display: flex; flex-direction: column; }
.hero-datos b { font-weight: 500; color: var(--oro-claro); }
.hero-datos span { color: var(--gris-2); font-size: 13px; }
@media (max-width: 960px) {
    .hero { padding: 40px 0 64px; }
    .hero-in { grid-template-columns: minmax(0, 1fr); gap: 44px; }
}
@media (max-width: 520px) {
    .hero-datos { gap: 18px; justify-content: space-between; }
    .hero-datos b { font-size: 14px; }
    .hero-datos span { font-size: 12px; }
    .acciones .btn { flex: 1 1 100%; }
}

/* SmileIA: borde multicolor que gira y orbe que respira */
@property --ang { syntax: "<angle>"; initial-value: 0deg; inherits: false; }
.ia { position: relative; border-radius: 26px; padding: 1.5px; isolation: isolate; }
.ia-borde {
    position: absolute; inset: 0; border-radius: inherit; z-index: -1;
    background: conic-gradient(from var(--ang), #e8d29f, #f0a07a, #e46fa0, #9b7cf0, #5fc4d8, #7fe0a8, #e8d29f);
    animation: girar 6s linear infinite;
}
.ia-borde::after {
    content: ""; position: absolute; inset: -18px; border-radius: inherit; z-index: -1;
    background: inherit; filter: blur(34px); opacity: .32;
}
@keyframes girar { to { --ang: 360deg; } }
.ia-caja {
    display: flex; flex-direction: column;
    height: 560px; border-radius: 25px; overflow: hidden;
    background:
        radial-gradient(120% 60% at 100% 0%, rgba(228, 111, 160, .10), transparent 60%),
        radial-gradient(100% 60% at 0% 100%, rgba(95, 196, 216, .08), transparent 60%),
        linear-gradient(180deg, #1d2229, #161a1f);
}
.ia-cab { display: flex; align-items: center; gap: 14px; padding: 18px 20px; border-bottom: 1px solid var(--linea-suave); }
.ia-nombre {
    margin: 0; font-size: 19px; font-weight: 600; letter-spacing: .02em;
    background: linear-gradient(90deg, #e8d29f, #f0a07a, #e46fa0, #9b7cf0, #5fc4d8, #e8d29f);
    background-size: 300% 100%;
    -webkit-background-clip: text; background-clip: text; color: transparent;
    animation: brillo 8s linear infinite;
}
@keyframes brillo { to { background-position: 300% 0; } }
.ia-estado { margin: 0; display: flex; align-items: center; gap: 7px; color: var(--gris); font-size: 13px; }
.ia-estado i { width: 7px; height: 7px; border-radius: 50%; background: #6fe0a0; box-shadow: 0 0 0 0 rgba(111, 224, 160, .6); animation: pulso 2s infinite; }
@keyframes pulso { 70% { box-shadow: 0 0 0 7px rgba(111, 224, 160, 0); } 100% { box-shadow: 0 0 0 0 rgba(111, 224, 160, 0); } }

.orbe { position: relative; width: 46px; height: 46px; flex: none; border-radius: 50%; overflow: hidden; background: #2a2131; box-shadow: 0 0 22px rgba(228, 111, 160, .35); }
.orbe span { position: absolute; width: 70%; height: 70%; border-radius: 50%; filter: blur(7px); mix-blend-mode: screen; }
.orbe span:nth-child(1) { background: #e8c27a; left: -5%; top: -5%; animation: orbita 5s ease-in-out infinite; }
.orbe span:nth-child(2) { background: #e46fa0; right: -10%; top: 15%; animation: orbita 6s ease-in-out infinite reverse; }
.orbe span:nth-child(3) { background: #5fc4d8; left: 15%; bottom: -15%; animation: orbita 7s ease-in-out infinite; }
.orbe.pensando span { animation-duration: 1.4s; }
@keyframes orbita {
    0%, 100% { transform: translate(0, 0) scale(1); }
    33% { transform: translate(30%, 20%) scale(1.15); }
    66% { transform: translate(-15%, 30%) scale(.9); }
}

.ia-chat { flex: 1; overflow-y: auto; padding: 20px; display: flex; flex-direction: column; gap: 12px; scrollbar-width: thin; scrollbar-color: #39404a transparent; }
.msg { max-width: 88%; padding: 12px 16px; border-radius: 18px; font-size: 15px; line-height: 1.55; animation: entrar .35s ease-out both; white-space: pre-wrap; overflow-wrap: anywhere; }
@keyframes entrar { from { opacity: 0; transform: translateY(8px) scale(.98); } to { opacity: 1; transform: none; } }
.msg-ia { align-self: flex-start; background: var(--panel-2); border: 1px solid var(--linea-suave); border-top-left-radius: 6px; }
.msg-yo {
    align-self: flex-end; border-top-right-radius: 6px; color: #17140d;
    background: linear-gradient(135deg, var(--oro-claro), var(--oro));
}
.msg-error { border-color: rgba(240, 160, 122, .4); }
.msg-acciones { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.msg-acciones a {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 7px 14px; border-radius: 999px; font-size: 13px; font-weight: 500;
    border: 1px solid var(--linea); color: var(--oro-claro); background: rgba(201, 168, 99, .06);
    transition: background .2s, border-color .2s, transform .2s;
}
.msg-acciones a:first-child { background: linear-gradient(135deg, var(--oro-claro), var(--oro)); color: #17140d; border-color: transparent; }
.msg-acciones a:hover { transform: translateY(-1px); border-color: var(--oro); }
.escribiendo { display: inline-flex; gap: 5px; padding: 16px 18px; }
.escribiendo i { width: 7px; height: 7px; border-radius: 50%; animation: salto 1.2s infinite ease-in-out; }
.escribiendo i:nth-child(1) { background: #e8c27a; }
.escribiendo i:nth-child(2) { background: #e46fa0; animation-delay: .15s; }
.escribiendo i:nth-child(3) { background: #5fc4d8; animation-delay: .3s; }
@keyframes salto { 0%, 60%, 100% { transform: translateY(0); opacity: .5; } 30% { transform: translateY(-6px); opacity: 1; } }

.ia-sugerencias { display: flex; gap: 8px; padding: 0 20px 12px; overflow-x: auto; scrollbar-width: none; }
.ia-sugerencias::-webkit-scrollbar { display: none; }
.ia-sugerencias button {
    flex: none; padding: 8px 14px; border-radius: 999px; cursor: pointer;
    border: 1px solid var(--linea-suave); background: rgba(255, 255, 255, .03);
    color: var(--gris); font-size: 13px; transition: color .2s, border-color .2s, background .2s;
}
.ia-sugerencias button:hover { color: var(--oro-claro); border-color: var(--linea); background: rgba(201, 168, 99, .06); }
.ia-form { display: flex; gap: 10px; padding: 14px 16px 16px; border-top: 1px solid var(--linea-suave); }
.ia-form input {
    flex: 1; min-width: 0; height: 48px; padding: 0 18px; border-radius: 999px;
    border: 1px solid var(--linea-suave); background: rgba(0, 0, 0, .25); outline: none; font-size: 15px;
    transition: border-color .2s, box-shadow .2s;
}
.ia-form input::placeholder { color: var(--gris-2); }
.ia-form input:focus { border-color: var(--oro); box-shadow: 0 0 0 4px rgba(201, 168, 99, .12); }
.ia-form button {
    flex: none; width: 48px; height: 48px; border-radius: 50%; border: 0; cursor: pointer;
    background: conic-gradient(from 200deg, #e8d29f, #f0a07a, #e46fa0, #9b7cf0, #5fc4d8, #e8d29f);
    display: grid; place-items: center; transition: transform .2s, opacity .2s;
}
.ia-form button:hover { transform: scale(1.06) rotate(-8deg); }
.ia-form button:disabled { opacity: .5; cursor: default; transform: none; }
.ia-form svg { width: 20px; height: 20px; fill: none; stroke: #17140d; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 520px) { .ia-caja { height: 520px; } .msg { max-width: 94%; } }

/* Secciones */
.seccion { padding: 110px 0; }
.seccion-alt { background: var(--fondo-alt); border-top: 1px solid var(--linea-suave); border-bottom: 1px solid var(--linea-suave); }
.seccion h2, .cierre h2 { font-size: clamp(34px, 4.4vw, 52px); margin-bottom: 22px; }
.titulo-centro { text-align: center; margin-bottom: 48px; }
.titulo-centro .eyebrow { justify-content: center; }
.titulo-centro .lead { margin: 0 auto; }
@media (max-width: 600px) { .seccion { padding: 72px 0; } }

.nosotros { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 64px; align-items: center; }
.destacados { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.destacados li {
    display: flex; align-items: center; gap: 16px; padding: 18px 22px;
    background: var(--panel); border: 1px solid var(--linea-suave); border-radius: 14px;
    transition: border-color .25s, transform .25s;
}
.destacados li:hover { border-color: var(--linea); transform: translateX(4px); }
.destacados svg { width: 22px; height: 22px; flex: none; fill: none; stroke: var(--oro); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 860px) { .nosotros { grid-template-columns: minmax(0, 1fr); gap: 36px; } }

/* Servicios */
.tabs { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-bottom: 32px; }
.tabs button {
    padding: 10px 20px; border-radius: 999px; cursor: pointer;
    border: 1px solid var(--linea-suave); background: transparent; color: var(--gris); font-size: 14px;
    transition: color .2s, border-color .2s, background .2s;
}
.tabs button:hover { color: var(--oro-claro); }
.tabs button[aria-selected="true"] { color: #17140d; background: var(--oro); border-color: var(--oro); }
.area { max-width: 860px; margin: 0 auto; animation: entrar .4s ease-out both; }
.area-resumen { text-align: center; color: var(--gris); margin: 0 0 20px; font-style: italic; font-family: var(--serif); font-size: 20px; }
.servicios { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--linea); }
.servicios li { display: flex; gap: 24px; justify-content: space-between; align-items: center; padding: 24px 4px; border-bottom: 1px solid var(--linea); }
.servicios h3 { font-size: 20px; font-weight: 400; margin-bottom: 4px; }
.servicios p { margin: 0; color: var(--gris); font-size: 14px; }
.precio { text-align: right; flex: none; }
.precio b { display: block; color: var(--oro-claro); font-weight: 500; white-space: nowrap; }
.precio span { color: var(--gris-2); font-size: 13px; }
@media (max-width: 600px) {
    .servicios li { flex-direction: column; align-items: flex-start; gap: 10px; }
    .precio { text-align: left; }
}
.sena {
    display: flex; align-items: center; gap: 24px; justify-content: space-between;
    max-width: 860px; margin: 40px auto 0; padding: 24px 28px; border-radius: var(--radio);
    border: 1px solid var(--linea); background: linear-gradient(135deg, rgba(201, 168, 99, .09), rgba(201, 168, 99, .02));
}
.sena p { margin: 0; color: var(--gris); font-size: 15px; }
.sena b { color: var(--oro-claro); font-weight: 500; }
@media (max-width: 700px) { .sena { flex-direction: column; align-items: stretch; text-align: center; } }

/* ¿Qué te pasa? */
.guia { max-width: 760px; margin: 0 auto; }
.guia-card {
    padding: 32px; border-radius: 24px; border: 1px solid var(--linea);
    background: radial-gradient(120% 80% at 100% 0%, rgba(201, 168, 99, .08), transparent 60%), var(--panel);
    animation: entrar .35s ease-out both;
}
.guia-cab { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.guia-paso { margin: 0; color: var(--oro); font-size: 12px; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; }
.guia-card h3 { font-size: clamp(24px, 3vw, 30px); margin: 10px 0 24px; }
.guia-card h3 em { font-size: 1.15em; }
.guia-ops { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; }
.guia-op {
    display: flex; align-items: center; gap: 14px; text-align: left; cursor: pointer;
    padding: 16px 18px; border-radius: 14px; border: 1px solid var(--linea-suave); background: rgba(255, 255, 255, .02);
    font-size: 15px; transition: border-color .2s, background .2s, transform .2s;
}
.guia-op:hover { border-color: var(--oro); background: rgba(201, 168, 99, .07); transform: translateY(-2px); }
.guia-ico {
    display: grid; place-items: center; flex: none; width: 36px; height: 36px; border-radius: 50%;
    border: 1px solid var(--linea); color: var(--oro); font-size: 16px;
}
.guia-volver { background: none; border: 0; padding: 4px 0; color: var(--gris); font-size: 14px; cursor: pointer; }
.guia-volver:hover { color: var(--oro-claro); }
.guia-res .guia-volver { margin-top: 18px; }
.guia-texto { color: var(--texto); font-size: 17px; font-weight: 300; margin: -8px 0 22px; }
.guia-datos { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px 24px; margin: 0; padding: 18px 0; border-top: 1px solid var(--linea-suave); border-bottom: 1px solid var(--linea-suave); }
.guia-datos dt { color: var(--gris); font-size: 14px; }
.guia-datos dd { margin: 0; text-align: right; color: var(--oro-claro); }
.guia-res .acciones { margin-top: 24px; }
.guia-res.urgente { border-color: rgba(240, 160, 122, .55); background: radial-gradient(120% 80% at 100% 0%, rgba(240, 160, 122, .1), transparent 60%), var(--panel); }
.guia-res.urgente .guia-paso { color: #f0a07a; }
.guia-nota { max-width: 760px; margin: 16px auto 0; text-align: center; color: var(--gris-2); font-size: 13px; }
.btn-ia { border: 1px solid transparent; color: var(--texto); background:
    linear-gradient(var(--panel), var(--panel)) padding-box,
    linear-gradient(90deg, #e8d29f, #f0a07a, #e46fa0, #9b7cf0, #5fc4d8) border-box; }
.btn-ia:hover { transform: translateY(-2px); }
@media (max-width: 640px) {
    .guia-card { padding: 22px 18px; }
    .guia-ops { grid-template-columns: minmax(0, 1fr); }
    .guia-res .acciones .btn { flex: 1 1 100%; }
}

/* Cotizador */
.cotizador { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 28px; align-items: start; max-width: 1040px; margin: 0 auto; }
.cot-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.cot-item {
    display: flex; align-items: center; justify-content: space-between; gap: 16px;
    padding: 14px 16px 14px 20px; border-radius: 14px; border: 1px solid var(--linea-suave); background: var(--panel);
    transition: border-color .2s, background .2s;
}
.cot-item.activo { border-color: var(--oro); background: linear-gradient(90deg, rgba(201, 168, 99, .1), var(--panel) 70%); }
.cot-info { display: flex; flex-direction: column; min-width: 0; }
.cot-area { color: var(--gris-2); font-size: 11px; letter-spacing: .16em; text-transform: uppercase; }
.cot-info b { font-weight: 400; }
.cot-precio { color: var(--oro-claro); font-size: 14px; }
.cot-ctl { display: flex; align-items: center; gap: 4px; flex: none; }
.cot-ctl button {
    width: 34px; height: 34px; border-radius: 50%; cursor: pointer; font-size: 18px; line-height: 1;
    border: 1px solid var(--linea); background: transparent; color: var(--oro-claro); transition: background .2s, color .2s;
}
.cot-ctl button:hover { background: var(--oro); color: #17140d; }
.cot-num { min-width: 22px; text-align: center; font-variant-numeric: tabular-nums; }
.cot-total {
    position: sticky; top: 92px; padding: 28px; border-radius: 24px; border: 1px solid var(--linea);
    background: radial-gradient(120% 80% at 0% 0%, rgba(201, 168, 99, .12), transparent 60%), var(--panel);
}
.cot-vacio { margin: 0; color: var(--gris); text-align: center; padding: 24px 0; }
.cot-titulo { margin: 0; color: var(--oro); font-size: 12px; letter-spacing: .2em; text-transform: uppercase; }
.cot-monto { margin: 6px 0 12px; font-size: clamp(26px, 3vw, 34px); font-weight: 300; color: var(--oro-claro); font-variant-numeric: tabular-nums; }
.cot-nota { color: var(--gris-2); font-size: 13px; margin: 0 0 14px; }
.cot-total .guia-datos { margin-bottom: 20px; }
.cot-total .acciones { margin: 0 0 14px; }
.cot-total .acciones .btn { flex: 1 1 auto; }
@media (max-width: 860px) { .cotizador { grid-template-columns: minmax(0, 1fr); } .cot-total { position: static; } }

/* Equipo */
.equipo { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.equipo li {
    text-align: center; padding: 36px 20px; border-radius: var(--radio);
    background: var(--panel); border: 1px solid var(--linea-suave); transition: border-color .25s, transform .25s;
}
.equipo li:hover { border-color: var(--linea); transform: translateY(-4px); }
/* Foto con anillo dorado; sin foto, un ícono de cámara hasta que la tengamos */
.foto {
    display: grid; place-items: center; width: 140px; height: 140px; margin: 0 auto 20px; border-radius: 50%;
    object-fit: cover; padding: 4px; background: linear-gradient(135deg, var(--oro-claro), var(--oro-oscuro));
    box-shadow: 0 14px 34px -14px rgba(201, 168, 99, .45);
    transition: transform .3s;
}
.equipo li:hover .foto { transform: scale(1.04); }
.foto-pendiente { padding: 0; border: 1px dashed var(--oro); box-shadow: none; background: radial-gradient(circle at 30% 25%, rgba(201, 168, 99, .14), transparent 70%); }
.foto-pendiente svg { width: 40px; height: 40px; fill: none; stroke: var(--oro); stroke-width: 1.4; stroke-linejoin: round; opacity: .75; }
.equipo h3 { font-size: 18px; font-weight: 400; }
.equipo p { margin: 4px 0 0; color: var(--gris-2); font-size: 13px; letter-spacing: .14em; text-transform: uppercase; }
@media (max-width: 860px) { .equipo { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 420px) { .equipo li { padding: 28px 12px; } .foto { width: 110px; height: 110px; } .equipo h3 { font-size: 16px; } }

/* Visitanos */
.visitanos { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 56px; align-items: stretch; }
.direccion { display: block; margin-bottom: 28px; }
.direccion b { display: block; font-size: 20px; font-weight: 400; color: var(--oro-claro); }
.direccion span { color: var(--gris); }
.direccion:hover b { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.horarios { width: 100%; border-collapse: collapse; margin-bottom: 28px; }
.horarios th, .horarios td { padding: 12px 0; border-bottom: 1px solid var(--linea-suave); font-weight: 400; }
.horarios th { text-align: left; color: var(--gris); }
.horarios td { text-align: right; }
.horarios .cerrado { color: var(--gris-2); }
.contacto { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; }
.contacto a {
    display: flex; flex-direction: column; padding: 14px 16px; border-radius: 14px; font-size: 14px;
    background: var(--panel); border: 1px solid var(--linea-suave); transition: border-color .2s; overflow-wrap: anywhere;
}
.contacto a:hover { border-color: var(--oro); }
.contacto span { color: var(--oro); font-size: 11px; letter-spacing: .18em; text-transform: uppercase; }
.mapa { min-height: 380px; border-radius: var(--radio); overflow: hidden; border: 1px solid var(--linea); }
.mapa iframe { width: 100%; height: 100%; min-height: 380px; border: 0; display: block; filter: invert(.92) hue-rotate(180deg) saturate(.35) brightness(.95) contrast(.9); }
@media (max-width: 860px) { .visitanos { grid-template-columns: minmax(0, 1fr); gap: 36px; } }
@media (max-width: 420px) { .contacto { grid-template-columns: minmax(0, 1fr); } }

/* Cierre y pie */
.cierre { position: relative; padding: 120px 0; text-align: center; overflow: hidden; }
.cierre::before {
    content: ""; position: absolute; left: 50%; top: 50%; width: 700px; height: 700px; transform: translate(-50%, -50%);
    background: radial-gradient(circle, rgba(201, 168, 99, .14), transparent 60%); pointer-events: none;
}
.cierre-in { position: relative; }
.cierre-icono { width: 64px; height: 64px; margin-bottom: 20px; fill: none; stroke: var(--oro); stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; }
.cierre .acciones { justify-content: center; }
.pie { padding: 36px 0 44px; border-top: 1px solid var(--linea-suave); }
.pie-in { display: flex; flex-wrap: wrap; gap: 12px 32px; align-items: center; justify-content: space-between; }
.pie p { margin: 0; color: var(--gris-2); font-size: 13px; }
.pie .marca-texto { font-size: 16px; }

.wa-flotante {
    position: fixed; right: 20px; bottom: 20px; z-index: 30;
    display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%;
    background: linear-gradient(135deg, var(--oro-claro), var(--oro-oscuro));
    box-shadow: 0 10px 30px -8px rgba(0, 0, 0, .6), 0 0 0 6px rgba(201, 168, 99, .12);
    transition: transform .2s;
}
.wa-flotante:hover { transform: scale(1.08); }
.wa-flotante svg { width: 28px; height: 28px; fill: #17140d; }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition: none !important; }
    html { scroll-behavior: auto; }
}

/* Panel de precios (/precios) */
.panel-in { max-width: 860px; padding-top: 48px; padding-bottom: 120px; }
.panel h1 { font-size: clamp(36px, 5vw, 52px); margin-bottom: 14px; }
.panel .lead b { color: var(--oro-claro); font-weight: 400; }
.panel-ok, .panel-error { margin: 24px 0 0; padding: 14px 18px; border-radius: 12px; font-size: 15px; }
.panel-ok { border: 1px solid rgba(111, 224, 160, .4); background: rgba(111, 224, 160, .08); color: #a9efc6; }
.panel-error { list-style: none; border: 1px solid rgba(240, 160, 122, .5); background: rgba(240, 160, 122, .08); color: #f5c0a6; }
.panel-bloque { margin-top: 36px; }
.panel-bloque h2 { font-size: 13px; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; color: var(--oro); margin-bottom: 12px; }
.panel-fila {
    display: flex; align-items: center; justify-content: space-between; gap: 20px;
    padding: 16px 18px; border: 1px solid var(--linea-suave); border-radius: 14px; background: var(--panel); margin-bottom: 8px;
}
.panel-fila > span:first-child { display: flex; flex-direction: column; min-width: 0; }
.panel-fila b { font-weight: 400; }
.panel-fila small { color: var(--gris-2); font-size: 13px; }
.panel-rango { display: flex; gap: 8px; flex: none; }
.panel-monto {
    display: flex; align-items: center; gap: 6px; height: 44px; padding: 0 12px; border-radius: 10px;
    border: 1px solid var(--linea-suave); background: rgba(0, 0, 0, .25); transition: border-color .2s;
}
.panel-monto:focus-within { border-color: var(--oro); }
.panel-monto i { font-style: normal; color: var(--gris-2); font-size: 13px; white-space: nowrap; }
.panel-monto input { width: 110px; border: 0; background: none; outline: none; text-align: right; font-variant-numeric: tabular-nums; }
.panel-monto input::placeholder { color: var(--gris-2); }
.panel-guardar {
    position: sticky; bottom: 0; margin-top: 28px; padding: 16px 0 20px; display: flex; justify-content: flex-end;
    background: linear-gradient(transparent, var(--fondo) 35%);
}
@media (max-width: 640px) {
    .panel-fila { flex-direction: column; align-items: stretch; gap: 12px; }
    .panel-rango { flex-direction: column; }
    .panel-monto input { flex: 1; width: auto; }
    .panel-guardar .btn { flex: 1; }
}
