/*
 * BaniGo responsive foundation.
 * Shared, content-safe rules only: meaningful content remains available at every width.
 */

*,
*::before,
*::after {
	box-sizing: border-box;
}

html,
body {
	max-width: 100%;
}

body {
	overflow-x: clip;
}

:where(main, section, article, aside, header, footer, nav, form, fieldset, div, dl, ul, ol) {
	min-width: 0;
}

:where(img, svg, video, canvas) {
	max-width: 100%;
}

img,
video {
	height: auto;
}

:where(h1, h2, h3, h4, h5, h6, p, li, dt, dd, a, button, label, summary, output, strong, small) {
	word-break: normal;
	overflow-wrap: break-word;
}

:where(a[href], code) {
	overflow-wrap: anywhere;
}

:where(input, select, textarea, button) {
	max-width: 100%;
	min-width: 0;
}

:where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]), select, textarea) {
	width: 100%;
}

textarea {
	resize: vertical;
}

:where(.banigo-offer-card, .banigo-intent-card, .banigo-card-system, .banigo-home-offer-card, .banigo-calculator-card, .banigo-directory-card, .banigo-editorial-card) {
	max-width: 100%;
	min-width: 0;
}

:where(.banigo-offer-provider, .banigo-compact-provider, .banigo-intent-card__header, .banigo-card-system .banigo-intent-card__header, .banigo-home-offer-card header) > :last-child {
	min-width: 0;
}

:where(.banigo-provider-logo, .banigo-table-provider__logo, .banigo-analysis-logo) img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

:where(.banigo-comparison-table-wrap, .banigo-student-table, .banigo-analysis-table-wrap, .banigo-privacy-table-wrap, .banigo-loan-comparison-scroll, .banigo-small-comparison-table, .banigo-payday-comparison, .banigo-installment-example__table, .wp-block-table) {
	max-width: 100%;
	min-width: 0;
	overflow-x: auto;
	overscroll-behavior-inline: contain;
	-webkit-overflow-scrolling: touch;
}

.banigo-card-system__verification-note {
	margin: 0;
	padding: 11px 12px;
	border-radius: 10px;
	background: #f5f8f6;
	color: var(--color-text-muted);
	font-size: 10px;
	line-height: 1.55;
}

@media (max-width: 768px) {
	.banigo-container {
		width: min(100% - 24px, 720px);
	}

	:where(button, [role="button"], summary, .banigo-button, .banigo-offer-cta, .banigo-nav-list a) {
		min-height: 44px;
	}

	.banigo-offer-compare {
		min-height: 44px;
		white-space: normal;
	}

	.banigo-offer-compare input {
		width: 20px;
		height: 20px;
		flex-basis: 20px;
	}

	:where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]), select, textarea) {
		font-size: 16px;
	}

	:where(.banigo-student-hero-grid, .banigo-commercial-hero-grid, .banigo-methodology-hero-grid, .banigo-about-hero-grid, .banigo-policy-hero-grid, .banigo-review-policy-hero-grid, .banigo-reviews-hero-layout, .banigo-contact-layout, .banigo-provider-hero-layout, .banigo-directory-hero-grid, .banigo-ranking-hero-grid) {
		grid-template-columns: minmax(0, 1fr);
	}

	:where(.banigo-offer-list-layout, .banigo-offer-grid, .banigo-ranking-row) {
		grid-template-columns: minmax(0, 1fr);
	}

	.banigo-ranking-row {
		gap: 18px;
		padding: 20px;
	}

	.banigo-ranking-offer {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.banigo-methodology-formula {
		grid-template-columns: minmax(0, 1fr);
		text-align: left;
	}

	.banigo-methodology-formula > span {
		transform: rotate(90deg);
		justify-self: start;
	}

	.banigo-provider-location-layout:has(iframe),
	.banigo-analysis-content > .banigo-provider-location .banigo-provider-location-layout {
		grid-template-columns: minmax(0, 1fr);
	}

	.banigo-provider-location iframe,
	.banigo-analysis-content > .banigo-provider-location iframe {
		width: 100%;
		height: clamp(250px, 70vw, 300px);
	}

	.banigo-offer-modal__dialog,
	.banigo-review-modal__dialog {
		max-width: 100%;
	}
}

