/*
Theme Name: iptv norge
Theme URI: https://iptvnorgee.com/
Author: iptv norge
Author URI: https://iptvnorgee.com/
Description: Skreddersydd WordPress-tema for iptvnorgee.com. Designfamilie: Local National Brand – hvit grunnflate, selburoser og strikkebord som lokale detaljer, «Pristrappen», garantiseddel, åpningstidsskilt og postkort. Mobil først, raskt, tilgjengelig og teknisk ren SEO på norsk bokmål.
Version: 1.0.0
Requires at least: 6.3
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: iptvnorgee
Tags: custom-logo, custom-menu, featured-images, threaded-comments, translation-ready, blog, accessibility-ready
*/

/* ==========================================================================
   iptv norge — "Selbu & fjord"
   Design family: Local National Brand (white-first)
   Signatures: selburose marker · knitted band · price staircase ·
   perforated guarantee slip · shop-door opening-hours sign · postcard close
   Fonts: Urbanist (display) + Inter (text), self-hosted, SIL Open Font License
   ========================================================================== */

/* 1. Fonts ---------------------------------------------------------------- */
@font-face {
	font-family: "Urbanist";
	src: url("assets/fonts/urbanist-latin-var.woff2") format("woff2");
	font-weight: 600 800;
	font-style: normal;
	font-display: swap;
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Inter";
	src: url("assets/fonts/inter-latin-var.woff2") format("woff2");
	font-weight: 400 700;
	font-style: normal;
	font-display: swap;
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* 2. Tokens --------------------------------------------------------------- */
:root {
	/* Surfaces — white dominates */
	--ipn-white: #ffffff;
	--ipn-snow: #f7f6f2;          /* warm paper */
	--ipn-mist: #eef4f3;          /* fjord mist */
	--ipn-paper: #fbf8f1;         /* guarantee slip / postcard */
	--ipn-paper-line: #eadfc8;

	/* Text */
	--ipn-ink: #0f2230;           /* headings 16.5:1 on white */
	--ipn-text: #3b4a54;          /* body 9.1:1 */
	--ipn-muted: #5d6b73;         /* support 5.6:1 on white, 5.1:1 on snow */
	--ipn-navy: #0b1f3a;          /* logo navy — opening-hours sign */

	/* Action */
	--ipn-teal: #0b6a6e;          /* primary CTA, white text 6.3:1 */
	--ipn-teal-dark: #08545a;
	--ipn-teal-soft: #e2f0ef;
	--ipn-teal-line: #b9d9d7;

	/* Accents */
	--ipn-amber: #e9a23b;         /* cloudberry highlight */
	--ipn-amber-soft: #fcefd6;
	--ipn-amber-ink: #7d4b00;
	--ipn-red: #d9002b;           /* logo red — selburose only */

	/* States */
	--ipn-success: #2e7d4f;
	--ipn-success-soft: #e5f2ea;
	--ipn-warning: #b4580a;
	--ipn-warning-soft: #fff1de;

	/* Lines */
	--ipn-line: #e3e1da;
	--ipn-line-strong: #cbd2d1;

	/* WhatsApp — only for the floating contact button */
	--ipn-wa: #25d366;
	--ipn-wa-ink: #04210f;

	/* Shadows */
	--ipn-shadow-1: 0 1px 2px rgba(15, 34, 48, .06), 0 1px 1px rgba(15, 34, 48, .04);
	--ipn-shadow-2: 0 2px 4px rgba(15, 34, 48, .04), 0 14px 32px -14px rgba(15, 34, 48, .22);
	--ipn-shadow-3: 0 8px 18px -10px rgba(15, 34, 48, .18), 0 34px 64px -30px rgba(15, 34, 48, .38);

	/* Shape */
	--ipn-r-sm: 6px;
	--ipn-r: 10px;
	--ipn-r-lg: 16px;
	--ipn-r-xl: 22px;

	/* Type */
	--ipn-head: "Urbanist", "Segoe UI", system-ui, -apple-system, sans-serif;
	--ipn-body: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;

	/* Layout */
	--ipn-gutter: clamp(16px, 4vw, 32px);
	--ipn-wrap: 1200px;
	--ipn-wrap-wide: 1320px;
	--ipn-header-h: 64px;
	--ipn-section: clamp(56px, 8vw, 112px);
	--ipn-ease: cubic-bezier(.2, .7, .2, 1);

	/* Knitted band (Selbu zigzag) */
	--ipn-knit: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cg fill='%2308545a'%3E%3Crect x='0' y='1' width='3' height='3'/%3E%3Crect x='3' y='4.5' width='3' height='3'/%3E%3Crect x='6' y='8' width='3' height='3'/%3E%3Crect x='9' y='4.5' width='3' height='3'/%3E%3C/g%3E%3C/svg%3E");
	--ipn-stitch: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='4' viewBox='0 0 8 4'%3E%3Cpath d='M0 3.4 2 .6 4 3.4 6 .6 8 3.4' fill='none' stroke='%230b6a6e' stroke-width='1.3'/%3E%3C/svg%3E");
}

/* 3. Base ----------------------------------------------------------------- */
*,
*::before,
*::after { box-sizing: border-box; }

html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--ipn-header-h) + 20px);
}

body {
	margin: 0;
	background: var(--ipn-white);
	color: var(--ipn-text);
	font: 400 1rem/1.65 var(--ipn-body);
	font-feature-settings: "cv11", "ss01";
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

@media (min-width: 768px) {
	body { font-size: 1.0625rem; }
}

img,
svg,
video,
picture { max-width: 100%; }

img { display: block; height: auto; }

picture { display: block; }

a {
	color: var(--ipn-teal);
	text-decoration-thickness: 1px;
	text-underline-offset: .18em;
	transition: color .2s;
}

a:hover { color: var(--ipn-teal-dark); text-decoration-thickness: 2px; }

:focus-visible {
	outline: 3px solid var(--ipn-teal);
	outline-offset: 3px;
	border-radius: 4px;
}

h1, h2, h3, h4, h5, h6 {
	margin: 0 0 .5em;
	color: var(--ipn-ink);
	font-family: var(--ipn-head);
	font-weight: 700;
	line-height: 1.12;
	letter-spacing: -.02em;
	text-wrap: balance;
}

p { margin: 0 0 1em; }

p:last-child { margin-bottom: 0; }

strong { color: var(--ipn-ink); font-weight: 600; }

button,
input,
select,
textarea { font: inherit; color: inherit; }

hr { border: 0; border-top: 1px solid var(--ipn-line); margin: 2rem 0; }

.screen-reader-text,
.ipn-order__periods legend {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.ipn-skip {
	position: absolute;
	left: 16px;
	top: -100px;
	z-index: 200;
	padding: 12px 18px;
	background: var(--ipn-ink);
	color: #fff;
	border-radius: var(--ipn-r);
	font-weight: 600;
	text-decoration: none;
}

.ipn-skip:focus { top: 12px; color: #fff; }

.ipn-main:focus { outline: none; }

.ipn-icon { width: 24px; height: 24px; flex: none; }

.ipn-flip { transform: scaleX(-1); }

.ipn-rose { width: 16px; height: 16px; color: var(--ipn-red); flex: none; }

.ipn-small { font-size: .875rem; color: var(--ipn-muted); }

/* 4. Layout --------------------------------------------------------------- */
.ipn-wrap {
	width: 100%;
	max-width: calc(var(--ipn-wrap) + 2 * var(--ipn-gutter));
	margin-inline: auto;
	padding-inline: var(--ipn-gutter);
}

.ipn-wrap--wide { max-width: calc(var(--ipn-wrap-wide) + 2 * var(--ipn-gutter)); }

.ipn-wrap--narrow { max-width: calc(800px + 2 * var(--ipn-gutter)); }

.ipn-section { padding-block: var(--ipn-section); }

.ipn-section--tight { padding-block: clamp(36px, 5vw, 64px); }

.ipn-section--snow { background: var(--ipn-snow); }

.ipn-section--mist { background: var(--ipn-mist); }

.ipn-section--close {
	padding-bottom: calc(var(--ipn-section) + 32px);
	background:
		url("assets/images/icons/fjord-line-pattern.svg") center bottom / min(1100px, 140%) no-repeat,
		linear-gradient(180deg, #fff 0%, var(--ipn-mist) 100%);
}

.ipn-split {
	display: grid;
	gap: clamp(32px, 5vw, 64px);
	align-items: center;
}

@media (min-width: 960px) {
	.ipn-split { grid-template-columns: 1fr 1fr; }
	.ipn-split--devices { grid-template-columns: 1.05fr .95fr; }
	.ipn-split--support { grid-template-columns: 1.08fr .92fr; }
	.ipn-split--reverse > :first-child { order: 2; }
}

.ipn-media { margin: 0; }

.ipn-media img {
	width: 100%;
	border-radius: var(--ipn-r-lg);
}

.ipn-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 24px;
}

/* 5. Section heads -------------------------------------------------------- */
.ipn-head {
	max-width: 720px;
	margin-bottom: clamp(28px, 4vw, 44px);
}

.ipn-head--center {
	margin-inline: auto;
	text-align: center;
}

.ipn-head--center .ipn-eyebrow { justify-content: center; }

.ipn-head-row {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: clamp(28px, 4vw, 40px);
}

.ipn-head-row .ipn-head { margin-bottom: 0; }

.ipn-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 14px;
	color: var(--ipn-teal-dark);
	font: 600 .8125rem/1.3 var(--ipn-body);
	letter-spacing: .12em;
	text-transform: uppercase;
}

.ipn-eyebrow .ipn-rose { width: 14px; height: 14px; }

.ipn-title {
	margin: 0 0 14px;
	font-size: clamp(1.75rem, 1.2rem + 2.2vw, 2.75rem);
	font-weight: 800;
	line-height: 1.08;
	letter-spacing: -.028em;
}

.ipn-lede {
	max-width: 62ch;
	margin: 0;
	font-size: clamp(1.0625rem, 1rem + .3vw, 1.1875rem);
	color: var(--ipn-text);
}

.ipn-head--center .ipn-lede { margin-inline: auto; }

/* 6. Buttons, links, chips, badges ------------------------------------- */
.ipn-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 48px;
	padding: 12px 20px;
	border: 1.5px solid transparent;
	border-radius: 8px;
	font: 700 1rem/1.15 var(--ipn-head);
	letter-spacing: .01em;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .2s, color .2s, border-color .2s, box-shadow .2s, transform .2s var(--ipn-ease);
}

.ipn-btn .ipn-icon { width: 20px; height: 20px; transition: transform .2s var(--ipn-ease); }

.ipn-btn:hover { text-decoration: none; transform: translateY(-1px); }

.ipn-btn:hover .ipn-icon:last-child:not(:first-child) { transform: translateX(3px); }

.ipn-btn:active { transform: translateY(0); }

.ipn-btn--primary {
	background: var(--ipn-teal);
	color: #fff;
	box-shadow: inset 0 -2px 0 rgba(0, 0, 0, .2), 0 8px 18px -10px rgba(11, 106, 110, .7);
}

.ipn-btn--primary:hover { background: var(--ipn-teal-dark); color: #fff; }

.ipn-btn--ghost {
	background: #fff;
	border-color: var(--ipn-line-strong);
	color: var(--ipn-ink);
}

.ipn-btn--ghost:hover { border-color: var(--ipn-ink); color: var(--ipn-ink); }

.ipn-btn--light { background: #fff; color: var(--ipn-ink); }

.ipn-btn--sm { min-height: 40px; padding: 8px 14px; font-size: .9375rem; }

.ipn-btn--lg { min-height: 56px; padding: 14px 26px; font-size: 1.0625rem; }

.ipn-btn--block { width: 100%; }

.ipn-link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--ipn-teal-dark);
	font-weight: 600;
}

.ipn-link .ipn-icon { width: 18px; height: 18px; transition: transform .2s var(--ipn-ease); }

.ipn-link:hover .ipn-icon { transform: translateX(3px); }

.ipn-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 22px 0 0;
	padding: 0;
	list-style: none;
}

.ipn-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 40px;
	padding: 8px 15px;
	border: 1px solid var(--ipn-line-strong);
	border-radius: 999px;
	background: #fff;
	color: var(--ipn-ink);
	font: 600 .875rem/1.1 var(--ipn-body);
	text-decoration: none;
	cursor: pointer;
	transition: background-color .2s, color .2s, border-color .2s;
}

