/* Cordelia 1.6.0 · una carta pensada para mirar, elegir y disfrutar.
   Capas: base, navegación, inicio, carta, producto, visita y movimiento. */
:root {
  --canvas:#f7f3eb; --surface:#fffcf6; --surface-raised:#fffdf9;
  --ink:#292c25; --ink-soft:#55584e; --muted:#65695e; --line:#deded2;
  --forest-900:#243f32; --forest-950:#1b3026; --terracotta:#a34e35;
  --content-max:1280px; --header-h:68px;
}
body {background:var(--canvas);}
button,.primary-button,.secondary-button,.tertiary-button,.nav-button,.text-button,.chip {font-weight:650;}
.eyebrow,.home-dayline {font-weight:650;letter-spacing:.12em;font-size:.65rem;}
h1,h2,h3 {text-wrap:balance;}
p {text-wrap:pretty;}
.page {max-width:var(--content-max);}
.screen {padding-bottom:24px;}
.section {margin-top:48px;}
.section-head {gap:16px;margin-bottom:20px;}
.section-head h2 {font-size:clamp(1.7rem,3.2vw,2.65rem);line-height:1.12;}
.text-button {display:inline-flex;align-items:center;gap:8px;white-space:nowrap;font-size:.85rem;}
.text-button .ui-icon {width:17px;height:17px;}
.primary-button,.secondary-button {min-height:48px;box-shadow:none;}
.primary-button {background:var(--forest-900);border-color:var(--forest-900);}
button:focus-visible,a:focus-visible,summary:focus-visible {outline:3px solid #a34e35;outline-offset:4px;}
/* Una navegación estable en todas las pantallas. */
body:not([data-current-route=product]) .site-header {
  display:block!important;position:sticky;top:0;opacity:1;transform:none;pointer-events:auto;
  background:rgba(247,243,235,.96);box-shadow:none;border-bottom:1px solid var(--line);
}
body.has-banner:not([data-current-route=product]) .site-header {top:40px;}
.site-header .header-inner {min-height:68px;padding-top:8px;padding-bottom:8px;}
.brand-mark {width:40px;height:40px;font-size:25px;box-shadow:none;}
.brand-copy {display:block;}
.brand-copy small {font-weight:600;font-size:.59rem;letter-spacing:.14em;}
.brand-copy strong {font-size:1rem;}
.desktop-nav {display:flex;gap:10px;}
.nav-button {font-size:.84rem;min-height:44px;}
.nav-button--favorites .nav-button__label {display:inline;}
.top-nav-indicator {display:none;}
.nav-button[aria-current=page] {background:#e5eadf;}
body:not([data-current-route=product]) .page {padding-top:28px;}
.home-inline-nav,.home-brand-avatar {display:none!important;}
/* La fotografía inicia la conversación. El texto nunca tapa el platillo. */
.home-welcome {align-items:center;gap:12px;}
.home-dayline {display:none;}
.home-welcome h1 {font-size:clamp(1.7rem,3.4vw,2.6rem);line-height:1.15;margin:0;letter-spacing:-.025em;}
.home-welcome-subtitle {font-size:.9rem;margin:6px 0 0;color:var(--muted);}
.home-welcome-chip {margin-top:9px;padding:0;border:0;background:none;box-shadow:none;font-size:.7rem;}
.home-discovery {margin-top:22px;}
.menu-search-form {min-height:54px;border:1px solid var(--line);border-radius:16px;background:var(--surface-raised);box-shadow:none;padding:6px 7px 6px 15px;}
.menu-search-form input {font-size:1rem;min-width:0;height:38px;line-height:normal;align-self:center;}
.menu-search-filter {width:42px;height:42px;border-radius:12px;background:var(--forest-900);box-shadow:none;}
.home-category-tabs {gap:23px;margin-top:10px;margin-bottom:0;padding-bottom:0;}
.home-category-tabs button {font-size:.85rem;font-weight:600;min-height:48px;padding-top:10px;padding-bottom:10px;}
.home-category-tabs button[aria-pressed=true] {font-weight:750;}
.home-recommendation {margin-top:25px;}
.home-feature-head {margin-bottom:16px;}
.home-feature-head .eyebrow {display:none;}
.home-feature-head h2 {font-size:1.65rem;}
.home-feature-card {border-radius:24px;border:1px solid var(--line);box-shadow:none;overflow:hidden;background:var(--surface);color:var(--ink);}
.home-feature-main {min-height:0;display:grid;grid-template-columns:1fr 1.15fr;color:var(--ink);}
.home-feature-media {position:relative;inset:auto;grid-column:2;grid-row:1;min-height:380px;aspect-ratio:1.2;}
.home-feature-media img {width:100%;height:100%;object-fit:cover;filter:none;}
.home-feature-copy {position:static;grid-column:1;grid-row:1;padding:40px;max-width:none;display:flex;flex-direction:column;justify-content:center;align-items:start;}
.home-feature-copy .feature-kicker {background:none;color:var(--terracotta);padding:0;border:0;font-size:.65rem;font-weight:650;letter-spacing:.12em;}
.home-feature-copy h3 {font-size:clamp(2rem,3.6vw,3.3rem);line-height:1.04;margin:14px 0 16px;letter-spacing:-.025em;}
.home-feature-copy p {color:var(--ink-soft);font-size:.95rem;line-height:1.6;display:block;overflow:visible;}
.home-feature-meta {width:100%;margin-top:24px;color:var(--forest-900);align-items:center;gap:12px;}
.home-feature-meta strong {color:var(--forest-900);font-size:1.15rem;font-weight:700;}
.home-feature-meta>span {display:inline-flex;align-items:center;gap:8px;font-size:.78rem;font-weight:650;}
.home-feature-meta .ui-icon {width:17px;height:17px;}
.home-feature-favorite {width:44px;height:44px;right:14px;top:14px;background:#fffdf9;box-shadow:0 2px 10px #0000000d;}
.taste-invitation {padding:24px;border:1px solid #d4ddcf;border-radius:20px;background:#edf0e6;display:flex;align-items:center;gap:20px;}
.taste-invitation__icon {color:var(--forest-900);}
.taste-invitation>div {flex:1;}
.taste-invitation h2 {font:500 1.55rem var(--display);margin:0 0 6px;}
.taste-invitation p {font-size:.88rem;color:var(--muted);margin:0;}
.service-grid {grid-template-columns:repeat(auto-fit,minmax(190px,1fr));}
.service-card {min-height:190px;padding:22px;border-radius:18px;gap:13px;box-shadow:none;}
.service-card strong {font-size:1.5rem;}
.service-card .service-hours {font-size:.7rem;display:flex;align-items:center;gap:10px;line-height:1.45;margin-top:auto;}
.service-hours .ui-icon {flex:0 0 17px;}
.home-visit {padding:48px;border-top:1px solid var(--line);text-align:center;}
.home-visit h2 {font:500 clamp(2rem,4vw,3.5rem)/1.08 var(--display);margin:14px 0;}
.home-visit>p:not(.eyebrow) {color:var(--muted);}
.home-visit .button-row {justify-content:center;margin-top:24px;}
/* Carta: nombre, descripción y precio; los productos sin foto tienen diseño propio. */
.discover-heading {margin:0 0 22px;}
.discover-heading h1 {font:500 clamp(2rem,4vw,3.2rem)/1.1 var(--display);margin:9px 0;letter-spacing:-.03em;}
.discover-heading>.muted {font-size:.95rem;margin:0;max-width:44ch;}
.discover-toolbar {position:static;padding:0;margin:0 0 12px;background:none;box-shadow:none;}
.discover-services {margin:0;gap:8px;}
.discover-categories {margin:14px 0 24px;padding-bottom:12px;border-bottom:1px solid var(--line);gap:8px;}
.discover-categories .chip {border:0;background:transparent;border-radius:8px;min-height:44px;font-size:.79rem;}
.discover-categories .chip[aria-pressed=true] {background:#e5eadf;color:var(--forest-900);}
.discover-services .chip {min-height:44px;box-shadow:none;font-size:.82rem;font-weight:650;}
.menu-layout {grid-template-columns:minmax(0,1fr);}
.desktop-filters {display:none;}
.result-head {align-items:center;margin:0 0 12px;}
.result-head h2 {font:500 1.8rem/1.15 var(--display);margin:7px 0 0;}
.menu-dietary-note {color:var(--muted);font-size:.78rem;line-height:1.5;margin-bottom:22px;}
.menu-dietary-note summary {min-height:44px;display:flex;align-items:center;gap:8px;cursor:pointer;text-decoration:underline;text-underline-offset:3px;}
.menu-dietary-note summary .ui-icon {width:17px;height:17px;}
.menu-dietary-note>p {padding:14px 16px;background:#eeeede;border-radius:12px;margin:0;max-width:70ch;}
.product-grid {grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;align-items:stretch;}
.product-card {border:1px solid #dfdfd5;border-radius:18px;background:var(--surface-raised);box-shadow:none;min-width:0;}
.product-card .product-card__main {display:flex;flex-direction:column;height:100%;width:100%;}
.product-card .product-media {width:100%;aspect-ratio:1/1;flex:none;}
.product-card .product-media img {filter:none;transform:none;}
.product-card .product-body {padding:17px;display:flex;flex:1;flex-direction:column;width:100%;}
.product-card .product-body .product-category {font-size:.64rem;color:var(--terracotta);text-transform:uppercase;letter-spacing:.08em;margin:0 0 8px;line-height:1.4;}
.product-card .product-body h3 {font-family:var(--display);font-size:1.45rem;line-height:1.12;font-weight:500;margin:0 0 9px;overflow:visible;display:block;}
.product-card .product-body .product-description {font-size:.83rem;line-height:1.55;color:var(--ink-soft);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin:0 0 18px;}
.product-card .product-meta {margin-top:auto;padding-top:4px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:7px;}
.product-card .price {font-size:.98rem;font-weight:700;}
.product-card .spice-badge {font-size:.64rem;padding:0;background:none;gap:4px;}
.product-card .spice-badge img {width:20px;height:20px;}
.product-card .favorite-card {width:40px;height:40px;right:9px;top:9px;box-shadow:none;background:var(--surface-raised);border-color:#ffffffa6;}
.product-card .favorite-card[aria-pressed=true] {background:var(--terracotta);color:white;}
.product-card .profile-note {margin-top:12px;font-size:.75rem;}
.text-menu-heading {margin:36px 0 16px;}
.text-menu-heading h3 {font:500 1.8rem var(--display);margin:0 0 6px;}
.text-menu-heading p {font-size:.86rem;color:var(--muted);margin:0;}
.text-menu-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 24px;}
.text-menu-grid .product-card.without-photo {border:0;border-bottom:1px solid var(--line);border-radius:0;background:none;}
.product-card.without-photo .product-body {padding:20px 52px 20px 0;}
.product-card.without-photo .favorite-card {top:17px;right:0;border:1px solid var(--line);background:transparent;}
.product-card.without-photo .product-category {display:none;}
.product-card.without-photo .product-description {-webkit-line-clamp:2;}
.product-card.is-profile-low {opacity:1;filter:none;}
.product-card.is-profile-low .product-media {filter:none;}
.product-card.is-search-result .product-card__main {display:grid;grid-template-columns:92px minmax(0,1fr);align-items:start;}
.product-card.is-search-result .product-media {aspect-ratio:1;}
.product-card.is-search-result .product-body {padding:12px;}
.product-card.is-search-result .product-body h3 {font-size:1.15rem;}
.product-card.is-search-result .product-body .product-description {display:-webkit-box!important;font-size:.78rem!important;-webkit-line-clamp:2!important;margin-bottom:10px!important;}
.product-card.is-search-result .product-category {display:none;}
.product-card.is-search-result.without-photo .product-card__main {display:block;}
.product-card.is-search-result .favorite-card {width:34px;height:34px;top:4px;left:4px;right:auto;}
.product-card.is-search-result.without-photo .favorite-card {left:auto;right:5px;}
.search-results-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
/* La ficha destaca la fotografía y acerca las opciones y acciones. */
.detail-page {padding-top:28px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:36px;align-items:start;}
.detail-immersive {position:sticky;top:24px;grid-column:1;}
.detail-immersive .detail-media {aspect-ratio:3/4;margin:0;width:100%;border-radius:24px;box-shadow:none;max-height:760px;}
.detail-media img {object-fit:contain;background:#e9e3d8;}
.detail-layout--editorial {grid-column:2;display:block;margin:0;}
.detail-copy {padding:12px 0 0;}
.detail-copy>.tag-row:empty {display:none;}
.detail-copy h1 {font-size:clamp(2.2rem,4vw,3.8rem);line-height:1.04;margin:12px 0;}
.detail-price {font-size:1.4rem;font-weight:700;margin:0 0 18px;}
.detail-description {font-size:1rem;line-height:1.7;color:var(--ink-soft);}
.detail-section {padding-top:22px;margin-top:22px;border-top:1px solid var(--line);}
.detail-section h2 {font:500 1.35rem var(--display);margin:0 0 14px;}
.detail-actions {position:static;display:flex;flex-wrap:wrap;gap:10px;padding:8px 0 0;margin:22px 0;box-shadow:none;border:0;background:none;}
.detail-actions button {flex:1;min-width:145px;}
.detail-disclosure summary {font:500 1.35rem var(--display);cursor:pointer;padding:0 30px 10px 0;min-height:44px;}
.detail-disclosure[open] summary {margin-bottom:10px;}
.detail-related {grid-column:1/-1;}
.detail-copy .notice {background:#eff0e7;border:0;border-radius:14px;font-size:.81rem;padding:14px;line-height:1.5;}
.detail-copy .micro {font-size:.76rem;line-height:1.5;}
.spice-scale {gap:4px;}
.spice-step span {font-size:.65rem;}
.media-placeholder:after {content:none!important;}
/* Una visita fácil de preparar; las preferencias esperan a quien las necesita. */
.visit-intro {max-width:760px;}
.visit-intro h1 {font:500 clamp(2.7rem,5vw,4.6rem)/1.05 var(--display);margin:16px 0;letter-spacing:-.03em;}
.visit-intro>p:not(.eyebrow) {font-size:1rem;line-height:1.65;color:var(--muted);max-width:55ch;}
.visit-intro .button-row {margin-top:24px;}
.visit-facts {display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:36px;}
.visit-fact {background:var(--surface-raised);border:1px solid var(--line);border-radius:20px;padding:26px;}
.visit-fact h2 {font:500 1.8rem var(--display);margin:0 0 12px;}
.visit-fact p {font-size:.91rem;line-height:1.7;color:var(--muted);}
.visit-fact strong {font-weight:650;color:var(--ink);}
.visit-settings {max-width:820px;}
.visit-settings details {border-top:1px solid var(--line);padding:18px 0;}
.visit-settings summary {font:500 1.5rem var(--display);min-height:44px;cursor:pointer;}
.visit-settings details p {font-size:.9rem;line-height:1.65;color:var(--muted);}
.visit-settings .profile-summary {margin:12px 0;}
.visit-footer {display:flex;flex-wrap:wrap;gap:22px;margin-top:35px;font-size:.8rem;}
.visit-footer a {color:var(--forest-900);text-underline-offset:4px;min-height:44px;display:inline-flex;align-items:center;}
.saved-heading h1 {font-size:clamp(2.3rem,4vw,3.7rem);}
.saved-heading>.muted {max-width:50ch;font-size:.94rem;line-height:1.6;}
.saved-empty {min-height:310px;background:var(--surface);border:1px solid var(--line);border-radius:24px;}
.sheet {border-radius:24px;}
.sheet h2 {font-weight:500;}
.sheet .field label,.sheet .field-label {font-weight:650;}
.sheet input,.sheet select,.sheet textarea {font-size:16px;}
.sheet .sheet-actions {gap:10px;}
/* Movimiento corto, sin ocultar la información principal. */
.home-welcome__copy,.home-discovery,.home-brand-avatar {animation:none;}
.scroll-reveal-pending {translate:0 8px;}
@media(hover:hover) and (pointer:fine) {
  .product-card:hover {transform:translateY(-3px);box-shadow:0 10px 24px #233f320b;}
  .product-card.without-photo:hover {transform:none;box-shadow:none;background:#f0eee5;}
  .home-feature-main:hover .home-feature-media img {transform:scale(1.015);}
  .primary-button:hover {background:#315540;}
}
@media(max-width:1100px) and (min-width:760px) {.product-grid{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media(max-width:899px) {
  body:not([data-current-route=product]) .page {padding-top:22px;}
  .site-header .header-inner {min-height:62px;gap:10px;padding-left:16px;padding-right:16px;}
  .brand-copy {display:none;}
  .nav-button {padding:8px 11px;font-size:.78rem;}
  .desktop-nav {gap:0;}
  .nav-button--favorites .nav-button__label {display:inline;}
  .home-welcome h1 {font-size:1.8rem;}
  .home-welcome-chip {display:none;}
  .home-discovery {margin-top:18px;}
  .home-feature-main {grid-template-columns:1fr;}
  .home-feature-media {grid-column:1;grid-row:1;min-height:0;aspect-ratio:4/3;}
  .home-feature-copy {grid-column:1;grid-row:2;padding:22px;}
  .home-feature-copy h3 {font-size:2rem;margin:10px 0;line-height:1.08;}
  .home-feature-copy p {font-size:.88rem;line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
  .home-feature-meta {margin-top:16px;}
  .home-recommendation {margin-top:20px;}
  .home-feature-head h2 {font-size:1.5rem;}
  .section {margin-top:36px;}
  .home-recommendation.section {margin-top:20px;}
  .taste-invitation {flex-wrap:wrap;gap:14px;padding:20px;}
  .taste-invitation .secondary-button {width:100%;}
  .home-visit {padding:34px 0;}
  .detail-page {display:block;padding-top:0;}
  .detail-immersive {position:relative;top:auto;}
  body[data-current-route=product] .detail-immersive .detail-media {width:calc(100% + 32px);margin-left:-16px;margin-right:-16px;aspect-ratio:1/1;max-height:52svh;border-radius:0 0 22px 22px;}
  .detail-layout--editorial {margin-top:24px;}
  .detail-copy {padding-top:0;}
  .detail-copy h1 {font-size:2.4rem;}
  .detail-description {font-size:.95rem;line-height:1.6;}
  .detail-price {font-size:1.25rem;margin-bottom:14px;}
  .detail-floating-controls {top:14px;left:0;right:0;}
  .detail-immersive.is-placeholder .detail-media {max-height:230px;}
}
@media(max-width:759px) {
  .product-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
  .product-card {border-radius:15px;}
  .product-card .product-body {padding:12px;}
  .product-card .product-body h3 {font-size:1.18rem;line-height:1.14;}
  .product-card .product-body .product-description {font-size:.76rem;line-height:1.45;-webkit-line-clamp:2;margin-bottom:14px;}
  .product-card .product-body .product-category {font-size:.55rem;margin-bottom:6px;}
  .product-card .price {font-size:.9rem;}
  .product-card .favorite-card {width:36px;height:36px;right:7px;top:7px;}
  .product-card .spice-badge {font-size:.6rem;}
  .product-card .spice-badge img {width:18px;height:18px;}
  .text-menu-grid,.search-results-grid {grid-template-columns:1fr;}
  .text-menu-grid .product-card .product-body h3 {font-size:1.4rem;}
  .text-menu-grid .product-card .product-body .product-description {font-size:.87rem;}
  .product-card.without-photo .product-body {padding:19px 50px 19px 0;}
  .service-grid {grid-template-columns:1fr;gap:10px;}
  .service-card {min-height:0;display:grid;grid-template-columns:1fr auto;padding:20px;gap:9px;}
  .service-card strong,.service-card>span {grid-column:1/-1;}
  .service-card .service-hours {justify-content:space-between;}
  .visit-facts {grid-template-columns:1fr;gap:14px;}
  .visit-fact {padding:22px;}
  .visit-intro h1 {font-size:2.8rem;}
  .discover-heading h1 {font-size:2.3rem;}
  .discover-heading .eyebrow {font-size:.58rem;}
  .discover-heading>.muted {font-size:.86rem;}
  .discover-categories {margin-bottom:18px;}
  .result-head h2 {font-size:1.5rem;}
  .sheet {border-radius:24px 24px 0 0;}
  .sheet-actions>.primary-button {font-size:.87rem;}
}
@media(max-width:360px) {
  .nav-button {padding:7px 8px;font-size:.74rem;}
  .product-card .product-body {padding:10px;}
  .product-card .product-body h3 {font-size:1.1rem;}
  .home-feature-copy {padding:18px;}
}
@media(prefers-reduced-motion:reduce) {
  .scroll-reveal-pending {opacity:1!important;translate:none!important;}
  *,*::before,*::after {animation:none!important;transition:none!important;scroll-behavior:auto!important;}
  ::view-transition-old(root),::view-transition-new(root) {animation:none!important;}
}
/* Ajustes tras revisar las pantallas a 390 px. */
body:not([data-current-route=home]):not([data-current-route=product]) #appMain {padding-top:0;}
.discover-heading {padding-top:0;}
.home-feature-copy p,.product-card .product-description,.product-card .product-category,.service-card>span {font-weight:400;}
.home-feature-card {animation:none;}
.home-feature-main,.product-card__main {font-weight:400;}
.product-card .product-category {font-weight:550;}
body[data-current-route=home] .home-recommendation {max-width:none;}
@media(max-width:899px) {
  .nav-button--favorites .nav-button__label {position:static!important;width:auto;height:auto;margin:0;clip:auto;overflow:visible;white-space:normal;}
  .nav-button--favorites {gap:5px;}
  .nav-button--favorites .ui-icon {width:17px;height:17px;}
}
.nav-button--favorites {display:inline-flex;align-items:center;justify-content:center;width:auto;height:44px;}
.product-grid .product-card {animation:none;}
.detail-media img {object-fit:cover;}
.detail-photo-caption {font-size:.73rem;line-height:1.45;color:var(--muted);margin:10px 0 0;}
.photo-expand {position:absolute;right:14px;bottom:14px;min-height:38px;padding:8px 13px;border:1px solid #ffffffb0;border-radius:999px;background:#fffdf9ed;color:var(--forest-900);font-size:.72rem;cursor:pointer;}
.detail-immersive:has(.detail-photo-caption) .photo-expand {bottom:44px;}
.photo-view img {display:block;width:100%;height:auto;max-height:65dvh;object-fit:contain;}
.variant-group {border:0;padding:0;margin:14px 0;min-width:0;}
.variant-group legend {font-weight:600;padding:0;margin-bottom:9px;}
.variant-option span {font-weight:600;}
@media(max-width:759px) {
 .discover-heading {margin-bottom:18px;}
 .discover-categories {margin-top:8px;margin-bottom:14px;}
 .menu-dietary-note {margin-bottom:16px;}
 .result-head h2 {font-size:1.35rem;}
}
/* Controles de formularios con la misma voz visual que la carta. */
.sheet .radio-card span,.sheet .filter-check span,.sheet .reservation-option {font-weight:600;}
.product-grid > .product-card.has-photo:only-child {grid-column:1/-1;max-width:640px;}
.product-grid > .product-card.has-photo:only-child .product-card__main {display:grid;grid-template-columns:42% minmax(0,1fr);align-items:stretch;}
.product-grid > .product-card.has-photo:only-child .product-media {height:100%;min-height:210px;aspect-ratio:auto;}
.product-grid > .product-card.has-photo:only-child .favorite-card {left:9px;right:auto;}
/* Preferencias en contexto, siempre opcionales. */
.taste-another {margin-top:16px;min-height:44px;text-decoration:underline;text-underline-offset:4px;color:var(--ink-soft);}
.taste-notice {margin:18px 0;padding:16px;border:1px solid var(--line);border-radius:16px;background:#edf0e6;}
.taste-notice p {margin:0 0 8px;}
.taste-notice .button-row {gap:8px 20px;flex-wrap:wrap;}
.taste-notice button {min-height:44px;}
.taste-choices {display:grid;gap:12px;margin:20px 0;}
.taste-choices button {white-space:normal;text-align:left;justify-content:flex-start;min-height:48px;}
.taste-invitation {flex-wrap:wrap;}
.personalization-actions {display:grid;grid-template-columns:1fr 1fr;}
.personalization-actions>[data-action=personalization-save-exit] {grid-column:1/-1;min-height:44px;}
/* El panel ocupa solo el espacio realmente visible sobre el teclado. */
.sheet-backdrop {box-sizing:border-box;padding:8px;overflow:hidden;}
.sheet {display:flex;flex-direction:column;min-height:0;max-height:100%;}
.sheet-header,.sheet-actions,.sheet-handle {flex-shrink:0;}
.sheet .sheet-body {min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scroll-padding:16px;}
.onboarding-sheet {transition:none;}
.onboarding-sheet input {font-size:16px;}
body.keyboard-visible .onboarding-sheet .profile-welcome-mark,
body.keyboard-visible .onboarding-sheet .profile-welcome-copy {display:none;}
@media(max-height:520px) {
 .onboarding-sheet .profile-welcome-mark {display:none;}
 .sheet-header {padding-top:10px;padding-bottom:10px;}
 .sheet .sheet-body {padding-top:12px;padding-bottom:12px;}
}
/* Movimiento breve y estable: los paneles no vuelven a entrar al marcar opciones. */
@keyframes calmSheetIn {from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.sheet {animation:calmSheetIn 180ms ease-out both;}
.sheet-backdrop {animation-duration:160ms;}
.sheet-backdrop.is-closing .sheet {animation-duration:160ms;}
.sheet-step,.onboarding-step {animation:none;}
html {scroll-behavior:auto;scroll-padding-top:84px;}
button,a,input,select,textarea,summary {scroll-margin-top:84px;}
.sheet button,.sheet input,.sheet select,.sheet textarea {scroll-margin-top:16px;}
.taste-choices button,.sheet .chip {transition:background-color 140ms ease,border-color 140ms ease;}
.taste-restriction {flex-wrap:wrap;}
body[data-current-route=privacy] .site-header {display:block;position:sticky;}
/* Cada opción responde dentro de su propia tarjeta, sin áreas invisibles superpuestas. */
.radio-card,.variant-option {position:relative;display:block;}
.radio-card input,.variant-option input {position:absolute;inset:0;width:100%;height:100%;min-height:0;margin:0;padding:0;opacity:0;z-index:1;cursor:pointer;}
.radio-card input:focus-visible+span,.variant-option input:focus-visible+span {outline:3px solid #a34e35;outline-offset:3px;}
.filter-check input {width:20px;min-width:20px;height:20px;min-height:20px;padding:0;}
.radio-card:active,.variant-option:active {transform:none;}
.legal-head h1 {font:500 clamp(2.3rem,5vw,3.7rem)/1.1 var(--display);letter-spacing:-.025em;}
.legal-card h2 {font:500 1.65rem/1.2 var(--display);text-wrap:initial;}
.discover-categories[hidden] {display:none!important;}
.discover-services:has(+.discover-categories[hidden]) {margin-bottom:24px;}

/* Logo oficial: proporción original y área táctil cómoda. */
.site-brand {display:flex;align-items:center;flex:0 0 auto;min-height:44px;}
.brand-logo {display:block;width:auto;height:34px;object-fit:contain;}
@media(max-width:759px) {
 .site-header .header-inner {gap:8px;}
 .site-brand .brand-logo {width:auto;height:28px;}
 .desktop-nav {gap:2px;}
 .desktop-nav .nav-button {padding-left:8px;padding-right:8px;}
}
@media(max-width:359px) {
 .desktop-nav .nav-button {font-size:.75rem;padding-left:6px;padding-right:6px;}
}

/* Bienvenida breve: nombre independiente de las preferencias de comida. */
.name-invitation {margin-top:14px;padding:12px 0 0;border-top:1px solid var(--line);max-width:360px;}
.name-invitation p {font-size:.86rem;color:var(--muted);margin:0 0 3px;}
.name-invitation>div {display:flex;align-items:center;gap:20px;}
.name-invitation .text-button {min-height:44px;padding:6px 0;font-size:.84rem;}
.name-invitation .name-invitation-skip {color:var(--muted);font-weight:400;}
.profile-welcome-logo {display:block;width:auto;height:36px;margin:0 0 18px;}
body.keyboard-visible .profile-welcome-logo {display:none;}
@media(max-height:600px) {.profile-welcome-logo{display:none;}}
/* Movimiento corto y localizado; los controles y el espacio de las fotos son estables. */
@media(prefers-reduced-motion:no-preference) {
 .sheet {animation:calmSheetIn 260ms cubic-bezier(.22,1,.36,1) both;}
 .sheet-step {animation:cordeliaStepIn 220ms ease-out both;}
 .nav-button {transition:background-color 180ms ease,color 180ms ease;}
 .product-card__main,.home-feature-main {transition:opacity 140ms ease;}
 .product-card__main:active,.home-feature-main:active {opacity:.9;}
 ::view-transition-old(root) {animation:cordeliaPageOut 140ms ease both;}
 ::view-transition-new(root) {animation:cordeliaPageIn 280ms cubic-bezier(.22,1,.36,1) both;}
 ::view-transition-group(*) {animation-duration:280ms;animation-timing-function:cubic-bezier(.22,1,.36,1);}
}
@keyframes cordeliaStepIn {from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes cordeliaPageOut {to{opacity:0}}
@keyframes cordeliaPageIn {from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* Entrada en secuencia: primero orientación, después contenido. */
.profile-welcome-logo {width:122px;height:auto;margin:4px auto 22px;}
.profile-welcome-logo svg {display:block;width:100%;height:auto;}
@media(prefers-reduced-motion:no-preference) {
 .sheet {animation:cordeliaPanelIn 380ms cubic-bezier(.22,1,.36,1) both;}
 .sheet-backdrop {animation:cordeliaBackdropIn 220ms ease-out both;}
 .sheet-backdrop.is-closing {animation:cordeliaBackdropOut 220ms ease-in both;}
 .sheet-backdrop.is-closing .sheet {animation:cordeliaPanelOut 220ms ease-in both;}
 .sheet-step {animation:cordeliaStepIn 320ms ease-out both;}
 ::view-transition-old(root) {animation:cordeliaPageOut 180ms ease both;}
 ::view-transition-new(root) {animation:cordeliaPageIn 360ms cubic-bezier(.22,1,.36,1) both;}
}
@keyframes cordeliaPanelIn {from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}
@keyframes cordeliaPanelOut {to{opacity:0;transform:translateY(18px)}}
@keyframes cordeliaBackdropIn {from{opacity:0}to{opacity:1}}
@keyframes cordeliaBackdropOut {to{opacity:0}}

/* Solicitar mesa: ritmo vertical, campos amplios y pie siempre accesible. */
.reservation-sheet {width:min(620px,100%);}
.reservation-sheet .sheet-header {padding:20px 24px 16px;}
.reservation-sheet .sheet-body {padding:20px 24px 24px;}
.reservation-form {display:grid;gap:20px;}
.reservation-form .reservation-consent {display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;align-items:start;font-size:13px;line-height:1.6;}
.reservation-form .reservation-consent input {width:20px;min-height:20px;height:20px;margin:3px 0;accent-color:var(--forest);}
.reservation-consent a {color:var(--forest);text-decoration:underline;}
.reservation-intro {margin:0;line-height:1.6;font-size:.94rem;}
.reservation-essentials {padding:0;border:0;background:none;border-radius:0;}
.reservation-essentials .field {gap:8px;margin-bottom:18px;min-width:0;}
.reservation-date-time {gap:16px;grid-template-columns:repeat(2,minmax(0,1fr));}
.reservation-sheet input,.reservation-sheet select,.reservation-sheet textarea {width:100%;min-width:0;max-width:100%;box-sizing:border-box;min-height:48px;font-size:16px;}
.reservation-sheet input[type=date] {appearance:none;-webkit-appearance:none;}
.reservation-sheet .field-hint {font-size:.76rem;line-height:1.5;margin-top:0;}
.reservation-sheet .reservation-people-field {max-width:none;}
.reservation-care {margin:0;padding:18px;background:#f5f3ea;border-radius:16px;}
.reservation-option-grid {gap:8px;}
.reservation-option {min-height:44px;font-size:.8rem;line-height:1.4;padding:10px 12px;white-space:normal;text-align:left;}
.reservation-care__help {font-size:.84rem;line-height:1.55;}
.reservation-confirmation-note {margin:0;font-size:.8rem;line-height:1.6;}
.reservation-lead-time {margin:0;line-height:1.5;}
.reservation-sheet .sheet-actions {padding:14px 24px max(16px,env(safe-area-inset-bottom));grid-template-columns:minmax(80px,.65fr) minmax(0,1.35fr);}
.reservation-sheet .sheet-actions button {min-width:0;white-space:normal;line-height:1.3;}
.classification-tags {display:flex;flex-wrap:wrap;gap:8px;margin:12px 0;}
.classification-tags span {padding:6px 10px;border-radius:10px;background:#e9eddf;font-size:.78rem;line-height:1.4;}
@media(max-width:519px) {
 .reservation-date-time {grid-template-columns:1fr;gap:0;}
 .reservation-sheet .sheet-header {padding:16px 18px 12px;}
 .reservation-sheet .sheet-body {padding:16px 18px 20px;}
 .reservation-sheet .sheet-actions {padding-left:18px;padding-right:18px;}
 .reservation-care {padding:14px;}
 .reservation-care__head {grid-template-columns:1fr;}
}

.reservation-date-time{margin-bottom:18px}.reservation-sheet .sheet-actions button{padding:12px;min-height:48px;font-size:.85rem}

/* Botones de enlace que comparten estilos primarios y secundarios */
a.primary-button, a.secondary-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  box-sizing: border-box;
}
a.primary-button { color: #fff; }
a.secondary-button { color: var(--ink); }

/* Menú en PDF: banner descargable en «Visítanos» */
.menu-pdf-section {margin-top:28px;}
.menu-pdf-card {display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:20px;align-items:center;padding:24px 28px;background:var(--surface-raised);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow-xs);}
.menu-pdf-card__icon {width:52px;height:52px;display:grid;place-items:center;border-radius:16px;background:var(--forest-050);color:var(--forest-900);flex-shrink:0;}
.menu-pdf-card__icon .ui-icon {width:24px;height:24px;}
.menu-pdf-card__content .eyebrow {margin:0 0 4px;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--terracotta);font-weight:700;}
.menu-pdf-card__content h2 {font:500 1.65rem/1.2 var(--display);margin:0 0 6px;letter-spacing:-.02em;}
.menu-pdf-card__content p {font-size:.88rem;line-height:1.55;color:var(--muted);margin:0;max-width:56ch;}
.menu-pdf-card__action {display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0;}
.menu-pdf-btn {display:inline-flex;align-items:center;gap:8px;text-decoration:none;white-space:nowrap;padding:12px 20px;}
.menu-pdf-card__meta {font-size:.72rem;color:var(--muted);letter-spacing:.02em;}

@media(max-width:759px) {
  .menu-pdf-card {grid-template-columns:1fr;gap:16px;padding:22px;}
  .menu-pdf-card__icon {width:44px;height:44px;border-radius:12px;}
  .menu-pdf-card__action {align-items:stretch;}
  .menu-pdf-btn {width:100%;justify-content:center;}
  .menu-pdf-card__meta {text-align:center;}
}

/* Tira discreta en el listado de resultados del Menú */
.menu-pdf-strip {display:flex;align-items:center;justify-content:space-between;gap:16px;margin:28px 0 12px;padding:18px 22px;background:rgba(239,227,202,.35);border:1px solid var(--line);border-radius:20px;}
.menu-pdf-strip__main {display:flex;align-items:center;gap:14px;min-width:0;}
.menu-pdf-strip__icon {width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:var(--forest-050);color:var(--forest-900);flex-shrink:0;}
.menu-pdf-strip__icon .ui-icon {width:20px;height:20px;}
.menu-pdf-strip__main strong {display:block;font-size:.92rem;color:var(--ink);}
.menu-pdf-strip__main p {margin:2px 0 0;color:var(--muted);font-size:.78rem;line-height:1.4;}
.menu-pdf-strip__btn {display:inline-flex;align-items:center;gap:6px;text-decoration:none;white-space:nowrap;flex-shrink:0;}

@media(max-width:600px) {
  .menu-pdf-strip {flex-direction:column;align-items:stretch;gap:14px;padding:16px;}
  .menu-pdf-strip__btn {width:100%;justify-content:center;}
}

