[data-restauracje-page] {
  background: var(--color-frosted-white);
}

[data-restauracje-page] section {
  padding-block: var(--space-16);
}

.restaurants-kicker {
  display: block;
  color: var(--color-copper-dark);
  font-size: var(--font-size-caption);
  font-weight: 700;
  letter-spacing: .12em;
  line-height: 1.2;
  text-transform: uppercase;
}

.restaurants-hero {
  padding-top: var(--space-12) !important;
  overflow: hidden;
}

.restaurants-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  align-items: end;
  gap: var(--space-6);
}

.restaurants-hero__copy,
.restaurants-hero__media,
.restaurants-main-dining__copy,
.restaurants-main-dining__media,
.restaurants-buffet__copy,
.restaurants-buffet__media,
.restaurants-room__copy,
.restaurants-room__scenarios,
.restaurants-evening__copy,
.restaurants-evening__side {
  min-width: 0;
}

.restaurants-hero__copy {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  max-width: 32.5rem;
  margin-bottom: var(--space-8);
  padding: var(--space-8);
  border: 1px solid var(--border-technical);
  background: var(--color-paper-white);
}

.restaurants-hero__copy > * { margin: 0; }
.restaurants-hero__copy h1 { font-size: clamp(2.75rem, 3vw + 1.8rem, 4.5rem); }
.restaurants-hero__lead { max-width: 31.25rem; font-size: 1.1rem; line-height: 1.58; }

.restaurants-hero__meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-4);
  padding-top: var(--space-4);
  border-top: 1px solid var(--border-technical);
}
.restaurants-hero__meta > * { min-width: 0; }
.restaurants-hero__meta strong { display: block; font-size: var(--font-size-meta); }

.restaurants-hero__media { margin: 0; }
.restaurants-hero__media img { width: 100%; height: 35rem; object-fit: cover; object-position: center; }
.restaurants-hero__media figcaption { margin: 0; padding: var(--space-3) var(--space-4); background: var(--color-atlantic-navy); color: var(--color-frosted-white); }

.restaurants-anchor-link::after,
.restaurants-next-link::after { content: " ↗"; color: var(--color-copper-dark); }

.restaurants-map { background: var(--color-pale-steel); }
.restaurants-map__intro { max-width: 42.5rem; }
.restaurants-map__intro p { max-width: 38.75rem; }
.restaurants-filterbar {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin-block: var(--space-6);
}
.restaurants-filterbar > * { min-width: 0; }
.restaurants-filterbar button {
  min-height: 2.75rem;
  padding: .625rem .875rem;
  border: 1px solid var(--color-horizon-blue);
  border-radius: var(--radius-control);
  background: transparent;
  color: var(--color-horizon-blue);
  font-size: var(--font-size-meta);
  font-weight: 700;
}
.restaurants-filterbar button[aria-pressed="true"],
.restaurants-filterbar button:hover { background: var(--color-horizon-blue); color: var(--color-paper-white); }

.restaurants-route {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, minmax(13.125rem, 1fr));
  gap: var(--space-6);
  padding-top: var(--space-8);
}
.restaurants-route::before {
  position: absolute;
  top: 1.75rem;
  right: 3%;
  left: 3%;
  height: 1px;
  background: var(--color-line-blue);
  content: "";
}
.restaurants-route__node {
  position: relative;
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-6);
  border: 1px solid var(--border-technical);
  background: rgba(255,255,255,.7);
  scroll-margin-top: var(--space-16);
  transition: border-color var(--transition-fast), background-color var(--transition-fast), transform var(--transition-fast);
}
.restaurants-route__node:nth-child(even) { transform: translateY(var(--space-8)); }
.restaurants-route__node > * { min-width: 0; margin: 0; }
.restaurants-route__node.is-highlighted { border-color: var(--color-horizon-blue); background: var(--color-paper-white); }
.restaurants-route__number { color: var(--color-copper-dark); font-size: 1.5rem; font-variant-numeric: tabular-nums; font-weight: 700; }
.restaurants-route__node h3 { font-size: 1.3rem; }
.restaurants-route__node p { font-size: .95rem; line-height: 1.5; }
.restaurants-tags { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.restaurants-tags span { padding: .25rem .45rem; border: 1px solid var(--border-technical); color: var(--color-muted-steel); font-size: var(--font-size-caption); }

.restaurants-main-dining__layout {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(22.5rem, 5fr);
  gap: var(--space-8);
  align-items: start;
}
.restaurants-main-dining__copy { max-width: 41rem; }
.restaurants-main-dining__copy > p { max-width: 40.625rem; }
.restaurants-main-dining__media { margin: 0; }
.restaurants-main-dining__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.restaurants-main-dining__media figcaption { padding: var(--space-3) var(--space-4); border: 1px solid var(--border-technical); border-top: 0; }
.restaurants-checkpoint { display: flex; flex-direction: column; gap: var(--space-3); width: min(100%, 20rem); margin-top: var(--space-6); padding: var(--space-6); }
.restaurants-checkpoint > * { margin: 0; }
.restaurants-checkpoint ul { padding-left: 1.1rem; }
.restaurants-checkpoint li + li { margin-top: var(--space-2); }
.restaurants-scenarios { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-6); margin-top: var(--space-12); }
.restaurants-scenario { display: flex; min-width: 0; flex-direction: column; gap: var(--space-3); padding-top: var(--space-4); border-top: 2px solid var(--color-copper); }
.restaurants-scenario > * { margin: 0; }
.restaurants-scenario button { width: max-content; max-width: 100%; padding: 0; border: 0; background: transparent; color: var(--color-horizon-blue); font-weight: 700; text-decoration: underline; }