a.ipn-chip:hover,
.ipn-chip--toggle:hover { border-color: var(--ipn-teal); color: var(--ipn-teal-dark); }

.ipn-chip--toggle[aria-pressed="true"] {
	background: var(--ipn-ink);
	border-color: var(--ipn-ink);
	color: #fff;
}

.ipn-badge {
	display: inline-block;
	margin: 0;
	padding: 5px 10px;
	border-radius: 999px;
	font: 700 .75rem/1.2 var(--ipn-body);
	letter-spacing: .04em;
	text-transform: uppercase;
}

.ipn-badge--amber { background: var(--ipn-amber-soft); color: var(--ipn-amber-ink); }

.ipn-dot {
	display: inline-block;
	flex: none;
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: var(--ipn-success);
	box-shadow: 0 0 0 3px rgba(46, 125, 79, .18);
}

.ipn-dot--check { background: var(--ipn-amber); box-shadow: 0 0 0 3px rgba(233, 162, 59, .22); }

.ipn-dot--closed { background: #8a959b; box-shadow: 0 0 0 3px rgba(138, 149, 155, .2); }

/* 7. Header --------------------------------------------------------------- */
.ipn-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: rgba(255, 255, 255, .96);
	border-bottom: 1px solid transparent;
	transition: border-color .2s, box-shadow .2s;
}

@supports (backdrop-filter: blur(8px)) {
	.ipn-header { background: rgba(255, 255, 255, .86); backdrop-filter: saturate(1.4) blur(12px); }
}

.ipn-header.is-scrolled {
	border-bottom-color: var(--ipn-line);
	box-shadow: 0 8px 24px -20px rgba(15, 34, 48, .45);
}

.admin-bar .ipn-header { top: 32px; }

@media (max-width: 782px) {
	.admin-bar .ipn-header { top: 46px; }
}

@media (max-width: 600px) {
	.admin-bar .ipn-header { top: 0; }
}

.ipn-header__bar {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: var(--ipn-header-h);
}

.ipn-logo { display: inline-flex; flex: none; }

.ipn-logo__img { width: 136px; height: auto; }

@media (min-width: 400px) {
	.ipn-logo__img { width: 150px; }
}

@media (min-width: 768px) {
	.ipn-logo__img { width: 184px; }
}

.ipn-nav { display: none; }

.ipn-nav__list {
	display: flex;
	gap: 2px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ipn-nav__list a {
	position: relative;
	display: block;
	padding: 10px 12px;
	border-radius: var(--ipn-r-sm);
	color: var(--ipn-ink);
	font: 500 .9375rem/1.2 var(--ipn-body);
	text-decoration: none;
}

.ipn-nav__list a::after {
	content: "";
	position: absolute;
	left: 12px;
	right: 12px;
	bottom: 3px;
	height: 4px;
	background: var(--ipn-stitch) repeat-x left center / 8px 4px;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .25s var(--ipn-ease);
}

.ipn-nav__list a:hover::after,
.ipn-nav__list a[aria-current="page"]::after,
.ipn-nav__list .current-menu-item > a::after { transform: scaleX(1); }

.ipn-nav__list a[aria-current="page"],
.ipn-nav__list .current-menu-item > a { color: var(--ipn-teal-dark); font-weight: 600; }

.ipn-header__actions {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-left: auto;
}

.ipn-status {
	display: none;
	align-items: center;
	gap: 8px;
	padding: 8px 14px;
	border: 1px solid var(--ipn-line);
	border-radius: 999px;
	color: var(--ipn-ink);
	font: 500 .875rem/1.2 var(--ipn-body);
	text-decoration: none;
	white-space: nowrap;
	transition: border-color .2s;
}

.ipn-status:hover { border-color: var(--ipn-teal); color: var(--ipn-ink); }

.ipn-burger,
.ipn-drawer__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-width: 44px;
	min-height: 44px;
	padding: 8px 10px;
	border: 1px solid var(--ipn-line-strong);
	border-radius: var(--ipn-r);
	background: #fff;
	color: var(--ipn-ink);
	font: 600 .9375rem/1 var(--ipn-body);
	cursor: pointer;
}

.ipn-burger .ipn-icon,
.ipn-drawer__close .ipn-icon { width: 22px; height: 22px; }

@media (max-width: 399px) {
	.ipn-burger span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
	.ipn-header__cta { padding-inline: 12px; }
}

@media (min-width: 1100px) {
	.ipn-nav { display: block; margin-left: auto; }
	.ipn-header__actions { margin-left: 8px; }
	.ipn-burger { display: none; }
}

@media (min-width: 1260px) {
	.ipn-status { display: inline-flex; }
}

/* Drawer */
.ipn-drawer {
	position: fixed;
	inset: 0;
	z-index: 100;
	display: flex;
	justify-content: flex-end;
	background: rgba(15, 34, 48, .45);
}

.ipn-drawer[hidden] { display: none; }

.ipn-drawer__panel {
	display: flex;
	flex-direction: column;
	gap: 18px;
	width: min(420px, 100%);
	height: 100%;
	overflow-y: auto;
	padding: 12px 20px calc(24px + env(safe-area-inset-bottom));
	background: #fff;
	animation: ipn-slide-in .25s var(--ipn-ease);
}

.ipn-drawer__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 52px;
}

.ipn-drawer__list {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--ipn-line);
}

.ipn-drawer__list a {
	display: block;
	padding: 15px 4px;
	border-bottom: 1px solid var(--ipn-line);
	color: var(--ipn-ink);
	font: 700 1.25rem/1.2 var(--ipn-head);
	text-decoration: none;
}

.ipn-drawer__list a[aria-current="page"] { color: var(--ipn-teal); }

