/*
 * LA GLORIA | Public Content Consistency V1.0 | 15 October 2026
 * CONTENT ONLY: all selectors are inside main#main-content (or the isolated
 * seasonal menu main.wrap). No global header, footer, nav or body rules.
 * No JS, session, database, layout-partial or reservation behaviour changes.
 */

main#main-content {
  --lg-content-max: 1440px;
  --lg-content-edge: clamp(16px, 2.6vw, 32px);
  --lg-content-space: clamp(48px, 5.4vw, 82px);
  --lg-content-gap: clamp(16px, 1.75vw, 26px);
  --lg-content-ink: #193c32;
  --lg-content-muted: #53685e;
  --lg-content-gold: #bb914f;
  --lg-content-border: rgba(29, 66, 50, .14);
  font-size: 17px;
  line-height: 1.58;
  min-width: 0;
}

/* Matching horizontal alignment for content on every public page.
   A section can retain its own full-bleed colour or background image. */
main#main-content :is(
  .wa-shell, .lg207-shell, .lg209-shell, .lg214-shell, .lg21441-shell,
  .lgm12-shell, .lgmc-shell, .ag-wrap, .ag-shell, .body-shell,
  .lgpo-outer, .rvm-shell, .shell
) {
  width: min(var(--lg-content-max), calc(100% - (2 * var(--lg-content-edge)))) !important;
  max-width: var(--lg-content-max) !important;
  margin-inline: auto !important;
  box-sizing: border-box;
  min-width: 0;
}

/* Single, readable title hierarchy. Special labels and prices are excluded. */
main#main-content h1 {
  font-family: Georgia, 'Times New Roman', serif !important;
  font-size: clamp(38px, 4.35vw, 66px) !important;
  font-weight: 500 !important;
  letter-spacing: -.035em;
  line-height: 1.11 !important;
  text-wrap: balance;
  overflow-wrap: break-word;
}
main#main-content :is(
  .lg207-section-title, .lg209-section h2, .lg209-content h2,
  .lg214-section-head h2, .lg21441-content h2, .lg21441-cta h2,
  .lgm12-section-head h2, .lgm12-chef h2, .lgm12-category > h2,
  .lgmc-category > h2, .lgmc-bottom-cta h2,
  .wa-reserve-heading h2, .wa-experience h2,
  .lgpo-heading-title h2
) {
  font-family: Georgia, 'Times New Roman', serif !important;
  font-size: clamp(29px, 3vw, 43px) !important;
  font-weight: 500 !important;
  letter-spacing: -.025em;
  line-height: 1.17 !important;
  text-wrap: balance;
}
main#main-content :is(
  .lg207-card h3, .lg207-person h3, .lg214-event-card h3,
  .lgm12-chef-card h3, .lgmc-dish-title,
  .lg209-content h3, .lg209-section h3,
  .source-card h3, .category-card h3
) {
  font-size: clamp(21px, 1.65vw, 26px) !important;
  line-height: 1.27 !important;
  letter-spacing: -.012em;
  overflow-wrap: break-word;
}
main#main-content :is(p, li) { line-height: 1.64; }
main#main-content :is(
  .wa-lead, .lg207-copy, .lg214-lead, .lgm12-hero-copy,
  .ag-lead, .lg209-lead, .lg21441-lead,
  .lgmc-hero-summary, .rv-intro > p
) {
  font-size: clamp(16px, 1.23vw, 19px) !important;
  line-height: 1.67 !important;
  max-width: 75ch;
}
main#main-content :is(
  .lg207-section, .lg214-section, .lg21441-content, .lg21441-cta,
  .lgm12-chef, .lgm12-category, .lg209-content, .lgmc-bottom-cta
) p:not([class*='kicker']):not([class*='eyebrow']) {
  font-size: clamp(16px, 1.09vw, 18px);
  line-height: 1.65;
}

/* The same measured vertical rhythm for editorial sections. Not applied to
   embedded reservation journeys or dynamic menu rows. */