.restaurants-specialty { background: var(--color-paper-white); }
.restaurants-specialty__head { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: var(--space-6); align-items: start; }
.restaurants-specialty__intro { max-width: 45rem; }
.restaurants-specialty__code { color: var(--color-pale-steel); font-family: var(--font-heading); font-size: clamp(5rem, 11vw, 10rem); font-weight: 600; line-height: .8; text-align: right; }
.restaurants-disclosures { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 3.5fr) minmax(0, 3.5fr); gap: var(--space-6); margin-top: var(--space-8); }
.restaurants-disclosures > * { min-width: 0; }
.restaurants-disclosure { border: 1px solid var(--border-technical); background: var(--color-pale-steel); }
.restaurants-disclosure summary { display: flex; min-height: 2.75rem; align-items: center; gap: var(--space-3); padding: var(--space-6); font-weight: 700; list-style: none; }
.restaurants-disclosure summary::-webkit-details-marker { display: none; }
.restaurants-disclosure summary::after { margin-left: auto; content: "→"; transition: transform var(--transition-fast); }
.restaurants-disclosure[open] summary::after { transform: rotate(90deg); }
.restaurants-disclosure__content { padding: 0 var(--space-6) var(--space-6); }
.restaurants-disclosure__content p { max-width: 35rem; margin: 0; }
.restaurants-specialty__tip { max-width: 42rem; margin-top: var(--space-8); padding-left: var(--space-6); border-left: 2px solid var(--color-copper); }

.restaurants-buffet { background: var(--color-pale-steel); }
.restaurants-buffet__grid { display: grid; grid-template-columns: minmax(0, 8fr) minmax(17.5rem, 4fr); gap: var(--space-8); align-items: start; }
.restaurants-buffet__media { margin: 0; }
.restaurants-buffet__media img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.restaurants-buffet__media figcaption { margin: 0; padding: var(--space-3) var(--space-4); background: var(--color-paper-white); }
.restaurants-buffet__copy { max-width: 25rem; }
.restaurants-plan-scan { display: flex; flex-direction: column; gap: var(--space-3); margin-top: var(--space-6); padding: var(--space-6); }
.restaurants-plan-scan > * { margin: 0; }
.restaurants-plan-scan ul { padding-left: 1.1rem; }
.restaurants-casual { max-width: 40.625rem; margin-top: var(--space-12); }

.restaurants-coffee__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 2fr) minmax(0, 5fr); gap: var(--space-6); align-items: start; }
.restaurants-coffee__block { min-width: 0; max-width: 31.25rem; padding: var(--space-6); }
.restaurants-coffee__block--bar { justify-self: end; background: var(--color-pale-steel); }
.restaurants-coffee__route { min-width: 0; min-height: 100%; border-left: 1px solid var(--color-line-blue); }
.restaurants-coffee__moments { padding-left: 1.2rem; }
.restaurants-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-6); margin-top: var(--space-8); }
.restaurants-step { min-width: 0; padding-top: var(--space-4); border-top: 1px solid var(--color-line-blue); }
.restaurants-step > * { margin: 0; }
.restaurants-step strong { display: block; color: var(--color-copper-dark); font-size: var(--font-size-caption); letter-spacing: .1em; }

