/* Shell components: light-page header, Start page, compact invitation, 404, legal chrome. Loaded after styles.css and pages.css. */

.site-header--page .header-cta { min-height: 2.75rem; padding: 0.7rem 1.2rem; }
.site-header--page .header-cta__label { font-size: 0.85rem; }
.site-nav a { min-height: 2.75rem; display: inline-flex; align-items: center; }

/* Start page */
.start-section { padding-top: clamp(3rem, 6vw, 5rem); }
.start-section .contact-copy h2 { max-width: 18ch; }
.carried { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; font-size: 0.82rem; color: var(--color-steel); }
.carried[hidden] { display: none; }
.carried-chip { display: inline-flex; align-items: center; gap: 0.35rem; min-height: 2.75rem; padding: 0 0 0 0.7rem; border: 1px solid var(--color-hairline); background: var(--color-paper); color: var(--color-ink); font-size: 0.82rem; font-weight: 600; }
.carried-chip button { width: 2.75rem; height: 2.75rem; border: 0; background: none; color: var(--color-steel); font-size: 1.1rem; cursor: pointer; }
.carried-chip button:hover, .carried-chip button:focus-visible { color: var(--color-oxblood); }

/* Compact Start invitation */
.start-invite { border-top: 1px solid var(--color-ink); border-bottom: 1px solid var(--color-hairline); background: var(--color-surface); }
.start-invite__inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 1.5rem; padding-block: 1.4rem; }
.start-invite p { margin: 0; font-family: var(--font-display); font-size: 1.35rem; line-height: 1.2; }

/* 404 */
.not-found { padding-block: clamp(4rem, 10vw, 8rem); max-width: 44rem; }
.not-found h1 { font-family: var(--font-display); font-weight: 500; font-size: clamp(2.4rem, 5vw, 3.6rem); line-height: 1; margin: 0.5rem 0 1rem; }
.not-found p { color: var(--color-steel); max-width: 44ch; }
.not-found__links { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 1.8rem; }
.not-found__links a { display: inline-flex; align-items: center; min-height: 2.75rem; padding: 0.7rem 1.1rem; border: 1px solid var(--color-ink); font-size: 0.82rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; }
.not-found__links a:first-child { background: var(--color-oxblood); border-color: var(--color-oxblood); color: var(--color-surface); }

/* Legal and brand-kit chrome */
.legal { max-width: 46rem; padding-block: 3rem 5rem; line-height: 1.65; }
.legal h1 { font-family: var(--font-display); font-optical-sizing: none; font-variation-settings: "opsz" 60; font-weight: 500; font-size: clamp(1.9rem, 5vw, 2.6rem); line-height: 1.08; margin: 0.4rem 0 0.8rem; }
.legal h2 { font-family: var(--font-display); font-weight: 500; font-size: 1.25rem; margin: 2.2rem 0 0.3rem; }
.legal p, .legal li { font-size: 0.95rem; color: #4c463e; }
.legal a { color: var(--color-oxblood); }
.legal .updated { font-size: 0.82rem; color: var(--color-steel); letter-spacing: 0.08em; text-transform: uppercase; }
.legal.legal--wide { max-width: 72rem; }

@media (max-width: 820px) {
  .start-invite__inner { grid-template-columns: 1fr; gap: 0.9rem; }
  .start-invite .button { width: 100%; justify-content: center; }
  .not-found__links a { flex: 1 1 100%; justify-content: center; }
}

.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
