/* ---------------- GATHERINGS ---------------- */
.offers { background: var(--paper); padding-block: var(--section-y); }
.offers .shell { display: flex; flex-direction: column; gap: var(--space-9); }
.offer { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-8); align-items: center; }
.offer-alt .offer-media { order: 2; }
.offer-media { aspect-ratio: 5 / 4; border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--e3); background: var(--char); }
.offer-media img { width: 100%; height: 100%; object-fit: cover; }
.offer-media .sig-noimg { height: 100%; display: grid; place-items: center; }
.offer-copy { text-align: left; }
.offer-copy h2 { font-size: clamp(var(--ms-4), 4vw, var(--ms-5)); color: var(--ink); margin-bottom: var(--space-3); }
.offer-when { display: inline-flex; align-items: center; gap: var(--space-2); color: var(--accent); font-weight: 600; font-size: var(--ms-0); margin-bottom: var(--space-3); }
.offer-when svg { width: 1.1em; height: 1.1em; }
.offer-copy p { color: var(--ink-2); font-size: var(--ms-1); line-height: 1.55; margin-bottom: var(--space-5); }

/* ---------------- VISIT ---------------- */
.visit-main { background: var(--paper); padding-block: var(--section-y); }
.visit-grid { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: var(--space-8); align-items: start; }
.visit-facts { display: flex; flex-direction: column; gap: var(--space-6); text-align: left; }
.fact { display: grid; grid-template-columns: auto 1fr; gap: var(--space-4); align-items: start; }
.fact-ic { width: 44px; height: 44px; border-radius: var(--r-full); background: var(--accent-soft); display: grid; place-items: center; color: var(--accent); }
.fact-ic svg { width: 22px; height: 22px; }
.fact h3 { font-family: var(--font-display); font-size: var(--ms-2); color: var(--ink); margin-bottom: var(--space-1); }
.fact p { color: var(--ink-2); line-height: 1.5; }
.fact a { color: var(--accent); font-weight: 600; }
.fact-sub { color: var(--ink-muted); font-size: var(--ms-dn1); margin-top: var(--space-1); }
.visit-order { display: flex; gap: var(--space-3); flex-wrap: wrap; margin-top: var(--space-2); }
.visit-map { border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--e3); aspect-ratio: 4 / 3; background: var(--paper-3); }
.visit-map iframe { width: 100%; height: 100%; border: 0; }

/* ---------------- CONTACT ---------------- */
.contact { background: var(--paper-2); padding-block: var(--section-y); text-align: center; }
.contact h2 { font-size: clamp(var(--ms-4), 5vw, var(--ms-5)); color: var(--ink); }
.contact > .shell > p { color: var(--ink-2); font-size: var(--ms-1); margin-top: var(--space-3); margin-bottom: var(--space-6); }
.cform { display: flex; flex-direction: column; gap: var(--space-4); text-align: left; }
.cform label { display: flex; flex-direction: column; gap: var(--space-2); font-size: var(--ms-dn1); font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-muted); }
.cform input, .cform textarea { padding: var(--space-3) var(--space-4); border-radius: var(--r-md); border: 1px solid var(--line-2); background: var(--paper); font-size: var(--ms-0); font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--ink); }
.cform input:focus-visible, .cform textarea:focus-visible { border-color: var(--accent); outline: none; box-shadow: 0 0 0 3px var(--accent-soft); }
.cform textarea { resize: vertical; font-family: var(--font-text); }
.row2 { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4); }
.cform .btn { align-self: center; margin-top: var(--space-2); }
.cform-status { text-align: center; text-transform: none; letter-spacing: 0; font-weight: 500; color: var(--accent); }
.cform-status.ok { color: #2f7d43; }

@media (max-width: 64rem) {
  .visit-grid { grid-template-columns: 1fr; gap: var(--space-7); }
}
@media (max-width: 48rem) {
  .offer { grid-template-columns: 1fr; gap: var(--space-5); text-align: center; }
  .offer-alt .offer-media { order: 0; }
  .offer-copy { text-align: center; }
  .offer-copy .btn, .offer-when { margin-inline: auto; }
  .visit-facts { text-align: center; }
  .fact { grid-template-columns: 1fr; justify-items: center; text-align: center; }
  .visit-order { justify-content: center; }
  .row2 { grid-template-columns: 1fr; }
}
