/*
 * TRE website pages (home, services, packages, non-profits, SMMEs, about, contact). Loaded after finder.css
 * and built on it: the same tokens, header and footer, square corners, one pink accent, light grey only for
 * backgrounds. 2.2.1 (Reneal, 21 Oct 2026): depth (soft layered shadows instead of bordered boxes, a lift on
 * hover), motion (hero entrance, scroll reveals from site.js) and her photos. Motion uses transform and
 * opacity only and is switched off under prefers-reduced-motion.
 */

/* ---------- header: one pink call to action, current page marked ---------- */
.trf-head a.trf-btn-pink { background: var(--trf-pink); border-color: var(--trf-pink); color: var(--trf-paper); }
.trf-head a.trf-btn-pink:hover { background: var(--trf-pink-dark); border-color: var(--trf-pink-dark); color: var(--trf-paper); }
.trf-nav-main a { position: relative; }
.trf-nav-main a::after { content: ""; position: absolute; left: 0; right: 0; bottom: -6px; height: 2px; background: var(--trf-pink); transform: scaleX(0); transform-origin: left; transition: transform .25s var(--trf-ease); }
.trf-nav-main a:hover::after, .trf-nav-main a[aria-current="page"]::after { transform: none; }
.trf-nav-main a[aria-current="page"] { color: var(--trf-pink); }
.trf-head .trf-head-quick { margin-left: auto; min-height: 40px; padding: 8px 12px; font-size: 13px; }
.trf-head-quick + .trf-menu { margin-left: 0; }
.trf-menu nav a[aria-current="page"], .trf-menu nav a.trs-menu-pink { color: var(--trf-pink); }
@media (max-width: 979px) { .trf-head-row { gap: 10px; } }
@media (max-width: 359px) { .trf-head .trf-head-quick { display: none; } .trf-head-quick + .trf-menu { margin-left: auto; } }
@media (min-width: 980px) { .trf-head .trf-head-quick { display: none; } }

/* ---------- footer: who we are, services, the practice, Reneal's other businesses, contact ---------- */
.trf-foot a.trf-btn-pink { color: var(--trf-paper); text-decoration: none; margin-top: 8px; }
.trf-foot a.trf-btn-pink:hover { color: var(--trf-paper); background: var(--trf-pink-dark); border-color: var(--trf-pink-dark); }
.trf-foot p { line-height: 1.9; }
.trf-foot a { overflow-wrap: anywhere; }
.trs-foot-ventures span { display: block; font-size: 13px; line-height: 1.4; color: var(--trf-ink-soft); margin: 0 0 10px; }
.trs-foot-base { margin-top: 32px; }
.trs-foot-base p { margin: 0; padding-top: 20px; border-top: 1px solid var(--trf-line); }
.trf-band h2 + p { margin-top: 12px; }
@media (min-width: 760px) { .trf-foot-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1100px) { .trf-foot-grid { grid-template-columns: 1.4fr 1fr 1fr 1.1fr 1.2fr; gap: 36px; } }

/* ---------- shared ---------- */
.trs [id] { scroll-margin-top: 96px; }
.trs .trf-hero h1 { font-size: 34px; line-height: 1.08; max-width: 16em; }
@media (min-width: 980px) { .trs .trf-hero h1 { font-size: 50px; } }
.trs .trf-hero-small { padding: 48px 0 44px; }
@media (min-width: 980px) { .trs .trf-hero-small { padding: 72px 0 64px; } }
.trs-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 28px 0 16px; }
.trs-actions .trf-btn { flex: 1 1 auto; }
@media (min-width: 560px) { .trs-actions .trf-btn { flex: 0 0 auto; } }
.trs-top-line { border-top: 1px solid var(--trf-line); }
.trs-section-tight { padding-top: 40px; }
.trs-more-link { margin-top: 20px !important; font-weight: 700; }
.trs-more-link a::after, .trs-go::after { content: "\2192"; display: inline-block; margin-left: 6px; color: var(--trf-pink); transition: transform .25s var(--trf-ease); }
.trs-more-link a:hover::after, a:hover .trs-go::after { transform: translateX(4px); }
.trs-note { margin-top: 18px !important; max-width: 52em; }
.trs-gap { margin-top: 28px !important; }
.trs .trf-sub { margin-bottom: 0; }
.trs .trf-cta { margin: 32px 0 0; }
.trs .trf-founding-note { max-width: 40em; }
.trs-two-even { display: grid; gap: 28px; align-items: start; }
@media (min-width: 980px) { .trs-two-even { grid-template-columns: 1fr 1fr; gap: 64px; } }
.trs-two { display: grid; gap: 32px; align-items: start; }
@media (min-width: 980px) { .trs-two { grid-template-columns: 1fr 380px; gap: 56px; } .trs-aside, .trs-stick { position: sticky; top: 104px; } }

