.page-home .home-hero__media img { object-position: 20% center; }
.page-home .home-reception .editorial-split__media img { object-position: 72% center; }
.page-wesela .page-hero__media img { object-position: center 56%; }
.page-miejsce .page-hero__media img { object-position: 20% center; }
.page-noclegi .page-hero__media img { object-position: 50% 62%; }
.page-eventy .page-hero__media img { object-position: center 58%; }

.contact-proposal {
  display: grid;
  background: var(--paper-100);
}

.contact-proposal__story {
  display: grid;
  position: relative;
  min-height: 0;
  overflow: hidden;
  color: var(--paper-100);
  background: var(--forest-950);
}

.contact-proposal__story::after {
  position: absolute;
  inset: 0;
  background: rgb(10 21 16 / .57);
  content: "";
}

.contact-proposal__media,
.contact-proposal__media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.contact-proposal__media img { object-fit: cover; object-position: 52% center; }

.contact-proposal__copy {
  z-index: 1;
  align-self: center;
  width: min(100%, 47rem);
  padding: var(--space-l) var(--space-m);
}

.contact-proposal__copy h1 { max-width: 22ch; }

.contact-proposal__copy .hero-lead { max-width: 34rem; }

.contact-direct .contact-list {
  max-width: 38rem;
  margin-top: var(--space-l);
}

.contact-direct .contact-list li {
  display: grid;
  grid-template-columns: 6rem minmax(0, 1fr);
  gap: .25rem var(--space-s);
  align-items: baseline;
}

.contact-direct .contact-list strong {
  color: var(--muted);
  font-size: var(--step--1);
}

.contact-direct address { font-style: normal; }

.contact-map {
  grid-column: 2;
  color: var(--muted);
  font-size: var(--step--1);
}

.contact-proposal__action-panel {
  display: grid;
  align-items: center;
  padding: var(--space-m);
}

.contact-direct {
  width: min(100%, 35rem);
  margin-inline: auto;
}

.contact-direct h2 {
  max-width: 16ch;
  margin-bottom: var(--space-m);
}

.contact-direct > p {
  max-width: 32rem;
  color: var(--muted);
}

.contact-actions {
  display: grid;
  gap: var(--space-s);
  margin-block: var(--space-m);
}

.contact-actions .button {
  width: 100%;
  min-height: 3.3rem;
}

.contact-actions .button:not(.button--primary) {
  color: var(--ink);
  background: transparent;
}

.page-hero__media picture,
.reception-story__media picture,
.place-estate__aerial picture,
.place-landmarks picture,
.stay-together picture,
.event-settings picture {
  display: block;
  height: 100%;
}

.ceremony-offer figure,
.reception-story figure,
.place-estate figure,
.place-landmarks figure,
.stay-together figure,
.stay-gallery figure,
.event-settings figure { margin: 0; }

/* Wesela — reception story inspired by concept 03. Hero follows the shared forest rule. */
.ceremony-offer {
  display: grid;
  gap: var(--space-l);
}

.ceremony-offer__copy { max-width: 36rem; }

.ceremony-offer__linden {
  width: min(76%, 30rem);
  justify-self: end;
}

.ceremony-offer__linden img {
  aspect-ratio: 2 / 3;
  object-fit: cover;
}

