/* Estilo editorial de lujo: mucho aire, mayúsculas espaciadas, hero a pantalla completa, tarjetas altas por categoría. */
h1, h2, h3 { font-family: 'Tenor Sans', 'Cormorant Garamond', Georgia, serif; font-weight: 400; letter-spacing: .04em; }
h1 { text-transform: uppercase; letter-spacing: .12em; }
h2 { text-transform: uppercase; letter-spacing: .14em; font-size: clamp(1.5rem, 3vw, 2.1rem); }
.titulo-centro { text-align: center; margin-bottom: 48px; }
.titulo-centro .eyebrow { margin-bottom: 14px; }
.linea { width: 48px; height: 1px; background: var(--bronce); margin: 18px auto 0; }

/* Header: menu a la izquierda, logo al centro, cuenta + reservar a la derecha */
.site-header { background: var(--crema); }
.site-header .container { display: grid; grid-template-columns: 1fr auto 1fr; min-height: 76px; }
.site-header .logo { display: block; height: 76px; overflow: hidden; }
.site-header .logo img { height: 110px; width: auto; margin-top: -16px; }
.site-header .nav-izq, .site-header .nav-der { display: flex; gap: 26px; align-items: center; }
.site-header .nav-der { justify-content: flex-end; }
.site-header .nav a { font-size: .72rem; letter-spacing: .22em; }
.site-header .nav a.btn { color: var(--noche-2); padding: 10px 22px; }
.solo-movil { display: none; }
@media (max-width: 800px) {
    .site-header .container { grid-template-columns: auto 1fr auto; }
    .site-header .logo { justify-self: center; }
    .site-header .nav-der { justify-self: end; }
    .solo-movil { display: inline; }
    .no-movil { display: none; }
    .site-header .nav-izq { display: none; position: absolute; top: 76px; left: 0; right: 0; flex-direction: column; background: var(--crema); padding: 20px 16px; border-bottom: 1px solid var(--crema-2); align-items: flex-start; }
    .site-header .nav-izq.abierto { display: flex; }
}

/* Hero */
.hero-full { min-height: min(calc(100vh - 76px), 720px); display: grid; place-items: center; text-align: center; padding: 80px 0; }
.hero-full .container { position: relative; z-index: 1; }
.hero-full h1 { font-size: clamp(2rem, 5.5vw, 4.4rem); margin-bottom: 22px; }
.hero-full p { margin: 0 auto 38px; }
.hero-full::before, .hero-full::after { content: ''; position: absolute; border: 1px solid rgba(217,180,138,.35); border-radius: 50%; pointer-events: none; top: 50%; transform: translateY(-50%); aspect-ratio: 1; }
.hero-full::before { width: min(78vw, 760px); right: -12%; }
.hero-full::after { width: min(62vw, 600px); right: -4%; border-color: rgba(217,180,138,.18); }
.btn-linea { background: transparent; border: 1px solid var(--bronce-claro); color: var(--crema); }
.btn-linea:hover { background: var(--bronce-claro); color: var(--noche-2); box-shadow: none; }
.btn { font-weight: 500; }

/* Franja de confianza */
.franja { border-bottom: 1px solid var(--crema-2); padding: 30px 0; }
.franja .container { display: flex; flex-wrap: wrap; justify-content: space-around; gap: 18px 40px; }
.franja span { font-size: .72rem; letter-spacing: .25em; text-transform: uppercase; color: var(--bronce-oscuro); }

/* Tarjetas altas por categoria */
.cat-cards { display: grid; gap: 24px; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.cat-card { position: relative; min-height: 440px; padding: 34px; display: flex; flex-direction: column; justify-content: flex-end; text-decoration: none; color: var(--crema); overflow: hidden; isolation: isolate; }
.cat-card:nth-child(3n+1) { background: linear-gradient(160deg, #7a5233, #2b1d16); }
.cat-card:nth-child(3n+2) { background: linear-gradient(160deg, #a8774f, #5a3b25); }
.cat-card:nth-child(3n) { background: linear-gradient(160deg, #3a2a20, #1f1612); }
.cat-card img { position: absolute; top: 44px; left: 50%; width: 140px; height: 140px; transform: translateX(-50%); object-fit: contain; z-index: -1; }
.cat-card .inicial { position: absolute; top: 34px; left: 50%; transform: translateX(-50%); font-family: 'Pinyon Script', cursive; font-size: 7rem; color: rgba(245,238,228,.75); z-index: -1; line-height: 1.2; }
.cat-card h3 { color: var(--crema); text-transform: uppercase; letter-spacing: .2em; font-size: 1.2rem; margin-bottom: 8px; }
.cat-card p { margin: 0 0 16px; font-size: .88rem; color: var(--bronce-claro); }
.cat-card .explorar { font-size: .7rem; letter-spacing: .25em; text-transform: uppercase; border-bottom: 1px solid var(--bronce-claro); align-self: flex-start; padding-bottom: 3px; }
.cat-card:hover { filter: brightness(1.1); }

/* Carta de servicios */
.menu-cat { margin-top: 72px; scroll-margin-top: 90px; }
.menu-cat h3 { text-transform: uppercase; letter-spacing: .22em; font-size: 1.1rem; text-align: center; margin-bottom: 26px; }
.menu-fila { display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 8px 28px; padding: 20px 0; border-bottom: 1px solid var(--crema-2); max-width: 860px; margin: 0 auto; }
.menu-fila h4 { margin: 0; font-family: 'Tenor Sans', serif; font-weight: 400; font-size: 1.1rem; letter-spacing: .06em; }
.menu-fila p { margin: 4px 0 0; color: var(--suave); font-size: .86rem; }
.menu-fila .precio { font-size: 1.05rem; color: var(--bronce-oscuro); white-space: nowrap; text-align: right; }
.menu-fila .precio small { display: block; color: var(--suave); font-size: .72rem; letter-spacing: .1em; }
@media (max-width: 600px) { .menu-fila { grid-template-columns: 1fr auto; } .menu-fila .btn { grid-column: 1 / -1; justify-self: start; } }

/* Productos */
.fondo-2 { background: var(--crema-2); }
.prod-grid { display: grid; gap: 24px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.prod { text-align: center; }
.prod .marco { aspect-ratio: 4/5; background: linear-gradient(160deg, var(--crema), #d9c3a5); display: grid; place-items: center; margin-bottom: 16px; font-family: 'Pinyon Script', cursive; font-size: 5rem; color: var(--bronce); }
.prod h4 { font-family: 'Tenor Sans', serif; font-weight: 400; letter-spacing: .08em; margin: 0 0 4px; }
.prod .p { color: var(--bronce-oscuro); }

/* Visitanos */
.visita { background: var(--noche-2); color: var(--crema); }
.visita h2 { color: var(--crema); }
.visita .cols { display: grid; gap: 40px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); text-align: center; }
.visita h5 { margin: 0 0 14px; font-size: .72rem; letter-spacing: .28em; text-transform: uppercase; color: var(--bronce-claro); font-weight: 500; }
.visita p { margin: 4px 0; font-size: .92rem; }
.visita a { color: var(--crema); }

.site-footer { padding: 28px 0; font-size: .75rem; letter-spacing: .12em; }
.site-footer img { display: none; }
@media (max-width: 800px) {
    .site-header .logo img { height: 84px; margin-top: -12px; }
    .site-header .nav a.btn { padding: 9px 16px; letter-spacing: .15em; }
}
@media (max-width: 800px) {
    .site-header .nav.nav-der { display: flex; position: static; flex-direction: row; padding: 0; background: none; border: 0; }
}
