/* Site footer, "Credentials Wall" (Footer concepts v1.0, concept B; Parker chose it 2026-11-13).
   Three bands from the Connect with Us module: light credentials, blue subscribe, night site map. The legal row
   under them is the Footer module (main-footer.css). Brand: Andada Pro headings, Montserrat text, square corners;
   red-orange never as text on blue. Badges are drawn for light backgrounds, so they only sit on the light band. */
.pfoot {
	--pf-night: #071431;
	--pf-blue: var(--color1, #19468d);
	--pf-cyan: var(--color2, #00c2f3);
	--pf-mist: #f3f6fb;
	--pf-ink: #0d1b38;
	--pf-ink-2: #34476b;
	--pf-line: #d5deeb;
	--pf-on-night: rgba(255, 255, 255, .78);
	--pf-rule-night: rgba(255, 255, 255, .16);
	font-family: var(--font-base, Montserrat, Arial, sans-serif);
	display: block;
}
.pfoot *, .pfoot *::before, .pfoot *::after { box-sizing: border-box; }
.pfoot ul { list-style: none; margin: 0; padding: 0; }
.pfoot li { margin: 0; padding: 0; }
.pfoot p { margin: 0; }
.pfoot a:focus-visible, .pfoot button:focus-visible { outline: 2px solid var(--pf-cyan); outline-offset: 3px; }
.pfoot__in { max-width: 1280px; margin: 0 auto; padding-left: 56px; padding-right: 56px; }

/* 1. Credentials */
.pfoot-creds { background: var(--pf-mist); color: var(--pf-ink); }
.pfoot-creds__in { display: grid; grid-template-columns: minmax(0, 360px) minmax(0, 1fr); gap: 56px; align-items: start; padding-top: 56px; padding-bottom: 56px; }
.pfoot-creds__lead { display: grid; gap: 20px; }
.pfoot-creds__tier { display: grid; grid-template-columns: 128px minmax(0, 1fr); gap: 20px; align-items: center; }
.pfoot-creds__tierimg { display: block; line-height: 0; }
.pfoot-creds__tierimg img { width: 128px; height: auto; display: block; }
.pfoot .pfoot-eyebrow { font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--pf-blue); line-height: 1.4; }
.pfoot .pfoot-creds__tiername { font-family: var(--font-header, "Andada Pro", Georgia, serif); font-size: 25px; font-weight: 600; line-height: 1.15; color: var(--pf-blue); margin-top: 4px; text-wrap: balance; }
.pfoot-creds__links { display: grid; gap: 12px; border-top: 1px solid var(--pf-line); padding-top: 18px; }
.pfoot .pfoot-creds__review, .pfoot .pfoot-creds__more { display: inline-flex; align-items: center; gap: 12px; color: var(--pf-blue); font-size: 14px; font-weight: 600; line-height: 1.35; text-decoration: none; }
.pfoot .pfoot-creds__review img { width: 48px; height: auto; flex: none; }
.pfoot .pfoot-creds__more svg { flex: none; transition: transform .2s ease; }
.pfoot .pfoot-creds__review:hover span, .pfoot .pfoot-creds__more:hover span { text-decoration: underline; text-underline-offset: 3px; }
.pfoot .pfoot-creds__more:hover svg { transform: translateX(3px); }
.pfoot .pfoot-creds__head { font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--pf-blue); padding-bottom: 10px; margin-bottom: 22px; border-bottom: 2px solid var(--pf-blue); }
/* The wall: one cell per accreditation; it wraps onto a new row as badges are added, nothing shrinks. */
.pfoot-creds__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(124px, 1fr)); gap: 28px 20px; }
/* Every cell starts at the top: badges share one top line and captions start on one line, whatever their length
   (centering the column pushed a one-line caption's badge down, 2026-11-13). */
.pfoot-creds__grid { align-items: start; }
.pfoot-creds__grid li { display: flex; flex-direction: column; justify-content: flex-start; align-items: center; gap: 10px; text-align: center; }
.pfoot-creds__grid li > a { display: contents; text-decoration: none; }
.pfoot-creds__img { display: block; width: 100%; max-width: 132px; aspect-ratio: 1; }
.pfoot-creds__img img { width: 100%; height: 100%; object-fit: contain; display: block; }
.pfoot .pfoot-creds__cap { font-size: 13px; font-weight: 600; line-height: 1.3; color: var(--pf-ink-2); max-width: 16ch; }
.pfoot-creds__grid a:hover .pfoot-creds__cap { color: var(--pf-blue); text-decoration: underline; text-underline-offset: 3px; }

