/* Familia Gastronomía: composición local; tipografía, controles y colores globales. */
.gastro { margin:0; background:var(--surface-page); color:var(--text-primary); font-family:var(--font-body); }
.gastro main > [id], .gastro main [id="desayuno"] { scroll-margin-top:calc(var(--header-height) + var(--space-8)); }
.gastro rp-gastronomy-hero,.gastro rp-kitchen-story,.gastro rp-meal-overview,.gastro rp-meal-detail,.gastro rp-meal-reservation,.gastro rp-menu-examples,.gastro rp-dietary-notice,.gastro rp-gastronomy-closing,.gastro rp-site-header,.gastro rp-announcement-bar,.gastro rp-site-footer,.gastro rp-cookie-consent { display:block; }
.gastro .g-shell { display:block; width:min(calc(100% - 2 * var(--gutter)),var(--layout-max)); margin-inline:auto; padding-inline:0; }
.gastro .g-section { padding-block:var(--rhythm-content); }
.gastro main figure { margin:0; min-width:0; }
.gastro main img { display:block; width:100%; height:100%; object-fit:cover; }
.gastro main p { line-height:var(--leading-read); max-width:var(--read-max); }
.gastro .g-label { font-size:var(--fs-small); color:var(--text-meta); margin:0 0 var(--space-5); }
.gastro .g-heading { display:block; }
.gastro .g-heading h2 { margin:0; max-width:19ch; text-wrap:balance; }
.gastro .g-small,.gastro figcaption { font-size:var(--fs-small); line-height:var(--leading-read); }
.gastro figcaption { color:var(--text-meta); margin-top:var(--space-3); }
.gastro .g-actions { display:flex; flex-wrap:wrap; gap:var(--space-3); margin-top:var(--space-8); }
.gastro .g-hero .g-label { color:var(--text-on-dark); }
.gastro .g-hero h1 { font-size:var(--hu-h1); line-height:var(--lh-h1); max-width:14ch; margin:var(--space-5) 0; text-wrap:balance; }
.gastro .g-hero rp-breadcrumbs { display:block; margin-bottom:var(--space-8); }
.gastro .g-hero .g-lead { font-size:var(--fs-lead); max-width:45ch; }
.gastro .g-hero .g-hero-note { font-size:var(--fs-small); margin-top:var(--space-6); }
.gastro .g-hero img { object-position:62% 50%; }
.gastro .g-nav { padding-block:var(--space-4); border-bottom:1px solid var(--border-default); }
.gastro .g-nav nav { justify-content:flex-start; flex-wrap:nowrap; overflow-x:auto; padding-block:var(--space-2); }
/* KitchenStory: la imagen reúne siete columnas, con el texto en cinco. */
.gastro .g-story-grid { display:grid; grid-template-columns:var(--col-7-5); grid-template-rows:min-content 1fr; gap:var(--space-6) var(--col-gap); align-items:start; }
.gastro .g-story-grid > figure { grid-column:1; grid-row:1/3; }
.gastro .g-story-grid > .g-heading { grid-column:2; padding-top:var(--space-8); }
.gastro .g-story-copy { grid-column:2; align-self:start; }
.gastro .g-story-copy p { margin:0 0 var(--space-4); }
.gastro .g-story-grid > figure img { aspect-ratio:5/4; height:auto; object-position:48% 55%; border-radius:var(--radius-panel); }
/* Horarios: datos del QuickFacts global, en una agenda compacta. */
.gastro .g-schedule { padding-block:var(--rhythm-compact); background:var(--surface-alt); }
.gastro .g-schedule-grid { display:grid; grid-template-columns:3fr 9fr; gap:var(--col-gap); }
.gastro .g-schedule-services { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-10); }
.gastro .g-schedule-service { display:flex; flex-direction:column; align-items:start; gap:var(--space-5); }
.gastro .g-schedule-service .cta-link { margin-top:auto; }
.gastro .g-schedule .rp-quick-facts { display:block; margin:0; padding:0; border:0; }
.gastro .g-schedule .rp-quick-facts > div { display:block; border:0; padding:0; background:none; }
.gastro .g-schedule dt { font-size:var(--fs-body); font-weight:600; margin-bottom:var(--space-4); }
.gastro .g-schedule dd { margin:0; font-family:var(--font-body); font-size:var(--fs-h3); line-height:var(--lh-h3); font-variant-numeric:tabular-nums; white-space:nowrap; }
.gastro .g-schedule dd small { display:block; white-space:normal; max-width:30ch; font-size:var(--fs-small); font-weight:400; line-height:var(--leading-read); margin-top:var(--space-4); color:var(--text-body); }
/* MealDetail: fotografía amplia, comparación y cena con tarifa agrupada. */
.gastro .g-meals-intro,.gastro .g-menu-head,.gastro .g-origin-head { display:grid; grid-template-columns:var(--col-7-5); gap:var(--col-gap); align-items:end; margin-bottom:var(--space-12); }
.gastro .g-meals-intro p,.gastro .g-menu-head p,.gastro .g-origin-head > p { margin-bottom:0; }
.gastro .g-breakfast-grid { display:grid; grid-template-columns:2fr 1fr; gap:var(--col-gap); align-items:center; }
.gastro .g-breakfast-grid img { aspect-ratio:5/4; height:auto; object-position:52% 50%; border-radius:var(--radius-panel); }
.gastro .g-breakfast-copy h3 { margin:0; text-wrap:balance; }
.gastro .g-service-time { font-size:var(--fs-lead); font-weight:600; font-variant-numeric:tabular-nums; margin:var(--space-6) 0; }
.gastro .g-breakfast-options { display:grid; grid-template-columns:1fr 1fr; gap:var(--col-gap); border-top:1px solid var(--border-default); padding-top:var(--space-10); margin-top:var(--space-10); }
.gastro .g-breakfast-options article { min-width:0; }
.gastro .g-breakfast-options article + article { padding-left:var(--space-8); border-left:1px solid var(--border-default); }
.gastro .g-status { display:block; color:var(--text-meta); font-size:var(--fs-small); margin-bottom:var(--space-4); }
.gastro .g-breakfast-options h3 { margin:0 0 var(--space-4); }
.gastro .g-house-price { margin:0; }
.gastro .g-house-price strong { font-size:var(--fs-lead); }
.gastro .g-inline-links { display:flex; flex-wrap:wrap; gap:var(--space-6); }
.gastro .g-house-link { display:table; margin-top:var(--space-4); }
.gastro .g-dinner { background:var(--surface-alt); }
.gastro .g-dinner-grid { display:grid; grid-template-columns:var(--col-5-7); gap:var(--col-gap); align-items:center; }
.gastro .g-dinner-grid figure img { aspect-ratio:4/5; height:auto; border-radius:var(--radius-panel); }
.gastro .g-price { padding:var(--space-6) var(--space-8); background:var(--surface-page); border-radius:var(--radius-panel); margin-block:var(--space-8); }
.gastro .g-price > span { display:block; font-size:var(--fs-small); }
.gastro .g-price > strong { display:block; font-family:var(--font-display); font-size:var(--fs-h1); line-height:var(--lh-h1); font-weight:500; font-variant-numeric:lining-nums; margin-block:var(--space-2); }
.gastro .g-price p { margin-bottom:0; }
/* ProcessSteps global sobre superficie inversa. */
.gastro .g-reservation { background:var(--surface-inverse); color:var(--text-on-dark); --text-meta:var(--text-on-dark-muted); }
.gastro .g-reservation-grid { display:grid; grid-template-columns:var(--col-5-7); gap:var(--col-gap); align-items:start; }
.gastro .g-reservation h2 { color:var(--text-on-dark); }
.gastro .g-reserve-action { margin-top:var(--space-10); max-width:var(--layout-cta); }
.gastro .g-deadline { font-weight:600; }
.gastro .g-reservation-steps .ps-vert { padding:0 !important; }
.gastro .g-reservation-steps { --page-accent-text:var(--text-on-dark); --text-primary:var(--text-on-dark); --text-body:var(--text-on-dark-muted); }
.gastro .g-reservation-steps .ps-b { background:transparent; border:0; border-radius:0; padding:var(--space-1) 0 var(--space-6); margin:0; }
.gastro .g-reservation-steps .ps-c { background:transparent !important; color:var(--text-on-dark) !important; }
.gastro .g-reservation-steps .ps-hl,.gastro .g-reservation-steps .ps-vl { animation:none; }
/* MenuExamples: una preparación principal y tres fotografías complementarias. */
.gastro .g-menu-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--space-6); }
.gastro .g-menu-gallery > figure:first-child { grid-column:1/3; grid-row:1/3; }
.gastro .g-menu-gallery > figure:nth-child(4) { grid-column:1/-1; }
.gastro .g-menu-gallery > figure { display:flex; flex-direction:column; background:none; border:0; padding:0; }
.gastro .g-menu-gallery button { position:relative; display:block; width:100%; padding:0; border:0; background:var(--surface-alt); cursor:zoom-in; border-radius:var(--radius-panel); overflow:hidden; flex:1; min-height:0; }
.gastro .g-menu-gallery img { aspect-ratio:4/3; min-height:0; object-position:50% 55%; }
.gastro .g-menu-gallery > figure:first-child img { aspect-ratio:4/5; }
.gastro .g-menu-gallery > figure:nth-child(4) img { aspect-ratio:4/1; object-position:50% 50%; }
.gastro .g-menu-gallery figcaption { position:static; color:var(--text-meta); background:none; padding:0; }
.gastro .g-photo-open { position:absolute; right:var(--space-4); bottom:var(--space-4); padding:var(--space-2) var(--space-4); border-radius:var(--radius-pill); background:var(--surface-page); color:var(--text-primary); font-size:var(--fs-small); }
.gastro .g-menu-gallery button:focus-visible { outline:var(--focus-outline); outline-offset:4px; }
/* Origine et consultation: compositions distinctes du récit d'ouverture. */
.gastro .g-origin { background:var(--surface-alt); }
.gastro .g-origin-photo img { aspect-ratio:21/8; height:auto; object-position:50% 55%; border-radius:var(--radius-panel); }
.gastro .g-origins { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-10); margin:var(--space-10) 0 0; }
.gastro .g-origins dt { font-family:var(--font-display); font-size:var(--fs-h3); line-height:var(--lh-h3); margin-bottom:var(--space-4); }
.gastro .g-origins dd { margin:0; line-height:var(--leading-read); }
.gastro .g-diet-panel { padding:var(--space-12); background:var(--surface-alt); border-radius:var(--radius-panel); display:grid; grid-template-columns:1fr 1fr; gap:var(--col-gap); }
.gastro .g-diet-panel rp-notice { margin-block:var(--space-6); background:var(--surface-page); }
.gastro .g-diet-options h3 { margin:0 0 var(--space-4); }
.gastro .g-diet-options > div { margin-bottom:var(--space-8); }
.gastro .g-diet-options rp-whatsapp-help { display:block; border-bottom:1px solid var(--border-control); }
.gastro .g-diet-options rp-whatsapp-help a { display:flex; align-items:center; min-height:var(--control-height); padding-block:var(--space-3); text-wrap:pretty; gap:var(--space-3); }
.gastro .g-diet-options rp-whatsapp-help svg { flex-shrink:0; }
.gastro rp-gastronomy-closing .cb-px,.gastro rp-gastronomy-closing .cb-in { animation:none; }
.gastro .g-whatsapp-host[hidden] { display:none !important; }
@media (min-width:1024px) {
 .gastro .g-menu-gallery { grid-template-columns:7fr 5fr; }
 .gastro .g-menu-gallery > figure:first-child { grid-column:1; grid-row:1/4; }
 .gastro .g-menu-gallery > figure:nth-child(4) { grid-column:2; }
 .gastro .g-menu-gallery > figure:not(:first-child) img { aspect-ratio:2.3/1; }
}
@media (max-width:1023px) {
 .gastro .g-schedule-grid { grid-template-columns:1fr; gap:var(--space-8); }
 .gastro .g-schedule .g-heading h2 { max-width:none; }
 .gastro .g-story-grid > .g-heading { padding-top:0; }
 .gastro .g-breakfast-grid { grid-template-columns:var(--col-7-5); }
 .gastro .g-diet-panel { padding:var(--space-8); gap:var(--space-8); }
}
@media (max-width:767px) {
 .gastro .g-hero img { object-position:70% 50%; }
 .gastro .g-actions { flex-direction:column; align-items:stretch; }
 .gastro .g-actions a { text-align:center; justify-content:center; }
 .gastro .g-story-grid { grid-template-columns:1fr; gap:var(--space-6); }
 .gastro .g-story-grid > .g-heading { grid-column:1; grid-row:1; }
 .gastro .g-story-grid > figure { grid-column:1; grid-row:2; }
 .gastro .g-story-copy { grid-column:1; grid-row:3; }
 .gastro .g-story-grid > figure img { aspect-ratio:5/4; object-position:48% 52%; }
 .gastro .g-heading h2 { max-width:20ch; }
 .gastro .g-schedule-services,.gastro .g-breakfast-grid,.gastro .g-breakfast-options,.gastro .g-dinner-grid,.gastro .g-reservation-grid,.gastro .g-meals-intro,.gastro .g-menu-head,.gastro .g-origin-head,.gastro .g-origins,.gastro .g-diet-panel { grid-template-columns:1fr; gap:var(--space-8); }
 .gastro .g-schedule-service + .g-schedule-service { border-top:1px solid var(--border-control); padding-top:var(--space-6); }
 .gastro .g-schedule-service { gap:var(--space-3); }
 .gastro .g-breakfast-options article + article { border-left:0; padding-left:0; padding-top:var(--space-8); border-top:1px solid var(--border-default); }
 .gastro .g-dinner-grid figure img { aspect-ratio:5/4; }
 .gastro .g-menu-gallery { grid-template-columns:1fr 1fr; gap:var(--space-6) var(--space-4); }
 .gastro .g-menu-gallery > figure:first-child { grid-column:1/-1; grid-row:auto; }
 .gastro .g-menu-gallery > figure:first-child img { aspect-ratio:5/4; }
 .gastro .g-menu-gallery > figure:nth-child(4) { grid-column:1/-1; }
 .gastro .g-menu-gallery > figure:nth-child(4) img { aspect-ratio:2/1; }
 .gastro .g-menu-gallery > figure:nth-child(2) img,.gastro .g-menu-gallery > figure:nth-child(3) img { aspect-ratio:1/1; }
 .gastro .g-photo-open { right:var(--space-2); bottom:var(--space-2); font-size:var(--fs-meta); }
 .gastro .g-origin-photo img { aspect-ratio:4/3; }
 .gastro .g-origins > div + div { border-top:1px solid var(--border-default); padding-top:var(--space-6); }
 .gastro .g-diet-panel { padding:var(--space-6); }
 .gastro .g-reserve-action a { width:100%; text-align:center; justify-content:center; }
 .gastro .g-price { padding:var(--space-6); }
}
@media (prefers-reduced-motion:reduce) { .gastro { scroll-behavior:auto; } }