/* ---------- heroes: text, then the price board or a photo ---------- */
.trs-hero-grid { display: grid; gap: 40px; align-items: start; }
@media (min-width: 980px) {
	.trs-hero-grid { grid-template-columns: 1.15fr .85fr; gap: 64px; align-items: center; }
	.trs-hero-photo { grid-template-columns: 1.1fr .9fr; }
}
.trs-hero-grid > div > *, .trs-split-hero > div > * { animation: trf-rise .7s var(--trf-ease) both; }
.trs-hero-grid > div > :nth-child(2), .trs-split-hero > div > :nth-child(2) { animation-delay: .06s; }
.trs-hero-grid > div > :nth-child(3), .trs-split-hero > div > :nth-child(3) { animation-name: trf-grow; animation-delay: .14s; transform-origin: left; }
.trs-hero-grid > div > :nth-child(4), .trs-split-hero > div > :nth-child(4) { animation-delay: .18s; }
.trs-hero-grid > div > :nth-child(5), .trs-split-hero > div > :nth-child(5) { animation-delay: .24s; }
.trs-hero-grid > div > :nth-child(n+6), .trs-split-hero > div > :nth-child(n+6) { animation-delay: .3s; }
.trs-hero-grid > aside, .trs-hero-grid > figure, .trs-split-hero > figure { animation: trf-rise .9s var(--trf-ease) .16s both; }

/* the home page price board */
.trs-board { background: var(--trf-paper); border-top: 4px solid var(--trf-pink); box-shadow: var(--trf-shadow-lift); padding: 24px 20px; }
@media (min-width: 760px) { .trs-board { padding: 30px 30px 26px; } }
.trs-board ul { list-style: none; margin: 4px 0 0 !important; border-top: 1px solid var(--trf-ink); }
.trs-board li { border-bottom: 1px solid var(--trf-line); }
.trs-board li a { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 16px 0; color: var(--trf-ink); text-decoration: none; transition: padding .25s var(--trf-ease); }
.trs-board li a:hover { padding-left: 6px; }
.trs-board li a:hover strong { color: var(--trf-pink); }
.trs-board strong { display: block; font-size: 17px; }
.trs-board small { display: block; font-size: 13px; font-weight: 400; color: var(--trf-ink-soft); }
.trs-board-price { text-align: right; white-space: nowrap; font-size: 24px; font-weight: 700; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.trs-board-price small { font-size: 12px; letter-spacing: 0; }
.trs-board-note { font-size: 13px; color: var(--trf-ink-soft); margin: 14px 0 0 !important; }
.trs-board .trs-more-link { margin-top: 14px !important; margin-bottom: 0 !important; }

/* ---------- photos ---------- */
.trs-photo, .trs-media { margin: 0; position: relative; background: var(--trf-grey); box-shadow: var(--trf-shadow-lift); max-width: 100%; }
.trs-photo { max-width: 460px; }
.trs-photo img, .trs-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.trs-photo img { aspect-ratio: 4 / 5; height: auto; }
.trs-media { aspect-ratio: 4 / 3; overflow: hidden; }
.trs-photo::after, .trs-media::after { content: ""; position: absolute; left: 0; bottom: 0; width: 72px; height: 6px; background: var(--trf-pink); }
@media (max-width: 979px) { .trs-media-hero { aspect-ratio: 16 / 10; } }
.trs-group-head { display: grid; gap: 28px; align-items: center; }
@media (min-width: 980px) { .trs-group-head { grid-template-columns: 1.2fr .8fr; gap: 56px; } }

/* ---------- paths (three ways in, with a photo) ---------- */
.trs-paths { display: grid; gap: 24px; margin-top: 32px; }
@media (min-width: 760px) { .trs-paths { grid-template-columns: repeat(3, 1fr); } }
.trs .trs-path { display: flex; flex-direction: column; background: var(--trf-paper); color: var(--trf-ink); text-decoration: none; box-shadow: var(--trf-shadow); overflow: hidden; transition: transform .35s var(--trf-ease), box-shadow .35s var(--trf-ease); }
.trs .trs-path:hover { color: var(--trf-ink); transform: translateY(-6px); box-shadow: var(--trf-shadow-lift); }
.trs-path-img { aspect-ratio: 4 / 3; overflow: hidden; background: var(--trf-grey); }
.trs-path-img img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--trf-ease); }
.trs-path:hover .trs-path-img img { transform: scale(1.05); }
.trs-path-body { display: flex; flex-direction: column; flex: 1; padding: 24px 22px 26px; }
.trs-path h3 { font-size: 24px; margin-bottom: 8px; transition: color .2s; }
.trs-path:hover h3 { color: var(--trf-pink); }
.trs-path-text { color: var(--trf-ink-soft); }
.trs-go { margin-top: auto; padding-top: 10px; font-weight: 700; font-size: 15px; }

