/* Alquería Patach: shared details for the existing visual identity. */
:root { --page-header-space: 164px; --reading-color: #4d453e; }
@supports (overflow: clip) { html, body { overflow-x: clip; } }
.hero-subtitle-container, .hero-actions { opacity: 1; animation: none; }
.hero-actions .btn-modern { opacity: 1; }
.hero-pause {
    position: absolute; left: max(24px, calc((100vw - 1240px) / 2)); bottom: 30px;
    z-index: 4; color: #fff; background: rgba(0,0,0,.22); border: 1px solid rgba(255,255,255,.55);
    padding: 10px 15px; min-height: 44px; font: 400 .8rem 'Montserrat', sans-serif;
}
.hero-pause:focus-visible, .menu-jumps a:focus-visible, .alerg-toggle:focus-visible,
.directions-link:focus-visible, .reserva-email-address:focus-visible,
.cookie-choice:focus-visible { outline: 2px solid var(--primary-color); outline-offset: 4px; }
.hero-pause:focus-visible { outline-color: #fff; }
.scroll-indicator { text-decoration: none; color: #fff; }
.gallery-main, .gallery-item { overflow: visible; aspect-ratio: auto; height: auto; }
.history-gallery .gallery-main img { display: block; aspect-ratio: 1.68; object-fit: cover; }
.history-gallery .gallery-item img { display: block; aspect-ratio: 1.45; object-fit: cover; }
.photo-caption { margin: 8px 0 0; font-size: .78rem; line-height: 1.5; color: var(--reading-color); }
#reservas .reserva-email-channel { display: flex; flex-direction: column; align-items: center; min-width: 0; }
#reservas .reserva-email-channel > .reserva-channel { min-height: 0; width: 100%; padding-bottom: 0; }
.reserva-email-address {
    display: inline-flex; align-items: flex-start; justify-content: center; margin-top: 6px;
    min-height: 44px; color: var(--primary-color); text-decoration: none; text-underline-offset: 4px;
}
.reserva-email-address:hover { text-decoration: underline; }
.reserva-channel-details small { display: flex; flex-direction: column; gap: 2px; white-space: normal; max-width: 216px; }
.arrival-note { display: block; margin-top: 6px; color: var(--reading-color); font-size: .78rem; }
#contacto a { color: var(--primary-color); text-underline-offset: 4px; }
.huerta-note { border-left: 2px solid var(--primary-color); padding: 4px 0 4px 18px; margin: 24px 0; color: var(--reading-color); font-size: .9rem; line-height: 1.65; }
.arrival-parking { color: var(--reading-color); font-size: .9rem; }
.directions-link { display: inline-flex; align-items: center; min-height: 44px; font-weight: 500; margin-bottom: 14px; }
.map-container { min-height: 0; }
.page-inner .navbar { background: rgba(255,255,255,.98) !important; border-bottom: 1px solid rgba(22,92,125,.12) !important; }
.page-inner .navbar .nav-link, .page-inner .navbar .text-primary { color: var(--primary-color) !important; text-shadow: none !important; }
.page-inner .navbar .logo-main { content: url('../media/logos/Color/APatach_Marca_V01_Color_VAL@4x.png') !important; }
.page-inner .navbar-toggler-icon { filter: brightness(.25); }
.page-inner .navbar .language-toggle .btn { color: var(--primary-color) !important; border-color: rgba(22,92,125,.25) !important; background: transparent !important; }
.carta-main { padding-top: calc(var(--page-header-space) + 40px); }
.carta-heading { text-align: center; padding: 0 20px 26px; }
.carta-heading h1 { color: var(--text-dark); font-size: clamp(2.3rem,5vw,3rem); font-weight: 400; margin: 10px 0 0; }
.menu-jumps { position: sticky; top: var(--page-header-space); z-index: 90; display: flex; gap: 23px; overflow-x: auto; background: rgba(255,255,255,.98); border-block: 1px solid rgba(22,92,125,.17); padding: 6px 0; scrollbar-width: thin; }
.menu-jumps a { display: inline-flex; align-items: center; flex-shrink: 0; min-height: 44px; font-size: .8rem; color: var(--primary-color); text-decoration: none; text-underline-offset: 5px; }
.menu-jumps a:hover { text-decoration: underline; }
.menu-sec, #menu-bebidas { scroll-margin-top: calc(var(--page-header-space) + 80px); }
.menu-sec-title { color: var(--text-dark); }
.menu-sec-title::after, .cat-sep::before, .cat-sep::after { background: rgba(22,92,125,.35); }
.menu-sec-nota, .plato-desc, .carta-footer-note, .alerg-box { font-size: 14px; color: var(--reading-color); line-height: 1.55; }
.plato-precio, .cat-sep span, .alerg-chevron { color: var(--primary-color); }
.wine-prices { display: flex; flex-direction: column; gap: 4px; text-align: right; font-size: .8rem; }
.preorder-note { max-width: 480px; margin: 14px auto 20px; text-align: center; font-size: 14px; line-height: 1.6; color: var(--reading-color); }
.carta-reservation { margin: 38px 0; padding-block: 15px; border-block: 1px solid rgba(22,92,125,.18); text-align: center; }
.carta-reservation a { display: inline-flex; align-items: center; min-height: 44px; color: var(--primary-color); text-underline-offset: 5px; font-size: .9rem; }
.allergen-heading { margin: 0; }
.alerg-toggle { width: 100%; min-height: 52px; border: 0; background: transparent; color: var(--primary-color); padding: 12px 0; font: 500 1.55rem 'Cormorant Garamond',serif; }
.alerg-toggle span[aria-hidden] { font: 400 1.2rem 'Montserrat',sans-serif; margin-left: 10px; }
.alerg-body { max-height: none; opacity: 1; overflow: visible; transition: none; }
.alerg-body[hidden] { display: none; }
.alerg-box { border: 0; border-left: 2px solid var(--primary-color); border-radius: 0; background: var(--bg-light); text-align: left; padding: 15px 18px; }
.page-legal { background: #fff; color: var(--text-dark); padding-top: 0; }
.legal-main { padding: calc(var(--page-header-space) + 38px) 20px 70px; }
.legal-page { max-width: 760px; margin: 0 auto; }
.legal-page h1 { font-size: clamp(2.3rem,5vw,3rem); font-weight: 400; }
.legal-page h2 { font-size: 1.6rem; color: var(--primary-color); font-weight: 500; margin: 32px 0 14px; }
.legal-page p, .legal-page li { font-size: .92rem; color: var(--reading-color); line-height: 1.8; }
.legal-page .updated { font-size: .75rem; margin: 8px 0 30px; }
.legal-page a { color: var(--primary-color); text-underline-offset: 4px; }
.info-block { border-block: 1px solid rgba(22,92,125,.18); padding: 16px 0; }
.row-item { display: grid; grid-template-columns: 110px 1fr; gap: 12px; padding: 7px 0; font-size: .9rem; }
.row-item .lbl { color: var(--primary-color); }
.cookie-table { width: 100%; margin-block: 20px; border-collapse: collapse; font-size: .85rem; }
.cookie-table td, .cookie-table th { padding: 12px; border-bottom: 1px solid rgba(22,92,125,.17); text-align: left; vertical-align: top; }
.cookie-table-wrap { overflow-x: auto; }
.manage-btn { min-height: 44px; padding: 10px 16px; border: 1px solid var(--primary-color); background: transparent; color: var(--primary-color); font: .85rem 'Montserrat',sans-serif; }
.cookie-banner { background: #fff; color: var(--text-dark); border-top: 1px solid rgba(22,92,125,.2); box-shadow: 0 -3px 16px rgba(22,92,125,.08); }
.cookie-banner[hidden] { display: none !important; }
.cookie-banner p, .cookie-banner .cookie-link { color: var(--reading-color); }
.cookie-choice { min-height: 44px; padding: 9px 16px; border: 1px solid var(--primary-color); background: transparent; color: var(--primary-color); font: .8rem 'Montserrat',sans-serif; }
.cookie-choice:hover { background: var(--bg-light); }
.footer-legal button { min-height: 44px; background: transparent; border: 0; color: rgba(255,255,255,.8); font: .8rem 'Montserrat',sans-serif; padding: 0 12px; }
.footer-legal a { color: rgba(255,255,255,.8) !important; }
@media (max-width: 991px) {
    :root { --page-header-space: 68px; }
}
@media (max-width: 767px) {
    #reservas .reserva-email-channel { align-items: stretch; }
    #reservas .reserva-email-channel > .reserva-channel { padding: 12px 8px 0; min-height: 60px; }
    .reserva-email-address { justify-content: flex-start; padding: 0 8px 10px 74px; margin-top: 6px; overflow-wrap: anywhere; }
    #email-reservas-text { white-space: normal; }
    .hero-pause { left: 18px; bottom: 27px; padding: 8px 10px; font-size: .7rem; }
    .photo-caption { font-size: .75rem; }
    .carta-main { padding-top: 100px; }
    .carta-heading { padding-bottom: 20px; }
    .menu-jumps { gap: 20px; }
    .legal-main { padding-inline: 18px; }
    .cookie-banner-content { gap: 14px; }
    .cookie-actions { display: flex; justify-content: center; gap: 10px; flex-wrap: wrap; }
    .row-item { grid-template-columns: 85px 1fr; }
}
@media (max-width: 560px) {
    .cookie-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
    .cookie-table tr { display: block; padding: 12px 0; border-bottom: 1px solid rgba(22,92,125,.18); }
    .cookie-table td { display: grid; grid-template-columns: 92px minmax(0,1fr); gap: 12px; border: 0; padding: 7px 0; overflow-wrap: anywhere; }
    .cookie-table td::before { content: attr(data-label); color: var(--primary-color); font-weight: 500; }
}