.ipn-drawer__more {
	display: grid;
	gap: 2px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ipn-drawer__more a {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 0;
	color: var(--ipn-ink);
	font-weight: 600;
	text-decoration: none;
}

.ipn-drawer__more .ipn-icon { width: 20px; height: 20px; color: var(--ipn-teal); }

.ipn-drawer__contact {
	display: grid;
	gap: 12px;
	margin-top: auto;
	padding: 18px;
	border-radius: var(--ipn-r-lg);
	background: var(--ipn-snow);
	font-size: .9375rem;
}

.ipn-drawer__contact p { margin: 0; }

body.ipn-menu-open { overflow: hidden; }

/* 8. Hero (homepage) ------------------------------------------------------ */
.ipn-hero {
	padding: clamp(28px, 5vw, 64px) 0 clamp(40px, 6vw, 72px);
	background:
		radial-gradient(1100px 420px at 50% -6%, var(--ipn-mist), rgba(238, 244, 243, 0) 72%),
		var(--ipn-white);
}

.ipn-hero__top {
	max-width: calc(940px + 2 * var(--ipn-gutter));
	text-align: center;
}

.ipn-eyebrow--center { justify-content: center; }

.ipn-hero__title {
	margin: 0 auto 18px;
	font-size: clamp(2.3rem, 1.35rem + 4.6vw, 4.6rem);
	font-weight: 800;
	line-height: 1.02;
	letter-spacing: -.038em;
}

.ipn-hero__title span {
	display: block;
	color: var(--ipn-teal);
}

.ipn-hero__lede {
	max-width: 62ch;
	margin: 0 auto 28px;
	font-size: clamp(1.0625rem, 1rem + .45vw, 1.25rem);
}

.ipn-hero__alt {
	margin: 16px auto 0;
	color: var(--ipn-muted);
	font-size: .9375rem;
}

.ipn-hero__alt a { font-weight: 600; }

/* Search-style period picker */
.ipn-order {
	display: grid;
	gap: 10px;
	max-width: 940px;
	margin: 0 auto;
	padding: 10px;
	border: 1px solid var(--ipn-line);
	border-radius: 18px;
	background: #fff;
	box-shadow: var(--ipn-shadow-3);
	text-align: left;
}

.ipn-order__periods {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 6px;
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
}

.ipn-order__period {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 2px;
	min-height: 58px;
	padding: 9px 12px;
	border: 1.5px solid var(--ipn-line);
	border-radius: 12px;
	cursor: pointer;
	transition: border-color .2s, background-color .2s, box-shadow .2s;
}

.ipn-order__period:hover { border-color: var(--ipn-teal-line); }

.ipn-order__period input {
	position: absolute;
	inset: 0;
	margin: 0;
	opacity: 0;
	cursor: pointer;
}

.ipn-order__period:focus-within { outline: 3px solid var(--ipn-teal); outline-offset: 2px; }

.ipn-order__period.is-checked,
.ipn-order__period:has(input:checked) {
	border-color: var(--ipn-teal);
	background: var(--ipn-teal-soft);
	box-shadow: inset 0 0 0 1px var(--ipn-teal);
}

.ipn-order__len { color: var(--ipn-ink); font: 700 1rem/1.1 var(--ipn-head); }

.ipn-order__amt { color: var(--ipn-muted); font-size: .875rem; }

.ipn-order__sum {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 4px 12px;
	margin: 0;
	padding: 4px 8px;
}

.ipn-order__price { color: var(--ipn-ink); font: 800 1.625rem/1.05 var(--ipn-head); letter-spacing: -.02em; }

.ipn-order__pm { color: var(--ipn-muted); font-size: .875rem; }

.ipn-order__submit { width: 100%; white-space: nowrap; }

@media (min-width: 600px) {
	.ipn-order__periods { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (min-width: 920px) {
	.ipn-order { grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; }
	.ipn-order__sum { flex-direction: column; align-items: flex-start; padding: 0 6px 0 10px; border-left: 1px solid var(--ipn-line); min-width: 168px; }
	.ipn-order__submit { width: auto; }
}

/* Panoramic window */
.ipn-window {
	position: relative;
	margin: clamp(32px, 5vw, 56px) 0 0;
}

.ipn-window__img {
	position: relative;
	overflow: hidden;
	border-radius: var(--ipn-r-xl);
	box-shadow: var(--ipn-shadow-3);
}

.ipn-window__img::after {
	content: "";
	position: absolute;
	inset: 10px;
	border: 1.5px solid rgba(255, 255, 255, .6);
	border-radius: 14px;
	pointer-events: none;
}

.ipn-window__img img {
	width: 100%;
	aspect-ratio: 1122 / 1402;
	object-fit: cover;
}

@media (min-width: 768px) {
	.ipn-window__img img { aspect-ratio: 16 / 9; object-position: 60% 50%; }
}

@media (min-width: 1100px) {
	.ipn-window__img img { aspect-ratio: 21 / 9; object-position: 60% 56%; }
}

.ipn-window__note { display: none; }

@media (min-width: 900px) {
	.ipn-window__note {
		position: absolute;
		display: flex;
		align-items: center;
		gap: 10px;
		max-width: 320px;
		margin: 0;
		padding: 12px 16px;
		border-radius: 12px;
		background: rgba(255, 255, 255, .96);
		box-shadow: var(--ipn-shadow-2);
		color: var(--ipn-ink);
		font: 600 .9375rem/1.3 var(--ipn-body);
	}
	.ipn-window__note .ipn-icon { color: var(--ipn-teal); }
	.ipn-window__note--a { top: 30px; left: 30px; }
	.ipn-window__note--b { right: 30px; bottom: 74px; }
}

.ipn-window__caption {
	margin: 12px 0 0;
	color: var(--ipn-muted);
	font-size: .875rem;
	text-align: center;
}

.ipn-trust-wrap { margin-top: -16px; }

/* 9. Quick answer + facts ------------------------------------------------- */
.ipn-brief {
	display: grid;
	gap: 40px;
}

@media (min-width: 960px) {
	.ipn-brief { grid-template-columns: 1.12fr .88fr; align-items: start; gap: 64px; }
}

.ipn-brief__copy .ipn-head { margin-bottom: 20px; }

.ipn-facts {
	position: relative;
	overflow: hidden;
	padding: 0 24px 18px;
	border: 1px solid var(--ipn-line);
	border-radius: var(--ipn-r-lg);
	background: #fff;
	box-shadow: var(--ipn-shadow-2);
}

.ipn-facts::before {
	content: "";
	display: block;
	height: 12px;
	margin: 0 -24px 18px;
	background: var(--ipn-knit) repeat-x left center / 12px 12px, var(--ipn-teal-soft);
}

.ipn-facts__title {
	margin: 0 0 6px;
	color: var(--ipn-muted);
	font: 700 .8125rem/1.3 var(--ipn-body);
	letter-spacing: .12em;
	text-transform: uppercase;
}

.ipn-facts dl { margin: 0; }

.ipn-facts dl > div {
	display: grid;
	grid-template-columns: 6.5rem minmax(0, 1fr);
	gap: 12px;
	padding: 12px 0;
	border-top: 1px dashed var(--ipn-line-strong);
}

.ipn-facts dl > div:first-child { border-top: 0; }

.ipn-facts dt { color: var(--ipn-ink); font: 700 .9375rem/1.4 var(--ipn-head); }

.ipn-facts dd { margin: 0; font-size: .9375rem; }

/* 10. Trust strip --------------------------------------------------------- */
.ipn-trust {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	margin: 0;
	padding: 20px;
	list-style: none;
	border: 1px solid var(--ipn-line);
	border-radius: var(--ipn-r-lg);
	background: #fff;
}

@media (min-width: 900px) {
	.ipn-trust { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.ipn-trust li { display: flex; align-items: center; gap: 12px; }

.ipn-trust .ipn-icon { width: 28px; height: 28px; color: var(--ipn-teal); }

.ipn-trust p { margin: 0; }

.ipn-trust strong { display: block; color: var(--ipn-ink); font: 800 1.1875rem/1.1 var(--ipn-head); }

.ipn-trust span { color: var(--ipn-muted); font-size: .875rem; }

/* 11. Tabs ---------------------------------------------------------------- */
.ipn-tabs__list {
	display: none;
	gap: 8px;
	margin: 0 calc(-1 * var(--ipn-gutter)) 20px;
	padding: 2px var(--ipn-gutter) 6px;
	overflow-x: auto;
	scrollbar-width: none;
}

.ipn-tabs__list::-webkit-scrollbar { display: none; }

.js .ipn-tabs__list { display: flex; }

.ipn-tabs__tab {
	display: inline-flex;
	flex: none;
	align-items: center;
	gap: 8px;
	min-height: 48px;
	padding: 10px 16px;
	border: 1.5px solid var(--ipn-line);
	border-radius: 12px;
	background: #fff;
	color: var(--ipn-ink);
	font: 700 .9375rem/1.1 var(--ipn-head);
	cursor: pointer;
	transition: background-color .2s, color .2s, border-color .2s;
}

.ipn-tabs__tab .ipn-icon { width: 20px; height: 20px; color: var(--ipn-teal); }

.ipn-tabs__tab:hover { border-color: var(--ipn-teal-line); }

.ipn-tabs__tab[aria-selected="true"] {
	background: var(--ipn-teal);
	border-color: var(--ipn-teal);
	color: #fff;
}

.ipn-tabs__tab[aria-selected="true"] .ipn-icon { color: #fff; }

.ipn-tabs__panel {
	display: grid;
	gap: 28px;
	align-items: center;
	margin-bottom: 16px;
	padding: clamp(16px, 3vw, 32px);
	border: 1px solid var(--ipn-line);
	border-radius: 20px;
	background: #fff;
	box-shadow: var(--ipn-shadow-2);
}

.js [data-ipn-tabs]:not(.is-ready) .ipn-tabs__panel ~ .ipn-tabs__panel,
.ipn-tabs__panel[hidden] { display: none; }

.is-ready .ipn-tabs__panel { animation: ipn-fade .3s var(--ipn-ease); }

@media (min-width: 900px) {
	.ipn-tabs__panel { grid-template-columns: 1.08fr .92fr; gap: 40px; }
}

.ipn-tabs__copy h3 { font-size: clamp(1.375rem, 1.2rem + .6vw, 1.75rem); font-weight: 800; }

.ipn-tabs__copy .ipn-checklist { margin: 16px 0 20px; }

/* 12. Device mock-ups ----------------------------------------------------- */
.ipn-tv {
	position: relative;
	margin: 0;
	padding-bottom: 16px;
}

.ipn-tv__screen {
	padding: clamp(6px, 1vw, 10px);
	border-radius: 14px;
	background: #0c1520;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08), var(--ipn-shadow-3);
}

.ipn-tv__screen img { width: 100%; border-radius: 6px; }

.ipn-tv__stand {
	position: absolute;
	bottom: 0;
	left: 36%;
	width: 28%;
	height: 16px;
	border-radius: 0 0 10px 10px;
	background: linear-gradient(#c5ccd0, #a5afb4);
}

.ipn-tv figcaption,
.ipn-phone figcaption { margin-top: 12px; color: var(--ipn-muted); font-size: .875rem; text-align: center; }

.ipn-phone { width: min(58%, 260px); margin: 0 auto; }

.ipn-phone__screen {
	padding: 7px;
	border-radius: 30px;
	background: #0c1520;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), var(--ipn-shadow-3);
}

.ipn-phone__screen img { width: 100%; border-radius: 24px; }

.ipn-mockups {
	position: relative;
	padding: 0 6% 56px 0;
}

.ipn-mockups .ipn-tv { width: 100%; }

.ipn-mockups .ipn-phone {
	position: absolute;
	right: 0;
	bottom: 0;
	width: 30%;
	margin: 0;
}

/* 13. Price staircase ----------------------------------------------------- */
.ipn-ladder {
	display: grid;
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ipn-ladder__step { display: flex; flex-direction: column; }

.ipn-ladder__bar {
	display: flex;
	align-items: center;
	width: calc(34% + var(--h, 1) * 66%);
	min-height: 40px;
	padding: 0 14px;
	border-radius: 10px 10px 0 0;
	background: var(--ipn-teal-soft);
	color: var(--ipn-teal-dark);
	font: 800 1.0625rem/1 var(--ipn-head);
	transition: background-color .25s;
}

.ipn-ladder__bar small { margin-left: 2px; font-size: .8125rem; font-weight: 700; }

.ipn-ladder__card {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 6px;
	padding: 20px;
	border: 1px solid var(--ipn-line);
	border-radius: 0 14px 14px 14px;
	background: #fff;
	transition: transform .2s var(--ipn-ease), box-shadow .2s, border-color .2s;
}

.ipn-ladder__step.is-best .ipn-ladder__bar { background: var(--ipn-teal); color: #fff; }

.ipn-ladder__step.is-best .ipn-ladder__card { border: 2px solid var(--ipn-teal); box-shadow: var(--ipn-shadow-3); }

.ipn-ladder__step.is-selected .ipn-ladder__card { border-color: var(--ipn-teal); box-shadow: 0 0 0 3px var(--ipn-teal-soft), var(--ipn-shadow-2); }

.ipn-ladder__card:hover { transform: translateY(-3px); box-shadow: var(--ipn-shadow-2); }

.ipn-ladder__label { margin: 4px 0 0; font-size: 1.25rem; }

.ipn-ladder__price { margin: 0; }

.ipn-ladder__price strong {
	color: var(--ipn-ink);
	font: 800 2.125rem/1 var(--ipn-head);
	letter-spacing: -.025em;
}

.ipn-ladder__eur { display: block; margin-top: 4px; color: var(--ipn-muted); font-size: .875rem; }

.ipn-ladder__pm { margin: 0; color: var(--ipn-ink); font-weight: 600; }

.ipn-ladder__save {
	display: flex;
	align-items: flex-start;
	gap: 6px;
	margin: 0;
	color: var(--ipn-success);
	font-size: .9375rem;
	font-weight: 600;
}

.ipn-ladder__save .ipn-icon { width: 18px; height: 18px; margin-top: 2px; }

.ipn-ladder__save.is-neutral { color: var(--ipn-muted); }

.ipn-ladder__fit { flex: 1; margin: 4px 0 12px; color: var(--ipn-muted); font-size: .9375rem; }

@media (min-width: 640px) and (max-width: 979px) {
	.ipn-ladder { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 980px) {
	.ipn-ladder { grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: end; gap: 16px; }
	.ipn-ladder__bar {
		width: auto;
		height: calc(56px + var(--h, 1) * 150px);
		align-items: flex-start;
		justify-content: center;
		padding-top: 16px;
		border: 1px solid var(--ipn-teal-line);
		border-bottom: 0;
		border-radius: 14px 14px 0 0;
		background: linear-gradient(180deg, var(--ipn-teal-soft), #fff);
		font-size: 1.25rem;
	}
	.ipn-ladder__step.is-best .ipn-ladder__bar { border-color: var(--ipn-teal); background: linear-gradient(180deg, var(--ipn-teal), var(--ipn-teal-dark)); }
	.ipn-ladder__card { border-radius: 0 0 16px 16px; min-height: 350px; }
}

.ipn-price-foot {
	display: grid;
	gap: 16px;
	margin: 28px 0;
	padding: clamp(20px, 3vw, 28px);
	border-radius: var(--ipn-r-lg);
	background: var(--ipn-snow);
}

.ipn-price-foot h3 { margin-bottom: 14px; font-size: 1.125rem; }

.ipn-price-foot .ipn-checklist { margin: 0; }

.ipn-price-foot__note { display: flex; gap: 8px; margin: 0; }

.ipn-price-foot__note .ipn-icon { width: 18px; height: 18px; margin-top: 2px; color: var(--ipn-teal); }

/* Plan table (subscription page) */
.ipn-ptable { overflow-x: auto; }

/* 14. Guarantee slip ------------------------------------------------------ */
.ipn-slip {
	position: relative;
	padding: 26px clamp(20px, 3vw, 36px) 28px;
	border: 1px solid var(--ipn-paper-line);
	border-radius: var(--ipn-r-lg);
	background: var(--ipn-paper);
}

.ipn-slip::before,
.ipn-slip::after {
	content: "";
	position: absolute;
	top: 62px;
	width: 24px;
	height: 24px;
	border: 1px solid var(--ipn-paper-line);
	border-radius: 50%;
	background: var(--ipn-slip-hole, #fff);
}

.ipn-slip::before { left: -13px; clip-path: inset(0 0 0 50%); }

.ipn-slip::after { right: -13px; clip-path: inset(0 50% 0 0); }

.ipn-section--snow .ipn-slip { --ipn-slip-hole: var(--ipn-snow); }

.ipn-slip__title {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 24px;
	padding-bottom: 20px;
	border-bottom: 2px dashed #e1d3b5;
	color: var(--ipn-ink);
	font: 800 1.25rem/1.2 var(--ipn-head);
}

.ipn-slip__title .ipn-icon { color: var(--ipn-teal); }

.ipn-slip__list {
	display: grid;
	gap: 22px;
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 700px) {
	.ipn-slip__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1100px) {
	.ipn-slip__list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.ipn-slip__list li { display: flex; gap: 14px; }

.ipn-slip__icon {
	display: grid;
	flex: none;
	place-items: center;
	width: 44px;
	height: 44px;
	border: 1px solid var(--ipn-paper-line);
	border-radius: 50%;
	background: #fff;
	color: var(--ipn-teal-dark);
}

.ipn-slip__icon .ipn-icon { width: 22px; height: 22px; }

.ipn-slip h3 { margin: 0 0 4px; font-size: 1.0625rem; }

.ipn-slip p { margin: 0 0 6px; font-size: .9375rem; }

.ipn-slip a {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: .9375rem;
	font-weight: 600;
}

.ipn-slip a .ipn-icon { width: 16px; height: 16px; }

/* 15. Device checker + cards --------------------------------------------- */
.ipn-checker {
	overflow: hidden;
	border: 1px solid var(--ipn-line);
	border-radius: 18px;
	background: #fff;
	box-shadow: var(--ipn-shadow-2);
}

.ipn-checker__choices {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 18px;
	border: 0;
	border-bottom: 1px solid var(--ipn-line);
}

.ipn-checker__choices legend {
	float: left;
	width: 100%;
	margin-bottom: 10px;
	padding: 0;
	color: var(--ipn-ink);
	font: 700 1rem/1.3 var(--ipn-head);
}

.ipn-checker__choice {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	padding: 8px 14px;
	border: 1.5px solid var(--ipn-line);
	border-radius: 999px;
	color: var(--ipn-ink);
	font: 600 .9375rem/1.2 var(--ipn-body);
	cursor: pointer;
	transition: border-color .2s, background-color .2s;
}

.ipn-checker__choice .ipn-icon { width: 18px; height: 18px; color: var(--ipn-teal); }

.ipn-checker__choice input {
	position: absolute;
	inset: 0;
	margin: 0;
	opacity: 0;
	cursor: pointer;
}

.ipn-checker__choice:focus-within { outline: 3px solid var(--ipn-teal); outline-offset: 2px; }

.ipn-checker__choice.is-checked,
.ipn-checker__choice:has(input:checked) { border-color: var(--ipn-teal); background: var(--ipn-teal-soft); }

.ipn-checker__answers { padding: 20px 20px 24px; }

.ipn-checker__answer + .ipn-checker__answer { margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--ipn-line); }

.js .ipn-checker__answer { display: none; }

.js .ipn-checker__answer.is-active { display: block; margin: 0; padding: 0; border: 0; animation: ipn-fade .25s var(--ipn-ease); }

.ipn-checker__verdict {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 6px;
	color: var(--ipn-success);
	font-size: .9375rem;
	font-weight: 600;
}

.ipn-checker__answer h3 { margin-bottom: 8px; font-size: 1.25rem; }

.ipn-checker__need {
	padding: 10px 12px;
	border-radius: 8px;
	background: var(--ipn-snow);
	font-size: .9375rem;
}

.ipn-devcards {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ipn-devcard {
	position: relative;
	padding: 22px;
	border: 1px solid var(--ipn-line);
	border-radius: 14px;
	background: #fff;
	transition: border-color .2s, box-shadow .2s, transform .2s var(--ipn-ease);
}

.ipn-devcard:hover { border-color: var(--ipn-teal-line); box-shadow: var(--ipn-shadow-2); transform: translateY(-2px); }

.ipn-devcard__icon {
	display: grid;
	place-items: center;
	width: 46px;
	height: 46px;
	margin-bottom: 14px;
	border-radius: 12px;
	background: var(--ipn-mist);
	color: var(--ipn-teal-dark);
}

.ipn-devcard h3 { margin-bottom: 6px; font-size: 1.125rem; }

.ipn-devcard h3 a { color: var(--ipn-ink); text-decoration: none; }

.ipn-devcard h3 a::after { content: ""; position: absolute; inset: 0; border-radius: 14px; }

.ipn-devcard p { margin: 0 0 8px; font-size: .9375rem; }

.ipn-devcard__status { display: flex; align-items: center; gap: 8px; color: var(--ipn-muted); font-size: .875rem !important; }

/* 16. Steps --------------------------------------------------------------- */
.ipn-steps {
	position: relative;
	display: grid;
	gap: 18px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ipn-steps__item { position: relative; display: flex; gap: 16px; }

.ipn-steps__num {
	position: relative;
	z-index: 1;
	display: grid;
	flex: none;
	place-items: center;
	width: 56px;
	height: 56px;
	border: 2px solid var(--ipn-teal);
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 0 0 6px #fff;
	color: var(--ipn-teal);
	font: 800 1.125rem/1 var(--ipn-head);
}

.ipn-steps__meta {
	margin: 4px 0 2px;
	color: var(--ipn-muted);
	font: 700 .75rem/1.3 var(--ipn-body);
	letter-spacing: .12em;
	text-transform: uppercase;
}

.ipn-steps__title { margin-bottom: 6px; font-size: 1.1875rem; }

.ipn-steps__body p { font-size: .9688rem; }

.ipn-steps__line { display: none; }

.ipn-steps--route .ipn-steps__item:not(:last-child)::before {
	content: "";
	position: absolute;
	top: 60px;
	bottom: -14px;
	left: 27px;
	border-left: 2px dashed var(--ipn-teal-line);
}

@media (min-width: 900px) {
	.ipn-steps--route { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px; }
	.ipn-steps--route .ipn-steps__item { flex-direction: column; }
	.ipn-steps--route .ipn-steps__item::before { display: none; }
	.ipn-steps__line {
		position: absolute;
		top: 8px;
		right: 6%;
		left: 4%;
		display: block;
		height: 40px;
		color: var(--ipn-teal-line);
		pointer-events: none;
	}
	.ipn-steps__line svg { width: 100%; height: 40px; }
}

.ipn-steps--cards { gap: 14px; }

.ipn-steps--cards .ipn-steps__item {
	flex-direction: column;
	gap: 10px;
	padding: 22px;
	border: 1px solid var(--ipn-line);
	border-radius: 14px;
	background: #fff;
}

.ipn-steps--cards .ipn-steps__num {
	width: auto;
	height: auto;
	place-items: start;
	border: 0;
	box-shadow: none;
	background: none;
	color: var(--ipn-teal);
	font-size: 2.25rem;
	letter-spacing: -.03em;
}

@media (min-width: 700px) {
	.ipn-steps--cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1100px) {
	.ipn-steps--cards.ipn-steps--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.ipn-steps--timeline { gap: 0; }

.ipn-steps--timeline .ipn-steps__item { padding-bottom: 26px; }

.ipn-steps--timeline .ipn-steps__item:not(:last-child)::before {
	content: "";
	position: absolute;
	top: 46px;
	bottom: 0;
	left: 21px;
	border-left: 2px solid var(--ipn-teal-line);
}

.ipn-steps--timeline .ipn-steps__num { width: 44px; height: 44px; font-size: 1rem; }

.ipn-steps--timeline .ipn-steps__num .ipn-icon { width: 20px; height: 20px; }

.ipn-setup {
	display: grid;
	gap: 24px;
	align-items: center;
	margin-top: clamp(40px, 6vw, 64px);
}

.ipn-setup__card {
	position: relative;
	padding: clamp(22px, 3vw, 32px);
	border: 1px solid var(--ipn-line);
	border-radius: 18px;
	background: #fff;
	box-shadow: var(--ipn-shadow-3);
}

.ipn-setup__card h3 { font-size: 1.375rem; }

.ipn-setup__card .ipn-btn { margin: 4px 0 14px; }

@media (min-width: 900px) {
	.ipn-setup { grid-template-columns: 1.3fr .7fr; }
	.ipn-setup__card { z-index: 1; margin-left: -90px; }
}

/* 17. Local section + scenarios ------------------------------------------ */
.ipn-local {
	display: grid;
	gap: 32px;
	align-items: center;
	margin-bottom: 36px;
}

@media (min-width: 960px) {
	.ipn-local { grid-template-columns: 1.05fr .95fr; gap: 56px; }
}

.ipn-local .ipn-head { margin-bottom: 0; }

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

@media (min-width: 820px) {
	.ipn-scenarios { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.ipn-scenario {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 22px;
	border: 1px solid var(--ipn-line);
	border-radius: var(--ipn-r-lg);
	background: #fff;
	transition: transform .2s var(--ipn-ease), box-shadow .2s;
}

.ipn-scenario:hover { transform: translateY(-3px); box-shadow: var(--ipn-shadow-2); }

.ipn-scenario__tag {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	color: var(--ipn-muted);
	font: 700 .75rem/1.2 var(--ipn-body);
	letter-spacing: .1em;
	text-transform: uppercase;
}

.ipn-scenario__tag .ipn-icon {
	width: 38px;
	height: 38px;
	padding: 8px;
	border-radius: 10px;
	background: var(--ipn-teal-soft);
	color: var(--ipn-teal-dark);
}

.ipn-scenario h3 { margin: 4px 0 0; font-size: 1.25rem; }

.ipn-scenario__situation { margin: 0; }

.ipn-scenario__advice {
	margin: 0 0 8px;
	padding: 12px 14px;
	border-radius: var(--ipn-r);
	background: var(--ipn-snow);
	font-size: .9375rem;
}

.ipn-section--snow .ipn-scenario__advice { background: var(--ipn-mist); }

.ipn-scenario .ipn-link { margin-top: auto; }

.ipn-speedblock {
	margin-top: 40px;
	padding: clamp(20px, 3vw, 32px);
	border: 1px solid var(--ipn-line);
	border-radius: 18px;
	background: #fff;
}

.ipn-speedblock h3 { margin-bottom: 16px; font-size: 1.375rem; }

/* 18. Tables (speed, comparison, plans) — cards below 720px -------------- */
.ipn-speed,
.ipn-compare,
.ipn-ptable { width: 100%; }

.ipn-speed table,
.ipn-compare table,
.ipn-ptable table,
.ipn-prose table {
	width: 100%;
	border-collapse: collapse;
	font-size: .9375rem;
}

.ipn-speed th,
.ipn-speed td,
.ipn-compare th,
.ipn-compare td,
.ipn-ptable th,
.ipn-ptable td,
.ipn-prose th,
.ipn-prose td {
	padding: 14px 16px;
	border-bottom: 1px solid var(--ipn-line);
	text-align: left;
	vertical-align: top;
}

.ipn-speed thead th,
.ipn-compare thead th,
.ipn-ptable thead th,
.ipn-prose thead th {
	background: var(--ipn-snow);
	color: var(--ipn-ink);
	font: 700 .875rem/1.3 var(--ipn-body);
}

.ipn-speed tbody th,
.ipn-compare tbody th,
.ipn-ptable tbody th { color: var(--ipn-ink); font: 700 .9375rem/1.4 var(--ipn-head); }

.ipn-compare {
	overflow-x: auto;
	border: 1px solid var(--ipn-line);
	border-radius: var(--ipn-r-lg);
	background: #fff;
}

.ipn-compare thead th.is-ours { background: var(--ipn-teal); color: #fff; }

.ipn-compare td.is-ours { background: #f3f9f8; color: var(--ipn-ink); font-weight: 600; }

.ipn-compare tbody tr:last-child > * { border-bottom: 0; }

.ipn-compare__foot { margin-top: 16px; }

.ipn-ptable {
	overflow-x: auto;
	border: 1px solid var(--ipn-line);
	border-radius: var(--ipn-r-lg);
	background: #fff;
}

.ipn-ptable thead th { vertical-align: bottom; font-size: 1rem; }

.ipn-ptable thead th.is-best { background: var(--ipn-teal); color: #fff; }

.ipn-ptable thead .ipn-badge { display: table; margin-top: 6px; }

.ipn-ptable td.is-best { background: #f3f9f8; }

.ipn-ptable__price { color: var(--ipn-ink); font: 800 1.375rem/1 var(--ipn-head); }

.ipn-ptable td .ipn-icon { width: 18px; height: 18px; color: var(--ipn-success); vertical-align: -4px; margin-right: 4px; }

.ipn-ptable__cta td { border-bottom: 0; }

@media (max-width: 719px) {
	.ipn-speed table,
	.ipn-speed tbody,
	.ipn-speed tr,
	.ipn-speed th,
	.ipn-speed td,
	.ipn-compare table,
	.ipn-compare tbody,
	.ipn-compare tr,
	.ipn-compare th,
	.ipn-compare td,
	.ipn-ptable table,
	.ipn-ptable tbody,
	.ipn-ptable tr,
	.ipn-ptable th,
	.ipn-ptable td { display: block; width: 100%; }

	.ipn-speed thead,
	.ipn-compare thead,
	.ipn-ptable thead {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
	}

	.ipn-compare,
	.ipn-ptable { overflow: visible; border: 0; background: none; }

	.ipn-speed tr,
	.ipn-compare tr,
	.ipn-ptable tr {
		margin-bottom: 12px;
		border: 1px solid var(--ipn-line);
		border-radius: 14px;
		background: #fff;
		overflow: hidden;
	}

	.ipn-speed tbody th,
	.ipn-compare tbody th,
	.ipn-ptable tbody th { background: var(--ipn-snow); font-size: 1.0625rem; }

	.ipn-speed td,
	.ipn-compare td,
	.ipn-ptable td {
		display: grid;
		grid-template-columns: minmax(0, 42%) minmax(0, 1fr);
		gap: 12px;
		border-bottom: 1px dashed var(--ipn-line);
	}

	.ipn-speed td::before,
	.ipn-compare td::before,
	.ipn-ptable td::before {
		content: attr(data-label);
		color: var(--ipn-muted);
		font-size: .875rem;
		font-weight: 600;
	}

	.ipn-speed td:last-child,
	.ipn-compare td:last-child,
	.ipn-ptable td:last-child { border-bottom: 0; }

	.ipn-compare tbody tr:last-child > * { border-bottom: 1px dashed var(--ipn-line); }
	.ipn-compare tbody tr:last-child > td:last-child { border-bottom: 0; }

	.ipn-ptable__cta { display: grid !important; gap: 8px; padding: 12px; border: 0 !important; background: none !important; }
	.ipn-ptable__cta th { display: none; }
	.ipn-ptable__cta td { display: block; padding: 0; border: 0; background: none !important; }
	.ipn-ptable__cta td::before { content: none; }
}

/* 19. Opening-hours sign -------------------------------------------------- */
.ipn-hours {
	position: relative;
	padding: 26px 22px 18px;
	border-radius: var(--ipn-r-lg);
	background: var(--ipn-navy);
	box-shadow: var(--ipn-shadow-3);
	color: #e8eef3;
}

.ipn-hours::before {
	content: "";
	position: absolute;
	top: 10px;
	left: 50%;
	width: 46px;
	height: 6px;
	margin-left: -23px;
	border-radius: 6px;
	background: rgba(255, 255, 255, .2);
}

.ipn-hours__title {
	margin: 6px 0 12px;
	color: #fff;
	font: 800 .875rem/1.2 var(--ipn-head);
	letter-spacing: .24em;
	text-align: center;
	text-transform: uppercase;
}

.ipn-hours__status {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin: 0 0 14px;
	padding: 7px 12px;
	border-radius: 999px;
	background: rgba(255, 255, 255, .09);
	color: #fff;
	font-size: .9375rem;
	font-weight: 600;
}

.ipn-hours__status .ipn-dot { box-shadow: 0 0 0 3px rgba(255, 255, 255, .15); }

.ipn-hours__rows { margin: 0; }

.ipn-hours__rows > div {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	padding: 9px 0;
	border-top: 1px dashed rgba(255, 255, 255, .22);
}

.ipn-hours dt { font-weight: 600; }

.ipn-hours dd {
	margin: 0;
	color: #fff;
	font: 700 1rem/1.4 var(--ipn-head);
	font-variant-numeric: tabular-nums;
}

.ipn-hours__note { margin: 10px 0 0; color: #b8c6d3; font-size: .8125rem; }

/* 20. Support -------------------------------------------------------------- */
.ipn-support__grid {
	display: grid;
	gap: 22px;
	margin-bottom: 4px;
}

@media (min-width: 640px) {
	.ipn-support__grid { grid-template-columns: .92fr 1.08fr; align-items: start; }
}

.ipn-support__h { margin-bottom: 12px; font-size: 1.125rem; }

.ipn-support__media { position: relative; }

.ipn-support__tickets {
	position: absolute;
	left: 14px;
	bottom: 14px;
	display: flex;
	flex-direction: column;
	gap: 5px;
	padding: 12px 14px;
	border-radius: 12px;
	background: rgba(255, 255, 255, .96);
	box-shadow: var(--ipn-shadow-2);
	color: var(--ipn-ink);
	font-size: .875rem;
	font-weight: 600;
}

.ipn-support__tickets span:not(.ipn-support__tickets-title)::before {
	content: "";
	display: inline-block;
	width: 7px;
	height: 7px;
	margin-right: 8px;
	border-radius: 2px;
	background: var(--ipn-teal);
	transform: rotate(45deg) translateY(-2px);
}

.ipn-support__tickets-title {
	color: var(--ipn-muted);
	font-size: .75rem;
	letter-spacing: .1em;
	text-transform: uppercase;
}

/* 21. Checklists, notes, alerts ------------------------------------------ */
.ipn-checklist {
	display: grid;
	gap: 10px;
	margin: 0 0 16px;
	padding: 0;
	list-style: none;
}

.ipn-checklist li { display: flex; align-items: flex-start; gap: 10px; }

.ipn-checklist .ipn-icon { width: 20px; height: 20px; margin-top: 3px; color: var(--ipn-success); }

@media (min-width: 700px) {
	.ipn-checklist--cols { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 28px; }
}

.ipn-roselist {
	display: grid;
	gap: 10px;
	margin: 0 0 16px;
	padding: 0;
	list-style: none;
}

.ipn-roselist li { display: flex; gap: 10px; }

.ipn-roselist .ipn-rose { margin-top: 5px; width: 14px; height: 14px; }

.ipn-note {
	display: grid;
	gap: 6px;
	margin-top: 28px;
	padding: 18px 20px;
	border-left: 4px solid var(--ipn-amber);
	border-radius: var(--ipn-r);
	background: #fff8ec;
}

.ipn-note__title {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	color: var(--ipn-ink);
	font: 700 1.0625rem/1.3 var(--ipn-head);
}

.ipn-note__title .ipn-icon { width: 20px; height: 20px; color: var(--ipn-amber-ink); }

.ipn-note__text { font-size: .9688rem; }

.ipn-note--tip { border-left-color: var(--ipn-teal); background: var(--ipn-teal-soft); }

.ipn-note--tip .ipn-note__title .ipn-icon { color: var(--ipn-teal-dark); }

.ipn-note--important { border-left-color: var(--ipn-warning); background: var(--ipn-warning-soft); }

.ipn-note--important .ipn-note__title .ipn-icon { color: var(--ipn-warning); }

.ipn-alert {
	display: flex;
	gap: 12px;
	margin-bottom: 18px;
	padding: 14px 16px;
	border-radius: 12px;
}

.ipn-alert .ipn-icon { margin-top: 2px; }

.ipn-alert p { margin: 0; }

.ipn-alert--ok { background: var(--ipn-success-soft); color: #1d5235; }

.ipn-alert--error { background: var(--ipn-warning-soft); color: #6f3405; }

/* 22. FAQ ------------------------------------------------------------------ */
.ipn-faqwrap { display: grid; gap: 32px; }

@media (min-width: 960px) {
	.ipn-faqwrap { grid-template-columns: .78fr 1.22fr; align-items: start; gap: 56px; }
	.ipn-faqwrap__aside { position: sticky; top: calc(var(--ipn-header-h) + 28px); }
}

.ipn-faqwrap__help {
	display: grid;
	gap: 8px;
	margin-top: 8px;
	padding: 18px 20px;
	border-radius: 14px;
	background: var(--ipn-snow);
	font-size: .9688rem;
}

.ipn-faqwrap__help p { margin: 0; }

.ipn-faqwrap__help .ipn-btn { justify-self: start; margin-top: 6px; }

.ipn-faq__filters {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 18px;
}

.ipn-faq__list { border-top: 1px solid var(--ipn-line); }

.ipn-faq__item { border-bottom: 1px solid var(--ipn-line); }

.ipn-faq__item[hidden] { display: none; }

.ipn-faq__item summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	min-height: 60px;
	padding: 16px 2px;
	color: var(--ipn-ink);
	font: 700 1.0625rem/1.35 var(--ipn-head);
	list-style: none;
	cursor: pointer;
}

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

.ipn-faq__item summary:hover .ipn-faq__q { color: var(--ipn-teal-dark); }

.ipn-faq__icon {
	display: grid;
	flex: none;
	place-items: center;
	width: 34px;
	height: 34px;
	border: 1.5px solid var(--ipn-line-strong);
	border-radius: 9px;
	color: var(--ipn-ink);
	transition: transform .25s var(--ipn-ease), background-color .2s, color .2s, border-color .2s;
}

.ipn-faq__icon .ipn-icon { width: 18px; height: 18px; }

.ipn-faq__item[open] .ipn-faq__icon {
	transform: rotate(45deg);
	border-color: var(--ipn-ink);
	background: var(--ipn-ink);
	color: #fff;
}

.ipn-faq__a { max-width: 70ch; padding: 0 2px 20px; }

.ipn-faq__item[open] .ipn-faq__a { animation: ipn-fade .3s var(--ipn-ease); }

.ipn-faqgroup { margin-bottom: 40px; scroll-margin-top: calc(var(--ipn-header-h) + 20px); }

.ipn-faqgroup > h2 {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 8px;
	font-size: 1.5rem;
}

.ipn-faqgroup > h2 .ipn-icon { color: var(--ipn-teal); }

/* 23. Post cards + guides -------------------------------------------------- */
.ipn-guides,
.ipn-postgrid {
	display: grid;
	gap: 20px;
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 700px) {
	.ipn-guides,
	.ipn-postgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1020px) {
	.ipn-guides,
	.ipn-postgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.ipn-card-post {
	overflow: hidden;
	border: 1px solid var(--ipn-line);
	border-radius: var(--ipn-r-lg);
	background: #fff;
	transition: transform .2s var(--ipn-ease), box-shadow .2s;
}

.ipn-card-post:hover { transform: translateY(-3px); box-shadow: var(--ipn-shadow-2); }

.ipn-card-post__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	color: inherit;
	text-decoration: none;
}

.ipn-card-post__link:hover { color: inherit; }

.ipn-card-post__media { margin: 0; overflow: hidden; background: var(--ipn-mist); }

.ipn-card-post__media img {
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	transition: transform .4s var(--ipn-ease);
}

.ipn-card-post:hover .ipn-card-post__media img { transform: scale(1.03); }

.ipn-card-post__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 18px 20px 22px;
}

.ipn-card-post__cat {
	margin: 0 0 6px;
	color: var(--ipn-teal-dark);
	font: 700 .75rem/1.2 var(--ipn-body);
	letter-spacing: .1em;
	text-transform: uppercase;
}

.ipn-card-post__title { margin: 0 0 8px; font-size: 1.1875rem; line-height: 1.25; }

.ipn-card-post__link:hover .ipn-card-post__title { color: var(--ipn-teal-dark); }

.ipn-card-post__excerpt { margin: 0 0 12px; color: var(--ipn-text); font-size: .9375rem; }

.ipn-card-post__meta { margin-top: auto; color: var(--ipn-muted); font-size: .875rem; }

.ipn-card-post--featured { grid-column: 1 / -1; }

@media (min-width: 900px) {
	.ipn-card-post--featured .ipn-card-post__link { flex-direction: row; }
	.ipn-card-post--featured .ipn-card-post__media { flex: 0 0 56%; }
	.ipn-card-post--featured .ipn-card-post__media img { height: 100%; }
	.ipn-card-post--featured .ipn-card-post__body { justify-content: center; padding: 36px 40px; }
	.ipn-card-post--featured .ipn-card-post__title { font-size: 1.875rem; }
}

/* 24. Postcard close ------------------------------------------------------- */
.ipn-postcard {
	display: grid;
	max-width: 1040px;
	margin: 0 auto;
	overflow: hidden;
	border: 1px solid var(--ipn-paper-line);
	border-radius: 8px;
	background: #fffdf8;
	box-shadow: var(--ipn-shadow-3);
}

@media (min-width: 820px) {
	.ipn-postcard { grid-template-columns: .92fr 1.08fr; transform: rotate(-.35deg); }
}

.ipn-postcard__photo { margin: 0; padding: 14px; }

.ipn-postcard__photo img {
	width: 100%;
	height: 100%;
	aspect-ratio: 4 / 3;
	border-radius: 4px;
	object-fit: cover;
}

@media (min-width: 820px) {
	.ipn-postcard__photo img { aspect-ratio: auto; min-height: 460px; }
}

.ipn-postcard__back {
	position: relative;
	padding: 116px clamp(22px, 4vw, 48px) clamp(26px, 4vw, 44px);
}

@media (min-width: 820px) {
	.ipn-postcard__back { border-left: 1px solid var(--ipn-paper-line); }
}

.ipn-postcard__stamp {
	position: absolute;
	top: 20px;
	right: 22px;
	display: grid;
	place-items: center;
	width: 74px;
	height: 86px;
	padding: 8px;
	background: #fff;
	box-shadow: 0 0 0 1px #e5dcc8, 0 6px 14px -8px rgba(15, 34, 48, .35);
	transform: rotate(4deg);
	-webkit-mask: radial-gradient(circle 3.2px at 4px 4px, transparent 98%, #000) -4px -4px / 9px 9px;
	mask: radial-gradient(circle 3.2px at 4px 4px, transparent 98%, #000) -4px -4px / 9px 9px;
}

.ipn-postcard__stamp img { width: 100%; height: auto; }

.ipn-postcard__mark {
	position: absolute;
	top: 14px;
	right: 78px;
	width: 108px;
	height: 108px;
	color: rgba(11, 106, 110, .42);
	transform: rotate(-12deg);
	pointer-events: none;
}

.ipn-postcard__mark text { font-family: var(--ipn-body); font-weight: 700; }

.ipn-postcard__title {
	margin: 0 0 14px;
	font-size: clamp(1.75rem, 1.2rem + 2vw, 2.5rem);
	font-weight: 800;
	line-height: 1.08;
	letter-spacing: -.026em;
}

.ipn-postcard__text {
	margin: 0;
	background-image: repeating-linear-gradient(180deg, transparent 0, transparent calc(1.8em - 1px), #eadfc8 calc(1.8em - 1px), #eadfc8 1.8em);
	line-height: 1.8em;
}

.ipn-postcard__sign { margin: 18px 0 0; color: var(--ipn-muted); font-style: italic; }

/* 25. CTA band ------------------------------------------------------------- */
.ipn-ctaband {
	position: relative;
	display: grid;
	gap: 16px;
	align-items: center;
	margin-top: 48px;
	padding: 24px;
	overflow: hidden;
	border: 1px solid var(--ipn-line);
	border-radius: 18px;
	background: #fff;
}

@media (min-width: 820px) {
	.ipn-ctaband { grid-template-columns: auto minmax(0, 1fr) auto; gap: 22px; padding: 26px 30px; }
	.ipn-ctaband .ipn-actions { margin-top: 0; }
}

.ipn-ctaband--panel { background: var(--ipn-snow); padding-top: 34px; }

.ipn-ctaband--panel::before {
	content: "";
	position: absolute;
	inset: 0 0 auto;
	height: 10px;
	background: var(--ipn-knit) repeat-x left center / 10px 10px, var(--ipn-teal-soft);
}

.ipn-ctaband__icon {
	display: grid;
	place-items: center;
	width: 54px;
	height: 54px;
	border-radius: 50%;
	background: var(--ipn-teal-soft);
	color: var(--ipn-teal-dark);
}

.ipn-ctaband__title { margin: 0 0 4px; color: var(--ipn-ink); font: 700 1.25rem/1.25 var(--ipn-head); }

.ipn-ctaband__copy p:not(.ipn-ctaband__title) { margin: 0; font-size: .9688rem; }

/* 26. Inner page hero ------------------------------------------------------ */
.ipn-phero {
	padding: clamp(18px, 3vw, 30px) 0 clamp(40px, 6vw, 72px);
	background: linear-gradient(180deg, var(--ipn-snow) 0%, #fff 78%);
}

.ipn-phero__grid { display: grid; gap: 32px; align-items: center; }

.ipn-phero__title {
	margin: 0 0 16px;
	font-size: clamp(2rem, 1.3rem + 3vw, 3.5rem);
	font-weight: 800;
	line-height: 1.04;
	letter-spacing: -.032em;
}

.ipn-phero__lede {
	max-width: 62ch;
	margin: 0;
	font-size: clamp(1.0625rem, 1rem + .35vw, 1.25rem);
}

.ipn-phero__meta { margin-top: 20px; }

.ipn-phero__media img { width: 100%; border-radius: 20px; box-shadow: var(--ipn-shadow-3); }

@media (min-width: 960px) {
	.ipn-phero--split .ipn-phero__grid { grid-template-columns: 1.02fr .98fr; gap: 56px; }
}

.ipn-phero--center .ipn-phero__copy {
	max-width: 840px;
	margin-inline: auto;
	text-align: center;
}

.ipn-phero--center .ipn-crumbs ol,
.ipn-phero--center .ipn-chips,
.ipn-phero--center .ipn-actions,
.ipn-phero--center .ipn-eyebrow { justify-content: center; }

.ipn-phero--center .ipn-phero__lede { margin-inline: auto; }

.ipn-phero--band .ipn-phero__media img,
.ipn-phero--city .ipn-phero__media img {
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

@media (min-width: 900px) {
	.ipn-phero--band .ipn-phero__media img { aspect-ratio: 24 / 9; }
	.ipn-phero--city .ipn-phero__media img { aspect-ratio: 21 / 9; }
	.ipn-phero--band .ipn-phero__copy,
	.ipn-phero--city .ipn-phero__copy { display: grid; grid-template-columns: 1.1fr .9fr; column-gap: 56px; align-items: end; }
	.ipn-phero--band .ipn-phero__copy > *,
	.ipn-phero--city .ipn-phero__copy > * { grid-column: 1 / -1; }
	.ipn-phero--band .ipn-phero__title,
	.ipn-phero--city .ipn-phero__title { grid-column: 1; }
	.ipn-phero--band .ipn-phero__lede,
	.ipn-phero--city .ipn-phero__lede { grid-column: 2; margin-bottom: 16px; }
}

.ipn-phero--city .ipn-phero__media { position: relative; }

.ipn-phero--legal { background: var(--ipn-snow); border-bottom: 1px solid var(--ipn-line); }

.ipn-phero--legal .ipn-phero__copy { max-width: 820px; }

.ipn-coords {
	display: inline-flex;
	gap: 10px;
	align-items: center;
	padding: 8px 14px;
	border: 1px solid var(--ipn-line);
	border-radius: 999px;
	background: #fff;
	color: var(--ipn-muted);
	font: 600 .875rem/1.2 var(--ipn-body);
	font-variant-numeric: tabular-nums;
}

.ipn-coords .ipn-icon { width: 18px; height: 18px; color: var(--ipn-teal); }

.ipn-crumbs ol {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	margin: 0 0 22px;
	padding: 0;
	list-style: none;
	color: var(--ipn-muted);
	font-size: .875rem;
}

.ipn-crumbs li { display: inline-flex; align-items: center; gap: 4px; }

.ipn-crumbs a { color: var(--ipn-muted); text-decoration: none; }

.ipn-crumbs a:hover { color: var(--ipn-teal-dark); text-decoration: underline; }

.ipn-crumbs .ipn-icon { width: 14px; height: 14px; }

.ipn-crumbs [aria-current] { color: var(--ipn-ink); font-weight: 600; }

.ipn-updated {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	padding: 8px 14px;
	border: 1px solid var(--ipn-line);
	border-radius: 999px;
	background: #fff;
	color: var(--ipn-muted);
	font-size: .9375rem;
}

.ipn-updated .ipn-icon { width: 18px; height: 18px; color: var(--ipn-teal); }

/* 27. Legal + prose -------------------------------------------------------- */
.ipn-legal { display: grid; gap: 32px; }

@media (min-width: 1000px) {
	.ipn-legal { grid-template-columns: 270px minmax(0, 1fr); gap: 64px; }
	.ipn-legal__aside { position: sticky; top: calc(var(--ipn-header-h) + 24px); align-self: start; }
}

.ipn-toc {
	padding: 18px 20px;
	border: 1px solid var(--ipn-line);
	border-radius: 14px;
	background: #fff;
}

.ipn-toc__title {
	margin: 0 0 10px;
	color: var(--ipn-muted);
	font: 700 .8125rem/1.3 var(--ipn-body);
	letter-spacing: .12em;
	text-transform: uppercase;
}

.ipn-toc ol { display: grid; gap: 4px; margin: 0; padding-left: 1.25em; font-size: .9375rem; }

.ipn-toc a { display: inline-block; padding: 3px 0; color: var(--ipn-text); text-decoration: none; }

.ipn-toc a:hover,
.ipn-toc a.is-active { color: var(--ipn-teal-dark); text-decoration: underline; }

.ipn-legal__help {
	display: grid;
	gap: 6px;
	margin-top: 16px;
	padding: 16px 18px;
	border-radius: 14px;
	background: var(--ipn-snow);
	font-size: .9375rem;
}

.ipn-legal__help p { margin: 0; }

.ipn-legal__help .ipn-btn { justify-self: start; margin-top: 6px; }

.ipn-legal__body { max-width: 780px; }

.ipn-legal__section { scroll-margin-top: calc(var(--ipn-header-h) + 20px); }

.ipn-legal__section h2 { margin-top: 0; padding-top: 28px; }

.ipn-legal__section:first-child h2 { padding-top: 0; }

.ipn-legal__num { color: var(--ipn-teal); }

.ipn-prose { font-size: 1.0625rem; line-height: 1.75; }

.ipn-prose > * + * { margin-top: 0; }

.ipn-prose h2 { margin: 2em 0 .6em; font-size: clamp(1.5rem, 1.2rem + 1vw, 1.875rem); font-weight: 800; }

.ipn-prose h3 { margin: 1.6em 0 .5em; font-size: 1.25rem; }

.ipn-prose ul,
.ipn-prose ol { margin: 0 0 1.2em; padding-left: 1.3em; }

.ipn-prose li { margin-bottom: .45em; }

.ipn-prose li::marker { color: var(--ipn-teal); }

.ipn-prose blockquote {
	margin: 1.6em 0;
	padding: .4em 0 .4em 1.2em;
	border-left: 4px solid var(--ipn-teal);
	color: var(--ipn-ink);
	font: 600 1.25rem/1.5 var(--ipn-head);
}

.ipn-prose img { border-radius: 12px; }

.ipn-prose figure { margin: 1.8em 0; }

.ipn-prose figcaption { margin-top: 8px; color: var(--ipn-muted); font-size: .875rem; }

.ipn-prose code {
	padding: .1em .35em;
	border-radius: 4px;
	background: var(--ipn-snow);
	font-size: .9em;
}

.ipn-prose .ipn-note { margin: 1.6em 0; }

.ipn-prose .alignwide { margin-inline: calc(-1 * min(80px, 6vw)); }

.ipn-prose .aligncenter { margin-inline: auto; }

.ipn-prose .alignleft { float: left; margin: .4em 1.4em 1em 0; }

.ipn-prose .alignright { float: right; margin: .4em 0 1em 1.4em; }

.wp-caption-text,
.gallery-caption { color: var(--ipn-muted); font-size: .875rem; }

.sticky,
.bypostauthor { position: relative; }

/* Two-column guide layout (device pages, guides) */
.ipn-guide {
	display: grid;
	gap: 36px;
}

@media (min-width: 1000px) {
	.ipn-guide { grid-template-columns: minmax(0, 1fr) 300px; gap: 56px; align-items: start; }
	.ipn-guide__aside { position: sticky; top: calc(var(--ipn-header-h) + 24px); }
}

.ipn-guide__aside > * + * { margin-top: 16px; }

.ipn-sidecard {
	padding: 20px;
	border: 1px solid var(--ipn-line);
	border-radius: 14px;
	background: #fff;
}

.ipn-sidecard--snow { background: var(--ipn-snow); }

.ipn-sidecard h2,
.ipn-sidecard h3,
.ipn-sidecard .ipn-sidecard__title {
	margin: 0 0 8px;
	color: var(--ipn-ink);
	font: 700 1.0625rem/1.3 var(--ipn-head);
}

.ipn-sidecard p { font-size: .9375rem; }

.ipn-sidecard ul { margin: 0; padding: 0; list-style: none; }

.ipn-sidecard li a { display: block; padding: 6px 0; font-size: .9375rem; font-weight: 600; }

.ipn-sidecard .ipn-btn { margin-top: 10px; }

/* 28. Grids used by inner pages ------------------------------------------- */
.ipn-grid {
	display: grid;
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 680px) {
	.ipn-grid--2,
	.ipn-grid--3,
	.ipn-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1020px) {
	.ipn-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.ipn-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.ipn-tile {
	position: relative;
	padding: 22px;
	border: 1px solid var(--ipn-line);
	border-radius: 14px;
	background: #fff;
}

.ipn-tile__icon {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	margin-bottom: 12px;
	border-radius: 12px;
	background: var(--ipn-mist);
	color: var(--ipn-teal-dark);
}

.ipn-tile h3 { margin-bottom: 6px; font-size: 1.125rem; }

.ipn-tile p { font-size: .9688rem; }

.ipn-tile--line { border-width: 0 0 0 3px; border-color: var(--ipn-teal); border-radius: 0; background: none; padding: 4px 0 4px 18px; }

.ipn-section--snow .ipn-tile:not(.ipn-tile--line) { border-color: transparent; }

.ipn-quote {
	margin: 0;
	padding: clamp(24px, 4vw, 40px);
	border-radius: 18px;
	background: var(--ipn-mist);
}

.ipn-quote p {
	color: var(--ipn-ink);
	font: 700 clamp(1.25rem, 1.05rem + .9vw, 1.75rem)/1.35 var(--ipn-head);
	letter-spacing: -.01em;
}

.ipn-quote footer { margin-top: 14px; color: var(--ipn-muted); font-size: .9375rem; }

.ipn-numbers {
	display: grid;
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: ipn;
}

.ipn-numbers > li {
	position: relative;
	padding: 18px 20px 18px 64px;
	border: 1px solid var(--ipn-line);
	border-radius: 14px;
	background: #fff;
	counter-increment: ipn;
}

.ipn-numbers > li::before {
	content: counter(ipn, decimal-leading-zero);
	position: absolute;
	top: 16px;
	left: 18px;
	color: var(--ipn-teal);
	font: 800 1.25rem/1 var(--ipn-head);
}

.ipn-numbers h3 { margin-bottom: 4px; font-size: 1.0625rem; }

.ipn-numbers p { margin: 0; font-size: .9688rem; }

.ipn-flag-list {
	display: grid;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ipn-flag-list li {
	display: flex;
	gap: 10px;
	padding: 12px 14px;
	border-radius: 10px;
	background: var(--ipn-warning-soft);
}

.ipn-flag-list .ipn-icon { width: 20px; height: 20px; margin-top: 2px; color: var(--ipn-warning); }

/* 29. Forms ---------------------------------------------------------------- */
.ipn-form { display: grid; gap: 16px; }

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

@media (min-width: 640px) {
	.ipn-form__row { grid-template-columns: 1fr 1fr; }
}

.ipn-field { display: grid; gap: 6px; }

.ipn-field label { color: var(--ipn-ink); font: 600 .9375rem/1.4 var(--ipn-body); }

.ipn-field input[type="text"],
.ipn-field input[type="email"],
.ipn-field input[type="search"],
.ipn-field select,
.ipn-field textarea,
.ipn-searchform input[type="search"],
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form textarea {
	width: 100%;
	min-height: 52px;
	padding: 12px 14px;
	border: 1.5px solid var(--ipn-line-strong);
	border-radius: var(--ipn-r);
	background: #fff;
	color: var(--ipn-ink);
	font: 400 1rem/1.4 var(--ipn-body);
	transition: border-color .2s, box-shadow .2s;
}

.ipn-field textarea,
.comment-form textarea { min-height: 120px; resize: vertical; }

.ipn-field select {
	padding-right: 40px;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%230f2230' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 12px center / 18px no-repeat;
	appearance: none;
	-webkit-appearance: none;
}

.ipn-field input:focus,
.ipn-field select:focus,
.ipn-field textarea:focus,
.ipn-searchform input:focus,
.comment-form input:focus,
.comment-form textarea:focus {
	border-color: var(--ipn-teal);
	box-shadow: 0 0 0 4px rgba(11, 106, 110, .16);
	outline: none;
}

.ipn-field--check { display: flex; align-items: flex-start; gap: 12px; }

.ipn-field--check input { flex: none; width: 22px; height: 22px; margin-top: 2px; accent-color: var(--ipn-teal); }

.ipn-field--check label { font-weight: 400; }

.ipn-field__help { margin: 0; color: var(--ipn-muted); font-size: .875rem; }

.ipn-optional { color: var(--ipn-muted); font-weight: 400; }

.ipn-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.ipn-formcard {
	padding: clamp(22px, 3vw, 32px);
	border: 1px solid var(--ipn-line);
	border-radius: 18px;
	background: #fff;
	box-shadow: var(--ipn-shadow-2);
}

.ipn-formcard > h2,
.ipn-formcard > h3 { font-size: 1.375rem; }

.ipn-searchform { display: flex; gap: 8px; }

.ipn-searchform label { flex: 1; }

/* 30. Blog article --------------------------------------------------------- */
.ipn-article__head { max-width: 860px; }

.ipn-article__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 18px;
	margin-top: 18px;
	color: var(--ipn-muted);
	font-size: .9375rem;
}

.ipn-article__meta img { border-radius: 50%; }

.ipn-article__author { display: inline-flex; align-items: center; gap: 10px; color: var(--ipn-ink); font-weight: 600; }

.ipn-article__hero { margin: 0 0 clamp(28px, 4vw, 44px); }

.ipn-article__hero img { width: 100%; border-radius: 18px; }

.ipn-authorbox {
	display: flex;
	gap: 18px;
	margin-top: 40px;
	padding: 22px;
	border-radius: 16px;
	background: var(--ipn-snow);
}

.ipn-authorbox img { flex: none; border-radius: 50%; }

.ipn-authorbox h2 { margin-bottom: 6px; font-size: 1.125rem; }

.ipn-authorbox p { font-size: .9688rem; }

.ipn-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 28px 0 0; padding: 0; list-style: none; }

.ipn-pagination ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 6px;
	margin: 44px 0 0;
	padding: 0;
	list-style: none;
}

.ipn-pagination a,
.ipn-pagination span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-width: 44px;
	min-height: 44px;
	padding: 8px 14px;
	border: 1px solid var(--ipn-line);
	border-radius: var(--ipn-r);
	color: var(--ipn-ink);
	font-weight: 600;
	text-decoration: none;
}

.ipn-pagination .current { background: var(--ipn-ink); border-color: var(--ipn-ink); color: #fff; }

.ipn-pagination a:hover { border-color: var(--ipn-teal); color: var(--ipn-teal-dark); }

.ipn-pagination .ipn-icon { width: 18px; height: 18px; }

.ipn-widget { padding: 20px; border: 1px solid var(--ipn-line); border-radius: 14px; background: #fff; }

.ipn-widget__title { font-size: 1.0625rem; }

.ipn-widget ul { margin: 0; padding-left: 1.1em; }

/* Comments */
.ipn-comments { margin-top: 48px; padding-top: 32px; border-top: 1px solid var(--ipn-line); }

.ipn-comments ol { list-style: none; margin: 0; padding: 0; }

.ipn-comments .children { padding-left: clamp(16px, 4vw, 40px); }

.ipn-comments .comment-body {
	margin-bottom: 16px;
	padding: 18px;
	border: 1px solid var(--ipn-line);
	border-radius: 14px;
}

.ipn-comments .comment-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin-bottom: 8px; font-size: .875rem; }

.ipn-comments .avatar { border-radius: 50%; }

.ipn-comments .reply a { font-size: .875rem; font-weight: 600; }

.comment-form { display: grid; gap: 14px; }

.comment-form label { display: block; margin-bottom: 4px; color: var(--ipn-ink); font-weight: 600; }

.comment-form .form-submit input {
	min-height: 48px;
	padding: 12px 22px;
	border: 0;
	border-radius: 8px;
	background: var(--ipn-teal);
	color: #fff;
	font: 700 1rem/1 var(--ipn-head);
	cursor: pointer;
}

/* 31. Footer ---------------------------------------------------------------- */
.ipn-footer {
	padding-bottom: calc(92px + env(safe-area-inset-bottom));
	background: var(--ipn-snow);
	color: var(--ipn-text);
}

@media (min-width: 768px) {
	.ipn-footer { padding-bottom: 104px; }
}

.ipn-knit { height: 14px; background: var(--ipn-knit) repeat-x left center / 12px 12px, var(--ipn-teal-soft); }

.ipn-footer__support {
	display: grid;
	gap: 14px;
	margin: 0;
	padding: 40px 0 32px;
	list-style: none;
	border-bottom: 1px solid var(--ipn-line);
}

@media (min-width: 820px) {
	.ipn-footer__support { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.ipn-supportcard {
	display: flex;
	gap: 14px;
	padding: 18px;
	border: 1px solid var(--ipn-line);
	border-radius: 14px;
	background: #fff;
}

.ipn-supportcard__icon {
	display: grid;
	flex: none;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--ipn-teal-soft);
	color: var(--ipn-teal-dark);
}

.ipn-supportcard__icon .ipn-icon { width: 22px; height: 22px; }

.ipn-supportcard__title { margin: 0 0 2px; color: var(--ipn-ink); font: 700 1.0625rem/1.3 var(--ipn-head); }

.ipn-supportcard p:not(.ipn-supportcard__title) { margin: 0 0 6px; font-size: .9375rem; }

.ipn-supportcard a { font-weight: 600; overflow-wrap: anywhere; }

.ipn-footer__grid {
	display: grid;
	gap: 28px;
	padding: 40px 0 32px;
}

@media (min-width: 700px) {
	.ipn-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ipn-footer__brand { grid-column: 1 / -1; }
}

@media (min-width: 1100px) {
	.ipn-footer__grid { grid-template-columns: 1.5fr repeat(4, minmax(0, 1fr)); gap: 32px; }
	.ipn-footer__brand { grid-column: auto; }
}

.ipn-footer__brand p { max-width: 42ch; font-size: .9688rem; }

.ipn-footer__logo { display: inline-block; margin-bottom: 14px; }

.ipn-footer__logo .ipn-logo__img { width: 190px; }

.ipn-footer__motto { display: flex; align-items: center; gap: 8px; color: var(--ipn-ink); font-weight: 600; }

.ipn-footer__h {
	margin: 0 0 10px;
	color: var(--ipn-ink);
	font: 700 .8125rem/1.3 var(--ipn-body);
	letter-spacing: .12em;
	text-transform: uppercase;
}

.ipn-footer__list { display: grid; margin: 0; padding: 0; list-style: none; }

.ipn-footer__list a {
	display: inline-block;
	padding: 8px 0;
	color: var(--ipn-text);
	font-size: .9375rem;
	text-decoration: none;
}

.ipn-footer__list a:hover { color: var(--ipn-teal-dark); text-decoration: underline; }

.ipn-footer__legal {
	padding-top: 20px;
	border-top: 1px solid var(--ipn-line);
	color: var(--ipn-muted);
	font-size: .875rem;
}

.ipn-footer__legal p { margin: 0 0 6px; }

.ipn-footer__inline {
	display: flex;
	flex-wrap: wrap;
	gap: 0 18px;
	margin: 0 0 12px;
	padding: 0;
	list-style: none;
}

.ipn-footer__inline a { display: inline-block; padding: 8px 0; color: var(--ipn-text); text-decoration: none; }

.ipn-footer__inline a:hover { color: var(--ipn-teal-dark); text-decoration: underline; }

.ipn-footer__rights { font-size: .8125rem; }

/* 32. Floating WhatsApp button --------------------------------------------- */
.ipn-wa {
	position: fixed;
	right: max(16px, env(safe-area-inset-right));
	bottom: calc(16px + env(safe-area-inset-bottom));
	z-index: 60;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 56px;
	height: 56px;
	border-radius: 999px;
	background: var(--ipn-wa);
	box-shadow: 0 0 0 1px rgba(4, 33, 15, .1), 0 12px 26px -10px rgba(4, 33, 15, .55);
	color: var(--ipn-wa-ink);
	text-decoration: none;
	transition: transform .2s var(--ipn-ease), box-shadow .2s, opacity .2s, visibility .2s;
}

.ipn-wa:hover {
	color: var(--ipn-wa-ink);
	transform: translateY(-2px);
	box-shadow: 0 0 0 1px rgba(4, 33, 15, .12), 0 18px 32px -12px rgba(4, 33, 15, .6);
}

.ipn-wa:focus-visible { outline: 3px solid var(--ipn-ink); outline-offset: 3px; border-radius: 999px; }

.ipn-wa__icon { width: 28px; height: 28px; }

.ipn-wa__label {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
}

@media (min-width: 768px) {
	.ipn-wa {
		right: 24px;
		bottom: 24px;
		width: auto;
		height: auto;
		min-height: 54px;
		padding: 12px 22px 12px 16px;
	}
	.ipn-wa__icon { width: 26px; height: 26px; }
	.ipn-wa__label {
		position: static;
		width: auto;
		height: auto;
		overflow: visible;
		clip: auto;
		font: 700 1rem/1.1 var(--ipn-head);
	}
}

body.ipn-menu-open .ipn-wa,
body.ipn-modal-open .ipn-wa {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}

/* Common cookie banners sit at the bottom: lift the button above them. */
body.ipn-has-banner .ipn-wa { bottom: calc(var(--ipn-banner-h, 96px) + 16px + env(safe-area-inset-bottom)); }

/* 33. Motion ---------------------------------------------------------------- */
@keyframes ipn-fade {
	from { opacity: 0; transform: translateY(6px); }
	to { opacity: 1; transform: none; }
}

@keyframes ipn-slide-in {
	from { opacity: 0; transform: translateX(28px); }
	to { opacity: 1; transform: none; }
}

.ipn-reveal-ready [data-reveal] {
	opacity: 0;
	transform: translateY(14px);
	transition: opacity .35s var(--ipn-ease), transform .35s var(--ipn-ease);
}

.ipn-reveal-ready [data-reveal].is-visible { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*,
	*::before,
	*::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
	}
	.ipn-reveal-ready [data-reveal] { opacity: 1; transform: none; }
	.ipn-postcard { transform: none; }
}

/* 34. Print ------------------------------------------------------------------ */
@media print {
	.ipn-header,
	.ipn-drawer,
	.ipn-wa,
	.ipn-footer__support,
	.ipn-legal__aside { display: none !important; }
	body { color: #000; }
	a { color: #000; }
}

/* 35. Page-end CTA wrapper (no empty spacer elements) ---------------------- */
.ipn-endcta { padding-bottom: var(--ipn-section); }

.ipn-endcta > .ipn-ctaband:first-child { margin-top: clamp(40px, 6vw, 64px); }

/* 36. Inner-page components ---------------------------------------------- */
[hidden] { display: none !important; }

.ipn-title--sm { font-size: clamp(1.5rem, 1.2rem + 1vw, 1.875rem); }

.ipn-gap-top { margin-top: 12px; }

.ipn-split--top { align-items: start; }

.ipn-split--tight { gap: clamp(24px, 4vw, 40px); margin-top: clamp(40px, 6vw, 56px); }

@media (min-width: 960px) {
	.ipn-split--story { grid-template-columns: .8fr 1.2fr; align-items: start; }
	.ipn-split--form { grid-template-columns: 1.05fr .95fr; align-items: start; }
	.ipn-guide__main .ipn-split--tight { grid-template-columns: .9fr 1.1fr; }
}

.ipn-quote blockquote { margin: 0; }

/* Promise / non-promise */
.ipn-promise { display: grid; gap: 16px; }

@media (min-width: 820px) {
	.ipn-promise { grid-template-columns: 1fr 1fr; }
}

.ipn-promise__col {
	padding: clamp(20px, 3vw, 28px);
	border: 1px solid var(--ipn-line);
	border-radius: var(--ipn-r-lg);
	background: #fff;
}

.ipn-promise__col h3 { display: flex; align-items: center; gap: 10px; font-size: 1.25rem; }

.ipn-promise__col h3 .ipn-icon { width: 32px; height: 32px; padding: 6px; border-radius: 50%; }

.ipn-promise__col--yes { border-top: 4px solid var(--ipn-success); }

.ipn-promise__col--yes h3 .ipn-icon { background: var(--ipn-success-soft); color: var(--ipn-success); }

.ipn-promise__col--no { border-top: 4px solid var(--ipn-amber); background: #fffcf6; }

.ipn-promise__col--no h3 .ipn-icon { background: var(--ipn-amber-soft); color: var(--ipn-amber-ink); }

.ipn-promise__col--no .ipn-checklist .ipn-icon { color: var(--ipn-amber-ink); }

/* Plan helper quiz (subscription hero) */
.ipn-quiz {
	display: grid;
	gap: 14px;
	padding: clamp(20px, 3vw, 28px);
	border: 1px solid var(--ipn-line);
	border-radius: 18px;
	background: #fff;
	box-shadow: var(--ipn-shadow-3);
}

.ipn-quiz__title { display: flex; align-items: center; gap: 10px; margin: 0; color: var(--ipn-ink); font: 800 1.25rem/1.25 var(--ipn-head); }

.ipn-quiz__title .ipn-icon { color: var(--ipn-teal); }

.ipn-quiz fieldset { display: grid; gap: 8px; margin: 0; padding: 0; border: 0; }

.ipn-quiz legend { margin-bottom: 8px; padding: 0; color: var(--ipn-ink); font-weight: 600; }

.ipn-quiz__row { display: flex; flex-wrap: wrap; gap: 8px; }

.ipn-quiz__opt {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 46px;
	padding: 10px 14px;
	border: 1.5px solid var(--ipn-line);
	border-radius: 10px;
	cursor: pointer;
	font-size: .9688rem;
	transition: border-color .2s, background-color .2s;
}

.ipn-quiz__opt input { position: absolute; inset: 0; margin: 0; opacity: 0; cursor: pointer; }

.ipn-quiz__opt:focus-within { outline: 3px solid var(--ipn-teal); outline-offset: 2px; }

.ipn-quiz__opt.is-checked,
.ipn-quiz__opt:has(input:checked) { border-color: var(--ipn-teal); background: var(--ipn-teal-soft); }

.ipn-quiz__opt--inline { flex: 1 1 140px; }

.ipn-quiz__result {
	padding: 16px;
	border-radius: 12px;
	background: var(--ipn-snow);
	animation: ipn-fade .3s var(--ipn-ease);
}

.ipn-quiz__label { margin: 0; color: var(--ipn-muted); font: 700 .75rem/1.2 var(--ipn-body); letter-spacing: .1em; text-transform: uppercase; }

.ipn-quiz__plan { margin: 4px 0; color: var(--ipn-ink); font: 800 1.5rem/1.15 var(--ipn-head); }

.ipn-quiz__result .ipn-btn { margin-top: 10px; }

.ipn-table-note { margin-top: 14px; }

/* FAQ search */
.ipn-faqsearch {
	position: relative;
	display: flex;
	align-items: center;
	max-width: 620px;
	margin: 22px auto 0;
}

.ipn-faqsearch > .ipn-icon { position: absolute; left: 16px; width: 22px; height: 22px; color: var(--ipn-muted); pointer-events: none; }

.ipn-faqsearch input {
	width: 100%;
	min-height: 58px;
	padding: 14px 92px 14px 50px;
	border: 1.5px solid var(--ipn-line-strong);
	border-radius: 14px;
	background: #fff;
	box-shadow: var(--ipn-shadow-2);
	color: var(--ipn-ink);
	font: 400 1.0625rem/1.3 var(--ipn-body);
}

.ipn-faqsearch input:focus { border-color: var(--ipn-teal); box-shadow: 0 0 0 4px rgba(11, 106, 110, .16); outline: none; }

.ipn-faqsearch__count { position: absolute; right: 16px; color: var(--ipn-muted); font-size: .875rem; }

/* Troubleshooting list */
.ipn-problem__icon {
	display: grid;
	flex: none;
	place-items: center;
	width: 42px;
	height: 42px;
	border-radius: 12px;
	background: var(--ipn-mist);
	color: var(--ipn-teal-dark);
}

.ipn-problem__icon .ipn-icon { width: 22px; height: 22px; }

.ipn-faq__q { flex: 1; }

.ipn-faq__q small {
	display: block;
	margin-top: 2px;
	color: var(--ipn-muted);
	font: 400 .875rem/1.4 var(--ipn-body);
}

.ipn-problem .ipn-faq__a { padding-left: 58px; }

@media (max-width: 599px) {
	.ipn-problem .ipn-faq__a { padding-left: 2px; }
}

/* Device guides */
.ipn-devguide {
	margin-bottom: 36px;
	padding-bottom: 36px;
	border-bottom: 1px solid var(--ipn-line);
	scroll-margin-top: calc(var(--ipn-header-h) + 20px);
}

.ipn-devguide:last-child { border-bottom: 0; }

.ipn-devguide__head { display: flex; align-items: flex-start; gap: 16px; margin-bottom: 18px; }

.ipn-devguide__head h2 { margin-bottom: 4px; font-size: clamp(1.375rem, 1.15rem + .8vw, 1.75rem); }

.ipn-devguide__head p { margin: 0; }

.ipn-devguide .ipn-devcard__icon { flex: none; margin: 0; }

/* Definition lists */
.ipn-deflist {
	display: grid;
	grid-template-columns: minmax(120px, 34%) 1fr;
	margin: 0 0 1.2em;
	border-top: 1px solid var(--ipn-line);
}

.ipn-deflist dt,
.ipn-deflist dd { margin: 0; padding: 12px 0; border-bottom: 1px solid var(--ipn-line); }

.ipn-deflist dt { padding-right: 16px; color: var(--ipn-ink); font-weight: 600; }

@media (max-width: 559px) {
	.ipn-deflist { grid-template-columns: 1fr; }
	.ipn-deflist dt { padding-bottom: 0; border-bottom: 0; }
}

.ipn-angreskjema {
	padding: clamp(18px, 3vw, 28px);
	border: 1.5px dashed var(--ipn-line-strong);
	border-radius: 14px;
	background: var(--ipn-paper);
}

.ipn-angreskjema__title { margin: 0 0 6px; color: var(--ipn-ink); font: 800 1.25rem/1.2 var(--ipn-head); }

.ipn-deflist--form dd { color: var(--ipn-ink); }

/* Flow diagram (IPTV i Norge) */
.ipn-flow {
	display: grid;
	gap: 10px;
	margin: 1.4em 0;
	padding: 0;
	list-style: none;
}

.ipn-flow li {
	position: relative;
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0;
	padding: 14px 16px;
	border: 1px solid var(--ipn-line);
	border-radius: 12px;
	background: #fff;
	font-size: .9688rem;
	line-height: 1.45;
}

.ipn-flow .ipn-icon {
	width: 40px;
	height: 40px;
	padding: 8px;
	border-radius: 10px;
	background: var(--ipn-teal-soft);
	color: var(--ipn-teal-dark);
}

@media (min-width: 760px) {
	.ipn-flow { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
	.ipn-flow li { flex-direction: column; align-items: flex-start; }
	.ipn-flow li:not(:last-child)::after {
		content: "";
		position: absolute;
		top: 50%;
		right: -18px;
		width: 12px;
		height: 12px;
		border-top: 2px solid var(--ipn-teal);
		border-right: 2px solid var(--ipn-teal);
		transform: translateY(-50%) rotate(45deg);
	}
}

.ipn-speedblock--flush { margin-top: 0; }

/* Sports year */
.ipn-season {
	display: grid;
	gap: 14px;
	margin: 0 0 18px;
	padding: 0;
	list-style: none;
}

@media (min-width: 760px) {
	.ipn-season { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.ipn-season li {
	padding: 20px;
	border-top: 4px solid var(--ipn-teal);
	border-radius: 14px;
	background: #fff;
}

.ipn-season li:first-child { border-top-color: #6aa8c9; }

.ipn-season li:nth-child(2) { border-top-color: var(--ipn-success); }

.ipn-season li:nth-child(3) { border-top-color: var(--ipn-amber); }

.ipn-season__when { margin: 0 0 6px; color: var(--ipn-muted); font: 700 .8125rem/1.2 var(--ipn-body); letter-spacing: .06em; text-transform: uppercase; }

.ipn-season h3 { margin-bottom: 6px; font-size: 1.125rem; }

.ipn-season p:last-child { font-size: .9688rem; }

/* Hero form card + author card */
.ipn-formcard--hero { box-shadow: var(--ipn-shadow-3); }

.ipn-formcard--hero h2 { margin-bottom: 4px; }

.ipn-authorcard {
	display: grid;
	justify-items: center;
	gap: 10px;
	padding: 28px;
	border: 1px solid var(--ipn-line);
	border-radius: 20px;
	background: #fff;
	text-align: center;
}

.ipn-authorcard img { border-radius: 50%; box-shadow: 0 0 0 6px var(--ipn-teal-soft); }

.ipn-phero--split .ipn-phero__media .ipn-hours,
.ipn-phero--split .ipn-phero__media .ipn-quiz,
.ipn-phero--split .ipn-phero__media .ipn-formcard { width: 100%; max-width: 520px; margin-inline: auto; }

.ipn-phero__media .ipn-phone { width: min(70%, 280px); }

.ipn-guide__aside .ipn-hours { box-shadow: var(--ipn-shadow-2); }