/* ---------- the next event on the home page (2.3.1): a black card with depth, read from the TRE Events plugin ---------- */
.trs-event-sec { padding-bottom: 8px; }
.trs-event { display: grid; gap: 28px; background: var(--trf-ink); color: var(--trf-paper); border-top: 4px solid var(--trf-pink); box-shadow: var(--trf-shadow-lift); padding: 32px 22px; }
@media (min-width: 760px) { .trs-event { padding: 44px 44px 40px; } }
@media (min-width: 980px) { .trs-event { grid-template-columns: 1.35fr .9fr; gap: 56px; align-items: center; } }
.trs .trs-event .trf-label { display: inline-block; padding: 4px 10px; background: var(--trf-pink); color: var(--trf-paper); }
.trs .trs-event h2 { color: var(--trf-paper); font-size: 30px; line-height: 1.15; margin: 4px 0 14px; }
@media (min-width: 980px) { .trs .trs-event h2 { font-size: 38px; } }
.trs-event-lead { color: #d6d6d6; font-size: 18px; max-width: 36em; margin: 0 0 24px; }
.trs-event .trs-actions { margin: 0; }
.trs-event-note { font-size: 13px; color: #bdbdbd; margin: 14px 0 0; }
.trs-event-facts { margin: 0; border-top: 1px solid rgba(255, 255, 255, .28); }
.trs-event-facts div { display: grid; grid-template-columns: 84px 1fr; gap: 12px; padding: 14px 0; border-bottom: 1px solid rgba(255, 255, 255, .18); }
.trs-event-facts dt { font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #bdbdbd; padding-top: 3px; }
.trs-event-facts dd { margin: 0; font-weight: 600; color: var(--trf-paper); }

/* ---------- Reneal's other businesses ---------- */
.trs-ventures { display: grid; gap: 20px; margin-top: 28px; }
@media (min-width: 760px) { .trs-ventures-2 { grid-template-columns: 1fr 1fr; } .trs-ventures-3 { grid-template-columns: repeat(3, 1fr); } }
.trs-ventures-1 { max-width: 620px; }
.trs .trs-venture { display: flex; flex-direction: column; padding: 26px 24px; background: var(--trf-paper); color: var(--trf-ink); text-decoration: none; border-top: 4px solid var(--trf-ink); box-shadow: var(--trf-shadow); transition: transform .35s var(--trf-ease), box-shadow .35s var(--trf-ease), border-color .35s; }
.trs .trs-venture:hover { color: var(--trf-ink); transform: translateY(-5px); box-shadow: var(--trf-shadow-lift); border-top-color: var(--trf-pink); }
.trs-venture h3 { font-size: 22px; margin-bottom: 8px; }
.trs-venture p:not(.trf-label) { color: var(--trf-ink-soft); }

/* ---------- price lines (a card with hairlines between rows) ---------- */
.trs-rows { list-style: none; margin: 24px 0 0 !important; padding: 4px 18px !important; background: var(--trf-paper); box-shadow: var(--trf-shadow); }
@media (min-width: 760px) { .trs-rows { padding: 6px 26px !important; } }
.trs-two-even > .trs-rows, .trs-two-even > div > .trs-rows:first-child { margin-top: 0 !important; }
@media (max-width: 979px) { .trs-two-even .trs-rows { margin-top: 8px !important; } }
.trs-rows + .trs-rows, .trs-rows-flush { margin-top: 16px !important; }
.trs-row { display: grid; grid-template-columns: 1fr auto; gap: 4px 20px; align-items: baseline; padding: 16px 0; border-bottom: 1px solid var(--trf-line); }
.trs-row:last-child { border-bottom: 0; }
.trs-row-name { font-weight: 700; font-size: 16px; line-height: 1.35; }
.trs .trs-row-name a { color: var(--trf-ink); text-decoration: none; }
.trs .trs-row-name a:hover { color: var(--trf-pink); }
.trs-row-price { text-align: right; }
.trs-amount { display: block; font-size: 20px; font-weight: 700; letter-spacing: -0.01em; font-variant-numeric: tabular-nums; white-space: nowrap; }
.trs-amount small { font-size: 13px; font-weight: 600; color: var(--trf-ink-soft); }
.trs-unit { display: block; font-size: 12px; color: var(--trf-ink-soft); }
.trs-row-note { grid-column: 1 / -1; font-size: 13px; font-weight: 700; color: var(--trf-pink); }
.trs .trs-row-pay { grid-column: 1 / -1; justify-self: start; font-size: 14px; font-weight: 700; }

/* ---------- services in full (one card each) ---------- */
.trs-svcs { margin-top: 28px; display: grid; gap: 20px; }
.trs-svcs:empty { display: none; }
.trs-svcs + .trs-rows { margin-top: 20px !important; }
.trs-svc { display: grid; gap: 14px 48px; padding: 24px 20px; background: var(--trf-paper); box-shadow: var(--trf-shadow); transition: transform .35s var(--trf-ease), box-shadow .35s var(--trf-ease); }
.trs-svc:hover { transform: translateY(-3px); box-shadow: var(--trf-shadow-lift); }
@media (min-width: 760px) { .trs-svc { padding: 30px 32px; } }
.trs-svc h3 { font-size: 22px; margin-bottom: 8px; }
.trs-svc-main > p { color: var(--trf-ink-soft); max-width: 44em; }
.trs-svc-price { margin: 0 !important; }
.trs-svc-price .trs-amount { font-size: 30px; letter-spacing: -0.02em; }
.trs-svc-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
@media (min-width: 980px) {
	.trs-svc { grid-template-columns: 1fr 280px; }
	.trs-svc-side { text-align: right; }
	.trs-svc-actions { justify-content: flex-end; }
}
.trs-more { margin-top: 10px; }
.trs-more summary { cursor: pointer; font-weight: 700; font-size: 14px; list-style: none; display: inline-flex; gap: 8px; align-items: center; }
.trs-more summary::-webkit-details-marker { display: none; }
.trs-more summary::before { content: "+"; color: var(--trf-pink); font-size: 18px; line-height: 1; width: 12px; transition: transform .25s var(--trf-ease); }
.trs-more[open] summary::before { content: "\2212"; }
.trs-more[open] > *:not(summary) { animation: trf-rise .35s var(--trf-ease) both; }
.trs-more .trf-incl { margin: 14px 0 0 !important; }
.trs-dl { margin: 16px 0 0; display: grid; gap: 4px; font-size: 15px; }
.trs-dl dt { font-weight: 700; margin-top: 8px; }
.trs-dl dd { margin: 0; color: var(--trf-ink-soft); }
.trs-excl { list-style: none; margin: 10px 0 0 !important; display: grid; gap: 6px; }
.trs-excl li { position: relative; padding-left: 22px; font-size: 14px; color: var(--trf-ink-soft); }
.trs-excl li::before { content: ""; position: absolute; left: 2px; top: 10px; width: 10px; height: 1px; background: var(--trf-ink-soft); }
.trs-limits { font-size: 13px; color: var(--trf-ink-soft); margin: 14px 0 0 !important; }
.trs .trf-plan .trf-plan-go .trf-block { margin-top: 10px; }
.trs .trf-plan .trf-plan-go .trf-block:first-child { margin-top: 0; }
.trs .trf-plan details { margin-top: 14px; }
@media (min-width: 1100px) { .trs-plans-3 { grid-template-columns: repeat(3, 1fr); } }
.trs-plans-1 { margin: 0; }
@media (min-width: 760px) { .trs-plans-1 { grid-template-columns: 1fr; } }
@media (min-width: 1100px) { .trs-plans-1 { grid-template-columns: 1fr; } }
.trs-terms li { font-size: 16px; }
.trs-terms { gap: 12px; margin-top: 20px !important; }

/* ---------- jump links ---------- */
.trs-jump { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 28px 0 0 !important; }
.trs .trs-jump a { display: inline-block; padding: 8px 12px; background: var(--trf-paper); box-shadow: var(--trf-shadow-sm); font-size: 14px; font-weight: 600; color: var(--trf-ink); text-decoration: none; transition: transform .2s var(--trf-ease), box-shadow .2s var(--trf-ease), color .2s; }
.trs .trs-jump a:hover { color: var(--trf-pink); transform: translateY(-2px); box-shadow: var(--trf-shadow); }

/* ---------- tables ---------- */
.trs-scroll { overflow-x: auto; margin-top: 28px; background: var(--trf-paper); box-shadow: var(--trf-shadow); -webkit-overflow-scrolling: touch; }
.trs-scroll:focus-visible { outline: 2px solid var(--trf-pink); outline-offset: 2px; }
.trs-table { width: 100%; min-width: 760px; border-collapse: collapse; font-size: 15px; }
.trs-table th, .trs-table td { padding: 14px 16px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--trf-line); }
.trs-table tbody tr:last-child th, .trs-table tbody tr:last-child td { border-bottom: 0; }
.trs-table thead th { border-bottom: 1px solid var(--trf-ink); font-size: 17px; vertical-align: bottom; }
.trs-table tbody th { font-weight: 600; }
.trs-table tbody tr { transition: background .2s; }
.trs-table tbody tr:hover th, .trs-table tbody tr:hover td { background: var(--trf-grey); }
.trs-table th:first-child { position: sticky; left: 0; background: var(--trf-paper); width: 30%; z-index: 1; }
.trs-th-price { display: block; font-size: 22px; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; margin-top: 6px; }
.trs-th-std { display: block; font-size: 12px; color: var(--trf-pink); font-weight: 700; }
.trs-col-pop { box-shadow: inset 0 4px 0 var(--trf-pink); }
.trs-yes { position: relative; padding-left: 22px; font-weight: 600; }
.trs-yes::before { content: ""; position: absolute; left: 0; top: 5px; width: 11px; height: 6px; border-left: 2px solid var(--trf-pink); border-bottom: 2px solid var(--trf-pink); transform: rotate(-45deg); }
.trs-no { color: var(--trf-ink-soft); }
.trs-table-facts { min-width: 680px; }
.trs-table-facts th:first-child { width: 40%; }

/* ---------- photo with text, quote, credentials ---------- */
.trs-split { display: grid; gap: 40px; align-items: center; }
@media (min-width: 880px) { .trs-split { grid-template-columns: .8fr 1.2fr; gap: 72px; } .trs-split-hero { grid-template-columns: 1.2fr .8fr; } }
.trs-quote { margin: 18px 0 0; padding: 0 0 0 24px; border-left: 4px solid var(--trf-pink); font-size: 21px; line-height: 1.5; font-weight: 600; letter-spacing: -0.01em; }
.trs-quote p { margin: 0 0 16px; }
.trs-quote footer { font-size: 15px; font-weight: 700; color: var(--trf-ink-soft); }
@media (min-width: 980px) { .trs-quote { font-size: 25px; padding-left: 32px; } }
.trs-creds { list-style: none; margin: 24px 0 0 !important; padding: 4px 22px !important; background: var(--trf-paper); box-shadow: var(--trf-shadow); }
.trs-two-even .trs-creds { margin-top: 0 !important; }
.trs-creds li { padding: 14px 0; border-bottom: 1px solid var(--trf-line); }
.trs-creds li:last-child { border-bottom: 0; }
.trs-creds strong { display: block; font-size: 16px; }
.trs-creds span { display: block; font-size: 14px; color: var(--trf-ink-soft); }

/* ---------- grids of short blocks (one card each) ---------- */
.trs-grid { display: grid; gap: 20px; margin-top: 28px; }
.trs-grid > div { padding: 26px 24px; background: var(--trf-paper); box-shadow: var(--trf-shadow); transition: transform .35s var(--trf-ease), box-shadow .35s var(--trf-ease); }
.trs-grid > div:hover { transform: translateY(-3px); box-shadow: var(--trf-shadow-lift); }
.trs-grid h3 { font-size: 19px; margin-bottom: 8px; }
.trs-grid p:not(.trf-label) { color: var(--trf-ink-soft); }
.trs-num { font-size: 13px !important; font-weight: 700; letter-spacing: .14em; color: var(--trf-pink) !important; margin-bottom: 8px !important; }
@media (min-width: 760px) { .trs-grid-2, .trs-grid-4 { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1040px) { .trs-grid-4 { grid-template-columns: repeat(4, 1fr); } }
.trs-grid-2 h3 { font-size: 22px; }

/* ---------- contact ---------- */
.trs-contact { margin-top: 0; }
.trs-big { font-size: 20px; font-weight: 700; color: var(--trf-ink) !important; letter-spacing: -0.01em; margin-bottom: 6px !important; }
.trs .trs-big a { color: var(--trf-ink); }
.trs-break { overflow-wrap: anywhere; font-size: 17px !important; }
.trs-form form { margin-top: 24px; }
.trs-contact .trf-btn { margin-top: 6px; }
.trs-side-box { background: var(--trf-paper); box-shadow: var(--trf-shadow); padding: 22px; margin-top: 20px; }
.trs-aside .trf-cta { margin: 0; grid-template-columns: 1fr; }
.trs-aside > .trf-small { margin-top: 18px !important; }

/* ---------- forms (the site's WPForms form on the contact page) ---------- */
.trs-form { margin: 0; }
.trs-form .wpforms-container { --wpforms-field-border-radius: 0; --wpforms-field-border-color: #000; --wpforms-field-border-size: 1px; --wpforms-button-border-radius: 0; --wpforms-button-background-color: #c2185b; --wpforms-button-text-color: #fff; --wpforms-label-color: #000; --wpforms-field-size-input-height: 48px; margin-top: 20px; }
.trs-form label, .trs-form .wpforms-field-label { display: block; font-size: 14px; font-weight: 700; margin: 0 0 6px; color: var(--trf-ink); }
.trs-form .trs-field, .trs-form .wpforms-field { margin: 0 0 16px; padding: 0; }
.trs-form input[type="text"], .trs-form input[type="email"], .trs-form input[type="tel"], .trs-form select, .trs-form textarea { display: block; width: 100%; max-width: 100%; min-height: 48px; padding: 12px 14px; border: 1px solid var(--trf-ink); border-radius: 0; background: var(--trf-paper); color: var(--trf-ink); font: 16px/1.4 var(--trf-font); box-shadow: none; transition: box-shadow .2s; }
.trs-form textarea { min-height: 120px; }
.trs-form input:focus, .trs-form select:focus, .trs-form textarea:focus { outline: 2px solid var(--trf-pink); outline-offset: 1px; box-shadow: 0 6px 18px rgba(0, 0, 0, .08); }
.trs-form button[type="submit"], .trs-form .wpforms-submit { min-height: 48px; padding: 12px 22px; border: 1px solid var(--trf-pink); border-radius: 0; background: var(--trf-pink); color: var(--trf-paper); font: 700 15px/1.2 var(--trf-font); cursor: pointer; transition: background .2s, transform .2s var(--trf-ease), box-shadow .2s var(--trf-ease); }
.trs-form button[type="submit"]:hover, .trs-form .wpforms-submit:hover { background: var(--trf-pink-dark); border-color: var(--trf-pink-dark); transform: translateY(-2px); box-shadow: 0 10px 22px rgba(0, 0, 0, .16); }
.trs-form .trs-check { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; }
.trs-form .trs-check input { width: 18px; height: 18px; margin-top: 3px; accent-color: var(--trf-pink); }
@media (min-width: 560px) { .trs-form .trs-cols { display: grid; grid-template-columns: 1fr 1fr; column-gap: 16px; } }

/* ---------- 2.2.2: two-option cards, steps, price groups, a list of quoted services ---------- */
@media (min-width: 760px) { .trs-paths-2 { grid-template-columns: 1fr 1fr; } }
.trs-steps { margin: 4px 0 0; padding-left: 20px; display: grid; gap: 10px; }
.trs-steps li { padding-left: 4px; color: var(--trf-ink-soft); }
.trs-steps li::marker { color: var(--trf-pink); font-weight: 700; }
.trs-aside .trs-side-box { margin: 0 0 20px; }
.trs-glance h3 a { color: var(--trf-ink); text-decoration: none; }
.trs-glance h3 a::after { content: "\2192"; display: inline-block; margin-left: 8px; color: var(--trf-pink); transition: transform .25s var(--trf-ease); }
.trs-glance h3 a:hover { color: var(--trf-pink); }
.trs-glance h3 a:hover::after { transform: translateX(4px); }
.trs-glance .trs-rows { box-shadow: none; padding: 0 !important; margin-top: 6px !important; }
.trs-list .trs-unit { font-size: 13px; font-weight: 600; }

/* ---------- the plugin's enquiry form ([tre_ops_enquiry], styled by portal.css) in the TRE look ---------- */
.trs .trs-enquiry .tre-portal { font-family: var(--trf-font); font-size: 15px; color: var(--trf-ink); margin-top: 24px; }
.trs .trs-enquiry .tre-portal .card { border: 0; border-radius: 0; padding: 0; margin: 0; background: transparent; box-shadow: none; }
.trs .trs-enquiry .tre-portal .grid { display: grid; grid-template-columns: 1fr; gap: 14px 16px; }
@media (min-width: 560px) { .trs .trs-enquiry .tre-portal .grid { grid-template-columns: 1fr 1fr; } }
.trs .trs-enquiry .tre-portal label { display: flex; flex-direction: column; gap: 6px; font-size: 14px; font-weight: 700; color: var(--trf-ink); }
.trs .trs-enquiry .tre-portal input:not([type="checkbox"]), .trs .trs-enquiry .tre-portal textarea { min-height: 48px; padding: 12px 14px; border: 1px solid var(--trf-ink); border-radius: 0; background: var(--trf-paper); color: var(--trf-ink); font: 16px/1.4 var(--trf-font); box-shadow: none; }
.trs .trs-enquiry .tre-portal input:focus, .trs .trs-enquiry .tre-portal textarea:focus { outline: 2px solid var(--trf-pink); outline-offset: 1px; border-color: var(--trf-ink); box-shadow: 0 6px 18px rgba(0, 0, 0, .08); }
.trs .trs-enquiry .tre-portal h3 { margin: 30px 0 6px; padding-bottom: 10px; border-bottom: 1px solid var(--trf-ink); color: var(--trf-pink); font-size: 12px; letter-spacing: .16em; text-transform: uppercase; font-weight: 700; }
.trs .trs-enquiry .tre-portal p strong { display: block; margin-top: 18px; font-size: 15px; }
.trs .trs-enquiry .tre-portal label.check { flex-direction: row; align-items: flex-start; gap: 10px; margin: 4px 0; font-size: 14px; font-weight: 600; line-height: 1.4; }
.trs .trs-enquiry .tre-portal label.check input { flex: none; width: 18px; height: 18px; margin: 1px 0 0; accent-color: var(--trf-pink); }
.trs .trs-enquiry .tre-portal .hint { font-weight: 400; font-size: 13px; color: var(--trf-ink-soft); }
.trs .trs-enquiry .tre-portal .grid label.check { display: block; position: relative; padding: 10px 12px 10px 40px; margin: 0; background: var(--trf-paper); box-shadow: var(--trf-shadow-sm); transition: box-shadow .2s var(--trf-ease), transform .2s var(--trf-ease); }
.trs .trs-enquiry .tre-portal .grid label.check:hover { transform: translateY(-1px); box-shadow: var(--trf-shadow); }
.trs .trs-enquiry .tre-portal .grid label.check input { position: absolute; left: 12px; top: 12px; margin: 0; }
.trs .trs-enquiry .tre-portal .grid label.check .hint { display: block; margin-top: 3px; }
.trs .trs-enquiry .tre-portal .grid label.check:has(input:checked) { box-shadow: inset 0 0 0 1px var(--trf-ink), var(--trf-shadow-sm); }
.trs .trs-enquiry .tre-portal label.full { margin-top: 18px; }
.trs .trs-enquiry .tre-portal .btn { min-height: 52px; margin-top: 18px; padding: 14px 26px; border: 1px solid var(--trf-pink); border-radius: 0; background: var(--trf-pink); color: var(--trf-paper); font: 700 15px/1.2 var(--trf-font); letter-spacing: .01em; text-transform: none; cursor: pointer; transition: background .2s, transform .2s var(--trf-ease), box-shadow .2s var(--trf-ease); }
.trs .trs-enquiry .tre-portal .btn:hover { background: var(--trf-pink-dark); border-color: var(--trf-pink-dark); transform: translateY(-2px); box-shadow: 0 10px 22px rgba(0, 0, 0, .16); }

/* ---------- scroll reveals (site.js adds these classes only to blocks below the fold) ---------- */
.trs-reveal { opacity: 0; transform: translateY(26px); transition: opacity .7s var(--trf-ease), transform .7s var(--trf-ease) !important; }
.trs-reveal.trs-in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
	.trs *, .trs *::before, .trs *::after, .trf-head *, .trf-head *::after, .trf-foot * { animation: none !important; transition: none !important; }
	.trs-reveal { opacity: 1 !important; transform: none !important; }
	.trs .trs-path:hover, .trs .trs-venture:hover, .trs-svc:hover, .trs-grid > div:hover, .trs .trs-jump a:hover, .trs-path:hover .trs-path-img img { transform: none; }
}
@media print { .trf-head, .trf-band, .trs-actions { display: none; } .trs-reveal { opacity: 1; transform: none; } }

/* ---------- 2.3.18: which package is yours (one question per line), five packages as three plus two ---------- */
.trs-wide-narrow { max-width: 920px; }
.trs-choose { margin-top: 26px; border-top: 1px solid var(--trf-ink); }
.trf a.trs-choose-row, .trs-choose-row { display: grid; grid-template-columns: 40px 1fr; align-items: center; gap: 8px 14px; padding: 14px 0; border-bottom: 1px solid var(--trf-line); color: var(--trf-ink); text-decoration: none; transition: padding .25s var(--trf-ease); }
.trf a.trs-choose-row:hover { padding-left: 6px; color: var(--trf-ink); }
.trf a.trs-choose-row:hover .trs-choose-q { color: var(--trf-pink); }
.trs-choose-n { font-weight: 700; font-size: 18px; color: var(--trf-pink); font-variant-numeric: tabular-nums; }
.trs-choose-q { font-size: 18px; line-height: 1.35; transition: color .2s; }
.trs-choose-p { grid-column: 2; display: flex; justify-content: space-between; align-items: baseline; gap: 12px; background: var(--trf-ink); color: var(--trf-paper); padding: 10px 16px; box-shadow: var(--trf-shadow-sm); }
.trs-choose-p b { font-size: 15px; }
.trs-choose-p span { font-size: 22px; font-weight: 700; white-space: nowrap; letter-spacing: -0.01em; font-variant-numeric: tabular-nums; }
.trs-choose-p span small { font-size: 12px; font-weight: 400; letter-spacing: 0; }
.trs-choose-quote .trs-choose-p span { font-size: 17px; }
@media (min-width: 720px) { .trf a.trs-choose-row, .trs-choose-row { grid-template-columns: 48px 1fr 290px; } .trs-choose-p { grid-column: auto; } }
.trs-choose-then { margin-top: 18px !important; font-size: 16px; }
.trs-choose-then b { color: var(--trf-pink); }
.trs-choose-help { margin-top: 10px !important; font-size: 15px; color: var(--trf-ink-soft); }
@media (min-width: 1100px) {
	.trf-plans.trs-plans-5 { grid-template-columns: repeat(6, 1fr); }
	.trs-plans-5 .trf-plan { grid-column: span 2; }
	.trs-plans-5 .trf-plan:nth-child(4), .trs-plans-5 .trf-plan:nth-child(5) { grid-column: span 3; }
}
@media (min-width: 760px) { .trf-plans.trs-plans-2 { grid-template-columns: 1fr 1fr; } }
.trs-table-5 { min-width: 920px; }
.trs-npo-extras { margin-top: 32px; }

/* ---------- 2.3.18: the Black Friday page ---------- */
.trs .trs-bf-hero { background: var(--trf-ink); color: var(--trf-paper); }
.trs .trs-bf-hero h1 { color: var(--trf-paper); }
.trs .trs-bf-hero .trf-label { display: inline-block; padding: 4px 10px; background: var(--trf-pink); color: var(--trf-paper); }
.trs .trs-bf-hero .trf-lead { color: #d6d6d6; }
.trs .trs-bf-hero a { color: var(--trf-paper); }
.trs .trs-bf-ticks { margin: 18px 0 26px !important; gap: 10px; }
.trs .trs-bf-ticks li { color: var(--trf-paper); font-size: 16px; }
.trs .trs-bf-ticks li::before { border-color: var(--trf-pink); }
.trs-bf-places { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin: 22px 0 0 !important; color: #d6d6d6; font-size: 15px; }
.trs-bf-places strong { background: var(--trf-paper); color: var(--trf-ink); padding: 4px 10px; font-size: 14px; letter-spacing: .02em; }
.trs-bf-count { font-variant-numeric: tabular-nums; }
.trs-bf-sub { margin-top: 18px !important; }
.trs .trs-bf-board a { color: var(--trf-ink); }
.trs-bf-table { min-width: 680px; margin-top: 26px; }
.trs-bf-table td small { color: var(--trf-ink-soft); font-size: 13px; }
.trs-bf-strong { font-weight: 700; font-variant-numeric: tabular-nums; }
.trs-bf-promise { align-items: center; }
.trs-bf-portrait img { display: block; width: 100%; height: auto; max-height: 600px; object-fit: cover; object-position: top; }
.trs-bf-portrait figcaption { background: var(--trf-ink); color: var(--trf-paper); padding: 12px 16px; font-size: 14px; }
.trs-bf-portrait figcaption strong { display: block; font-size: 17px; }
.trs-bf-pillars { display: grid; gap: 20px; margin-top: 22px; }
.trf .trs-bf-pillars h3 { font-size: 20px; color: var(--trf-pink); }
.trf .trs-bf-pillars h3::after { content: ""; display: block; width: 36px; height: 3px; background: var(--trf-pink); margin-top: 8px; }
.trs-bf-pillars p { margin: 8px 0 0 !important; color: var(--trf-ink-soft); }
.trs-bf-box { background: var(--trf-paper); border-top: 4px solid var(--trf-pink); box-shadow: var(--trf-shadow); padding: 26px 22px; transition: transform .35s var(--trf-ease), box-shadow .35s var(--trf-ease); }
.trs-bf-box:hover { transform: translateY(-4px); box-shadow: var(--trf-shadow-lift); }
@media (min-width: 760px) { .trs-bf-box { padding: 32px 30px; } }
.trf .trs-bf-box h3 { font-size: 24px; margin: 2px 0 12px; }
.trs-bf-box .trf-btn { margin-top: 18px; }
@media (prefers-reduced-motion: reduce) { .trs-bf-box:hover { transform: none; } }

/* v2.3.21: Sign up row under the package comparison */
.trs-table tfoot th, .trs-table tfoot td { border-bottom: 0; padding-top: 18px; vertical-align: middle; }
