/* ==========================================================================
   Torres RS – pages: About, Contact, Privacy (body.trs-static) and the 404
   Selectors carry an id or three classes: the Customizer inline <style> (.container{width:52rem};
   .entry-content{max-width:70%}) is printed after this file.
   ========================================================================== */

/* ---------- Reading column ----------
   Same frame as the post: a centred 680px column up to 1199px, then the 1140px shell with the text on its left
   edge (H1 at x=113 at 1366, like the home, hubs and posts). Contact: the shell at every width (like the
   listings), content up to 960px. */
.trs-static .default-header > .container,
.trs-static #content-wrapper.container {
	width: 100%;
	max-width: calc(var(--trs-read) + 2 * var(--trs-gutter));
	margin-inline: auto;
	padding-inline: var(--trs-gutter);
	box-sizing: border-box;
}
.trs-page-contato .default-header > .container,
.trs-page-contato #content-wrapper.container { max-width: calc(var(--trs-shell) + 2 * var(--trs-gutter)); }
@media (min-width: 1200px) {
	.trs-static .default-header > .container,
	.trs-static #content-wrapper.container { max-width: calc(var(--trs-shell) + 2 * var(--trs-gutter)); }
}
.trs-static #content-wrapper.container { padding-block: 24px 0; }
.trs-static #content-wrapper > .entry-content { flex: 1 1 100%; max-width: var(--trs-read); min-width: 0; }
.trs-static .default-header > .container > * { max-width: var(--trs-read); }
.trs-page-contato #content-wrapper > .entry-content,
.trs-page-contato .default-header > .container > * { max-width: var(--trs-wide); }
.trs-static .default-header { padding-top: var(--trs-gap-top); }

/* ---------- Titles and text ---------- */
.trs-static .default-header .title { font-size: var(--trs-fs-h1-sm); }
.trs-static .default-header .trs-page-updated { margin: 8px 0 0; font-size: 14px; line-height: 1.5; color: var(--trs-muted); }
.trs-static .entry-content { font-size: var(--trs-fs-body); line-height: var(--trs-lh-body); color: var(--trs-ink); }
.trs-static .entry-content > :where(p, ul, ol) { font-size: var(--trs-fs-body); line-height: var(--trs-lh-body); }
.trs-static .entry-content > :where(ul, ol) > li { margin-bottom: 8px; }
.trs-static .entry-content h2 {
	font-family: var(--trs-serif);
	font-weight: 700;
	font-size: clamp(1.5rem, 1.25rem + .9vw, 1.875rem);
	line-height: 1.2;
	letter-spacing: var(--trs-ls-head);
	color: var(--trs-ink);
	margin: 2.2em 0 .55em;
	text-wrap: balance;
}
.trs-nowrap { white-space: nowrap; }

/* ---------- Privacy: legal text with smaller headings ---------- */
.trs-static.privacy-policy .entry-content h2 { font-size: clamp(1.25rem, 1.1rem + .6vw, 1.5rem); margin: 1.8em 0 .5em; }
.trs-static.privacy-policy .entry-content :is(p, li) { overflow-wrap: anywhere; }

/* ---------- Shortcodes inside any page ([trs_posts], [trs_secoes]) ---------- */
.page .entry-content :is(.trs-grid, .trs-section-grid) { margin: 1.5rem 0 2rem; }

/* ---------- About ----------
   Hierarchy by type, rules and space: the author card sits open under its H2 (no second rule, no box) and the
   criteria hang from ink rules; the sand box is kept for "Transparência" only. */
.trs-page-sobre .entry-content .trs-author--about { margin: 16px 0 24px; padding: 0; background: none; border-top: 0; border-radius: 0; }
.trs-static #como-escolhemos + ul {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px 32px;
	margin: 20px 0 1.5rem;
	padding: 0;
	list-style: none;
}
.trs-static #como-escolhemos + ul > li {
	margin: 0;
	padding: 12px 0 0;
	border-top: 2px solid var(--trs-ink);
	font-size: 16px;
	line-height: 1.6;
}
.trs-static #como-escolhemos + ul strong { color: var(--trs-ink); }
@media (max-width: 559px) {
	.trs-static #como-escolhemos + ul { grid-template-columns: minmax(0, 1fr); }
}
.trs-static #transparencia + p {
	padding: 16px 20px;
	background: var(--trs-sand-50);
	border-left: 4px solid var(--trs-sea-600);
	border-radius: 0 8px 8px 0;
}
.trs-static .entry-content .trs-about-guides { margin: 8px 0 1.5rem; }

/* ---------- Contact ----------
   Phones: who answers, the form, then the notes. From 900px: the form on the left; the aside and the notes
   on the right as one sand card (row 2 is 1fr, so the tall form never opens a gap between the two). */
