*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--paper); color: var(--text); font: 400 var(--t-body)/1.7 var(--font); }
img, svg { display: block; max-width: 100%; height: auto; }
h1, h2, h3 { font-family: var(--font); color: var(--brown); margin: 0; }
h1 { font-size: var(--t-h1); font-weight: 300; line-height: 1.1; letter-spacing: -0.01em; max-width: 18ch; }
h2 { font-size: var(--t-h2); font-weight: 400; line-height: 1.2; }
h3 { font-size: var(--t-h3); font-weight: 400; line-height: 1.3; }
p { margin: 0 0 var(--s3); max-width: 64ch; }
p:last-child { margin-bottom: 0; }
a { color: var(--bronze); text-decoration: none; font-weight: 600; transition: color .15s ease; }
a:hover { color: var(--gold); }
@media (prefers-reduced-motion: reduce) { a { transition: none; } }
:focus-visible { outline: 2px solid var(--bronze); outline-offset: 3px; }
address { font-style: normal; }
table { border-collapse: collapse; width: 100%; }
.icon { flex: none; color: var(--gold); }

.wrap { width: min(100% - 2.5rem, var(--wrap)); margin-inline: auto; }
.wrap-wide { width: min(100% - 2.5rem, var(--wrap-wide)); margin-inline: auto; }
.narrow { max-width: 860px; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: -9999px; }
.skip:focus { left: 1rem; top: 1rem; z-index: 100; background: var(--brown); color: #fff; padding: .75rem 1rem; }
.lead { font-size: var(--t-large); line-height: 1.7; max-width: 52ch; }
.body-large { font-size: var(--t-large); line-height: 1.75; max-width: 56ch; }
.note { margin-top: var(--s3); }

/* Filete curto sob títulos de seção (como na referência) */
.ruled::after { content: ""; display: block; width: 48px; height: 2px; background: var(--gold); margin-top: var(--s3); }

/* Quebras de linha equilibradas, sem palavra sozinha na última linha */
h1, h2, h3, .lead, .closing p, .section-intro p { text-wrap: balance; }
p, li, td { text-wrap: pretty; }
/* Títulos que são links: dourado escuro, sem seta */
h1 a, h2 a, h3 a { color: var(--bronze); font-weight: inherit; }
h1 a:hover, h2 a:hover, h3 a:hover { color: var(--gold); }

/* Itens de grid podem encolher abaixo do conteúdo (evita estouro no celular) */
.two-col > *, .suite-row > *, .places > *, .cards > *, .closing-inner > *, .footer-grid > *, .amen > *, .tips > * { min-width: 0; }
h1, h2, h3, p, li { overflow-wrap: break-word; }
