.attractions-page {
  background: var(--color-sea-salt);
}

.attractions-page .section {
  position: relative;
}

.attractions-hero__top,
.attractions-water__layout,
.attractions-horizon__layout,
.attractions-quiet__grid,
.attractions-casino__layout {
  display: grid;
  min-width: 0;
  gap: var(--space-6);
}

.attractions-hero__top {
  grid-template-columns: minmax(0, 7fr) minmax(15rem, 3fr) minmax(0, 2fr);
  align-items: end;
  margin-block-end: var(--space-6);
}

.attractions-hero__copy {
  grid-column: 1 / span 1;
  min-width: 0;
  max-width: 45rem;
}

.attractions-hero__copy .intro {
  max-width: 42rem;
}

.attractions-route-note {
  grid-column: 2 / span 1;
  min-width: 0;
  border-inline-start: var(--rule-turquoise);
  background: var(--color-pale-lemon);
  padding: var(--space-4);
}

.attractions-route-note p:last-child,
.attractions-choice-box p:last-child,
.attractions-facts__note,
.attractions-casino__facts p:last-child {
  margin-block-end: 0;
}

.attractions-hero__figure {
  width: 100%;
  margin: 0;
}

.attractions-hero__figure img {
  width: 100%;
  max-width: 100%;
  aspect-ratio: 2.4 / 1;
  border-radius: var(--radius-image);
  object-fit: cover;
  object-position: center;
}

.attractions-map__intro,
.attractions-quiet__intro,
.attractions-facts__intro,
.attractions-reading__intro {
  width: min(100%, 43.75rem);
  margin-block-end: var(--space-6);
}

.attractions-map__grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  min-width: 0;
  gap: var(--space-5);
}

.attractions-map__grid > * {
  min-width: 0;
}

.attractions-postcard {
  display: flex;
  min-width: 0;
  min-height: 17rem;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-3);
  border: var(--border);
  border-radius: var(--radius-card);
  background: var(--color-sea-salt);
  color: var(--color-deep-ocean);
  padding: var(--space-5);
  text-decoration: none;
  transition: border-color var(--transition-fast), background-color var(--transition-fast), transform var(--transition-fast);
}

.attractions-postcard:nth-child(-n + 3) {
  grid-column: span 2;
}

.attractions-postcard:nth-child(n + 4) {
  grid-column: span 3;
}

.attractions-postcard h3,
.attractions-postcard p,
.attractions-rest-card h3,
.attractions-rest-card p,
.attractions-family-card h3,
.attractions-family-card p,
.attractions-reading-card h3,
.attractions-reading-card p,
.attractions-adults-panel h3,
.attractions-adults-panel p {
  margin: 0;
}

.attractions-postcard:hover {
  border-color: var(--color-turquoise);
  background: var(--color-pale-lemon);
  color: var(--color-deep-ocean);
  transform: translateY(-2px);
}

.attractions-postcard--water .label { color: var(--color-mediterranean-blue); }
.attractions-postcard--balance { background: var(--color-sandy-beige); }
.attractions-postcard--view { border-top: var(--rule-turquoise); }
.attractions-postcard--family .label { color: #b95546; }
.attractions-postcard--space { background: var(--color-pale-lemon); }

.attractions-water__layout {
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  align-items: start;
}

.attractions-water__copy {
  grid-column: 1;
  min-width: 0;
  max-width: 30rem;
}

.attractions-water__figure {
  grid-column: 2;
  min-width: 0;
  margin: 0;
}

.attractions-water__figure img,
.attractions-horizon__figure img {
  width: 100%;
  max-width: 100%;
  border-radius: var(--radius-image);
  object-fit: cover;
}

.attractions-water__figure img {
  aspect-ratio: 4 / 3;
  object-position: center;
}

.attractions-water__copy h3 {
  margin-block-start: var(--space-6);
}

.attractions-checklist {
  margin-block-end: var(--space-5);
}

.attractions-choice-box {
  border: 1px solid var(--color-warm-amber);
  border-radius: var(--radius-card);
  background: var(--color-pale-lemon);
  padding: var(--space-4);
}

.attractions-rest__intro,
.attractions-family__intro,
.attractions-closing__copy {
  width: min(100%, 42.5rem);
  margin-inline: auto;
  text-align: center;
}

.attractions-rest__intro {
  margin-block-end: var(--space-6);
}

.attractions-rest__intro p,
.attractions-family__intro p {
  text-align: left;
}

.attractions-rest__grid,
.attractions-family__grid,
.attractions-reading__grid {
  display: grid;
  min-width: 0;
  gap: var(--space-5);
}

.attractions-rest__grid,
.attractions-family__grid,
.attractions-reading__grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.attractions-rest__grid > *,
.attractions-family__grid > *,
.attractions-reading__grid > * {
  min-width: 0;
}

.attractions-rest-card,
.attractions-family-card,
.attractions-reading-card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-3);
  border: var(--border);
  border-radius: var(--radius-card);
  background: var(--color-sea-salt);
  padding: var(--space-5);
}