/* ═══ Refresh · alineado con la línea de experiencias y alojamientos: rótulos «NN · Título», regla arena, cifras en Cormorant, sin tarjetas ═══ */
.gastro .g-heading .g-label{margin:0 0 var(--space-4);font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-primary)}
.gastro .g-reservation .g-heading .g-label{color:var(--text-on-dark)}
.gastro main figure img,.gastro .g-story-grid>figure img,.gastro .g-breakfast-grid img,.gastro .g-dinner-grid figure img,.gastro .g-origin-photo img{border-radius:6px}
/* 01 · La idea: el primer párrafo como nota con regla arena */
.gastro .g-story-copy p:first-child{padding-left:1.25rem;border-left:3px solid var(--sand,#d8bc82);font-family:var(--font-display);font-size:clamp(1.35rem,1.1rem + 1vw,1.8rem);line-height:1.35;max-width:32ch}
/* 02 · Horarios: dos franjas con cifra grande y regla arena */
.gastro .g-schedule-services{gap:0;border-top:2px solid var(--sand,#d8bc82);padding-top:var(--space-6)}
.gastro .g-schedule-service+.g-schedule-service{padding-left:clamp(1.5rem,4vw,3.5rem);border-left:1px solid var(--border-default)}
.gastro .g-schedule dt{margin-bottom:var(--space-2);font-size:.9rem;font-weight:600}
.gastro .g-schedule dd{font-family:var(--font-display);font-size:clamp(2.3rem,1.5rem + 3vw,3.6rem);font-weight:500;line-height:1.02;letter-spacing:-.01em;color:#5c3920}
.gastro .g-schedule dd small{font-family:var(--font-body);letter-spacing:0;color:var(--text-primary)}
/* 03 · Desayuno y cena */
.gastro .g-service-time{font-family:var(--font-display);font-size:clamp(1.9rem,1.4rem + 1.8vw,2.7rem);font-weight:500;line-height:1.05;color:#5c3920;margin:var(--space-5) 0}
.gastro .g-breakfast-options{border-top:2px solid var(--sand,#d8bc82)}
.gastro .g-status{font-size:.9rem;font-weight:600;color:var(--text-primary)}
.gastro .g-breakfast-options h3{font-family:var(--font-display);font-size:1.7rem;font-weight:600}
.gastro .g-house-price strong{display:block;font-family:var(--font-display);font-size:clamp(2.2rem,1.7rem + 1.6vw,3rem);font-weight:500;line-height:1;color:#5c3920}
.gastro .g-house-price{margin-bottom:var(--space-4)}
.gastro .g-price{padding:0 0 0 1.25rem;background:none;border-radius:0;border-left:3px solid var(--sand,#d8bc82);margin-block:var(--space-6)}
.gastro .g-price>strong{font-size:clamp(3rem,2rem + 4vw,4.6rem);color:#5c3920;margin-block:var(--space-1)}
/* 04 · Reservar la cena */
.gastro .g-deadline{display:inline-block;padding-left:1rem;border-left:3px solid var(--sand,#d8bc82);font-family:var(--font-display);font-size:1.4rem;font-weight:500}
/* 05 · Galería del menú: «Ampliar» solo al pasar o enfocar (siempre visible en táctil) */
.gastro .g-menu-gallery button{border-radius:6px}
.gastro .g-photo-open{padding:.25rem .7rem;font-size:.8rem;font-weight:600;background:rgba(25,54,56,.82);color:#fff;transition:opacity .2s ease}
@media(hover:hover){.gastro .g-photo-open{opacity:0}.gastro .g-menu-gallery button:hover .g-photo-open,.gastro .g-menu-gallery button:focus-visible .g-photo-open{opacity:1}}
.gastro .g-menu-gallery figcaption{font-family:var(--font-display);font-style:italic;font-size:1.05rem;color:var(--text-primary)}
/* 06 · Cerca de la mesa: tres datos con regla arena y filetes verticales */
.gastro .g-origins{gap:0;margin-top:var(--space-10);border-top:2px solid var(--sand,#d8bc82);border-bottom:1px solid var(--border-default)}
.gastro .g-origins>div{padding:1.1rem 1.5rem 1.4rem 0}
.gastro .g-origins>div+div{padding-left:1.5rem;border-left:1px solid var(--border-default)}
.gastro .g-origins dt{font-size:clamp(1.5rem,1.2rem + .9vw,1.9rem);font-weight:600;margin-bottom:var(--space-2)}
/* 07 · Necesidades alimentarias: sin tarjeta; nota con regla lateral arena */
.gastro .g-diet-panel{padding:var(--space-8) 0 0;background:none;border-radius:0;border-top:2px solid var(--sand,#d8bc82)}
.gastro .g-diet-panel rp-notice{margin-block:var(--space-6);padding:0 0 0 1.25rem;background:none;border:0;border-left:3px solid var(--sand,#d8bc82);border-radius:0;box-shadow:none}
.gastro .g-diet-options h3{font-family:var(--font-display);font-size:1.5rem;font-weight:600}
/* 08 · Cierre con fotografía (mismo componente que las experiencias) */
.gastro rp-gastronomy-closing#cierre{padding-inline:var(--gutter);color:var(--text-on-dark,#f7f4ed)}
.gastro #cierre h2{max-width:11ch;color:inherit;font-family:var(--font-display);font-size:clamp(2.6rem,5.2vw,4.6rem);font-weight:500;line-height:1.02}
.gastro #cierre .rp-experience-closing__intro,.gastro #cierre .rp-experience-closing__eyebrow{color:inherit;max-width:46ch}
.gastro #cierre .rp-experience-closing__actions a:not(.cta-primary){color:inherit}
@media(max-width:767px){.gastro .g-schedule-service+.g-schedule-service{padding-left:0;border-left:0}.gastro .g-origins>div{padding:1rem 0}.gastro .g-origins>div+div{padding-left:0;border-left:0;border-top:1px solid var(--border-default)}}
