/* Classic — a timeless printed invitation: ivory stock, fine double rules, symmetry. */
.t-classic { --radius: 2px; --fs-h2: clamp(1.9rem, 5vw, 2.9rem); }
.t-classic .s-title { color: var(--heading); }
.t-classic .eyebrow { font-family: var(--font-body); font-style: italic; text-transform: none; letter-spacing: .02em; font-size: 1.05rem; font-weight: 400; color: var(--ink-accent); }
.t-classic .lede { font-size: 1.15rem; }
.cl-divider { display: flex; align-items: center; justify-content: center; gap: .7rem; margin: 1.25rem auto; max-width: 13rem; color: var(--accent); }
.cl-divider span { flex: 1; height: 0; border-top: 3px double color-mix(in srgb, var(--accent) 70%, transparent); }
.cl-divider i { width: 7px; height: 7px; border: 1px solid currentColor; transform: rotate(45deg); }

/* nav */
.t-classic .site-nav__mark { border-color: var(--line); border-radius: 2px; }
.t-classic .site-menu__sheet { border: 1px solid var(--line); padding: clamp(2rem, 7vw, 3rem); background: var(--surface); }

/* hero */
.cl-hero { padding: 0 0 clamp(3rem, 8vw, 5rem); background: var(--bg); }
.cl-hero__banner { position: relative; height: 52svh; min-height: 20rem; overflow: hidden; }
.cl-hero__banner::after { content: ''; position: absolute; inset: 0; background: linear-gradient(rgba(0, 0, 0, calc(var(--overlay) * .9)), rgba(0, 0, 0, calc(var(--overlay) * .3)) 60%, transparent); }
.cl-hero__banner img { width: 100%; height: 100%; object-fit: cover; object-position: center 22%; }
.cl-card { position: relative; width: min(100% - 2 * var(--gutter), 38rem); margin: -9rem auto 0; background: var(--surface); padding: .6rem; box-shadow: 0 30px 60px -35px rgba(40, 30, 20, .45); }
.cl-card__inner { border: 1px solid color-mix(in srgb, var(--accent) 55%, transparent); outline: 1px solid color-mix(in srgb, var(--accent) 55%, transparent); outline-offset: -6px; padding: clamp(2.25rem, 7vw, 3.75rem) clamp(1.25rem, 5vw, 3rem); text-align: center; display: grid; gap: .8rem; }
.cl-card__small { font-size: .78rem; letter-spacing: .2em; text-transform: uppercase; color: var(--muted); }
.cl-names { font-family: var(--font-display); font-weight: 400; color: var(--heading); font-size: clamp(2.5rem, 9vw, 4.25rem); line-height: 1.08; display: grid; }
.cl-names__amp { font-style: italic; font-size: .55em; color: var(--accent); }
.cl-card__line { font-style: italic; font-size: 1.15rem; color: var(--ink); }
.cl-card__date { font-family: var(--font-display); font-size: clamp(1.05rem, 2.8vw, 1.3rem); line-height: 1.6; color: var(--heading); }
@media (min-width: 56rem) { .cl-hero__banner { height: 62svh; } .cl-card { margin-top: -12rem; } }

/* welcome as a letter */
.t-classic .s--welcome .wrap--narrow { text-align: center; }
.t-classic .welcome__text { font-size: 1.2rem; line-height: 1.8; }
.t-classic .s--welcome .eyebrow, .t-classic .s--welcome .cl-divider { text-align: center; }
.t-classic .welcome__sign { margin-top: 1.5rem; font-style: italic; color: var(--muted); }