.attractions-rest-card--spa { border-top: var(--rule-brass); }
.attractions-rest-card--gym { border-top: 2px solid var(--color-mediterranean-blue); }
.attractions-rest-card--calm { background: var(--color-sandy-beige); }

.attractions-horizon {
  background: var(--color-sea-salt);
}

.attractions-horizon__layout {
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  align-items: stretch;
}

.attractions-horizon__figure,
.attractions-horizon__copy {
  min-width: 0;
  margin: 0;
}

.attractions-horizon__figure img {
  height: 100%;
  min-height: 31rem;
  aspect-ratio: 3 / 2;
  object-position: center;
}

.attractions-horizon__copy {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-4);
  background: var(--color-sandy-beige);
  padding: var(--space-7);
}

.attractions-horizon__copy h2,
.attractions-horizon__copy h3,
.attractions-horizon__copy p,
.attractions-horizon__copy blockquote {
  margin: 0;
}

.attractions-horizon__copy blockquote {
  margin-block-start: var(--space-2);
}

.attractions-quiet__grid {
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  align-items: stretch;
}

.attractions-adults-panel,
.attractions-verify-panel {
  min-width: 0;
  padding: var(--space-6);
}

.attractions-adults-panel {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-3);
  border-top: var(--rule-brass);
  background: var(--color-deep-ocean);
  color: var(--color-white);
}

.attractions-adults-panel h3,
.attractions-adults-panel .label { color: var(--color-white); }
.attractions-adults-panel .label { color: var(--color-pale-lemon); }

.attractions-verify-panel {
  border: var(--border);
  background: var(--color-sea-salt);
}

.attractions-verify-panel ol {
  margin-block-end: 0;
}

.attractions-family__intro {
  margin-block-end: var(--space-6);
}

.attractions-family-card:nth-child(1) .label { color: #b95546; }
.attractions-family-card:nth-child(2) .label { color: var(--color-mediterranean-blue); }
.attractions-family-card:nth-child(3) { border-top: var(--rule-turquoise); }

.attractions-facts__table {
  display: grid;
  min-width: 0;
  border-top: var(--border);
  border-inline: var(--border);
}

.attractions-facts__head,
.attractions-facts__row {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 4fr) minmax(0, 5fr);
  min-width: 0;
}

.attractions-facts__head > *,
.attractions-facts__row > * {
  min-width: 0;
  padding: var(--space-3) var(--space-4);
  border-bottom: var(--border);
}

