/**
 * IPLink inner pages — درباره ما، تماس با ما، پشتیبانی، یافتن نمایندگی.
 *
 * Loads only on pages built from patterns/page-*.php (they carry .ipl-page-section); the shared
 * section base, tokens and icons come from home.css / components.css, so everything here is layout
 * and the few page-specific components (contact cards, FAQ, finder).
 *
 * Same rules as home.css: logical properties only, motion limited to transform/opacity and dropped
 * under reduced motion, and adjacent bands differ in lightness (white → #EDF1F6 → navy → blue).
 */

/* Icons these pages need beyond the set home.css defines on .ipl-section (same drawing style). */
.ipl-page-section {
	--ipl-i-mail: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3.5 7 8.5 6 8.5-6'/%3E%3C/svg%3E");
	--ipl-i-clock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3.5 2'/%3E%3C/svg%3E");
	--ipl-i-file: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6M16 13H8M16 17H8'/%3E%3C/svg%3E");
	--ipl-i-chat: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 11.5a8.4 8.4 0 0 1-9 8.3 8.9 8.9 0 0 1-3.9-.9L3 20l1.2-4.4A8.2 8.2 0 0 1 3 11.5 8.5 8.5 0 0 1 12 3a8.5 8.5 0 0 1 9 8.5z'/%3E%3C/svg%3E");
	--ipl-i-download: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4M7 10l5 5 5-5M12 15V3'/%3E%3C/svg%3E");
}

/* ─── Page hero ───────────────────────────────────────────────────── */