@media (max-width: 640px) {
	/* Mobile offer cards use the full row so real IFN data remains readable. */
	.banigo-compact-offers-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	:where(.banigo-home-offers-grid, .banigo-intent-offers-grid, .banigo-calculator-grid, .banigo-directory-grid, .banigo-providers-grid, .banigo-provider-offers-grid, .banigo-provider-alternatives-grid, .banigo-editorial-card-grid, .banigo-home-guides-grid, .banigo-news-grid, .banigo-category-grid, .banigo-microcredit-offer-grid) {
		grid-template-columns: minmax(0, 1fr);
	}

	.banigo-offer-card--compact,
	.banigo-card-system,
	.banigo-intent-card,
	.banigo-home-offer-card {
		padding: 18px;
	}

	.banigo-offer-card--compact,
	.banigo-card-system {
		height: 100%;
	}

	.banigo-compact-provider {
		align-items: center;
		gap: 12px;
	}

	.banigo-compact-provider .banigo-provider-logo {
		width: 44px;
		height: 44px;
		flex-basis: 44px;
	}

	.banigo-compact-provider h3 {
		font-size: 17px;
		line-height: 1.25;
	}

	.banigo-compact-product-label {
		display: block;
	}

	.banigo-compact-amount strong {
		font-size: 17px;
	}

	.banigo-compact-metrics,
	.banigo-card-system__financials {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.banigo-card-system__financials > div {
		min-height: 82px;
	}

	.banigo-intent-card__financials > div {
		min-height: 0;
	}

	:where(.banigo-card-system__highlight, .banigo-intent-card__evidence, .banigo-speed-offers-grid .banigo-offer-speed-line) {
		min-height: 0;
	}

	:where(.banigo-card-system__details-body dl > div, .banigo-intent-card__details dl div) {
		grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
	}

	:where(.banigo-card-system__details-body dd, .banigo-intent-card__details dd, .banigo-card-payout-facts dd, .banigo-non-bank-identity dd, .banigo-installment-facts dd, .banigo-personal-facts dd, .banigo-payday-facts dd, .banigo-collateral-facts dd) {
		max-width: none;
		word-break: normal;
		overflow-wrap: break-word;
	}

	.banigo-compact-actions {
		width: 100%;
	}

	.banigo-card-system__action-zone {
		margin-top: auto;
	}

	.banigo-compact-actions .banigo-offer-cta {
		min-height: 44px;
		padding-inline: 14px;
		font-size: 14px;
	}

	.banigo-partner-badge {
		white-space: normal;
	}

	.banigo-offers-heading-row,
	.banigo-directory-tools,
	.banigo-review-summary-grid,
	.banigo-provider-reviews-layout {
		align-items: stretch;
		flex-direction: column;
	}

	.banigo-footer-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.banigo-installment-example__notice,
	.banigo-installment-example__complete,
	.banigo-editorial-author {
		align-items: flex-start;
	}

	.banigo-installment-example__summary dl > div {
		align-items: flex-start;
	}

	.banigo-comparison-bar {
		max-width: calc(100% - 20px);
	}

	.banigo-consent {
		inset-inline: 10px;
		bottom: calc(10px + env(safe-area-inset-bottom));
	}
}

@media (max-width: 430px) {
	.banigo-container {
		width: calc(100% - 20px);
	}

	:where(.banigo-calculator-card, .banigo-home-calculator, .banigo-comparison-form, .banigo-student-calculator, .banigo-landing-calculator) {
		padding: 17px 15px;
	}

	.banigo-offer-card--compact,
	.banigo-card-system {
		padding: 18px;
	}

	.banigo-compact-provider,
	.banigo-card-system .banigo-intent-card__header {
		display: grid;
		grid-template-columns: 44px minmax(0, 1fr);
		align-items: center;
	}

	.banigo-compact-provider .banigo-provider-logo,
	.banigo-card-system .banigo-intent-card__header .banigo-provider-logo {
		width: 44px;
		height: 44px;
		flex-basis: 44px;
	}

	.banigo-compact-provider h3,
	.banigo-card-system .banigo-intent-card__header h3 {
		font-size: 17px;
		line-height: 1.25;
		word-break: normal;
		overflow-wrap: break-word;
	}

	:where(.banigo-student-profile-grid, .banigo-pensioner-profile-grid, .banigo-review-form-grid, .banigo-payday-page #payday-budget) {
		grid-template-columns: minmax(0, 1fr);
	}

	:where(.banigo-amount-presets, .banigo-amount-terms, .banigo-payday-chips) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.banigo-comparison-bar {
		grid-template-columns: minmax(0, 1fr);
	}

	.banigo-comparison-bar .banigo-button {
		width: 100%;
	}

	.banigo-offer-modal__header,
	.banigo-offer-modal__body,
	.banigo-offer-modal__footer {
		padding-inline: 14px;
	}

	.banigo-offer-modal__footer {
		align-items: stretch;
		flex-direction: column;
	}

	.banigo-offer-modal__footer .banigo-button {
		min-width: 0;
		width: 100%;
	}

	.banigo-footer-grid,
	.banigo-ranking-offer {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 359px) {
	.banigo-container {
		width: calc(100% - 16px);
	}

	.banigo-offer-card--compact,
	.banigo-card-system,
	.banigo-intent-card,
	.banigo-home-offer-card {
		padding: 15px;
	}

	.banigo-compact-metrics,
	.banigo-card-system__financials,
	.banigo-intent-card__financials {
		grid-template-columns: minmax(0, 1fr);
	}

	:where(.banigo-card-system__details-body dl > div, .banigo-intent-card__details dl div) {
		grid-template-columns: minmax(0, 1fr);
		gap: 3px;
	}

	:where(.banigo-card-system__details-body dd, .banigo-intent-card__details dd) {
		text-align: left;
	}

	.banigo-installment-example__summary dl > div {
		flex-direction: column;
		gap: 4px;
	}

	.banigo-installment-example__summary dd {
		white-space: normal;
		text-align: left;
	}
}
