/*
 * Fetch Pet Insurance — customer-facing styling.
 *
 * Standalone on purpose: style.css is hand-maintained and is NOT compiled from
 * style.scss, so new work must not go through the Sass bundle.
 *
 * Loaded only on checkout, order-received and account pages.
 */

/* Checkout card ---------------------------------------------------------- */

.fpi-card { font-size: 15px; }

.fpi-card__choice {
	display: flex;
	align-items: flex-start;
	gap: .65rem;
	padding: .85rem 1rem;
	margin-bottom: 1rem;
	border: 1px solid var(--bs-border-color, #dee2e6);
	border-radius: .65rem;
	cursor: pointer;
	transition: border-color .15s ease, background-color .15s ease;
}
.fpi-card__choice:hover { border-color: var(--cdc-accent, var(--bs-primary, #018c6e)); }
.fpi-card__choice:focus-within {
	border-color: var(--cdc-accent, var(--bs-primary, #018c6e));
	box-shadow: 0 0 0 .2rem rgba(1, 140, 110, .15);
}
.fpi-card__choice:has(input:checked) {
	border-color: var(--cdc-accent, var(--bs-primary, #018c6e));
	background: rgba(1, 140, 110, .05);
}

.fpi-card__choice input[type="checkbox"] {
	flex: 0 0 auto;
	margin: .15rem 0 0;
	width: 1.15rem;
	height: 1.15rem;
	accent-color: var(--cdc-accent, var(--bs-primary, #018c6e));
}

.fpi-card__choice-text  { display: flex; flex-direction: column; gap: .15rem; }
.fpi-card__choice-label { font-weight: 600; line-height: 1.35; }
.fpi-card__range        { font-size: 14px; color: #5c6670; }
.fpi-card__offer        { margin: -.5rem 0 1rem; font-size: 14px; line-height: 1.4; color: #5c6670; }

/* Timeline — answers "but I don't have the puppy yet" before it is asked. */
.fpi-card__timeline {
	background: #f7f8f8;
	border-radius: .65rem;
	padding: .85rem 1rem;
	margin-bottom: 1rem;
}
.fpi-card__timeline-head {
	margin: 0 0 .6rem;
	font-weight: 600;
	font-size: 14px;
}

.fpi-card__steps {
	list-style: none;
	counter-reset: fpi-step;
	margin: 0;
	padding: 0;
	display: grid;
	gap: .5rem;
}
.fpi-card__steps li {
	counter-increment: fpi-step;
	display: grid;
	grid-template-columns: 1.4rem 7rem minmax(0, 1fr);
	align-items: baseline;
	gap: .5rem;
	font-size: 14px;
	line-height: 1.4;
}
.fpi-card__steps li::before {
	content: counter(fpi-step);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.4rem;
	height: 1.4rem;
	border-radius: 50%;
	background: var(--cdc-accent, var(--bs-primary, #018c6e));
	color: #fff;
	font-size: 11px;
	font-weight: 700;
}
.fpi-card__when { font-weight: 600; }
.fpi-card__what { color: #5c6670; }

.fpi-card__benefits {
	margin: 0 0 .75rem;
	font-size: 14px;
	line-height: 1.5;
	color: #5c6670;
}

.fpi-card__legal {
	margin: 0;
	font-size: 12px;
	line-height: 1.5;
	color: #78838d;
}
.fpi-card__legal strong { display: block; margin-top: .2rem; color: #5c6670; }

@media (max-width: 575.98px) {
	.fpi-card__steps li {
		grid-template-columns: 1.4rem 1fr;
		row-gap: .1rem;
	}
	.fpi-card__what { grid-column: 2; }
}

/* Respect a reduced-motion preference. */
@media (prefers-reduced-motion: reduce) {
	.fpi-card__choice { transition: none; }
}

/* Quote card — order-received page ---------------------------------------- */

.fpi-quote {
	margin: 1.5rem 0;
	padding: 1.25rem 1.4rem;
	border: 1px solid var(--bs-border-color, #dee2e6);
	border-radius: .75rem;
	background: #fff;
}
.fpi-quote--loading,
.fpi-quote--timeout { background: #f7f8f8; }

.fpi-quote__title  { margin: 0 0 .75rem; font-size: 1.15rem; line-height: 1.3; }
.fpi-quote__head   { margin-bottom: .5rem; }

.fpi-quote__loading {
	display: flex;
	align-items: center;
	gap: .6rem;
	margin: 0;
	color: #5c6670;
}

.fpi-quote__spinner {
	width: 1rem;
	height: 1rem;
	border: 2px solid rgba(0, 0, 0, .12);
	border-top-color: var(--cdc-accent, var(--bs-primary, #018c6e));
	border-radius: 50%;
	animation: fpi-spin .8s linear infinite;
}
@keyframes fpi-spin { to { transform: rotate(360deg); } }

/* The summary card's View your quote link lands here; clear the sticky header. */
#fpi-quote { scroll-margin-top: 130px; }

.fpi-quote__price {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: .5rem;
	margin-bottom: .35rem;
}
.fpi-quote__amount {
	font-size: 1.75rem;
	font-weight: 700;
	line-height: 1.1;
	color: var(--cdc-accent, var(--bs-primary, #018c6e));
}
.fpi-quote__was { text-decoration: line-through; color: #8c959d; }
.fpi-quote__estimate { flex-basis: 100%; font-size: 13px; color: #78838d; }
.fpi-quote__taxes { flex-basis: 100%; font-size: 13px; color: #5c6670; }

.fpi-quote__plan { margin: 0 0 1rem; font-size: 14px; color: #5c6670; }

.fpi-quote__facts {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
	gap: .75rem;
	margin: 0 0 1.1rem;
	padding: .85rem 1rem;
	background: #f7f8f8;
	border-radius: .6rem;
}
.fpi-quote__facts dt { font-size: 12px; color: #78838d; margin-bottom: .1rem; }
.fpi-quote__facts dd { margin: 0; font-weight: 600; }

/* Fetch's one-time admin fee, stated beside the price rather than at payment. */
.fpi-quote__fee { margin: -.4rem 0 1.1rem; font-size: 13px; color: #5c6670; }

.fpi-quote__actions {
	display: flex;
	align-items: center;
	gap: 1rem;
	flex-wrap: wrap;
	margin-bottom: 1rem;
}
.fpi-quote__link {
	background: none;
	border: 0;
	padding: 0;
	color: #5c6670;
	text-decoration: underline;
	cursor: pointer;
	font-size: 14px;
}
.fpi-quote__link:hover { color: #212529; }

.fpi-quote__legal { margin: 0; font-size: 12px; line-height: 1.5; color: #78838d; }

/* Account panel ----------------------------------------------------------- */

.fpi-panel {
	margin: 1.5rem 0;
	padding: 1.1rem 1.25rem;
	border: 1px solid var(--bs-border-color, #dee2e6);
	border-radius: .75rem;
}
.fpi-panel__title  { margin: 0 0 .6rem; font-size: 1.05rem; }
.fpi-panel__status { display: flex; align-items: center; gap: .5rem; margin: 0 0 .6rem; }

.fpi-panel__dot { width: .6rem; height: .6rem; border-radius: 50%; background: #8c959d; }
.fpi-panel__dot--bound,
.fpi-panel__dot--reserved { background: #00a32a; }
.fpi-panel__dot--stale,
.fpi-panel__dot--lapsed,
.fpi-panel__dot--declined { background: #dba617; }

.fpi-panel__price  { margin: 0 0 .75rem; }
.fpi-panel__price strong { font-size: 1.2rem; margin-right: .5rem; }
.fpi-panel__price span   { color: #5c6670; font-size: 14px; }
.fpi-panel__note   { margin: .6rem 0 0; font-size: 13px; color: #5c6670; }

/* Activation page --------------------------------------------------------- */

.fpi-activation { padding: 3rem 0 4rem; }
.fpi-activation__head { text-align: center; margin-bottom: 2rem; }
.fpi-activation__head h1 { margin: 0 0 .5rem; }
.fpi-activation__sub { color: #5c6670; margin: 0; }

.fpi-activation__plan {
	max-width: 34rem;
	margin: 0 auto;
	padding: 1.5rem;
	border: 1px solid var(--bs-border-color, #dee2e6);
	border-radius: .75rem;
	text-align: center;
}
.fpi-activation__plan h2 { font-size: .8rem; text-transform: uppercase; letter-spacing: .05em; color: #78838d; margin: 0 0 .75rem; }
.fpi-activation__price { font-size: 2.25rem; font-weight: 700; line-height: 1.1; margin: 0 0 .5rem; color: var(--cdc-accent, var(--bs-primary, #018c6e)); }
.fpi-activation__terms { margin: 0 0 .75rem; color: #5c6670; font-size: 14px; }
.fpi-activation__fee { margin: 0 auto .75rem; max-width: 30rem; color: #5c6670; font-size: 13px; line-height: 1.5; }
.fpi-activation__coverage { margin: 0; font-weight: 600; }
.fpi-activation__coverage span { display: block; font-weight: 400; color: #5c6670; font-size: 14px; }

.fpi-activation__cta { text-align: center; margin: 1.75rem 0 1rem; }
.fpi-activation__button { min-width: 16rem; }

@media (prefers-reduced-motion: reduce) {
	.fpi-quote__spinner { animation: none; }
}

/* Plan picker ------------------------------------------------------------- */

.fpi-activation__plans {
	max-width: 34rem;
	margin: 1.5rem auto 0;
	padding: 0;
	border: 0;
}
.fpi-activation__plans legend {
	font-size: .8rem;
	text-transform: uppercase;
	letter-spacing: .05em;
	color: #78838d;
	margin-bottom: .6rem;
	padding: 0;
}

.fpi-plan {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: .75rem;
	padding: .7rem .9rem;
	margin-bottom: .5rem;
	border: 1px solid var(--bs-border-color, #dee2e6);
	border-radius: .5rem;
	cursor: pointer;
}
.fpi-plan:has(input:checked) {
	border-color: var(--cdc-accent, var(--bs-primary, #018c6e));
	background: rgba(1, 140, 110, .05);
}
.fpi-plan input { accent-color: var(--cdc-accent, var(--bs-primary, #018c6e)); }
.fpi-plan__price { font-weight: 700; }
.fpi-plan__terms { font-size: 13px; color: #5c6670; text-align: right; }

.fpi-activation__status {
	max-width: 34rem;
	margin: .75rem auto 0;
	padding: .6rem .8rem;
	border-radius: .4rem;
	font-size: 14px;
	text-align: center;
}
.fpi-activation__status.is-error { background: #fcf0f1; color: #8a2424; }
.fpi-activation__status.is-warn  { background: #fcf6e1; color: #8a6100; }

/* Payment modal ----------------------------------------------------------- */

body.fpi-modal-open { overflow: hidden; }

.fpi-modal {
	position: fixed;
	inset: 0;
	z-index: 1000000; /* Above the chat button, which sits at 999999. */
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1rem;
}
.fpi-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(15, 23, 28, .6);
}

.fpi-modal__panel {
	position: relative;
	width: 100%;
	max-width: 34rem;
	max-height: calc(100vh - 2rem);
	display: flex;
	flex-direction: column;
	background: #fff;
	border-radius: .75rem;
	overflow-x: hidden;
	overflow-y: auto; /* Fetch's frame has a fixed height, so short screens scroll the panel. */
	box-shadow: 0 1.5rem 3rem rgba(0, 0, 0, .3);
}

.fpi-modal__head {
	position: sticky;
	top: 0;
	z-index: 1;
	flex: 0 0 auto;
	background: #fff;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
	padding: 1rem 1.25rem;
	border-bottom: 1px solid #eef0f1;
}
.fpi-modal__title { margin: 0; font-size: 1.05rem; }
.fpi-modal__sub   { margin: .15rem 0 0; font-size: 13px; color: #78838d; }

.fpi-modal__close {
	flex: 0 0 auto;
	background: none;
	border: 0;
	font-size: 1.5rem;
	line-height: 1;
	color: #78838d;
	cursor: pointer;
	padding: 0 .25rem;
}
.fpi-modal__close:hover { color: #212529; }

/*
 * Fetch injects an iframe here at position:absolute, inset 0, z-index 999999.
 * The inline position:relative and min-height on this element are what keep it
 * inside the panel — without them the frame collapses or covers the page.
 */
.fpi-modal__frame { flex: 1 0 auto; isolation: isolate; overflow: hidden; } /* Isolated so the frame's z-index cannot cover the sticky header. */

@media (max-width: 575.98px) {
	.fpi-modal { padding: 0; }
	.fpi-modal__panel { max-width: none; max-height: 100vh; max-height: 100dvh; height: 100vh; height: 100dvh; border-radius: 0; }
	.fpi-plan { grid-template-columns: auto 1fr; }
	.fpi-plan__terms { grid-column: 2; text-align: left; }
}

/* ------------------------------------------------------------------ *
 * Activation page, rebuilt October 2026.
 *
 * This is the one page where a customer is asked for money, so it reads
 * as an explanation with a price in it rather than a price list. The
 * reserved-plan card is the only loud element; everything else stays
 * quiet so the card carries the page.
 * ------------------------------------------------------------------ */

.fpi-activation { padding: 3rem 0 4.5rem; }
.fpi-activation > .container { max-width: 46rem; }

.fpi-activation__thanks {
	margin: 0 0 .35rem;
	font-weight: 600;
	color: var(--cdc-accent, var(--bs-primary, #018c6e));
}

.fpi-activation__intro {
	margin: .85rem auto 0;
	max-width: 36rem;
	color: #5c6670;
	line-height: 1.6;
}

/* The three steps. A real sequence, so it is numbered. */
.fpi-steps {
	list-style: none;
	margin: 2.25rem 0;
	padding: 0;
	display: grid;
	gap: .85rem;
}

.fpi-steps__item {
	display: grid;
	grid-template-columns: 1.75rem 1fr;
	gap: .85rem;
	align-items: start;
}

.fpi-steps__n {
	width: 1.75rem;
	height: 1.75rem;
	border-radius: 50%;
	display: grid;
	place-items: center;
	font-size: 13px;
	font-weight: 700;
	color: #fff;
	background: var(--cdc-accent, var(--bs-primary, #018c6e));
}

.fpi-steps__body { display: block; }
.fpi-steps__title { display: block; font-weight: 600; }
.fpi-steps__detail { display: block; color: #5c6670; font-size: 14px; line-height: 1.55; margin-top: .15rem; }

/*
 * The insurer lockup that sits beside every price.
 *
 * Fetch's guidelines: the small-space logo is for placements 60px tall or
 * less, and the logo keeps clear space of half the height of its "F" on every
 * side, about a third of the logo's height. The gap below and the image margin
 * hold that space; nothing may tint, fade or shadow the image.
 */
.fpi-badge-brand { display: inline-flex; flex-direction: column; align-items: center; gap: .25rem; }
/*
 * !important is load bearing. A CDN-hosted theme stylesheet sets image height
 * with !important, which silently won over this rule and rendered the wordmark
 * at its full size inside the lockup. Verified in the browser: the plain rule
 * computed to 126px, the same rule with !important to 26px.
 */
.fpi-badge-brand__logo {
	display: block;
	width: auto !important;
	height: 36px !important;
	max-width: none;
	margin: 12px;
	opacity: 1;
	filter: none;
}
.fpi-badge-brand--lg .fpi-badge-brand__logo { height: 56px !important; margin: 18px; }

.fpi-badge-brand__note { font-size: 12px; color: #78838d; }

/* Standalone on the checkout card and in My Account, where it is a block in a
   column of text rather than a chip pinned to a panel edge. */
.fpi-card .fpi-badge-brand,
.fpi-panel .fpi-badge-brand { display: flex; margin: 0 0 .9rem; }

/* The reserved plan. The one loud element on the page. */
.fpi-activation__plan { position: relative; padding-top: 3rem; }
.fpi-activation__plan-brand {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translate(-50%, -50%);
	background: #fff;
	/* The logo's margin is its clear space; the side padding keeps the
	   pill's curve out of it. */
	padding: 0 .9rem;
	border-radius: 999px;
	border: 1px solid #e3e7ea;
}

.fpi-activation__price { display: flex; flex-direction: column; align-items: center; gap: .15rem; }
.fpi-activation__was { font-size: 1.1rem; font-weight: 500; color: #78838d; text-decoration: line-through; }
.fpi-activation__now { display: block; }

.fpi-activation__saving {
	display: inline-block;
	margin: 0 0 .75rem;
	padding: .3rem .75rem;
	border-radius: 999px;
	background: #e8f6f1;
	color: #0b6b53;
	font-size: 13px;
	font-weight: 600;
}

/* How often you pay. Its own question, not a row in the plan list. */
.fpi-freq {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: .65rem;
	margin: 1.75rem 0 .5rem;
}

.fpi-freq__label { font-size: 13px; color: #5c6670; }
.fpi-freq__options { display: inline-flex; border: 1px solid #e3e7ea; border-radius: 999px; padding: .2rem; gap: .2rem; }

.fpi-freq__option {
	padding: .35rem .9rem;
	border-radius: 999px;
	font-size: 14px;
	text-decoration: none;
	color: #5c6670;
}

.fpi-freq__option.is-on {
	background: var(--cdc-accent, var(--bs-primary, #018c6e));
	color: #fff;
	font-weight: 600;
}

.fpi-activation__plans-hint {
	margin: 0 0 .9rem;
	font-size: 14px;
	color: #5c6670;
	line-height: 1.55;
}

.fpi-plan__was {
	margin-left: .4rem;
	font-weight: 500;
	font-size: 13px;
	color: #78838d;
	text-decoration: line-through;
}

/* Reassurance, sitting directly under the button where the doubt is. */
.fpi-reassure {
	list-style: none;
	margin: 1.25rem 0 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: .5rem 1.25rem;
	font-size: 14px;
	color: #5c6670;
}

.fpi-reassure li::before {
	content: "✓";
	margin-right: .35rem;
	color: var(--cdc-accent, var(--bs-primary, #018c6e));
	font-weight: 700;
}

/* What the plan pays for. */
.fpi-cover { margin: 3rem 0 0; }
.fpi-cover h2, .fpi-about h2 { font-size: 1.25rem; margin: 0 0 1rem; }
.fpi-cover__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; }
.fpi-cover__item { padding-left: 1.1rem; border-left: 2px solid #e3e7ea; }
.fpi-cover__title { display: block; font-weight: 600; }
.fpi-cover__detail { display: block; color: #5c6670; font-size: 14px; line-height: 1.55; margin-top: .1rem; }

/* Why we chose them. */
.fpi-about {
	margin: 2.5rem 0 0;
	padding: 1.75rem;
	border: 1px solid #e3e7ea;
	border-radius: 14px;
	background: #fbfcfc;
	display: grid;
	grid-template-columns: minmax(0, 200px) 1fr;
	gap: 1.5rem;
	align-items: center;
}

.fpi-about__brand { text-align: center; }
.fpi-about__body p { margin: 0; color: #5c6670; line-height: 1.6; }

.fpi-activation__standalone-brand { margin-top: 1.25rem; }

/* Keyboard users must be able to see where they are. */
.fpi-freq__option:focus-visible,
.fpi-activation__button:focus-visible,
.fpi-plan input:focus-visible {
	outline: 2px solid var(--cdc-accent, var(--bs-primary, #018c6e));
	outline-offset: 2px;
}

/* The activate button.
 *
 * The theme's .button styling comes from WooCommerce, which is not loaded on
 * the activation page, so the single most important control on the flow was
 * rendering as a bare browser button. Styled here against the site accent so
 * it reads as a Charlotte Dog Club action wherever it appears. */
.fpi-activation__button,
.fpi-activation__button:link,
.fpi-activation__button:visited {
	display: inline-block;
	min-width: 16rem;
	padding: .85rem 2rem;
	border: 0;
	border-radius: 999px;
	background: var(--cdc-accent, var(--bs-primary, #018c6e));
	color: #fff;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .15s ease, transform .15s ease;
}

.fpi-activation__button:hover,
.fpi-activation__button:focus {
	background: #016d55;
	color: #fff;
}

.fpi-activation__button:active { transform: translateY(1px); }

.fpi-activation__button[disabled],
.fpi-activation__button[aria-disabled="true"] {
	opacity: .55;
	cursor: not-allowed;
	transform: none;
}

/* The same green on the order-received page and in My Account. WooCommerce's
 * grey .button made Activate look disabled there (Fetch review, 2026-11-07). */
.woocommerce .fpi-panel a.button,
.fpi-panel a.button,
.woocommerce .fpi-quote .button.fpi-quote__button,
.fpi-quote .button.fpi-quote__button {
	display: inline-block;
	padding: .6rem 1.4rem;
	border: 0;
	border-radius: 999px;
	background: var(--cdc-accent, var(--bs-primary, #018c6e));
	color: #fff;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
}

.woocommerce .fpi-panel a.button:hover,
.woocommerce .fpi-panel a.button:focus,
.fpi-panel a.button:hover,
.fpi-panel a.button:focus,
.woocommerce .fpi-quote .button.fpi-quote__button:hover,
.woocommerce .fpi-quote .button.fpi-quote__button:focus,
.fpi-quote .button.fpi-quote__button:hover,
.fpi-quote .button.fpi-quote__button:focus {
	background: #016d55;
	color: #fff;
}

.fpi-quote .button.fpi-quote__button[disabled] { opacity: .55; cursor: not-allowed; }

@media (prefers-reduced-motion: reduce) {
	.fpi-activation *,
	.fpi-activation__button { animation: none !important; transition: none !important; }
	.fpi-activation__button:active { transform: none; }
}

@media (max-width: 575.98px) {
	.fpi-about { grid-template-columns: 1fr; text-align: center; }
	.fpi-about__body p { text-align: left; }
	.fpi-reassure { justify-content: flex-start; }
	.fpi-steps__detail { font-size: 13px; }
	.fpi-freq { flex-direction: column; align-items: flex-start; }
	.fpi-activation__button { min-width: 100%; }
}

/* Fetch compliance, 2026-10-28 ------------------------------------------- */

.fpi-card__advertised {
	margin: 0 0 .35rem;
	font-size: 12px;
	font-style: italic;
	color: #78838d;
}
ul.fpi-card__benefits { padding-left: 1.1rem; }
ul.fpi-card__benefits li { margin: 0 0 .15rem; }

.fpi-activation__state-note { margin: 0 auto .5rem; max-width: 30rem; color: #3c434a; font-size: 13px; line-height: 1.5; font-weight: 600; }
.fpi-plan__note { grid-column: 2 / -1; font-size: 12px; color: #5c6670; text-align: right; }
.fpi-freq__note { display: block; flex-basis: 100%; font-size: 12px; color: #5c6670; margin-top: .25rem; }

.fpi-disclosures {
	max-width: 40rem;
	margin: 1.75rem auto 0;
	padding: 1rem 1.25rem;
	background: #f7f8f8;
	border-radius: .5rem;
	font-size: 12px;
	line-height: 1.55;
	color: #5c6670;
}
.fpi-disclosures__head { font-size: 13px; font-weight: 700; color: #3c434a; margin: 0 0 .6rem; }
.fpi-disclosures__label { margin: .6rem 0 .15rem; font-weight: 700; color: #3c434a; text-transform: uppercase; letter-spacing: .04em; font-size: 11px; }
.fpi-disclosures p { margin: 0 0 .4rem; }
.fpi-disclosures .fpi-activation__cta { margin: 1.25rem 0 1rem; }
.fpi-disclosures .fpi-activation__status { margin: .75rem auto; }
.fpi-disclosures .fpi-reassure { margin: 0 0 1.25rem; }

.fpi-cover__sub { margin: -.6rem 0 1rem; font-size: 13px; font-style: italic; color: #78838d; }

/* Sources for the coverage claims. */
.fpi-sources { margin: 1.75rem 0 0; color: #5c6670; font-size: 12px; line-height: 1.55; }
.fpi-sources p { margin: 0 0 .4rem; }
