/* Svadobný článok: spoločné farby, typografia, menu a päta zo styles.css. */
.wedding-page ::selection { background: #ead8c7; color: var(--ink); }
.wedding-page main { overflow-wrap: break-word; }

.wedding-page .wedding-story {
  --wedding-reading-width: 700px;
  width: min(1020px, calc(100% - 64px));
  margin-inline: auto;
  padding-block: 40px 80px;
}

.wedding-page .wedding-story :where(h1, h2, h3, p, ul, ol, blockquote) {
  max-width: var(--wedding-reading-width);
  margin-inline: auto;
}

.wedding-page .wedding-story h1 {
  margin-block: 48px 28px;
  color: var(--ink);
  font-size: clamp(2.25rem, 4.2vw, 3.5rem);
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: -.035em;
  text-wrap: balance;
}

.wedding-page .wedding-story h2 {
  margin-block: clamp(52px, 6vw, 80px) 24px;
  color: var(--ink);
  font-size: clamp(1.85rem, 2.7vw, 2.4rem);
  line-height: 1.23;
  text-wrap: balance;
}

.wedding-page .wedding-story h3 {
  margin-block: 36px 18px;
  color: var(--ink);
  font-size: 1.4rem;
  line-height: 1.35;
  letter-spacing: -.02em;
}

.wedding-page .wedding-story p {
  margin-block: 18px;
  font-size: 1rem;
  line-height: 1.75;
}

.wedding-page .wedding-story :where(ul, ol) {
  margin-block: 24px 32px;
  padding-left: 24px;
  color: var(--body);
  line-height: 1.75;
}

.wedding-page .wedding-story li + li { margin-top: 8px; }
.wedding-page .wedding-story li::marker { color: var(--accent); }
.wedding-page .wedding-story strong { color: var(--ink); }

.wedding-page .wedding-story a:not(.contact-button) {
  color: var(--accent);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}
.wedding-page .wedding-story a:not(.contact-button):hover { color: var(--accent-dark); }

/* Pôvodné fotografie zostávajú v toku dokumentu, bez orezu a bez mriežky. */
.wedding-page .wedding-story :where(picture, figure, .wedding-photo) {
  display: block;
  max-width: 100%;
  margin-inline: auto;
}
.wedding-page .wedding-story :where(picture, figure, .wedding-photo) { margin-block: 18px; }
.wedding-page .wedding-story picture > img { width: 100%; height: auto; }
.wedding-page .wedding-story img { max-width: 100%; height: auto; }
.wedding-page .wedding-story p:has(picture, img) { max-width: 100%; }
.wedding-page .wedding-story :where(p, figure, .wedding-photo) > picture { margin: 0; }
.wedding-page .wedding-story > :where(picture, figure, .wedding-photo):first-child { margin-top: 0; }
.wedding-page .wedding-story figcaption {
  max-width: var(--wedding-reading-width);
  margin: 12px auto 0;
  color: var(--body);
  font-size: .875rem;
  line-height: 1.65;
}

.wedding-page .wedding-story blockquote {
  margin-block: 32px;
  padding-left: 24px;
  border-left: 2px solid var(--accent);
  color: var(--ink);
}
.wedding-page .wedding-story hr {
  max-width: var(--wedding-reading-width);
  margin: 48px auto;
  border: 0;
  border-top: 1px solid #dcd6cf;
}

/* Voliteľná trieda patrí iba existujúcemu záverečnému CTA zo zdroja. */
.wedding-page .wedding-story .wedding-cta {
  margin-top: clamp(52px, 6vw, 80px);
  padding: clamp(28px, 4vw, 48px);
  background: var(--linen);
  text-align: center;
}
.wedding-page .wedding-story .wedding-cta h2 { margin-top: 0; }
/* Zachovanie pôvodného vzhľadu CTA po oprave H3 na H2. */
.wedding-page .wedding-story .wedding-cta .wedding-cta-title {
  margin-block: 36px 18px;
  font-size: 1.4rem;
  line-height: 1.35;
  letter-spacing: -.02em;
  text-wrap: wrap;
}
.wedding-page .wedding-story .wedding-cta > :last-child { margin-bottom: 0; }
.wedding-page .wedding-story .contact-button { color: white; }

/* Na širokom desktope rozšírime iba čítaciu oblasť; maximálna šírka fotografií ostáva 1020 px. */
@media (min-width: 1024px) {
  .wedding-page .wedding-story { --wedding-reading-width: 800px; }
}

@media (max-width: 767px) {
  .wedding-page .wedding-story {
    width: calc(100% - 40px);
    padding-block: 24px 52px;
  }
  .wedding-page .wedding-story h1 {
    margin-block: 32px 24px;
    font-size: clamp(2rem, 7.4vw, 2.6rem);
  }
  .wedding-page .wedding-story h2 { margin-block: 48px 22px; font-size: 1.8rem; }
  .wedding-page .wedding-story :where(picture, figure, .wedding-photo) { margin-block: 14px; }
  /* Nové figure zachovávajú 18 px pôvodných fotografických odsekov; hero má vlastný prvý blok. */
  .wedding-page .wedding-story > figure.wedding-photo:not(:first-child) { margin-block: 18px; }
  .wedding-page .wedding-story .wedding-cta { margin-top: 48px; padding: 28px 20px; }
}

@media (forced-colors: active) {
  .wedding-page .wedding-story li::marker { color: CanvasText; }
  .wedding-page .wedding-story blockquote { border-color: CanvasText; }
  .wedding-page .wedding-story a:not(.contact-button) { color: LinkText; }
  .wedding-page .wedding-story .wedding-cta { background: Canvas; }
}