.attractions-facts__head {
  background: var(--color-pale-lemon);
  font-size: var(--font-size-label);
  font-weight: var(--font-weight-bold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.attractions-facts__row strong { color: var(--color-mediterranean-blue); }
.attractions-facts__note { width: min(100%, 45rem); margin-block-start: var(--space-5); }
.attractions-facts__note .label { display: block; margin-block-end: var(--space-2); color: var(--color-subtle-brass); }

.attractions-casino__layout {
  grid-template-columns: minmax(0, 7fr) minmax(22.5rem, 5fr);
  align-items: start;
}

.attractions-casino__copy {
  min-width: 0;
  max-width: 43.125rem;
}

.attractions-casino__note {
  border-inline-start: var(--rule-brass);
  padding-inline-start: var(--space-4);
}

.attractions-casino__facts {
  min-width: 0;
  border: 1px solid var(--color-pale-lemon);
  border-radius: var(--radius-card);
  background: var(--color-warm-amber);
  color: var(--color-deep-ocean);
  padding: var(--space-5);
}

.attractions-casino__facts .label { color: var(--color-deep-ocean); }
.attractions-casino__facts dl { margin: var(--space-4) 0; }
.attractions-casino__facts dl > div { padding-block: var(--space-2); border-bottom: 1px solid rgba(18, 59, 74, 0.28); }
.attractions-casino__facts dt { font-weight: var(--font-weight-bold); }
.attractions-casino__facts dd { margin: 0; }

.attractions-reading__grid { align-items: stretch; }
.attractions-reading-card .button { margin-block-start: auto; }
.attractions-reading-card__links { display: flex; min-width: 0; flex-direction: column; align-items: stretch; gap: var(--space-3); margin-block-start: auto; }

.attractions-closing__copy { display: flex; flex-direction: column; align-items: center; gap: var(--space-4); width: min(100%, 47.5rem); }
.attractions-closing__copy h2,
.attractions-closing__copy p { margin: 0; }
.attractions-closing__copy > p { text-align: left; }
.attractions-closing__note { width: 100%; border-top: 2px solid var(--color-soft-coral); padding-top: var(--space-4); text-align: left; }

@media (max-width: 61.25rem) {
  .attractions-map__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .attractions-postcard:nth-child(n) { grid-column: span 1; }
  .attractions-rest__grid,
  .attractions-family__grid,
  .attractions-reading__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .attractions-rest__grid > :last-child,
  .attractions-family__grid > :last-child,
  .attractions-reading__grid > :last-child { grid-column: span 2; }
}

@media (max-width: 56.25rem) {
  .attractions-hero__top,
  .attractions-water__layout,
  .attractions-horizon__layout,
  .attractions-quiet__grid,
  .attractions-casino__layout { grid-template-columns: minmax(0, 1fr); }

  .attractions-hero__copy,
  .attractions-route-note,
  .attractions-water__copy,
  .attractions-water__figure,
  .attractions-horizon__figure,
  .attractions-horizon__copy { grid-column: 1; }

  .attractions-hero__top { gap: var(--space-5); }
  .attractions-route-note { width: min(100%, 35rem); }
  .attractions-water__figure { order: -1; }
  .attractions-water__copy { max-width: 42rem; }
  .attractions-horizon__figure img { min-height: 0; height: auto; }
  .attractions-horizon__copy { padding: var(--space-5); }
  .attractions-casino__copy { max-width: 43rem; }
}

@media (max-width: 50rem) {
  .attractions-facts__table { gap: var(--space-4); border: 0; }
  .attractions-facts__head { display: none; }
  .attractions-facts__row { grid-template-columns: minmax(0, 1fr); gap: var(--space-2); border: var(--border); border-radius: var(--radius-card); padding: var(--space-4); }
  .attractions-facts__row > * { border: 0; padding: 0; }
  .attractions-facts__row strong::before { content: "Obszar · "; color: var(--color-subtle-brass); font-size: var(--font-size-label); letter-spacing: 0.08em; text-transform: uppercase; }
}

@media (max-width: 45rem) {
  .attractions-map__grid,
  .attractions-rest__grid,
  .attractions-family__grid,
  .attractions-reading__grid { grid-template-columns: minmax(0, 1fr); }

  .attractions-rest__grid > :last-child,
  .attractions-family__grid > :last-child,
  .attractions-reading__grid > :last-child { grid-column: span 1; }

  .attractions-postcard,
  .attractions-rest-card,
  .attractions-family-card,
  .attractions-reading-card { min-height: 0; padding: var(--space-5); }

  .attractions-rest__intro,
  .attractions-family__intro { text-align: center; }
  .attractions-hero__figure img { aspect-ratio: 4 / 3; }
}

@media (max-width: 35rem) {
  .attractions-horizon__copy,
  .attractions-adults-panel,
  .attractions-verify-panel,
  .attractions-casino__facts { padding: var(--space-5); }
  .attractions-closing__copy { align-items: stretch; }
  .attractions-closing__copy .button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .attractions-postcard:hover { transform: none; }
}