.ipl-section.ipl-pagehero {
	padding-block: clamp(28px, 4vw, 56px) clamp(32px, 4.5vw, 64px);
	background: linear-gradient(160deg, #F7FAFF 0%, var(--ipl-tint, #EAF2FD) 100%);
	border-block-end: 1px solid var(--ipl-line, #DDE3EA);
}

.ipl-pagehero .ipl-breadcrumb {
	margin-block-end: clamp(16px, 2vw, 28px);
	color: var(--ipl-gray-text, #4B5563);
	font-size: 13px;
}

/* Inline links keep a 24px tall hit area (WCAG 2.5.8) without changing the text rhythm. */
.ipl-pagehero .ipl-breadcrumb a {
	display: inline-block;
	padding-block: 3px;
	color: var(--ipl-gray-text, #4B5563);
	text-decoration: none;
}

.ipl-pagehero .ipl-breadcrumb a:hover {
	color: var(--ipl-blue, #1668D9);
	text-decoration: underline;
}

.ipl-pagehero .ipl-breadcrumb span {
	margin-inline: 6px;
}

.ipl-pagehero__inner {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 14px;
	max-inline-size: 760px;
}

/* Hero with an illustration beside the text (About). One column on phones, image last. */
.ipl-pagehero__grid {
	display: grid;
	gap: clamp(20px, 3vw, 44px);
	align-items: center;
}

.ipl-pagehero__media {
	margin: 0;
	line-height: 0;
}

.ipl-pagehero__media img {
	inline-size: 100%;
	block-size: auto;
	border-radius: var(--ipl-card-radius, 18px);
	/* The illustration's stage is a light tint: blending it removes the hard edge on the hero band. */
	mix-blend-mode: multiply;
}

.ipl-pagehero__title {
	font-size: clamp(28px, 2.4vw + 18px, 48px);
	font-weight: 800;
	line-height: 1.35;
}

.ipl-pagehero__lead {
	color: var(--ipl-gray-text, #4B5563);
	font-size: clamp(15px, 0.4vw + 14px, 18px);
	line-height: 1.9;
}

.ipl-pagehero__actions {
	margin-block-start: 6px;
}

/* Support hero search: one row, full width on phones. */
.ipl-pagehero__search {
	inline-size: min(100%, 560px);
	margin-block-start: 8px;
}

.ipl-pagehero__search .wp-block-search__inside-wrapper {
	gap: 8px;
	padding: 0;
	border: 0;
}

.ipl-pagehero__search .wp-block-search__input {
	min-block-size: 48px;
	padding-inline: 14px;
	border: 1px solid var(--ipl-gray-line, #E3E6EA);
	border-radius: var(--ipl-radius-sm, 6px);
	background-color: var(--ipl-white, #FFFFFF);
	font-size: 15px;
}

.ipl-pagehero__search .wp-block-search__input:focus-visible {
	outline: 2px solid var(--ipl-blue, #1668D9);
	outline-offset: 2px;
}

.ipl-pagehero__search .wp-block-search__button {
	min-block-size: 48px;
	margin: 0;
	padding-inline: 20px;
	border: 0;
	border-radius: var(--ipl-radius-sm, 6px);
	background-color: var(--ipl-blue, #1668D9);
	color: var(--ipl-white, #FFFFFF);
	font-weight: 700;
}

.ipl-pagehero__search .wp-block-search__button:hover {
	background-color: var(--ipl-blue-hover, #1150AF);
}

/* ─── About: introduction and process ─────────────────────────────── */

.ipl-section.ipl-intro {
	background-color: var(--ipl-white, #FFFFFF);
}

.ipl-intro__grid,
.ipl-contact-form__grid,
.ipl-support-form__grid {
	display: grid;
	gap: clamp(24px, 3vw, 48px);
}

.ipl-intro__text p {
	margin-block-start: 14px;
	color: var(--ipl-gray-text, #4B5563);
	line-height: 2;
}

.ipl-steps {
	display: grid;
	gap: 14px;
	align-content: start;
}

.ipl-steps__item {
	position: relative;
	padding: 16px 18px;
	padding-inline-start: 52px;
	border: 1px solid var(--ipl-line, #DDE3EA);
	border-radius: var(--ipl-card-radius, 18px);
	background-color: var(--ipl-gray-bg, #F5F7FA);
	counter-increment: ipl-step;
}

.ipl-steps {
	counter-reset: ipl-step;
}

/* The step number is decoration; the text already reads in order. */
.ipl-steps__item::before {
	content: counter(ipl-step);
	position: absolute;
	inset-block-start: 16px;
	inset-inline-start: 16px;
	display: grid;
	place-items: center;
	inline-size: 26px;
	block-size: 26px;
	border-radius: 50%;
	background-color: var(--ipl-blue, #1668D9);
	color: var(--ipl-white, #FFFFFF);
	font-size: 13px;
	font-weight: 700;
}

.ipl-steps__title {
	font-weight: 700;
	line-height: 1.6;
}

.ipl-steps__text {
	margin-block-start: 4px;
	color: var(--ipl-gray-text, #4B5563);
	font-size: 14px;
	line-height: 1.9;
}

/* ─── Card grids (values, capabilities, support categories) ───────── */

.ipl-section.ipl-values {
	background-color: var(--ipl-surface, #EDF1F6);
}

.ipl-values__grid,
.ipl-capabilities__grid,
.ipl-support-cats__grid,
.ipl-contact-cards__grid,
.ipl-dealer-why__grid {
	display: grid;
	gap: clamp(14px, 1.6vw, 22px);
}

.ipl-values__item,
.ipl-capabilities__item,
.ipl-support-cat,
.ipl-contact-card,
.ipl-dealer-why__item {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: clamp(18px, 2vw, 26px);
	border: 1px solid var(--ipl-line, #DDE3EA);
	border-radius: var(--ipl-card-radius, 18px);
	background-color: var(--ipl-white, #FFFFFF);
}

.ipl-values__title,
.ipl-capabilities__title,
.ipl-support-cat__title,
.ipl-contact-card__title,
.ipl-dealer-why__title {
	font-size: 17px;
	font-weight: 700;
	line-height: 1.6;
}

.ipl-capabilities__title a,
.ipl-support-cat__title a {
	color: inherit;
	text-decoration: none;
}

.ipl-capabilities__title a:hover,
.ipl-support-cat__title a:hover {
	color: var(--ipl-blue, #1668D9);
	text-decoration: underline;
}

.ipl-values__text,
.ipl-capabilities__text,
.ipl-support-cat__text,
.ipl-contact-card__text,
.ipl-dealer-why__text {
	color: var(--ipl-gray-text, #4B5563);
	font-size: 14px;
	line-height: 1.9;
}

/*
 * Icons use the mask set defined on .ipl-section in home.css, drawn with ::after and moved to the
 * top of the card with order — ::before already belongs to the .ipl-spotlight hover glow, whose
 * rule in home.css is more specific and would paint over an icon placed there.
 */
.ipl-values__item::after,
.ipl-support-cat::after,
.ipl-contact-card::after,
.ipl-dealer-why__item::after {
	content: "";
	order: -1;
	inline-size: 32px;
	block-size: 32px;
	background-color: var(--ipl-blue, #1668D9);
	mask: var(--ipl-icon, var(--ipl-i-check)) center / contain no-repeat;
}

.ipl-values__item--seal,
.ipl-dealer-why__item--seal {
	--ipl-icon: var(--ipl-i-seal);
}

.ipl-values__item--shield,
.ipl-dealer-why__item--shield,
.ipl-support-cat--warranty {
	--ipl-icon: var(--ipl-i-shield);
}

.ipl-values__item--headset,
.ipl-dealer-why__item--headset,
.ipl-support-cat--contact {
	--ipl-icon: var(--ipl-i-headset);
}

.ipl-values__item--pin,
.ipl-support-cat--dealers,
.ipl-contact-card--address {
	--ipl-icon: var(--ipl-i-pin);
}

.ipl-support-cat--firmware {
	--ipl-icon: var(--ipl-i-download);
}

.ipl-support-cat--datasheets {
	--ipl-icon: var(--ipl-i-file);
}

.ipl-support-cat--install {
	--ipl-icon: var(--ipl-i-plug);
}

.ipl-contact-card--phone {
	--ipl-icon: var(--ipl-i-headset);
}

.ipl-contact-card--email {
	--ipl-icon: var(--ipl-i-mail);
}

.ipl-contact-card--mobile {
	--ipl-icon: var(--ipl-i-chat);
}

.ipl-contact-card__text a {
	color: var(--ipl-blue, #1668D9);
	font-weight: 700;
}

.ipl-contact-card--hours {
	--ipl-icon: var(--ipl-i-clock);
}

.ipl-section.ipl-capabilities,
.ipl-section.ipl-contact-cards,
.ipl-section.ipl-support-cats {
	background-color: var(--ipl-white, #FFFFFF);
}

.ipl-section.ipl-dealer-why {
	background-color: var(--ipl-surface, #EDF1F6);
}

/* ─── Contact cards ───────────────────────────────────────────────── */

.ipl-contact-card__value {
	font-size: 17px;
	font-weight: 700;
	line-height: 1.7;
	overflow-wrap: anywhere;
}

.ipl-contact-card__value a {
	color: var(--ipl-blue, #1668D9);
	text-decoration: none;
}

.ipl-contact-card__value a:hover {
	color: var(--ipl-blue-hover, #1150AF);
	text-decoration: underline;
}

/* ─── Forms (Contact Form 7 inside a section) ─────────────────────── */

.ipl-section.ipl-contact-form,
.ipl-section.ipl-support-form {
	background-color: var(--ipl-surface, #EDF1F6);
}

.ipl-contact-form__main,
.ipl-support-form__main {
	padding: clamp(20px, 2.4vw, 32px);
	border: 1px solid var(--ipl-line, #DDE3EA);
	border-radius: var(--ipl-card-radius, 18px);
	background-color: var(--ipl-white, #FFFFFF);
}

.ipl-contact-form__lead,
.ipl-support-form__lead {
	margin-block: 10px 20px;
	color: var(--ipl-gray-text, #4B5563);
	line-height: 1.9;
}

.ipl-form {
	display: grid;
	gap: 16px;
}

.ipl-form__row {
	display: grid;
	gap: 16px;
}

.ipl-form__field {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.ipl-form label {
	color: var(--ipl-navy, #0E1B2A);
	font-size: 14px;
	font-weight: 600;
}

.ipl-form .ipl-form__optional {
	color: var(--ipl-gray-text, #4B5563);
	font-weight: 400;
}

/* WoodMart styles form controls with element-level rules that set a fixed height and full-width
   submit buttons; these need the section class to win. */
.ipl-section .ipl-form :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="password"], select, textarea) {
	inline-size: 100%;
	min-block-size: 46px;
	padding: 10px 14px;
	border: 1px solid var(--ipl-gray-line, #E3E6EA);
	border-radius: var(--ipl-radius-sm, 6px);
	background-color: var(--ipl-white, #FFFFFF);
	color: var(--ipl-black, #111418);
	font-family: inherit;
	font-size: 15px;
	line-height: 1.8;
}

.ipl-section .ipl-form textarea {
	block-size: auto;
	min-block-size: 150px;
	resize: vertical;
}

.ipl-form :is(input, select, textarea):focus-visible {
	outline: 2px solid var(--ipl-blue, #1668D9);
	outline-offset: 2px;
}

.ipl-form input[type="file"] {
	padding: 10px 0;
	font-size: 14px;
}

.ipl-form .ipl-form__hint {
	color: var(--ipl-gray-text, #4B5563);
	font-size: 12.5px;
	line-height: 1.7;
}

.ipl-section .ipl-form .wpcf7-submit {
	/* A grid item stretches by default; the button should be its own width. */
	justify-self: start;
	inline-size: auto;
	min-block-size: 48px;
	padding-inline: 28px;
	border: 0;
	border-radius: var(--ipl-radius-sm, 6px);
	background-color: var(--ipl-blue, #1668D9);
	color: var(--ipl-white, #FFFFFF);
	font-family: inherit;
	font-size: 15px;
	font-weight: 700;
	cursor: pointer;
}

.ipl-section .ipl-form .wpcf7-submit:hover {
	background-color: var(--ipl-blue-hover, #1150AF);
}

.ipl-form .wpcf7-spinner {
	margin-inline-start: 10px;
}

/* CF7 validation messages: colour is never the only cue — each carries an icon and text. */
.ipl-section .wpcf7 form .wpcf7-response-output {
	margin: 16px 0 0;
	padding: 12px 16px;
	border: 1px solid var(--ipl-line, #DDE3EA);
	border-radius: var(--ipl-radius-sm, 6px);
	font-size: 14px;
	line-height: 1.8;
}

.ipl-section .wpcf7 form.sent .wpcf7-response-output {
	border-color: #15803D;
	background-color: #F0FDF4;
	color: #14532D;
}

.ipl-section .wpcf7 form:is(.invalid, .unaccepted, .failed, .aborted) .wpcf7-response-output {
	border-color: #B42318;
	background-color: #FEF3F2;
	color: #7A271A;
}

.ipl-section .wpcf7-not-valid-tip {
	display: block;
	margin-block-start: 4px;
	color: #B42318;
	font-size: 13px;
	font-weight: 600;
}

.ipl-section .wpcf7 :is(input, select, textarea).wpcf7-not-valid {
	border-color: #B42318;
	background-color: #FFFBFA;
}

.ipl-contact-form__aside,
.ipl-support-form__aside {
	display: flex;
	flex-direction: column;
	gap: 12px;
	align-self: start;
	padding: clamp(18px, 2vw, 26px);
	border: 1px solid var(--ipl-line, #DDE3EA);
	border-radius: var(--ipl-card-radius, 18px);
	background-color: var(--ipl-white, #FFFFFF);
}

.ipl-contact-form__aside-title,
.ipl-support-form__aside-title {
	font-size: 16px;
	font-weight: 700;
}

.ipl-contact-form__links {
	display: grid;
	gap: 10px;
	padding: 0;
	color: var(--ipl-gray-text, #4B5563);
	font-size: 14px;
	line-height: 1.8;
	list-style: none;
}

.ipl-contact-form__links a {
	display: inline-block;
	padding-block: 2px;
	color: var(--ipl-blue, #1668D9);
	font-weight: 600;
	text-decoration: none;
}

.ipl-contact-form__links a:hover {
	text-decoration: underline;
}

.ipl-contact-form__note,
.ipl-support-form__note,
.ipl-support-form__hours {
	color: var(--ipl-gray-text, #4B5563);
	font-size: 13.5px;
	line-height: 1.8;
}

.ipl-support-form__phone {
	font-size: 22px;
	font-weight: 800;
}

.ipl-support-form__phone a {
	color: var(--ipl-blue, #1668D9);
	text-decoration: none;
}

.ipl-contact-form__missing,
.ipl-support-form__missing {
	padding: 14px 16px;
	border: 1px dashed var(--ipl-line, #DDE3EA);
	border-radius: var(--ipl-radius-sm, 6px);
	color: var(--ipl-gray-text, #4B5563);
	font-size: 14px;
}

/* ─── FAQ ─────────────────────────────────────────────────────────── */

.ipl-section.ipl-faq {
	background-color: var(--ipl-white, #FFFFFF);
}

.ipl-faq__list {
	display: grid;
	gap: 10px;
	max-inline-size: 900px;
}

.ipl-faq__item {
	border: 1px solid var(--ipl-line, #DDE3EA);
	border-radius: var(--ipl-card-radius, 18px);
	background-color: var(--ipl-gray-bg, #F5F7FA);
}

.ipl-faq__item summary {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 16px clamp(16px, 2vw, 22px);
	color: var(--ipl-navy, #0E1B2A);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.7;
	cursor: pointer;
	list-style: none;
}

.ipl-faq__item summary::-webkit-details-marker {
	display: none;
}

.ipl-faq__item summary::after {
	content: "";
	flex: none;
	inline-size: 18px;
	block-size: 18px;
	margin-inline-start: auto;
	background-color: var(--ipl-blue, #1668D9);
	mask: var(--ipl-i-chevron) center / contain no-repeat;
	transform: rotate(90deg);
	transition: transform 0.2s ease-out;
}

.ipl-faq__item[open] summary::after {
	transform: rotate(-90deg);
}

.ipl-faq__item summary:focus-visible {
	outline: 2px solid var(--ipl-blue, #1668D9);
	outline-offset: -2px;
	border-radius: var(--ipl-card-radius, 18px);
}

.ipl-faq__item > :not(summary) {
	padding: 0 clamp(16px, 2vw, 22px) 18px;
	color: var(--ipl-gray-text, #4B5563);
	line-height: 2;
}

.ipl-faq__item a {
	color: var(--ipl-blue, #1668D9);
}

/* ─── Statistics band ─────────────────────────────────────────────── */

.ipl-section.ipl-stats {
	background-color: var(--ipl-navy, #0E1B2A);
	color: var(--ipl-white, #FFFFFF);
}

.ipl-stats .ipl-stats__title {
	margin-block-end: clamp(20px, 3vw, 36px);
	color: var(--ipl-white, #FFFFFF);
	font-size: clamp(22px, 1.6vw + 14px, 32px);
	font-weight: 800;
}

.ipl-stats__grid {
	display: grid;
	gap: clamp(14px, 2vw, 28px);
}

.ipl-stats__item {
	padding: clamp(16px, 2vw, 24px);
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: var(--ipl-card-radius, 18px);
	background-color: rgba(255, 255, 255, 0.05);
}

.ipl-stats__value {
	color: var(--ipl-white, #FFFFFF);
	/* Sized so the ALL-CAPS placeholders still fit; real numbers are much shorter. */
	font-size: clamp(22px, 1.2vw + 14px, 34px);
	font-weight: 800;
	line-height: 1.3;
	overflow-wrap: anywhere;
}

.ipl-stats__label {
	margin-block-start: 6px;
	color: var(--ipl-on-dark, #C9D2DC);
	font-size: 14px;
	line-height: 1.8;
}

.ipl-stats__note {
	margin-block-start: 18px;
	color: var(--ipl-on-dark, #C9D2DC);
	font-size: 13px;
}

/* ─── Closing call to action ──────────────────────────────────────── */

.ipl-section.ipl-cta {
	background: linear-gradient(135deg, var(--ipl-blue, #1668D9) 0%, var(--ipl-blue-hover, #1150AF) 100%);
	color: var(--ipl-white, #FFFFFF);
}

.ipl-cta__inner {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 12px;
	max-inline-size: 760px;
}

.ipl-cta .ipl-cta__title {
	color: var(--ipl-white, #FFFFFF);
	font-size: clamp(22px, 1.8vw + 14px, 34px);
	font-weight: 800;
	line-height: 1.45;
}

.ipl-cta__text {
	color: #DCE6F5;
	font-size: 15.5px;
	line-height: 1.9;
}

.ipl-cta__text a {
	color: var(--ipl-white, #FFFFFF);
	font-weight: 700;
}

.ipl-cta__actions {
	margin-block-start: 6px;
}

/* The ghost button sits on a blue band here: transparent fill and a white outline, never
   blue-on-blue — and the background must be said explicitly, or the light style's white fill wins. */
.ipl-cta .is-style-ipl-ghost .wp-block-button__link {
	border-color: rgba(255, 255, 255, 0.7);
	background-color: transparent;
	color: var(--ipl-white, #FFFFFF);
}

.ipl-cta .is-style-ipl-ghost .wp-block-button__link:hover {
	border-color: var(--ipl-white, #FFFFFF);
	background-color: rgba(255, 255, 255, 0.12);
	color: var(--ipl-white, #FFFFFF);
}

/* ─── Representative finder ───────────────────────────────────────── */

.ipl-section.ipl-finder-section {
	padding-block-start: clamp(24px, 3vw, 40px);
	background-color: var(--ipl-white, #FFFFFF);
}

.ipl-finder__search {
	display: grid;
	gap: 14px;
	padding: clamp(16px, 2vw, 22px);
	border: 1px solid var(--ipl-line, #DDE3EA);
	border-radius: var(--ipl-card-radius, 18px);
	background-color: var(--ipl-gray-bg, #F5F7FA);
}

.ipl-finder__field {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.ipl-finder__field label {
	font-size: 14px;
	font-weight: 600;
	margin: 0; /* WoodMart gives labels 5px below; the field gap already spaces them. */
	line-height: 24px; /* Fixed, so the submit button can line up with the fields below the labels. */
}

.ipl-finder__field :is(input, select) {
	box-sizing: border-box; /* Browsers give type="search" content-box: 28px wider and 22px taller than set. */
	inline-size: 100%;
	block-size: 48px;
	min-block-size: 48px;
	padding: 10px 14px;
	border: 1px solid var(--ipl-gray-line, #E3E6EA);
	border-radius: var(--ipl-radius-sm, 6px);
	background-color: var(--ipl-white, #FFFFFF);
	font-family: inherit;
	font-size: 15px;
}

.ipl-finder__field :is(input, select):focus-visible {
	outline: 2px solid var(--ipl-blue, #1668D9);
	outline-offset: 2px;
}

.ipl-finder__hint {
	color: var(--ipl-gray-text, #4B5563);
	font-size: 12.5px;
}

.ipl-finder__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: end;
}

.ipl-finder__submit {
	flex: 1 1 auto; /* Full width when the form is one column. */
	min-block-size: 48px;
	padding-inline: 20px;
	border: 1px solid var(--ipl-blue, #1668D9);
	border-radius: var(--ipl-radius-sm, 6px);
	background-color: var(--ipl-blue, #1668D9);
	color: var(--ipl-white, #FFFFFF);
	font-family: inherit;
	font-size: 15px;
	font-weight: 700;
	cursor: pointer;
}

.ipl-finder__submit:hover {
	background-color: var(--ipl-blue-hover, #1150AF);
}

.ipl-finder__services {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	border: 0;
}

.ipl-finder__services legend {
	inline-size: 100%;
	margin-block-end: 8px;
	padding: 0;
	font-size: 14px;
	font-weight: 600;
}

.ipl-finder__chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 14px;
	border: 1px solid var(--ipl-gray-line, #E3E6EA);
	border-radius: 999px;
	background-color: var(--ipl-white, #FFFFFF);
	font-size: 14px;
	cursor: pointer;
}

/* Selected state is a filled tile plus the checkbox itself — not colour alone. */
.ipl-finder__chip:has(input:checked) {
	border-color: var(--ipl-blue, #1668D9);
	background-color: var(--ipl-tint, #EAF2FD);
	color: var(--ipl-blue-hover, #1150AF);
	font-weight: 700;
}

.ipl-finder__chip:focus-within {
	outline: 2px solid var(--ipl-blue, #1668D9);
	outline-offset: 2px;
}

.ipl-finder .ipl-finder__count { /* .ipl-finder: outranks the sections' p { margin: 0 }. */
	margin-block: 16px 12px;
	color: var(--ipl-gray-text, #4B5563);
	font-size: 14px;
}

/*
 * WoodMart gives buttons and paragraphs a display value, which beats the browser's [hidden] rule —
 * so what the finder hides (filtered-out cards, the "nothing found" note) needs saying again with
 * class-level specificity.
 */
.ipl-finder [hidden] {
	display: none;
}

.ipl-finder__list {
	display: grid;
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ipl-dealer-card {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: clamp(16px, 2vw, 22px);
	border: 1px solid var(--ipl-line, #DDE3EA);
	border-radius: var(--ipl-card-radius, 18px);
	background-color: var(--ipl-white, #FFFFFF);
}

.ipl-dealer-card__name {
	font-size: 17px;
	font-weight: 700;
	line-height: 1.6;
}

.ipl-dealer-card__place {
	margin-block-start: 2px;
	color: var(--ipl-gray-text, #4B5563);
	font-size: 14px;
}

.ipl-dealer-card__code {
	margin-block-start: 2px;
	color: var(--ipl-gray-text, #4B5563);
	font-size: 12.5px;
}

.ipl-dealer-card__facts {
	display: grid;
	gap: 8px;
	margin: 0;
}

.ipl-dealer-card__fact {
	display: grid;
	grid-template-columns: 76px 1fr;
	gap: 8px;
	font-size: 14px;
	line-height: 1.8;
}

.ipl-dealer-card__fact dt {
	color: var(--ipl-gray-text, #4B5563);
	font-weight: 600;
}

.ipl-dealer-card__fact dd {
	margin: 0;
}

.ipl-dealer-card__fact a {
	display: inline-block;
	padding-block: 2px;
	color: var(--ipl-blue, #1668D9);
	text-decoration: none;
}

.ipl-dealer-card__fact a:hover {
	text-decoration: underline;
}

.ipl-dealer-card__services {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ipl-dealer-card__services li {
	padding: 4px 10px;
	border-radius: 999px;
	background-color: var(--ipl-tint, #EAF2FD);
	color: var(--ipl-blue-hover, #1150AF);
	font-size: 12.5px;
	font-weight: 600;
}

.ipl-dealer-card__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
	margin-block-start: 2px;
}

.ipl-dealer-card__action {
	min-block-size: 40px;
	padding: 8px 16px;
	border: 1px solid var(--ipl-blue, #1668D9);
	border-radius: var(--ipl-radius-sm, 6px);
	background-color: transparent;
	color: var(--ipl-blue, #1668D9);
	font-family: inherit;
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
}

.ipl-dealer-card__action--call {
	background-color: var(--ipl-blue, #1668D9);
	color: var(--ipl-white, #FFFFFF);
}

.ipl-dealer-card__action--call:hover {
	background-color: var(--ipl-blue-hover, #1150AF);
	color: var(--ipl-white, #FFFFFF);
}

.ipl-dealer-card__action:not(.ipl-dealer-card__action--call):hover {
	background-color: var(--ipl-tint, #EAF2FD);
}

.ipl-finder__empty {
	padding: clamp(20px, 3vw, 32px);
	border: 1px dashed var(--ipl-line, #DDE3EA);
	border-radius: var(--ipl-card-radius, 18px);
	background-color: var(--ipl-gray-bg, #F5F7FA);
	color: var(--ipl-gray-text, #4B5563);
	line-height: 1.9;
}

.ipl-finder__empty-title {
	color: var(--ipl-navy, #0E1B2A);
	font-size: 18px;
	font-weight: 700;
}

.ipl-finder__empty-text {
	margin-block-start: 8px;
}

.ipl-finder__empty-text a {
	color: var(--ipl-blue, #1668D9);
	font-weight: 700;
}

.ipl-finder__empty-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-block-start: 16px;
}

.ipl-finder__empty-action {
	min-block-size: 44px;
	padding: 11px 20px;
	border: 1px solid var(--ipl-blue, #1668D9);
	border-radius: var(--ipl-radius-sm, 6px);
	color: var(--ipl-blue, #1668D9);
	font-size: 15px;
	font-weight: 700;
	text-decoration: none;
}

.ipl-finder__empty-action:hover {
	background-color: var(--ipl-tint, #EAF2FD);
	color: var(--ipl-blue-hover, #1150AF);
}

.ipl-finder__empty-action--primary {
	background-color: var(--ipl-blue, #1668D9);
	color: var(--ipl-white, #FFFFFF);
}

.ipl-finder__empty-action--primary:hover {
	background-color: var(--ipl-blue-hover, #1150AF);
	color: var(--ipl-white, #FFFFFF);
}

.ipl-finder__admin-note {
	margin-block-start: 16px;
	padding-block-start: 14px;
	border-block-start: 1px solid var(--ipl-line, #DDE3EA);
	font-size: 13.5px;
}

/* ─── Brand mark outside the header ───────────────────────────────── */

.ipl-brandmark {
	display: block;
	line-height: 0;
}

.ipl-brandmark__img {
	block-size: auto;
}

.ipl-brandmark--hero {
	margin-block-end: 4px;
}

.ipl-brandmark--modal {
	margin-block-end: 12px;
}

/* ─── Firmware ────────────────────────────────────────────────────── */

.ipl-section.ipl-firmware-steps {
	background-color: var(--ipl-white, #FFFFFF);
}

.ipl-firmware-steps__warning {
	margin-block-start: 18px;
	padding: 14px 16px;
	border: 1px solid #FCD9A6;
	border-radius: var(--ipl-radius-sm, 6px);
	background-color: #FFF8EC;
	color: #7A4A06;
	font-size: 14px;
	line-height: 1.9;
}

.ipl-firmware-steps__warning a {
	color: inherit;
	font-weight: 700;
}

.ipl-section.ipl-firmware-section {
	background-color: var(--ipl-surface, #EDF1F6);
}

.ipl-firmware-section__lead {
	margin-block: 10px 22px;
	color: var(--ipl-gray-text, #4B5563);
	line-height: 1.9;
}

.ipl-firmware__list {
	display: grid;
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ipl-firmware__card {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: clamp(18px, 2.2vw, 26px);
	border: 1px solid var(--ipl-line, #DDE3EA);
	border-radius: var(--ipl-card-radius, 18px);
	background-color: var(--ipl-white, #FFFFFF);
}

.ipl-firmware__title {
	font-size: 18px;
	font-weight: 700;
	line-height: 1.6;
}

.ipl-firmware__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 20px;
	margin: 8px 0 0;
}

.ipl-firmware__meta div {
	display: flex;
	gap: 6px;
	font-size: 14px;
}

.ipl-firmware__meta dt {
	color: var(--ipl-gray-text, #4B5563);
}

.ipl-firmware__meta dd {
	margin: 0;
	font-weight: 700;
}

.ipl-firmware__models {
	color: var(--ipl-gray-text, #4B5563);
	font-size: 14px;
	line-height: 1.8;
}

.ipl-firmware__models span {
	font-weight: 600;
}

.ipl-firmware__section h4 {
	margin-block-end: 6px;
	font-size: 15px;
	font-weight: 700;
}

.ipl-firmware__section ul {
	display: grid;
	gap: 6px;
	margin: 0;
	padding-inline-start: 18px;
	color: var(--ipl-gray-text, #4B5563);
	font-size: 14px;
	line-height: 1.9;
}

.ipl-firmware__section--warning {
	padding: 14px 16px;
	border-radius: var(--ipl-radius-sm, 6px);
	background-color: #FFF8EC;
}

.ipl-firmware__section--warning h4 {
	color: #7A4A06;
}

.ipl-firmware__section--warning ul {
	color: #7A4A06;
}

.ipl-firmware__download {
	align-self: start;
	min-block-size: 48px;
	padding-inline: 24px;
	border: 0;
	border-radius: var(--ipl-radius-sm, 6px);
	background-color: var(--ipl-blue, #1668D9);
	color: var(--ipl-white, #FFFFFF);
	font-family: inherit;
	font-size: 15px;
	font-weight: 700;
	cursor: pointer;
}

.ipl-firmware__download:hover {
	background-color: var(--ipl-blue-hover, #1150AF);
}

.ipl-firmware__pending {
	color: var(--ipl-gray-text, #4B5563);
	font-size: 14px;
}

/* ─── Soft dialog (firmware download) ─────────────────────────────── */

.ipl-modal {
	inline-size: min(440px, calc(100vw - 32px));
	max-block-size: min(90vh, 760px);
	padding: 0;
	border: 0;
	border-radius: var(--ipl-card-radius, 18px);
	background-color: var(--ipl-white, #FFFFFF);
	box-shadow: 0 24px 60px rgba(14, 27, 42, 0.18);
	color: var(--ipl-black, #111418);
}

.ipl-modal::backdrop {
	background-color: rgba(14, 27, 42, 0.38);
	backdrop-filter: blur(2px);
}

/* Opening is a short fade and rise — nothing that jumps at the reader. */
@media (prefers-reduced-motion: no-preference) {
	.ipl-modal[open] {
		animation: ipl-modal-in 0.22s ease-out;
	}

	.ipl-modal[open]::backdrop {
		animation: ipl-modal-fade 0.22s ease-out;
	}
}

@keyframes ipl-modal-in {
	from {
		opacity: 0;
		translate: 0 8px;
	}
}

@keyframes ipl-modal-fade {
	from {
		opacity: 0;
	}
}

.ipl-modal__box {
	position: relative;
	padding: clamp(20px, 3vw, 28px);
}

.ipl-modal__close {
	position: absolute;
	inset-block-start: 12px;
	inset-inline-end: 12px;
	inline-size: 36px;
	block-size: 36px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background-color: var(--ipl-gray-bg, #F5F7FA);
	cursor: pointer;
}

.ipl-modal__close::before,
.ipl-modal__close::after {
	content: "";
	position: absolute;
	inset-block-start: 17px;
	inset-inline-start: 10px;
	inline-size: 16px;
	block-size: 2px;
	border-radius: 2px;
	background-color: var(--ipl-navy, #0E1B2A);
}

.ipl-modal__close::before {
	transform: rotate(45deg);
}

.ipl-modal__close::after {
	transform: rotate(-45deg);
}

.ipl-modal__close:hover {
	background-color: var(--ipl-gray-line, #E3E6EA);
}

.ipl-modal__title {
	margin-block-end: 8px;
	padding-inline-end: 40px;
	font-size: 19px;
	font-weight: 800;
	line-height: 1.6;
}

.ipl-modal__lead {
	margin-block-end: 16px;
	color: var(--ipl-gray-text, #4B5563);
	font-size: 14px;
	line-height: 1.9;
}

.ipl-modal__file {
	font-weight: 700;
}

.ipl-modal__done {
	margin-block-start: 8px;
	padding: 14px 16px;
	border: 1px solid #A7E1BF;
	border-radius: var(--ipl-radius-sm, 6px);
	background-color: #F0FDF4;
	color: #14532D;
	font-size: 14px;
	line-height: 1.9;
}

.ipl-modal__done a {
	color: inherit;
	font-weight: 700;
}

.ipl-modal .ipl-form {
	gap: 12px;
}

.ipl-modal .ipl-form .wpcf7-submit {
	justify-self: stretch;
	inline-size: 100%;
}

/* ─── Warranty ────────────────────────────────────────────────────── */

.ipl-section.ipl-warranty-section {
	background-color: var(--ipl-white, #FFFFFF);
}

.ipl-warranty-section__grid {
	display: grid;
	gap: clamp(20px, 3vw, 40px);
}

.ipl-warranty__form {
	display: grid;
	gap: 16px;
	margin-block-start: 16px;
	padding: clamp(18px, 2.2vw, 26px);
	border: 1px solid var(--ipl-line, #DDE3EA);
	border-radius: var(--ipl-card-radius, 18px);
	background-color: var(--ipl-gray-bg, #F5F7FA);
}

.ipl-warranty__fields {
	display: grid;
	gap: 16px;
}

.ipl-warranty__form .ipl-form__field {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.ipl-warranty__form label {
	font-size: 14px;
	font-weight: 600;
}

.ipl-warranty__form :is(input[type="text"], input[type="tel"]) {
	inline-size: 100%;
	min-block-size: 48px;
	padding: 10px 14px;
	border: 1px solid var(--ipl-gray-line, #E3E6EA);
	border-radius: var(--ipl-radius-sm, 6px);
	background-color: var(--ipl-white, #FFFFFF);
	font-family: inherit;
	font-size: 16px;
	letter-spacing: 0.04em;
}

.ipl-warranty__form :is(input):focus-visible {
	outline: 2px solid var(--ipl-blue, #1668D9);
	outline-offset: 2px;
}

.ipl-warranty__submit {
	display: inline-flex;
	gap: 10px;
	align-items: center;
	justify-content: center;
	justify-self: start;
	min-block-size: 48px;
	padding-inline: 26px;
	border: 0;
	border-radius: var(--ipl-radius-sm, 6px);
	background-color: var(--ipl-blue, #1668D9);
	color: var(--ipl-white, #FFFFFF);
	font-family: inherit;
	font-size: 15px;
	font-weight: 700;
	cursor: pointer;
}

.ipl-warranty__submit:hover {
	background-color: var(--ipl-blue-hover, #1150AF);
}

.ipl-warranty__submit[disabled] {
	opacity: 0.75;
	cursor: progress;
}

.ipl-warranty__spinner {
	inline-size: 18px;
	block-size: 18px;
	border: 2px solid rgba(255, 255, 255, 0.45);
	border-block-start-color: var(--ipl-white, #FFFFFF);
	border-radius: 50%;
	animation: ipl-spin 0.8s linear infinite;
}

@keyframes ipl-spin {
	to {
		transform: rotate(360deg);
	}
}

@media (prefers-reduced-motion: reduce) {
	.ipl-warranty__spinner {
		animation-duration: 2.4s;
	}
}

.ipl-warranty__card {
	margin-block-start: 18px;
	padding: clamp(18px, 2.2vw, 26px);
	border: 1px solid var(--ipl-line, #DDE3EA);
	border-inline-start: 4px solid var(--ipl-gray-text, #4B5563);
	border-radius: var(--ipl-card-radius, 18px);
	background-color: var(--ipl-white, #FFFFFF);
}

/* Each state names itself in the title as well as its colour. */
.ipl-warranty__card--active {
	border-inline-start-color: #15803D;
	background-color: #F4FBF6;
}

.ipl-warranty__card--expired {
	border-inline-start-color: #B45309;
	background-color: #FFFBF3;
}

.ipl-warranty__card--unregister {
	border-inline-start-color: var(--ipl-blue, #1668D9);
	background-color: var(--ipl-tint, #EAF2FD);
}

.ipl-warranty__card--not_found,
.ipl-warranty__card--phone_mismatch,
.ipl-warranty__card--invalid,
.ipl-warranty__card--error {
	border-inline-start-color: #B42318;
	background-color: #FEF7F6;
}

.ipl-warranty__card-title {
	font-size: 18px;
	font-weight: 800;
	line-height: 1.6;
}

.ipl-warranty__card-text {
	margin-block-start: 6px;
	color: var(--ipl-gray-text, #4B5563);
	line-height: 1.9;
}

.ipl-warranty__details {
	display: grid;
	gap: 8px;
	margin-block-start: 16px;
	padding-block-start: 14px;
	border-block-start: 1px solid var(--ipl-line, #DDE3EA);
}

.ipl-warranty__details div {
	display: grid;
	grid-template-columns: 120px 1fr;
	gap: 10px;
	font-size: 14.5px;
}

.ipl-warranty__details dt {
	color: var(--ipl-gray-text, #4B5563);
}

.ipl-warranty__details dd {
	margin: 0;
	font-weight: 600;
}

.ipl-warranty__card-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-block-start: 18px;
}

.ipl-warranty-section__aside {
	align-self: start;
	padding: clamp(18px, 2vw, 26px);
	border: 1px solid var(--ipl-line, #DDE3EA);
	border-radius: var(--ipl-card-radius, 18px);
	background-color: var(--ipl-gray-bg, #F5F7FA);
}

.ipl-warranty-section__aside-title {
	margin-block-start: 18px;
	font-size: 16px;
	font-weight: 700;
}

.ipl-warranty-section__aside-title:first-child {
	margin-block-start: 0;
}

.ipl-warranty-section__list {
	display: grid;
	gap: 8px;
	margin-block-start: 10px;
	padding-inline-start: 18px;
	color: var(--ipl-gray-text, #4B5563);
	font-size: 14px;
	line-height: 1.9;
}

.ipl-warranty-section__note {
	margin-block-start: 10px;
	color: var(--ipl-gray-text, #4B5563);
	font-size: 14px;
	line-height: 1.9;
}

.ipl-warranty-section__note a {
	color: var(--ipl-blue, #1668D9);
}

/* ─── About: owner's brand story (2026-09-27) ─────────────────────── */

/* The hero title is a full sentence here; a step smaller keeps it to three lines beside the image. */
.ipl-pagehero--about .ipl-pagehero__title {
	font-size: clamp(24px, 1.6vw + 16px, 40px);
	line-height: 1.5;
}

.ipl-section .ipl-section-head__lead {
	color: var(--ipl-gray-text, #4B5563);
	font-size: 15.5px;
	line-height: 1.9;
}

/* "What IPLINK defines" card beside the approach text. */
.ipl-control {
	align-self: start;
	padding: clamp(18px, 2vw, 26px);
	border: 1px solid var(--ipl-line, #DDE3EA);
	border-radius: var(--ipl-card-radius, 18px);
	background-color: var(--ipl-gray-bg, #F5F7FA);
}

.ipl-control__title {
	font-size: 16px;
	font-weight: 700;
}

.ipl-section .ipl-control__list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-block: 14px;
	padding: 0;
	list-style: none;
}

.ipl-control__list li {
	margin: 0;
	padding: 6px 14px;
	border-radius: 999px;
	background-color: var(--ipl-white, #FFFFFF);
	border: 1px solid var(--ipl-line, #DDE3EA);
	color: var(--ipl-navy, #0E1B2A);
	font-size: 14px;
	font-weight: 600;
}

.ipl-control__note {
	color: var(--ipl-gray-text, #4B5563);
	font-size: 13.5px;
	line-height: 1.8;
}

/* From idea to product: text beside the customisation checklist. */
.ipl-section.ipl-idea,
.ipl-section.ipl-oem {
	background-color: var(--ipl-surface, #EDF1F6);
}

.ipl-idea__grid,
.ipl-ai__grid,
.ipl-oem__grid {
	display: grid;
	gap: clamp(20px, 3vw, 44px);
}

.ipl-idea__text p,
.ipl-ai__text p,
.ipl-oem__text p,
.ipl-made__grid p {
	color: var(--ipl-gray-text, #4B5563);
	line-height: 2;
}

.ipl-idea__text,
.ipl-ai__text,
.ipl-oem__text {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.ipl-section .ipl-idea__goal {
	padding: 14px 16px;
	border-inline-start: 4px solid var(--ipl-blue, #1668D9);
	border-radius: var(--ipl-radius-sm, 6px);
	background-color: var(--ipl-white, #FFFFFF);
	color: var(--ipl-navy, #0E1B2A);
	font-weight: 600;
}

.ipl-idea__custom {
	padding: clamp(18px, 2vw, 26px);
	border: 1px solid var(--ipl-line, #DDE3EA);
	border-radius: var(--ipl-card-radius, 18px);
	background-color: var(--ipl-white, #FFFFFF);
}

.ipl-idea__custom-title {
	font-weight: 700;
	line-height: 1.9;
}

.ipl-section .ipl-checklist {
	display: grid;
	gap: 10px 20px;
	margin-block-start: 14px;
	padding: 0;
	list-style: none;
}

/*
 * Block, not flex: the items mix Persian with Latin terms in <bdo>, and in a flex row every text run
 * and <bdo> becomes its own item — the gap then shows up as extra space around «Firmware».
 */
.ipl-checklist li {
	position: relative;
	margin: 0;
	padding-inline-start: 28px;
	color: var(--ipl-navy, #0E1B2A);
	font-size: 14.5px;
	line-height: 1.8;
}

/* The tick is decoration; each item reads on its own. */
.ipl-checklist li::before {
	content: "";
	position: absolute;
	inset-block-start: 4px;
	inset-inline-start: 0;
	inline-size: 18px;
	block-size: 18px;
	background-color: var(--ipl-blue, #1668D9);
	mask: var(--ipl-i-check) center / contain no-repeat;
}

/* Smart networks: the dark band of the page. */
.ipl-section.ipl-ai {
	background-color: var(--ipl-navy, #0E1B2A);
	color: var(--ipl-white, #FFFFFF);
}

.ipl-ai .ipl-section-head__title {
	color: var(--ipl-white, #FFFFFF);
}

.ipl-ai .ipl-eyebrow {
	color: var(--ipl-on-dark-accent, #9CC3FF);
}

.ipl-ai .ipl-ai__text p {
	color: var(--ipl-on-dark, #C9D2DC);
}

.ipl-ai__topics {
	padding: clamp(18px, 2vw, 26px);
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: var(--ipl-card-radius, 18px);
	background-color: rgba(255, 255, 255, 0.05);
}

.ipl-ai__topics-title {
	color: var(--ipl-white, #FFFFFF);
	font-weight: 700;
	line-height: 1.9;
}

.ipl-section .ipl-topics {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-block: 14px;
	padding: 0;
	list-style: none;
}

.ipl-topics li {
	margin: 0;
	padding: 6px 14px;
	border: 1px solid rgba(156, 195, 255, 0.45);
	border-radius: 999px;
	color: #DCE6F5;
	font-size: 14px;
}

/* The disclaimer must not read as small print: full-contrast text with a marker. */
.ipl-ai .ipl-ai__note {
	padding: 12px 14px;
	border-inline-start: 3px solid var(--ipl-on-dark-accent, #9CC3FF);
	border-radius: var(--ipl-radius-sm, 6px);
	background-color: rgba(255, 255, 255, 0.06);
	color: #E3E6EA;
	font-size: 14px;
	line-height: 1.9;
}

/* Portfolio: eight product lines. */
.ipl-portfolio__grid .ipl-capabilities__title span[dir="ltr"] {
	display: inline-block;
}

/* OEM & ODM: text beside the process flow. */
.ipl-oem__flow {
	padding: clamp(18px, 2vw, 26px);
	border: 1px solid var(--ipl-line, #DDE3EA);
	border-radius: var(--ipl-card-radius, 18px);
	background-color: var(--ipl-white, #FFFFFF);
}

.ipl-oem__flow-title {
	color: var(--ipl-gray-text, #4B5563);
	font-size: 14.5px;
	line-height: 1.9;
}

.ipl-section .ipl-flow {
	display: grid;
	gap: 10px;
	margin-block-start: 16px;
	padding: 0;
	list-style: none;
	counter-reset: ipl-flow;
}

/* Block with a positioned counter, for the same mixed-text reason as .ipl-checklist. */
.ipl-flow li {
	position: relative;
	margin: 0;
	padding-block: 10px;
	padding-inline: 52px 14px;
	border-radius: var(--ipl-radius-sm, 6px);
	background-color: var(--ipl-gray-bg, #F5F7FA);
	color: var(--ipl-navy, #0E1B2A);
	font-weight: 600;
	line-height: 1.7;
	counter-increment: ipl-flow;
}

.ipl-flow li::before {
	content: counter(ipl-flow);
	position: absolute;
	inset-block-start: 50%;
	inset-inline-start: 14px;
	translate: 0 -50%;
	display: grid;
	place-items: center;
	inline-size: 26px;
	block-size: 26px;
	border-radius: 50%;
	background-color: var(--ipl-blue, #1668D9);
	color: var(--ipl-white, #FFFFFF);
	font-size: 13px;
	font-weight: 700;
}

.ipl-oem__actions {
	margin-block-start: 6px;
}

/* The eyebrow sits in the text column here, outside .ipl-section-head: give it the usual blue. */
.ipl-oem .ipl-eyebrow {
	color: var(--ipl-blue, #1668D9);
}

/* Made in China, designed by IPLINK: two columns of prose. */
.ipl-section.ipl-made {
	background-color: var(--ipl-white, #FFFFFF);
}

.ipl-made__grid {
	display: grid;
	gap: 14px clamp(24px, 3vw, 44px);
}

/* Closing band: the brand line gets its own weight. */
.ipl-future .ipl-cta__inner {
	max-inline-size: 860px;
}

.ipl-section .ipl-future__tagline {
	margin-block-start: 6px;
	color: var(--ipl-white, #FFFFFF);
	font-size: clamp(19px, 0.9vw + 14px, 24px);
	font-weight: 800;
	line-height: 1.7;
}

@media (min-width: 576px) {
	.ipl-section .ipl-checklist {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 769px) {
	.ipl-idea__grid,
	.ipl-ai__grid,
	.ipl-oem__grid {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		align-items: start;
	}

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

	.ipl-section .ipl-flow {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* ─── Responsive ──────────────────────────────────────────────────── */

@media (min-width: 576px) {
	.ipl-values__grid,
	.ipl-capabilities__grid,
	.ipl-support-cats__grid,
	.ipl-contact-cards__grid,
	.ipl-dealer-why__grid,
	.ipl-stats__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ipl-form__row--two {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 769px) {
	.ipl-intro__grid {
		grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
		align-items: start;
	}

	.ipl-pagehero__grid {
		grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
	}

	.ipl-warranty-section__grid {
		grid-template-columns: minmax(0, 1.4fr) minmax(0, 0.6fr);
		align-items: start;
	}

	.ipl-warranty__fields {
		grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
	}

	.ipl-contact-form__grid,
	.ipl-support-form__grid {
		grid-template-columns: minmax(0, 1.4fr) minmax(0, 0.6fr);
		align-items: start;
	}

	.ipl-support-cats__grid,
	.ipl-dealer-why__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.ipl-stats__grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	/* Two columns of cards read better than one very wide column. */
	.ipl-finder__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ipl-finder__search {
		grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) auto;
		align-items: start;
	}

	/* Label line (24px) + label gap (6px): the button sits level with the fields. */
	.ipl-finder__actions {
		padding-block-start: 30px;
	}

	.ipl-finder__services {
		grid-column: 1 / -1;
	}
}

@media (min-width: 1025px) {
	.ipl-values__grid,
	.ipl-capabilities__grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.ipl-contact-cards__grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.ipl-finder__list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (prefers-reduced-motion: reduce) {
	.ipl-faq__item summary::after {
		transition: none;
	}
}

/* ─── Accounts: login / sign-up panel, firmware dialog steps, account page (2026-10-10) ─── */

.ipl-auth {
	display: grid;
	gap: 18px;
}

.ipl-auth__tabs {
	display: grid;
	grid-template-columns: 1fr 1fr;
	padding: 4px;
	border-radius: 999px;
	background-color: var(--ipl-gray-bg, #F5F7FA);
}

.ipl-section .ipl-auth__tab {
	min-block-size: 42px;
	padding: 0 12px;
	border: 0;
	border-radius: 999px;
	background-color: transparent;
	color: var(--ipl-gray-text, #4B5563);
	font-family: inherit;
	font-size: 15px;
	font-weight: 700;
	cursor: pointer;
}

.ipl-section .ipl-auth__tab[aria-selected="true"] {
	background-color: var(--ipl-white, #FFFFFF);
	color: var(--ipl-navy, #0E1B2A);
	box-shadow: 0 1px 3px rgba(14, 27, 42, 0.12);
}

.ipl-auth__tab:focus-visible {
	outline: 2px solid var(--ipl-blue, #1668D9);
	outline-offset: 2px;
}

.ipl-auth__form[hidden] {
	display: none;
}

.ipl-auth__form .ipl-form__field {
	display: grid;
	gap: 6px;
}

.ipl-auth__form [aria-invalid="true"] {
	border-color: #DC2626;
}

.ipl-auth__row {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 16px;
	align-items: center;
	justify-content: space-between;
	font-size: 14px;
}

.ipl-section .ipl-auth__remember {
	display: inline-flex;
	gap: 8px;
	align-items: center;
	margin: 0;
	font-weight: 400;
}

.ipl-auth__lost {
	font-size: 14px;
}

.ipl-auth__error[hidden] {
	display: none;
}

.ipl-section .ipl-auth__error {
	margin: 0;
	padding: 12px 14px;
	border: 1px solid #FECACA;
	border-radius: var(--ipl-radius-sm, 6px);
	background-color: #FEF2F2;
	color: #991B1B;
	font-size: 14px;
	line-height: 1.8;
}

.ipl-section .ipl-auth__submit {
	inline-size: 100%;
	min-block-size: 48px;
	padding: 0 20px;
	border: 1px solid var(--ipl-blue, #1668D9);
	border-radius: var(--ipl-radius-sm, 6px);
	background-color: var(--ipl-blue, #1668D9);
	color: var(--ipl-white, #FFFFFF);
	font-family: inherit;
	font-size: 15px;
	font-weight: 700;
	cursor: pointer;
}

.ipl-section .ipl-auth__submit:hover {
	background-color: var(--ipl-blue-hover, #1150AF);
}

.ipl-section .ipl-auth__submit:disabled {
	opacity: 0.7;
	cursor: progress;
}

/* Honeypot for sign-up bots: off-screen, never focusable by people. */
.ipl-auth__trap {
	position: absolute;
	inset-inline-start: -9999px;
	inline-size: 1px;
	block-size: 1px;
	overflow: hidden;
}

/* Firmware dialog: one step shown at a time. */
.ipl-modal__step[hidden] {
	display: none;
}

.ipl-modal__actions {
	display: grid;
	gap: 10px;
}

.ipl-section .ipl-modal__secondary {
	min-block-size: 46px;
	border: 1px solid var(--ipl-gray-line, #E3E6EA);
	border-radius: var(--ipl-radius-sm, 6px);
	background-color: var(--ipl-white, #FFFFFF);
	color: var(--ipl-navy, #0E1B2A);
	font-family: inherit;
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
}

.ipl-section .ipl-firmware__last {
	margin: 8px 0 0;
	color: var(--ipl-gray-text, #4B5563);
	font-size: 13px;
}

.ipl-firmware__last[hidden] {
	display: none;
}

/* Account page. */
.ipl-account {
	display: grid;
	gap: 20px;
	max-inline-size: 760px;
}

.ipl-account--guest {
	max-inline-size: 480px;
	padding: clamp(20px, 3vw, 28px);
	border: 1px solid var(--ipl-line, #DDE3EA);
	border-radius: var(--ipl-card-radius, 18px);
	background-color: var(--ipl-white, #FFFFFF);
}

.ipl-section .ipl-account__intro {
	margin: 0;
	color: var(--ipl-gray-text, #4B5563);
	font-size: 14px;
	line-height: 1.9;
}

.ipl-account__head {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: center;
	justify-content: space-between;
}

.ipl-section .ipl-account__hello {
	margin: 0;
	font-size: clamp(20px, 2vw, 24px);
}

.ipl-section .ipl-account__since {
	margin: 4px 0 0;
	color: var(--ipl-gray-text, #4B5563);
	font-size: 14px;
}

.ipl-account__logout {
	padding: 8px 16px;
	border: 1px solid var(--ipl-gray-line, #E3E6EA);
	border-radius: var(--ipl-radius-sm, 6px);
	color: var(--ipl-navy, #0E1B2A);
	font-size: 14px;
	font-weight: 600;
}

.ipl-account__card {
	display: grid;
	gap: 14px;
	padding: clamp(18px, 3vw, 26px);
	border: 1px solid var(--ipl-line, #DDE3EA);
	border-radius: var(--ipl-card-radius, 18px);
	background-color: var(--ipl-white, #FFFFFF);
}

.ipl-section .ipl-account__title {
	margin: 0;
	font-size: 18px;
}

.ipl-section .ipl-account__downloads {
	display: grid;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ipl-section .ipl-account__downloads li {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 16px;
	justify-content: space-between;
	margin: 0;
	padding: 12px 14px;
	border-radius: var(--ipl-radius-sm, 6px);
	background-color: var(--ipl-gray-bg, #F5F7FA);
}

.ipl-account__dl-name {
	font-weight: 700;
}

.ipl-account__dl-meta {
	color: var(--ipl-gray-text, #4B5563);
	font-size: 14px;
}

.ipl-section :is(.ipl-account__empty, .ipl-account__saved) {
	margin: 0;
	font-size: 14px;
}

.ipl-section .ipl-account__saved {
	padding: 12px 14px;
	border: 1px solid #A7E1BF;
	border-radius: var(--ipl-radius-sm, 6px);
	background-color: #F0FDF4;
	color: #14532D;
}

.ipl-account__link {
	justify-self: start;
	font-weight: 600;
}

.ipl-account__password {
	display: grid;
	gap: 12px;
	margin: 0;
	padding: 0;
	border: 0;
}

.ipl-account__password legend {
	margin-block-end: 8px;
	padding: 0;
	font-weight: 700;
}

.ipl-section .ipl-account__form input[readonly] {
	background-color: var(--ipl-gray-bg, #F5F7FA);
	color: var(--ipl-gray-text, #4B5563);
}

/* WoodMart gives labels a bottom margin; the field's 6px gap already spaces label and input. */
.ipl-section :is(.ipl-auth__form, .ipl-account__form) .ipl-form__field > label {
	margin: 0;
}
