/* MAILINGSTORE: layout bits theme.json can't express. */
:root {
	--ms-blue: var(--wp--preset--color--primary, #054e9e);
	--ms-royal: var(--wp--preset--color--secondary, #0011a4);
	--ms-night: var(--wp--preset--color--accent-3, #032448);
	--ms-surface: var(--wp--preset--color--accent-5, #f4f7fb);
	--ms-tint: var(--wp--preset--color--accent-2, #e7eff9);
	--ms-line: var(--wp--preset--color--accent-6, #dbe3ee);
	--ms-muted: var(--wp--preset--color--accent-4, #5b6478);
	--ms-radius: 14px;
	--ms-shadow: 0 10px 30px rgba(10, 31, 68, .10);
	--ms-gutter: clamp(16px, 3vw, 32px);
}
.ms-container { width: 100%; max-width: calc(var(--wp--style--global--wide-size, 1440px) + 2 * var(--ms-gutter)); margin-inline: auto; padding-inline: var(--ms-gutter); box-sizing: border-box; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

/* ---------- Header ---------- */
.ms-header { position: sticky; top: 0; z-index: 50; background: #fff; box-shadow: 0 1px 0 var(--ms-line); }
.ms-header > * { margin-block: 0; } /* no gap between top bar and header row */
.admin-bar .ms-header { top: var(--wp-admin--admin-bar--height, 32px); }
.ms-topbar { background: var(--ms-night); color: #fff; font-size: .8rem; }
.ms-topbar__inner { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding-block: .4rem; }
.ms-topbar a { color: #fff; }
.ms-topbar__contact { display: flex; align-items: center; gap: 1.1rem; }
.ms-topbar__contact > a + a { padding-left: 1.1rem; border-left: 1px solid rgba(255, 255, 255, .3); line-height: 1.1; }
.ms-header__main { gap: 1.5rem; padding-block: .85rem; min-height: 72px; }
.ms-brand { gap: .75rem; align-items: center; flex: none; }
.ms-brand .wp-block-site-logo img { width: clamp(190px, 19vw, 270px); height: auto; }
.ms-wordmark, .ms-wordmark a { color: var(--ms-blue) !important; text-decoration: none !important; margin: 0; }
.ms-brand:has(.wp-block-site-logo img) .ms-wordmark { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.ms-header__actions { gap: .5rem; align-items: center; flex: none; }
.ms-header__cta .wp-block-button__link { padding: .55rem 1.2rem; font-size: .88rem; }
.ms-header .wc-block-mini-cart__button, .ms-header .wc-block-customer-account a { color: var(--ms-night); }

/* ---------- Mega menu ---------- */
.ms-nav { flex: 1 1 auto; min-width: 0; }
.ms-nav__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: .15rem; }
.ms-nav__item { position: static; }
.ms-nav__link { display: block; cursor: pointer; padding: .55rem .8rem; border-radius: 8px; font-weight: 600; font-size: .92rem; color: var(--ms-night); white-space: nowrap; list-style: none; }
.ms-nav__link::-webkit-details-marker { display: none; }
summary.ms-nav__link::after { content: ""; display: inline-block; width: .4em; height: .4em; margin-left: .45em; border: solid currentColor; border-width: 0 2px 2px 0; transform: translateY(-.2em) rotate(45deg); transition: transform .15s; }
.ms-nav__dd[open] > summary::after { transform: translateY(.05em) rotate(-135deg); }
.ms-nav__link:hover, .ms-nav__dd[open] > .ms-nav__link, .ms-nav__link[aria-current] { background: var(--ms-tint); color: var(--ms-blue); text-decoration: none; }
.ms-nav__panel {
	position: absolute; left: 50%; transform: translateX(-50%); top: 100%; width: min(1320px, calc(100vw - 2 * var(--ms-gutter)));
	display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 1.5rem 2rem;
	background: #fff; border: 1px solid var(--ms-line); border-radius: 0 0 var(--ms-radius) var(--ms-radius); box-shadow: var(--ms-shadow); padding: 1.75rem 2rem; box-sizing: border-box;
}
.ms-nav__colhead { display: block; font-weight: 700; color: var(--ms-blue); padding-bottom: .5rem; margin-bottom: .5rem; border-bottom: 2px solid var(--ms-tint); }
.ms-nav__col ul { list-style: none; margin: 0; padding: 0; }
.ms-nav__col li a, .ms-nav__col li span { display: block; padding: .28rem 0; color: var(--ms-night); font-size: .9rem; }
.ms-nav__col li a:hover { color: var(--ms-blue); }
.ms-nav .ms-menu-strong { font-weight: 700; }
.ms-nav .ms-menu-highlight { color: var(--ms-blue); }

/* ---------- Mobile ---------- */
.ms-nav-toggle { display: none; width: 44px; height: 44px; border: 0; border-radius: 10px; background: var(--ms-tint); cursor: pointer; position: relative; }
.ms-nav-toggle__bars, .ms-nav-toggle__bars::before, .ms-nav-toggle__bars::after { position: absolute; left: 12px; width: 20px; height: 2px; background: var(--ms-night); content: ""; transition: transform .2s, opacity .2s; }
.ms-nav-toggle__bars { top: 21px; }
.ms-nav-toggle__bars::before { left: 0; top: -6px; }
.ms-nav-toggle__bars::after { left: 0; top: 6px; }
.ms-nav-open .ms-nav-toggle__bars { background: transparent; }
.ms-nav-open .ms-nav-toggle__bars::before { transform: translateY(6px) rotate(45deg); }
.ms-nav-open .ms-nav-toggle__bars::after { transform: translateY(-6px) rotate(-45deg); }

@media (max-width: 1100px) {
	.ms-topbar__claim { display: none; }
	.ms-topbar__inner { justify-content: flex-end; }
	.ms-js .ms-nav-toggle { display: block; }
	.ms-header__main { flex-wrap: wrap !important; }
	.ms-nav { order: 3; flex-basis: 100%; }
	.ms-js .ms-nav { display: none; }
	.ms-js .ms-nav-open .ms-nav { display: block; max-height: calc(100vh - 140px); overflow-y: auto; }
	.ms-nav__list { flex-direction: column; align-items: stretch; }
	.ms-nav__link { white-space: normal; padding: .8rem .5rem; border-bottom: 1px solid var(--ms-line); border-radius: 0; }
	summary.ms-nav__link { display: flex; justify-content: space-between; align-items: center; }
	.ms-nav__panel { position: static; transform: none; width: auto; box-shadow: none; border: 0; padding: .75rem .5rem 1rem; grid-template-columns: 1fr; gap: 1rem; }
	.ms-header__cta { display: none !important; }
}
@media (max-width: 480px) {
	.ms-topbar__contact a:first-child { display: none; }
	.ms-wordmark { font-size: 1.05rem !important; }
}

/* ---------- Footer ---------- */
.ms-footer { background: var(--ms-night); color: #c8d3e6; margin-top: clamp(3rem, 6vw, 5rem); font-size: .92rem; }
.ms-footer a { color: #fff; }
.ms-footer__grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1.2fr; gap: 2rem; padding-block: 3.5rem 2.5rem; }
@media (max-width: 900px) { .ms-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .ms-footer__grid { grid-template-columns: 1fr; } }
.ms-footer__logo img { width: 220px; max-width: 100%; height: auto; display: block; margin-bottom: 1rem; }
.ms-footer__title { color: #fff; font-size: .95rem; text-transform: uppercase; letter-spacing: .06em; margin: 0 0 .9rem; }
.ms-footer-menu { list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; }
.ms-footer__bottom { border-top: 1px solid rgba(255, 255, 255, .12); padding-block: 1.1rem; font-size: .8rem; color: #93a3bf; }

/* ---------- Widths (blog posts stay narrow) ---------- */
.single-post .wp-block-post-content > :where(:not(.alignleft):not(.alignright):not(.alignwide):not(.alignfull)),
.single-post .wp-block-post-title { max-width: 780px; margin-left: auto !important; margin-right: auto !important; }

/* ---------- Imported page content (ContentConverter) ---------- */
.ms-section { margin-block: clamp(2rem, 4vw, 3.25rem); }
.ms-section:first-child { margin-top: 0; }
.ms-section:empty { display: none; }
.ms-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1.5rem 2rem; align-items: start; }
.ms-row > * { min-width: 0; }
.ms-image { margin: 0; }
.ms-image img { border-radius: var(--ms-radius); height: auto; max-width: 100%; }
.ms-info {
	background: #fff; border: 1px solid var(--ms-line); border-radius: var(--ms-radius); padding: 1.5rem;
	box-shadow: 0 2px 10px rgba(10, 31, 68, .04); transition: box-shadow .2s, transform .2s;
}
.ms-info:hover { box-shadow: var(--ms-shadow); transform: translateY(-2px); }
.ms-info h3, .ms-info h4 { margin-top: 0; color: var(--ms-blue); }
.ms-cta {
	background: linear-gradient(135deg, var(--ms-blue) 0%, var(--ms-royal) 100%); color: #fff;
	border-radius: calc(var(--ms-radius) + 6px); padding: clamp(1.75rem, 4vw, 3rem); text-align: center;
}
.ms-cta h2, .ms-cta h3, .ms-cta h4 { color: #fff; margin-top: 0; }
.ms-cta a:not(.button) { color: #fff; text-decoration: underline; }
.ms-cta .button { background: #fff !important; color: var(--ms-blue) !important; }
.ms-button { margin-block: 1.25rem; }
.entry-content .button, .wp-block-post-content .button, .ms-button .button {
	display: inline-block; background: var(--ms-blue); color: #fff; border-radius: 999px;
	padding: .75rem 1.6rem; font-weight: 700; font-size: .95rem; text-decoration: none;
}
.ms-button .button:hover { background: var(--ms-royal); color: #fff; text-decoration: none; }
.ms-accordion { display: grid; gap: .6rem; }
.ms-accordion details, .wp-block-post-content details { border: 1px solid var(--ms-line); border-radius: 10px; background: #fff; }
.ms-accordion summary, .wp-block-post-content details > summary { cursor: pointer; padding: .9rem 1.1rem; font-weight: 600; color: var(--ms-night); list-style: none; display: flex; justify-content: space-between; gap: 1rem; }
.ms-accordion summary::-webkit-details-marker, .wp-block-post-content details > summary::-webkit-details-marker { display: none; }
.ms-accordion summary::after, .wp-block-post-content details > summary::after { content: "+"; font-weight: 700; color: var(--ms-blue); }
.ms-accordion details[open] > summary::after, .wp-block-post-content details[open] > summary::after { content: "–"; }
.ms-accordion details > :not(summary), .wp-block-post-content details > :not(summary) { padding: 0 1.1rem; }
.wp-block-post-content table { border-collapse: collapse; width: 100%; font-size: .92rem; }
.wp-block-post-content th, .wp-block-post-content td { border: 1px solid var(--ms-line); padding: .55rem .75rem; text-align: left; }
.wp-block-post-content th { background: var(--ms-surface); }

/* Removed plugin features: hidden for visitors, shown to logged-in staff as a to-do. */
.ms-placeholder { display: none; }
.logged-in .ms-placeholder {
	display: block; border: 2px dashed #d97706; background: #fffbeb; color: #92400e;
	border-radius: 10px; padding: .8rem 1rem; margin-block: 1rem; font-size: .9rem;
}
.logged-in .ms-placeholder::before { content: "Nur für angemeldete Mitarbeiter sichtbar – fehlende Funktion: "; font-weight: 700; }

/* ---------- WooCommerce ---------- */
.woocommerce ul.products li.product, .wc-block-grid__product, .wc-block-product {
	border-radius: var(--ms-radius);
}
.wc-block-components-product-image img, .woocommerce ul.products li.product img { border-radius: 10px; }
.woocommerce-store-notice, p.demo_store { background: var(--ms-blue); }

/* ---------- Product page ---------- */
:root { --ms-header-h: 126px; }
.ms-product-page { padding-bottom: 2rem; }
.ms-product-top { margin-top: 1.25rem; }
.ms-product-top .woocommerce-breadcrumb { font-size: .84rem; color: var(--ms-muted); margin: 0; }
.ms-product { display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 3.5rem) !important; align-items: start; margin-top: 1.25rem; }
.ms-product > .wp-block-column { flex-basis: auto !important; }
.ms-product .wp-block-woocommerce-product-image-gallery img { border-radius: var(--ms-radius); }
.ms-product .woocommerce-product-gallery { margin: 0 !important; width: 100% !important; float: none !important; }
.ms-product .flex-control-thumbs { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(72px, 1fr)); gap: .5rem; margin-top: .6rem !important; }
.ms-product .flex-control-thumbs li { width: auto !important; margin: 0 !important; }
.ms-product .flex-control-thumbs img { border-radius: 8px; border: 2px solid transparent; }
.ms-product .flex-control-thumbs img.flex-active { border-color: var(--ms-blue); }
.ms-product__cat { font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; margin: 0 0 .35rem; }
.ms-product__cat a { color: var(--ms-blue); }
.ms-product__title { margin: 0 0 .75rem; font-size: clamp(1.8rem, 3.2vw, 2.6rem) !important; }
.ms-product__price { font-size: 1.35rem; margin: 0 0 1.25rem; }
.ms-product__price .po-from::before { content: "Standardausführung:"; width: 100%; font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--ms-muted); }
.ms-usp { list-style: none; margin: 0 0 1.5rem; padding: 0; display: grid; gap: .6rem; }
.ms-usp li { background: var(--ms-surface); border-radius: 12px; padding: .8rem 1rem; font-size: .88rem; line-height: 1.4; display: grid; gap: .15rem; }
.ms-usp strong { color: var(--ms-night); }
.ms-usp strong::before { content: "✓"; color: var(--ms-blue); margin-right: .45rem; }
.ms-usp span { color: var(--ms-muted); padding-left: 1.3rem; }
.ms-product__cta .wp-element-button { display: inline-block; padding: .95rem 2.2rem; font-size: 1.02rem; }
.ms-product__cta .wp-element-button::after { content: " ↓"; }
.ms-configurator { margin-top: clamp(2.5rem, 5vw, 4rem); padding: clamp(1.5rem, 3vw, 2.5rem); background: var(--ms-surface); border-radius: calc(var(--ms-radius) + 10px); scroll-margin-top: var(--ms-header-h); }
.ms-configurator__title { margin: 0 0 1.5rem !important; }
.ms-configurator form.cart { margin: 0; }
#po-app { scroll-margin-top: calc(var(--ms-header-h) + 1rem); }
.ms-product-details { margin-top: clamp(2.5rem, 6vw, 4.5rem); }
.ms-product-details__title { text-align: center; margin-bottom: 2rem; }
.ms-related { margin-top: clamp(2.5rem, 6vw, 4rem); }
.ms-related h2 { text-align: center; }
@media (max-width: 960px) {
	.ms-product { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
	.ms-configurator { padding: 1rem .75rem; margin-inline: calc(-1 * var(--wp--style--root--padding-left, 0px)); border-radius: 0; }
}

/* Product cards (shop, categories, related) */
.wc-block-product, .wc-block-grid__product, .woocommerce ul.products li.product {
	background: #fff; border: 1px solid var(--ms-line); padding: .75rem .75rem 1rem !important; transition: box-shadow .2s, transform .2s;
}
.wc-block-product:hover, .wc-block-grid__product:hover, .woocommerce ul.products li.product:hover { box-shadow: var(--ms-shadow); transform: translateY(-2px); }
.wc-block-product .wp-block-post-title, .wc-block-product .wc-block-components-product-name { font-size: 1rem !important; font-weight: 700; }
.wc-block-product .wp-block-post-title a { color: var(--ms-night); }

/* EU guarantee notice links */
.ms-topbar .po-notice__link { color: #fff; text-decoration: underline; text-underline-offset: 2px; }
.ms-footer__notice { margin: .9rem 0 0; font-size: .88rem; }
.ms-footer__notice a { color: #fff; }
@media (max-width: 700px) { .ms-topbar .po-notice__link { display: none; } }
.ms-footer__withdraw { margin: 1rem 0 0; }

/* ---------- Cart, checkout, confirmation (WC blocks) ---------- */
.woocommerce-cart main h1.wp-block-post-title, .woocommerce-checkout main h1.wp-block-post-title { font-size: clamp(1.8rem, 3vw, 2.4rem) !important; margin-bottom: .5rem; }

/* Progress */
.ms-steps { margin: 0 0 2rem; }
.ms-steps ol { list-style: none; margin: 0; padding: 0; display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; }
.ms-steps li { display: flex; align-items: center; gap: .5rem; color: var(--ms-muted); font-weight: 600; font-size: .92rem; }
.ms-steps li + li::before { content: ""; width: clamp(1.5rem, 5vw, 4rem); height: 2px; background: var(--ms-line); margin-right: .5rem; }
.ms-steps li.is-done + li::before, .ms-steps li.is-current::before { background: var(--ms-blue); }
.ms-steps a { display: flex; align-items: center; gap: .5rem; color: inherit; text-decoration: none; }
.ms-steps__num { width: 2rem; height: 2rem; border-radius: 50%; display: grid; place-items: center; background: #fff; border: 2px solid var(--ms-line); font-weight: 800; font-size: .85rem; }
.ms-steps .is-current { color: var(--ms-night); }
.ms-steps .is-current .ms-steps__num { background: var(--ms-blue); border-color: var(--ms-blue); color: #fff; }
.ms-steps .is-done .ms-steps__num { background: var(--ms-tint); border-color: var(--ms-blue); color: var(--ms-blue); }

/* Layout: main + sticky summary card */
/* WC's 65/35 % flex row plus a gap wraps the summary below the items; a grid keeps it beside them. */
.wc-block-components-sidebar-layout.is-medium, .wc-block-components-sidebar-layout.is-large {
	display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(20rem, 24rem); gap: 2rem; align-items: start;
}
.wc-block-components-sidebar-layout.is-medium > .wc-block-components-main, .wc-block-components-sidebar-layout.is-large > .wc-block-components-main,
.wc-block-components-sidebar-layout.is-medium > .wc-block-components-sidebar, .wc-block-components-sidebar-layout.is-large > .wc-block-components-sidebar {
	width: auto !important; max-width: none; padding-left: 0 !important; padding-right: 0 !important; margin: 0 !important;
}
.wc-block-components-sidebar-layout.is-medium > .wc-block-components-sidebar, .wc-block-components-sidebar-layout.is-large > .wc-block-components-sidebar {
	position: sticky; top: calc(var(--ms-header-h, 118px) + 1rem);
}
/* Notices etc. span both columns. */
.wc-block-components-sidebar-layout.is-medium > :not(.wc-block-components-main):not(.wc-block-components-sidebar),
.wc-block-components-sidebar-layout.is-large > :not(.wc-block-components-main):not(.wc-block-components-sidebar) { grid-column: 1 / -1; }
.wc-block-cart__sidebar > .wp-block-woocommerce-cart-order-summary-block,
.wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block {
	background: #fff; border: 1px solid var(--ms-line) !important; border-radius: 18px; box-shadow: 0 16px 40px rgba(3, 36, 72, .10); padding: 1.25rem 1.35rem;
}
.wc-block-cart__totals-title, .wc-block-components-checkout-order-summary__title-text {
	font-size: 1.05rem !important; font-weight: 700 !important; text-transform: none !important; letter-spacing: 0 !important; color: var(--ms-night); margin: 0 0 .5rem !important; padding: 0 !important;
}
.wc-block-components-totals-wrapper { border-top-color: var(--ms-line) !important; }
.wc-block-components-totals-item__label, .wc-block-components-totals-item__value { font-size: .92rem; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label { font-size: .8rem !important; font-weight: 700 !important; text-transform: uppercase; letter-spacing: .05em; color: var(--ms-muted); }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font-size: 1.9rem !important; font-weight: 800 !important; color: var(--ms-night); letter-spacing: -.02em; }
.wc-block-components-totals-footer-item-tax { color: var(--ms-muted); }

/* Primary buttons */
.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button {
	width: 100%; min-height: 3.4rem; border-radius: 999px !important; background: var(--ms-blue) !important; color: #fff !important;
	font-size: 1.05rem !important; font-weight: 800 !important; border: 0 !important; box-shadow: none !important;
}
.wc-block-cart__submit-button:hover, .wc-block-components-checkout-place-order-button:hover:not(:disabled) { background: var(--ms-royal) !important; }
.wc-block-checkout__actions_row { flex-direction: column-reverse; align-items: stretch !important; gap: 1rem; }
.wc-block-components-checkout-return-to-cart-button { text-align: center; color: var(--ms-muted) !important; font-size: .9rem; }

/* Cart items */
.wc-block-cart-items { box-sizing: border-box; width: 100%; background: #fff; border: 1px solid var(--ms-line) !important; border-radius: 18px; border-collapse: separate !important; border-spacing: 0; padding: .25rem 1.25rem; }
.wc-block-cart-items__header { font-size: .72rem !important; letter-spacing: .06em; color: var(--ms-muted); }
.wc-block-cart-items__header th { padding-top: .9rem !important; }
.wc-block-cart-items__row { border-top-color: var(--ms-line) !important; }
.wc-block-cart-items .wc-block-cart-items__row:first-of-type td, .wc-block-cart-items__row td { padding-top: 1.25rem !important; padding-bottom: 1.25rem !important; border-top-color: var(--ms-line) !important; }
.wc-block-cart-item__image img, .wc-block-components-order-summary-item__image img { border-radius: 12px; border: 1px solid var(--ms-line); }
.wc-block-cart .wc-block-components-product-name { font-size: 1.15rem !important; font-weight: 800 !important; color: var(--ms-night) !important; text-decoration: none !important; }
.wc-block-cart-item__prices { display: none !important; } /* unit price = line total, qty always 1 */
.wc-block-cart-item__total .wc-block-components-product-price { font-size: 1.15rem; font-weight: 800; color: var(--ms-night); }
.wc-block-components-product-metadata__description { display: none; }
.wc-block-cart-item__remove-link { font-size: .85rem !important; color: var(--ms-muted) !important; text-decoration: underline !important; }

/* Item configuration as a two-column list, not "a / b / c" */
.wc-block-components-product-details {
	display: grid !important; grid-template-columns: max-content minmax(0, 1fr); gap: .25rem 1rem;
	margin: .75rem 0 .5rem !important; padding: .8rem 1rem; background: var(--ms-surface); border-radius: 12px; font-size: .84rem; line-height: 1.4;
}
.wc-block-components-product-details > span, .wc-block-components-product-details > li { display: contents !important; }
.wc-block-components-product-details span[aria-hidden="true"] { display: none; }
.wc-block-components-product-details__name { color: var(--ms-muted); font-weight: 500 !important; }
.wc-block-components-product-details__value { font-weight: 600; overflow-wrap: break-word; hyphens: auto; }

/* Cart: configuration as a spec grid, label above value; notes and net total span the row */
.wc-block-cart .wc-block-components-product-metadata, .wc-block-cart .wc-block-components-product-details { width: 100%; max-width: none; box-sizing: border-box; }
.wc-block-cart .wc-block-components-product-details {
	grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr)); gap: .85rem 1.5rem; padding: 1rem 1.15rem; line-height: 1.35;
}
.wc-block-cart .wc-block-components-product-details > :is(span, li):not([aria-hidden]) { display: flex !important; flex-direction: column; gap: .15rem; min-width: 0; }
.wc-block-cart .wc-block-components-product-details__name { font-size: .74rem; }
.wc-block-cart .wc-block-components-product-details__auflage .wc-block-components-product-details__value { color: var(--ms-night); font-weight: 800; }
.wc-block-cart .wc-block-components-product-details__versandart,
.wc-block-cart .wc-block-components-product-details__beilagen,
.wc-block-cart .wc-block-components-product-details__beilage-f-r,
.wc-block-cart .wc-block-components-product-details > [class*="beilage-vom-kunden"],
.wc-block-cart .wc-block-components-product-details__druckdaten,
.wc-block-cart .wc-block-components-product-details__adressdaten,
.wc-block-cart .wc-block-components-product-details__porto { grid-column: 1 / -1; }
.wc-block-cart .wc-block-components-product-details > .ms-line-net {
	grid-column: 1 / -1; flex-direction: row !important; justify-content: space-between; align-items: baseline;
	padding-top: .7rem; border-top: 1px solid var(--ms-line);
}
.wc-block-cart .ms-line-net .wc-block-components-product-details__name { font-size: .84rem; }
.wc-block-cart.is-mobile .wc-block-components-product-details, .wc-block-cart.is-small .wc-block-components-product-details { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem 1rem; padding: .9rem 1rem; }


/* Checkout steps as cards */
.wc-block-checkout__form { counter-reset: ms-co-step; }
.wc-block-checkout__form > .wc-block-components-checkout-step,
.wc-block-checkout__form > fieldset.wp-block-woocommerce-checkout-contact-information-block,
.wc-block-checkout__form > fieldset.wp-block-woocommerce-checkout-billing-address-block,
.wc-block-checkout__form > fieldset.wp-block-woocommerce-checkout-shipping-address-block,
.wc-block-checkout__form > fieldset.wp-block-woocommerce-checkout-shipping-methods-block,
.wc-block-checkout__form > fieldset.wp-block-woocommerce-checkout-payment-block {
	background: #fff; border: 1px solid var(--ms-line) !important; border-radius: 16px; padding: 1.25rem 1.35rem 1.4rem !important; margin: 0 0 1rem !important;
}
.wc-block-components-checkout-step__heading { margin: 0 0 1rem !important; }
.wc-block-components-checkout-step__title { display: flex; align-items: center; gap: .75rem; font-size: 1.05rem !important; font-weight: 700 !important; color: var(--ms-night); }
.wc-block-components-checkout-step__title::before {
	counter-increment: ms-co-step; content: counter(ms-co-step);
	flex: none; width: 2rem; height: 2rem; border-radius: 50%; display: grid; place-items: center;
	background: var(--ms-blue); color: #fff; font-weight: 800; font-size: .85rem;
}
.wc-block-components-checkout-step__container::after, .wc-block-components-checkout-step::after { display: none !important; }
.wc-block-components-checkout-step__content { padding-left: 0 !important; }
.wc-block-checkout__guest-checkout-notice { color: var(--ms-muted); font-size: .85rem; }

/* Form fields */
.wc-block-components-text-input input, .wc-block-components-textarea, .wc-block-components-combobox .components-combobox-control input.components-combobox-control__input,
.wc-block-components-country-input select, .wc-block-components-state-input select, .wc-blocks-components-select .wc-blocks-components-select__select {
	border: 1.5px solid var(--ms-line) !important; border-radius: 12px !important; background-color: #fff !important; box-shadow: none !important;
}
.wc-block-components-text-input input:focus, .wc-block-components-textarea:focus, .wc-blocks-components-select .wc-blocks-components-select__select:focus,
.wc-block-components-combobox .components-combobox-control input.components-combobox-control__input:focus {
	border-color: var(--ms-blue) !important; outline: 2px solid var(--ms-blue) !important; outline-offset: 0;
}
.wc-block-components-text-input.has-error input, .wc-blocks-components-select.has-error select { border-color: #b3261e !important; }
.wc-block-components-address-card { border: 1.5px solid var(--ms-line) !important; border-radius: 12px !important; }
.wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox] { border-radius: 6px; border-color: var(--ms-line); }
.wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox]:checked { background: var(--ms-blue); border-color: var(--ms-blue); }
.wc-block-components-checkbox .wc-block-components-checkbox__mark { fill: #fff; }

/* Payment options */
.wc-block-components-radio-control--highlight-checked { border: 0 !important; display: grid; gap: .5rem; }
.wc-block-components-radio-control--highlight-checked::after { display: none !important; }
.wc-block-components-radio-control-accordion-option { border: 1.5px solid var(--ms-line) !important; border-radius: 12px !important; box-shadow: none !important; }
.wc-block-components-radio-control-accordion-option--checked-option-highlighted { border-color: var(--ms-blue) !important; background: var(--ms-tint); box-shadow: inset 0 0 0 1px var(--ms-blue) !important; }
.wc-block-components-radio-control__option { font-weight: 600; }
.wc-block-components-radio-control__input:checked { border-color: var(--ms-blue) !important; }
.wc-block-components-radio-control__input:checked::before { background: var(--ms-blue) !important; }

/* Terms, notes */
.wc-block-checkout__terms { font-size: .85rem; color: var(--ms-muted); }
.wc-block-checkout__terms a, .wc-block-checkout__add-note a { color: var(--ms-blue); }
.wc-block-checkout__order-notes { margin-bottom: 1rem; }

/* Order summary items in the checkout sidebar */
.wc-block-components-order-summary-item { padding-top: 1rem; }
.wc-block-components-order-summary-item__quantity { background: var(--ms-blue) !important; color: #fff !important; border: 2px solid #fff !important; box-shadow: none !important; }
.wc-block-components-order-summary .wc-block-components-product-name { font-weight: 700; color: var(--ms-night); }

/* Trust notes (assets/checkout.js) */
.ms-trust { margin-top: .5rem; padding-top: 1rem; border-top: 1px solid var(--ms-line); }
.wc-block-components-totals-wrapper.slot-wrapper .ms-trust { padding-bottom: 0; } /* WC pads every slot child 16px */
.ms-trust ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .3rem; font-size: .82rem; color: var(--ms-muted); }
.ms-trust li::before { content: "✓"; color: #15803d; font-weight: 800; margin-right: .45rem; }
.ms-trust__help { margin: .75rem 0 0; font-size: .82rem; color: var(--ms-muted); }

/* Coupon panel */
.wc-block-components-totals-coupon .wc-block-components-panel__button { font-weight: 600; color: var(--ms-blue) !important; }
.wc-block-components-totals-coupon__button { border-radius: 12px !important; }

/* Empty cart */
.wp-block-woocommerce-empty-cart-block { text-align: center; padding: 3rem 1rem; background: var(--ms-surface); border-radius: 18px; }
.wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title { font-size: 1.5rem; }

/* Order confirmation */
.wc-block-order-confirmation-status { background: #fff; border: 1px solid var(--ms-line); border-left: 5px solid #15803d; border-radius: 16px; padding: 1.5rem 1.75rem; margin-bottom: 1.5rem; }
.wc-block-order-confirmation-summary { background: var(--ms-surface); border-radius: 16px; padding: 1.25rem 1.5rem; }
.wc-block-order-confirmation-totals table, .wc-block-order-confirmation-downloads table { border-radius: 16px; overflow: hidden; border: 1px solid var(--ms-line) !important; }
.wc-block-order-confirmation-billing-address, .wc-block-order-confirmation-shipping-address { border: 1px solid var(--ms-line) !important; border-radius: 16px; }

@media (max-width: 782px) {
	.wc-block-cart-items { padding: .25rem .9rem; }
	.ms-steps__label { font-size: .85rem; }
	.wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font-size: 1.5rem !important; }
}
/* Configured items: qty fixed at 1 (Store API editable=false), hide the read-only field. */
.wc-block-components-quantity-selector:has(input[readonly]) { display: none; }
/* Narrow cart: WC stacks the row as a grid, keep the card on screen. */
.wc-block-cart.is-mobile .wc-block-cart-items, .wc-block-cart.is-small .wc-block-cart-items { padding: 0 .75rem; }
.wc-block-cart.is-mobile table.wc-block-cart-items, .wc-block-cart.is-small table.wc-block-cart-items,
.wc-block-cart.is-mobile table.wc-block-cart-items > tbody, .wc-block-cart.is-small table.wc-block-cart-items > tbody { display: block; width: 100%; }

/* Checkout header (page-checkout.html): logo, help, no menu */
.ms-header--checkout { position: static; }
.ms-checkout-help { display: flex; gap: 1.25rem; align-items: center; font-size: .85rem; color: var(--ms-muted); }
.ms-checkout-help__secure { font-weight: 700; color: var(--ms-night); }
.ms-checkout-help__secure { display: inline-flex; align-items: center; gap: .45rem; }
.ms-checkout-help__secure svg { color: #15803d; }
.ms-checkout-page { padding-top: 1.5rem; }
@media (max-width: 600px) { .ms-checkout-help__phone { display: none; } }

/* Checkout summary item: image | name | total, configuration full width below */
.wc-block-components-order-summary-item { display: grid !important; grid-template-columns: 3rem minmax(0, 1fr) auto; column-gap: .9rem; align-items: start; }
.wc-block-components-order-summary-item__image { grid-column: 1; grid-row: 1; width: 3rem !important; }
.wc-block-components-order-summary-item__description { display: contents !important; }
.wc-block-components-order-summary-item__description > .wc-block-components-product-name { grid-column: 2; grid-row: 1; align-self: center; }
.wc-block-components-order-summary-item__individual-prices, .wc-block-components-order-summary-item__description > .wc-block-cart-item__prices { display: none !important; }
.wc-block-components-order-summary-item__description > .wc-block-components-product-metadata { grid-column: 1 / -1; grid-row: 2; }
.wc-block-components-order-summary-item__total-price { grid-column: 3; grid-row: 1; align-self: center; font-weight: 800; color: var(--ms-night); }
.wc-block-components-order-summary .wc-block-components-product-details { font-size: .8rem; padding: .7rem .85rem; margin-top: .6rem !important; }
.wc-block-components-order-summary-item__quantity { display: none !important; } /* always 1 */

/* Summary card: drop WC's own lines around the title */
.wc-block-components-checkout-order-summary__title { border: 0 !important; }
.wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-checkout-order-summary__content > .wc-block-components-totals-wrapper:first-child { border-top: 0 !important; }

/* Selects: room for the arrow */
.wc-blocks-components-select .wc-blocks-components-select__select { padding-right: 2.6rem !important; text-overflow: ellipsis; }

@media (max-width: 520px) {
	.ms-steps { margin-bottom: 1.25rem; }
	.ms-steps ol { flex-wrap: nowrap; gap: .35rem; }
	.ms-steps li + li::before { width: .9rem; margin-right: .1rem; }
	.ms-steps li:not(.is-current) .ms-steps__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
	.ms-steps__num { width: 1.8rem; height: 1.8rem; }
}
@media (max-width: 782px) {
	.wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block { padding: .35rem 1rem; }
}

/* Narrow cart row: image | name | total, configuration and "remove" full width below */
.wc-block-cart.is-mobile .wc-block-cart-items__row, .wc-block-cart.is-small .wc-block-cart-items__row {
	display: grid !important; grid-template-columns: 4rem minmax(0, 1fr) auto; column-gap: .75rem; align-items: start; padding: 1rem 0 !important;
}
.wc-block-cart.is-mobile .wc-block-cart-items__row > td, .wc-block-cart.is-small .wc-block-cart-items__row > td { padding: 0 !important; border: 0 !important; }
.wc-block-cart.is-mobile .wc-block-cart-item__image, .wc-block-cart.is-small .wc-block-cart-item__image { grid-column: 1; grid-row: 1; width: 4rem !important; }
.wc-block-cart.is-mobile .wc-block-cart-item__product, .wc-block-cart.is-small .wc-block-cart-item__product,
.wc-block-cart.is-mobile .wc-block-cart-item__wrap, .wc-block-cart.is-small .wc-block-cart-item__wrap { display: contents !important; }
.wc-block-cart.is-mobile .wc-block-cart-item__wrap > .wc-block-components-product-name, .wc-block-cart.is-small .wc-block-cart-item__wrap > .wc-block-components-product-name { grid-column: 2; grid-row: 1; align-self: center; }
.wc-block-cart.is-mobile .wc-block-cart-item__total, .wc-block-cart.is-small .wc-block-cart-item__total { grid-column: 3; grid-row: 1; align-self: center; }
.wc-block-cart.is-mobile .wc-block-cart-item__wrap > .wc-block-components-product-metadata, .wc-block-cart.is-small .wc-block-cart-item__wrap > .wc-block-components-product-metadata { grid-column: 1 / -1; grid-row: 2; }
.wc-block-cart.is-mobile .wc-block-cart-item__wrap > .wc-block-cart-item__quantity, .wc-block-cart.is-small .wc-block-cart-item__wrap > .wc-block-cart-item__quantity { grid-column: 1 / -1; grid-row: 3; }
.wc-block-cart.is-mobile .wc-block-cart-items__header, .wc-block-cart.is-small .wc-block-cart-items__header { display: none; }
.wc-block-cart.is-mobile .wc-block-cart-items__row, .wc-block-cart.is-small .wc-block-cart-items__row { width: 100%; box-sizing: border-box; margin: 0 !important; }
.wc-block-cart.is-mobile .wc-block-components-product-metadata, .wc-block-cart.is-small .wc-block-components-product-metadata,
.wc-block-cart.is-mobile .wc-block-components-product-details, .wc-block-cart.is-small .wc-block-components-product-details { width: 100%; max-width: none; box-sizing: border-box; }
.wc-block-cart.is-mobile .wc-block-cart-item__quantity, .wc-block-cart.is-small .wc-block-cart-item__quantity { display: flex; justify-content: flex-end; }
.wc-block-cart.is-mobile .wc-block-cart-item__remove-link, .wc-block-cart.is-small .wc-block-cart-item__remove-link { position: static !important; }
/* WC's mobile row tracks (80px 132px) have higher specificity. */
.wc-block-cart.is-mobile table.wc-block-cart-items .wc-block-cart-items__row, .wc-block-cart.is-small table.wc-block-cart-items .wc-block-cart-items__row { grid-template-columns: 4rem minmax(0, 1fr) auto !important; }
.wc-block-cart.is-mobile .wc-block-cart-item__wrap > .wc-block-components-product-metadata, .wc-block-cart.is-small .wc-block-cart-item__wrap > .wc-block-components-product-metadata { grid-column: 1 / -1 !important; grid-row: 2 !important; }
.wc-block-cart.is-mobile .wc-block-cart-item__wrap > .wc-block-cart-item__quantity, .wc-block-cart.is-small .wc-block-cart-item__wrap > .wc-block-cart-item__quantity { grid-column: 1 / -1 !important; grid-row: 3 !important; margin-top: .5rem; }
.wc-block-cart.is-mobile .wc-block-cart-item__total, .wc-block-cart.is-small .wc-block-cart-item__total { grid-column: 3 !important; grid-row: 1 !important; }

/* Order confirmation: same two-column configuration list as the cart */
.wc-block-order-confirmation-totals .wc-item-meta {
	list-style: none; display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: .25rem 1rem;
	margin: .75rem 0 0; padding: .8rem 1rem; background: var(--ms-surface); border-radius: 12px; font-size: .84rem; max-width: 34rem;
}
.wc-block-order-confirmation-totals .wc-item-meta li { display: contents; }
.wc-block-order-confirmation-totals .wc-item-meta .wc-item-meta-label { color: var(--ms-muted); font-weight: 500; }
.wc-block-order-confirmation-totals .wc-item-meta p { margin: 0; font-weight: 600; }
.wc-block-order-confirmation-totals .product-quantity { display: none; }
.wc-block-order-confirmation-totals .wc-item-meta { padding: .8rem 1rem !important; }
.wc-block-order-confirmation-totals .wc-block-order-confirmation-totals__product > a, .wc-block-order-confirmation-totals td.product-name > a { font-weight: 800; color: var(--ms-night); }

/* Products without an option set: no "configure" CTA or heading */
.ms-product-page:not(:has(.po-configurator)) .ms-product__cta,
.ms-configurator:not(:has(.po-configurator)) .ms-configurator__title { display: none; }
.ms-configurator:not(:has(.po-configurator)) { background: none; padding: 0; }
/* Post meta line (date · category) instead of "Verfasst von <admin>" */
.ms-post-meta .wp-block-post-date + .wp-block-post-terms::before { content: "·"; margin-right: .5em; color: var(--ms-muted); }

/* Mailing inserts: shown as part of their mailing (lines carry "Beilage für") */
.wc-block-cart-items__row:has(.wc-block-components-product-details__beilage-f-r) td { border-top: 1px dashed var(--ms-line) !important; }
.wc-block-cart-items__row:has(.wc-block-components-product-details__beilage-f-r) .wc-block-cart-item__image { position: relative; padding-left: 2.25rem !important; }
.wc-block-cart-items__row:has(.wc-block-components-product-details__beilage-f-r) .wc-block-cart-item__image::before {
	content: ""; position: absolute; left: .9rem; top: 0; height: 2.8rem; width: 1rem;
	border-left: 2px solid var(--ms-blue); border-bottom: 2px solid var(--ms-blue); border-bottom-left-radius: 8px;
}
.wc-block-cart-items__row:has(.wc-block-components-product-details__beilage-f-r) .wc-block-cart-item__image img { width: 64px; }
.wc-block-cart-items__row:has(.wc-block-components-product-details__beilage-f-r) .wc-block-components-product-name::before,
.wc-block-components-order-summary-item:has(.wc-block-components-product-details__beilage-f-r) .wc-block-components-product-name::before {
	content: "Beilage"; display: inline-block; margin-right: .5rem; padding: .1rem .55rem; border-radius: 999px;
	background: var(--ms-tint); color: var(--ms-blue); font-size: .72rem; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; vertical-align: .15em;
}
.wc-block-components-product-details__beilage-f-r .wc-block-components-product-details__value,
.wc-block-components-product-details__beilagen .wc-block-components-product-details__value { color: var(--ms-blue); }
.wc-block-components-order-summary-item:has(.wc-block-components-product-details__beilage-f-r) { margin-left: 1rem; padding-left: .85rem; border-left: 3px solid var(--ms-tint); }
.wc-block-cart.is-mobile .wc-block-cart-items__row:has(.wc-block-components-product-details__beilage-f-r),
.wc-block-cart.is-small .wc-block-cart-items__row:has(.wc-block-components-product-details__beilage-f-r) { margin-left: .75rem !important; padding-left: .75rem !important; border-left: 3px solid var(--ms-tint); width: calc(100% - .75rem); }
.wc-block-cart.is-mobile .wc-block-cart-items__row:has(.wc-block-components-product-details__beilage-f-r) .wc-block-cart-item__image,
.wc-block-cart.is-small .wc-block-cart-items__row:has(.wc-block-components-product-details__beilage-f-r) .wc-block-cart-item__image { padding-left: 0 !important; }
.wc-block-cart.is-mobile .wc-block-cart-items__row:has(.wc-block-components-product-details__beilage-f-r) .wc-block-cart-item__image::before,
.wc-block-cart.is-small .wc-block-cart-items__row:has(.wc-block-components-product-details__beilage-f-r) .wc-block-cart-item__image::before { display: none; }
.wc-block-components-order-summary-item:has(.wc-block-components-product-details__beilage-f-r) { box-sizing: border-box; max-width: calc(100% - 1rem); }
@media (max-width: 600px) {
	.wc-block-cart .wc-block-components-product-name { font-size: 1rem !important; overflow-wrap: normal; word-break: normal; hyphens: auto; }
}

/* ---------- Front page (templates/front-page.html) ---------- */
.ms-home { overflow-x: clip; }
.ms-btn { display: inline-flex; align-items: center; justify-content: center; gap: .4rem; border-radius: 999px; padding: .85rem 1.7rem; font-weight: 800; text-decoration: none !important; background: var(--ms-blue); color: #fff !important; transition: background .15s, transform .15s; }
.ms-btn:hover { background: var(--ms-royal); transform: translateY(-1px); }
.ms-btn--light { background: #fff; color: var(--ms-blue) !important; }
.ms-btn--light:hover { background: var(--ms-tint); }
.ms-btn--ghost { background: transparent; color: #fff !important; box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .6); }
.ms-btn--ghost:hover { background: rgba(255, 255, 255, .12); }

.ms-hero { background: radial-gradient(1200px 500px at 85% 20%, rgba(0, 17, 164, .55), transparent 60%), linear-gradient(135deg, var(--ms-night) 0%, #073a78 60%, var(--ms-blue) 100%); color: #fff; padding-block: clamp(3rem, 7vw, 5.5rem) clamp(5rem, 9vw, 7.5rem); }
.ms-hero__inner { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.ms-hero__kicker { margin: 0 0 .75rem; font-size: .82rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #9fc3ff; }
.ms-about .ms-hero__kicker { color: var(--ms-blue); }
.ms-hero__title { color: #fff !important; font-size: clamp(2.2rem, 4.5vw, 3.6rem) !important; line-height: 1.08; margin: 0 0 1rem; letter-spacing: -.02em; }
.ms-hero__lead { font-size: clamp(1.05rem, 1.6vw, 1.25rem); color: #d7e4f7; margin: 0 0 1.5rem; max-width: 38rem; }
.ms-hero__points { list-style: none; margin: 0 0 2rem; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem .75rem; }
.ms-hero__points li { background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .18); border-radius: 999px; padding: .4rem .9rem; font-size: .88rem; font-weight: 600; }
.ms-hero__points li::before { content: "✓"; color: #7ee2a8; font-weight: 800; margin-right: .45rem; }
.ms-hero__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin: 0; }
.ms-hero__media img { width: 100%; height: auto; border-radius: 28px; box-shadow: 0 30px 60px rgba(0, 0, 0, .35); transform: rotate(2deg); }

.ms-home-section { padding-block: clamp(2.5rem, 5vw, 4rem); }
.ms-home-section--areas { margin-top: calc(-1 * clamp(3.5rem, 7vw, 5.5rem)); padding-top: 0; position: relative; z-index: 2; }
.ms-home-section--tint { background: var(--ms-surface); }

.ms-areas { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.ms-area a { display: grid; gap: .35rem; height: 100%; box-sizing: border-box; padding: 1rem 1rem 1.25rem; background: #fff; border-radius: 18px; box-shadow: var(--ms-shadow); text-decoration: none !important; color: var(--ms-night); transition: transform .2s, box-shadow .2s; }
.ms-area a:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(3, 36, 72, .16); }
.ms-area__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 12px; display: block; }
.ms-area__title { font-weight: 800; font-size: 1.1rem; margin-top: .4rem; }
.ms-area__title::after { content: " →"; color: var(--ms-blue); }
.ms-area__text { font-size: .86rem; color: var(--ms-muted); line-height: 1.45; }

.ms-section-head { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: .25rem 1.5rem; margin-bottom: 1.5rem; }
.ms-section-head h2 { margin: 0 !important; grid-column: 1; }
.ms-section-head p { margin: 0; color: var(--ms-muted); grid-column: 1; }
.ms-section-head__more { grid-column: 2; grid-row: 1 / span 2; font-weight: 700; white-space: nowrap; }
.ms-section-head__more::after { content: " →"; }
.ms-section-head--center { grid-template-columns: 1fr; text-align: center; max-width: 46rem; margin-inline: auto; }

.ms-cards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1rem; }
.ms-card__link { display: flex; flex-direction: column; height: 100%; background: #fff; border: 1px solid var(--ms-line); border-radius: 18px; overflow: hidden; text-decoration: none !important; color: var(--ms-night); transition: transform .2s, box-shadow .2s, border-color .2s; }
.ms-card__link:hover { transform: translateY(-4px); box-shadow: var(--ms-shadow); border-color: transparent; }
.ms-card__media { background: var(--ms-surface); }
.ms-card__media img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; }
.ms-card__body { display: flex; flex-direction: column; gap: .35rem; padding: .9rem 1rem 1.1rem; flex: 1; }
.ms-card__title { font-weight: 800; line-height: 1.25; }
.ms-card__price { font-size: .9rem; }
.ms-card__price:empty { display: none; }
.ms-card__free { font-weight: 800; color: #15803d; }
.ms-card__cta { margin-top: auto; padding-top: .35rem; font-size: .85rem; font-weight: 800; color: var(--ms-blue); }
.ms-card__cta::after { content: " →"; }
.ms-card__cta { white-space: nowrap; }
.ms-card__cta-short { display: none; }

.ms-advisor { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem 2rem; padding: clamp(1.5rem, 4vw, 2.5rem) clamp(1.5rem, 4vw, 3rem); border-radius: 24px; color: #fff; background: linear-gradient(120deg, var(--ms-blue), var(--ms-royal)); }
.ms-advisor h2 { color: #fff !important; margin: 0 0 .35rem !important; }
.ms-advisor p { margin: 0; color: #dbe7ff; max-width: 40rem; }

.ms-usps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.ms-usps > li { background: #fff; border-radius: 18px; padding: 1.4rem 1.5rem; border: 1px solid var(--ms-line); }
.ms-usps h3 { margin: 0 0 .75rem !important; font-size: 1.1rem !important; color: var(--ms-blue); }
.ms-usps ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .35rem; font-size: .92rem; }
.ms-usps ul li::before { content: "✓"; color: #15803d; font-weight: 800; margin-right: .5rem; }

.ms-about { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.ms-about__media img { width: 100%; height: auto; border-radius: 24px; display: block; }
.ms-about__text h2 { margin-top: 0 !important; }
.ms-about__text p { color: #374151; }

.ms-posts .wp-block-post-template { gap: 1rem !important; }
.ms-posts .wp-block-post { background: #fff; border: 1px solid var(--ms-line); border-radius: 18px; overflow: hidden; padding-bottom: 1rem; }
.ms-posts .wp-block-post-featured-image { margin: 0 0 .75rem !important; }
.ms-posts .wp-block-post-date, .ms-posts .wp-block-post-title { padding-inline: 1rem; margin: 0 !important; }
.ms-posts .wp-block-post-date { color: var(--ms-muted); }
.ms-posts .wp-block-post-title { font-size: 1rem !important; line-height: 1.35; margin-top: .25rem !important; }
.ms-posts .wp-block-post-title a { color: var(--ms-night); text-decoration: none; }
.ms-posts .wp-block-post-title a:hover { color: var(--ms-blue); }

.ms-inquiry { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1.5rem 3rem; align-items: center; padding: clamp(1.5rem, 4vw, 2.5rem) clamp(1.5rem, 4vw, 3rem); border-radius: 24px; background: var(--ms-surface); border: 1px solid var(--ms-line); }
.ms-inquiry h2 { margin: 0 0 .5rem !important; }
.ms-inquiry p { margin: 0; color: #374151; }
.ms-inquiry__actions { display: grid; gap: .6rem; justify-items: center; }
.ms-inquiry__phone { font-weight: 700; }

@media (max-width: 1100px) {
	.ms-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.ms-areas { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ms-posts .wp-block-post-template { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 800px) {
	.ms-hero__inner, .ms-about, .ms-inquiry { grid-template-columns: minmax(0, 1fr); }
	.ms-hero__media { max-width: 420px; }
	.ms-usps { grid-template-columns: minmax(0, 1fr); }
	.ms-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ms-section-head { grid-template-columns: 1fr; }
	.ms-section-head__more { grid-column: 1; grid-row: auto; }
}
@media (max-width: 480px) {
	.ms-areas { grid-template-columns: minmax(0, 1fr); }
	.ms-posts .wp-block-post-template { grid-template-columns: minmax(0, 1fr) !important; }
}
/* front page: no gap under header, uncropped blog images, compact areas on phones */
.ms-home { margin-block-start: 0 !important; }
/* Blog cards: square images (640×640 source), equal heights, "Weiterlesen" at the bottom */
.ms-posts .wp-block-post-template { align-items: stretch; }
.ms-posts .wp-block-post { display: flex; flex-direction: column; }
.ms-posts .wp-block-post-featured-image { aspect-ratio: 1 !important; overflow: hidden; }
.ms-posts .wp-block-post-featured-image a, .ms-posts .wp-block-post-featured-image img { display: block; width: 100% !important; height: 100% !important; object-fit: cover; }
.ms-posts .wp-block-post-featured-image img { transition: transform .3s; }
.ms-posts .wp-block-post:hover .wp-block-post-featured-image img { transform: scale(1.03); }
.ms-posts .ms-posts__more { margin: auto 1rem 0 !important; padding-top: .75rem; font-size: .85rem; font-weight: 800; color: var(--ms-blue); text-decoration: none; }
.ms-posts .ms-posts__more::after { content: " →"; }
@media (max-width: 800px) {
	.ms-hero__media { max-width: 300px; margin-inline: auto; }
	.ms-hero__media img { border-radius: 20px; }
}
@media (max-width: 600px) {
	.ms-areas { grid-template-columns: minmax(0, 1fr); gap: .6rem; }
	.ms-area a { grid-template-columns: 5.5rem minmax(0, 1fr); grid-template-rows: auto 1fr; column-gap: .9rem; row-gap: .15rem; padding: .7rem; align-items: start; }
	.ms-area__media { grid-row: 1 / span 2; }
	.ms-area__media img { aspect-ratio: 1; border-radius: 10px; }
	.ms-area__title { margin-top: .2rem; font-size: 1rem; }
	.ms-area__text { font-size: .8rem; }
	.ms-hero { padding-bottom: 4.5rem; }
	.ms-hero__actions .ms-btn { flex: 1 1 auto; }
}
@media (max-width: 600px) {
	.ms-area__media img { width: 5.5rem; height: 5.5rem !important; object-fit: cover; }
}
@media (max-width: 600px) {
	/* Phones: compact list, small image left, text right */
	.ms-posts .wp-block-post-template { gap: .75rem !important; }
	.ms-posts .wp-block-post { display: grid; grid-template-columns: 96px minmax(0, 1fr); grid-template-rows: auto auto 1fr; column-gap: .9rem; padding: .6rem; }
	.ms-posts .wp-block-post-featured-image { grid-row: 1 / 4; margin: 0 !important; border-radius: 8px; }
	.ms-posts .wp-block-post > :not(.wp-block-post-featured-image) { margin-left: 0 !important; margin-right: 0 !important; padding-left: 0 !important; padding-right: 0 !important; }
	.ms-posts .wp-block-post-date { margin-top: 0 !important; }
	.ms-posts .wp-block-post-title { font-size: .95rem !important; margin-top: .2rem !important; }
	.ms-posts .ms-posts__more { padding-top: .3rem; }
}

/* ---------- Imported pages (ContentConverter, ex-WPBakery rows) ---------- */
.ms-cols { display: grid; grid-template-columns: repeat(var(--ms-n, 2), minmax(0, 1fr)); gap: 1.5rem 2rem; align-items: start; }
.ms-cols-2 { --ms-n: 2; } .ms-cols-3 { --ms-n: 3; } .ms-cols-4 { --ms-n: 4; } .ms-cols-5 { --ms-n: 5; } .ms-cols-6 { --ms-n: 6; }
.ms-col { min-width: 0; }
.ms-col > :first-child { margin-top: 0; }
.ms-col > :last-child { margin-bottom: 0; }
.ms-col .ms-image { text-align: center; }
/* Image columns as cards (not text/button columns, not on colour bands) */
.ms-section:not(.alignfull) .ms-cols > .ms-col:has(> .ms-image:first-child) { background: #fff; border: 1px solid var(--ms-line); border-radius: 18px; padding: 1.5rem; align-self: stretch; }
.ms-section.alignfull .ms-image img { max-height: 340px; width: auto; }
.ms-section.alignfull .ms-col:has(> .ms-image) { display: flex; justify-content: center; }
.ms-buttons { display: flex; flex-wrap: wrap; gap: .75rem; justify-content: center; margin-block: 1.5rem 0; }
.ms-buttons .ms-button { margin: 0; }

.ms-section.alignfull { margin-block: clamp(2rem, 4vw, 3.25rem); padding-block: clamp(2.5rem, 6vw, 4.5rem); }
.ms-section.alignfull + .ms-section.alignfull { margin-top: calc(-1 * clamp(2rem, 4vw, 3.25rem)); }
/* Two same-colour bands in a row: no second top padding */
:is(.ms-bg-grey + .ms-bg-grey, .ms-bg-blue + .ms-bg-blue, .ms-bg-pink + .ms-bg-pink) { padding-top: 0; }
.ms-section__inner { max-width: var(--wp--style--global--content-size, 1200px); margin-inline: auto; padding-inline: var(--wp--style--root--padding-left, var(--ms-gutter)); box-sizing: content-box; }
.ms-section__inner > :first-child { margin-top: 0; }
.ms-section__inner > :last-child { margin-bottom: 0; }
.ms-bg-blue { background: linear-gradient(90deg, var(--ms-blue) 0%, var(--ms-royal) 100%); color: #fff; }
.ms-bg-pink { background: linear-gradient(90deg, #e32184 0%, #b8126a 100%); color: #fff; }
.ms-bg-grey { background: var(--ms-surface); }
:is(.ms-bg-blue, .ms-bg-pink) :is(h1, h2, h3, h4, h5, h6, p, li, a:not(.button)) { color: #fff; }
:is(.ms-bg-blue, .ms-bg-pink) [style*="color"] { color: inherit !important; }
:is(.ms-bg-blue, .ms-bg-pink) .ms-button .button { background: #fff; color: var(--ms-blue); }
:is(.ms-bg-blue, .ms-bg-pink) .ms-buttons .ms-button + .ms-button .button { background: transparent; color: #fff; box-shadow: inset 0 0 0 2px #fff; }
:is(.ms-bg-blue, .ms-bg-pink) .ms-button .button:hover { background: var(--ms-tint); color: var(--ms-blue); }

/* Title band at the top (page-no-title template) */
.wp-block-post-content > .ms-section.alignfull:first-child { margin-top: 0; text-align: center; padding-block: clamp(3rem, 7vw, 5.5rem); }
.wp-block-post-content > .ms-section.alignfull:first-child h1 { font-size: clamp(1.9rem, 4vw, 3rem); line-height: 1.15; max-width: 22em; margin-inline: auto; }
.wp-block-post-content > .ms-section.alignfull:first-child :is(h3, h4, p):not(.ms-button) { font-weight: 500; font-size: clamp(1rem, 1.6vw, 1.2rem); max-width: 42em; margin-inline: auto; opacity: .92; white-space: pre-line; }

.ms-services { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: .75rem; }
.ms-col .ms-services { grid-template-columns: minmax(0, 1fr); }
/* Section headings of imported pages */
.wp-block-post-content .ms-section > h3:first-child, .ms-section__inner > h3:first-child { font-size: clamp(1.3rem, 2.2vw, 1.65rem); margin-bottom: .35rem; }
.wp-block-post-content .ms-section > h3:first-child + p { margin-top: 0; }
:is(.ms-bg-blue, .ms-bg-pink) h3:first-child + p { color: #fff; opacity: .9; }
.ms-section__inner > h2 { font-size: clamp(1.6rem, 3vw, 2.3rem); margin-bottom: .5rem; }
:is(.ms-bg-blue, .ms-bg-pink) ul:not(.ms-services):not(.ms-cards) { list-style: none; padding: 0; display: grid; gap: .5rem; }
:is(.ms-bg-blue, .ms-bg-pink) ul:not(.ms-services):not(.ms-cards) > li::before { content: "✓"; font-weight: 800; margin-right: .6rem; }
/* Product cards in a text column: as many as fit */
.ms-col .ms-cards { grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); }
.ms-services li { background: #fff; border: 1px solid var(--ms-line); border-radius: 14px; padding: 1rem 1.1rem; font-weight: 700; color: var(--ms-night); display: flex; gap: .7rem; align-items: center; line-height: 1.3; height: 100%; box-sizing: border-box; }
.ms-services li::before { content: "✓"; flex: none; display: grid; place-items: center; width: 1.9rem; height: 1.9rem; border-radius: 50%; background: var(--ms-tint); color: var(--ms-blue); font-weight: 800; }
.ms-cols:has(> .ms-col > .ms-services:only-child) { align-items: stretch; gap: 1rem; }
.ms-bg-grey .ms-services li { border-color: transparent; }

.ms-posts--list .wp-block-post-template { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ms-posts--list .wp-block-post-date { margin-top: .75rem !important; }
.wp-block-post-content .ms-cards { margin-block: 1rem; }

@media (max-width: 1000px) {
	.ms-cols-4, .ms-cols-5, .ms-cols-6 { --ms-n: 3; }
	.ms-posts--list .wp-block-post-template { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 782px) {
	.ms-cols { --ms-n: 2; }
}
@media (max-width: 600px) {
	.ms-cols { --ms-n: 1; }
	.ms-cols:has(> .ms-col > .ms-services:only-child) { --ms-n: 2; }
	.ms-posts--list .wp-block-post-template { grid-template-columns: minmax(0, 1fr); }
	.ms-services li { font-size: .9rem; padding: .8rem .9rem; }
}
.ms-cols:has(> .ms-col > .ms-image:first-child) .ms-button { text-align: center; }
.ms-services li > span { display: grid; gap: .1rem; }
.ms-services li small { font-weight: 500; color: var(--ms-muted); font-size: .85rem; }
/* White boxes on a coloured band keep dark text and blue buttons */
:is(.ms-bg-blue, .ms-bg-pink) :is(.ms-info, .ms-cards, .ms-services, .ms-accordion, table) :is(h1, h2, h3, h4, h5, h6, p, li, a:not(.button), summary) { color: var(--ms-night); }
:is(.ms-bg-blue, .ms-bg-pink) .ms-info :is(h3, h4) { color: var(--ms-blue); }
:is(.ms-bg-blue, .ms-bg-pink) .ms-info .ms-button .button { background: var(--ms-blue); color: #fff; box-shadow: none; }
:is(.ms-bg-blue, .ms-bg-pink) .ms-info [style*="color"] { color: inherit !important; }

/* ---------- Header: one row, leaf links in the top bar ---------- */
.ms-topbar a.ms-topbar__leaf { font-weight: 700; color: #fff; }
.ms-topbar a.ms-topbar__leaf::before { content: ""; display: inline-block; width: .9em; height: .9em; margin-right: .4rem; vertical-align: -.1em; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 2v2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2h-2V2h-2v2H9V2H7zm-2 8h14v10H5V10z'/%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 24 24'%3E%3Cpath d='M7 2v2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2h-2V2h-2v2H9V2H7zm-2 8h14v10H5V10z'/%3E%3C/svg%3E") center / contain no-repeat; }
@media (min-width: 1101px) {
	.ms-nav__item--leaf { display: none; }
	.ms-nav__list { flex-wrap: nowrap; }
}
@media (min-width: 1101px) and (max-width: 1380px) {
	.ms-nav__link { padding-inline: .55rem; font-size: .88rem; }
	.ms-header__main { gap: 1rem; }
}
@media (max-width: 1100px) {
	.ms-topbar__leaf { display: none; }
}
@media (max-width: 1380px) { .ms-topbar__claim { display: none; } .ms-topbar__inner { justify-content: flex-end; } }

/* ---------- Product description (below the configurator) ---------- */
.ms-showcase { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(1.5rem, 4vw, 3rem); align-items: center; }
.ms-showcase .ms-image { background: var(--ms-surface); border-radius: 18px; padding: 1rem; text-align: center; }
.ms-showcase .ms-image img { max-height: 420px; width: auto; object-fit: contain; }
.ms-features { list-style: none; margin: 0; padding: 0; display: grid; gap: .75rem; }
.ms-features li { display: flex; align-items: center; gap: .8rem; font-weight: 700; font-size: 1.05rem; color: var(--ms-night); background: #fff; border: 1px solid var(--ms-line); border-radius: 14px; padding: .9rem 1.1rem; }
.ms-features li::before { content: "✓"; flex: none; display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; background: var(--ms-blue); color: #fff; font-weight: 800; }
.wp-block-post-content .ms-section > ul:only-child:not([class]), .wp-block-post-content .ms-section > h3 + ul:not([class]) { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: .6rem; counter-reset: ms-step; }
.wp-block-post-content .ms-section > ul:only-child:not([class]) > li, .wp-block-post-content .ms-section > h3 + ul:not([class]) > li { background: var(--ms-surface); border-radius: 12px; padding: .8rem 1rem; font-weight: 600; color: var(--ms-night); }
.ms-product-details .ms-section.alignfull { margin-inline: 0 !important; border-radius: 18px; padding: clamp(1.5rem, 3vw, 2.25rem); }
.ms-product-details .ms-section__inner { padding-inline: 0; }
.ms-product-details .ms-section.alignfull + .ms-section.alignfull { margin-top: 1rem; padding-top: clamp(1.5rem, 3vw, 2.25rem); }
.ms-product-details .ms-cols-4, .ms-product-details .ms-cols-5, .ms-product-details .ms-cols-6 { --ms-n: 2; }
.ms-product-details .ms-info { height: 100%; box-sizing: border-box; display: flex; flex-direction: column; }
.ms-product-details .ms-info .ms-button { margin-top: auto; padding-top: .5rem; margin-bottom: 0; }
.ms-cols:has(> .ms-col > .ms-info:only-child) { align-items: stretch; }
.ms-related__title { margin-bottom: 1.5rem; }
@media (max-width: 700px) {
	.ms-showcase { grid-template-columns: minmax(0, 1fr); }
	.ms-product-details .ms-cols-4, .ms-product-details .ms-cols-5, .ms-product-details .ms-cols-6 { --ms-n: 1; }
}

/* ---------- Product head (.po-head, moved into the configurator column) ---------- */
.ms-configurator { margin-top: 1rem; padding: clamp(1rem, 2vw, 1.5rem); }
.ms-configurator:has(.po-configurator) .ms-product { margin: 0; background: #fff; border: 1px solid var(--ms-line); border-radius: 18px; padding: clamp(1rem, 2vw, 1.5rem); grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(1rem, 2.5vw, 2rem) !important; }
.ms-configurator:has(.po-configurator) .ms-product__price, .ms-configurator:has(.po-configurator) .ms-product__cta { display: none; }
.ms-configurator:has(.po-configurator) .ms-product__title { font-size: clamp(1.6rem, 2.6vw, 2.2rem) !important; margin-bottom: .5rem; }
.ms-product__intro { color: var(--ms-muted); line-height: 1.55; margin: 0 0 1rem; }
.ms-configurator:has(.po-configurator) .ms-usp { gap: .4rem; margin-bottom: 1rem; }
.ms-configurator:has(.po-configurator) .ms-usp li { background: none; padding: 0; display: block; font-size: .9rem; }
.ms-configurator:has(.po-configurator) .ms-usp span { display: none; }
.ms-product__links { display: flex; flex-wrap: wrap; gap: .4rem 1.1rem; margin: 0 0 .5rem; font-weight: 700; font-size: .9rem; }
.ms-product__links a { color: var(--ms-blue); text-decoration: none; }
.ms-product__links a::before { content: "→ "; }
.ms-product__links a:hover { text-decoration: underline; }
.po-notice--compact { grid-template-columns: 3.4rem minmax(0, 1fr); gap: .75rem; padding: .6rem .75rem; margin-top: .75rem; background: var(--ms-surface); border-color: transparent; }
.po-notice--compact .po-notice__text { font-size: .78rem; gap: .15rem; }
.po-notice--compact .po-notice__text strong { font-size: .85rem; }
.po-notice--compact .po-notice__more { font-size: .8rem; }

/* Tabs below the configurator (assets/product.js), without JS the sections stack. */
.ms-tabs { margin-top: clamp(2.5rem, 5vw, 4rem); scroll-margin-top: calc(var(--ms-header-h) + 1rem); }
.ms-tabs__list { display: flex; gap: .25rem; border-bottom: 2px solid var(--ms-line); margin: 0 0 2rem; overflow-x: auto; scrollbar-width: none; }
.ms-tabs__tab { flex: none; background: none; border: 0; border-bottom: 3px solid transparent; margin-bottom: -2px; padding: .9rem 1.25rem; font: inherit; font-weight: 700; font-size: 1rem; color: var(--ms-muted); cursor: pointer; white-space: nowrap; }
.ms-tabs__tab:hover { color: var(--ms-night); }
.ms-tabs__tab[aria-selected="true"] { color: var(--ms-blue); border-bottom-color: var(--ms-blue); }
.ms-tabs__tab:focus-visible { outline: 2px solid var(--ms-blue); outline-offset: -2px; border-radius: 6px 6px 0 0; }
.ms-tab:focus-visible { outline: none; }
.ms-tabs:not(.has-tabs) .ms-tab + .ms-tab { margin-top: 3rem; }
.ms-tab > .wp-block-post-content > .ms-section:first-child { margin-top: 0; }
@media (max-width: 700px) {
	.ms-tabs__list { margin-inline: calc(-1 * var(--wp--style--root--padding-left, 16px)); padding-inline: var(--wp--style--root--padding-left, 16px); }
	.ms-tabs__tab { padding: .8rem .9rem; font-size: .92rem; }
}
@media (max-width: 960px) {
	.ms-configurator:has(.po-configurator) .ms-product { grid-template-columns: minmax(0, 1fr); }
}
.po-notice__text a { overflow-wrap: anywhere; }
@media (max-width: 600px) {
	.ms-configurator:has(.po-configurator) .ms-product { padding: .85rem; gap: 1rem !important; }
}

/* ---------- Product description, re-arranged (inc/product-description.php) ---------- */
.ms-pd { display: grid; gap: clamp(2.5rem, 5vw, 4rem); }
.ms-pd h2 { font-size: clamp(1.4rem, 2.4vw, 1.9rem) !important; margin: 0 0 1rem; }
.ms-pd-hero { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; background: linear-gradient(135deg, var(--ms-surface) 0%, var(--ms-tint) 100%); border-radius: 24px; padding: clamp(1.25rem, 3vw, 2.5rem); }
.ms-pd-hero__media .ms-image { margin: 0; background: #fff; border-radius: 18px; padding: 1rem; text-align: center; box-shadow: 0 10px 30px rgba(3, 36, 72, .08); }
.ms-pd-hero__media img { max-height: 380px; width: auto; object-fit: contain; }
.ms-pd-hero__text h2 { font-size: clamp(1.5rem, 2.8vw, 2.2rem) !important; line-height: 1.2; }
.ms-pd-hero__text ul { list-style: none; margin: 1.25rem 0 0; padding: 0; display: grid; gap: .7rem; }
.ms-pd-hero__text li { display: flex; align-items: center; gap: .75rem; font-weight: 700; font-size: 1.05rem; color: var(--ms-night); }
.ms-pd-hero__text li::before { content: "✓"; flex: none; display: grid; place-items: center; width: 1.9rem; height: 1.9rem; border-radius: 50%; background: var(--ms-blue); color: #fff; font-size: .95rem; font-weight: 800; }
.ms-pd-intro { max-width: 46rem; }
.ms-pd-intro > h2, .ms-pd-intro > h3, .ms-pd-intro > h4 { font-size: clamp(1.4rem, 2.4vw, 1.9rem) !important; margin: 0 0 .9rem; }
.ms-pd-intro p { font-size: 1.05rem; line-height: 1.75; color: #33405a; }
.ms-pd-steps ol { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1rem; counter-reset: ms-step; }
.ms-pd-steps li { counter-increment: ms-step; position: relative; background: #fff; border: 1px solid var(--ms-line); border-radius: 16px; padding: 3.4rem 1.1rem 1.1rem; font-weight: 700; color: var(--ms-night); line-height: 1.35; }
.ms-pd-steps li::before { content: counter(ms-step); position: absolute; left: 1.1rem; top: 1rem; width: 1.9rem; height: 1.9rem; border-radius: 50%; display: grid; place-items: center; background: var(--ms-blue); color: #fff; font-weight: 800; font-size: .9rem; }
.ms-pd-steps li:not(:last-child)::after { content: ""; position: absolute; top: 1.95rem; left: 3.4rem; right: -1rem; height: 2px; background: var(--ms-tint); z-index: 1; }
.ms-pd-benefits ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; background: var(--ms-night); border-radius: 20px; overflow: hidden; }
.ms-pd-benefits li { padding: 1.4rem 1.3rem; display: grid; gap: .35rem; align-content: start; color: #cfd9ea; font-size: .9rem; line-height: 1.5; }
.ms-pd-benefits li + li { border-left: 1px solid rgba(255, 255, 255, .1); }
.ms-pd-benefits strong { color: #fff; font-size: 1rem; }
.ms-pd-benefits strong::before { content: "✓"; display: grid; place-items: center; width: 2rem; height: 2rem; margin-bottom: .6rem; border-radius: 50%; background: rgba(255, 255, 255, .12); color: #7fd1ff; }
.ms-pd-benefits__more { margin: .75rem 0 0; text-align: right; font-size: .9rem; font-weight: 700; }
.ms-pd-benefits__more a::after { content: " →"; }
.ms-pd-guide__lead { color: var(--ms-muted); margin: -.5rem 0 1.25rem; font-size: 1.05rem; }
.ms-pd-guide__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem 1rem; align-items: start; }
.ms-pd-guide details { background: #fff; border: 1px solid var(--ms-line); border-radius: 14px; }
.ms-pd-guide details[open] { box-shadow: var(--ms-shadow); border-color: transparent; }
.ms-pd-guide summary { padding: 1rem 1.2rem !important; font-weight: 700 !important; line-height: 1.35; }
.ms-pd-guide__body { padding: 0 1.2rem 1.1rem !important; font-size: .95rem; line-height: 1.7; color: #33405a; }
.ms-pd-guide__body > :first-child { margin-top: 0; }
.ms-pd-introrow { display: grid; grid-template-columns: minmax(0, 1fr) minmax(16rem, 22rem); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: start; }
.ms-pd-introrow .ms-pd-intro { max-width: none; }
.ms-pd-contact { background: linear-gradient(160deg, var(--ms-blue) 0%, var(--ms-royal) 100%); color: #fff; border-radius: 20px; padding: 1.5rem 1.5rem 1.6rem; display: grid; gap: .6rem; box-shadow: 0 16px 40px rgba(5, 78, 158, .25); }
.ms-pd-contact :is(h2, h3, h4) { color: #fff; margin: 0 !important; font-size: 1.2rem !important; }
.ms-pd-contact p { margin: 0; color: #dbe6ff; font-size: .92rem; line-height: 1.5; }
.ms-pd-contact .ms-button { order: 3; margin-top: .4rem; }
.ms-pd-contact .ms-button .button { display: block; text-align: center; background: #fff !important; color: var(--ms-blue) !important; }
.ms-pd-contact__direct { display: grid; gap: .3rem; padding-top: .6rem; border-top: 1px solid rgba(255, 255, 255, .18); }
.ms-pd-contact__direct a { color: #fff !important; font-weight: 700; text-decoration: none; }
.ms-pd-contact__direct a:hover { text-decoration: underline; }
.ms-pd-rest > .ms-section:first-child { margin-top: 0; }
.ms-pd-rest > .ms-section:last-child { margin-bottom: 0; }
@media (max-width: 900px) {
	.ms-pd-benefits ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ms-pd-benefits li:nth-child(3) { border-left: 0; }
	.ms-pd-benefits li:nth-child(n+3) { border-top: 1px solid rgba(255, 255, 255, .1); }
	.ms-pd-guide__list { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 700px) {
	.ms-pd-hero { grid-template-columns: minmax(0, 1fr); }
	.ms-pd-steps li:not(:last-child)::after { display: none; }
	.ms-pd-introrow { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 480px) {
	.ms-pd-benefits ul { grid-template-columns: minmax(0, 1fr); }
	.ms-pd-benefits li + li { border-left: 0; border-top: 1px solid rgba(255, 255, 255, .1); }
}
@media (max-width: 700px) {
	.ms-pd-steps ol { gap: .5rem; }
	.ms-pd-steps li { padding: .85rem 1rem .85rem 3.4rem; display: flex; align-items: center; min-height: 2.2rem; }
	.ms-pd-steps li::before { top: 50%; margin-top: -.95rem; left: .9rem; }
	.ms-pd-benefits li { padding: 1rem 1.1rem; grid-template-columns: 2rem minmax(0, 1fr); column-gap: .8rem; }
	.ms-pd-benefits strong { display: contents; }
	.ms-pd-benefits strong::before { margin: 0; grid-row: 1 / span 2; }
	.ms-pd-benefits span { grid-column: 2; }
}

/* No layout shift on configurator start: head pre-sized, steps keep their space. */
.po-configurator:not(.po-app) { min-height: 100vh; }
/* Head, steps and price box in one grid, nothing moved by JS (form + configurator grid: display: contents). */
.ms-configurator:has(.po-configurator) { display: grid; grid-template-columns: minmax(0, 1fr); row-gap: 1rem; align-items: start; }
.ms-configurator:has(.po-configurator) > .wp-block-add-to-cart-form,
.ms-configurator:has(.po-configurator) form.cart,
.ms-configurator .po-configurator.po-app { display: contents !important; } /* WC makes form.cart a block */
.ms-configurator:has(.po-configurator) > .po-head { margin: 0 !important; }
/* WC grid-places form.cart children; with the form display: contents they'd land here, so place them all. */
.ms-configurator:has(.po-configurator) form.cart > * { grid-column: 1 !important; grid-row: auto !important; }
@media (min-width: 1001px) {
	.ms-configurator:has(.po-configurator) { grid-template-columns: minmax(0, 1fr) minmax(19rem, 23rem); column-gap: 2rem; }
	.ms-configurator:has(.po-configurator) > .po-head { grid-column: 1; grid-row: 1; }
	.ms-configurator .po-app__main, .ms-configurator:has(.po-configurator) form.cart > .po-configurator:not(.po-app) { grid-column: 1 !important; grid-row: 2 !important; }
	.ms-configurator .po-app__side { grid-column: 2; grid-row: 1 / span 2; align-self: start; }
	.ms-configurator:has(.po-configurator) form.cart > button { grid-column: 2 !important; grid-row: 1 !important; }
}

/* Gallery before the WC slider starts: first image only, room for the thumb row (no jump on phones). */
.woocommerce-product-gallery:not(:has(.flex-viewport)) .woocommerce-product-gallery__image:not(:first-child) { display: none; }
/* Fixed gallery shape from the start: square, 4:5 with thumbs. Slider briefly measures huge heights. */
.ms-product .woocommerce-product-gallery { aspect-ratio: 1 / 1; min-height: 0; overflow: clip; overflow-clip-margin: 1rem; }
.ms-product .woocommerce-product-gallery:has(.woocommerce-product-gallery__image + .woocommerce-product-gallery__image) { aspect-ratio: 4 / 5; }
.ms-product .flex-control-thumbs { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: .5rem !important; }
/* All gallery images in the same square frame (contain), constant height. */
.ms-product .woocommerce-product-gallery__image a { display: block; }
.ms-product .woocommerce-product-gallery__image img { display: block; width: 100%; height: auto !important; aspect-ratio: 1 / 1; object-fit: contain; background: var(--ms-surface); }
.ms-product .wp-block-woocommerce-product-image-gallery { width: 100%; }

/* ---------- Shop, product and blog categories (inc/catalog.php) ---------- */
.ms-catalog-head { margin: 1rem 0 2rem; }
.ms-catalog-head__inner { background: linear-gradient(135deg, var(--ms-blue) 0%, var(--ms-royal) 100%); color: #fff; border-radius: 24px; padding: clamp(1.5rem, 4vw, 3rem) clamp(1.25rem, 4vw, 3rem); }
.ms-catalog-head h1, .ms-catalog-head .wp-block-query-title { color: #fff; margin: 0 0 .6rem !important; font-size: clamp(1.8rem, 3.6vw, 2.8rem) !important; }
.ms-catalog-head__intro { color: #dbe6ff; max-width: 52rem; margin: 0; font-size: 1.05rem; line-height: 1.6; }
.ms-catalog-head__intro p { margin: 0; }
.ms-catalog-head__count { margin: 1rem 0 0; font-size: .85rem; font-weight: 700; color: #a9c4ff; text-transform: uppercase; letter-spacing: .06em; }
.ms-catalog-head__eyebrow { margin: 0 0 .4rem; font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.ms-catalog-head__eyebrow a { color: #a9c4ff !important; text-decoration: none; }
.ms-chips { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.25rem; }
.ms-chip { display: inline-block; padding: .45rem .95rem; border-radius: 999px; background: rgba(255, 255, 255, .14); color: #fff !important; font-weight: 700; font-size: .88rem; text-decoration: none !important; transition: background .15s; }
.ms-chip:hover { background: #fff; color: var(--ms-blue) !important; }
.ms-cards--catalog { margin-bottom: 2rem; }
.ms-catalog-empty { background: var(--ms-surface); border-radius: 16px; padding: 2rem; text-align: center; }
.ms-pages ul { list-style: none; margin: 1rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem; justify-content: center; }
.ms-pages a, .ms-pages span, .wp-block-query-pagination a, .wp-block-query-pagination .page-numbers { display: inline-grid; place-items: center; min-width: 2.6rem; height: 2.6rem; padding: 0 .8rem; border-radius: 999px; border: 1px solid var(--ms-line); font-weight: 700; text-decoration: none; color: var(--ms-night); box-sizing: border-box; }
.ms-pages .current, .wp-block-query-pagination .page-numbers.current { background: var(--ms-blue); border-color: var(--ms-blue); color: #fff; }
.ms-pages a:hover, .wp-block-query-pagination a:hover { border-color: var(--ms-blue); color: var(--ms-blue); }
.wp-block-query-pagination { margin-top: 2rem; gap: .4rem; }
.ms-catalog-text { margin: clamp(2.5rem, 5vw, 4rem) auto 0; max-width: 52rem; }
.ms-catalog-text h2 { font-size: clamp(1.3rem, 2.2vw, 1.7rem) !important; }
.ms-catalog-text__body { color: #33405a; line-height: 1.75; }
.ms-archive .ms-posts--archive { margin-top: 0; }
.ms-archive .wp-block-post-title { font-size: 1rem !important; }

/* Wissenswertes on pages (inc/page-content.php): reuses the product accordion */
.wp-block-post-content > .ms-pd-guide { margin-block: clamp(2rem, 4vw, 3.25rem); }
.ms-pd-guide > h2 { font-size: clamp(1.4rem, 2.4vw, 1.9rem) !important; margin: 0 0 1rem; }

/* Data sheet overview ([print_options_downloads_index]) */
.po-downloads-index { display: grid; gap: 2rem; }
.po-downloads-index--empty { max-width: 46rem; margin: 0 auto; background: var(--ms-surface); border-radius: 20px; padding: clamp(1.5rem, 3vw, 2.25rem); font-size: 1.05rem; line-height: 1.7; }
.po-downloads-index--empty p:last-child { margin-bottom: 0; }
.po-downloads-index__group > h2 { font-size: 1.4rem !important; }
.po-downloads--index h3 { font-size: 1.05rem !important; margin: 1rem 0 .5rem; }

/* Pages without a title band get the shop one (templates/page.html) */
.ms-page > .ms-page-head { margin-top: 1.25rem; }
.ms-page-head .wp-block-post-title { color: #fff; margin: 0 !important; font-size: clamp(1.8rem, 3.6vw, 2.8rem) !important; }

/* ---------- Blog article (single.html), category tiles ---------- */
.ms-article-head { margin-bottom: 2rem; }
.ms-article-head .wp-block-post-title { color: #fff; margin: .25rem 0 .5rem !important; font-size: clamp(1.7rem, 3.4vw, 2.6rem) !important; max-width: 30em; }
.ms-catalog-head__eyebrow { gap: .5rem !important; align-items: center; }
.ms-catalog-head__eyebrow p, .ms-catalog-head__eyebrow .wp-block-post-terms { margin: 0; }
.ms-catalog-head__eyebrow a { color: #a9c4ff !important; font-weight: 700; text-decoration: none; font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; }
.ms-article-head__date { color: #dbe6ff; font-size: .9rem; }
.ms-article__image { max-width: 560px; margin: 0 auto 2rem !important; }
.ms-article__image img { border-radius: 18px; box-shadow: 0 16px 40px rgba(3, 36, 72, .12); }
.ms-article .wp-block-post-content > * { max-width: 780px; margin-left: auto !important; margin-right: auto !important; }
.ms-article .wp-block-post-content :is(p, li) { font-size: 1.05rem; line-height: 1.75; color: #33405a; }
.ms-article__tags { margin-block: 1.5rem; }
.ms-article__more { margin-top: clamp(2.5rem, 5vw, 4rem); padding-top: 2rem; border-top: 1px solid var(--ms-line); }
.ms-article__more h2 { font-size: clamp(1.3rem, 2.2vw, 1.7rem) !important; }
.ms-blogcats { list-style: none; margin: 1rem 0 2rem; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 1rem; }
.ms-blogcat a { display: grid; gap: .2rem; background: #fff; border: 1px solid var(--ms-line); border-radius: 16px; padding: .75rem; text-decoration: none; transition: box-shadow .2s, transform .2s; height: 100%; box-sizing: border-box; }
.ms-blogcat a:hover { box-shadow: var(--ms-shadow); transform: translateY(-2px); }
.ms-blogcat__media { aspect-ratio: 1; overflow: hidden; border-radius: 10px; background: var(--ms-surface); margin-bottom: .5rem; }
.ms-blogcat__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ms-blogcat__name { font-weight: 800; color: var(--ms-night); }
.ms-blogcat__count { font-size: .85rem; color: var(--ms-muted); }

/* Narrow cards: long product names wrap, not cut */
.ms-card__title { overflow-wrap: anywhere; hyphens: auto; }
@media (max-width: 600px) {
	.ms-blogcats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; }
	.ms-blogcat a { padding: .55rem; }
}

/* Privacy policy fetched from iubenda (print-options Legal\PrivacyPolicy) */
.po-legal-doc { max-width: 780px; margin: 0 auto; color: #33405a; line-height: 1.7; overflow-wrap: anywhere; }
.po-legal-doc:not(.po-legal-doc--iub2) h2 { font-size: clamp(1.4rem, 2.4vw, 1.8rem) !important; margin: 2.5rem 0 .75rem; color: var(--ms-night); }
.po-legal-doc:not(.po-legal-doc--iub2) h3 { font-size: 1.2rem !important; margin: 2rem 0 .5rem; color: var(--ms-night); }
.po-legal-doc:not(.po-legal-doc--iub2) h4 { font-size: 1rem !important; margin: 1.5rem 0 .4rem; color: var(--ms-blue); }
.po-legal-doc:not(.po-legal-doc--iub2) ul { padding-left: 1.2rem; }
.po-legal-doc:not(.po-legal-doc--iub2) a { word-break: break-word; }
.po-legal-doc > :first-child, .po-legal-doc .iubenda_legal_document > h2:first-child { margin-top: 0; }
.po-legal-doc__source { max-width: 780px; margin: 2.5rem auto 0; padding-top: 1rem; border-top: 1px solid var(--ms-line); font-size: .85rem; color: var(--ms-muted); }

/* ---------- Print-mailing advisor [ms_mailing_advisor] ---------- */
.ms-berater { background: var(--ms-surface); border-radius: calc(var(--ms-radius) + 10px); padding: clamp(1.25rem, 3.5vw, 2.75rem); margin-block: clamp(1.5rem, 4vw, 2.5rem); scroll-margin-top: calc(var(--ms-header-h, 80px) + 1rem); }
.ms-berater__head { display: grid; gap: .9rem; margin-bottom: clamp(1.25rem, 3vw, 2rem); }
.ms-berater__eyebrow { margin: 0 0 -.5rem; font-size: .8rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #ed008c; }
.ms-berater__head h2 { margin: 0 !important; font-size: clamp(1.4rem, 2.6vw, 2rem) !important; color: var(--ms-night); }
.ms-berater__progress { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: .5rem; }
.ms-berater__progress li { display: flex; align-items: center; gap: .45rem; font-weight: 700; font-size: .88rem; color: var(--ms-muted); }
.ms-berater__progress li + li::before { content: ""; width: clamp(1rem, 3vw, 2.5rem); height: 2px; background: var(--ms-line); margin-right: .1rem; }
.ms-berater__progress li.is-done + li::before, .ms-berater__progress li.is-current:not(:first-child)::before { background: var(--ms-blue); }
.ms-berater__num { width: 1.8rem; height: 1.8rem; border-radius: 50%; display: grid; place-items: center; background: #fff; border: 2px solid var(--ms-line); font-size: .8rem; font-weight: 800; }
.ms-berater__progress .is-current { color: var(--ms-night); }
.ms-berater__progress .is-current .ms-berater__num { background: var(--ms-blue); border-color: var(--ms-blue); color: #fff; }
.ms-berater__progress .is-done .ms-berater__num { background: var(--ms-tint); border-color: var(--ms-blue); color: var(--ms-blue); }

.ms-berater__q { margin: 0 0 1rem !important; font-size: clamp(1.1rem, 2vw, 1.35rem) !important; color: var(--ms-night); outline: none; }
.ms-berater__q [data-goal-title] { color: var(--ms-blue); }

.ms-berater__choices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.ms-berater__choice, .ms-berater__goal { display: grid; align-content: start; gap: .35rem; background: #fff; border: 2px solid var(--ms-line); border-radius: 18px; color: var(--ms-night); text-decoration: none !important; transition: border-color .2s, box-shadow .2s, transform .2s; }
.ms-berater__choice:hover, .ms-berater__goal:hover, .ms-berater__choice:focus-visible, .ms-berater__goal:focus-visible { border-color: var(--ms-blue); box-shadow: var(--ms-shadow); transform: translateY(-2px); }
.ms-berater__choice { padding: clamp(1.25rem, 3vw, 2rem); grid-template-columns: auto minmax(0, 1fr); column-gap: 1.1rem; }
.ms-berater__icon { grid-row: span 3; width: 3.25rem; height: 3.25rem; padding: .7rem; border-radius: 14px; background: var(--ms-tint); fill: none; stroke: var(--ms-blue); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; box-sizing: border-box; }
.ms-berater__choicetitle { font-weight: 800; font-size: 1.15rem; }
.ms-berater__choicetext { color: var(--ms-muted); line-height: 1.45; }
.ms-berater__badge { justify-self: start; margin-top: .35rem; padding: .2rem .65rem; border-radius: 999px; background: var(--ms-night); color: #fff; font-size: .72rem; font-weight: 800; letter-spacing: .06em; }

.ms-berater__goals { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; }
@media (max-width: 1000px) { .ms-berater__goals { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ms-berater__goal { padding: 1rem 1.1rem 1rem 1.1rem; position: relative; padding-right: 2.4rem; }
.ms-berater__goal::after { content: "→"; position: absolute; right: 1rem; top: 50%; transform: translateY(-50%); color: var(--ms-blue); font-weight: 800; }
.ms-berater__goaltitle { font-weight: 800; }
.ms-berater__goaltext { color: var(--ms-muted); font-size: .9rem; line-height: 1.4; }
.ms-berater__back { margin: 1.25rem 0 0; font-size: .92rem; }
.ms-berater__back a, .ms-berater__restart { color: var(--ms-blue); font-weight: 700; }

.ms-berater__ship { background: #fff; border-left: 4px solid var(--ms-blue); border-radius: 14px; padding: 1.1rem 1.35rem; margin-bottom: 1.25rem; }
.ms-berater__ship p { margin: 0; }
.ms-berater__shipname { font-weight: 700; color: var(--ms-night); margin-bottom: .5rem !important; }
.ms-berater__ship ul { list-style: none; margin: 0 0 .6rem; padding: 0; display: grid; gap: .3rem; color: var(--ms-night); }
.ms-berater__ship li::before { content: "✓"; color: #15803d; font-weight: 800; margin-right: .5rem; }
.ms-berater__ship a { font-weight: 700; font-size: .92rem; }
.ms-berater__cards { grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); margin: 0 0 1.5rem !important; }
.ms-card--pick { position: relative; }
.ms-card--pick .ms-card__link { border-color: var(--ms-blue); }
.ms-card__badge { position: absolute; z-index: 1; top: .7rem; left: .7rem; padding: .2rem .6rem; border-radius: 999px; background: #ed008c; color: #fff; font-size: .72rem; font-weight: 800; pointer-events: none; }
.ms-berater__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.25rem; }
.ms-berater__actions .button.is-ghost { background: #fff !important; color: var(--ms-blue) !important; box-shadow: inset 0 0 0 2px var(--ms-blue); }
.ms-berater__restart { margin-left: auto; }

@media (max-width: 700px) {
	.ms-berater__choices { grid-template-columns: minmax(0, 1fr); }
	.ms-berater__progress li:not(.is-current) { font-size: 0; gap: 0; }
	.ms-berater__goals { grid-template-columns: minmax(0, 1fr); }
	.ms-berater__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; }
	.ms-berater__cards .ms-card__title { hyphens: auto; overflow-wrap: normal; }
	.ms-berater__cards .ms-card__body { padding: .75rem .8rem .9rem; }
	.ms-berater__restart { margin-left: 0; }
}

/* ---------- Empty cart ---------- */
/* show only the empty state (both are in the page until the cart script runs) */
.wp-block-post-content:has(.wp-block-woocommerce-empty-cart-block):not(:has(.wp-block-woocommerce-filled-cart-block)) > .ms-steps { display: none; }
.wp-block-woocommerce-empty-cart-block { padding-block: clamp(1rem, 3vw, 2rem); }
.wp-block-woocommerce-empty-cart-block .with-empty-cart-icon::before { display: none; }
.ms-empty-cart { max-width: 40rem; margin: 0 auto clamp(2rem, 5vw, 3.5rem); text-align: center; display: grid; justify-items: center; gap: .9rem; }
.ms-empty-cart__icon { width: 5.5rem; height: 5.5rem; border-radius: 50%; background: var(--ms-tint); display: grid; place-items: center; }
.ms-empty-cart__icon svg { width: 2.6rem; height: 2.6rem; fill: none; stroke: var(--ms-blue); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.ms-empty-cart__title { margin: .25rem 0 0 !important; font-size: clamp(1.5rem, 3vw, 2rem) !important; color: var(--ms-night); }
.ms-empty-cart__text { margin: 0; color: var(--ms-muted); line-height: 1.55; }
.ms-empty-cart__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; margin-top: .5rem; }
.ms-empty-cart__actions .button.is-ghost { background: #fff !important; color: var(--ms-blue) !important; box-shadow: inset 0 0 0 2px var(--ms-blue); }
.wp-block-woocommerce-empty-cart-block .ms-empty-cart__popular { margin: 0 0 1.25rem !important; text-align: center; font-size: clamp(1.2rem, 2.2vw, 1.5rem) !important; color: var(--ms-night); }
.wp-block-woocommerce-empty-cart-block .ms-cards { grid-template-columns: repeat(4, minmax(0, 1fr)); max-width: 1100px; margin-inline: auto; }
.ms-empty-cart__help { text-align: center; color: var(--ms-muted); margin: 1.75rem 0 0; font-size: .95rem; }
.ms-empty-cart__help a { font-weight: 700; }
@media (max-width: 900px) { .wp-block-woocommerce-empty-cart-block .ms-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
	/* narrow cards: hyphenate long German names (needs a German dictionary) */
	.ms-card__title { hyphens: auto; overflow-wrap: anywhere; } /* no dictionary: break rather than overflow */
	.ms-card__body { padding: .75rem .8rem .9rem; }
	.ms-card__title { font-size: .95rem; }
	.ms-card__cta-long { display: none; }
	.ms-card__cta-short { display: inline; }
}

/* Prices: gross and net equally visible (cards, product head) */
.po-from__gross, .po-from__net { display: inline-flex; align-items: baseline; gap: .3rem; white-space: nowrap; }
.po-from__price { font-weight: 700; }
.po-from__tax { font-size: max(.75em, 12px); color: var(--ms-muted); }
.po-from__net .po-from__price { color: var(--ms-blue); }
.ms-card .po-from { display: grid; gap: .1rem; }
.ms-card .po-from__qty { font-size: .85em; color: var(--ms-muted); }
.ms-product__price .po-from__gross, .ms-product__price .po-from__net { margin-right: .9rem; }

/* Header cart link */
.ms-cartlink { position: relative; display: inline-grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: 50%; color: var(--ms-night); text-decoration: none; }
.ms-cartlink:hover, .ms-cartlink:focus-visible { background: var(--ms-tint); color: var(--ms-blue); }
.ms-cartlink svg { width: 1.45rem; height: 1.45rem; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.ms-cartlink__count { position: absolute; top: .05rem; right: -.1rem; min-width: 1.15rem; height: 1.15rem; padding: 0 .25rem; border-radius: 999px; background: var(--ms-blue); color: #fff; font-size: .7rem; font-weight: 800; line-height: 1.15rem; text-align: center; box-sizing: border-box; }
.ms-header__actions > p:has(.ms-cartlink) { margin: 0; display: contents; }

/* Product collection blocks (cart "Das könnte Sie auch interessieren"): card-size titles, stacked prices */
.wp-block-woocommerce-product-collection .wp-block-post-title { font-size: 1.02rem !important; line-height: 1.3; margin: .6rem 0 .3rem !important; }
.wp-block-woocommerce-product-collection .wp-block-post-title a { text-decoration: none; color: var(--ms-night); }
.wp-block-woocommerce-product-collection .po-from { display: grid; justify-items: center; gap: .1rem; font-size: .9rem; }
.wp-block-woocommerce-product-collection .po-from__qty { font-size: .85em; color: var(--ms-muted); }

/* Cart/checkout: net amounts */
.ms-net { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; margin: -.35rem 0 .9rem; padding: 0 16px; color: var(--ms-blue); font-size: .92rem; font-weight: 600; font-variant-numeric: tabular-nums; }
.ms-net strong { font-size: 1.15rem; font-weight: 800; }
.ms-line-net, .ms-line-net .wc-block-components-product-details__value { color: var(--ms-blue); font-weight: 700; }
.wc-block-components-totals-wrapper.slot-wrapper:has(.ms-net) { border-top: 0; }
.wc-block-components-totals-wrapper.slot-wrapper .ms-net { margin-top: -.75rem; padding-top: 0 !important; }
/* Checkout: net total right under the total, above the guarantee notice */
.wc-block-components-order-meta:has(> .ms-net) { display: flex; flex-direction: column; }
.wc-block-components-order-meta > .ms-net { order: -1; }
.wc-block-checkout .ms-net { padding-inline: 16px; } /* checkout totals are inset 16px, cart totals aren't */
/* Checkout: wider summary (holds the EU guarantee notice), not sticky since it's taller than the screen */
.wc-block-checkout .wc-block-components-sidebar-layout.is-large { grid-template-columns: minmax(0, 1fr) 30rem; }
.wc-block-checkout .wc-block-components-sidebar-layout.is-medium > .wc-block-components-sidebar,
.wc-block-checkout .wc-block-components-sidebar-layout.is-large > .wc-block-components-sidebar { position: static; }
/* Checkout: trust notes under the order button */
.ms-trust--checkout { margin-top: 1rem; display: flex; flex-wrap: wrap; justify-content: center; gap: .3rem 1.5rem; text-align: center; }
.ms-trust--checkout ul { display: flex; flex-wrap: wrap; justify-content: center; gap: .3rem 1.25rem; margin: 0; }
.ms-trust--checkout .ms-trust__help { width: 100%; margin: 0; }
.ms-trust.ms-trust--checkout { border-top: 0; padding-top: 0; }

/* Privacy policy: purpose boxes, collapsible services (server-built, Legal\PrivacyPolicy::structure) */
.po-legal-doc, .po-legal-doc__source { max-width: 860px; }
.po-pp-purpose { margin: 1rem 0; padding: 1.1rem 1.25rem 1.2rem; border-radius: 14px; background: var(--ms-surface); }
.po-pp-purpose > h3 { margin: 0 0 .35rem !important; }
.po-pp-purpose > p { margin: 0 0 .75rem; }
.po-pp-service { margin: .5rem 0 0; border: 1px solid var(--ms-line); border-radius: 10px; background: #fff; }
.po-pp-service > summary { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .7rem 1rem; cursor: pointer; font-weight: 700; color: var(--ms-blue); list-style: none; }
.po-pp-service > summary::-webkit-details-marker { display: none; }
.po-pp-service > summary::after { content: "+"; flex: none; font-size: 1.2rem; line-height: 1; color: var(--ms-blue); }
.po-pp-service[open] > summary::after { content: "–"; }
.po-pp-service > summary:focus-visible { outline: 2px solid var(--ms-blue); outline-offset: 2px; border-radius: 10px; }
.po-pp-service__body { padding: 0 1rem .9rem; font-size: .95rem; }
.po-pp-service__body > :first-child { margin-top: 0; }
.po-pp-service__body ul { margin: .25rem 0 .5rem; }
@media print { .po-pp-service > summary::after { display: none; } .po-pp-service__body { display: block !important; } }

/* Privacy policy, iubenda markup: shop design, no iubenda CSS/JS/icons */
.po-legal-doc .iub_header { padding-bottom: 1.25rem; margin-bottom: 1.5rem; border-bottom: 1px solid var(--ms-line); }
.po-legal-doc .iub_header h2 { margin-top: 0; }
.po-legal-doc .one_line_col > h2[style] { margin: 2.5rem 0 1rem; font-size: 1rem !important; letter-spacing: .08em; text-transform: uppercase; font-variant: normal !important; color: var(--ms-muted); }
.po-legal-doc ul.for_boxes, .po-legal-doc ul.unstyled { list-style: none; margin: 0; padding: 0; }
/* Summary: purposes in two columns with icons */
.po-legal-doc .simple_pp > ul.for_boxes > li > ul.for_boxes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 2rem; }
.po-legal-doc .iconed { position: relative; padding-left: 2.6rem; }
.po-legal-doc .iconed::before { content: ""; position: absolute; left: 0; top: .1rem; width: 1.9rem; height: 1.9rem; border-radius: 50%; background: var(--ms-tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23054e9e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l7 3v5c0 4.5-3 8.3-7 10-4-1.7-7-5.5-7-10V6l7-3z'/%3E%3Cpath d='M9 12l2 2 4-4'/%3E%3C/svg%3E") center / 1.05rem no-repeat; }
.po-legal-doc .iconed.icon_owner::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23054e9e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21h18M5 21V7l7-4 7 4v14M9 9h1M14 9h1M9 13h1M14 13h1M10 21v-4h4v4'/%3E%3C/svg%3E"); }
.po-legal-doc .iconed > h3 { margin: 0 0 .35rem !important; font-size: 1rem !important; color: var(--ms-night); }
.po-legal-doc .iconed ul.unstyled > li { margin: 0 0 .6rem; }
.po-legal-doc .iconed ul.unstyled h3 { margin: 0 !important; font-size: .92rem !important; color: var(--ms-blue); }
.po-legal-doc .iconed p { margin: .1rem 0 0; font-size: .88rem; color: var(--ms-muted); line-height: 1.5; }
.po-legal-doc #contact_information + ul.for_boxes { padding: 1rem 1.25rem; border-radius: 14px; background: var(--ms-surface); }
/* Full policy: purposes as collapsible boxes with their services */
.po-legal-doc .legal_pp ul.for_boxes > li { margin: 0 0 .6rem; }
.po-legal-doc details.box_primary { border: 1px solid var(--ms-line); border-radius: 12px; background: #fff; }
.po-legal-doc details.box_primary > summary { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .8rem 1rem; cursor: pointer; list-style: none; }
.po-legal-doc details.box_primary > summary::-webkit-details-marker { display: none; }
.po-legal-doc details.box_primary > summary::after { content: "+"; flex: none; font-size: 1.25rem; font-weight: 700; line-height: 1; color: var(--ms-blue); }
.po-legal-doc details.box_primary[open] > summary::after { content: "–"; }
.po-legal-doc details.box_primary > summary h3 { margin: 0 !important; font-size: 1rem !important; color: var(--ms-night); }
.po-legal-doc details.box_primary > summary:focus-visible { outline: 2px solid var(--ms-blue); outline-offset: 2px; border-radius: 12px; }
.po-legal-doc details.box_primary .details_body { padding: 0 1rem 1rem; font-size: .95rem; }
.po-legal-doc details.box_primary .details_body > p:first-child { margin-top: 0; }
.po-legal-doc details.box_primary .details_body h4 { margin: 1.1rem 0 .3rem; padding-top: .8rem; border-top: 1px solid var(--ms-line); }
@media (max-width: 700px) { .po-legal-doc .simple_pp > ul.for_boxes > li > ul.for_boxes { grid-template-columns: minmax(0, 1fr); } }
.po-legal-doc .simple_pp h2#purposes_data, .po-legal-doc h2#contact_information { font-size: 1.15rem !important; line-height: 1.4; margin: 1.5rem 0 1rem; }

/* iubenda new format (#iub-legalDoc, CSS from print-options assets/legal): full width, shop font */
.po-legal-doc.po-legal-doc--iub2 { max-width: none; color: inherit; line-height: normal; overflow-wrap: normal; }
.po-legal-doc--iub2 #iub-legalDoc { font-family: inherit; border-radius: 18px; overflow: hidden; box-shadow: 0 1px 0 var(--ms-line); }
.po-legal-doc--iub2 #iub-legalDoc .main-header > h2:first-child { color: var(--black-dark); font-size: clamp(2rem, 1.6328125rem + 1.5625vw, 3rem); line-height: 1.3; }
/* iubenda layout needs ~1100px: break out of the text column, centred */
.po-legal-doc.po-legal-doc--iub2 { width: min(1140px, calc(100vw - 2 * var(--ms-gutter))); max-width: none !important; margin-left: 50% !important; transform: translateX(-50%); }
.po-legal-doc.po-legal-doc--iub2 { width: min(1240px, calc(100vw - 2 * var(--ms-gutter))); }
/* long German data types would push the second summary card out */
@media (min-width: 1200px) { .po-legal-doc--iub2 #iub-legalDoc .summary__cards-wrapper { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.po-legal-doc--iub2 #iub-legalDoc .pill { white-space: normal; max-width: 100%; }
.po-legal-doc--iub2 #iub-legalDoc .summary__card { min-width: 0; }
@media (min-width: 960px) { .po-legal-doc--iub2 #iub-legalDoc .aside-main-wrapper { grid-template-columns: minmax(0, 1fr) minmax(0, 3.4fr); } }
.po-legal-doc--iub2 #iub-legalDoc main { min-width: 0; overflow-wrap: anywhere; }
.po-legal-doc--iub2 #iub-legalDoc .third-parties-section ul { flex-wrap: wrap; }
.po-legal-doc--iub2 #iub-legalDoc .aside-main-wrapper aside h2 { font-size: 1.35rem; overflow-wrap: normal; }
.po-legal-doc--iub2 #iub-legalDoc summary > div { flex: 1 1 auto; min-width: 0; }
.po-legal-doc--iub2 #iub-legalDoc .accordion__meta { flex-wrap: wrap; row-gap: 6px; }
.po-legal-doc--iub2 #iub-legalDoc details > summary::after { content: none; display: none; }
.po-legal-doc--iub2 #iub-legalDoc .accordion__meta > p { flex-wrap: wrap; min-width: 0; max-width: 100%; }
.po-legal-doc--iub2 #iub-legalDoc h1, .po-legal-doc--iub2 #iub-legalDoc h2, .po-legal-doc--iub2 #iub-legalDoc h3, .po-legal-doc--iub2 #iub-legalDoc h4 { hyphens: auto; overflow-wrap: normal; }
.wp-block-post-title { hyphens: auto; }
.po-legal-doc--iub2 #iub-legalDoc details.legalDoc__accordion > summary { padding: 0; }
@media (max-width: 599px) {
  .po-legal-doc--iub2 #iub-legalDoc details.legalDoc__accordion { padding: 16px; }
  .po-legal-doc--iub2 #iub-legalDoc details.legalDoc__accordion > summary { gap: 12px; }
  .po-legal-doc--iub2 #iub-legalDoc details.legalDoc__accordion > summary > figure { flex-basis: 40px; width: 40px; height: 40px; }
}
/* iubenda has its own big heading: page title for screen readers only */
.ms-page:has(.po-legal-doc--iub2) > .ms-page-head { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.ms-page:has(.po-legal-doc--iub2) .po-legal-doc--iub2 { margin-top: clamp(1.5rem, 4vw, 3rem); }
@media (min-width: 640px) { .ms-row.ms-row--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; } .ms-row--3 .ms-info { padding: 1.1rem; } }
.ms-article .wp-block-post-content .ms-cta :is(p, li) { color: rgba(255, 255, 255, .92); }
/* WC zoom icon has z-index 99, above the sticky header (50) and its menus */
.woocommerce-product-gallery__trigger { z-index: 3 !important; }
.ms-no-print-data .ms-usp li.ms-usp__print { display: none; }

/* ---------- Legal pages (AGB, Impressum) ---------- */
.ms-legal { font-size: .95rem; line-height: 1.65; }
.ms-legal h2 { font-size: 1.2rem; line-height: 1.3; color: var(--ms-night); margin: 0 0 .75rem; }
.ms-legal p { margin: 0 0 .85rem; }
.ms-legal__toc { background: var(--ms-surface); border-radius: var(--ms-radius); padding: 1.25rem 1.5rem; margin-bottom: 2.25rem; }
.ms-legal__toc-title { font-weight: 800; color: var(--ms-night); margin-bottom: .6rem !important; }
.ms-legal__toc ol { margin: 0; padding-left: 1.4rem; columns: 2 16rem; column-gap: 2rem; font-size: .9rem; }
.ms-legal__toc li { break-inside: avoid; padding: .15rem 0; }
.ms-legal__toc a { color: var(--ms-blue); text-decoration: none; }
.ms-legal__toc a:hover { text-decoration: underline; }
.ms-legal__section { padding-top: 1.75rem; margin-top: 1.75rem; border-top: 1px solid var(--ms-line); scroll-margin-top: 6rem; }
.ms-legal__toc + .ms-legal__section { border-top: 0; margin-top: 0; padding-top: 0; }
.ms-legal__num { color: var(--ms-blue); margin-right: .25rem; }
.ms-legal__clause { display: grid; grid-template-columns: 2.75rem minmax(0, 1fr); column-gap: .5rem; }
.ms-legal__clause-num { font-weight: 700; color: var(--ms-blue); font-variant-numeric: tabular-nums; }
.ms-legal a { overflow-wrap: anywhere; }

/* A paragraph without its own number continues the clause above it */
.ms-legal__clause ~ p:not(.ms-legal__clause) { padding-left: 3.25rem; }
.ms-imprint__intro { max-width: 46rem; margin-bottom: 2rem; }
.ms-imprint__kicker { font-size: 1.35rem; font-weight: 800; color: var(--ms-night); margin-bottom: .5rem !important; }
.ms-imprint__cta { font-weight: 700; color: var(--ms-blue); margin: 0 !important; }
.ms-imprint__panel { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); background: #fff; border: 1px solid var(--ms-line); border-radius: calc(var(--ms-radius) + 4px); box-shadow: 0 2px 10px rgba(10, 31, 68, .04); overflow: hidden; margin-bottom: 1.5rem; }
.ms-imprint__company { background: var(--ms-surface); padding: 1.75rem 2rem; }
.ms-imprint__label { font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ms-muted); margin-bottom: .75rem !important; }
.ms-imprint__brand { font-size: .88rem; color: var(--ms-muted); margin-bottom: .35rem !important; }
.ms-imprint__name { font-size: 1.3rem; font-weight: 800; color: var(--ms-night); margin-bottom: .35rem !important; }
.ms-imprint__address { margin-bottom: 1.25rem !important; }
.ms-imprint__contact { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: .6rem !important; }
.ms-imprint .ms-imprint__btn { display: inline-block; background: #fff; border: 1px solid var(--ms-line); border-radius: 999px; padding: .45rem .95rem; font-size: .88rem; font-weight: 600; color: var(--ms-blue); text-decoration: none; overflow-wrap: normal; }
.ms-imprint .ms-imprint__btn:hover { border-color: var(--ms-blue); }
.ms-imprint__fax { font-size: .88rem; color: var(--ms-muted); margin: 0 !important; }
.ms-imprint__facts { margin: 0; padding: 1.25rem 2rem; display: grid; align-content: center; }
.ms-imprint__facts > div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1rem; padding: .85rem 0; border-bottom: 1px solid var(--ms-line); }
.ms-imprint__facts > div:last-child { border-bottom: 0; }
.ms-imprint__facts dt { color: var(--ms-muted); font-size: .88rem; }
.ms-imprint__facts dd { margin: 0; font-weight: 700; color: var(--ms-night); }
.ms-imprint__notes { font-size: .88rem; color: var(--ms-muted); }
.ms-imprint__notes strong { color: var(--ms-night); }
@media (max-width: 781px) {
    .ms-imprint__panel { grid-template-columns: minmax(0, 1fr); }
    .ms-imprint__company, .ms-imprint__facts { padding: 1.25rem; }
    .ms-imprint__facts > div { grid-template-columns: minmax(0, 1fr); gap: .15rem; }
}

/* ---------- Imported pages: fuller rows, even cards ---------- */
/* Rows of exactly 3 or 4 products: fill the width, no empty 5-col slots */
@media (min-width: 1001px) {
    .ms-cards:has(> :nth-child(4):last-child) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .ms-cards:has(> :nth-child(3):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
/* Info boxes side by side: same height */
.ms-cols:has(> .ms-col > .ms-info:only-child) { align-items: stretch; }
.ms-col > .ms-info:only-child { height: 100%; box-sizing: border-box; }
/* Image next to text: both centred vertically, no extra space in the image card */
.ms-section:not(.alignfull) .ms-cols:has(> .ms-col > .ms-image:first-child) { align-items: center; }
.ms-section:not(.alignfull) .ms-cols > .ms-col:has(> .ms-image:first-child) { align-self: center; }
/* Service tiles: title and text on separate lines */
.ms-services li > span { display: grid; gap: .2rem; }
.ms-services li small { font-weight: 500; color: var(--ms-muted); font-size: .85rem; line-height: 1.45; }

/* Contact column next to a form */
.ms-contact-card { background: var(--ms-surface); border-radius: var(--ms-radius); padding: 1.5rem 1.75rem; }
.ms-contact-card h2 { font-size: clamp(1.3rem, 2.2vw, 1.6rem); margin: 0 0 .5rem; }
.ms-contact-card > p { color: var(--ms-muted); }
.ms-contact-list { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; gap: .6rem; }
.ms-contact-list li { display: flex; align-items: center; gap: .75rem; font-weight: 700; color: var(--ms-night); }
.ms-contact-list li::before { flex: none; display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: 50%; background: #fff; color: var(--ms-blue); font-size: 1rem; }
.ms-contact-list .is-mail::before { content: "✉"; }
.ms-contact-list .is-place::before { content: "⌂"; }
.ms-contact-list .is-phone::before { content: "☎"; }
.ms-contact-list a { color: var(--ms-blue); text-decoration: none; }
.ms-contact-list a:hover { text-decoration: underline; }
.ms-footnote { font-size: .85rem; opacity: .85; }

/* 5+ service tiles: 3 per row, otherwise the labels get squeezed */
@media (min-width: 782px) { .ms-section > .ms-services:has(> li:nth-child(5)) { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.ms-section > h3:first-child + span { display: block; }

/* ---------- Help centre ---------- */
.ms-help-contact { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.ms-help-contact > * { display: grid; gap: .3rem; background: var(--ms-surface); border-radius: var(--ms-radius); padding: 1.25rem 1.5rem; color: var(--ms-night); text-decoration: none; }
.ms-help-contact span { font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ms-muted); }
.ms-help-contact strong { font-size: 1.1rem; }
.ms-help-contact a { color: var(--ms-blue); text-decoration: none; }
.ms-help-contact > p:empty, .ms-help-grid > p:empty { display: none; }
.ms-help-contact a:hover strong { text-decoration: underline; }
.ms-help-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.ms-help-card { display: grid; gap: .35rem; background: #fff; border: 1px solid var(--ms-line); border-radius: var(--ms-radius); padding: 1.25rem 1.5rem; text-decoration: none; transition: border-color .2s, box-shadow .2s, transform .2s; }
.ms-help-card strong { color: var(--ms-night); font-size: 1.05rem; }
.ms-help-card span { color: var(--ms-blue); font-weight: 700; font-size: .9rem; }
.ms-help-card span::after { content: " →"; }
.ms-help-card:hover { border-color: var(--ms-blue); box-shadow: var(--ms-shadow); transform: translateY(-2px); }
@media (max-width: 781px) {
    .ms-help-contact, .ms-help-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (min-width: 1001px) { .ms-help-grid:has(> :nth-child(8):last-child) { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

/* ---------- Forms (shop-forms) ---------- */
.sf-form { --sf-accent: var(--ms-blue); --sf-border: var(--ms-line); max-width: none; margin-block: 0; background: #fff; border: 1px solid var(--ms-line); border-radius: calc(var(--ms-radius) + 4px); padding: clamp(1.25rem, 3vw, 2rem); box-shadow: 0 2px 10px rgba(10, 31, 68, .04); }
.sf-section__title { font-size: 1.05rem; color: var(--ms-night); border-bottom: 1px solid var(--ms-line); padding-bottom: .5rem; }
.sf-grid { gap: 1rem 1.25rem; }
.sf-field label { font-size: .85rem; color: var(--ms-night); margin-bottom: .4rem; }
.sf-field input, .sf-field select, .sf-field textarea { background: #fff; border: 1px solid var(--ms-line); border-radius: 10px; padding: .7rem .9rem; font-size: .95rem; color: var(--ms-night); transition: border-color .15s, box-shadow .15s; }
.sf-field input:not([type=file]), .sf-field select { min-height: 48px; }
.sf-field select { appearance: none; -webkit-appearance: none; padding-right: 2.5rem; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23054e9e' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right .9rem center; }
.sf-field textarea { min-height: 9rem; resize: vertical; line-height: 1.5; }
.sf-field input:hover, .sf-field select:hover, .sf-field textarea:hover { border-color: #b9c6dc; }
.sf-field input:focus, .sf-field select:focus, .sf-field textarea:focus { outline: none; border-color: var(--ms-blue); box-shadow: 0 0 0 3px rgba(5, 78, 158, .15); }
.sf-field input[type=file] { padding: .45rem; font-size: .85rem; color: var(--ms-muted); cursor: pointer; }
.sf-field input[type=file]::file-selector-button { margin-right: .75rem; border: 0; border-radius: 999px; background: var(--ms-tint); color: var(--ms-blue); font: inherit; font-weight: 700; padding: .5rem 1rem; cursor: pointer; }
.sf-field input[type=file]::file-selector-button:hover { background: var(--ms-blue); color: #fff; }
.sf-consent { background: var(--ms-surface); border-radius: 12px; padding: .9rem 1rem; font-size: .85rem; color: var(--ms-muted); margin: 1.25rem 0 1rem; }
.sf-consent label { color: var(--ms-night); }
.sf-consent a { display: inline-block; margin: .35rem 0 0 1.7rem; font-weight: 600; }
.sf-required-note { font-size: .8rem; color: var(--ms-muted); margin: 0 0 .75rem; }
.sf-submit { padding: .85rem 2.2rem; font-size: 1rem; }
.sf-notice { border-radius: 12px; }
/* form next to the contact card: align the card with the top of the form */
.ms-cols:has(> .ms-col > .sf-form) { align-items: start; }

/* ---------- Content tables ---------- */
.ms-table-wrap { overflow-x: auto; margin: 1rem 0 1.5rem; border: 1px solid var(--ms-line); border-radius: var(--ms-radius); }
.ms-table { width: 100%; border-collapse: collapse; font-size: .92rem; }
.ms-table th, .ms-table td { padding: .65rem 1rem; text-align: left; border-bottom: 1px solid var(--ms-line); vertical-align: top; }
.ms-table thead th { background: var(--ms-surface); color: var(--ms-night); font-size: .78rem; letter-spacing: .06em; text-transform: uppercase; }
.ms-table tbody th { color: var(--ms-blue); font-weight: 800; white-space: nowrap; }
.ms-table td:nth-child(2) { white-space: nowrap; font-variant-numeric: tabular-nums; }
.ms-table tbody tr:last-child > * { border-bottom: 0; }
.ms-table tbody tr:hover { background: #fafbfd; }

/* ---------- Search results ---------- */
.ms-search .ms-catalog-head h1 { margin-bottom: 1rem !important; }
.ms-search__form { max-width: 34rem; }
.ms-search__form .wp-block-search__input { border-radius: 999px; border: 0; padding: .7rem 1.1rem; }
.ms-search__form .wp-block-search__button { border-radius: 999px; background: #fff; color: var(--ms-blue); font-weight: 700; border: 0; }
.ms-search__list { list-style: none; margin: 0; padding: 0; display: grid; gap: .75rem; }
.ms-search__list > li { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 1rem; align-items: start; background: #fff; border: 1px solid var(--ms-line); border-radius: var(--ms-radius); padding: .75rem; }
.ms-search__list > li:not(:has(.ms-search__img)) { grid-template-columns: minmax(0, 1fr); }
.ms-search__img { margin: 0 !important; }
.ms-search__img img { width: 88px; height: 88px; object-fit: cover; border-radius: 10px; }
.ms-search__title { font-size: 1.05rem !important; margin: 0 0 .25rem !important; }
.ms-search__title a { color: var(--ms-night); text-decoration: none; }
.ms-search__title a:hover { color: var(--ms-blue); }
.ms-search__excerpt { margin: 0; font-size: .9rem; color: var(--ms-muted); }
.ms-search__excerpt .wp-block-post-excerpt__more-link { display: none; }

/* long words, links, fixed-size images and wide tables must not widen the page on phones */
.wp-block-post-content, .ms-tab { overflow-wrap: break-word; hyphens: auto; }
.wp-block-post-content img { max-width: 100%; height: auto; }
.wp-block-post-content table:not(.ms-table, .shop_table, [class*="wc-"], [class*="woocommerce"], [class*="po-"]) { display: block; max-width: 100%; overflow-x: auto; }

/* phones: second pass after the mobile audit */
@media (max-width: 782px) {
	.ms-topbar__inner { padding-block: .1rem; }
	.ms-topbar__contact a { display: inline-block; padding-block: .3rem; } /* bigger tap target on phones */
}
.ms-footer .po-notice__link { font-size: inherit; }
.woocommerce-ordering, .wc-block-catalog-sorting { max-width: 100%; }
.wp-block-group.is-nowrap:has(> .wc-block-catalog-sorting) { flex-wrap: wrap; row-gap: .5rem; }
.woocommerce-ordering select.orderby { max-width: 100%; min-height: 2.75rem; }
.woocommerce form .form-row label, .woocommerce-form-login label, .woocommerce-form-register label { line-height: 1.4; }
.woocommerce form input[type="checkbox"] { width: 1.15rem; height: 1.15rem; vertical-align: -.2rem; }
@media (max-width: 600px) {
	.single-post .wp-block-post-content h2 { font-size: 1.45rem !important; line-height: 1.25; }
	.single-post .wp-block-post-content h3 { font-size: 1.2rem !important; line-height: 1.3; }
}

/* 404 */
.ms-404__lead { margin: 2rem 0 .75rem; font-weight: 800; color: var(--ms-night); }
.ms-404__links { list-style: none; margin: 0 0 3rem; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(14rem, 100%), 1fr)); gap: .75rem; }
.ms-404__links a {
	display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem 1.25rem; background: #fff;
	border: 1px solid var(--ms-line); border-radius: var(--ms-radius); font-weight: 800; color: var(--ms-night); text-decoration: none;
	transition: border-color .2s, box-shadow .2s;
}
.ms-404__links a::after { content: "→"; color: var(--ms-blue); }
.ms-404__links a:hover, .ms-404__links a:focus-visible { border-color: var(--ms-blue); box-shadow: var(--ms-shadow); }
.ms-404__links small { display: block; font-weight: 400; color: var(--ms-muted); font-size: .85rem; }

/* phones, second round */
h1, h2, h3, h4 { hyphenate-limit-chars: 10 4 4; } /* no "Mai-ling" in headings */
.sf-consent { text-align: left; }
.po-legal-doc--iub2 #iub-legalDoc .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
@media (max-width: 600px) {
	.ms-bg-blue h1, .ms-bg-blue .ms-was-h1 { font-size: clamp(1.6rem, 7vw, 2rem) !important; line-height: 1.2; }
	.wp-block-post-content img[src*="Partnersignet"] { max-width: 8rem; height: auto; margin-inline: auto; display: block; }
	.ms-cards > li:only-child { grid-column: 1 / -1; }
	.ms-table { font-size: .84rem; }
	.ms-table th, .ms-table td { padding: .55rem .45rem; hyphens: auto; }
	.ms-table thead th { hyphens: manual; }
	.ms-table thead th { font-size: .68rem; letter-spacing: .03em; }
	.ms-table tbody th { white-space: normal; }
	.ms-table td:nth-child(2) { white-space: normal; }
	.po-legal-doc--iub2 #iub-legalDoc .main__section > h2 { margin-bottom: 1rem; }
}

/* Trustpilot rating badge (inc/rating.php) */
.ms-rating { display: inline-flex; align-items: center; flex-wrap: wrap; gap: .3rem .6rem; color: var(--ms-night); font-size: .9rem; line-height: 1.3; text-decoration: none !important; }
.ms-rating__stars {
	--ms-star: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 24'%3E%3Cpath d='M12 1.5l3.1 6.6 7.2.9-5.3 5 1.4 7.1L12 17.6l-6.4 3.5L7 14l-5.3-5 7.2-.9z'/%3E%3C/svg%3E");
	flex: none; width: 6.5em; height: 1.2em;
	background: linear-gradient(90deg, #f5a623 var(--ms-rating, 100%), #d5dbe5 0);
	-webkit-mask: var(--ms-star) left center / 1.3em 1.2em repeat-x; mask: var(--ms-star) left center / 1.3em 1.2em repeat-x;
}
.ms-rating__text strong { font-weight: 800; }
.ms-rating:hover .ms-rating__text, .ms-rating:focus-visible .ms-rating__text { text-decoration: underline; text-underline-offset: 2px; }
.ms-product__summary .ms-rating { margin: .25rem 0 1rem; }
.ms-rating--hero { color: #fff; gap: .75rem; font-size: .95rem; }
.ms-rating--hero .ms-rating__stars { font-size: 1.15rem; background: linear-gradient(90deg, #ffc94d var(--ms-rating, 100%), rgba(255, 255, 255, .3) 0); }
.ms-rating--hero .ms-rating__text { display: grid; line-height: 1.3; }
.ms-rating--hero .ms-rating__count { font-size: .82rem; color: #cfdcf2; }

/* Deutsche Post partner signet (inc/dp-partner.php) */
.ms-dp { display: flex; align-items: center; gap: .7rem; font-size: .82rem; font-weight: 700; line-height: 1.3; color: var(--ms-night); }
.ms-dp img { flex: none; width: auto; height: 3.4rem; }
.ms-dp--footer { margin-top: 1.5rem; gap: .9rem; color: #fff; font-size: .95rem; }
.ms-dp--footer img { height: 5.5rem; }
.ms-dp--mailing { margin: 0 0 1rem; }

/* home hero: partner signet next to the rating */
.ms-hero__strip { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 2.75rem; margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid rgba(255, 255, 255, .18); }
.ms-dp--strip { color: #fff; font-size: .95rem; gap: .85rem; }
.ms-dp--strip img { height: 3.8rem; }
.ms-dp--image img { display: block; height: 4.2rem; }
/* cart + checkout: partner signet and rating under the button */
.ms-trustbar { display: grid; gap: .8rem; margin-top: 1rem; padding: 1rem 1.1rem; background: #fff; border: 1px solid var(--ms-line); border-radius: 14px; }
.ms-trustbar__row { display: flex; align-items: center; gap: .9rem; }
.ms-trustbar img.ms-trustbar__dp { flex: none; width: auto !important; height: 4.2rem !important; max-width: none; }
.ms-trustbar__partner { font-size: .95rem; font-weight: 700; color: var(--ms-night); line-height: 1.35; hyphens: manual; }
.ms-trustbar__row--rating { padding-top: .8rem; border-top: 1px solid var(--ms-line); }
.ms-rating--bar { display: flex; align-items: center; gap: .75rem; font-size: .9rem; }
.ms-rating--bar .ms-rating__stars { font-size: 1.1rem; }
.ms-rating--bar .ms-rating__text { display: grid; line-height: 1.3; }
.ms-rating--bar .ms-rating__count { font-size: .8rem; color: var(--ms-muted); }
.ms-trust--checkout .ms-trustbar { width: 100%; max-width: 22rem; margin: 0 auto .75rem; text-align: left; }