.restaurants-evening { background: var(--color-atlantic-navy); color: var(--color-frosted-white); }
.restaurants-evening :is(h2, h3) { color: var(--color-frosted-white); }
.restaurants-evening .restaurants-kicker { color: var(--color-copper); }
.restaurants-evening__grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(17.5rem, 4fr) minmax(0, 2fr); gap: var(--space-8); align-items: start; }
.restaurants-evening__copy { max-width: 38.75rem; border-top: 2px solid var(--color-copper); padding-top: var(--space-6); }
.restaurants-evening__side { display: flex; flex-direction: column; gap: var(--space-6); }
.restaurants-evening__side > * { min-width: 0; }
.restaurants-evening__code { color: rgba(184,117,75,.5); font-family: var(--font-heading); font-size: 5rem; line-height: 1; text-align: right; }
.restaurants-evening-route { display: grid; grid-template-columns: 1fr; gap: var(--space-3); }
.restaurants-evening-route__item { padding: var(--space-4); border: 1px solid rgba(184,117,75,.68); }
.restaurants-evening-route__item strong { display: block; color: var(--color-copper); font-size: var(--font-size-caption); letter-spacing: .1em; text-transform: uppercase; }
.restaurants-evening-route__item p { margin: var(--space-2) 0 0; font-size: .95rem; }
.restaurants-rules { padding: var(--space-6); border-left: 2px solid var(--color-copper); background: rgba(255,255,255,.05); }
.restaurants-rules p { margin-bottom: 0; }

.restaurants-room__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(20rem, 5fr); gap: var(--space-8); align-items: start; }
.restaurants-room__copy { max-width: 42.5rem; }
.restaurants-room__copy p { max-width: 41.25rem; }
.restaurants-room__practical { width: min(100%, 20rem); margin-top: var(--space-6); padding: var(--space-6); }
.restaurants-room__practical ul { padding-left: 1.1rem; }
.restaurants-room__scenarios { display: flex; flex-direction: column; gap: var(--space-4); }
.restaurants-room__scenario { padding: var(--space-6); border: 1px solid var(--border-technical); background: var(--color-paper-white); }
.restaurants-room__scenario > * { margin: 0; }
.restaurants-room__scenario p { margin-top: var(--space-3); }

.restaurants-check { background: var(--color-paper-white); }
.restaurants-check__head { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-6); align-items: start; }
.restaurants-check__intro { max-width: 43.75rem; border-top: 2px solid var(--color-copper); padding-top: var(--space-4); }
.restaurants-check__code { color: var(--color-pale-steel); font-size: clamp(2rem, 4vw, 4rem); font-weight: 700; letter-spacing: .06em; text-align: right; }
.restaurants-sources { margin-top: var(--space-8); }
.restaurants-sources td { color: var(--color-muted-steel); }
.restaurants-checklist { width: min(100%, 35rem); margin-top: var(--space-8); padding: var(--space-6); border: 1px solid var(--border-technical); background: var(--color-frosted-white); }
.restaurants-checklist fieldset { display: flex; flex-direction: column; gap: var(--space-2); min-width: 0; margin: 0; padding: 0; border: 0; }
.restaurants-checklist legend { margin-bottom: var(--space-3); color: var(--color-navy-ink); font-family: var(--font-heading); font-size: 1.5rem; font-weight: 600; }
.restaurants-checklist label { display: flex; min-height: 2.75rem; align-items: center; gap: var(--space-3); padding-block: var(--space-2); }
.restaurants-checklist button { align-self: flex-start; margin-top: var(--space-3); }

.restaurants-next { padding-bottom: var(--space-24) !important; }
.restaurants-next__summary { max-width: 38.75rem; margin-inline: auto; text-align: center; }
.restaurants-next__summary p { max-width: 38.75rem; }
.restaurants-next__rule { width: 5rem; height: 2px; margin: var(--space-6) auto; background: var(--color-copper); }
.restaurants-next__links { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 4fr) minmax(0, 3fr); gap: var(--space-6); margin-top: var(--space-8); }
.restaurants-next__links > * { min-width: 0; }
.restaurants-next-link { display: flex; min-height: 11rem; flex-direction: column; justify-content: space-between; gap: var(--space-4); padding: var(--space-6); border: 1px solid var(--border-technical); background: var(--color-paper-white); color: var(--color-navy-ink); text-decoration: none; transition: border-color var(--transition-fast), transform var(--transition-fast); }
.restaurants-next-link:hover { border-color: var(--color-copper); color: var(--color-navy-ink); transform: translateY(-2px); }
.restaurants-next-link h3,
.restaurants-next-link p { margin: 0; }
.restaurants-next-link p { color: var(--color-muted-steel); }

