.apl-firmy {
	--apl-red: #e31d35;
	--apl-navy: #071426;
	--apl-blue: #12385e;
	--apl-gold: #f2bd54;
	--apl-ink: #101827;
	--apl-muted: #677386;
	width: 100%;
	max-width: 1500px;
	margin: 0 auto;
	color: var(--apl-ink);
	font-family: Inter, Arial, Helvetica, sans-serif;
}

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

.apl-firmy-hero {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 30px;
	overflow: hidden;
	padding: clamp(28px, 5vw, 58px);
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 26px;
	background:
		radial-gradient(circle at 89% 23%, rgba(227, 29, 53, 0.35), transparent 31%),
		radial-gradient(circle at 52% 115%, rgba(31, 89, 139, 0.48), transparent 40%),
		linear-gradient(135deg, #06101e 0%, #091a31 57%, #171326 100%);
	box-shadow: 0 24px 65px rgba(5, 16, 31, 0.18);
	color: #fff;
}

.apl-firmy-hero::after {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background-image: radial-gradient(rgba(255, 255, 255, 0.13) 0.8px, transparent 0.8px);
	background-size: 23px 23px;
	mask-image: linear-gradient(to right, transparent, #000);
	content: "";
}

.apl-firmy-hero__copy,
.apl-firmy-hero__stats {
	position: relative;
	z-index: 1;
}

.apl-firmy-kicker {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 12px;
	color: #f6c86d;
	font-size: 11px;
	font-weight: 850;
	letter-spacing: 1.7px;
}

.apl-firmy-kicker span {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--apl-red);
	box-shadow: 0 0 0 6px rgba(227, 29, 53, 0.17);
}

.apl-firmy-hero h2 {
	margin: 0 !important;
	color: #fff !important;
	font-size: clamp(38px, 5vw, 70px) !important;
	font-weight: 900 !important;
	letter-spacing: -3px !important;
	line-height: 0.98 !important;
}

.apl-firmy-hero h2 em {
	color: var(--apl-gold);
	font-style: normal;
}

.apl-firmy-hero p {
	max-width: 770px;
	margin: 17px 0 0 !important;
	color: #c2ccda !important;
	font-size: clamp(15px, 2vw, 19px) !important;
	line-height: 1.55 !important;
}

.apl-firmy-hero__stats {
	display: grid;
	grid-template-columns: repeat(2, 105px);
	gap: 10px;
}

.apl-firmy-hero__stats > div:not(.apl-firmy-hero__mark) {
	padding: 15px 12px;
	border: 1px solid rgba(255, 255, 255, 0.13);
	border-radius: 15px;
	background: rgba(5, 16, 30, 0.5);
	backdrop-filter: blur(7px);
	text-align: center;
}

.apl-firmy-hero__stats strong,
.apl-firmy-hero__stats span {
	display: block;
}

.apl-firmy-hero__stats strong {
	font-size: 29px;
	line-height: 1;
}

.apl-firmy-hero__stats span {
	margin-top: 5px;
	color: #99a9bc;
	font-size: 10px;
	font-weight: 700;
	text-transform: uppercase;
}

.apl-firmy-hero__mark {
	grid-column: 1 / -1;
	padding: 8px 12px;
	border: 1px solid rgba(242, 189, 84, 0.24);
	border-radius: 999px;
	color: var(--apl-gold);
	font-size: 11px;
	font-weight: 850;
	letter-spacing: 1px;
	text-align: center;
}

.apl-firmy-hero__mark b {
	margin: 0 8px;
	color: var(--apl-red);
}

.apl-firmy-notice {
	margin: 18px 0;
	padding: 14px 17px;
	border-radius: 12px;
	font-size: 14px;
	font-weight: 650;
	line-height: 1.45;
}

.apl-firmy-notice--success {
	border: 1px solid #86efac;
	background: #f0fdf4;
	color: #166534;
}

.apl-firmy-notice--warning {
	border: 1px solid #fde68a;
	background: #fffbeb;
	color: #92400e;
}

.apl-firmy-notice--error {
	border: 1px solid #fecaca;
	background: #fef2f2;
	color: #991b1b;
}

.apl-firmy-submit-shell {
	margin: 22px 0 34px;
	border: 1px solid #dce3ec;
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 15px 45px rgba(11, 25, 48, 0.08);
}

.apl-firmy-submit-shell > summary {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 20px !important;
	padding: 18px 21px !important;
	list-style: none !important;
	cursor: pointer;
	color: var(--apl-navy) !important;
}

.apl-firmy-submit-shell > summary::-webkit-details-marker {
	display: none;
}

.apl-firmy-submit-shell > summary span {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 16px;
	font-weight: 850;
}

.apl-firmy-submit-shell > summary b {
	display: grid;
	width: 30px;
	height: 30px;
	place-items: center;
	border-radius: 50%;
	background: var(--apl-red);
	color: #fff;
	font-size: 20px;
	line-height: 1;
}

.apl-firmy-submit-shell > summary small {
	color: #738094;
	font-size: 12px;
}

.apl-firmy-submit-shell[open] > summary {
	border-bottom: 1px solid #e2e8f0;
}

.apl-firmy-submit-shell[open] > summary b {
	transform: rotate(45deg);
}

.apl-firmy-form-panel {
	padding: clamp(21px, 4vw, 38px);
	background: linear-gradient(180deg, #fbfcfe, #fff);
}

.apl-firmy-form-panel__heading {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(280px, 0.65fr);
	align-items: end;
	gap: 28px;
	margin-bottom: 25px;
}

.apl-firmy-form-panel__heading span,
.apl-firmy-directory__head span {
	color: var(--apl-red);
	font-size: 10px;
	font-weight: 850;
	letter-spacing: 1.3px;
}

.apl-firmy-form-panel h3,
.apl-firmy-directory h3 {
	margin: 4px 0 0 !important;
	color: var(--apl-navy) !important;
	font-size: clamp(27px, 4vw, 42px) !important;
	font-weight: 900 !important;
	letter-spacing: -1.3px !important;
	line-height: 1.05 !important;
}

.apl-firmy-form-panel__heading p {
	margin: 0 !important;
	color: var(--apl-muted) !important;
	font-size: 13px !important;
	line-height: 1.5 !important;
}

.apl-firmy-form {
	margin: 0 !important;
}

.apl-firmy-form__grid {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	gap: 15px !important;
}

.apl-firmy-field {
	display: block !important;
	min-width: 0 !important;
	margin: 0 !important;
}

.apl-firmy-field--wide {
	grid-column: 1 / -1;
}

.apl-firmy-field > span {
	display: block;
	margin-bottom: 6px;
	color: #253044;
	font-size: 12px;
	font-weight: 750;
}

.apl-firmy-field b,
.apl-firmy-consent b {
	color: var(--apl-red);
}

.apl-firmy-field input,
.apl-firmy-field select,
.apl-firmy-field textarea {
	display: block !important;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	border: 1px solid #cfd8e5 !important;
	border-radius: 10px !important;
	outline: 0 !important;
	background: #fff !important;
	box-shadow: none !important;
	color: #111827 !important;
	font: 500 14px/1.4 Inter, Arial, sans-serif !important;
}

.apl-firmy-field input,
.apl-firmy-field select {
	height: 48px !important;
	min-height: 48px !important;
	padding: 0 13px !important;
}

.apl-firmy-field textarea {
	min-height: 125px !important;
	padding: 12px 13px !important;
	resize: vertical;
}

.apl-firmy-field input:focus,
.apl-firmy-field select:focus,
.apl-firmy-field textarea:focus {
	border-color: #cf1730 !important;
	box-shadow: 0 0 0 3px rgba(227, 29, 53, 0.1) !important;
}

.apl-firmy-field small {
	display: block;
	margin-top: 5px;
	color: #7c8798;
	font-size: 10px;
}

.apl-firmy-consent {
	display: flex !important;
	align-items: flex-start !important;
	gap: 9px !important;
	margin: 16px 0 !important;
	color: #5d697b;
	font-size: 11px;
	line-height: 1.45;
}

.apl-firmy-consent input {
	flex: 0 0 auto;
	margin-top: 3px;
	accent-color: var(--apl-red);
}

.apl-firmy-form__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	padding-top: 17px;
	border-top: 1px solid #e4e9f0;
}

.apl-firmy-form__footer p {
	margin: 0 !important;
	color: #6d7888 !important;
	font-size: 11px !important;
}

.apl-firmy-form__footer button,
.apl-firmy-filter button {
	min-height: 47px !important;
	padding: 0 21px !important;
	border: 0 !important;
	border-radius: 10px !important;
	background: linear-gradient(135deg, #ef2440, #c90e28) !important;
	box-shadow: 0 10px 25px rgba(227, 29, 53, 0.24) !important;
	color: #fff !important;
	cursor: pointer;
	font: 800 13px/1 Inter, Arial, sans-serif !important;
}

.apl-firmy-form__footer button span {
	margin-left: 8px;
}

.apl-firmy-hp {
	position: absolute !important;
	left: -99999px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}

.apl-firmy-directory {
	margin-top: 34px;
}

.apl-firmy-directory__head {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: 17px;
}

.apl-firmy-directory__head > strong {
	padding: 7px 11px;
	border-radius: 999px;
	background: #eef2f7;
	color: #5b6879;
	font-size: 11px;
}

.apl-firmy-filter {
	display: grid !important;
	grid-template-columns: minmax(220px, 1fr) minmax(190px, 0.45fr) auto auto !important;
	align-items: center !important;
	gap: 9px !important;
	margin: 0 0 20px !important;
	padding: 12px !important;
	border: 1px solid #dfe5ed;
	border-radius: 15px;
	background: #fff;
	box-shadow: 0 11px 34px rgba(11, 25, 48, 0.06);
}

.apl-firmy-filter label {
	margin: 0 !important;
}

.apl-firmy-filter input,
.apl-firmy-filter select {
	width: 100% !important;
	height: 47px !important;
	min-height: 47px !important;
	margin: 0 !important;
	padding: 0 13px !important;
	border: 1px solid #d4dce7 !important;
	border-radius: 9px !important;
	background: #f9fbfd !important;
	box-shadow: none !important;
	font-size: 13px !important;
}

.apl-firmy-filter > a {
	padding: 8px;
	color: #637083;
	font-size: 11px;
	font-weight: 700;
}

.apl-firmy-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 15px;
}

.apl-firma-card {
	position: relative;
	display: flex;
	min-width: 0;
	min-height: 290px;
	flex-direction: column;
	overflow: hidden;
	padding: 19px;
	border: 1px solid #dce3ec;
	border-radius: 17px;
	background: #fff;
	box-shadow: 0 12px 35px rgba(11, 25, 48, 0.07);
	transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.apl-firma-card::before {
	position: absolute;
	top: 0;
	left: 0;
	width: 4px;
	height: 100%;
	background: linear-gradient(var(--apl-red), #1c79b7);
	content: "";
}

.apl-firma-card:hover {
	transform: translateY(-3px);
	border-color: #bdc8d6;
	box-shadow: 0 18px 45px rgba(11, 25, 48, 0.12);
}

.apl-firma-card__top {
	display: grid;
	grid-template-columns: 48px minmax(0, 1fr);
	align-items: center;
	gap: 12px;
}

.apl-firma-card__avatar {
	display: grid;
	width: 48px;
	height: 48px;
	place-items: center;
	border-radius: 13px;
	background: linear-gradient(135deg, #0a1c33, #163f68);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.11);
	color: #fff;
	font-size: 21px;
	font-weight: 900;
}

.apl-firma-card__top span {
	display: block;
	margin-bottom: 3px;
	color: var(--apl-red);
	font-size: 9px;
	font-weight: 850;
	letter-spacing: 0.7px;
	text-transform: uppercase;
}

.apl-firma-card h4 {
	margin: 0 !important;
	color: var(--apl-navy) !important;
	font-size: 18px !important;
	font-weight: 850 !important;
	line-height: 1.15 !important;
}

.apl-firma-card__description {
	margin: 16px 0 12px !important;
	color: #566275 !important;
	font-size: 12px !important;
	line-height: 1.55 !important;
}

.apl-firma-card__address {
	margin: auto 0 12px !important;
	color: #6c7889 !important;
	font-size: 10px !important;
	line-height: 1.4 !important;
}

.apl-firma-card__address::first-letter {
	color: var(--apl-red);
}

.apl-firma-card__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.apl-firma-card__actions a {
	display: inline-flex;
	min-height: 34px;
	align-items: center;
	padding: 0 10px;
	border: 1px solid #d6dee9;
	border-radius: 8px;
	background: #f8fafc;
	color: #16283e !important;
	font-size: 10px;
	font-weight: 750;
	text-decoration: none !important;
}

.apl-firma-card__actions a:first-child {
	border-color: #153a61;
	background: #0b2038;
	color: #fff !important;
}

.apl-firma-card__social {
	display: flex;
	gap: 10px;
	margin-top: 11px;
	padding-top: 10px;
	border-top: 1px solid #eef1f5;
}

.apl-firma-card__social a {
	color: #6d7888 !important;
	font-size: 9px;
	font-weight: 700;
	text-decoration: none !important;
}

.apl-firmy-empty {
	padding: 50px 20px;
	border: 1px dashed #cbd5e1;
	border-radius: 17px;
	background: #f8fafc;
	text-align: center;
}

.apl-firmy-empty > span {
	display: block;
	color: #94a3b8;
	font-size: 45px;
}

.apl-firmy-empty h4 {
	margin: 8px 0 5px !important;
	color: var(--apl-navy) !important;
	font-size: 22px !important;
}

.apl-firmy-empty p {
	margin: 0 !important;
	color: #667386 !important;
	font-size: 13px !important;
}

.apl-firmy-pagination ul {
	display: flex;
	justify-content: center;
	gap: 6px;
	margin: 24px 0 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

.apl-firmy-pagination a,
.apl-firmy-pagination span {
	display: grid;
	width: 38px;
	height: 38px;
	place-items: center;
	border: 1px solid #d7dee8;
	border-radius: 9px;
	background: #fff;
	color: #344054 !important;
	font-size: 11px;
	font-weight: 750;
	text-decoration: none !important;
}

.apl-firmy-pagination .current {
	border-color: var(--apl-red);
	background: var(--apl-red);
	color: #fff !important;
}

@media (max-width: 1050px) {
	.apl-firmy-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 760px) {
	.apl-firmy-hero {
		grid-template-columns: 1fr;
		padding: 25px 20px;
		border-radius: 20px;
	}

	.apl-firmy-hero h2 {
		font-size: 38px !important;
		letter-spacing: -1.7px !important;
	}

	.apl-firmy-hero__stats {
		grid-template-columns: repeat(3, 1fr);
	}

	.apl-firmy-hero__stats > div:not(.apl-firmy-hero__mark),
	.apl-firmy-hero__mark {
		grid-column: auto;
	}

	.apl-firmy-hero__mark {
		display: grid;
		place-items: center;
	}

	.apl-firmy-submit-shell > summary {
		align-items: flex-start !important;
		flex-direction: column;
		gap: 6px !important;
	}

	.apl-firmy-form-panel__heading,
	.apl-firmy-form__grid {
		grid-template-columns: 1fr !important;
	}

	.apl-firmy-field--wide {
		grid-column: auto;
	}

	.apl-firmy-form__footer {
		align-items: stretch;
		flex-direction: column;
	}

	.apl-firmy-form__footer button {
		width: 100%;
	}

	.apl-firmy-filter {
		grid-template-columns: 1fr !important;
	}

	.apl-firmy-filter button {
		width: 100%;
	}

	.apl-firmy-grid {
		grid-template-columns: 1fr;
	}

	.apl-firmy-directory__head {
		align-items: flex-start;
		flex-direction: column;
	}
}

@media (max-width: 420px) {
	.apl-firmy-hero__stats {
		grid-template-columns: 1fr 1fr;
	}

	.apl-firmy-hero__mark {
		grid-column: 1 / -1;
	}

	.apl-firmy-form-panel {
		padding: 19px 14px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.apl-firma-card,
	.apl-firmy-submit-shell > summary b {
		transition: none !important;
	}
}
