/*
 * Premium polish for inner pages (theme 0.20.0, global).
 * Uses its own cascade layer "polish": unlisted in the layer order statement, so it comes after
 * "utilities" and refines earlier component/page styles without !important.
 */
@layer polish {
	/* ============================================================ Inline call to action (every inner page) */
	.cta-inline {
		position: relative;
		isolation: isolate;
		overflow: hidden;
		padding: clamp(1.75rem, 1rem + 3vw, 3rem) clamp(1.5rem, 1rem + 3vw, 3.25rem);
		border: 0;
		border-radius: 1.25rem;
		background:
			radial-gradient(70% 120% at 100% 0%, color-mix(in srgb, var(--palette-green) 55%, transparent), transparent 60%),
			radial-gradient(50% 90% at 0% 100%, color-mix(in srgb, var(--palette-green) 25%, transparent), transparent 70%),
			var(--palette-slate);
		box-shadow: 0 30px 60px -36px rgb(16 32 40 / 0.6);
		color: var(--palette-paper);
	}
	.cta-inline::before {
		content: "";
		position: absolute;
		inset: 0;
		z-index: -1;
		background-image:
			linear-gradient(rgb(255 255 255 / 0.05) 1px, transparent 1px),
			linear-gradient(90deg, rgb(255 255 255 / 0.05) 1px, transparent 1px);
		background-size: 36px 36px;
		mask-image: radial-gradient(ellipse 80% 90% at 85% 20%, #000 15%, transparent 75%);
	}
	.cta-inline::after { /* slow light sweep */
		content: "";
		position: absolute;
		top: 0;
		bottom: 0;
		left: -40%;
		width: 35%;
		z-index: -1;
		background: linear-gradient(100deg, transparent, rgb(255 255 255 / 0.06), transparent);
		animation: gpipl-sweep 7s ease-in-out infinite;
	}
	.cta-inline__title { font-size: var(--step-3); line-height: 1.15; color: #fff; }
	.cta-inline__text { color: rgb(255 255 255 / 0.78); }
	.cta-inline__text a { color: var(--accent-light); font-weight: var(--wght-semibold); }
	.cta-inline .button--primary { box-shadow: 0 12px 28px -12px var(--glow-green); }
	@keyframes gpipl-sweep { 0%, 55% { transform: translateX(0); } 100% { transform: translateX(420%); } }

	/* ============================================================ Solutions list: icon cards */
	.sol-index { gap: var(--space-s); grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr)); }
	.sol-index:not(:has(> :nth-child(3))) { grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr)); }
	.sol-card {
		overflow: hidden;
		grid-template-columns: auto minmax(0, 1fr) auto;
		align-items: start;
		gap: var(--space-2xs) var(--space-s);
		padding: var(--space-m);
		border: 1px solid var(--color-line);
		border-radius: var(--radius-m);
		border-radius: 1rem;
		background: var(--color-bg);
		box-shadow: 0 1px 2px rgb(16 32 40 / 0.04);
		transition: transform 350ms var(--ease-out), box-shadow 350ms var(--ease-out), border-color 350ms var(--ease-out);
	}
	.sol-card::before {
		content: "";
		position: absolute;
		inset: 0 0 auto;
		height: 3px;
		background: var(--grad-accent, var(--palette-green));
		transform: scaleX(0);
		transform-origin: 0 50%;
		transition: transform 500ms var(--ease-out);
	}
	.sol-card:hover, .sol-card:focus-within { transform: translateY(-5px); border-color: color-mix(in srgb, var(--palette-green) 40%, var(--color-line)); box-shadow: 0 22px 40px -24px rgb(16 32 40 / 0.35); }
	.sol-card:hover::before, .sol-card:focus-within::before { transform: scaleX(1); }
	.sol-card__badge {
		grid-column: 1;
		grid-row: 1 / span 2;
		display: grid;
		place-items: center;
		width: 3rem;
		height: 3rem;
		border-radius: 0.9rem;
		background: color-mix(in srgb, var(--palette-green) 12%, var(--color-bg));
		color: var(--palette-green);
		transition: background-color 350ms var(--ease-out), color 350ms var(--ease-out), transform 350ms var(--ease-out);
	}
	.sol-card:hover .sol-card__badge, .sol-card:focus-within .sol-card__badge { background: var(--palette-green); color: var(--on-brand); transform: rotate(-6deg) scale(1.05); }
	.sol-card__title { grid-column: 2; font-size: var(--step-1); }
	.sol-card__title a { text-decoration: none !important; }
	.sol-card__icon { grid-column: 3; grid-row: 1; }
	.sol-card__text, .sol-card__tags { grid-column: 2 / -1; }
	.sol-card__text { font-size: var(--step--1); line-height: 1.55; }
	.sol-card__tags li { border-radius: 999px; }

	/* Other solutions / industries rows on single pages: compact icon tiles */
	.sector-rows { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr)); gap: var(--space-s); border-top: 0; }
	.sector-row {
		grid-template-columns: auto minmax(0, 1fr) auto;
		align-items: center;
		gap: 0.25rem var(--space-s);
		padding: var(--space-s) var(--space-m);
		border: 1px solid var(--color-line);
		border-radius: 1rem;
		background: var(--color-bg);
		transition: transform 300ms var(--ease-out), box-shadow 300ms var(--ease-out), border-color 300ms var(--ease-out);
	}
	.sector-row:hover, .sector-row:focus-within { transform: translateY(-3px); border-color: color-mix(in srgb, var(--palette-green) 40%, var(--color-line)); box-shadow: 0 16px 30px -22px rgb(16 32 40 / 0.35); }
	.sector-row__badge {
		grid-column: 1;
		grid-row: 1 / span 2;
		display: grid;
		place-items: center;
		width: 2.6rem;
		height: 2.6rem;
		border-radius: 0.8rem;
		background: color-mix(in srgb, var(--palette-green) 12%, var(--color-bg));
		color: var(--palette-green);
		transition: background-color 300ms var(--ease-out), color 300ms var(--ease-out);
	}
	.sector-row:hover .sector-row__badge { background: var(--palette-green); color: var(--on-brand); }
	.sector-row__title { grid-column: 2; font-size: var(--step-0); }
	.sector-row__title a { text-decoration: none !important; }
	.sector-row__text { grid-column: 2; font-size: var(--step--1); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
	.sector-row__icon { grid-column: 3; grid-row: 1 / span 2; }

	/* ============================================================ Industries list: dark tiles */
	.ind-grid { gap: var(--space-s); }
	@media (min-width: 64em) { .ind-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
	.ind-tile {
		overflow: hidden;
		isolation: isolate;
		display: flex;
		flex-direction: column;
		justify-content: flex-end;
		gap: var(--space-2xs);
		min-height: 18rem;
		padding: var(--space-m);
		border: 0;
		border-radius: 1rem;
		color: #fff;
		background:
			radial-gradient(120% 80% at 100% 0%, color-mix(in srgb, var(--palette-green) 55%, transparent), transparent 60%),
			linear-gradient(160deg, color-mix(in srgb, var(--palette-slate) 85%, var(--palette-green)), var(--palette-slate));
		box-shadow: 0 18px 36px -24px rgb(16 32 40 / 0.6);
		transition: transform 400ms var(--ease-out), box-shadow 400ms var(--ease-out);
	}
	.ind-tile::before {
		content: "";
		position: absolute;
		inset: 0;
		z-index: -1;
		background-image:
			linear-gradient(rgb(255 255 255 / 0.05) 1px, transparent 1px),
			linear-gradient(90deg, rgb(255 255 255 / 0.05) 1px, transparent 1px);
		background-size: 28px 28px;
		mask-image: linear-gradient(180deg, #000, transparent 80%);
	}
	.ind-tile--photo::before {
		background: linear-gradient(180deg, rgb(10 20 26 / 0.05) 15%, rgb(10 20 26 / 0.6) 55%, rgb(10 20 26 / 0.93) 100%);
		mask-image: none;
	}
	.ind-tile__media { position: absolute; inset: 0; z-index: -2; margin: 0; aspect-ratio: auto; border-radius: 0; }
	.ind-tile__media img { transform: scale(1.02); transition: transform 900ms var(--ease-out); }
	.ind-tile:hover .ind-tile__media img { transform: scale(1.08); }
	.ind-tile__icon {
		position: absolute;
		top: var(--space-m);
		left: var(--space-m);
		display: grid;
		place-items: center;
		width: 3.25rem;
		height: 3.25rem;
		border: 1px solid rgb(255 255 255 / 0.18);
		border-radius: 1rem;
		background: rgb(255 255 255 / 0.1);
		backdrop-filter: blur(6px);
		transition: background-color 400ms var(--ease-out), transform 400ms var(--ease-out);
	}
	.ind-tile__index {
		position: absolute;
		right: 0.1em;
		bottom: -0.15em;
		z-index: -1;
		font-size: clamp(4rem, 7vw, 6rem);
		font-weight: var(--wght-bold, 700);
		line-height: 1;
		letter-spacing: -0.04em;
		color: rgb(255 255 255 / 0.06);
	}
	.ind-tile--photo .ind-tile__index { top: var(--space-m); right: var(--space-m); bottom: auto; z-index: 1; font-size: var(--step--2); letter-spacing: 0.14em; color: rgb(255 255 255 / 0.65); }
	.ind-tile__title { font-size: var(--step-2); color: #fff; }
	.ind-tile__title a { color: inherit; text-decoration: none !important; }
	.ind-tile__text { color: rgb(255 255 255 / 0.8); font-size: var(--step--1); line-height: 1.55; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
	.ind-tile__meta span { border-color: rgb(255 255 255 / 0.2); background: rgb(255 255 255 / 0.08); color: #fff; border-radius: 999px; }
	.ind-tile__more { display: inline-flex; align-items: center; gap: 0.4rem; margin-top: var(--space-2xs); font-size: var(--step--1); font-weight: var(--wght-semibold); color: var(--accent-light); }
	.ind-tile__more .icon { width: 1rem; height: 1rem; transition: transform 300ms var(--ease-out); }
	.ind-tile:hover, .ind-tile:focus-within { transform: translateY(-6px); box-shadow: 0 30px 50px -26px rgb(16 32 40 / 0.7); }
	.ind-tile:hover .ind-tile__icon, .ind-tile:focus-within .ind-tile__icon { background: var(--palette-green); transform: translateY(-2px) rotate(-6deg); }
	.ind-tile:hover .ind-tile__more .icon { transform: translateX(4px); }

	@media (max-width: 39.99em) {
		.ind-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-xs); }
		.ind-tile { min-height: 13rem; padding: var(--space-s); }
		.ind-tile__icon { top: var(--space-s); left: var(--space-s); width: 2.6rem; height: 2.6rem; border-radius: 0.8rem; }
		.ind-tile__icon .icon { width: 1.25rem; height: 1.25rem; }
		.ind-tile__index { font-size: 3.25rem; }
		.ind-tile--photo .ind-tile__index { top: var(--space-s); right: var(--space-s); font-size: var(--step--2); }
		.ind-tile__title { font-size: clamp(0.95rem, 0.6rem + 1.6vw, 1.15rem); overflow-wrap: break-word; hyphens: auto; }
		.ind-tile__text, .ind-tile__meta { display: none; }
		.ind-tile__more { font-size: var(--step--2); }
		.ind-grid > .ind-tile:last-child:nth-child(odd) { grid-column: 1 / -1; min-height: 10rem; }
	}

	/* ============================================================ Product catalogue */
	@media (max-width: 47.99em) {
		/* One swipeable row of category pills instead of a tall stack. */
		.catalogue-nav__list { flex-wrap: nowrap; overflow-x: auto; padding: 0.25rem 0 0.5rem; mask-image: linear-gradient(90deg, #000 85%, transparent); scroll-snap-type: x proximity; scrollbar-width: none; }
		.catalogue-nav__list::-webkit-scrollbar { display: none; }
		.catalogue-nav, .catalogue-nav__list { min-width: 0; max-width: 100%; }
		.catalogue-nav__list { contain: paint; }
		.catalogue-nav__list > li { flex: none; scroll-snap-align: start; }
		.catalogue-nav__chip { white-space: nowrap; }
	}
	.catalogue-nav__chip { border-radius: 999px; padding-inline: 1rem; background: var(--color-bg); transition: border-color 200ms var(--ease-out), background-color 200ms var(--ease-out), color 200ms var(--ease-out), transform 200ms var(--ease-out); }
	.catalogue-nav__chip:hover { border-color: var(--palette-green); color: var(--palette-green); transform: translateY(-1px); }
	.catalogue-nav__chip[aria-current="page"] { background: var(--palette-green); border-color: var(--palette-green); color: var(--on-brand); box-shadow: 0 10px 22px -12px var(--glow-green); }

	.product-card {
		overflow: hidden;
		border-radius: 1rem;
		box-shadow: 0 1px 2px rgb(16 32 40 / 0.04);
		transition: transform 350ms var(--ease-out), box-shadow 350ms var(--ease-out), border-color 350ms var(--ease-out);
	}
	.product-card:hover, .product-card:focus-within { transform: translateY(-6px); box-shadow: 0 26px 44px -26px rgb(16 32 40 / 0.4); border-color: color-mix(in srgb, var(--palette-green) 35%, var(--color-line)); }
	.product-card__media { border-radius: 0; background: linear-gradient(180deg, var(--palette-survey), color-mix(in srgb, var(--palette-survey) 70%, #fff)); }
	.product-card__media img { transition: transform 700ms var(--ease-out); }
	.product-card:hover .product-card__media img { transform: scale(1.06); }
	.product-card__category {
		display: inline-block;
		justify-self: start;
		padding: 0.15rem 0.6rem;
		border-radius: 999px;
		background: color-mix(in srgb, var(--palette-green) 10%, var(--color-bg));
		color: color-mix(in srgb, var(--palette-green) 80%, var(--palette-slate));
		font-size: var(--step--2);
		font-weight: var(--wght-semibold);
		width: fit-content;
		max-width: 100%;
	}
	.product-card__cta {
		display: inline-flex;
		align-items: center;
		gap: 0.4rem;
		font-weight: var(--wght-semibold);
	}
	.product-card__cta::after {
		content: "→";
		transition: transform 300ms var(--ease-out);
	}
	.product-card:hover .product-card__cta::after { transform: translateX(4px); }

	.sol-types__link { border-radius: 999px !important; padding-inline: 1.1rem !important; background: rgb(255 255 255 / 0.06); backdrop-filter: blur(6px); transition: background-color 200ms var(--ease-out), border-color 200ms var(--ease-out); }
	.sol-types__link:hover { background: var(--palette-green); border-color: var(--palette-green); color: var(--on-brand); }
	.catalogue-search .input { border-radius: 999px; padding-inline: 1.1rem; }
	.catalogue-search .button { border-radius: 999px; }
	.sol-index { grid-template-columns: repeat(auto-fill, minmax(min(100%, 16.5rem), 1fr)); }

	/* ============================================================ Product page hero */
	.product-hero {
		background:
			radial-gradient(50% 70% at 100% 0%, color-mix(in srgb, var(--palette-green) 8%, transparent), transparent 70%),
			linear-gradient(180deg, var(--palette-survey), var(--color-bg) 85%);
		border-bottom: 0;
	}
	.product-gallery__main { border-radius: 1.25rem; overflow: hidden; box-shadow: 0 30px 60px -40px rgb(16 32 40 / 0.45); }
	.product-hero__category a {
		display: inline-flex;
		padding: 0.2rem 0.75rem;
		border-radius: 999px;
		background: color-mix(in srgb, var(--palette-green) 12%, var(--color-bg));
		color: color-mix(in srgb, var(--palette-green) 80%, var(--palette-slate));
		font-size: var(--step--1);
		font-weight: var(--wght-semibold);
		text-decoration: none;
	}
	.product-trust {
		display: grid;
		gap: 0.6rem;
		margin: var(--space-l) 0 0;
		padding: var(--space-m) 0 0;
		border-top: 1px solid var(--color-line);
		list-style: none;
	}
	.product-trust li { display: flex; align-items: center; gap: 0.75rem; font-size: var(--step--1); font-weight: var(--wght-medium); color: var(--color-text); }
	.product-trust__icon { display: grid; place-items: center; flex: none; width: 2.25rem; height: 2.25rem; border-radius: 0.7rem; background: color-mix(in srgb, var(--palette-green) 12%, var(--color-bg)); color: var(--palette-green); }
	.product-trust__icon .icon { width: 1.1rem; height: 1.1rem; }
	.product-hero__call { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin-top: var(--space-s); font-size: var(--step--1); color: var(--color-text-muted); }
	.product-hero__call .icon { width: 1rem; height: 1rem; color: var(--palette-green); }
	.product-hero__call a { display: inline-flex; align-items: center; min-height: var(--tap); font-weight: var(--wght-semibold); color: var(--color-heading); }

	/* ============================================================ Forms and buttons: softer corners */
	.input, .textarea, .select, select.input { border-radius: 0.6rem; }
	.input:focus, .textarea:focus { box-shadow: 0 0 0 4px color-mix(in srgb, var(--palette-green) 15%, transparent); }
	.button { border-radius: 0.6rem; }

	/* ============================================================ Contact page */
	.contact__form {
		padding: clamp(1.5rem, 1rem + 2vw, 2.5rem);
		border: 1px solid var(--color-line);
		border-radius: 1.25rem;
		background: var(--color-bg);
		box-shadow: 0 30px 60px -44px rgb(16 32 40 / 0.45);
	}
	.contact__details {
		position: relative;
		isolation: isolate;
		overflow: hidden;
		border-top: 0;
		border-radius: 1.25rem;
		background:
			radial-gradient(90% 60% at 100% 0%, color-mix(in srgb, var(--palette-green) 55%, transparent), transparent 65%),
			var(--palette-slate);
		box-shadow: 0 30px 60px -36px rgb(16 32 40 / 0.6);
	}
	.contact__details::before {
		content: "";
		position: absolute;
		inset: 0;
		z-index: -1;
		background-image:
			linear-gradient(rgb(255 255 255 / 0.05) 1px, transparent 1px),
			linear-gradient(90deg, rgb(255 255 255 / 0.05) 1px, transparent 1px);
		background-size: 30px 30px;
		mask-image: radial-gradient(ellipse 90% 60% at 80% 0%, #000 20%, transparent 75%);
	}
	.contact__details-title { color: #fff; }
	.contact__list dt .icon { color: var(--accent-light); }
	.contact__list dd a { color: #fff; }
	@media (min-width: 64em) { .contact__details { position: sticky; top: calc(var(--header-h, 4.5rem) + 1.5rem); } }

	/* ============================================================ Section rhythm: soft section tint */
	.section--surface { background-image: radial-gradient(40rem 22rem at 100% 0%, color-mix(in srgb, var(--palette-green) 6%, transparent), transparent 70%); }

	@media (prefers-reduced-motion: reduce) {
		.cta-inline::after { animation: none; display: none; }
		.sol-card, .sector-row, .ind-tile, .product-card, .catalogue-nav__chip { transition: none; }
		.sol-card:hover, .sol-card:focus-within, .sector-row:hover, .sector-row:focus-within, .ind-tile:hover, .ind-tile:focus-within, .product-card:hover, .product-card:focus-within, .catalogue-nav__chip:hover { transform: none; }
		.ind-tile:hover .ind-tile__media img, .product-card:hover .product-card__media img { transform: none; }
	}
	@media (forced-colors: active) {
		.cta-inline, .ind-tile, .sol-card, .sector-row { border: 1px solid CanvasText; }
		.cta-inline::before, .cta-inline::after, .ind-tile::before { display: none; }
	}
	@media print {
		.cta-inline { background: none; color: #000; box-shadow: none; }
		.cta-inline::before, .cta-inline::after { display: none; }
	}
}

/* ============================================================ Whole photos, never cropped (0.21.0)
   Every content photo is shown complete (object-fit: contain) on a light plate. The image is
   positioned inside its frame so tall or wide photos can't stretch the frame and get clipped.
   Only decorative backgrounds behind text (hero slides, page banners, industry tiles, range
   cards) still fill their area. */
@layer polish {
	.product-gallery__main,
	.product-card__media { position: relative; }
	.product-gallery__main > .product-gallery__image,
	.product-card__media > img {
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100%;
		max-width: none;
		padding: clamp(0.75rem, 0.5rem + 1.5vw, 1.75rem);
		object-fit: contain;
	}
	.product-card:hover .product-card__media img { transform: scale(1.03); }

	.card__media,
	.update-card__media,
	.album-card__media,
	.photo__link,
	.story-card__media,
	.story-gallery__link,
	.about-story__media,
	.sol-hero__media,
	.ind-hero__media {
		position: relative;
		overflow: hidden;
		background: var(--palette-survey);
	}
	.card__media img,
	.update-card__media img,
	.album-card__media img,
	.photo__link img,
	.story-card__media img,
	.story-gallery__link img,
	.about-story__media img,
	.sol-hero__media img,
	.ind-hero__media img {
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100%;
		max-width: none;
		object-fit: contain;
		box-shadow: none;
	}
	.update__media img,
	.story-media img,
	.home-intro__media img {
		object-fit: contain;
		background: var(--palette-survey);
	}
	.update-card:hover .update-card__media img,
	.album-card:hover .album-card__media img,
	.photo__link:hover img,
	.story-card:hover .story-card__media img,
	.story-gallery__link:hover img { transform: scale(1.03); }
}

/* ============================================================ Android app page (0.21.0) */
@layer polish {
	.app-hero {
		position: relative;
		overflow: hidden;
		padding-block: var(--space-m) clamp(3rem, 2rem + 5vw, 6rem);
		background:
			radial-gradient(50rem 28rem at 80% 10%, color-mix(in srgb, var(--palette-green) 45%, transparent), transparent 70%),
			var(--palette-slate);
		color: var(--color-text);
	}
	.app-hero__grid {
		position: absolute;
		inset: 0;
		background:
			linear-gradient(rgb(255 255 255 / 0.04) 1px, transparent 1px) 0 0 / 32px 32px,
			linear-gradient(90deg, rgb(255 255 255 / 0.04) 1px, transparent 1px) 0 0 / 32px 32px;
		mask-image: linear-gradient(180deg, #000, transparent 90%);
		pointer-events: none;
	}
	.app-hero .container { position: relative; }
	.app-hero .breadcrumbs { margin-bottom: var(--space-xl); }
	.app-hero__grid-wrap { display: grid; gap: var(--space-2xl); align-items: center; }
	@media (min-width: 56em) { .app-hero__grid-wrap { grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); } }
	.app-hero__title { margin-top: var(--space-2xs); font-size: var(--step-6); max-width: 14ch; }
	@media (max-width: 29.99em) { .app-hero__title { font-size: var(--step-5); } }
	.app-hero__lead { margin-top: var(--space-m); max-width: 52ch; font-size: var(--step-1); color: var(--color-text-muted); }
	.app-hero__text { margin-top: var(--space-s); color: var(--color-text-muted); }
	.app-hero__actions { display: flex; flex-wrap: wrap; gap: var(--space-s); margin-top: var(--space-l); }
	.app-hero__actions .button .icon { width: 1.1rem; height: 1.1rem; }
	.app-store {
		display: inline-flex;
		align-items: center;
		gap: 0.75rem;
		min-height: 3.5rem;
		padding: 0.55rem 1.25rem 0.55rem 1rem;
		border: 1px solid rgb(255 255 255 / 0.25);
		border-radius: 0.9rem;
		background: #000;
		color: #fff;
		font-size: 1.15rem;
		font-weight: var(--wght-semibold);
		line-height: 1.1;
		text-decoration: none;
		transition: transform 250ms var(--ease-out), box-shadow 250ms var(--ease-out);
	}
	.app-store small { display: block; font-size: 0.7rem; font-weight: var(--wght-medium); opacity: 0.8; }
	.app-store:hover { transform: translateY(-2px); box-shadow: 0 16px 30px -18px #000; color: #fff; }
	.app-store__icon { display: grid; place-items: center; width: 1.6rem; height: 1.6rem; }
	.app-qr { display: flex; align-items: center; gap: var(--space-m); margin-top: var(--space-l); color: var(--color-text-muted); font-size: var(--step--1); }
	.app-qr__img { width: 7rem; height: 7rem; padding: 0.4rem; border-radius: 0.6rem; background: #fff; object-fit: contain; }

	.app-phone { position: relative; display: grid; place-items: center; padding-block: var(--space-l); }
	.app-phone__glow { position: absolute; inset: 15% 10%; z-index: 0; border-radius: 50%; background: radial-gradient(closest-side, color-mix(in srgb, var(--palette-green) 55%, transparent), transparent); filter: blur(20px); }
	.app-phone__body {
		position: relative;
		z-index: 1;
		width: min(16rem, 70vw);
		aspect-ratio: 9 / 18.5;
		padding: 0.7rem;
		border-radius: 2.4rem;
		background: linear-gradient(160deg, #2a3a44, #0f181d);
		box-shadow: 0 40px 80px -30px rgb(0 0 0 / 0.8), inset 0 0 0 1px rgb(255 255 255 / 0.12);
		animation: gpipl-app-float 6s ease-in-out infinite;
	}
	.app-phone__notch { position: absolute; top: 1.1rem; left: 50%; z-index: 2; width: 30%; height: 1.1rem; border-radius: 99px; background: #0b1114; transform: translateX(-50%); }
	.app-phone__screen {
		display: grid;
		align-content: center;
		justify-items: center;
		gap: 0.6rem;
		height: 100%;
		padding: 2.5rem 1.1rem 1.5rem;
		border-radius: 1.8rem;
		background: linear-gradient(180deg, var(--palette-paper), var(--palette-survey));
		color: var(--palette-slate);
		text-align: center;
	}
	.app-phone__logo {
		display: grid;
		place-items: center;
		width: 4.2rem;
		height: 4.2rem;
		border-radius: 1.1rem;
		background: var(--palette-green);
		color: var(--palette-paper);
		font-weight: 800;
		letter-spacing: 0.04em;
		box-shadow: 0 14px 26px -14px var(--palette-green);
	}
	.app-phone__name { font-size: 0.78rem; font-weight: var(--wght-semibold); line-height: 1.25; }
	.app-phone__rows { display: grid; gap: 0.45rem; width: 100%; margin-top: 0.6rem; }
	.app-phone__rows span {
		display: flex;
		align-items: center;
		gap: 0.5rem;
		padding: 0.55rem 0.7rem;
		border-radius: 0.7rem;
		background: #fff;
		box-shadow: 0 6px 14px -10px rgb(16 32 40 / 0.5);
		font-size: 0.75rem;
		font-weight: var(--wght-semibold);
	}
	.app-phone__rows .icon { width: 0.95rem; height: 0.95rem; color: var(--palette-green); }

	.app-section__title { font-size: var(--step-3); margin-bottom: var(--space-l); }
	.app-points__list { display: grid; gap: var(--space-s); grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr)); margin: 0; padding: 0; list-style: none; }
	.app-points__list li { display: flex; gap: var(--space-s); align-items: flex-start; padding: var(--space-m); border: var(--border); border-radius: 1rem; }
	.app-points__list .icon { flex: none; width: 1.3rem; height: 1.3rem; color: var(--color-accent); }
	.app-contact__list { display: grid; gap: var(--space-s); grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr)); margin: 0; padding: 0; list-style: none; }
	.app-contact__tile {
		display: flex;
		align-items: center;
		gap: var(--space-s);
		padding: var(--space-m);
		border-radius: 1rem;
		background: var(--color-bg);
		color: var(--color-text);
		font-weight: var(--wght-semibold);
		text-decoration: none;
		box-shadow: 0 16px 34px -26px rgb(16 32 40 / 0.4);
		transition: transform 250ms var(--ease-out);
	}
	.app-contact__tile:hover { transform: translateY(-2px); color: var(--color-accent-strong); }
	.app-contact__tile small { display: block; font-size: var(--step--1); font-weight: var(--wght-medium); color: var(--color-text-muted); }
	.app-contact__icon { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border-radius: 50%; background: var(--color-accent); color: var(--color-on-accent); }
	.app-contact__icon .icon { width: 1.2rem; height: 1.2rem; }
	@media (prefers-reduced-motion: reduce) { .app-phone__body { animation: none; } .app-store:hover, .app-contact__tile:hover { transform: none; } }
}
@keyframes gpipl-app-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }

/* ============================================================ Solution / industry overview text (0.21.0) */
@layer polish {
	.sector-prose { max-width: 62rem; font-size: var(--step-0); }
	.sector-prose > p:first-child { font-size: var(--step-1); line-height: var(--lh-snug); color: var(--color-text); }
	.sector-prose h3 {
		display: flex;
		align-items: center;
		gap: 0.65rem;
		margin-top: 1.8em;
		font-size: var(--step-1);
	}
	.sector-prose h3::before { content: ""; flex: none; width: 0.4rem; height: 1.15em; border-radius: 99px; background: var(--color-accent); }
	.sector-prose h3 + p { color: var(--color-text-muted); }
	@media (min-width: 64em) {
		.sector-prose { columns: 2; column-gap: var(--space-3xl); }
		.sector-prose > p:first-child { column-span: all; margin-bottom: var(--space-l); }
		.sector-prose h3 { margin-top: 0; break-after: avoid; }
		.sector-prose h3 + p { margin: 0.5em 0 var(--space-l); break-inside: avoid; }
	}
}

/* ============================================================ Mega menu, compact and premium (0.22.0)
   Fits the screen (scrolls inside if a catalogue grows), icon per category, tight link rhythm,
   and a catalogue card on the right. */
@layer polish {
	.site-nav__group-icon { display: none; }
	.site-nav__all-kicker, .site-nav__all-text { display: none; }

	@media (min-width: 80em) {
		.has-mega > .site-nav__panel {
			max-height: calc(100dvh - var(--header-h, 4.5rem) - 0.75rem);
			overflow-y: auto;
			overscroll-behavior: contain;
			border-bottom: 0;
			border-radius: 0 0 1.25rem 1.25rem;
			box-shadow: 0 40px 80px -40px rgb(16 32 40 / 0.45);
			scrollbar-width: thin;
		}
		.has-mega .site-nav__panel-inner {
			grid-template-columns: minmax(0, 1fr) 16rem;
			gap: var(--space-l);
			padding-block: var(--space-m) var(--space-l);
		}
		.site-nav__groups--products { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.35rem 0.75rem; align-content: start; }
		.site-nav__groups--groups { grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: 0.35rem 1rem; align-content: start; }

		.has-mega .site-nav__group {
			padding: 0.7rem 0.8rem 0.8rem;
			border-radius: 0.9rem;
			transition: background-color 200ms var(--ease-out);
		}
		.has-mega .site-nav__group:hover { background: var(--palette-survey); }
		.has-mega .site-nav__group-title {
			display: flex;
			align-items: center;
			gap: 0.6rem;
			margin: 0 0 0.3rem;
			font-size: var(--step--1);
			letter-spacing: 0.02em;
		}
		.has-mega .site-nav__group-icon {
			flex: none;
			display: grid;
			place-items: center;
			width: 2.1rem;
			height: 2.1rem;
			border-radius: 0.65rem;
			background: var(--color-accent-tint);
			color: var(--color-accent);
			transition: background-color 200ms var(--ease-out), color 200ms var(--ease-out);
		}
		.has-mega .site-nav__group-icon .icon { width: 1.05rem; height: 1.05rem; }
		.has-mega .site-nav__group:hover .site-nav__group-icon { background: var(--color-accent); color: var(--color-on-accent); }
		.has-mega .site-nav__group-link {
			min-height: 0;
			font-size: 0.95rem;
			font-weight: var(--wght-semibold);
			line-height: 1.25;
		}
		.has-mega .site-nav__group-link:hover { text-decoration: none; color: var(--color-accent-strong); }
		.has-mega .site-nav__sublist { display: grid; gap: 0; padding-left: 2.7rem; }
		.has-mega .site-nav__groups--groups .site-nav__sublist { padding-left: 0; }
		.has-mega .site-nav__sublink {
			min-height: 0;
			padding-block: 0.28rem;
			font-size: 0.85rem;
			line-height: 1.3;
			color: var(--color-text-muted);
			transition: color 150ms var(--ease-out), transform 150ms var(--ease-out);
		}
		.has-mega .site-nav__sublink:hover { color: var(--color-accent-strong); text-decoration: none; transform: translateX(3px); }
		.has-mega .site-nav__groups--groups .site-nav__sublink { font-size: 0.92rem; color: var(--color-text); padding-block: 0.4rem; }

		.has-mega .site-nav__all {
			position: relative;
			overflow: hidden;
			display: flex;
			flex-direction: column;
			justify-content: flex-end;
			gap: 0.5rem;
			align-self: stretch;
			margin: 0;
			padding: var(--space-m);
			border: 0;
			border-radius: 1.1rem;
			background:
				radial-gradient(16rem 12rem at 100% 0%, color-mix(in srgb, var(--palette-green) 55%, transparent), transparent 70%),
				var(--palette-slate);
			color: var(--palette-paper);
		}
		.has-mega .site-nav__all-kicker { display: block; font-size: 0.72rem; font-weight: var(--wght-semibold); letter-spacing: 0.14em; text-transform: uppercase; color: var(--accent-light); }
		.has-mega .site-nav__all-text { display: block; font-size: 0.88rem; line-height: 1.45; color: rgb(255 255 255 / 0.78); }
		.has-mega .site-nav__all-link {
			display: inline-flex;
			align-items: center;
			justify-content: space-between;
			gap: 0.5rem;
			margin-top: 0.35rem;
			padding: 0.65rem 0.9rem;
			border-radius: 0.7rem;
			background: var(--palette-green);
			color: var(--on-brand);
			font-weight: var(--wght-semibold);
			text-decoration: none;
		}
		.has-mega .site-nav__all-link::after { content: "→"; transition: transform 200ms var(--ease-out); }
		.has-mega .site-nav__all-link:hover { color: var(--on-brand); text-decoration: none; }
		.has-mega .site-nav__all-link:hover::after { transform: translateX(4px); }
	}
}

/* Mega menu refinements: packed product columns, icon lists for solutions and dropdowns (0.22.0). */
@layer polish {
	.site-nav__sub-icon { display: none; }
	@media (min-width: 80em) {
		.site-nav__groups--products { display: block; columns: 4; column-gap: 0.75rem; }
		.site-nav__groups--products .site-nav__group { break-inside: avoid; margin-bottom: 0.35rem; }

		.site-nav__subitem--icon { display: flex; align-items: center; gap: 0.6rem; }
		.site-nav__sub-icon {
			flex: none;
			display: grid;
			place-items: center;
			width: 1.85rem;
			height: 1.85rem;
			border-radius: 0.55rem;
			background: var(--color-accent-tint);
			color: var(--color-accent);
			transition: background-color 150ms var(--ease-out), color 150ms var(--ease-out);
		}
		.site-nav__sub-icon .icon { width: 0.95rem; height: 0.95rem; }
		.site-nav__subitem--icon:hover .site-nav__sub-icon { background: var(--color-accent); color: var(--color-on-accent); }
		.has-mega .site-nav__groups--groups .site-nav__group-title { margin: 0 0 0.5rem 0.2rem; font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-text-muted); }
		.has-mega .site-nav__groups--groups .site-nav__sublist { gap: 0.15rem; }
		.has-mega .site-nav__groups--groups .site-nav__group:hover { background: transparent; }
		.has-mega .site-nav__groups--groups .site-nav__subitem--icon { padding: 0.15rem 0.35rem; border-radius: 0.6rem; }
		.has-mega .site-nav__groups--groups .site-nav__subitem--icon:hover { background: var(--palette-survey); }
		.has-mega .site-nav__groups--groups .site-nav__sublink { padding-block: 0.35rem; font-weight: var(--wght-medium); }
		.has-mega .site-nav__groups--groups { grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); }

		/* Compact dropdowns (Industries, Resources…). */
		.has-dropdown > .site-nav__panel { border-radius: 0 0 1rem 1rem; box-shadow: 0 30px 60px -36px rgb(16 32 40 / 0.45); max-height: calc(100dvh - var(--header-h, 4.5rem) - 0.75rem); overflow-y: auto; }
		.has-dropdown .site-nav__panel-inner { padding: 0.6rem 0.6rem 0.75rem; }
		.has-dropdown .site-nav__sublist { display: grid; gap: 0.1rem; }
		.has-dropdown .site-nav__sublist:has(> li:nth-child(7)) { grid-template-columns: repeat(2, minmax(13rem, 1fr)); column-gap: 0.25rem; }
		.has-dropdown .site-nav__subitem--icon { padding: 0.1rem 0.4rem; border-radius: 0.6rem; }
		.has-dropdown .site-nav__subitem--icon:hover { background: var(--palette-survey); }
		.has-dropdown .site-nav__sublink { min-height: 0; padding-block: 0.45rem; font-size: 0.9rem; color: var(--color-text); }
		.has-dropdown .site-nav__sublink:hover { text-decoration: none; color: var(--color-accent-strong); }
		.has-dropdown .site-nav__all { margin: 0.35rem 0.4rem 0; padding-top: 0.5rem; border-top: var(--border); }
		.has-dropdown .site-nav__all-link { min-height: 2.25rem; font-size: 0.9rem; text-decoration: none; }
		.has-dropdown .site-nav__all-link::after { content: " →"; margin-left: 0.3rem; }
	}
}

/* Sample success story label (0.24.0). */
@layer polish {
	.story-sample {
		display: inline-flex;
		align-items: center;
		gap: 0.35rem;
		width: fit-content;
		margin: 0 0 0.4rem;
		padding: 0.15rem 0.6rem;
		border: 1px dashed var(--color-attention-strong);
		border-radius: 99px;
		background: var(--color-attention-tint);
		color: var(--color-attention-text);
		font-size: 0.72rem;
		font-weight: var(--wght-semibold);
		letter-spacing: 0.04em;
		text-transform: uppercase;
	}
	.story-sample--hero { margin-bottom: var(--space-s); }
}

/* Header fits with every menu item at laptop widths (0.24.0). */
@layer polish {
	@media (min-width: 80em) {
		.site-header__actions { flex: none; }
		.site-nav { min-width: 0; }
	}
	@media (min-width: 80em) and (max-width: 95.99em) {
		.site-logo__name { display: none; }
		.site-nav__link, .site-nav__toggle { padding-inline: 0.5rem; }
		.site-nav__link::after, .site-nav__toggle::after { left: 0.5rem; right: 0.5rem; }
	}
}
@layer polish {
	.site-footer__heading { word-break: keep-all; overflow-wrap: normal; hyphens: none; }
	@media (min-width: 64em) and (max-width: 95.99em) { .site-footer__heading { letter-spacing: 0.06em; } }
}
