/* Swop Packages — tokens, components, skins. All scoped to .swpk. */
.swpk {
	--swpk-accent: #e6007e;
	--swpk-on-accent: #fff;
	--swpk-radius: 16px;
	--swpk-surface: #fff;
	--swpk-surface-2: #f6f6f8;
	--swpk-text: #16161d;
	--swpk-muted: #5f6070;
	--swpk-border: rgba(20, 20, 40, .1);
	--swpk-yes: #16a34a;
	--swpk-no: #b91c1c;
	--swpk-shadow: 0 1px 2px rgba(16, 16, 32, .06), 0 8px 24px rgba(16, 16, 32, .06);
	--swpk-shadow-lift: 0 2px 4px rgba(16, 16, 32, .08), 0 18px 40px rgba(16, 16, 32, .14);
	--swpk-gap: clamp(14px, 2.2vw, 24px);
	--swpk-speed: .22s;

	/* Design variables: styles set them, the design settings override them. */
	--swpk-shadow-color: rgb(16 16 32);
	--swpk-btn-bg: var(--swpk-accent);
	--swpk-btn-color: var(--swpk-on-accent);
	--swpk-btn-bg-hover: color-mix(in srgb, var(--swpk-btn-bg) 86%, #000);
	--swpk-btn-color-hover: var(--swpk-btn-color);
	--swpk-btn-border-color: transparent;
	--swpk-btn-border-width: 0px;
	--swpk-btn-radius: calc(var(--swpk-radius) * .75);
	--swpk-btn-height: 48px;
	--swpk-btn-px: 20px;
	--swpk-btn-fs: 1em;
	--swpk-btn-weight: 700;
	--swpk-btn-transform: none;
	--swpk-btn-spacing: .01em;
	--swpk-btn-shadow: 0 6px 18px color-mix(in srgb, var(--swpk-btn-bg) 32%, transparent);
	--swpk-btn-shadow-hover: 0 10px 24px color-mix(in srgb, var(--swpk-btn-bg) 40%, transparent);
	--swpk-btn-hover-transform: translateY(-1px);
	--swpk-card-border-color: var(--swpk-border);
	--swpk-card-border-width: 1px;
	--swpk-card-radius: var(--swpk-radius);
	--swpk-card-shadow: var(--swpk-shadow);
	--swpk-card-shadow-hover: var(--swpk-shadow-lift);
	--swpk-card-hover-transform: none;
	--swpk-card-pad: 22px;
	--swpk-rec-color: var(--swpk-accent);
	--swpk-badge-bg: var(--swpk-accent);
	--swpk-badge-color: var(--swpk-on-accent);
	--swpk-title-size: 1.35em;
	--swpk-title-weight: 700;
	--swpk-title-transform: none;
	--swpk-price-size: 1.7em;
	--swpk-price-color: inherit;
	--swpk-switch-track: var(--swpk-surface-2);
	--swpk-switch-active-bg: var(--swpk-accent);
	--swpk-switch-active-color: var(--swpk-on-accent);
	color: var(--swpk-text);
	box-sizing: border-box;
}
.swpk *, .swpk *::before, .swpk *::after { box-sizing: inherit; }
/* Ook het blok zélf, niet alleen wat erin zit: een venster hangt aan body en heeft dus geen
   .swpk-ouder. Zonder die eerste selector won `display: grid` van het attribuut hidden en bleef
   een gesloten venster onzichtbaar over de pagina liggen, waar het alle kliks opving. */
.swpk[hidden], .swpk [hidden] { display: none !important; }
.swpk .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
@media (prefers-reduced-motion: reduce) { .swpk { --swpk-speed: 0s; --swpk-card-hover-transform: none; --swpk-btn-hover-transform: none; } }
.swpk.swpk-no-motion { --swpk-speed: 0s; --swpk-card-hover-transform: none; --swpk-btn-hover-transform: none; }

/* Dark */
.swpk[data-swpk-dark="on"], .swpk-skin-luxe {
	--swpk-surface: #14141b;
	--swpk-surface-2: #1d1d27;
	--swpk-text: #f3f3f6;
	--swpk-muted: #a4a4b4;
	--swpk-border: rgba(255, 255, 255, .1);
	--swpk-yes: #4ade80;
	--swpk-no: #f87171;
	--swpk-shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 10px 30px rgba(0, 0, 0, .35);
	--swpk-shadow-lift: 0 2px 4px rgba(0, 0, 0, .5), 0 20px 48px rgba(0, 0, 0, .5);
}
@media (prefers-color-scheme: dark) {
	.swpk[data-swpk-dark="auto"] {
		--swpk-surface: #14141b;
		--swpk-surface-2: #1d1d27;
		--swpk-text: #f3f3f6;
		--swpk-muted: #a4a4b4;
		--swpk-border: rgba(255, 255, 255, .1);
		--swpk-yes: #4ade80;
		--swpk-no: #f87171;
	}
}

/* Option switcher */
.swpk-options { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 28px; margin: 0 0 var(--swpk-gap); }
.swpk-options__axis { display: flex; flex-direction: column; align-items: center; gap: 8px; }
.swpk-options__label { font-size: .85em; font-weight: 600; color: var(--swpk-muted); text-transform: uppercase; letter-spacing: .06em; }
.swpk-options__track { display: inline-flex; flex-wrap: wrap; justify-content: center; gap: 4px; padding: 4px; border-radius: 999px; background: var(--swpk-switch-track); border: 1px solid var(--swpk-border); }
.swpk .swpk-options__option {
	appearance: none; border: 0; margin: 0; cursor: pointer;
	padding: 10px 18px; border-radius: 999px; background: transparent; color: var(--swpk-text);
	font: inherit; font-weight: 600; line-height: 1.2;
	transition: background var(--swpk-speed), color var(--swpk-speed), box-shadow var(--swpk-speed);
}
.swpk .swpk-options__option[aria-checked="true"] { background: var(--swpk-switch-active-bg); color: var(--swpk-switch-active-color); box-shadow: 0 4px 14px color-mix(in srgb, var(--swpk-switch-active-bg) 35%, transparent); }
.swpk .swpk-options__option:focus-visible { outline: 3px solid color-mix(in srgb, var(--swpk-accent) 55%, transparent); outline-offset: 2px; }
.swpk-options.is-attention .swpk-options__track, .swpk-picker.is-attention { animation: swpk-pulse 1.4s ease; }
@keyframes swpk-pulse { 0%, 100% { box-shadow: 0 0 0 0 transparent; } 30% { box-shadow: 0 0 0 6px color-mix(in srgb, var(--swpk-accent) 30%, transparent); } }

/* Cards */
.swpk-cards { display: grid; grid-template-columns: repeat(var(--swpk-cols, 3), minmax(0, 1fr)); gap: var(--swpk-gap); align-items: stretch; padding-top: 10px; }
@media (max-width: 1024px) { .swpk-cards { grid-template-columns: repeat(min(var(--swpk-cols, 3), 2), minmax(0, 1fr)); } }

.swpk-card {
	position: relative; display: flex; flex-direction: column; min-width: 0;
	background: var(--swpk-surface); color: var(--swpk-text);
	border: var(--swpk-card-border-width) solid var(--swpk-card-border-color); border-radius: var(--swpk-card-radius);
	box-shadow: var(--swpk-card-shadow); overflow: visible;
	transition: transform var(--swpk-speed), box-shadow var(--swpk-speed), border-color var(--swpk-speed);
}
.swpk-card__media { border-radius: calc(var(--swpk-card-radius) - var(--swpk-card-border-width)) calc(var(--swpk-card-radius) - var(--swpk-card-border-width)) 0 0; }
.swpk-card__body { border-radius: inherit; }
.swpk-card:hover { box-shadow: var(--swpk-card-shadow-hover); transform: var(--swpk-card-hover-transform); }

/* Recommended package: ring (default), raise, glow or bar */
.swpk-card.is-recommended { border-color: var(--swpk-rec-color); box-shadow: 0 0 0 2px var(--swpk-rec-color), var(--swpk-card-shadow-hover); }
@media (min-width: 1025px) {
	.swpk-rec-raise .swpk-card.is-recommended, .swpk:not([class*="swpk-rec-"]) .swpk-card.is-recommended { transform: translateY(-8px); }
}
.swpk-rec-ring .swpk-card.is-recommended { transform: none; }
.swpk-rec-glow .swpk-card.is-recommended { transform: none; box-shadow: 0 0 0 2px var(--swpk-rec-color), 0 0 40px color-mix(in srgb, var(--swpk-rec-color) 45%, transparent); }
.swpk-rec-bar .swpk-card.is-recommended { transform: none; border-color: var(--swpk-card-border-color); box-shadow: var(--swpk-card-shadow); }
.swpk-rec-bar .swpk-card.is-recommended::before { content: ""; position: absolute; inset: 0 0 auto; height: 5px; background: var(--swpk-rec-color); z-index: 1; border-radius: var(--swpk-card-radius) var(--swpk-card-radius) 0 0; }

.swpk-badge {
	position: absolute; top: 14px; right: 14px; z-index: 2;
	padding: 6px 12px; border-radius: 999px; background: var(--swpk-badge-bg); color: var(--swpk-badge-color);
	font-size: .78em; font-weight: 700; letter-spacing: .02em; line-height: 1;
}
.swpk-badge--inline { position: static; display: inline-block; margin-bottom: 10px; }

.swpk-card__media { aspect-ratio: 16 / 10; overflow: hidden; background: var(--swpk-surface-2); }
.swpk-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; margin: 0; }
.swpk-card__body { display: flex; flex-direction: column; gap: 12px; flex: 1; padding: var(--swpk-card-pad) var(--swpk-card-pad) 14px; }
.swpk .swpk-card__title { margin: 0; font-size: var(--swpk-title-size); font-weight: var(--swpk-title-weight); text-transform: var(--swpk-title-transform); line-height: 1.2; color: inherit; }
.swpk .swpk-card__title a { color: inherit; text-decoration: none; }
.swpk-card__tagline { margin: 0; color: var(--swpk-muted); }
.swpk-card__more { font-size: .9em; font-weight: 600; color: var(--swpk-accent); text-decoration: none; }
.swpk-card__footer { position: relative; display: flex; flex-direction: column; gap: 10px; margin: 0 var(--swpk-card-pad); padding: 14px 0 calc(var(--swpk-card-pad) + 2px); border-top: 1px solid var(--swpk-border); }
.swpk-card__footer:empty { display: none; }

.swpk-always { margin: 0; padding: 10px 12px; border-radius: calc(var(--swpk-card-radius) / 2); background: var(--swpk-surface-2); font-size: .9em; color: var(--swpk-muted); }
.swpk-summary { margin: 0; font-size: .9em; color: var(--swpk-muted); min-height: 1.3em; }

/* Lists */
.swpk .swpk-list { list-style: none; margin: 0; padding: 0; }
.swpk .swpk-list__item { position: relative; margin: 0; padding: 6px 0 6px 28px; line-height: 1.4; }
.swpk .swpk-list__item::before { content: ""; position: absolute; left: 2px; top: .62em; width: 16px; height: 16px; border-radius: 50%; background: color-mix(in srgb, var(--swpk-yes) 16%, transparent); }
.swpk .swpk-list__item::after { content: ""; position: absolute; left: 7px; top: calc(.62em + 4px); width: 6px; height: 4px; border-left: 2px solid var(--swpk-yes); border-bottom: 2px solid var(--swpk-yes); transform: rotate(-45deg); }
.swpk .swpk-list__item.is-out { color: var(--swpk-muted); }
.swpk .swpk-list__item.is-out::before { background: color-mix(in srgb, var(--swpk-no) 12%, transparent); }
.swpk .swpk-list__item.is-out::after { left: 6px; top: calc(.62em + 7px); width: 8px; height: 0; border: 0; border-top: 2px solid var(--swpk-no); transform: none; }
.swpk .swpk-list__item.is-highlight { font-weight: 700; }
.swpk-qty { font-weight: 700; font-variant-numeric: tabular-nums; }
.swpk-note { display: block; font-size: .85em; color: var(--swpk-muted); }
.swpk-group { margin: 14px 0 4px; font-size: .8em; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--swpk-muted); }

/* Price */
.swpk-price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; }
.swpk-price__amount { font-size: var(--swpk-price-size); font-weight: 800; line-height: 1.1; color: var(--swpk-price-color); font-variant-numeric: tabular-nums; }
.swpk-price__amount .woocommerce-Price-amount { font-weight: inherit; }
.swpk-price--large .swpk-price__amount { font-size: calc(var(--swpk-price-size) * 1.3); }
.swpk-price__pp { color: var(--swpk-muted); font-size: .92em; }
.swpk-price__status { color: var(--swpk-muted); font-weight: 600; }