@media (max-width: 68.6875rem) {
  .restaurants-hero__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .restaurants-hero__copy { margin-bottom: 0; }
  .restaurants-hero__media img { height: 29rem; }
  .restaurants-route { grid-template-columns: repeat(2, minmax(13.125rem, 1fr)); }
  .restaurants-route::before { display: none; }
  .restaurants-route__node:nth-child(even) { transform: none; }
  .restaurants-disclosures { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .restaurants-disclosures > :first-child { grid-column: 1 / -1; }
}

@media (max-width: 56.1875rem) {
  .restaurants-main-dining__layout,
  .restaurants-buffet__grid,
  .restaurants-room__grid,
  .restaurants-evening__grid { grid-template-columns: minmax(0, 1fr); }
  .restaurants-main-dining__media,
  .restaurants-buffet__media { max-width: 43.75rem; }
  .restaurants-buffet__copy { max-width: 40rem; }
  .restaurants-evening__code { display: none; }
  .restaurants-scenarios { grid-template-columns: minmax(0, 1fr); }
  .restaurants-coffee__grid { grid-template-columns: minmax(0, 1fr); }
  .restaurants-coffee__block--bar { justify-self: stretch; max-width: 31.25rem; }
  .restaurants-coffee__route { min-height: 3rem; border-top: 1px solid var(--color-line-blue); border-left: 0; }
  .restaurants-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 53.6875rem) {
  .restaurants-specialty__head,
  .restaurants-check__head { grid-template-columns: minmax(0, 1fr); }
  .restaurants-specialty__code,
  .restaurants-check__code { display: none; }
  .restaurants-disclosures { grid-template-columns: minmax(0, 1fr); }
  .restaurants-disclosures > :first-child { grid-column: auto; }
}

@media (max-width: 48.6875rem) {
  .restaurants-next__links { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 47.9375rem) {
  [data-restauracje-page] section { padding-block: var(--space-12); }
  .restaurants-hero { padding-top: var(--space-8) !important; }
  .restaurants-hero__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); }
  .restaurants-hero__copy { max-width: none; padding: var(--space-4); }
  .restaurants-hero__copy h1 { font-size: clamp(2.5rem, 10vw, 2.75rem); }
  .restaurants-hero__media { order: 2; }
  .restaurants-hero__media img { height: auto; aspect-ratio: 4 / 3; }
  .restaurants-route { grid-template-columns: minmax(0, 1fr); gap: var(--space-4); padding-top: 0; padding-left: var(--space-6); }
  .restaurants-route::before { display: block; top: 0; bottom: 0; left: .72rem; width: 1px; height: auto; }
  .restaurants-route__node { padding: var(--space-4); }
  .restaurants-filterbar { flex-wrap: nowrap; overflow-x: auto; padding-bottom: var(--space-2); }
  .restaurants-filterbar button { flex: 0 0 auto; }
  .restaurants-main-dining__layout,
  .restaurants-buffet__grid,
  .restaurants-room__grid,
  .restaurants-evening__grid { gap: var(--space-6); }
  .restaurants-checkpoint,
  .restaurants-room__practical { width: 100%; }
  .restaurants-main-dining__media,
  .restaurants-buffet__media { max-width: none; }
  .restaurants-scenarios,
  .restaurants-steps { grid-template-columns: minmax(0, 1fr); gap: var(--space-4); }
  .restaurants-specialty__tip { padding-left: var(--space-4); }
  .restaurants-disclosure summary { min-height: 2.75rem; padding: var(--space-4); }
  .restaurants-disclosure__content { padding: 0 var(--space-4) var(--space-4); }
  .restaurants-coffee__block { max-width: none; padding: var(--space-4); }
  .restaurants-evening__side { gap: var(--space-4); }
  .restaurants-checklist { width: 100%; padding: var(--space-4); }
  .restaurants-sources thead { display: none; }
  .restaurants-sources,
  .restaurants-sources tbody,
  .restaurants-sources tr,
  .restaurants-sources th,
  .restaurants-sources td { display: block; width: 100%; }
  .restaurants-sources tr { padding: var(--space-4) 0; border-bottom: 1px solid var(--border-technical); }
  .restaurants-sources th,
  .restaurants-sources td { padding: var(--space-1) 0; border: 0; }
  .restaurants-sources td::before { display: block; color: var(--color-navy-ink); font-size: var(--font-size-caption); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; content: attr(data-label); }
  .restaurants-next__summary { margin-inline: 0; text-align: left; }
  .restaurants-next__rule { margin-inline: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .restaurants-route__node,
  .restaurants-next-link,
  .restaurants-disclosure summary::after { transition: none; }
}
