/*
 * Territory landing page (blocks/territory-page/). Handle "tfp-territory", after tfp-industry for the --ind-* tokens
 * and the section kit (section head, benefit list, tiles, chips, process row, closing CTA + form card). The hero is
 * the explorer hub's navy head with the photo wash from function-hero-photo.php. Everything else: 1px borders,
 * 4px radius, no shadows or gradients, yellow as a surface or a rule, never as text on light.
 */

.tp { color: var(--ind-text, #2B3440); background: #fff; }
.tp-wrap { width: 100%; max-width: 1312px; margin: 0 auto; padding-left: clamp(1rem, 3vw, 3rem); padding-right: clamp(1rem, 3vw, 3rem); }
.tp :focus-visible { outline: 2px solid var(--ind-blue); outline-offset: 2px; }
.tp .ind-mono { letter-spacing: .02em; }
.tp-ico { flex: none; width: 20px; height: 20px; }

/* ---- Hero -------------------------------------------------------------- */

.tp-hero { padding: clamp(2.5rem, 5vw, 4.5rem) 0 clamp(2.5rem, 5vw, 4rem); background: var(--ind-ink, #0D3556); color: #fff; }
.tp-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2rem; align-items: center; }
@media (min-width: 1024px) { .tp-hero__grid { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 4rem; } }
.tp-crumb { margin: 0 0 1.25rem; font-size: 12px; line-height: 18px; letter-spacing: .08em; text-transform: uppercase; color: var(--ind-yellow); }
.tp-crumb a { color: inherit !important; text-decoration: none !important; }
.tp-crumb a:hover { text-decoration: underline !important; }
.tp-crumb .breadcrumb_last { color: inherit; font-weight: 400; }
.tp-eyebrow { margin: 0 0 .75rem; font-size: 13px; line-height: 16px; letter-spacing: .08em; text-transform: uppercase; color: rgba(255, 255, 255, .76); }
.tp-hero__title { margin: 0 0 1rem; max-width: 22ch; color: #fff; font-size: clamp(32px, 3.6vw, 50px); line-height: 1.08; letter-spacing: -.02em; text-wrap: balance; }
.tp-hero__sub { margin: 0 0 .9rem; font-size: clamp(19px, 1.6vw, 24px); line-height: 1.35; font-weight: 700; color: var(--ind-yellow); }
.tp-hero__lead { margin: 0; max-width: 62ch; font-size: clamp(17px, 1.35vw, 19px); line-height: 1.6; color: rgba(255, 255, 255, .88); }
.tp-hero__ctas { margin: 1.75rem 0 0; display: flex; flex-wrap: wrap; gap: 1rem 1.5rem; align-items: center; }
.tp-hero__ctas .button { margin: 0; }
.tp-hero :focus-visible { outline-color: var(--ind-yellow); }
.tp-btn-call { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; padding: .5rem 0; color: #fff; font-weight: 700; text-decoration: none !important; border-bottom: 2px solid transparent; transition: var(--ind-fade); }
.tp-btn-call:hover, .tp-btn-call:focus { color: var(--ind-yellow); border-bottom-color: var(--ind-yellow); }
.tp-btn-call .ind-mono { font-weight: 400; }
.tp-hero.tfp-photohero .tp-hero__grid { position: relative; }

/* The territory manager's card: white on the navy hero, white on the navy CTA. */
.tp-rep { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 1.25rem; align-items: start; padding: 20px; background: #fff; color: var(--ind-text); border-radius: var(--ind-radius, 4px); border: 1px solid var(--ind-n100); }
.tp-rep__media { width: 96px; height: 96px; overflow: hidden; border-radius: var(--ind-radius, 4px); background: var(--ind-n50); border: 1px solid var(--ind-n100); }
.tp-rep__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.tp-rep__initials { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; font-size: 30px; font-weight: 700; letter-spacing: .02em; color: var(--ind-ink); background: var(--ind-yellow); }
.tp-rep__name { margin: 0; font-size: 20px; line-height: 26px; font-weight: 700; color: var(--ind-ink); }
.tp-rep__title { margin: 0 0 .5rem; font-size: 14px; line-height: 20px; color: var(--ind-steel); }
.tp-rep__tel { display: inline-flex; align-items: center; gap: .4rem; min-height: 44px; margin: 0 0 .25rem; font-size: 18px; font-weight: 700; color: var(--ind-blue); text-decoration: none !important; }
.tp-rep__tel:hover, .tp-rep__tel:focus { color: var(--ind-ink); }
.tp-rep__line { margin: .5rem 0 0; font-size: 12px; line-height: 16px; color: var(--ind-muted); }
@media (max-width: 479px) { .tp-rep { grid-template-columns: 72px minmax(0, 1fr); gap: 1rem; padding: 16px; } .tp-rep__media { width: 72px; height: 72px; } .tp-rep__initials { font-size: 24px; } }
.tp-rep--cta { margin-top: 1rem; }

/* Light twin (header review toggle) */
html[data-theme="light"] .tp-hero { background: #fff; color: var(--ind-ink); border-bottom: 1px solid var(--ind-n200); }
html[data-theme="light"] .tp-crumb { color: var(--ind-blue); }
html[data-theme="light"] .tp-hero__title { color: var(--ind-ink); }
html[data-theme="light"] .tp-hero__lead, html[data-theme="light"] .tp-eyebrow { color: var(--ind-steel); }
html[data-theme="light"] .tp-hero__sub { color: var(--ind-blue); }   /* yellow is never text on a light surface */
html[data-theme="light"] .tp-btn-call { color: var(--ind-blue); }
html[data-theme="light"] .tp-rep { border-color: var(--ind-n200); }

/* ---- Jump links ------------------------------------------------------------ */

.tp-jump { background: #fff; border-bottom: 1px solid var(--ind-n100); }
.tp-jump__list { list-style: none; margin: 0; padding: 0; display: flex; gap: 0 .25rem; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
.tp-jump__list::-webkit-scrollbar { display: none; }
.tp-jump__list li { margin: 0; flex: none; }
.tp-jump__list li::before { content: none; }
.tp-jump__link { display: inline-block; padding: 14px 12px; font-size: 14px; line-height: 20px; font-weight: 700; color: var(--ind-steel); text-decoration: none !important; border-bottom: 3px solid transparent; margin-bottom: -1px; transition: var(--ind-fade); }
.tp-jump__link:hover, .tp-jump__link:focus { color: var(--ind-ink); border-bottom-color: var(--ind-yellow); }
@media (min-width: 768px) { .tp-jump__list { gap: 0 1rem; } .tp-jump__link { padding: 16px 4px; font-size: 15px; } }

/* ---- Trust strip --------------------------------------------------------- */

.tp-trust { background: var(--ind-ink-raise, #035B77); color: #fff; }
.tp-trust .tp-wrap { max-width: none; }   /* full width (Danny, 20 Oct): the items spread across the whole band instead of wrapping inside 1312px */
@media (min-width: 1024px) { .tp-trust__list { justify-content: space-evenly; gap: .5rem 1.5rem; } }
.tp-trust__list { list-style: none; margin: 0; padding: 18px 0; display: flex; flex-wrap: wrap; gap: .5rem 2.5rem; justify-content: center; color: inherit; }   /* the theme colours every ul */
.tp-trust__item { display: inline-flex; align-items: center; gap: .6rem; margin: 0; padding: 4px 0; font-size: 17px; line-height: 24px; font-weight: 500; color: inherit; }   /* 17px (Danny, 20 Oct: larger) */
@media (max-width: 767px) { .tp-trust__item { font-size: 15px; line-height: 22px; } .tp-trust__list { gap: .25rem 1.5rem; padding: 14px 0; } }
.tp-trust__item::before { content: none; }
.tp-ico--check { width: 18px; height: 18px; color: var(--ind-yellow); }
html[data-theme="light"] .tp-trust { background: var(--ind-n50); color: var(--ind-ink); border-bottom: 1px solid var(--ind-n200); }
html[data-theme="light"] .tp-ico--check { color: var(--ind-blue); }

/* ---- Logo strip (the homepage's, sized by tfp-home's .home-logos rules) -------- */

.tp-logos { padding-top: calc(var(--ind-section-y) * .7); border-bottom: 1px solid var(--ind-n100); }
.tp-logos .home-logos__title { text-align: center; }

/* ---- More of our work ---------------------------------------------------------- */

.tp-more { background: var(--ind-n50); }
.tp-more__tile .ind-tile__media img { aspect-ratio: 2 / 1; }
.tp-more__tile .ind-tile__title { font-size: 22px; line-height: 28px; }

/* ---- Reasons: the timed accordion ------------------------------------------- */

.tp-ta { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; align-items: center; margin-top: .5rem; }
@media (min-width: 1024px) { .tp-ta { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 4rem; } }
/* 16px corners on this media only (Danny, 20 Oct) — the rest of the page keeps the system's 4px. */
.tp-ta__media { position: relative; margin: 0; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 16px; border: 1px solid var(--ind-n100); background: var(--ind-n50); }
.tp-ta__media img, .tp-ta__img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .15s ease-out; }
.tp-ta__img.is-active { opacity: 1; }
@media (prefers-reduced-motion: reduce) { .tp-ta__img { transition: none; } }
.tp-ta__media--empty { display: flex; align-items: center; justify-content: center; padding: 20px; }
.tp-ta__items { border-top: 1px solid var(--ind-n100); }
.tp-ta__item { position: relative; border-bottom: 1px solid var(--ind-n100); }
.tp-ta__title { margin: 0; font-size: inherit; line-height: inherit; }
.tp-ta__btn { display: flex; align-items: baseline; gap: .9rem; width: 100%; min-height: 56px; margin: 0; padding: 18px 0; text-align: left; font: inherit; font-size: 19px; line-height: 26px; font-weight: 700; color: var(--ind-steel); background: none; border: 0; cursor: pointer; transition: var(--ind-fade); }
.tp-ta__btn:hover { color: var(--ind-ink); }
.tp-ta__btn:focus-visible { outline: 2px solid var(--ind-blue); outline-offset: -2px; }
.tp-ta__num { flex: none; font-size: 13px; line-height: 16px; font-weight: 600; letter-spacing: .08em; color: var(--ind-blue); }
.tp-ta__item.is-active .tp-ta__btn { color: var(--ind-ink); }
.tp-ta__panel { padding: 0 0 20px 2.1rem; }
.tp-ta__copy { margin: 0 0 .5rem; font-size: 16px; line-height: 26px; color: var(--ind-text); }
.tp-ta__link { margin: 0; }
.tp-ta__link .ind-textlink { padding: .4rem 0; }
.tp-ta__bar { position: absolute; left: 0; right: 0; bottom: -1px; height: 3px; background: transparent; overflow: hidden; }
.tp-ta__fill { display: block; width: 0; height: 100%; background: var(--ind-yellow); }
.tp-ta__item.is-active .tp-ta__bar { background: var(--ind-n100); }
.tp-ta--static .tp-ta__bar { display: none; }   /* reduced motion or a single item: a plain accordion, no timer */
@media (max-width: 1023px) { .tp-ta__btn { font-size: 17px; line-height: 24px; min-height: 52px; padding: 14px 0; } .tp-ta__panel { padding-left: 1.9rem; } }

/* ---- Systems ---------------------------------------------------------------- */

.tp-tile .ind-tile__media img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; }

.tp-tile__media--empty { display: flex; align-items: center; justify-content: center; aspect-ratio: 16 / 10; padding: 20px; border-bottom: 1px solid var(--ind-n100); }
.tp-tile__brief { font-size: 12px; line-height: 18px; text-align: center; color: var(--ind-muted); }
.tp-chips { margin-top: var(--ind-gap); }
@media (min-width: 640px) { .tp-chips { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .tp-chips { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.tp-chip { background: #fff; }
.tp-chip::before { content: none; }
.tp-chip__title { margin: 0 0 .35rem; font-size: 17px; line-height: 24px; color: var(--ind-ink); }
.tp-chip__title a { color: var(--ind-ink); text-decoration: none !important; border-bottom: 2px solid transparent; transition: var(--ind-fade); }
.tp-chip__title a:hover, .tp-chip__title a:focus { color: var(--ind-blue); border-bottom-color: var(--ind-yellow); }
.tp-chip__copy { margin: 0 0 .6rem; font-size: 14px; line-height: 22px; }
.tp-chip__link { margin: 0; font-size: 14px; line-height: 20px; }
.tp-chip__link a { font-weight: 700; color: var(--ind-blue); text-decoration: none !important; }
.tp-chip__link a:hover, .tp-chip__link a:focus { color: var(--ind-ink); }

/* ---- Facility needs ---------------------------------------------------------- */

.tp-facilities { background: #fff; border-top: 1px solid var(--ind-n100); }
.tp-facility::before { content: none; }

/* ---- Process: five columns, not the kit's six --------------------------------- */

@media (min-width: 1024px) { .tp-process--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); } .tp-process--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.tp-process li::before { content: none; }
.tp-back { margin: 2rem 0 0; }

/* ---- FAQ ---------------------------------------------------------------------- */

.tp-faq__note { margin: 1rem 0 0; font-size: 15px; line-height: 24px; color: var(--ind-steel); }
@media (min-width: 1024px) { .tp-faq .large-4 { padding-right: 48px; } }
.tp-faq .tfp-faq { margin-top: 1rem; }
@media (min-width: 1024px) { .tp-faq .tfp-faq { margin-top: 0; } }

/* ---- Projects ------------------------------------------------------------------ */

.tp-proof__note { margin: var(--ind-gap) 0 0; font-size: 14px; line-height: 22px; color: var(--ind-muted); }
.tp-proof__more { font-weight: 700; color: var(--ind-blue); text-decoration: none !important; }
.tp-proof__more:hover, .tp-proof__more:focus { color: var(--ind-ink); }

/* ---- Territory map --------------------------------------------------------------- */

.tp-map-section { background: var(--ind-n50); }
.tp-map { display: flex; align-items: flex-start; justify-content: center; }
.tp-map__svg { display: block; width: 100%; max-width: 440px; height: auto; }
.tp-map__context path { fill: #fff; stroke: var(--ind-n200); stroke-width: 1; }
.tp-map__core path { fill: var(--ind-blue); stroke: #fff; stroke-width: 1.5; }
.tp-map__core .tp-map__il { fill: var(--ind-blue); }
.tp-map__core .tp-map__in { fill: var(--ind-ink); }
.tp-map__core .tp-map__wi { fill: var(--ind-steel); }
.tp-counties__state--illinois { border-left-color: var(--ind-blue); }
.tp-counties__state--indiana { border-left-color: var(--ind-ink); }
.tp-counties__state--wisconsin { border-left-color: var(--ind-steel); }
.tp-counties { margin-bottom: 1.5rem; }
.tp-map__lead { margin: 0; }
.tp-map__optional path { fill: #fff; stroke: var(--ind-n200); stroke-width: 1; }
.tp-map-section--milwaukee .tp-map__optional path { fill: var(--ind-blue); stroke: #fff; stroke-width: 1.5; stroke-dasharray: 4 3; }
.tp-map__city circle { fill: var(--ind-yellow); stroke: var(--ind-ink); stroke-width: 2; }
.tp-map__city text { font: 700 15px/1 var(--renoun-global-font-body, sans-serif); fill: var(--ind-ink); paint-order: stroke; stroke: #fff; stroke-width: 4; stroke-linejoin: round; }
.tp-map__water { font: 400 13px/1 var(--renoun-global-font-body, sans-serif); font-style: italic; fill: var(--ind-muted); }
.tp-map__copy { margin-top: 1.5rem; }
@media (min-width: 1024px) { .tp-map__copy { margin-top: 0; padding-left: 48px; } }
.tp-map__lead { margin: 0 0 1.5rem; font-size: 16px; line-height: 26px; }
.tp-counties { margin: 0; display: grid; gap: 1rem; }
.tp-counties__state { border-left: 3px solid var(--ind-yellow); padding-left: 16px; }
.tp-counties__name { margin: 0 0 .2rem; font-size: 12px; line-height: 16px; letter-spacing: .08em; text-transform: uppercase; font-weight: 700; color: var(--ind-blue); }
.tp-counties__list { margin: 0; font-size: 15px; line-height: 23px; color: var(--ind-ink); }

/* ---- Closing CTA --------------------------------------------- */

.tp-cta .ind-cta__prefer { margin-top: 1.5rem; }
.tp-cta__hours { margin: .75rem 0 0; font-size: 13px; line-height: 18px; color: var(--ind-n200); }

/* ---- The stepped form (territory-page.js) ----------------------------------------
   One Gravity Forms page, one submit; the steps are shown and hidden in the browser (Danny, 22 Oct).
   Type scale inside the card: step list 15px · question / step title 19px bold · field labels 15px bold ·
   choice cards 16px regular · inputs 16px (tfp-forms.css; below 16px iOS zooms the page). */

/* Progress list */
.tp-form-card .tp-steps { list-style: none; display: flex; flex-wrap: wrap; gap: 0 1.75rem; margin: 0 0 24px; padding: 0; border-bottom: 1px solid var(--ind-n100); }
.tp-form-card .tp-steps__item { display: flex; align-items: center; gap: 10px; margin: 0 0 -1px; padding: 0 0 14px; font-size: 15px; line-height: 20px; font-weight: 600; color: var(--ind-muted); border-bottom: 3px solid transparent; transition: var(--ind-fade); }
.tp-form-card .tp-steps__item::before { content: none; }
.tp-form-card .tp-steps__num { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 28px; height: 28px; font-size: 13px; font-weight: 700; color: var(--ind-ink); background: var(--ind-n100); border-radius: 50%; transition: var(--ind-fade); }
.tp-form-card .tp-steps__item.is-active { color: var(--ind-ink); border-bottom-color: var(--ind-yellow); }
.tp-form-card .tp-steps__item.is-active .tp-steps__num { background: var(--ind-yellow); }
.tp-form-card .tp-steps__item.is-done { color: var(--ind-steel); }
.tp-form-card .tp-steps__item.is-done .tp-steps__num { color: #fff; background: var(--ind-blue); }
@media (max-width: 479px) { .tp-form-card .tp-steps { gap: 0 1rem; } .tp-form-card .tp-steps__label { display: none; } .tp-form-card .tp-steps__item.is-active .tp-steps__label { display: inline; } }

/* One step at a time; the step coming in fades up. */
.tp-form-card .tp-stepped .gfield[hidden] { display: none !important; }
.tp-form-card .tp-step-enter { animation: tp-step-in .22s ease-out both; }
@keyframes tp-step-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

/* Step headings (steps 2 and 3) and the step-1 question share one style. */
.tp-form-card .tp-step-head p { margin: 0; }
.tp-form-card .tp-step-title { font-size: 19px; line-height: 26px; font-weight: 700; color: var(--ind-ink); }
.tp-form-card .tp-step-sub { margin-top: 2px !important; font-size: 15px; line-height: 22px; color: var(--ind-steel); }
body .tp-form-card .gform_wrapper.gravity-theme[class][class][class][class] .tp-choice-cards .gfield_label { margin: 0 0 14px; font-size: 19px; line-height: 26px; font-weight: 700; letter-spacing: 0; color: var(--ind-ink); }

/* Field labels inside the card: one size, readable. */
body .tp-form-card .gform_wrapper.gravity-theme[class][class][class][class] .gfield:not(.tp-choice-cards) > .gfield_label,
body .tp-form-card .gform_wrapper.gravity-theme[class][class][class][class] .gfield:not(.tp-choice-cards) > legend.gfield_label { margin: 0 0 8px; font-size: 15px; line-height: 20px; font-weight: 700; letter-spacing: 0; color: var(--ind-ink); }
body .tp-form-card .gform_wrapper.gravity-theme[class][class][class][class] .gfield_optional { font-size: 14px; }
body .tp-form-card .gform_wrapper.gravity-theme[class][class][class][class] .gchoice label { font-size: 15px; line-height: 21px; }

/* Step 1: the choice cards. The radio stays in the DOM for the keyboard; the label is the card. Text and radio are
   centred on each other, and every card in a row is the same height. */
body .tp-form-card .gform_wrapper.gravity-theme[class][class][class][class] .tp-choice-cards .gfield_radio { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
@media (min-width: 560px) { body .tp-form-card .gform_wrapper.gravity-theme[class][class][class][class] .tp-choice-cards .gfield_radio { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
body .tp-form-card .gform_wrapper.gravity-theme[class][class][class][class] .tp-choice-cards .gchoice { position: relative; display: flex; margin: 0; }
body .tp-form-card .gform_wrapper.gravity-theme[class][class][class][class] .tp-choice-cards .gchoice input[type="radio"] { position: absolute; top: 50%; left: 16px; width: 18px; height: 18px; margin: 0; transform: translateY(-50%); }
body .tp-form-card .gform_wrapper.gravity-theme[class][class][class][class] .tp-choice-cards .gchoice label { display: flex; align-items: center; flex: 1 1 auto; min-height: 60px; margin: 0; padding: 14px 16px 14px 48px; font-size: 16px; line-height: 22px; font-weight: 500; color: var(--ind-ink); background: #fff; border: 1px solid var(--ind-n200); border-radius: var(--ind-radius, 4px); cursor: pointer; transition: var(--ind-fade); }
body .tp-form-card .gform_wrapper.gravity-theme[class][class][class][class] .tp-choice-cards .gchoice label:hover { border-color: var(--ind-blue); }
body .tp-form-card .gform_wrapper.gravity-theme[class][class][class][class] .tp-choice-cards .gchoice input:checked + label { border-color: var(--ind-ink); background: var(--ind-n50); box-shadow: inset 0 -3px 0 var(--ind-yellow); }
body .tp-form-card .gform_wrapper.gravity-theme[class][class][class][class] .tp-choice-cards .gchoice input:focus-visible + label { outline: 2px solid var(--ind-blue); outline-offset: 2px; }
body .tp-form-card .gform_wrapper.gravity-theme[class][class][class][class] .tp-choice-cards.gfield_error .gchoice label { border-color: var(--tff-error, #B42318); }

/* Footer: Back (quiet, left) · Continue or the submit (yellow, right) · the note under the submit. */
body .tp-form-card .gform_wrapper.gravity-theme[class][class][class][class] .gform_footer { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin: 24px 0 0; }
body .tp-form-card .gform_wrapper.gravity-theme[class][class][class][class] .gform_footer [hidden] { display: none !important; }
body .tp-form-card .gform_wrapper.gravity-theme[class][class][class][class] .tp-step-back { min-height: 48px; margin: 0; padding: 0 4px; font: inherit; font-size: 16px; line-height: 24px; font-weight: 600; color: var(--ind-steel); background: none; border: 0; cursor: pointer; }
body .tp-form-card .gform_wrapper.gravity-theme[class][class][class][class] .tp-step-back:hover { color: var(--ind-ink); }
body .tp-form-card .gform_wrapper.gravity-theme[class][class][class][class] .tp-step-back:focus-visible { outline: 2px solid var(--ind-blue); outline-offset: 2px; border-radius: var(--ind-radius, 4px); }
body .tp-form-card .gform_wrapper.gravity-theme[class][class][class][class] .gform_footer .tp-step-next.button,
body .tp-form-card .gform_wrapper.gravity-theme[class][class][class][class] .gform_footer .gform_button.button { width: auto; min-width: 180px; margin: 0 0 0 auto; }   /* GF's "full width" button setting forced 100%, which pushed Back onto its own line */
body .tp-form-card .gform_wrapper.gravity-theme[class][class][class][class] .gform_footer .tp-step-next.button {
	min-height: 52px; padding: 14px 28px !important;
	font-size: 16px; line-height: 24px; font-weight: 700; color: var(--ind-ink);
	background-color: var(--ind-yellow); border: 1px solid var(--ind-yellow); border-radius: var(--ind-radius, 4px) !important;
	cursor: pointer; transition: background-color .15s ease-out, border-color .15s ease-out;
}
body .tp-form-card .gform_wrapper.gravity-theme[class][class][class][class] .gform_footer .tp-step-next.button:hover,
body .tp-form-card .gform_wrapper.gravity-theme[class][class][class][class] .gform_footer .tp-step-next.button:focus-visible { background-color: var(--ind-gold, #E0AC00); border-color: var(--ind-gold, #E0AC00); color: var(--ind-ink); }
body .tp-form-card .gform_wrapper.gravity-theme[class][class][class][class] .gform_footer .tp-step-next.button:focus-visible { outline: 2px solid var(--ind-blue); outline-offset: 2px; }
body .tp-form-card .gform_wrapper.gravity-theme[class][class][class][class] .gform_footer .tp-step-next.button::before,
body .tp-form-card .gform_wrapper.gravity-theme[class][class][class][class] .gform_footer .tp-step-next.button::after { content: none !important; display: none !important; }
@media (max-width: 639px) {   /* phones: the button full width first, Back as a centred text link under it */
	body .tp-form-card .gform_wrapper.gravity-theme[class][class][class][class] .gform_footer .tp-step-next.button,
	body .tp-form-card .gform_wrapper.gravity-theme[class][class][class][class] .gform_footer .gform_button.button { order: 1; flex: 1 1 100%; width: 100%; margin: 0; }
	body .tp-form-card .gform_wrapper.gravity-theme[class][class][class][class] .tp-step-back { order: 2; flex: 1 1 100%; text-align: center; }
	.tp-form-card .tp-form__note { order: 3; }
}
.tp-form-card .gform_wrapper .gform_footer .gform_ajax_spinner { margin-left: 8px; }

/* The promise under the submit: last step only. */
.tp-form-card .tp-form__note { flex: 1 1 100%; margin: 0; font-size: 14px; line-height: 20px; color: var(--ind-muted); }
.tp-form-card .tp-stepped .gform_footer:not(.tp-footer--last) .tp-form__note { display: none; }
.tp-form-card .gform_wrapper .gform_validation_errors { margin-top: 0; }

@media (prefers-reduced-motion: reduce) { .tp-form-card .tp-step-enter { animation: none; } .tp-form-card .tp-steps__item, .tp-form-card .tp-steps__num { transition: none; } }
@media (prefers-reduced-motion: reduce) { .tp-rep, .tp-btn-call, .tp-chip__title a { transition: none; } }

/* ---- State pages and the hub: the US map (map-us.svg, tools/build-us-map.py) --------- */

.tp-us-wrap { width: 100%; }
.tp-us { display: block; width: 100%; height: auto; }
.tp-us__s { fill: #DCE3EA; stroke: #fff; stroke-width: 1; stroke-linejoin: round; transition: fill .15s ease-out; }
.tp-us__link[href] .tp-us__s { fill: var(--ind-blue, #035B77); fill-opacity: .82; cursor: pointer; }
.tp-us__link[href]:hover .tp-us__s,
.tp-us__link[href]:focus-visible .tp-us__s { fill: var(--ind-ink, #0D3556); fill-opacity: 1; }
.tp-us__link.is-current .tp-us__s { fill: var(--ind-yellow, #FFDE17) !important; fill-opacity: 1; }
.tp-us__labels text { font: 600 11px/1 var(--renoun-global-font-body, sans-serif); fill: #fff; text-anchor: middle; pointer-events: none; letter-spacing: .02em; }
.tp-us__labels .tp-us__call { fill: var(--ind-ink, #0D3556); text-anchor: start; }
.tp-us__leaders line { stroke: var(--ind-muted, #848C95); stroke-width: .75; }
/* The current state's label reads in ink on its yellow fill (yellow is a surface here, never text on light). */
.tp-map-section--state .tp-us__labels text.is-current { fill: var(--ind-ink, #0D3556); }

.tp-map-section--state .tp-map { display: block; }
.tp-map-section--state .tp-map__copy { margin-top: 1.5rem; }
@media (min-width: 1024px) { .tp-map-section--state .tp-map__copy { margin-top: 0; padding-left: 40px; } }
.tp-map-section--state .tp-map__lead { margin: 0 0 1.25rem; }
.tp-counties__list a { color: var(--ind-blue, #035B77); font-weight: 600; text-decoration: none !important; border-bottom: 1px solid transparent; transition: var(--ind-fade); }
.tp-counties__list a:hover, .tp-counties__list a:focus { color: var(--ind-ink); border-bottom-color: var(--ind-yellow); }
.tp-map__extra { margin: .75rem 0 0; }

/* ---- The hub ---------------------------------------------------------------------- */

.tp-hero--hub .tp-hero__grid { grid-template-columns: minmax(0, 1fr); }
.tp-hero--hub .tp-hero__title { max-width: 18ch; }
.tp-hubmap > .row + .row { margin-top: clamp(2.5rem, 5vw, 4rem); }
.tp-us-wrap--hub { max-width: 1040px; margin: .5rem auto 0; }
.tp-regions { display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px 32px; }
@media (min-width: 640px) { .tp-regions { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .tp-regions { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.tp-region { border-top: 3px solid var(--ind-yellow); padding-top: 14px; }
.tp-region__name { margin: 0 0 .2rem; font-size: 19px; line-height: 26px; color: var(--ind-ink); }
.tp-region__reps { margin: 0 0 .6rem; font-size: 14px; line-height: 20px; color: var(--ind-steel); }
.tp-region__states { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.tp-region__states li { margin: 0; font-size: 15px; line-height: 22px; }
.tp-region__states li::before { content: none; }
.tp-region__states a { color: var(--ind-blue, #035B77); font-weight: 600; text-decoration: none !important; border-bottom: 1px solid transparent; transition: var(--ind-fade); }
.tp-region__states a:hover, .tp-region__states a:focus { color: var(--ind-ink); border-bottom-color: var(--ind-yellow); }
@media (prefers-reduced-motion: reduce) { .tp-us__s { transition: none; } }