/* Buttons: layout for every mode; the look only in Swop Design, so themes keep their own buttons */
.swpk-actions { display: flex; flex-direction: column; gap: 8px; }
.swpk .swpk-form { margin: 0; }
.swpk .swpk-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: 100%; margin: 0; text-align: center; text-decoration: none; cursor: pointer; }
.swpk.swpk-mode-swop .swpk-button.swpk-button--primary, .swpk.swpk-mode-swop .swpk-button.swpk-button--request, .swpk.swpk-modal .swpk-button.swpk-button--primary {
	min-height: var(--swpk-btn-height); padding: 10px var(--swpk-btn-px); border-radius: var(--swpk-btn-radius);
	background: var(--swpk-btn-bg); color: var(--swpk-btn-color);
	border: var(--swpk-btn-border-width) solid var(--swpk-btn-border-color);
	box-shadow: var(--swpk-btn-shadow);
	font: inherit; font-size: var(--swpk-btn-fs); font-weight: var(--swpk-btn-weight); line-height: 1.2;
	text-transform: var(--swpk-btn-transform); letter-spacing: var(--swpk-btn-spacing);
	transition: transform var(--swpk-speed), box-shadow var(--swpk-speed), background var(--swpk-speed), color var(--swpk-speed), border-color var(--swpk-speed);
}
.swpk.swpk-mode-swop .swpk-button.swpk-button--primary:hover, .swpk.swpk-mode-swop .swpk-button.swpk-button--request:hover, .swpk.swpk-mode-swop .swpk-button.swpk-button--primary:focus-visible, .swpk.swpk-mode-swop .swpk-button.swpk-button--primary:active {
	background: var(--swpk-btn-bg-hover); color: var(--swpk-btn-color-hover);
	box-shadow: var(--swpk-btn-shadow-hover); transform: var(--swpk-btn-hover-transform);
}
.swpk .swpk-button--primary.is-choose { opacity: .85; }
.swpk .swpk-button--secondary { width: auto; align-self: center; min-height: 0; padding: 4px 0; background: none; border: 0; box-shadow: none; color: inherit; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.swpk .swpk-button:focus-visible { outline: 3px solid color-mix(in srgb, var(--swpk-accent) 55%, transparent); outline-offset: 2px; }
.swpk .swpk-form.is-busy .swpk-button { opacity: .7; cursor: progress; }
.swpk-link { align-self: center; font-weight: 600; font-size: .92em; color: var(--swpk-muted); }
.swpk-state { margin: 0; font-weight: 600; text-align: center; }
.swpk-state::before { content: "\2713\00a0"; color: var(--swpk-yes); }
.swpk-error { margin: 6px 0 0; color: var(--swpk-no); font-weight: 600; }

/* Package page */
.swpk-package { display: block; }
.swpk-package__media img { display: block; width: 100%; height: auto; border-radius: var(--swpk-card-radius); }
.swpk-package__main { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.swpk .swpk-package__title { margin: 0; line-height: 1.15; font-weight: var(--swpk-title-weight); text-transform: var(--swpk-title-transform); }
.swpk-package__tagline { margin: 6px 0 0; font-size: 1.12em; color: var(--swpk-muted); }
.swpk-package__buy { display: flex; flex-direction: column; gap: 14px; padding: var(--swpk-card-pad); border: var(--swpk-card-border-width) solid var(--swpk-card-border-color); border-radius: var(--swpk-card-radius); background: var(--swpk-surface); color: var(--swpk-text); box-shadow: var(--swpk-card-shadow); }
.swpk-package__buy .swpk-form { display: flex; flex-direction: column; gap: 14px; }
.swpk-package__subtitle { margin: 0 0 6px; font-weight: 700; }

.swpk-picker { margin: 0; padding: 0; border: 0; border-radius: var(--swpk-radius); min-width: 0; }
.swpk-picker__legend { padding: 0; margin: 0 0 8px; font-weight: 700; }
.swpk-picker__choices { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; }
.swpk-choice { position: relative; display: block; cursor: pointer; margin: 0; }
.swpk-choice input { position: absolute; opacity: 0; pointer-events: none; }
.swpk-choice__body { display: flex; flex-direction: column; gap: 2px; height: 100%; padding: 14px 16px; border: 2px solid var(--swpk-border); border-radius: calc(var(--swpk-card-radius) * .75); background: var(--swpk-surface); transition: border-color var(--swpk-speed), box-shadow var(--swpk-speed); }
.swpk-choice input:checked + .swpk-choice__body { border-color: var(--swpk-switch-active-bg); box-shadow: 0 0 0 3px color-mix(in srgb, var(--swpk-switch-active-bg) 18%, transparent); }
.swpk-choice input:focus-visible + .swpk-choice__body { outline: 3px solid color-mix(in srgb, var(--swpk-accent) 55%, transparent); outline-offset: 2px; }
.swpk-choice.is-disabled { opacity: .45; cursor: not-allowed; }
.swpk-choice__label { font-weight: 700; }
.swpk-choice__desc, .swpk-choice__field { font-size: .88em; color: var(--swpk-muted); }
.swpk-choice__price { margin-top: 4px; font-weight: 700; }

/* Compare */
.swpk-compare__diff { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 12px; font-weight: 600; cursor: pointer; }
.swpk-compare__scroll { overflow-x: auto; border: var(--swpk-card-border-width) solid var(--swpk-card-border-color); border-radius: var(--swpk-card-radius); background: var(--swpk-surface); box-shadow: var(--swpk-card-shadow); }
.swpk .swpk-compare__table { width: 100%; min-width: 560px; border-collapse: separate; border-spacing: 0; margin: 0; }
.swpk .swpk-compare__table th, .swpk .swpk-compare__table td { padding: 12px 14px; border: 0; border-bottom: 1px solid var(--swpk-border); text-align: center; vertical-align: middle; background: var(--swpk-surface); color: var(--swpk-text); }
.swpk .swpk-compare__table tbody th, .swpk .swpk-compare__table tfoot th { text-align: left; font-weight: 500; position: sticky; left: 0; z-index: 1; min-width: 160px; }
.swpk .swpk-compare__table thead th { position: sticky; top: 0; z-index: 2; vertical-align: bottom; }
.swpk .swpk-compare__table thead th:first-child { left: 0; z-index: 3; }
.swpk-compare__name { display: block; font-weight: var(--swpk-title-weight); text-transform: var(--swpk-title-transform); font-size: 1.05em; margin-bottom: 4px; }
.swpk-compare__table .swpk-price { justify-content: center; }
.swpk-compare__table .swpk-price__amount { font-size: calc(var(--swpk-price-size) * .75); }
.swpk .swpk-compare__group th { background: var(--swpk-surface-2); font-size: .8em; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--swpk-muted); text-align: left; }
.swpk-yes { color: var(--swpk-yes); font-weight: 800; font-size: 1.1em; }
.swpk-no { color: var(--swpk-no); opacity: .7; }
.swpk-compare__text { display: block; font-size: .85em; color: var(--swpk-muted); }
.swpk-compare.is-diff tr[data-swpk-same="1"] { display: none; }
.swpk .swpk-compare__table tfoot td { border-bottom: 0; }

/* Card colour per package */
.swpk .has-color { --swpk-yes: color-mix(in srgb, var(--swpk-on-card) 70%, #15803d); --swpk-no: color-mix(in srgb, var(--swpk-on-card) 55%, #b91c1c); --swpk-surface: var(--swpk-card); --swpk-surface-2: color-mix(in srgb, var(--swpk-on-card) 8%, var(--swpk-card)); --swpk-text: var(--swpk-on-card); --swpk-muted: color-mix(in srgb, var(--swpk-on-card) 84%, var(--swpk-card)); --swpk-border: color-mix(in srgb, var(--swpk-on-card) 16%, transparent); --swpk-card-border-color: color-mix(in srgb, var(--swpk-on-card) 16%, transparent); }
.swpk .swpk-compare__table th.has-color { background: var(--swpk-card); color: var(--swpk-on-card); }

/* Style presets: they only set variables, so every design setting can override them */
.swpk-skin-bold { --swpk-card-border-width: 2px; --swpk-title-size: 1.6em; --swpk-title-weight: 900; --swpk-price-color: color-mix(in srgb, var(--swpk-accent) 82%, #000); }
.swpk-skin-bold .has-color { --swpk-price-color: inherit; }
.swpk-skin-bold .swpk-card.is-recommended:not(.has-color) .swpk-card__body { background: linear-gradient(180deg, color-mix(in srgb, var(--swpk-rec-color) 10%, var(--swpk-surface)) 0%, var(--swpk-surface) 45%); }

.swpk-skin-neon {
	--swpk-surface: #16132e; --swpk-surface-2: #221d44; --swpk-text: #f6f3ff; --swpk-muted: #b8b0de;
	--swpk-border: rgba(255, 255, 255, .12); --swpk-yes: #3dffb0; --swpk-no: #ff6b8b; --swpk-shadow-color: rgb(0 0 0);
	--swpk-shadow: 0 0 0 1px rgba(255, 255, 255, .06), 0 12px 32px rgba(0, 0, 0, .45);
	--swpk-shadow-lift: 0 0 0 1px color-mix(in srgb, var(--swpk-accent) 50%, transparent), 0 0 36px color-mix(in srgb, var(--swpk-accent) 35%, transparent);
	--swpk-title-transform: uppercase; --swpk-title-weight: 900;
}
.swpk-skin-neon.swpk-cards, .swpk-skin-neon.swpk-options, .swpk-skin-neon.swpk-compare, .swpk-skin-neon.swpk-package { padding: clamp(14px, 2vw, 24px); border-radius: calc(var(--swpk-radius) + 6px); background: radial-gradient(120% 90% at 10% 0%, #2a1650 0%, #0d0b1e 55%); }
.swpk-skin-neon:not([class*="swpk-rec-"]) .swpk-card.is-recommended { box-shadow: 0 0 0 2px var(--swpk-rec-color), 0 0 40px color-mix(in srgb, var(--swpk-rec-color) 45%, transparent); }
.swpk-skin-neon .swpk-price__amount { text-shadow: 0 0 18px color-mix(in srgb, var(--swpk-accent) 55%, transparent); }
.swpk-skin-neon .has-color .swpk-price__amount { text-shadow: none; }

.swpk-skin-pastel { --swpk-surface: #fff; --swpk-surface-2: color-mix(in srgb, var(--swpk-accent) 8%, #fff); --swpk-border: color-mix(in srgb, var(--swpk-accent) 18%, transparent); --swpk-shadow: 0 10px 30px color-mix(in srgb, var(--swpk-accent) 10%, transparent); --swpk-badge-bg: color-mix(in srgb, var(--swpk-accent) 16%, #fff); --swpk-badge-color: color-mix(in srgb, var(--swpk-accent) 70%, #000); }
.swpk-skin-pastel .swpk-card:not(.has-color) { background: linear-gradient(180deg, color-mix(in srgb, var(--swpk-accent) 6%, var(--swpk-surface)), var(--swpk-surface) 40%); }

.swpk-skin-glass { --swpk-surface: rgba(255, 255, 255, .55); --swpk-surface-2: rgba(255, 255, 255, .4); --swpk-border: rgba(255, 255, 255, .7); --swpk-shadow: 0 10px 30px rgba(15, 23, 42, .12); }
.swpk-skin-glass .swpk-card, .swpk-skin-glass .swpk-package__buy, .swpk-skin-glass .swpk-options__track, .swpk-skin-glass .swpk-compare__scroll { -webkit-backdrop-filter: blur(16px) saturate(1.4); backdrop-filter: blur(16px) saturate(1.4); }

.swpk-skin-elegant { --swpk-surface: #fdfbf7; --swpk-surface-2: #f3ede3; --swpk-border: rgba(80, 60, 30, .18); --swpk-shadow: none; --swpk-shadow-lift: 0 12px 30px rgba(80, 60, 30, .12); --swpk-title-size: 1.6em; --swpk-title-weight: 600; }
.swpk-skin-elegant .swpk-card__title, .swpk-skin-elegant .swpk-package__title, .swpk-skin-elegant .swpk-compare__name, .swpk-skin-elegant .swpk-price__amount { font-family: "Cormorant Garamond", "Playfair Display", Georgia, "Times New Roman", serif; }
.swpk-skin-elegant .swpk-options__label, .swpk-skin-elegant .swpk-group { letter-spacing: .18em; }
.swpk-skin-elegant .swpk-badge { border-radius: 2px; letter-spacing: .12em; text-transform: uppercase; font-size: .7em; }

.swpk-skin-playful { --swpk-card-border-width: 3px; --swpk-card-border-color: color-mix(in srgb, var(--swpk-accent) 30%, transparent); --swpk-card-hover-transform: translateY(-4px) rotate(-.4deg); --swpk-title-weight: 900; --swpk-btn-shadow: 0 5px 0 color-mix(in srgb, var(--swpk-btn-bg) 65%, #000); --swpk-btn-shadow-hover: 0 7px 0 color-mix(in srgb, var(--swpk-btn-bg) 65%, #000); --swpk-btn-hover-transform: translateY(-2px); }
.swpk-skin-playful .swpk-badge { transform: rotate(4deg); box-shadow: 0 4px 0 color-mix(in srgb, var(--swpk-badge-bg) 60%, #000); }

.swpk-skin-corporate { --swpk-shadow: 0 1px 2px rgba(15, 23, 42, .06); --swpk-shadow-lift: 0 6px 20px rgba(15, 23, 42, .1); --swpk-border: #e2e8f0; --swpk-title-size: 1.15em; }
.swpk-skin-corporate:not([class*="swpk-rec-"]) .swpk-card.is-recommended { transform: none; border-color: var(--swpk-card-border-color); box-shadow: var(--swpk-card-shadow); }
.swpk-skin-corporate:not([class*="swpk-rec-"]) .swpk-card.is-recommended::before { content: ""; position: absolute; inset: 0 0 auto; height: 4px; background: var(--swpk-rec-color); border-radius: var(--swpk-card-radius) var(--swpk-card-radius) 0 0; }
.swpk-skin-corporate .swpk-badge { border-radius: 4px; }

.swpk-skin-luxe { --swpk-title-weight: 500; }
.swpk-skin-luxe .swpk-card:not(.has-color), .swpk-skin-luxe .swpk-package__buy:not(.has-color) { background: linear-gradient(180deg, var(--swpk-surface-2), var(--swpk-surface)); }
.swpk-skin-luxe .swpk-price__amount { font-weight: 500; }

.swpk-skin-minimal { --swpk-shadow: none; --swpk-shadow-lift: none; --swpk-btn-shadow: none; --swpk-btn-shadow-hover: none; }
.swpk-skin-minimal:not([class*="swpk-rec-"]) .swpk-card.is-recommended { box-shadow: inset 0 3px 0 var(--swpk-rec-color); transform: none; }

/* Follow the theme / WooCommerce: colours from the page, buttons from the theme */
.swpk-mode-theme, .swpk-mode-woocommerce {
	--swpk-text: currentColor;
	--swpk-muted: color-mix(in srgb, currentColor 65%, transparent);
	--swpk-border: color-mix(in srgb, currentColor 16%, transparent);
	--swpk-surface: transparent;
	--swpk-surface-2: color-mix(in srgb, currentColor 5%, transparent);
	--swpk-shadow: none;
	--swpk-shadow-lift: none;
	color: inherit;
}
.swpk-mode-theme:not([class*="swpk-rec-"]) .swpk-card.is-recommended, .swpk-mode-woocommerce:not([class*="swpk-rec-"]) .swpk-card.is-recommended { transform: none; }
.swpk-mode-theme .swpk-options__option[aria-checked="true"], .swpk-mode-woocommerce .swpk-options__option[aria-checked="true"] { box-shadow: none; }

/* Dialog */
html.swpk-modal-open { overflow: hidden; }
.swpk-modal { position: fixed; inset: 0; z-index: 100000; display: grid; place-items: center; padding: 16px; }
.swpk-modal__backdrop { position: absolute; inset: 0; background: rgba(10, 10, 20, .55); }
.swpk-modal__box {
	position: relative; width: min(560px, 100%); max-height: calc(100vh - 32px); overflow: auto;
	padding: 28px 24px 20px; border-radius: var(--swpk-radius); background: #fff; color: #16161d;
	box-shadow: 0 24px 64px rgba(0, 0, 0, .3);
}
/* Alles hier staat er omdat thema's knoppen naar zich toe trekken: padding maakt hem ovaal,
   een eigen border-radius maakt hem vierkant en een vaste achtergrond maakt hem een witte vlek
   op een donkere kaart. Vandaar de resets en een kleur die het skin volgt. */
.swpk-modal .swpk-modal__close {
	position: absolute; top: 12px; right: 12px;
	box-sizing: border-box; display: grid; place-items: center;
	width: 38px; height: 38px; min-width: 0; min-height: 0; max-width: none;
	margin: 0; padding: 0;
	border: 0; border-radius: 999px;
	background: color-mix(in srgb, currentColor 12%, transparent);
	color: inherit;
	font: 400 21px/1 system-ui, -apple-system, "Segoe UI", sans-serif;
	letter-spacing: 0; text-transform: none; text-shadow: none; box-shadow: none;
	cursor: pointer; transition: background .15s ease;
}
.swpk-modal .swpk-modal__close:hover { background: color-mix(in srgb, currentColor 22%, transparent); }
.swpk-modal .swpk-modal__close:focus-visible { outline: 3px solid color-mix(in srgb, var(--swpk-accent) 60%, transparent); outline-offset: 2px; }
.swpk-modal__title { margin: 0 40px 4px 0; font-size: 1.3em; font-weight: 800; }
.swpk-modal__summary { margin: 0 0 14px; color: #5f6070; }

/* Misc */
.swpk-notices:empty { display: none; }
.swpk-hint { padding: 10px 14px; border: 1px dashed #b91c1c; color: #b91c1c; font-size: 14px; }
.swpk-extras:empty { display: none; }

/* Theme shield. Themes style p, ul, li, h3, a, table inside page content (BeTheme:
   ".the_content_wrapper ul { color }", ".column_column p { color; margin }"). These rules
   come last and carry two classes, so every preset looks the same in every theme.
   Only element styling is neutralised; the plugin's own tokens stay in charge. */
.swpk.swpk :where(p, ul, ol, li, dl, dt, dd, span, small, strong, em, b, i, label, legend, fieldset, h1, h2, h3, h4, h5, h6, table, thead, tbody, tfoot, tr, th, td, blockquote, figure):not([class*="swpk-"]) { color: inherit; }
.swpk .swpk-card, .swpk .swpk-package__buy, .swpk .swpk-compare__scroll { color: var(--swpk-text); }
.swpk .swpk-card__body, .swpk .swpk-card__footer, .swpk .swpk-card__title, .swpk .swpk-package__main, .swpk .swpk-package__head, .swpk .swpk-package__title, .swpk .swpk-package__subtitle, .swpk .swpk-package__contents, .swpk .swpk-package__excluded, .swpk .swpk-list, .swpk .swpk-list__item, .swpk .swpk-qty, .swpk .swpk-compare__name, .swpk .swpk-picker, .swpk .swpk-picker__legend, .swpk .swpk-choice__body, .swpk .swpk-choice__label, .swpk .swpk-choice__price, .swpk .swpk-state { color: inherit; }
.swpk .swpk-list__item.is-out, .swpk .swpk-card__tagline, .swpk .swpk-package__tagline, .swpk .swpk-always, .swpk .swpk-summary, .swpk .swpk-note, .swpk .swpk-group, .swpk .swpk-price__pp, .swpk .swpk-price__status, .swpk .swpk-link, .swpk .swpk-options__label, .swpk .swpk-choice__desc, .swpk .swpk-choice__field, .swpk .swpk-compare__text { color: var(--swpk-muted); }
.swpk .swpk-price__amount { color: var(--swpk-price-color); }
.swpk .swpk-card__tagline, .swpk .swpk-always, .swpk .swpk-summary, .swpk .swpk-state, .swpk .swpk-price, .swpk .swpk-card__title, .swpk .swpk-package__subtitle, .swpk .swpk-group, .swpk .swpk-picker__legend { margin-left: 0; margin-right: 0; }
.swpk .swpk-card__tagline, .swpk .swpk-always, .swpk .swpk-summary, .swpk .swpk-state, .swpk .swpk-card__title, .swpk .swpk-price { margin-top: 0; margin-bottom: 0; }
.swpk .swpk-list, .swpk .swpk-list__item { list-style: none; background: none; }
.swpk .swpk-list { margin: 0; padding: 0; }
.swpk .swpk-list__item { margin: 0; padding-top: 6px; padding-bottom: 6px; padding-right: 0; padding-left: 28px; border: 0; }
.swpk .swpk-list__item::marker { content: none; }
.swpk .swpk-card__title a, .swpk .swpk-card__title a:hover { color: inherit; text-decoration: none; }
.swpk .swpk-link, .swpk .swpk-card__more { text-decoration: none; }
.swpk .swpk-link:hover, .swpk .swpk-card__more:hover { text-decoration: underline; }
.swpk .swpk-compare__table, .swpk .swpk-compare__table th, .swpk .swpk-compare__table td { border-left: 0; border-right: 0; border-top: 0; }
.swpk .swpk-compare__table td, .swpk .swpk-compare__table th { color: var(--swpk-text); }
.swpk .swpk-compare__group th { color: var(--swpk-muted); }
.swpk .swpk-badge { color: var(--swpk-badge-color); }
.swpk .swpk-options__option { color: var(--swpk-text); }
.swpk .swpk-options__option[aria-checked="true"] { color: var(--swpk-switch-active-color); }
.swpk .swpk-yes { color: var(--swpk-yes); }
.swpk .swpk-no { color: var(--swpk-no); }
.swpk .swpk-card__more { color: var(--swpk-accent); }
.swpk .swpk-error { color: var(--swpk-no); }

/* Button shield: in Swop Design nothing of the theme's button styling may leak in. */
.swpk.swpk-mode-swop .swpk-button.swpk-button--primary, .swpk.swpk-mode-swop .swpk-button.swpk-button--request {
	height: auto; width: 100%; float: none; margin: 0; text-shadow: none; background-image: none; outline-offset: 2px;
	-webkit-appearance: none; appearance: none; text-indent: 0; vertical-align: middle;
}
.swpk.swpk-mode-swop .swpk-button.swpk-button--primary::before { content: none; }
.swpk.swpk-mode-swop .swpk-button.swpk-button--secondary, .swpk.swpk-mode-swop .swpk-button.swpk-button--secondary:hover { background: none; border: 0; box-shadow: none; color: inherit; text-shadow: none; }
.swpk .swpk-options__option, .swpk .swpk-options__option:hover { text-shadow: none; background-image: none; min-height: 0; height: auto; float: none; }
.swpk .swpk-options__option:hover:not([aria-checked="true"]) { background-color: color-mix(in srgb, var(--swpk-text) 6%, transparent); color: var(--swpk-text); }

/* Tooltips (optional): ⓘ next to a row, bubble on hover, focus or tap */
.swpk .swpk-tip { position: relative; display: inline-flex; vertical-align: -2px; margin-left: 4px; }
.swpk .swpk-tip__btn { appearance: none; display: inline-grid; place-items: center; width: 18px; height: 18px; min-height: 0; margin: 0; padding: 0; border: 0; border-radius: 50%; background: transparent; box-shadow: none; color: var(--swpk-muted); cursor: help; line-height: 1; transition: color var(--swpk-speed), background var(--swpk-speed); }
.swpk .swpk-tip__btn:hover, .swpk .swpk-tip__btn:focus-visible, .swpk .swpk-tip.is-open .swpk-tip__btn { color: var(--swpk-accent); background: color-mix(in srgb, var(--swpk-accent) 12%, transparent); outline: none; }
.swpk .swpk-tip__bubble {
	position: absolute; z-index: 30; bottom: calc(100% + 10px); left: 50%; width: max-content; max-width: min(260px, 70vw);
	padding: 9px 12px; border-radius: calc(var(--swpk-radius) * .5); background: var(--swpk-tip-bg, #14141c); color: var(--swpk-tip-color, #fff);
	font-size: .84rem; font-weight: 500; line-height: 1.45; text-align: left; text-transform: none; letter-spacing: 0; white-space: normal;
	box-shadow: 0 12px 30px rgba(0, 0, 0, .25); pointer-events: none;
	opacity: 0; visibility: hidden; transform: translate(-50%, 4px); transition: opacity .18s ease, transform .18s ease, visibility .18s;
}
.swpk .swpk-tip__bubble::after { content: ""; position: absolute; top: 100%; left: 50%; margin-left: -6px; border: 6px solid transparent; border-top-color: var(--swpk-tip-bg, #14141c); }
.swpk .swpk-tip:hover .swpk-tip__bubble, .swpk .swpk-tip:focus-within .swpk-tip__bubble, .swpk .swpk-tip.is-open .swpk-tip__bubble { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.swpk .swpk-tip.is-below .swpk-tip__bubble { bottom: auto; top: calc(100% + 10px); }
.swpk .swpk-tip.is-below .swpk-tip__bubble::after { top: auto; bottom: 100%; border-top-color: transparent; border-bottom-color: var(--swpk-tip-bg, #14141c); }
.swpk .swpk-tip.is-left .swpk-tip__bubble { left: -10px; transform: translate(0, 4px); }
.swpk .swpk-tip.is-left .swpk-tip__bubble::after { left: 19px; }
.swpk .swpk-tip.is-right .swpk-tip__bubble { left: auto; right: -10px; transform: translate(0, 4px); }
.swpk .swpk-tip.is-right .swpk-tip__bubble::after { left: auto; right: 13px; margin-left: 0; }
.swpk .swpk-tip.is-left:hover .swpk-tip__bubble, .swpk .swpk-tip.is-left:focus-within .swpk-tip__bubble, .swpk .swpk-tip.is-left.is-open .swpk-tip__bubble,
.swpk .swpk-tip.is-right:hover .swpk-tip__bubble, .swpk .swpk-tip.is-right:focus-within .swpk-tip__bubble, .swpk .swpk-tip.is-right.is-open .swpk-tip__bubble { transform: translate(0, 0); }
.swpk-skin-neon, .swpk-skin-luxe, .swpk[data-swpk-dark="on"] { --swpk-tip-bg: #f6f3ff; --swpk-tip-color: #14141c; }

/* Promo label: a sticker on the top-right corner of the card */
.swpk-card.has-promo .swpk-card__title { padding-right: 58px; }
.swpk-card.has-promo .swpk-badge:not(.swpk-badge--inline) { top: -12px; right: auto; left: 18px; box-shadow: 0 4px 12px rgba(0, 0, 0, .15); }
.swpk-badge-ribbon .swpk-card.has-promo .swpk-badge, .swpk-badge-sticker .swpk-card.has-promo .swpk-badge, .swpk-badge-tag .swpk-card.has-promo .swpk-badge { top: -12px; left: 18px; width: auto; height: auto; padding: 6px 12px; transform: none; border-radius: 999px; }
.swpk-badge-ribbon .swpk-card:not(.has-promo) { overflow: hidden; }
.swpk-package__buy.has-promo { position: relative; }
.swpk-promo {
	--swpk-promo-bg: #e5192f; --swpk-promo-color: #ffffff;
	position: absolute; z-index: 6; top: -18px; right: -16px; width: 92px; height: 92px;
	display: grid; place-items: center; color: var(--swpk-promo-color); text-align: center; pointer-events: none;
	transform: rotate(12deg); filter: drop-shadow(0 8px 14px rgba(0, 0, 0, .25));
}
.swpk-promo::before { content: ""; position: absolute; inset: 0; background: var(--swpk-promo-bg); }
.swpk-promo__inner { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; width: 78%; height: 78%; border-radius: 50%; }
.swpk .swpk-promo__text { display: block; margin: 0; font-weight: 900; line-height: .95; letter-spacing: -.02em; color: inherit; }
.swpk .swpk-promo__text.is-xl { font-size: 1.55rem; }
.swpk .swpk-promo__text.is-l { font-size: 1.12rem; }
.swpk .swpk-promo__text.is-m { font-size: .82rem; letter-spacing: 0; }
.swpk .swpk-promo__sub { display: block; font-size: .6rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; line-height: 1.1; color: inherit; opacity: .92; }
/* Seal: scalloped edge with a dashed inner ring */
.swpk-promo--seal::before { clip-path: polygon(50.0% 0.0%, 57.9% 5.2%, 67.1% 3.0%, 72.8% 10.6%, 82.1% 11.7%, 84.9% 20.8%, 93.3% 25.0%, 92.8% 34.4%, 99.2% 41.3%, 95.5% 50.0%, 99.2% 58.7%, 92.8% 65.6%, 93.3% 75.0%, 84.9% 79.2%, 82.1% 88.3%, 72.8% 89.4%, 67.1% 97.0%, 57.9% 94.8%, 50.0% 100.0%, 42.1% 94.8%, 32.9% 97.0%, 27.2% 89.4%, 17.9% 88.3%, 15.1% 79.2%, 6.7% 75.0%, 7.2% 65.6%, 0.8% 58.7%, 4.5% 50.0%, 0.8% 41.3%, 7.2% 34.4%, 6.7% 25.0%, 15.1% 20.8%, 17.9% 11.7%, 27.3% 10.6%, 32.9% 3.0%, 42.1% 5.2%); }
.swpk-promo--seal .swpk-promo__inner { border: 1.5px dashed color-mix(in srgb, var(--swpk-promo-color) 70%, transparent); }
/* Sticker: round, white rim, glossy highlight */
.swpk-promo--sticker::before { border-radius: 50%; border: 4px solid #fff; background: radial-gradient(circle at 30% 25%, color-mix(in srgb, #fff 35%, var(--swpk-promo-bg)) 0, var(--swpk-promo-bg) 45%); }
.swpk-promo--sticker { transform: rotate(-10deg); }
/* Burst: spiky star */
.swpk-promo--burst { width: 100px; height: 100px; top: -24px; right: -22px; }
.swpk-promo--burst::before { clip-path: polygon(50.0% 0.0%, 58.0% 14.9%, 71.7% 5.0%, 72.4% 21.9%, 89.1% 18.8%, 82.4% 34.4%, 98.7% 38.9%, 86.0% 50.0%, 98.7% 61.1%, 82.4% 65.6%, 89.1% 81.2%, 72.4% 78.1%, 71.7% 95.0%, 58.0% 85.1%, 50.0% 100.0%, 42.0% 85.1%, 28.3% 95.0%, 27.6% 78.1%, 10.9% 81.2%, 17.6% 65.6%, 1.3% 61.1%, 14.0% 50.0%, 1.3% 38.9%, 17.6% 34.4%, 10.9% 18.8%, 27.6% 21.9%, 28.3% 5.0%, 42.0% 14.9%); }
/* Stamp: round with double ring, like a rubber stamp */
.swpk-promo--stamp::before { border-radius: 50%; box-shadow: inset 0 0 0 4px var(--swpk-promo-bg), inset 0 0 0 6px var(--swpk-promo-color), inset 0 0 0 9px var(--swpk-promo-bg); }
.swpk-promo--stamp .swpk-promo__text { text-transform: uppercase; }
.swpk-promo--stamp { transform: rotate(-14deg); }
/* Price tag: tag shape with a hole */
.swpk-promo--pricetag { width: 118px; height: 50px; top: -12px; right: -18px; transform: rotate(10deg); }
.swpk-promo--pricetag::before { clip-path: polygon(18% 0, 100% 0, 100% 100%, 18% 100%, 0 50%); border-radius: 0 8px 8px 0; }
.swpk-promo--pricetag::after { content: ""; position: absolute; left: 11%; top: 50%; width: 8px; height: 8px; margin-top: -4px; border-radius: 50%; background: var(--swpk-surface, #fff); box-shadow: inset 0 1px 2px rgba(0, 0, 0, .3); z-index: 1; }
.swpk-promo--pricetag .swpk-promo__inner { width: 76%; height: 100%; margin-left: 20%; border-radius: 0; flex-direction: row; gap: 6px; }
.swpk-promo--pricetag .swpk-promo__text.is-xl { font-size: 1.25rem; }
/* Motion */
.swpk-promo-anim-pop { animation: swpk-promo-pop .7s cubic-bezier(.3, 1.6, .5, 1) both .2s; }
@keyframes swpk-promo-pop { from { opacity: 0; scale: .2; rotate: -40deg; } to { opacity: 1; scale: 1; rotate: 0deg; } }
.swpk-promo-anim-wobble { animation: swpk-promo-wobble 3.2s ease-in-out infinite; }
@keyframes swpk-promo-wobble { 0%, 70%, 100% { rotate: 0deg; } 76% { rotate: -9deg; } 82% { rotate: 7deg; } 88% { rotate: -4deg; } 94% { rotate: 2deg; } }
.swpk-promo-anim-spin::before { animation: swpk-promo-spin 16s linear infinite; }
@keyframes swpk-promo-spin { to { rotate: 360deg; } }
.swpk-promo-anim-pulse { animation: swpk-promo-pulse 2.2s ease-in-out infinite; }
@keyframes swpk-promo-pulse { 0%, 100% { scale: 1; } 50% { scale: 1.08; } }
@media (max-width: 680px) { .swpk-promo { width: 78px; height: 78px; top: -14px; right: -8px; } .swpk-promo--burst { width: 86px; height: 86px; } .swpk-promo--pricetag { width: 104px; height: 44px; } }
@media (prefers-reduced-motion: reduce) { .swpk-promo, .swpk-promo::before { animation: none !important; } }
.swpk-card:has(.swpk-tip:hover, .swpk-tip:focus-within, .swpk-tip.is-open), .swpk-package__buy:has(.swpk-tip.is-open) { z-index: 8; }
.swpk .swpk-compare__table th:has(.swpk-tip:hover, .swpk-tip:focus-within, .swpk-tip.is-open) { z-index: 9; }
.swpk .swpk-compare__scroll:has(.swpk-tip) { overflow: visible; }
@media (max-width: 760px) { .swpk .swpk-compare__scroll:has(.swpk-tip) { overflow-x: auto; } }

/* Mobile presentation (≤ 680px): carousel, stack, accordion, tabs or compact grid */
.swpk-m-bar, .swpk-m-more, .swpk-m-expand { display: none; }
@media (max-width: 680px) {
	.swpk.swpk-cards { gap: 16px; padding-top: 22px; }
	.swpk.swpk-cards .swpk-card.is-recommended { transform: none; }

	/* Carousel */
	.swpk.swpk-m-carousel { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 14px; padding: 26px 18px 14px 4px; margin: 0 -4px; scrollbar-width: none; overscroll-behavior-x: contain; }
	.swpk.swpk-m-carousel::-webkit-scrollbar { display: none; }
	.swpk-m-carousel .swpk-card { flex: 0 0 84%; scroll-snap-align: center; }

	/* Stack */
	.swpk.swpk-m-stack { grid-template-columns: minmax(0, 1fr); gap: 26px; }

	/* Compact grid: two side by side */
	.swpk.swpk-m-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; --swpk-card-pad: 14px; --swpk-title-size: 1.02em; --swpk-price-size: 1.2em; --swpk-btn-height: 40px; --swpk-btn-px: 10px; --swpk-btn-fs: .9em; }
	.swpk-m-grid .swpk-card__tagline, .swpk-m-grid .swpk-always, .swpk-m-grid .swpk-summary, .swpk-m-grid .swpk-price__pp { display: none; }
	.swpk-m-grid .swpk-list__item { font-size: .86em; padding-top: 3px; padding-bottom: 3px; }
	.swpk-m-grid .swpk-promo { width: 62px; height: 62px; top: -12px; right: -6px; }
	.swpk-m-grid .swpk-promo__text.is-xl { font-size: 1.05rem; }
	.swpk-m-grid .swpk-promo__text.is-l, .swpk-m-grid .swpk-promo__text.is-m { font-size: .7rem; }
	.swpk-m-grid .swpk-card.has-promo .swpk-card__title { padding-right: 34px; }
	.swpk-m-grid .swpk-badge { font-size: .68em; padding: 5px 9px; }

	/* Accordion */
	.swpk.swpk-m-accordion { grid-template-columns: minmax(0, 1fr); gap: 12px; }
	.swpk-m-accordion .swpk-m-expand { display: block; position: absolute; z-index: 4; inset: 0 0 auto 0; height: 64px; margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; cursor: pointer; -webkit-tap-highlight-color: transparent; }
	.swpk-m-accordion .swpk-card.is-m-closed .swpk-m-expand { inset: 0; height: auto; }
	.swpk-m-accordion .swpk-m-expand:focus-visible { outline: 3px solid color-mix(in srgb, var(--swpk-accent) 55%, transparent); outline-offset: -3px; border-radius: inherit; }
	.swpk-m-accordion .swpk-card__title { display: flex; align-items: center; gap: 10px; }
	.swpk-m-accordion .swpk-card__title::after { content: ""; flex: none; width: 8px; height: 8px; margin-left: auto; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(-135deg) translate(-2px, -2px); transition: transform var(--swpk-speed); opacity: .6; }
	.swpk-m-accordion .swpk-card.is-m-closed .swpk-card__title::after { transform: rotate(45deg); }
	.swpk-m-accordion .swpk-card.is-m-closed :is(.swpk-card__media, .swpk-card__tagline, .swpk-always, .swpk-list, .swpk-plus, .swpk-group, .swpk-summary, .swpk-actions, .swpk-link, .swpk-m-more, .swpk-card__more, .swpk-desc, .swpk-deposit, .swpk-price-note, .swpk-quick, .swpk-rating, [data-swpk-slot]) { display: none; }
	.swpk-m-accordion .swpk-card.is-m-closed .swpk-card__body { gap: 6px; }
	.swpk-m-accordion .swpk-card.is-m-closed .swpk-card__footer { margin-top: 0; padding-top: 0; border-top: 0; }
	.swpk-m-accordion .swpk-card.is-m-closed .swpk-price__amount { font-size: calc(var(--swpk-price-size) * .8); }

	/* Tabs */
	.swpk.swpk-m-tabs { grid-template-columns: minmax(0, 1fr); padding-top: 18px; }
	.swpk-m-tabs .swpk-card:not(.is-m-active) { display: none; }
	.swpk-m-tabs .swpk-card.is-m-active { animation: swpk-m-in .28s ease; }
	@keyframes swpk-m-in { from { opacity: 0; translate: 0 8px; } to { opacity: 1; translate: 0 0; } }

	/* Bars (tabs above, dots/arrows below) */
	.swpk-m-bar { display: flex; align-items: center; }
	.swpk-m-bar.is-tabs { gap: 4px; margin: 0 0 4px; padding: 4px; border-radius: 26px; background: var(--swpk-switch-track); border: 1px solid var(--swpk-border); }
	.swpk-m-bar.is-tabs::-webkit-scrollbar { display: none; }
	.swpk .swpk-m-tab { flex: 1 1 0; min-width: 0; appearance: none; margin: 0; padding: 8px 10px; min-height: 0; border: 0; border-radius: 999px; background: transparent; box-shadow: none; color: var(--swpk-text); font: inherit; font-size: .84em; font-weight: 700; line-height: 1.15; white-space: normal; overflow-wrap: break-word; text-align: center; cursor: pointer; transition: background var(--swpk-speed), color var(--swpk-speed); }
	.swpk .swpk-m-tab[aria-selected="true"] { box-shadow: 0 4px 12px color-mix(in srgb, var(--swpk-switch-active-bg) 30%, transparent); }
.swpk .swpk-m-tab[aria-selected="true"] { background: var(--swpk-switch-active-bg); color: var(--swpk-switch-active-color); }
	.swpk-m-bar.is-nav { justify-content: center; gap: 12px; margin: 4px 0 0; }
	.swpk .swpk-m-dot { appearance: none; width: 8px; height: 8px; min-height: 0; margin: 0; padding: 0; border: 0; border-radius: 999px; background: color-mix(in srgb, var(--swpk-text) 25%, transparent); cursor: pointer; transition: width .25s, background .25s; }
	.swpk .swpk-m-dot[aria-current="true"] { width: 24px; background: var(--swpk-accent); }
	.swpk-m-dots { display: flex; gap: 7px; align-items: center; }
	.swpk .swpk-m-arrow { appearance: none; display: grid; place-items: center; width: 38px; height: 38px; min-height: 0; margin: 0; padding: 0; border: 1px solid var(--swpk-border); border-radius: 50%; background: var(--swpk-surface); color: var(--swpk-text); box-shadow: var(--swpk-card-shadow); cursor: pointer; }
	.swpk .swpk-m-arrow:disabled { opacity: .35; cursor: default; }
	.swpk .swpk-m-arrow::before { content: ""; width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(135deg); margin-left: 3px; }
	.swpk .swpk-m-arrow.is-next::before { transform: rotate(-45deg); margin-left: -3px; }

	/* Limit the rows per card */
	.swpk .swpk-list__item.is-m-extra { display: none; }
	.swpk .swpk-card.is-m-all .swpk-list__item.is-m-extra { display: block; }
	.swpk .swpk-m-more { display: inline-block; align-self: flex-start; margin: -4px 0 0; padding: 4px 0; min-height: 0; border: 0; background: none; box-shadow: none; color: var(--swpk-accent); font: inherit; font-size: .88em; font-weight: 700; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
}

/* Long names never spill out of cards or table cells */
.swpk .swpk-card__title, .swpk .swpk-package__title, .swpk .swpk-list__item, .swpk .swpk-choice__label, .swpk .swpk-options__option { overflow-wrap: break-word; hyphens: auto; }
.swpk .swpk-compare__table th, .swpk .swpk-compare__table td { overflow-wrap: anywhere; hyphens: auto; }
.swpk .swpk-compare__table thead th { min-width: 110px; }

/* Section background ("stage"): colour or image behind switcher, cards and comparison */
.swpk-stage { --swpk-bg-t: 0; --swpk-bg-scale: 1; position: relative; isolation: isolate; overflow: hidden; margin: 0 0 var(--swpk-gap); padding: clamp(28px, 5vw, 72px) clamp(14px, 3vw, 44px); border-radius: calc(var(--swpk-radius) + 8px); color: var(--swpk-stage-text); }
.swpk-stage.is-color { background: var(--swpk-bg-color); }
.swpk-stage.is-full { width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); border-radius: 0; }
.swpk-stage.is-full > .swpk-stage__inner { max-width: 1240px; margin: 0 auto; }
.swpk-stage__inner { position: relative; z-index: 1; }
.swpk-stage__bg { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
.swpk-stage__bg picture { display: contents; }
.swpk .swpk-stage__img { position: absolute; left: 0; top: calc(var(--swpk-bg-t) * -100%); width: 100%; height: calc(100% * (1 + 2 * var(--swpk-bg-t))); max-width: none; margin: 0; object-fit: cover; object-position: var(--swpk-bg-focus); filter: blur(var(--swpk-bg-blur)); scale: var(--swpk-bg-scale); will-change: translate, scale; }
.swpk-stage__overlay, .swpk-stage__tint { position: absolute; inset: 0; }
.swpk-stage__overlay { opacity: var(--swpk-bg-opacity); background: var(--swpk-bg-overlay); }
.swpk-bgo-top .swpk-stage__overlay { background: linear-gradient(180deg, var(--swpk-bg-overlay) 0%, color-mix(in srgb, var(--swpk-bg-overlay) 35%, transparent) 60%, transparent 100%); opacity: min(1, calc(var(--swpk-bg-opacity) * 1.6)); }
.swpk-bgo-bottom .swpk-stage__overlay { background: linear-gradient(0deg, var(--swpk-bg-overlay) 0%, color-mix(in srgb, var(--swpk-bg-overlay) 35%, transparent) 60%, transparent 100%); opacity: min(1, calc(var(--swpk-bg-opacity) * 1.6)); }
.swpk-bgo-vignette .swpk-stage__overlay { background: radial-gradient(ellipse at 50% 45%, color-mix(in srgb, var(--swpk-bg-overlay) 40%, transparent) 0%, var(--swpk-bg-overlay) 100%); opacity: min(1, calc(var(--swpk-bg-opacity) * 1.4)); }
.swpk-stage__tint { display: none; background: var(--swpk-accent); mix-blend-mode: color; opacity: .6; }
.swpk-stage.has-tint .swpk-stage__tint { display: block; }
.swpk-stage.is-image .swpk-stage__img { --swpk-bg-scale: calc(1 + var(--swpk-bg-blur) / 100px); }
.swpk-stage.swpk-bgfx-mouse .swpk-stage__img { --swpk-bg-scale: calc(1.08 + var(--swpk-bg-blur) / 100px); }

/* Components inside a stage: let the background show through */
.swpk-stage .swpk-cards, .swpk-stage .swpk-options, .swpk-stage .swpk-compare { background: none; padding-left: 0; padding-right: 0; }
.swpk-stage .swpk-options { margin-bottom: clamp(18px, 3vw, 32px); }
.swpk-stage .swpk .swpk-options__label, .swpk-stage .swpk .swpk-compare__diff { color: var(--swpk-stage-text); }
.swpk-stage.is-image .swpk .swpk-options__label { text-shadow: 0 1px 12px rgba(0, 0, 0, .35); }
.swpk-stage .swpk-options__track { background: color-mix(in srgb, var(--swpk-surface) 88%, transparent); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.swpk-stage .swpk-m-bar.is-nav .swpk-m-dot { background: color-mix(in srgb, var(--swpk-stage-text) 45%, transparent); }
.swpk-stage .swpk-m-bar.is-nav .swpk-m-dot[aria-current="true"] { background: var(--swpk-accent); }

/* Effects. Strength = how far the image travels. */
.swpk-bgs-subtle { --swpk-bg-travel: .06; }
.swpk-bgs-normal { --swpk-bg-travel: .12; }
.swpk-bgs-strong { --swpk-bg-travel: .2; }
/* Parallax: the image is taller than the stage by 2t; it travels exactly that slack, never showing an edge. */
.swpk-bgfx-parallax { --swpk-bg-t: var(--swpk-bg-travel); }
.swpk-bgfx-mouse .swpk-stage__img { translate: var(--swpk-bg-mx, 0) var(--swpk-bg-my, 0); transition: translate .6s cubic-bezier(.2, .7, .2, 1); }
.swpk-bgfx-kenburns .swpk-stage__img { animation: swpk-kenburns 26s ease-in-out infinite alternate; }
@keyframes swpk-kenburns { from { scale: 1.02; translate: -1.5% 1%; } to { scale: calc(1.1 + var(--swpk-bg-travel)); translate: 1.5% -1.5%; } }

/* Scroll-linked (Chrome, Edge, Safari 26+): runs on the compositor, no JavaScript */
.swpk-stage { view-timeline: --swpk-stage block; }
@supports (animation-timeline: view()) {
	.swpk-bgfx-parallax .swpk-stage__img { animation: swpk-parallax linear both; animation-timeline: --swpk-stage; animation-range: cover 0% cover 100%; }
	.swpk-bgfx-zoom .swpk-stage__img { animation: swpk-zoom linear both; animation-timeline: --swpk-stage; animation-range: cover 0% cover 100%; }
}
@keyframes swpk-parallax { from { translate: 0 calc(var(--swpk-bg-t) / (1 + 2 * var(--swpk-bg-t)) * -100%); } to { translate: 0 calc(var(--swpk-bg-t) / (1 + 2 * var(--swpk-bg-t)) * 100%); } }
@keyframes swpk-zoom { from { scale: var(--swpk-bg-scale); } to { scale: calc(var(--swpk-bg-scale) + .08 + var(--swpk-bg-travel)); } }

/* Phones: effects off unless chosen; always off for "reduce motion" */
@media (max-width: 680px) {
	.swpk-stage { padding: 26px 12px; border-radius: calc(var(--swpk-radius) + 4px); }
	.swpk-stage.is-full { border-radius: 0; }
	.swpk-bg-static-m .swpk-stage__img { animation: none !important; translate: none !important; scale: 1 !important; top: 0; height: 100%; }
}
@media (prefers-reduced-motion: reduce) {
	.swpk-stage .swpk-stage__img { animation: none !important; translate: none !important; top: 0; height: 100%; }
}

/* New card elements */
.swpk .swpk-card__icon { display: inline-grid; place-items: center; width: 48px; height: 48px; border-radius: calc(var(--swpk-card-radius) * .6); background: color-mix(in srgb, var(--swpk-accent) 12%, transparent); color: var(--swpk-accent); font-size: 24px; line-height: 1; }
.swpk .swpk-card__icon svg { width: 26px; height: 26px; }
.swpk .swpk-ideal { margin: 0; font-size: .92em; line-height: 1.4; color: var(--swpk-text); }
.swpk .swpk-ideal__label { display: inline-block; margin-right: 4px; padding: 2px 8px; border-radius: 999px; background: color-mix(in srgb, var(--swpk-accent) 12%, transparent); color: color-mix(in srgb, var(--swpk-accent) 80%, var(--swpk-text)); font-size: .78em; font-weight: 700; letter-spacing: .02em; }
.swpk .swpk-specs { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 0; padding: 0; list-style: none; }
.swpk .swpk-spec { display: inline-flex; align-items: center; gap: 6px; margin: 0; padding: 0; font-size: .9em; font-weight: 600; color: var(--swpk-text); }
.swpk .swpk-spec[hidden], .swpk .swpk-specs[hidden] { display: none; }
.swpk .swpk-spec__icon { flex: none; width: 18px; height: 18px; color: var(--swpk-accent); font-size: 16px; line-height: 1; }
.swpk .swpk-spec__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.swpk .swpk-specs.is-large { gap: 12px; }
.swpk .swpk-specs.is-large .swpk-spec { flex-direction: column; align-items: flex-start; gap: 2px; min-width: 110px; padding: 12px 14px; border: 1px solid var(--swpk-border); border-radius: calc(var(--swpk-card-radius) * .6); background: var(--swpk-surface); }
.swpk .swpk-specs.is-large .swpk-spec__label { position: static; width: auto; height: auto; clip: auto; font-size: .78em; font-weight: 600; color: var(--swpk-muted); text-transform: uppercase; letter-spacing: .05em; }
.swpk .swpk-specs.is-large .swpk-spec__icon { width: 22px; height: 22px; margin-bottom: 4px; }
.swpk .swpk-plus { margin: 0 0 -4px; font-size: .88em; font-weight: 700; color: var(--swpk-accent); }
.swpk .swpk-desc__text { font-size: .92em; line-height: 1.55; color: var(--swpk-muted); }
.swpk .swpk-desc__text > :first-child { margin-top: 0; }
.swpk .swpk-desc__text > :last-child { margin-bottom: 0; }
.swpk .swpk-desc.is-clamped:not(.is-open) .swpk-desc__text { max-height: 4.7em; overflow: hidden; -webkit-mask-image: linear-gradient(180deg, #000 55%, transparent); mask-image: linear-gradient(180deg, #000 55%, transparent); }
.swpk .swpk-desc:not(.is-clamped) .swpk-desc__text { max-height: 4.7em; overflow: hidden; }
.swpk .swpk-desc.is-open .swpk-desc__text, .swpk .swpk-desc:not(.is-clamped):not([data-swpk-desc]) .swpk-desc__text { max-height: none; }
.swpk .swpk-desc__more, .swpk .swpk-quick { align-self: flex-start; margin: 4px 0 0; padding: 0; min-height: 0; border: 0; background: none; box-shadow: none; color: var(--swpk-accent); font: inherit; font-size: .88em; font-weight: 700; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.swpk .swpk-quick { align-self: center; color: var(--swpk-muted); }
.swpk .swpk-quick:hover { color: var(--swpk-accent); }
.swpk .swpk-price__was { color: var(--swpk-muted); font-size: .95em; font-weight: 600; text-decoration-thickness: 2px; }
.swpk .swpk-price__was[hidden], .swpk .swpk-save[hidden] { display: none; }
.swpk .swpk-save { display: inline-block; align-self: flex-start; margin: -4px 0 0; padding: 3px 10px; border-radius: 999px; background: color-mix(in srgb, var(--swpk-yes) 16%, transparent); color: color-mix(in srgb, var(--swpk-yes) 70%, var(--swpk-text)); font-size: .82em; font-weight: 800; }
.swpk .swpk-deposit, .swpk .swpk-price-note { margin: -4px 0 0; font-size: .86em; color: var(--swpk-muted); }
.swpk .swpk-deposit strong { color: var(--swpk-text); font-weight: 700; }
.swpk .swpk-rating { display: inline-flex; align-items: center; gap: 8px; margin: -4px 0 0; font-size: .86em; color: var(--swpk-muted); }
.swpk .swpk-rating__stars { position: relative; display: inline-block; width: 86px; height: 16px; background: linear-gradient(90deg, #f5b400 var(--swpk-rating), color-mix(in srgb, var(--swpk-text) 20%, transparent) var(--swpk-rating)); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 86 16'%3E%3Cg%3E%3Cpath id='s' d='m8 1 2.1 4.4 4.8.6-3.5 3.3.9 4.7L8 11.7 3.7 14l.9-4.7L1.1 6l4.8-.6z'/%3E%3Cuse href='%23s' x='17.5'/%3E%3Cuse href='%23s' x='35'/%3E%3Cuse href='%23s' x='52.5'/%3E%3Cuse href='%23s' x='70'/%3E%3C/g%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 86 16'%3E%3Cg%3E%3Cpath id='s' d='m8 1 2.1 4.4 4.8.6-3.5 3.3.9 4.7L8 11.7 3.7 14l.9-4.7L1.1 6l4.8-.6z'/%3E%3Cuse href='%23s' x='17.5'/%3E%3Cuse href='%23s' x='35'/%3E%3Cuse href='%23s' x='52.5'/%3E%3Cuse href='%23s' x='70'/%3E%3C/g%3E%3C/svg%3E") center / contain no-repeat; }

/* View: image on top */
.swpk-view-image .swpk-card__media { aspect-ratio: 4 / 3; }
.swpk-view-image .swpk-card__media img { transition: scale .6s cubic-bezier(.2, .7, .2, 1); }
.swpk-view-image .swpk-card:hover .swpk-card__media img { scale: 1.04; }
.swpk-view-image .swpk-specs { padding: 10px 12px; border-radius: calc(var(--swpk-card-radius) * .5); background: var(--swpk-surface-2); }

/* View: row (image left, content, price + button right) */
@media (min-width: 761px) {
	.swpk.swpk-view-row { grid-template-columns: minmax(0, 1fr); }
	.swpk-view-row .swpk-card { display: grid; grid-template-columns: minmax(180px, 28%) minmax(0, 1fr) minmax(200px, 25%); align-items: stretch; }
	.swpk-view-row .swpk-card:not(.has-media) { grid-template-columns: minmax(0, 1fr) minmax(200px, 28%); }
	.swpk-view-row .swpk-card__media { aspect-ratio: auto; height: 100%; min-height: 200px; border-radius: calc(var(--swpk-card-radius) - var(--swpk-card-border-width)) 0 0 calc(var(--swpk-card-radius) - var(--swpk-card-border-width)); }
	.swpk-view-row .swpk-card__media img { height: 100%; }
	.swpk-view-row .swpk-card__body { padding-bottom: var(--swpk-card-pad); }
	.swpk-view-row .swpk-card__footer { margin: var(--swpk-card-pad) var(--swpk-card-pad) var(--swpk-card-pad) 0; padding: 0 0 0 var(--swpk-card-pad); border-top: 0; border-left: 1px solid var(--swpk-border); justify-content: center; }
	.swpk-view-row .swpk-list { columns: 2; column-gap: 24px; }
	.swpk-view-row .swpk-list__item { break-inside: avoid; }
	.swpk-view-row .swpk-card.is-recommended { transform: none; }
	.swpk-view-row .swpk-card.has-promo .swpk-card__title { padding-right: 0; }
}

/* View: compact */
.swpk-view-compact .swpk-card__body { align-items: flex-start; gap: 10px; }
.swpk-view-compact .swpk-card__title { font-size: calc(var(--swpk-title-size) * .95); }
.swpk-view-compact .swpk-specs { flex-direction: column; gap: 6px; }

/* View: spotlight (the recommended package larger) */
@media (min-width: 1025px) {
	.swpk.swpk-view-spotlight { grid-template-columns: repeat(var(--swpk-cols, 3), minmax(0, 1fr)); align-items: center; }
	.swpk-view-spotlight .swpk-card.is-recommended { z-index: 2; transform: scale(1.06); box-shadow: 0 0 0 2px var(--swpk-rec-color), 0 30px 60px color-mix(in srgb, var(--swpk-shadow-color) 22%, transparent); }
	.swpk-view-spotlight .swpk-card:not(.is-recommended) { opacity: .92; }
	.swpk-view-spotlight .swpk-card:not(.is-recommended):hover { opacity: 1; }
	.swpk-view-spotlight .swpk-card.is-recommended .swpk-price__amount { font-size: calc(var(--swpk-price-size) * 1.15); }
}

/* Quick view dialog */
.swpk .swpk-qv-box { width: min(920px, 100%); max-height: min(88vh, 900px); padding: 0; overflow: auto; }
.swpk .swpk-qv { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); }
.swpk .swpk-qv:not(:has(.swpk-qv__media)) { grid-template-columns: minmax(0, 1fr); }
.swpk .swpk-qv__media { background: var(--swpk-surface-2); }
.swpk .swpk-qv__media img { display: block; width: 100%; height: 100%; max-height: 88vh; object-fit: cover; }
.swpk .swpk-qv__main { display: flex; flex-direction: column; gap: 14px; padding: clamp(20px, 3vw, 34px); }
.swpk .swpk-qv__title { margin: 0 40px 0 0; font-size: 1.6em; line-height: 1.15; font-weight: var(--swpk-title-weight); text-transform: var(--swpk-title-transform); color: var(--swpk-text); }
.swpk .swpk-qv__desc { font-size: .95em; line-height: 1.6; color: var(--swpk-muted); }
.swpk .swpk-qv__desc > :first-child { margin-top: 0; }
.swpk .swpk-qv__buy { display: flex; flex-direction: column; gap: 10px; margin-top: 6px; padding-top: 16px; border-top: 1px solid var(--swpk-border); }
.swpk .swpk-qv-box { background: var(--swpk-surface); color: var(--swpk-text); }
@media (max-width: 760px) {
	.swpk .swpk-qv { grid-template-columns: minmax(0, 1fr); }
	.swpk .swpk-qv__media img { max-height: 260px; }
}

/* Package photo: ratio and shape (not in the row view, where the photo sits on the left) */
.swpk.swpk-ratio-wide .swpk-card__media { aspect-ratio: 16 / 9; }
.swpk.swpk-ratio-landscape .swpk-card__media { aspect-ratio: 4 / 3; }
.swpk.swpk-ratio-photo .swpk-card__media { aspect-ratio: 3 / 2; }
.swpk.swpk-ratio-square .swpk-card__media { aspect-ratio: 1 / 1; }
.swpk .swpk-card__media img { width: 100%; height: 100%; object-fit: cover; }
.swpk-img-inset:not(.swpk-view-row) .swpk-card__media { margin: 10px 10px 0; border-radius: calc(var(--swpk-card-radius) * .7); }
.swpk-img-arch:not(.swpk-view-row) .swpk-card__media { margin: 12px 12px 0; border-radius: 50% 50% calc(var(--swpk-card-radius) * .6) calc(var(--swpk-card-radius) * .6) / 34% 34% calc(var(--swpk-card-radius) * .6) calc(var(--swpk-card-radius) * .6); }
.swpk-img-diagonal:not(.swpk-view-row) .swpk-card__media { clip-path: polygon(0 0, 100% 0, 100% 84%, 0 100%); }
.swpk-img-wave:not(.swpk-view-row) .swpk-card__media {
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 60' preserveAspectRatio='none'%3E%3Cpath d='M0 0h1200v22c-150 30-300 38-450 22S450 6 300 14 75 44 0 34z'/%3E%3C/svg%3E") bottom / 100% 34px no-repeat, linear-gradient(#000 0 0) top / 100% calc(100% - 33px) no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 60' preserveAspectRatio='none'%3E%3Cpath d='M0 0h1200v22c-150 30-300 38-450 22S450 6 300 14 75 44 0 34z'/%3E%3C/svg%3E") bottom / 100% 34px no-repeat, linear-gradient(#000 0 0) top / 100% calc(100% - 33px) no-repeat;
}
.swpk-img-diagonal:not(.swpk-view-row) .swpk-card__body, .swpk-img-wave:not(.swpk-view-row) .swpk-card__body { margin-top: -6px; }

/* Quantity picker (people, children, workplaces …) */
.swpk .swpk-amount { display: flex; flex-direction: column; align-items: center; gap: 8px; }
.swpk-picker.swpk-amount { align-items: flex-start; }
.swpk .swpk-amount__control { display: inline-flex; align-items: center; gap: 4px; padding: 4px; border-radius: 999px; background: var(--swpk-switch-track); border: 1px solid var(--swpk-border); }
.swpk .swpk-amount__btn { appearance: none; display: grid; place-items: center; width: 38px; height: 38px; min-height: 0; margin: 0; padding: 0; border: 0; border-radius: 50%; background: var(--swpk-surface); color: var(--swpk-text); box-shadow: 0 1px 3px rgba(0, 0, 0, .12); font: 700 20px/1 system-ui, sans-serif; cursor: pointer; transition: background var(--swpk-speed), color var(--swpk-speed), transform var(--swpk-speed); }
.swpk .swpk-amount__btn:hover:not(:disabled) { background: var(--swpk-switch-active-bg); color: var(--swpk-switch-active-color); }
.swpk .swpk-amount__btn:active:not(:disabled) { transform: scale(.94); }
.swpk .swpk-amount__btn:disabled { opacity: .35; cursor: default; box-shadow: none; }
.swpk .swpk-amount__btn:focus-visible, .swpk .swpk-amount__input:focus-visible { outline: 3px solid color-mix(in srgb, var(--swpk-accent) 55%, transparent); outline-offset: 2px; }
.swpk .swpk-amount__input { width: 4.2em; min-height: 0; margin: 0; padding: 6px 4px; border: 0; border-radius: 8px; background: transparent; box-shadow: none; color: var(--swpk-text); font: inherit; font-size: 1.15em; font-weight: 800; text-align: center; font-variant-numeric: tabular-nums; -moz-appearance: textfield; }
.swpk .swpk-amount__input::-webkit-outer-spin-button, .swpk .swpk-amount__input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.swpk .swpk-amount__unit { padding-right: 8px; color: var(--swpk-muted); font-weight: 600; }
.swpk .swpk-amount__hint { color: var(--swpk-muted); font-size: .82em; }
.swpk-stage .swpk .swpk-amount__hint { color: var(--swpk-stage-text); opacity: .85; }

/* Price period ("per maand") */
.swpk .swpk-price__period { color: var(--swpk-muted); font-size: .92em; font-weight: 600; }

/* Package page: extras you can add ("los bij te huren") */
.swpk .swpk-extras-list .swpk-list__item.has-extra { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 10px; color: var(--swpk-text); }
.swpk .swpk-extra__price { font-weight: 700; font-variant-numeric: tabular-nums; }
.swpk .swpk-extra__add { appearance: none; margin: 0; min-height: 0; padding: 6px 14px; border: 1px solid var(--swpk-accent); border-radius: calc(var(--swpk-radius) * .6); background: transparent; color: var(--swpk-accent); font: inherit; font-size: .88em; font-weight: 700; line-height: 1.3; cursor: pointer; transition: background var(--swpk-speed), color var(--swpk-speed); }
.swpk .swpk-extra__add:hover, .swpk .swpk-extra__add.is-added { background: var(--swpk-accent); color: var(--swpk-on-accent); }
.swpk .swpk-extra__add.is-busy { opacity: .6; cursor: progress; }
.swpk .swpk-extra__add.is-error { border-color: var(--swpk-no); color: var(--swpk-no); }
.swpk .swpk-extra__add:focus-visible { outline: 3px solid color-mix(in srgb, var(--swpk-accent) 55%, transparent); outline-offset: 2px; }
@media (max-width: 480px) { .swpk .swpk-extras-list .swpk-list__item.has-extra { grid-template-columns: minmax(0, 1fr) auto; } .swpk .swpk-extra__add { grid-column: 1 / -1; justify-self: start; } }

/* ====== Package components with images ======
   One markup, five presentations. "lines" is the text list of 1.x; the others put the photo of
   each component up front, so what is included and what can be rented on its own both read at a
   glance. A component without a photo keeps a check or a dash in its place. */
.swpk .swpk-items { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.swpk .swpk-items__group { grid-column: 1 / -1; margin: 10px 0 -2px; padding: 0; list-style: none; }
.swpk .swpk-items__group::before, .swpk .swpk-items__group::after, .swpk .swpk-items__group::marker { content: none; }
.swpk .swpk-items__group:first-child { margin-top: 0; }
.swpk .swpk-item { position: relative; display: grid; min-width: 0; margin: 0; padding: 0; border: 0; list-style: none; }
.swpk .swpk-item::before, .swpk .swpk-item::after, .swpk .swpk-item::marker { content: none; }
.swpk .swpk-item__media { position: relative; overflow: hidden; background: color-mix(in srgb, var(--swpk-text) 7%, transparent); border-radius: calc(var(--swpk-card-radius) * .55); }
.swpk .swpk-item__img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; border-radius: inherit; transition: scale .35s ease; }
/* No photo yet: a quiet panel of the same size, so a row of tiles stays even. */
.swpk .swpk-item__placeholder { display: grid; place-items: center; width: 100%; height: 100%; color: var(--swpk-yes); background-image: repeating-linear-gradient(135deg, color-mix(in srgb, var(--swpk-text) 5%, transparent) 0 7px, transparent 7px 16px); }
.swpk .swpk-item.is-out .swpk-item__placeholder { color: var(--swpk-no); }
.swpk .swpk-item__placeholder .swpk-item__mark { width: 34%; max-width: 28px; height: auto; opacity: .85; }
.swpk .swpk-item__body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.swpk .swpk-item__label { font-weight: 600; line-height: 1.35; overflow-wrap: normal; hyphens: auto; }
.swpk .swpk-item.is-highlight .swpk-item__label { font-weight: 800; }
.swpk .swpk-item__note { color: var(--swpk-muted); font-size: .86em; line-height: 1.4; }
.swpk .swpk-item__flag { display: inline-flex; align-items: center; gap: 5px; margin-top: 2px; color: var(--swpk-yes); font-size: .74em; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.swpk .swpk-item.is-out .swpk-item__flag { color: var(--swpk-muted); }
.swpk .swpk-item__mark { flex: none; }
.swpk .swpk-item__buy { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-top: 6px; }
.swpk .swpk-item__buy .swpk-extra__price { font-size: .95em; }
/* Sits in the package and is also for rent on its own */
.swpk .swpk-item__link { align-self: flex-start; margin-top: 4px; color: var(--swpk-muted); font-size: .82em; font-weight: 600; text-decoration: none; border-bottom: 1px solid color-mix(in srgb, currentColor 35%, transparent); }
.swpk .swpk-item__link:hover { color: var(--swpk-accent); }
.swpk .swpk-item__from { font-weight: 700; white-space: nowrap; }

/* List with small photos */
.swpk .is-thumbs .swpk-items { gap: 8px; }
.swpk .is-thumbs .swpk-item { grid-template-columns: 64px minmax(0, 1fr); align-items: center; gap: 14px; padding: 6px 0; }
.swpk .is-thumbs .swpk-item + .swpk-item { border-top: 1px solid color-mix(in srgb, var(--swpk-border) 70%, transparent); }
.swpk .is-thumbs .swpk-item__media { aspect-ratio: 1 / 1; }
.swpk .is-thumbs .swpk-item__flag { display: none; }
.swpk .is-thumbs .swpk-item.is-out .swpk-item__label { color: var(--swpk-muted); }

/* Tiles and vitrine: a card per component, photo on top */
.swpk .is-tiles .swpk-items { grid-template-columns: repeat(auto-fill, minmax(182px, 1fr)); gap: 14px; }
.swpk .is-showcase .swpk-items { grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 18px; }
.swpk :is(.is-tiles, .is-showcase) .swpk-item { overflow: hidden; border: var(--swpk-card-border-width) solid var(--swpk-card-border-color); border-radius: var(--swpk-card-radius); background: var(--swpk-surface); transition: transform var(--swpk-speed), box-shadow var(--swpk-speed); }
.swpk :is(.is-tiles, .is-showcase) .swpk-item:hover { transform: translateY(-2px); box-shadow: 0 14px 30px color-mix(in srgb, var(--swpk-shadow-color) 16%, transparent); }
.swpk :is(.is-tiles, .is-showcase) .swpk-item:hover .swpk-item__img { scale: 1.04; }
.swpk :is(.is-tiles, .is-showcase) .swpk-item__media { border-radius: 0; }
.swpk .is-tiles .swpk-item__body { padding: 10px 12px 12px; }
.swpk .is-showcase .swpk-item__body { gap: 5px; padding: 14px 16px 16px; }
.swpk .is-showcase .swpk-item__label { font-size: 1.06em; }
.swpk :is(.is-tiles, .is-showcase) .swpk-item.is-out { background: color-mix(in srgb, var(--swpk-surface) 55%, transparent); border-style: dashed; }

/* Fixed number of tiles next to each other, instead of as many as fit */
.swpk .swpk-items-block.is-cols-2 .swpk-items { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.swpk .swpk-items-block.is-cols-3 .swpk-items { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.swpk .swpk-items-block.is-cols-4 .swpk-items { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.swpk .swpk-items-block.is-thumbs.is-cols-2 .swpk-items, .swpk .swpk-items-block.is-thumbs.is-cols-3 .swpk-items, .swpk .swpk-items-block.is-thumbs.is-cols-4 .swpk-items { column-gap: 22px; }
.swpk .swpk-items-block.is-thumbs[class*="is-cols-"] .swpk-item + .swpk-item { border-top: 0; }

/* Hover preview of a component on the cards and in the comparison.
   Het bijschrift is geen opsmuk: zonder de naam en de status leest een foto van iets wat niet
   in het pakket zit als bewijs dat het er wel in zit. */
.swpk-thumbtip { position: fixed; z-index: 120; box-sizing: border-box; width: 166px; padding: 5px; border-radius: 12px; background: #fff; color: #171326; box-shadow: 0 12px 34px rgba(12, 10, 24, .3); opacity: 0; transform: scale(.94); transition: opacity .14s ease, transform .14s ease; pointer-events: none; font: 400 13px/1.35 system-ui, -apple-system, "Segoe UI", sans-serif; }
.swpk-thumbtip.is-open.is-ready { opacity: 1; transform: none; }
/* Een vaste verhouding in plaats van height:100%: een thema dat img{height:auto} afdwingt
   (BeTheme doet dat) laat de foto anders met witruimte in het kader staan. */
.swpk-thumbtip .swpk-thumbtip__img { display: block; box-sizing: border-box; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 8px; max-width: none; }
.swpk-thumbtip .swpk-thumbtip__name { display: block; margin: 7px 5px 0; font-weight: 700; overflow-wrap: break-word; }
.swpk-thumbtip .swpk-thumbtip__note { display: block; margin: 1px 5px 4px; color: #6b6480; font-size: .88em; font-weight: 600; }
.swpk-thumbtip .swpk-thumbtip__info { display: block; margin: 5px 5px 4px; color: #4a4459; font-size: .92em; line-height: 1.4; }
.swpk-thumbtip .swpk-thumbtip__name[hidden], .swpk-thumbtip .swpk-thumbtip__note[hidden], .swpk-thumbtip .swpk-thumbtip__info[hidden] { display: none; }

/* Op een telefoon bestaat aanwijzen niet: daar opent hetzelfde met een tik, als paneel van
   onderen. Breder, grotere foto, en een tik ergens anders sluit het weer. */
.swpk-thumbtip.is-sheet { left: 0; right: 0; bottom: 0; top: auto; width: 100%; max-height: 80vh; overflow: auto; padding: 14px 16px calc(18px + env(safe-area-inset-bottom, 0px)); border-radius: 18px 18px 0 0; transform: translateY(14px); box-shadow: 0 -10px 40px rgba(12, 10, 24, .38); font-size: 15px; }
.swpk-thumbtip.is-sheet.is-open.is-ready { transform: none; }
.swpk-thumbtip.is-sheet .swpk-thumbtip__img { aspect-ratio: 16 / 10; border-radius: 12px; }
.swpk-thumbtip.is-sheet .swpk-thumbtip__name { margin: 12px 0 0; font-size: 1.08em; }
.swpk-thumbtip.is-sheet .swpk-thumbtip__note { margin: 3px 0 0; }
.swpk-thumbtip.is-sheet .swpk-thumbtip__info { margin: 8px 0 0; }
.swpk-thumbtip.is-sheet::before { content: ""; display: block; width: 44px; height: 4px; margin: 0 auto 12px; border-radius: 2px; background: #d7d3e2; }
/* Niet inbegrepen: ingetogen foto, zodat het signaal er al is voordat je de tekst leest. */
.swpk-thumbtip.is-out .swpk-thumbtip__img { filter: grayscale(1); opacity: .62; }
.swpk-thumbtip.is-out .swpk-thumbtip__name { color: #6b6480; font-weight: 600; }
.swpk-thumbtip.is-out .swpk-thumbtip__note { color: #b4342f; }
@media (prefers-reduced-motion: reduce) { .swpk-thumbtip { transition: none; } }

/* Shape of the component photo (tiles and vitrine) */
.swpk :is(.is-tiles, .is-showcase).is-ratio-square .swpk-item__media { aspect-ratio: 1 / 1; }
.swpk :is(.is-tiles, .is-showcase).is-ratio-photo .swpk-item__media { aspect-ratio: 3 / 2; }
.swpk :is(.is-tiles, .is-showcase).is-ratio-landscape .swpk-item__media { aspect-ratio: 4 / 3; }
.swpk :is(.is-tiles, .is-showcase).is-ratio-wide .swpk-item__media { aspect-ratio: 16 / 9; }

/* ====== Package page: views ======
   Seven layouts over the same zones (media, head, buy, content). The view class owns the
   layout; nothing above this block positions the package page. */
.swpk.swpk-package { --swpk-sticky-top: 90px; --swpk-page-gap: clamp(22px, 3vw, 44px); }
.swpk .swpk-package__main { display: flex; flex-direction: column; gap: var(--swpk-page-gap); min-width: 0; }
.swpk .swpk-package__head { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; min-width: 0; }
.swpk .swpk-package__content { display: flex; flex-direction: column; gap: clamp(20px, 2.4vw, 34px); min-width: 0; }
.swpk .swpk-package__media { min-width: 0; }
.swpk .swpk-package__media-inner { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.swpk .swpk-package__photo { position: relative; overflow: hidden; border-radius: var(--swpk-card-radius); background: color-mix(in srgb, var(--swpk-text) 8%, transparent); }
.swpk .swpk-package__photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; border-radius: inherit; }
.swpk .swpk-package__head .swpk-badge { position: static; align-self: flex-start; }
.swpk .swpk-package__title { margin: 0; font-size: clamp(1.7rem, 1.2rem + 1.6vw, 2.5rem); }
.swpk .swpk-package__desc { color: var(--swpk-muted); max-width: 68ch; }
.swpk .swpk-back { align-self: flex-start; color: var(--swpk-muted); font-size: .9em; font-weight: 600; text-decoration: none; }
.swpk .swpk-back:hover { color: var(--swpk-accent); }
.swpk .swpk-package__subtitle { font-size: 1.05em; }

/* A sticky column never covers what scrolls past it: it is capped to the viewport and
   scrolls internally when its own content is taller. */
.swpk .is-sticky-col { position: sticky; top: var(--swpk-sticky-top); max-height: calc(100vh - var(--swpk-sticky-top) - 20px); overflow: auto; overscroll-behavior: contain; scrollbar-width: thin; }

@media (min-width: 901px) {
	/* Classic: photo on top, one readable column underneath. */
	.swpk.swpk-page-classic { display: block; }
	.swpk.swpk-page-classic .swpk-package__media { margin-bottom: var(--swpk-page-gap); }
	.swpk.swpk-page-classic .swpk-package__photo { aspect-ratio: 16 / 9; max-height: 520px; }
	.swpk.swpk-page-classic .swpk-package__main { max-width: 900px; }
	.swpk.swpk-page-classic .swpk-package__buy { align-self: flex-start; width: min(100%, 620px); }

	/* Product: photo left (sticks inside its own column), buy right, content full width. */
	.swpk.swpk-page-product { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(330px, .92fr); gap: var(--swpk-page-gap); align-items: start; }
	.swpk.swpk-page-product .swpk-package__main { display: contents; }
	.swpk.swpk-page-product .swpk-package__media { grid-column: 1; grid-row: 1 / span 2; }
	.swpk.swpk-page-product .swpk-package__head { grid-column: 2; grid-row: 1; }
	.swpk.swpk-page-product .swpk-package__buy { grid-column: 2; grid-row: 2; margin: 0; }
	.swpk.swpk-page-product .swpk-package__content { grid-column: 1 / -1; grid-row: 3; padding-top: 6px; }
	.swpk.swpk-page-product .swpk-package__photo { aspect-ratio: 4 / 3; }
	.swpk.swpk-page-product.is-sticky .swpk-package__media { align-self: stretch; }
	.swpk.swpk-page-product.is-sticky .swpk-package__media-inner { position: sticky; top: var(--swpk-sticky-top); }
	.swpk.swpk-page-product:not(.has-media) { grid-template-columns: minmax(0, 1fr); }
	.swpk.swpk-page-product:not(.has-media) .swpk-package__head, .swpk.swpk-page-product:not(.has-media) .swpk-package__buy { grid-column: 1; }

	/* Sidebar: everything left, buy block right and in view while reading. */
	.swpk.swpk-page-sidebar { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 380px); gap: var(--swpk-page-gap); align-items: start; }
	.swpk.swpk-page-sidebar .swpk-package__main { display: contents; }
	.swpk.swpk-page-sidebar .swpk-package__head { grid-column: 1; grid-row: 1; }
	.swpk.swpk-page-sidebar .swpk-package__media { grid-column: 1; grid-row: 2; }
	.swpk.swpk-page-sidebar .swpk-package__content { grid-column: 1; grid-row: 3; }
	.swpk.swpk-page-sidebar .swpk-package__buy { grid-column: 2; grid-row: 1 / -1; margin: 0; }
	.swpk.swpk-page-sidebar .swpk-package__photo { aspect-ratio: 16 / 9; }
	.swpk.swpk-page-sidebar.is-sticky .swpk-package__buy { position: sticky; top: var(--swpk-sticky-top); max-height: calc(100vh - var(--swpk-sticky-top) - 20px); overflow: auto; overscroll-behavior: contain; }

	/* Split: title over the full width, photo and buy block next to each other underneath. */
	.swpk.swpk-page-split { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr); gap: var(--swpk-page-gap); align-items: start; }
	.swpk.swpk-page-split .swpk-package__main { display: contents; }
	.swpk.swpk-page-split .swpk-package__head { grid-column: 1 / -1; grid-row: 1; }
	.swpk.swpk-page-split .swpk-package__title { font-size: clamp(2rem, 1.3rem + 2.2vw, 3.1rem); }
	.swpk.swpk-page-split .swpk-package__desc { max-width: 76ch; }
	.swpk.swpk-page-split .swpk-package__media { grid-column: 1; grid-row: 2; }
	.swpk.swpk-page-split .swpk-package__photo { aspect-ratio: 3 / 2; }
	.swpk.swpk-page-split .swpk-package__buy { grid-column: 2; grid-row: 2; margin: 0; }
	.swpk.swpk-page-split .swpk-package__content { grid-column: 1 / -1; grid-row: 3; }
	.swpk.swpk-page-split:not(.has-media) { grid-template-columns: minmax(0, 1fr); }
	.swpk.swpk-page-split:not(.has-media) .swpk-package__buy { grid-column: 1; width: min(100%, 620px); }

	/* Band: a wide photo band, the title underneath it (always readable), buy block alongside. */
	.swpk.swpk-page-band { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 360px); column-gap: var(--swpk-page-gap); align-items: start; }
	.swpk.swpk-page-band .swpk-package__main { display: contents; }
	.swpk.swpk-page-band .swpk-package__media { grid-column: 1 / -1; grid-row: 1; margin-bottom: var(--swpk-page-gap); }
	.swpk.swpk-page-band .swpk-package__photo { aspect-ratio: 21 / 9; max-height: 460px; }
	.swpk.swpk-page-band .swpk-package__head { grid-column: 1; grid-row: 2; margin-bottom: var(--swpk-page-gap); }
	.swpk.swpk-page-band .swpk-package__buy { grid-column: 2; grid-row: 2 / span 2; margin: 0; }
	.swpk.swpk-page-band .swpk-package__content { grid-column: 1; grid-row: 3; }
	.swpk.swpk-page-band.is-sticky .swpk-package__buy { position: sticky; top: var(--swpk-sticky-top); max-height: calc(100vh - var(--swpk-sticky-top) - 20px); overflow: auto; overscroll-behavior: contain; }
	.swpk.swpk-page-band:not(.has-media) .swpk-package__head { grid-row: 1; }

	/* Magazine: a reading column in the middle; photo and components break out wider. */
	.swpk.swpk-page-magazine { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 780px) minmax(0, 1fr); column-gap: 0; row-gap: var(--swpk-page-gap); }
	.swpk.swpk-page-magazine .swpk-package__main { display: contents; }
	.swpk.swpk-page-magazine .swpk-package__media { grid-column: 1 / -1; }
	.swpk.swpk-page-magazine .swpk-package__photo { aspect-ratio: 16 / 7; max-height: 540px; }
	.swpk.swpk-page-magazine .swpk-package__media-inner { width: min(100%, 1180px); margin-inline: auto; }
	.swpk.swpk-page-magazine .swpk-package__head { grid-column: 2; }
	.swpk.swpk-page-magazine .swpk-package__buy { grid-column: 2; margin: 0; }
	.swpk.swpk-page-magazine .swpk-package__content { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 780px) minmax(0, 1fr); column-gap: 0; row-gap: clamp(20px, 2.4vw, 34px); }
	.swpk.swpk-page-magazine .swpk-package__content > * { grid-column: 2; }
	.swpk.swpk-page-magazine .swpk-package__content > :is(.swpk-items-block, .swpk-others) { grid-column: 1 / -1; justify-self: center; width: min(100%, 1180px); }

	/* Full-width content: the two lists side by side, the rest across the whole width. */
	.swpk.swpk-page-product .swpk-package__content, .swpk.swpk-page-hero .swpk-package__content, .swpk.swpk-page-classic .swpk-package__content, .swpk.swpk-page-split .swpk-package__content { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: clamp(18px, 2.2vw, 30px); }
	.swpk.swpk-page-product .swpk-package__content > :is(.swpk-always, .swpk-others, .swpk-custom, .swpk-story), .swpk.swpk-page-hero .swpk-package__content > :is(.swpk-always, .swpk-others, .swpk-custom, .swpk-story), .swpk.swpk-page-classic .swpk-package__content > :is(.swpk-always, .swpk-others, .swpk-custom, .swpk-story), .swpk.swpk-page-split .swpk-package__content > :is(.swpk-always, .swpk-others, .swpk-custom, .swpk-story) { grid-column: 1 / -1; }
	/* A vitrine fills the whole width; two narrow columns would squeeze the photos. */
	.swpk .swpk-package__content > .swpk-items-block.is-showcase { grid-column: 1 / -1; }
}

.swpk .swpk-package__contents, .swpk .swpk-package__excluded { padding: clamp(16px, 2vw, 26px); border: var(--swpk-card-border-width) solid var(--swpk-card-border-color); border-radius: var(--swpk-card-radius); background: color-mix(in srgb, var(--swpk-surface) 70%, transparent); }
.swpk .swpk-package__contents .swpk-package__subtitle, .swpk .swpk-package__excluded .swpk-package__subtitle { margin-bottom: 12px; padding-bottom: 10px; border-bottom: 1px solid var(--swpk-border); }
.swpk .swpk-package__contents .swpk-group:first-of-type, .swpk .swpk-items-block .swpk-group:first-of-type { margin-top: 0; }
/* With tiles the cards carry the frame, so the block around them drops its own. */
.swpk .swpk-items-block:is(.is-tiles, .is-showcase) { padding: 0; border: 0; background: none; }
.swpk .swpk-items-block:is(.is-tiles, .is-showcase) .swpk-package__subtitle { margin-bottom: 14px; padding-bottom: 0; border-bottom: 0; }
.swpk .swpk-items-block:is(.is-tiles, .is-showcase) .swpk-group { margin-top: 18px; }
.swpk .swpk-package__gallery .swpk-package__subtitle { font-size: .92em; color: var(--swpk-muted); font-weight: 600; }

/* Hero: the photo is the stage; title and key facts sit on it, the rest below. */
.swpk.swpk-page-hero { display: grid; grid-template-columns: minmax(0, 1fr); }
.swpk.swpk-page-hero .swpk-package__main { display: contents; }
.swpk.swpk-page-hero .swpk-package__media { grid-area: 1 / 1; margin: 0; }
.swpk.swpk-page-hero .swpk-package__photo { min-height: clamp(360px, 56vh, 620px); height: 100%; }
.swpk.swpk-page-hero .swpk-package__photo::after { content: ""; position: absolute; inset: 0; border-radius: inherit; background: linear-gradient(195deg, rgba(10, 8, 22, .18) 0%, rgba(10, 8, 22, .55) 42%, rgba(10, 8, 22, .92) 100%); }
.swpk.swpk-page-hero .swpk-package__media-inner { position: relative; height: 100%; }
.swpk.swpk-page-hero .swpk-package__head { grid-area: 1 / 1; z-index: 2; align-self: end; justify-self: start; width: min(100%, 720px); padding: clamp(20px, 3.4vw, 46px); color: #fff; }
.swpk.swpk-page-hero .swpk-package__head > * { text-shadow: 0 2px 16px rgba(6, 5, 16, .55); }
.swpk.swpk-page-hero .swpk-package__head .swpk-package__title, .swpk.swpk-page-hero .swpk-package__head .swpk-package__tagline, .swpk.swpk-page-hero .swpk-ideal__text { color: #fff; }
.swpk.swpk-page-hero .swpk-package__title { font-size: clamp(1.9rem, 1.1rem + 2.6vw, 3rem); }
.swpk.swpk-page-hero .swpk-back { color: rgba(255, 255, 255, .85); }
.swpk.swpk-page-hero .swpk-back:hover { color: #fff; }
.swpk.swpk-page-hero .swpk-specs { --swpk-spec-bg: rgba(255, 255, 255, .14); }
.swpk.swpk-page-hero .swpk-specs .swpk-spec { background: rgba(255, 255, 255, .13); border-color: rgba(255, 255, 255, .22); color: #fff; backdrop-filter: blur(6px); text-shadow: none; }
.swpk.swpk-page-hero .swpk-specs .swpk-spec__label { color: rgba(255, 255, 255, .78); }
.swpk.swpk-page-hero .swpk-specs .swpk-spec__value { color: #fff; }
.swpk.swpk-page-hero .swpk-package__buy { grid-area: 3 / 1; width: min(100%, 720px); margin: var(--swpk-page-gap) 0 0; }
.swpk.swpk-page-hero .swpk-package__content { grid-area: 4 / 1; margin-top: var(--swpk-page-gap); }

/* Hero with a gallery: on a wide screen the thumbs sit in the corner of the photo. */
@media (min-width: 1280px) {
	.swpk.swpk-page-hero .swpk-package__gallery { position: absolute; right: clamp(16px, 2vw, 28px); bottom: clamp(16px, 2vw, 28px); z-index: 3; width: min(26%, 260px); margin: 0; }
	.swpk.swpk-page-hero .swpk-package__gallery .swpk-package__subtitle { color: rgba(255, 255, 255, .82); text-shadow: 0 2px 10px rgba(6, 5, 16, .6); }
	.swpk.swpk-page-hero .swpk-gallery { grid-template-columns: repeat(auto-fill, minmax(56px, 1fr)); gap: 6px; }
	.swpk.swpk-page-hero .swpk-package__head { width: min(58%, 680px); }
}

/* Too little room to read text on the photo: the title drops below it. */
@media (max-width: 1279px) {
	.swpk.swpk-page-hero .swpk-package__head { grid-area: auto; grid-column: 1; width: 100%; padding: 0; margin-top: var(--swpk-page-gap); color: inherit; }
	.swpk.swpk-page-hero .swpk-package__head > * { text-shadow: none; }
	.swpk.swpk-page-hero .swpk-package__head .swpk-package__title, .swpk.swpk-page-hero .swpk-package__head .swpk-package__tagline, .swpk.swpk-page-hero .swpk-ideal__text { color: inherit; }
	.swpk.swpk-page-hero .swpk-package__tagline { color: var(--swpk-muted); }
	.swpk.swpk-page-hero .swpk-back { color: var(--swpk-muted); }
	.swpk.swpk-page-hero .swpk-specs .swpk-spec { background: var(--swpk-surface); border-color: var(--swpk-card-border-color); color: inherit; backdrop-filter: none; }
	.swpk.swpk-page-hero .swpk-specs .swpk-spec__label { color: var(--swpk-muted); }
	.swpk.swpk-page-hero .swpk-specs .swpk-spec__value { color: inherit; }
	.swpk.swpk-page-hero .swpk-package__photo::after { background: linear-gradient(195deg, rgba(10, 8, 22, 0) 45%, rgba(10, 8, 22, .35) 100%); }
	.swpk.swpk-page-hero .swpk-package__gallery { margin-top: 14px; }
	.swpk.swpk-page-hero .swpk-package__buy, .swpk.swpk-page-hero .swpk-package__content { grid-area: auto; grid-column: 1; }
}

/* Mobile: one column everywhere, no sticky columns. */
@media (max-width: 900px) {
	.swpk.swpk-page-product, .swpk.swpk-page-sidebar, .swpk.swpk-page-split, .swpk.swpk-page-band, .swpk.swpk-page-magazine { display: block; }
	.swpk.swpk-page-product .swpk-package__media, .swpk.swpk-page-sidebar .swpk-package__media, .swpk.swpk-page-classic .swpk-package__media, .swpk.swpk-page-split .swpk-package__media, .swpk.swpk-page-band .swpk-package__media, .swpk.swpk-page-magazine .swpk-package__media { margin-bottom: var(--swpk-page-gap); }
	.swpk.swpk-page-product .swpk-package__main, .swpk.swpk-page-sidebar .swpk-package__main, .swpk.swpk-page-split .swpk-package__main, .swpk.swpk-page-band .swpk-package__main, .swpk.swpk-page-magazine .swpk-package__main { display: flex; }
	.swpk.swpk-page-magazine .swpk-package__content { display: flex; flex-direction: column; }
	.swpk.swpk-page-magazine .swpk-package__media-inner, .swpk.swpk-page-magazine .swpk-package__content > :is(.swpk-items-block, .swpk-others) { width: 100%; }
	.swpk.swpk-page-product .swpk-package__photo, .swpk.swpk-page-sidebar .swpk-package__photo, .swpk.swpk-page-classic .swpk-package__photo, .swpk.swpk-page-split .swpk-package__photo, .swpk.swpk-page-band .swpk-package__photo, .swpk.swpk-page-magazine .swpk-package__photo { aspect-ratio: 4 / 3; max-height: none; }
	.swpk.swpk-page-hero .swpk-package__photo { min-height: clamp(320px, 62vh, 520px); }
	.swpk.swpk-page-hero .swpk-package__head { padding: 20px; }
	.swpk .is-sticky-col, .swpk.swpk-page-sidebar.is-sticky .swpk-package__buy, .swpk.swpk-page-band.is-sticky .swpk-package__buy, .swpk.swpk-page-product.is-sticky .swpk-package__media-inner { position: static; max-height: none; overflow: visible; }
}

/* Narrow screens: a component tile keeps its photo but gets more room for the text. */
@media (max-width: 560px) {
	.swpk .is-tiles .swpk-items, .swpk .swpk-items-block.is-tiles[class*="is-cols-"] .swpk-items { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; }
	.swpk .is-showcase .swpk-items, .swpk .swpk-items-block.is-showcase[class*="is-cols-"] .swpk-items { grid-template-columns: minmax(0, 1fr); }
	.swpk .is-thumbs .swpk-item { grid-template-columns: 54px minmax(0, 1fr); gap: 11px; }
	.swpk .swpk-items-block.is-thumbs[class*="is-cols-"] .swpk-items { grid-template-columns: minmax(0, 1fr); }
}

/* ====== Package page: own settings on top of the view ======
   Each of these only does something once it is set in the editor; without it the view keeps
   deciding. That way a new setting never changes an existing page by itself. */
.swpk .swpk-package__photo img { object-position: var(--swpk-page-focus, center); }
.swpk.swpk-package.has-own-ratio .swpk-package__photo { aspect-ratio: var(--swpk-page-ratio); min-height: 0; max-height: none; }
.swpk.swpk-package.is-align-center .swpk-package__head { align-items: center; text-align: center; }
.swpk.swpk-package.is-align-center .swpk-package__desc { margin-left: auto; margin-right: auto; }
.swpk.swpk-package.is-align-center .swpk-specs { justify-content: center; }

@media (min-width: 901px) {
	/* The buy block decides the width of its own column where it has one. */
	.swpk.swpk-page-product, .swpk.swpk-page-split { grid-template-columns: minmax(0, 1.08fr) var(--swpk-buy-width, minmax(330px, .92fr)); }
	.swpk.swpk-page-sidebar, .swpk.swpk-page-band { grid-template-columns: minmax(0, 1fr) var(--swpk-buy-width, minmax(300px, 380px)); }
	.swpk.swpk-package.has-buy-width .swpk-package__buy { width: min(100%, var(--swpk-buy-width)); }

	/* Number of columns in the content zone, whatever the view does by itself. */
	.swpk.swpk-package.swpk-cc-1 .swpk-package__content { display: flex; flex-direction: column; }
	.swpk.swpk-package.swpk-cc-2 .swpk-package__content { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: clamp(18px, 2.2vw, 30px); }
	.swpk.swpk-package.swpk-cc-2 .swpk-package__content > * { grid-column: auto; width: auto; justify-self: stretch; }
	.swpk.swpk-package.swpk-cc-2 .swpk-package__content > :is(.swpk-always, .swpk-others, .swpk-custom, .swpk-story, .is-showcase) { grid-column: 1 / -1; }
}

/* Width */
.swpk.swpk-pw-wide { max-width: 1400px; margin-left: auto; margin-right: auto; }
.swpk.swpk-pw-full { max-width: none; }

/* ====== Gallery ====== */
.swpk .swpk-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: 8px; }
.swpk .swpk-gallery__item { padding: 0; border: 0; border-radius: calc(var(--swpk-card-radius) * .5); background: none; cursor: zoom-in; overflow: hidden; line-height: 0; }
.swpk .swpk-gallery__img { display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: cover; transition: scale .3s ease; }
.swpk .swpk-gallery__item:hover .swpk-gallery__img { scale: 1.05; }
.swpk .swpk-gallery__item:focus-visible { outline: 3px solid color-mix(in srgb, var(--swpk-accent) 55%, transparent); outline-offset: 2px; }
.swpk-lightbox .swpk-modal__box { width: min(1100px, 100%); padding: 0; background: none; box-shadow: none; }
.swpk-lightbox img { display: block; width: 100%; height: auto; max-height: 86vh; object-fit: contain; border-radius: 12px; }

/* ====== Trust lines ====== */
.swpk .swpk-trust { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 4px 0 0; padding: 0; list-style: none; }
.swpk .swpk-trust li { display: inline-flex; align-items: center; gap: 8px; margin: 0; font-size: .88em; font-weight: 600; color: var(--swpk-muted); }
.swpk .swpk-trust__icon { flex: none; width: 18px; height: 18px; color: var(--swpk-yes); }

/* ====== Other packages ====== */
.swpk .swpk-others__cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.swpk .swpk-others__card { display: flex; flex-direction: column; overflow: hidden; border: var(--swpk-card-border-width) solid var(--swpk-card-border-color); border-radius: var(--swpk-card-radius); background: var(--swpk-card-bg); color: var(--swpk-text); text-decoration: none; transition: transform var(--swpk-speed), box-shadow var(--swpk-speed); }
.swpk .swpk-others__card:hover { transform: translateY(-3px); box-shadow: 0 16px 34px color-mix(in srgb, var(--swpk-shadow-color) 18%, transparent); }
.swpk .swpk-others__media { display: block; aspect-ratio: 16 / 10; overflow: hidden; }
.swpk .swpk-others__img { width: 100%; height: 100%; object-fit: cover; }
.swpk .swpk-others__body { display: flex; flex-direction: column; gap: 4px; padding: 12px 14px 14px; }
.swpk .swpk-others__ideal { color: var(--swpk-muted); font-size: .86em; }
.swpk .swpk-others__price { margin-top: 4px; font-weight: 800; }
.swpk .swpk-from { color: var(--swpk-muted); font-size: .82em; font-weight: 600; }
.swpk .swpk-others__table { width: 100%; border-collapse: collapse; }
.swpk .swpk-others__table th, .swpk .swpk-others__table td { padding: 12px 10px; border-bottom: 1px solid var(--swpk-border); text-align: left; vertical-align: middle; }
.swpk .swpk-others__table th a { color: var(--swpk-text); font-weight: 700; text-decoration: none; }
.swpk .swpk-others__table small { display: block; color: var(--swpk-muted); font-weight: 400; }
.swpk .swpk-others__links { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 0; padding: 0; list-style: none; }
.swpk .swpk-others__links a { color: var(--swpk-accent); font-weight: 700; }

/* ====== Sticky buy bar ====== */
.swpk .swpk-stickybar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 10px clamp(12px, 3vw, 28px) calc(10px + env(safe-area-inset-bottom, 0px)); background: var(--swpk-surface); border-top: 1px solid var(--swpk-border); box-shadow: 0 -10px 30px color-mix(in srgb, var(--swpk-shadow-color) 18%, transparent); transform: translateY(110%); transition: transform .25s ease; }
.swpk .swpk-stickybar.is-visible { transform: none; }
.swpk .swpk-stickybar[hidden] { display: none; }
.swpk .swpk-stickybar__info { display: flex; flex: 1 1 auto; flex-direction: column; min-width: 0; }
.swpk .swpk-stickybar__info strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .95em; }
.swpk .swpk-stickybar .swpk-price { flex-direction: row; align-items: baseline; gap: 6px; }
.swpk .swpk-stickybar .swpk-price__amount { font-size: 1.15em; }
.swpk .swpk-stickybar .swpk-button.swpk-stickybar__btn { flex: 0 0 auto; width: auto; min-width: 180px; }
.swpk .swpk-stickybar.is-mobile { display: none; }
@media (max-width: 900px) { .swpk .swpk-stickybar.is-mobile { display: flex; } }

/* ====== Invullen door de klant ======
   Dezelfde velden op de pakketpagina en in het venster vanaf een kaart; alleen de omlijsting
   verschilt. De cijferkiezer is bewust groot: dit wordt op een telefoon ingevuld. */
.swpk .swpk-fill { display: flex; flex-direction: column; gap: 14px; }
.swpk .swpk-fill__group { margin: 0; padding: 16px 18px 18px; border: 1px solid color-mix(in srgb, var(--swpk-border) 70%, transparent); border-radius: calc(var(--swpk-card-radius) * .7); background: color-mix(in srgb, var(--swpk-text) 4%, transparent); }
.swpk .swpk-fill__group.is-missing { border-color: var(--swpk-no); }
.swpk .swpk-fill__legend { display: flex; align-items: center; gap: 10px; float: left; width: 100%; margin: 0 0 10px; padding: 0; font-weight: 700; line-height: 1.3; }
.swpk .swpk-fill__group::after { content: ""; display: table; clear: both; }
.swpk .swpk-fill__help, .swpk .swpk-fill__inputs { clear: both; }
.swpk .swpk-fill__thumb { flex: none; width: 34px; height: 34px; object-fit: cover; border-radius: 7px; }
.swpk .swpk-fill__req { margin-left: 3px; color: var(--swpk-no); }
.swpk .swpk-fill__help { margin: -4px 0 8px; color: var(--swpk-muted); font-size: .88em; }
.swpk .swpk-fill__inputs { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px; }
.swpk .swpk-fill__field { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.swpk .swpk-fill__nth { color: var(--swpk-muted); font-size: .78em; font-weight: 600; letter-spacing: 0; text-transform: none; }
.swpk .swpk-fill__inputs .swpk-fill__digit {
	box-sizing: border-box; width: 58px; height: 64px; min-width: 0; min-height: 0; max-width: none;
	margin: 0; padding: 0;
	border: 2px solid color-mix(in srgb, var(--swpk-text) 22%, transparent); border-radius: 12px;
	background: color-mix(in srgb, var(--swpk-text) 7%, var(--swpk-surface));
	color: var(--swpk-text);
	font: inherit; font-size: 28px; font-weight: 800; line-height: 1;
	text-align: center; text-transform: none; letter-spacing: 0;
	box-shadow: none; font-variant-numeric: tabular-nums;
}
.swpk .swpk-fill__inputs .swpk-fill__digit:hover { border-color: color-mix(in srgb, var(--swpk-text) 34%, transparent); }
.swpk .swpk-fill__inputs .swpk-fill__digit:focus { border-color: var(--swpk-accent); background: color-mix(in srgb, var(--swpk-accent) 10%, var(--swpk-surface)); }
.swpk .swpk-fill__inputs .swpk-fill__text, .swpk .swpk-fill__inputs .swpk-fill__select {
	box-sizing: border-box; min-height: 0; margin: 0; padding: 11px 13px;
	border: 2px solid color-mix(in srgb, var(--swpk-text) 22%, transparent); border-radius: 10px;
	background: color-mix(in srgb, var(--swpk-text) 7%, var(--swpk-surface));
	color: var(--swpk-text); font: inherit; text-transform: none; box-shadow: none;
}
.swpk .swpk-fill__inputs .swpk-fill__text:focus, .swpk .swpk-fill__inputs .swpk-fill__select:focus { border-color: var(--swpk-accent); }
.swpk .swpk-fill__text { min-width: min(100%, 260px); }
.swpk .swpk-fill__inputs .swpk-fill__digit:focus-visible, .swpk .swpk-fill__inputs .swpk-fill__text:focus-visible, .swpk .swpk-fill__inputs .swpk-fill__select:focus-visible { outline: 3px solid color-mix(in srgb, var(--swpk-accent) 45%, transparent); outline-offset: 2px; }
.swpk .swpk-fill__preview { margin: 10px 0 0; font-size: 1.9em; font-weight: 800; line-height: 1; letter-spacing: .04em; color: var(--swpk-accent); font-variant-numeric: tabular-nums; min-height: 1em; }
.swpk .swpk-fill__preview:empty { display: none; }
.swpk .swpk-fill__unknown { display: inline-flex; align-items: center; gap: 7px; margin-top: 10px; color: var(--swpk-muted); font-size: .88em; }
.swpk .swpk-fill__price { margin: 8px 0 0; color: var(--swpk-muted); font-size: .86em; font-weight: 600; }
.swpk .swpk-fill__error { margin: 8px 0 0; color: var(--swpk-no); font-size: .86em; font-weight: 600; }
.swpk .swpk-fill__error[hidden] { display: none; }

/* Het venster vanaf een kaart: op een telefoon een paneel dat van onderen opkomt. */
.swpk-fill-modal .swpk-fill-box { width: min(560px, 100%); display: flex; flex-direction: column; gap: 18px; background: var(--swpk-surface); color: var(--swpk-text); }
.swpk-fill-modal .swpk-fill-modal__title {
	margin: 0; padding: 0 46px 0 0;
	/* Thema's zetten vaak `h2 { color: … !important }`. Daar is niets anders tegen bestand, en een
	   onleesbare koptekst maakt het venster stuk. Dit is de enige plek waar dat nodig is. */
	color: var(--swpk-text) !important;
	font: inherit; font-size: 1.3em; font-weight: 800; line-height: 1.25;
	letter-spacing: 0; text-transform: none; text-shadow: none;
}
.swpk-fill-modal .swpk-fill-modal__sub { margin: 6px 0 0; padding: 0 46px 0 0; color: var(--swpk-muted); font-size: .92em; line-height: 1.45; }
.swpk-fill-modal__body { display: flex; flex-direction: column; gap: 16px; }
.swpk-fill-modal__go { width: 100%; }
@media (max-width: 600px) {
	.swpk-fill-modal .swpk-modal__box { position: fixed; left: 0; right: 0; bottom: 0; width: 100%; max-height: 88vh; overflow: auto; border-radius: 18px 18px 0 0; }
	.swpk .swpk-fill__inputs .swpk-fill__digit { width: 52px; height: 58px; font-size: 25px; }
}

/* ====== Description block (the reading text of the package page) ====== */
.swpk .swpk-story { min-width: 0; }
.swpk .swpk-story__title { margin: 0 0 10px; font-size: clamp(1.2rem, 1rem + .6vw, 1.6rem); line-height: 1.25; font-weight: var(--swpk-title-weight); }
.swpk .swpk-story__body { max-width: 68ch; }
.swpk .swpk-story.is-full .swpk-story__body { max-width: none; }
.swpk .swpk-story__body > :first-child { margin-top: 0; }
.swpk .swpk-story__body > :last-child { margin-bottom: 0; }
.swpk .swpk-story__body p { margin: 0 0 1em; }
.swpk .swpk-story__body :is(h2, h3, h4) { margin: 1.5em 0 .4em; line-height: 1.3; }
.swpk .swpk-story__body :is(ul, ol) { margin: 0 0 1em; padding-left: 1.4em; }
.swpk .swpk-story__body li { margin: 0 0 .3em; }
.swpk .swpk-story__body a { color: var(--swpk-accent); }
.swpk .swpk-story__body blockquote { margin: 1.2em 0; padding-left: 16px; border-left: 3px solid var(--swpk-accent); color: var(--swpk-muted); }

/* ====== Own block ====== */
.swpk .swpk-custom > :first-child { margin-top: 0; }
.swpk .swpk-custom > :last-child { margin-bottom: 0; }
.swpk .swpk-package__head .swpk-badge { position: static; align-self: flex-start; }

/* One part on its own: no page layout, no empty zones */
.swpk.is-part, .swpk.is-part .swpk-package__main { display: block; }
.swpk.is-part .swpk-package__media, .swpk.is-part .swpk-package__head, .swpk.is-part .swpk-package__buy, .swpk.is-part .swpk-package__content { margin: 0; }
.swpk.is-part .swpk-package__media:empty, .swpk.is-part .swpk-package__head:empty, .swpk.is-part .swpk-package__content:empty { display: none; }
.swpk.is-part .swpk-package__buy { padding: 0; border: 0; background: none; box-shadow: none; }
.swpk.is-part.swpk-page-hero .swpk-package__head { padding: 0; color: inherit; text-shadow: none; }