.trs-page-contato .entry-content > p { max-width: var(--trs-read); }
.trs-contact-layout { display: grid; gap: 24px; align-items: start; margin: 8px 0 0; }
.trs-contact-aside,
.trs-contact-notes { max-width: 640px; color: var(--trs-ink-2); box-sizing: border-box; }
.trs-contact-aside { padding: 20px 20px 8px; background: var(--trs-sand-50); border-radius: var(--trs-r-ctl); }
.trs-contact-aside > p,
.trs-contact-notes > p { margin: 0 0 12px; font-size: 15px; line-height: 1.55; }
.trs-contact-notes { padding-top: 16px; border-top: 1px solid var(--trs-line); }
@media (min-width: 900px) {
	.trs-contact-layout { grid-template-columns: minmax(0, 1fr) 280px; grid-template-rows: auto 1fr; gap: 0 48px; }
	.trs-contact { grid-column: 1; grid-row: 1 / span 2; }
	.trs-contact-aside { grid-column: 2; grid-row: 1; padding-bottom: 0; border-radius: 8px 8px 0 0; }
	.trs-contact-notes { grid-column: 2; grid-row: 2; padding: 0 20px 20px; border-top: 0; background: var(--trs-sand-50); border-radius: 0 0 8px 8px; }
}
.trs-contact-aside .trs-author--compact { margin-bottom: 16px; }
.trs-contact-aside .trs-author .trs-author__links { margin-top: 0; }
.trs-contact-aside__email a { font-weight: 700; overflow-wrap: anywhere; }
ul.trs-contact-notes__links { display: flex; flex-wrap: wrap; column-gap: 20px; margin: 4px 0 0; padding: 0; list-style: none; font-size: 15px; }
.trs-contact-notes__links li { margin: 0; }
.trs-contact-notes__links a { display: inline-flex; align-items: center; min-height: 44px; }

.trs-contact { max-width: 640px; min-width: 0; }
.trs-contact .trs-notice { margin: 0 0 20px; }
.trs-contact .trs-notice p { font-size: inherit; }
.trs-contact p.trs-notice__title { margin: 0 0 4px; font-size: 16px; }
.trs-contact p.trs-notice__links { display: flex; flex-wrap: wrap; gap: 0 24px; margin: 0; }
.trs-notice__links a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 700; }
#contato-form,
#contato-aviso { scroll-margin-top: calc(var(--trs-header-h) + 16px); }
/* The browser scrolls to the first invalid field: keep it and its label below the sticky header. */
#contato-form :is(input, select, textarea) { scroll-margin-top: calc(var(--trs-header-h) + 48px); }
#contato-form { margin: 0; font-size: 16px; }
#contato-form p.trs-form__note { margin: 0 0 16px; font-size: 14px; color: var(--trs-muted); }
#contato-form .trs-field { margin: 0 0 20px; }
#contato-form .trs-field label { display: block; margin: 0 0 6px; }
#contato-form .trs-hint { display: block; margin-top: 6px; font-size: 14px; line-height: 1.4; color: var(--trs-muted); }
#contato-form .trs-field-error { display: block; margin-top: 6px; font-size: 14px; font-weight: 600; line-height: 1.4; color: var(--trs-danger); }
#contato-form .trs-field-error[hidden] { display: none; }
#contato-form :is(input, textarea)[aria-invalid="true"]:not(:focus):not(#trs) { border-color: var(--trs-danger); }
#contato-form p.trs-form__privacy { margin: 0 0 16px; font-size: 14px; line-height: 1.5; }
#contato-form p.trs-form__submit { margin: 0; }
@media (max-width: 559px) {
	#contato-form .trs-btn { width: 100%; min-height: 48px; }
}

/* ---------- 404 ---------- */
/* Column: when the base min-height makes the main taller than its content (tall windows), the extra space
   goes above the closing band, which stays glued to the footer cliff. */
.site-main.trs-404 { display: flex; flex-direction: column; padding: var(--trs-gap-top) 0 0; }
/* The page sits in the 1140px shell (H1 on the same edge as the listings); its blocks stop at 960px. */
.site-main.trs-404 > .trs-wrap { padding-bottom: var(--trs-gap-bottom); }
.trs-404__head,
.trs-404__block,
.trs-404__sections,
.trs-404 .trs-404__actions { max-width: var(--trs-wide); }
.trs-404__art { display: block; width: 240px; max-width: 100%; height: 96px; margin: 0 0 12px; overflow: visible; }
/* Two short drifts (4.8s in all), then it rests where it started: no motion that runs on (WCAG 2.2.2). */
.trs-404__balloon { animation: trs-drift 2.4s var(--trs-ease) 2; }
@keyframes trs-drift {
	0%, 100% { transform: translate(0, 0); }
	50% { transform: translate(6px, -4px); }
}
.trs-404 h1.trs-h1 { font-size: var(--trs-fs-h1-sm); margin: 0; }
.trs-404 p.trs-dek { max-width: 60ch; margin: 12px 0 0; font-size: var(--trs-fs-dek); line-height: 1.5; color: var(--trs-ink-2); }
.trs-404__search { max-width: 560px; margin: 24px 0 0; }
/* Section heads as in the empty search (2px rule, H2 of the scale). */
.trs-404__block { margin-top: 48px; }
.trs-404__sections { margin-top: 40px; }
.trs-404__block > .trs-list:not(.trs-list--2) { max-width: var(--trs-read); }
.trs-404 p.trs-404__more { margin: 8px 0 0; font-size: 16px; }
.trs-404 p.trs-404__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 28px;
	margin: 40px 0 0;
	padding-top: 24px;
	border-top: 1px solid var(--trs-line);
	font-size: 16px;
}
/* Pushed to the bottom of a tall window; the base lets its sand run under the footer cliff. */
.trs-404 .trs-cta-band { margin-top: auto; }
