/* Mobile layout corrections; keep the desktop forest composition. */
.organic-footer { margin-top:0; }
.organic-gallery__head h2 { width:100%; max-width:none; font-size:clamp(34px,3.7vw,48px); overflow-wrap:normal; }
@media (max-width:700px) {
  .program { padding:76px 24px; }
  .program__intro h2 { font-size:clamp(36px,10vw,46px); line-height:1.08; text-wrap:balance; }
  .program .timeline { display:flex; flex-direction:column; min-height:0; gap:14px; margin:40px 0 0; }
  .program .event,.program .event:first-of-type,.program .event:nth-of-type(n) { display:block; align-self:flex-start; width:43%; min-height:116px; padding:12px 0; text-align:left; border:0; }
  .program .event:nth-of-type(even) { align-self:flex-end; text-align:right; }
  .program .event time { display:block; font-size:29px; line-height:1.1; }
  .program .event p { margin:10px 0 0; max-width:none; font-size:13px; }
  .program .event { opacity:1; color:#344331; }
  .program .event time { color:#65715b; }
  .program .event.is-current time { color:var(--organic-clay); }
  .program .event strong { font-size:21px; line-height:1.15; }
  .program .event__icon { display:none; }
  .program .event::before { display:none; }
  .program__thread { left:50%; top:auto; bottom:82px; width:44px; height:calc(100% - 340px); transform:translateX(-50%); }
  .dresscode .dresscode__text { width:100%; max-width:none; padding:64px 24px 36px; }
  .dresscode .dresscode__text h2 { font-size:clamp(32px,9vw,42px); line-height:1.13; max-width:none; white-space:normal; text-wrap:pretty; }
  .dresscode__image { clip-path:none; }
  .dresscode .palette { flex-wrap:wrap; gap:12px; }
  .organic-wishes.organic-wishes--slider { display:grid; grid-template-columns:minmax(0,1fr); padding:72px 24px; gap:36px; }
  .organic-wishes.organic-wishes--slider .organic-wishes__intro h2 { max-width:100%; font-size:clamp(32px,9vw,42px); line-height:1.1; overflow-wrap:normal; text-wrap:balance; }
  .organic-wishes__intro p { line-height:1.65; }
  .organic-wishes__stage { min-width:0; }
  .organic-contacts { grid-template-columns:minmax(0,1fr); padding:64px 24px; gap:32px; }
  .organic-contacts .organic-contacts__intro { padding:32px 24px; text-align:center; }
  .organic-contacts .organic-contacts__intro h2 { max-width:none; font-size:clamp(34px,9.5vw,44px); line-height:1.12; overflow-wrap:normal; word-break:normal; text-wrap:balance; }
  .organic-contacts__intro p,.organic-contacts__intro small { max-width:30ch; margin-inline:auto; }
  .organic-contacts__list a { padding:24px 16px; }
  .faq { padding:64px 24px; }
  .faq h2 { font-size:40px; line-height:1.12; }
  .faq-item button { gap:16px; padding-block:22px; }
  .faq-item p { padding-right:16px; }
  .organic-footer { padding:28px 24px; font-size:11px; line-height:1.65; letter-spacing:.08em; }
  .rsvp [data-ezeevent-consent] { text-transform:none; letter-spacing:normal; }
}

@media (max-width:700px) {
  .program .event:nth-of-type(odd) { align-items:flex-start; text-align:left; }
  .program .event:nth-of-type(even) { align-items:flex-end; text-align:right; }
  .program .event.is-current { transform:none!important; }
}

.program .timeline { position:relative; display:flex; flex-direction:column; gap:8px; min-height:0; }
.program .event:nth-of-type(n) { width:43%; min-height:130px; align-self:flex-start; padding:12px 0; align-items:flex-start; text-align:left; }
.program .event:nth-of-type(even) { align-self:flex-end; align-items:flex-end; text-align:right; }
.program .timeline .program__thread { position:absolute; inset:0; width:100%; height:100%; transform:none; opacity:1; pointer-events:none; }
.program__thread .program-route-base { stroke-dasharray:none; stroke-dashoffset:0; stroke:#a9b29f; opacity:.35; }