main#main-content :is(
  .lg207-section, .lg214-section, .lg21441-content, .lg21441-cta,
  .lg209-content, .lgm12-chef, .lgmc-bottom-cta
) {
  padding-block: var(--lg-content-space) !important;
}
main#main-content :is(.lg207-head, .lg214-section-head, .lgm12-section-head) {
  gap: var(--lg-content-gap);
  margin-bottom: clamp(22px, 2.5vw, 34px);
}
main#main-content :is(
  .lg207-grid-4, .lg207-grid-2, .lg207-people, .lg207-stats,
  .wa-experience-grid, .lg2151-grid,
  .lg207-contact-grid, .lg214-events-grid, .lg214-event-meta,
  .source-grid, .category-grid, .lgm12-chef-grid,
  .lgm12-menu-grid, .lg209-grid, .lg209-cards
) {
  gap: var(--lg-content-gap) !important;
  align-items: stretch;
}
main#main-content :is(
  .lg207-grid-4, .lg207-grid-2, .lg207-people, .lg207-stats,
  .wa-experience-grid, .lg2151-grid,
  .lg207-contact-grid, .lg214-events-grid, .source-grid,
  .category-grid, .lgm12-chef-grid, .lg209-grid, .lg209-cards
) > * { min-width: 0; }

/* A shared card rhythm, leaving each page's existing colours and artwork. */
main#main-content :is(
  .lg207-card, .lg207-person, .lg207-contact, .lg207-stat,
  .lg214-event-card, .lg214-hero-card, .lgm12-menu-card,
  .lgm12-chef-card, .lgmc-dish, .lg21441-cta-grid > *,
  .source-card, .category-card, .ag-panel, .rv-card,
  .rvm-card, .lgpo-panel, .lgpo-sidecard, .lg209-card
) {
  border-radius: clamp(16px, 1.6vw, 22px);
  min-width: 0;
  box-sizing: border-box;
}
main#main-content :is(
  .lg207-grid-4 > .lg207-card, .lg207-grid-4 > .lg207-person,
  .lg207-people > .lg207-person, .lg214-events-grid > .lg214-event-card,
  .source-grid > .source-card, .category-grid > .category-card,
  .lgm12-chef-grid > .lgm12-chef-card
) {
  display: flex;
  flex-direction: column;
  height: 100%;
}
main#main-content :is(
  .lg207-grid-4 > .lg207-card, .lg207-grid-4 > .lg207-person,
  .source-grid > .source-card, .category-grid > .category-card
) { padding: clamp(20px, 2vw, 28px); }
main#main-content .lg214-event-card-body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-width: 0;
  padding: clamp(20px, 2vw, 28px);
}
main#main-content .wa-experience-grid > .wa-experience-card {
  min-height: 160px;
  height: 100%;
  min-width: 0;
}
main#main-content :is(
  .lg207-grid-4 > .lg207-card, .lg207-grid-4 > .lg207-person,
  .lg214-events-grid > .lg214-event-card
) > .lg207-actions,
main#main-content .lg214-event-card-body > .lg214-event-card-actions {
  margin-top: auto;
  padding-top: 18px;
}
main#main-content :is(
  .lg207-card, .lg207-person, .lg214-event-card,
  .lgm12-chef-card, .source-card, .category-card
) small { font-size: max(13px, .8rem); line-height: 1.45; }

/* Public calls to action. Do not modify global navigation, tabs, select menus,
   filter chips, calendar day cells or the booking-flow progression controls. */
main#main-content :is(
  .lg207-btn, .lg214-btn, .lgm12-reserve, .lg21441-actions > a,
  .lg21441-cta a, .wa-actions > a, .lgmc-bottom-actions a,
  .lg209-actions a, .lgpo-actions button
) {
  min-height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 10px;
  padding: 12px clamp(16px, 1.6vw, 24px);
  border-radius: 12px;
  font-size: 16px !important;
  font-weight: 700;
  line-height: 1.35;
  white-space: normal;
  text-decoration: none;
  box-sizing: border-box;
}
main#main-content :is(
  .lg207-actions, .lg214-actions, .lg21441-actions,
  .wa-actions, .lgmc-bottom-actions, .lg209-actions
) { gap: 12px; }

/* Consistent readable inputs, without touching checkboxes, radio, hidden,
   date cells or the native calendar widget. */