.ceremony-offer__pond img {
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

.ceremony-offer figcaption {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: .25rem var(--space-s);
  padding-top: var(--space-xs);
  color: var(--muted);
  font-size: var(--step--1);
}

.ceremony-offer figcaption span {
  color: var(--ink);
  font: 500 var(--step-1)/1.15 var(--font-display);
}

.ceremony-offer figcaption small { font-size: inherit; }

.wedding-reception {
  color: var(--paper-100);
  background: var(--forest-900);
}

.reception-story {
  display: grid;
  gap: var(--space-l);
  align-items: center;
}

.reception-story__copy { max-width: 37rem; }
.reception-story__copy > p:last-child { color: var(--paper-200); }

.wedding-reception .editorial-label { color: var(--brick-on-dark); }

.reception-story__media img {
  height: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.wedding-freedom { background: var(--paper-200); }
.wedding-freedom .editorial-label,
.stay-together .editorial-label { color: var(--brick-on-paper-200); }

.freedom-grid {
  display: grid;
  gap: var(--space-l);
}

.freedom-grid article {
  padding-top: var(--space-s);
  border-top: 1px solid var(--moss-500);
}

.freedom-grid h2 { margin-bottom: var(--space-s); }
.wedding-visit {
  padding-block: var(--space-l);
  border-block: 1px solid var(--moss-500);
}

.wedding-visit__grid {
  display: grid;
  gap: var(--space-m);
  align-items: center;
}

.wedding-visit__grid h2 {
  max-width: 32ch;
  margin-bottom: var(--space-s);
  font-size: var(--step-2);
}

.wedding-visit__grid p {
  max-width: 43rem;
  margin: 0;
  color: var(--muted);
}

.wedding-visit__grid .button { width: 100%; }
.wedding-process .section-intro h2 { max-width: 26ch; }
.wedding-faq .faq-list { max-width: 55rem; }

/* Miejsce — estate scale, landmarks and a deliberate map link. */
.place-estate__grid,
.place-landmarks__grid,
.stay-together__grid,
.event-settings__grid {
  display: grid;
  gap: var(--space-l);
}

.place-estate__copy { max-width: 38rem; }

.place-estate__aerial img {
  height: 100%;
  min-height: 21rem;
  object-fit: cover;
}

.place-landmarks__copy { max-width: 34rem; }

.place-landmarks__linden {
  width: min(78%, 31rem);
  justify-self: end;
}

.place-landmarks__linden img {
  height: 100%;
  aspect-ratio: 2 / 3;
  object-fit: cover;
}

.place-landmarks__pond img {
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

.place-landmarks__pond figcaption {
  padding-top: var(--space-xs);
  color: var(--muted);
  font-size: var(--step--1);
}

.map-action { margin-top: var(--space-m); font-weight: 700; }
.map-action a { text-decoration-color: var(--brick); }

/* Noclegi — actual rooms paired with practical lodging information. */
.stay-together { background: var(--paper-200); }
.stay-together__copy { max-width: 38rem; }

.stay-together__interior {
  width: min(78%, 30rem);
  justify-self: end;
}

.stay-together__interior img {
  height: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

.stay-together__estate img {
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

.stay-practical__grid {
  display: grid;
  gap: var(--space-l);
}

.practical-list {
  padding: 0;
  margin: 0;
  list-style: none;
  border-top: 1px solid var(--moss-500);
}

.practical-list li {
  display: grid;
  gap: .3rem;
  padding-block: var(--space-s);
  border-bottom: 1px solid var(--moss-500);
}

.practical-list strong { font: 500 var(--step-1)/1.15 var(--font-display); }
.practical-list span { color: var(--muted); }

.stay-gallery { background: var(--forest-900); color: var(--paper-100); }
.stay-gallery .section-intro p { color: var(--paper-200); }

.stay-gallery__strip {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-s);
  align-items: start;
}

.stay-gallery__strip figure:last-child { grid-column: 1 / -1; }

.stay-gallery__image {
  height: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

.stay-gallery__image--bathroom { object-position: center bottom; }

/* Eventy — quieter conversion and a format-first hierarchy. */

.event-format-list {
  display: grid;
  padding: 0;
  margin: 0;
  list-style: none;
  border-top: 1px solid var(--moss-500);
}

.event-format-list li {
  padding-block: var(--space-m);
  border-bottom: 1px solid var(--moss-500);
}

.event-format-list strong { font: 500 var(--step-2)/1.15 var(--font-display); }
.event-settings__copy { max-width: 37rem; }

.event-settings__landscape img {
  height: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.event-settings__detail {
  width: min(72%, 28rem);
  justify-self: end;
}

.event-settings__detail img {
  height: 100%;
  aspect-ratio: 2 / 3;
  object-fit: cover;
}

@media (max-width: 47.99rem) {
  .page-home .home-hero__media {
    order: -1;
    aspect-ratio: 1.28 / 1;
  }
  .page-home .home-hero__media img { object-position: left center; }
  .page-home .home-hero__copy {
    min-height: 29rem;
    padding-inline: var(--space-m);
  }
  .page-home .hero-actions { flex-direction: column; }
  .page-home .hero-actions .button { width: 100%; }
  .page-home .home-ceremony__heading { padding-block: var(--space-l); }
  .page-home .ceremony-story__item--pond { margin-inline: calc(var(--space-m) * -1); }
  .page-home .ceremony-story__item--pond figcaption { padding-inline: var(--space-m); }
  .page-wesela .offer-hero .page-hero__media,
  .page-noclegi .stay-hero .page-hero__media,
  .page-eventy .event-hero .page-hero__media { order: -1; }
  .page-wesela .offer-hero .page-hero__copy,
  .page-miejsce .place-hero .page-hero__copy,
  .page-noclegi .stay-hero .page-hero__copy,
  .page-eventy .event-hero .page-hero__copy { padding-block: var(--space-l); }
  .wedding-process .step-list li { grid-template-columns: 2.5rem 1fr; }
}

@media (min-width: 48rem) {
  .page-home .home-reception .editorial-split { grid-template-columns: minmax(20rem, .9fr) minmax(0, 1.1fr); }
  .page-home .home-stay .editorial-split { grid-template-columns: minmax(0, .85fr) minmax(20rem, 1.15fr); }
  .ceremony-offer {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    align-items: start;
  }
  .ceremony-offer__copy { grid-column: 1 / 6; grid-row: 1; padding-top: var(--space-l); }
  .ceremony-offer__linden { grid-column: 2 / 6; grid-row: 2; width: 100%; margin-top: calc(var(--space-xl) * -1); }
  .ceremony-offer__pond { grid-column: 6 / 13; grid-row: 1 / span 2; margin-top: var(--space-xl); }
  .reception-story { grid-template-columns: minmax(20rem, .78fr) minmax(0, 1.22fr); }
  .reception-story__media { min-height: 31rem; }
  .freedom-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .freedom-grid article { padding-right: var(--space-l); }
  .freedom-grid article + article { padding-left: var(--space-l); border-left: 1px solid var(--moss-500); }
  .wedding-visit__grid { grid-template-columns: minmax(0, 1fr) minmax(18rem, .42fr); }
  .place-estate__grid { grid-template-columns: minmax(20rem, .72fr) minmax(0, 1.28fr); align-items: center; }
  .place-landmarks__grid { grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: start; }
  .place-landmarks__copy { grid-column: 1 / 6; grid-row: 1; padding-top: var(--space-l); }
  .place-landmarks__linden { grid-column: 2 / 6; grid-row: 2; width: 100%; margin-top: calc(var(--space-l) * -1); }
  .place-landmarks__pond { grid-column: 6 / 13; grid-row: 1 / span 2; margin-top: var(--space-xl); }
  .stay-together__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
  .stay-together__copy { grid-column: 1; grid-row: 1 / span 2; padding-top: var(--space-s); }
  .stay-together__interior { grid-column: 2; grid-row: 1; width: 100%; }
  .stay-together__estate { grid-column: 2; grid-row: 2; margin-top: 0; }
  .stay-practical__grid { grid-template-columns: minmax(0, 1fr) minmax(24rem, .8fr); }
  .stay-gallery__strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .stay-gallery__strip figure:last-child { grid-column: auto; }
  .event-format-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .event-format-list li:nth-child(odd) { padding-right: var(--space-m); border-right: 1px solid var(--moss-500); }
  .event-format-list li:nth-child(even) { padding-left: var(--space-m); }
  .event-settings__grid { grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: start; }
  .event-settings__copy { grid-column: 1 / 6; grid-row: 1; padding-top: var(--space-l); }
  .event-settings__landscape { grid-column: 6 / 13; grid-row: 1 / span 2; }
  .event-settings__detail { grid-column: 2 / 5; grid-row: 2; width: 100%; margin-top: calc(var(--space-l) * -1); }
}

@media (min-width: 68rem) {
  .contact-proposal {
    grid-template-columns: minmax(0, 1.55fr) minmax(28rem, 1fr);
    min-height: 40rem;
  }
  .contact-proposal__story { min-height: 40rem; }
  .contact-proposal__copy {
    width: 100%;
    padding-block: var(--space-l);
    padding-inline: max(var(--space-xl), calc((100vw - var(--content)) / 2)) var(--space-l);
  }
  .contact-proposal__copy h1 { max-width: 22ch; }
  .contact-proposal__action-panel {
    padding-block: var(--space-l);
    padding-inline: var(--space-xl);
  }
}

.stay-gallery__strip figcaption { padding-top: var(--space-xs); color: var(--paper-200); font-size: var(--step--1); }
@media (max-width: 39.999rem) {
  .contact-proposal__copy { padding-block: var(--space-m); }
  .contact-proposal__copy .hero-lead { margin-top: var(--space-s); }
}