/* 2. Subscribe band (the mini card form is styled in inc/_forms.hubl.css, D022) */
.pfoot .pfoot-sub { padding: 0; }
.pfoot-sub__in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 540px); gap: 40px; align-items: center; padding-top: 40px; padding-bottom: 40px; }
.pfoot .pfoot-sub__text h2, .pfoot .pfoot-sub__text h3 { font-family: var(--font-header, "Andada Pro", Georgia, serif); font-weight: 600; font-size: 30px; line-height: 1.15; margin: 0; color: #fff; text-wrap: balance; }
.pfoot .pfoot-sub__text p { color: rgba(255, 255, 255, .85); font-size: 15px; margin-top: 6px; }
/* Keep the band's height steady while the form loads and after it turns into the thank-you card, so the page
   never jumps: the form area holds the card's height and centers whatever is in it. */
.pfoot-sub__form { min-height: 132px; display: flex; flex-direction: column; justify-content: center; }
.pfoot-sub__form .adl__hubForm:empty { min-height: 112px; background: rgba(255, 255, 255, .08); }

/* 3. Night site map */
.pfoot-night { background: var(--pf-night); color: #fff; }
.pfoot-main { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 4fr); gap: 40px; padding-top: 52px; padding-bottom: 44px; }
.pfoot-brand { display: grid; gap: 22px; align-content: start; }
.pfoot .pfoot-brand__logo { display: block; width: 220px; max-width: 100%; line-height: 0; }
.pfoot .pfoot-brand__logo svg { width: 100%; height: auto; display: block; }
.pfoot .pfoot-brand__contact { font-size: 14px; line-height: 1.7; color: var(--pf-on-night); }
.pfoot .pfoot-brand__contact a { color: inherit; text-decoration: none; }
.pfoot .pfoot-brand__contact a:hover { color: #fff; text-decoration: underline; }
.pfoot-social { display: flex; gap: 12px; }
.pfoot .pfoot-social a { width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid rgba(255, 255, 255, .28); color: #fff; transition: border-color .2s; }
.pfoot .pfoot-social a:hover { border-color: var(--pf-cyan); }
.pfoot .pfoot-social svg { width: 18px; height: 18px; display: block; fill: #fff; }
.pfoot-cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; }
.pfoot .pfoot-col__head { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #fff; line-height: 1.4; margin-bottom: 16px; }
.pfoot .pfoot-col__head a { color: #fff; text-decoration: none; }
.pfoot .pfoot-col__head a:hover { text-decoration: underline; text-underline-offset: 3px; }
.pfoot-col li + li { margin-top: 10px; }
.pfoot .pfoot-col li a { font-size: 14px; line-height: 1.4; color: var(--pf-on-night); text-decoration: none; }
.pfoot .pfoot-col li a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }

/* Site search: a real field with a submit button, plus suggestions as you type (assets/js/site-footer.js).
   Without the script it is a plain form that goes to the search results page. */
.pfoot-search { position: relative; max-width: 320px; }
.pfoot .pfoot-search__label { display: block; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #fff; margin-bottom: 10px; }
.pfoot-search__box { position: relative; display: flex; align-items: stretch; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .32); transition: border-color .2s, box-shadow .2s, background-color .2s; }
.pfoot-search__box:hover { border-color: rgba(255, 255, 255, .55); }
.pfoot-search__box:focus-within { border-color: var(--pf-cyan); background: rgba(255, 255, 255, .1); box-shadow: 0 0 0 3px rgba(0, 194, 243, .25); }
.pfoot-search__icon { display: grid; place-items: center; padding-left: 14px; color: rgba(255, 255, 255, .7); }
.pfoot .pfoot-search__input {
	flex: 1; min-width: 0; height: 48px; margin: 0; padding: 0 10px; border: 0; border-radius: 0; outline: none; box-shadow: none;
	background: transparent; color: #fff; font: 400 15px/1.2 var(--font-base, Montserrat, Arial, sans-serif); -webkit-appearance: none; appearance: none;
}
.pfoot .pfoot-search__input::placeholder { color: rgba(255, 255, 255, .6); opacity: 1; }
.pfoot .pfoot-search__input::-webkit-search-cancel-button { -webkit-appearance: none; }
.pfoot .pfoot-search__go {
	flex: none; width: 48px; margin: 0; padding: 0; border: 0; border-radius: 0; min-height: 0; display: grid; place-items: center;
	background: transparent; color: #fff; cursor: pointer; transition: background-color .2s, color .2s;
}
.pfoot .pfoot-search__go:hover, .pfoot .pfoot-search__go:focus-visible { background: #fff; color: var(--pf-blue); }
.pfoot-search.is-loading .pfoot-search__icon svg { animation: pfoot-pulse 1s ease-in-out infinite; }
@keyframes pfoot-pulse { 50% { opacity: .35; } }
.pfoot-search__list {
	position: absolute; left: -1px; right: -1px; top: calc(100% + 6px); z-index: 20; max-height: 360px; overflow-y: auto;
	background: #fff; color: var(--pf-ink); border-top: 3px solid var(--pf-cyan); box-shadow: 0 16px 40px rgba(7, 20, 49, .35);
}
.pfoot-search__list[hidden] { display: none; }
.pfoot .pfoot-search__opt { display: block; padding: 11px 14px; cursor: pointer; border-bottom: 1px solid #edf1f7; }
.pfoot .pfoot-search__opt:last-child { border-bottom: 0; }
.pfoot .pfoot-search__opt[aria-selected="true"], .pfoot .pfoot-search__opt:hover { background: #eaf3fb; }
.pfoot .pfoot-search__t { display: block; font-size: 14px; font-weight: 600; line-height: 1.35; color: var(--pf-blue); }
.pfoot .pfoot-search__t mark { background: none; color: inherit; text-decoration: underline; text-decoration-color: var(--pf-cyan); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.pfoot .pfoot-search__u { display: block; font-size: 12px; line-height: 1.4; color: #5b6577; margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pfoot .pfoot-search__all { font-size: 13px; font-weight: 700; color: var(--pf-blue); background: #f5f8fc; }
.pfoot .pfoot-search__empty { padding: 12px 14px; font-size: 13px; line-height: 1.45; color: #34476b; cursor: default; }

/* Tablet */
@media (max-width: 1099px) {
	.pfoot-creds__in { grid-template-columns: minmax(0, 1fr); gap: 36px; }
	.pfoot-creds__lead { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: 20px 40px; }
	.pfoot-creds__links { border-top: 0; padding-top: 0; border-left: 1px solid var(--pf-line); padding-left: 32px; }
	.pfoot-main { grid-template-columns: minmax(0, 1fr); gap: 44px; }
	.pfoot-brand { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; gap: 22px 40px; }
	.pfoot-search { grid-column: 2; grid-row: 1 / span 3; max-width: none; }
}
/* Phone */
@media (max-width: 699px) {
	.pfoot__in { padding-left: 20px; padding-right: 20px; }
	.pfoot-creds__in { padding-top: 40px; padding-bottom: 40px; gap: 32px; }
	.pfoot-creds__lead { grid-template-columns: minmax(0, 1fr); }
	.pfoot-creds__links { border-left: 0; padding-left: 0; border-top: 1px solid var(--pf-line); padding-top: 18px; }
	.pfoot-creds__tier { grid-template-columns: 96px minmax(0, 1fr); gap: 16px; }
	.pfoot-creds__tierimg img { width: 96px; }
	.pfoot .pfoot-creds__tiername { font-size: 22px; }
	/* Three badges per row with room between them; captions start on the same line in every row (2026-11-13). */
	.pfoot-creds__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px 14px; align-items: start; }
	.pfoot-creds__img { max-width: 92px; }
	.pfoot .pfoot-creds__cap { font-size: 12px; }
	.pfoot-sub__in { grid-template-columns: minmax(0, 1fr); gap: 18px; padding-top: 32px; padding-bottom: 32px; }
	.pfoot .pfoot-sub__text h2, .pfoot .pfoot-sub__text h3 { font-size: 25px; }
	.pfoot-sub__form { min-height: 190px; }
	.pfoot-sub__form .adl__hubForm:empty { min-height: 170px; }
	.pfoot-main { padding-top: 40px; padding-bottom: 36px; gap: 40px; }
	.pfoot-brand { grid-template-columns: minmax(0, 1fr); }
	.pfoot-search { grid-column: auto; grid-row: auto; }
	.pfoot-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 20px; }
	.pfoot .pfoot-search__input { font-size: 16px; } /* 16px stops iOS zooming into the field */
}
@media (prefers-reduced-motion: reduce) {
	.pfoot *, .pfoot *::before, .pfoot *::after { transition: none !important; animation: none !important; }
}
/* While the subscribe form sends, its button reads "Subscribing..." (site-footer.js) and looks busy. */
.pfoot-sub.is-sending input[type="submit"].hs-button { opacity: .75; cursor: progress; }