main#main-content :is(
  input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=range]):not([type=file]),
  select, textarea
) {
  font-size: max(16px, 1rem);
  line-height: 1.4;
  min-width: 0;
  box-sizing: border-box;
}
main#main-content :is(input, select, textarea, button, a):focus-visible {
  outline: 3px solid #bc9050;
  outline-offset: 3px;
}
main#main-content :is(img, video, iframe, canvas, svg) { max-width: 100%; }
main#main-content :is(.lg207-shell, .lgm12-shell, .lg214-shell, .lg21441-shell) > * {
  min-width: 0;
}

@media (hover:hover) and (prefers-reduced-motion:no-preference) {
  main#main-content :is(
    .lg207-grid-4 > .lg207-card, .lg207-grid-4 > .lg207-person,
    .lg214-events-grid > .lg214-event-card, .source-grid > .source-card,
    .category-grid > .category-card
  ) { transition: transform .25s ease, box-shadow .25s ease; }
  main#main-content :is(
    .lg207-grid-4 > .lg207-card, .lg207-grid-4 > .lg207-person,
    .lg214-events-grid > .lg214-event-card, .source-grid > .source-card,
    .category-grid > .category-card
  ):hover { transform: translateY(-3px); }
}

@media (max-width: 1050px) {
  main#main-content { --lg-content-edge: 22px; --lg-content-space: clamp(44px, 5vw, 66px); }
  main#main-content :is(.lg207-grid-4, .lg214-events-grid) {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 680px) {
  main#main-content {
    --lg-content-edge: 16px;
    --lg-content-space: 44px;
    --lg-content-gap: 15px;
    font-size: 16px;
    line-height: 1.58;
  }
  main#main-content h1 { font-size: clamp(34px, 8.8vw, 44px) !important; letter-spacing: -.03em; }
  main#main-content :is(
    .lg207-section-title, .lg209-section h2, .lg209-content h2,
    .lg214-section-head h2, .lg21441-content h2, .lg21441-cta h2,
    .lgm12-section-head h2, .lgm12-chef h2,
    .lgmc-category > h2, .wa-reserve-heading h2,
    .wa-experience h2, .lgmc-bottom-cta h2
  ) { font-size: clamp(28px, 7vw, 35px) !important; }
  main#main-content :is(
    .lg207-grid-4, .lg207-grid-2, .lg207-people, .lg214-events-grid,
    .lgm12-chef-grid, .source-grid, .category-grid, .lg209-cards
  ) { grid-template-columns: minmax(0, 1fr) !important; }
  main#main-content :is(.lg207-actions, .lg214-actions, .lg21441-actions, .wa-actions) {
    flex-wrap: wrap;
  }
  main#main-content :is(
    .lg207-actions > .lg207-btn, .lg214-actions > .lg214-btn,
    .lg21441-actions > a, .wa-actions > a
  ) { flex: 1 1 190px; min-width: 0; }
  main#main-content :is(
    .lg207-grid-4 > .lg207-card, .lg207-grid-4 > .lg207-person,
    .source-grid > .source-card, .category-grid > .category-card
  ) { padding: 20px; }
  main#main-content .lg214-event-card-body { padding: 20px; }
}
@media (max-width: 380px) {
  main#main-content { --lg-content-edge: 14px; }
  main#main-content :is(
    .lg207-actions > .lg207-btn, .lg214-actions > .lg214-btn,
    .lg21441-actions > a, .wa-actions > a
  ) { flex-basis: 100%; }
}
@media (prefers-reduced-motion:reduce) {
  main#main-content :is(
    .lg207-grid-4 > .lg207-card, .lg207-grid-4 > .lg207-person,
    .lg214-events-grid > .lg214-event-card, .source-grid > .source-card,
    .category-grid > .category-card
  ) { transition: none; transform: none; }
}

/* The independent seasonal menu preview has a separate main and an existing
   protected header. Align its content only. */
main.wrap { width: min(1440px, calc(100% - 32px)); max-width: 1440px; margin-inline: auto; }
main.wrap .panel { border-radius: 20px; }
@media (max-width:680px) { main.wrap { width: calc(100% - 28px); } }