/* programme */
.cl-programme { background: var(--surface); border: 1px solid var(--line); padding: clamp(1.5rem, 5vw, 3rem); }
.cl-programme__day + .cl-programme__day { margin-top: 2.5rem; padding-top: 2.25rem; border-top: 1px solid var(--line); }
.cl-programme__label { font-family: var(--font-body); font-weight: 400; font-size: .8rem; letter-spacing: .22em; text-transform: uppercase; color: var(--accent); text-align: center; margin-bottom: 1.5rem; }
.cl-programme ol { list-style: none; padding: 0; margin: 0; display: grid; gap: 1.5rem; }
.cl-item__line { display: flex; align-items: baseline; gap: .6rem; }
.cl-item__name { font-family: var(--font-display); font-size: 1.35rem; color: var(--heading); min-width: 0; overflow-wrap: anywhere; }
.cl-item__dots { flex: 1; border-bottom: 1px dotted color-mix(in srgb, var(--ink) 35%, transparent); transform: translateY(-.3rem); min-width: 1.5rem; }
.cl-item__time { font-variant-numeric: tabular-nums; white-space: nowrap; flex: none; }
.cl-item__where { font-style: italic; color: var(--muted); margin-top: .15rem; }
.cl-item__desc { font-size: .95rem; color: var(--muted); margin-top: .3rem; }
.cl-item__map { display: inline-block; margin-top: .35rem; font-size: .85rem; }

/* story, family, gallery */
.t-classic .story-photo { border-radius: 0; padding: .5rem; background: var(--surface); box-shadow: 0 0 0 1px var(--line); }
.t-classic .story-photo img { outline: 1px solid color-mix(in srgb, var(--accent) 40%, transparent); outline-offset: -.5rem; }
.t-classic .s--family { background: var(--soft); }
.t-classic .families { position: relative; }
@media (min-width: 48rem) { .t-classic .families::after { content: '&'; position: absolute; left: 50%; top: 50%; translate: -50% -50%; font-family: var(--font-display); font-style: italic; font-size: 2rem; color: var(--accent); } }
.t-classic .family__side { font-style: italic; text-transform: none; letter-spacing: 0; font-weight: 400; font-size: 1rem; }
.t-classic .family__names { color: var(--heading); }
.t-classic .gallery__item { border-radius: 0; }
.t-classic .countdown__unit { border: 1px solid var(--line); padding: 1rem .5rem; min-width: 5rem; background: var(--surface); }
.t-classic .countdown__num { font-size: clamp(2rem, 7vw, 3.2rem); color: var(--heading); }
.t-classic .rsvp { border-radius: 0; outline: 1px solid var(--line); outline-offset: 6px; }
.t-classic .event__name { color: var(--heading); }

/* footer */
.cl-footer { border-top: 3px double var(--line); }
.cl-monogram { width: 5.25rem; height: 5.25rem; margin: 0 auto 1.25rem; border-radius: 50%; border: 1px solid var(--accent); display: grid; place-items: center; }
.cl-monogram span { width: 4.4rem; height: 4.4rem; border-radius: 50%; border: 1px solid var(--accent); display: grid; place-items: center; font-family: var(--font-display); color: var(--heading); font-size: 1.05rem; letter-spacing: .04em; }
.t-classic .site-footer__names { color: var(--heading); }

/* ---------- events, scroll-stacked (themes/event-stack.js) ----------
   Only while the stack runs (.is-evstack): each event becomes one card of this design,
   laid over the last by the scroll. Without it the layout above is untouched. */
.is-evstack .cl-programme { background: none; border: 0; padding: 0; }
.is-evstack .cl-programme__day, .is-evstack .cl-programme__day + .cl-programme__day, .is-evstack .cl-programme ol { display: contents; }
.is-evstack .cl-programme__label { display: none; }
.is-evstack .cl-item {
  background: var(--surface); border: 1px solid var(--line); padding: clamp(1.5rem, 5vw, 2.75rem);
  box-shadow: 0 26px 50px -34px rgba(60, 45, 30, .4);
}
.cl-item__day { font-size: .8rem; letter-spacing: .22em; text-transform: uppercase; color: var(--accent); text-align: center; margin-bottom: 1.25rem; }
