/**
Theme Name: Astra Child
Author: Brainstorm Force
Author URI: http://wpastra.com/about/
Description: Astra is the fastest, fully customizable & beautiful theme suitable for blogs, personal portfolios and business websites. It is very lightweight (less than 50KB on frontend) and offers unparalleled speed. Built with SEO in mind, Astra comes with schema.org code integrated so search engines will love your site. Astra offers plenty of sidebar options and widget areas giving you a full control for customizations. Furthermore, we have included special features and templates so feel free to choose any of your favorite page builder plugin to create pages flexibly. Some of the other features: # WooCommerce Ready # Responsive # Compatible with major plugins # Translation Ready # Extendible with premium addons # Regularly updated # Designed, Developed, Maintained & Supported by Brainstorm Force. Looking for a perfect base theme? Look no further. Astra is fast, fully customizable and beautiful theme!
Version: 2.3.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: astra-child
Template: astra
*/
/* Header: hotline (Astra Header Builder, HTML element 1) */
.fyve-hotline {
	display: inline-flex;
	align-items: center;
	gap: .5em;
	color: var(--ast-global-color-2);
	font-weight: 600;
	text-decoration: none;
}

.fyve-hotline::before {
	content: "";
	width: 1.1em;
	height: 1.1em;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.8 19.8 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.12 4.18 2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.9.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z'/%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' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.8 19.8 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.12 4.18 2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.9.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.fyve-hotline:hover,
.fyve-hotline:focus-visible {
	color: var(--ast-global-color-0);
}

/* Footer: spacing between "Bekannt aus dem TV" and "Follow" (column 3) */
.site-footer [data-section="sidebar-widgets-footer-widget-4"] {
	margin-top: 1.5em;
}

.site-footer [data-section="sidebar-widgets-footer-widget-3"] img {
	display: block;
}

@media (max-width: 921px) {
	.site-footer [data-section="sidebar-widgets-footer-widget-3"] img {
		margin-inline: auto;
	}
}

/* FYVE brand colours – greens come from the Astra palette (Customizer → Global Colors) */
:root {
	--fyve-green: var(--ast-global-color-0);
	--fyve-green-dark: var(--ast-global-color-1);
	--fyve-green-darker: var(--ast-global-color-7);
	--fyve-green-light: var(--ast-global-color-6);
	--fyve-green-tint: #e3f6ea;
	--fyve-green-border: #c9ebd6;
	--fyve-pink: #a3206b;
	/* Green for large text (≥ 24 px or 19 px bold): 3.4:1 on white – WCAG AA */
	--fyve-green-text: #00a04b;
	/* Grey for strikethrough/secondary info: 5:1 on white */
	--fyve-grey-text: #6b7079;
}

/* Home: first view (Elementor container .fyve-first-view) */
.fyve-accent {
	color: var(--fyve-green-text);
}

.fyve-checklist .elementor-icon-list-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--fyve-green-tint);
}

.fyve-upgrade-old {
	color: var(--fyve-grey-text);
	font-size: .8em;
}

.fyve-upgrade-arrow {
	font-size: .7em;
	margin: 0 .15em;
}

/* Rocket in white circle */
.fyve-hero-icon .elementor-widget-container {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 112px;
	height: 112px;
	min-height: 112px;
	aspect-ratio: 1;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 12px 30px rgba(16, 24, 40, .08);
}

.fyve-first-view .elementor-heading-title:has(.fyve-upgrade-new) {
	white-space: nowrap;
}

.fyve-first-view .elementor-widget-icon-box,
.fyve-first-view .elementor-widget-image-box {
	flex: 1 1 0;
	min-width: 0;
}

@media (max-width: 1024px) {
	.fyve-first-view .elementor-widget-icon-box,
	.fyve-first-view .elementor-widget-image-box {
		flex: 0 0 auto;
		width: 100%;
	}
}

@media (max-width: 544px) {
	.fyve-first-view .e-con:has(> .elementor-widget-heading .fyve-upgrade-new) {
		flex-wrap: nowrap;
	}

	.fyve-first-view .e-con:has(> .elementor-widget-heading .fyve-upgrade-new) > .e-con {
		width: auto;
		min-width: 0;
		flex: 1 1 auto;
	}

	.fyve-first-view .elementor-heading-title:has(.fyve-upgrade-new) {
		font-size: 18px;
	}
}

/* Home: motion in the first view */
.fyve-hero-icon img {
	animation: fyve-float 3.2s ease-in-out infinite;
}

@keyframes fyve-float {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-12px); }
}

.fyve-upgrade-card {
	transition: transform .3s ease, box-shadow .3s ease;
}

.fyve-upgrade-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 18px 40px rgba(16, 24, 40, .1);
}

.fyve-upgrade-arrow {
	display: inline-block;
	transition: transform .25s ease;
}

.fyve-upgrade-card .e-con:hover .fyve-upgrade-arrow {
	transform: translateX(4px);
}

@media (prefers-reduced-motion: reduce) {
	.fyve-hero-icon img,
	.fyve-first-view .animated {
		animation: none !important;
	}

	.fyve-first-view .elementor-invisible {
		visibility: visible !important;
	}

	.fyve-upgrade-card,
	.fyve-upgrade-arrow {
		transition: none;
	}
}

.site-footer .widget-title {
	letter-spacing: .02em;
}

.site-footer a:hover,
.site-footer a:focus-visible {
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* ---------------------------------------------------------------
 * Section building blocks (sample page + later pages)
 * ------------------------------------------------------------- */

/* Internal labels on the sample page */
.fyve-pattern-label .elementor-heading-title {
	display: inline-block;
	padding: 4px 10px;
	border-radius: 0;
	background: var(--fyve-green-tint);
	color: var(--ast-global-color-1);
	font-family: monospace;
	font-size: 12px;
	letter-spacing: 0;
	text-transform: none;
}

.fyve-pattern-label span {
	opacity: .7;
}

/* Footnotes / SmallText */
.fyve-smalltext {
	font-size: 13px;
	line-height: 1.5;
	color: var(--ast-global-color-3);
}

/* iframe sections */
.fyve-iframe {
	display: block;
	width: 100%;
	min-height: 320px;
	border: 1px solid #E6EAEE;
	border-radius: 0;
}

/* Html Section (Demo) */
.fyve-html-demo {
	padding: 20px 24px;
	border-left: 4px solid var(--fyve-pink);
	background: var(--ast-global-color-4);
	border-radius: 0;
}

/* Cost table */
.fyve-kostentabelle {
	width: 100%;
	max-width: 720px;
	margin: 0 auto;
	border-collapse: collapse;
}

.fyve-kostentabelle caption {
	caption-side: bottom;
	padding-top: 8px;
	font-size: 13px;
	color: var(--ast-global-color-3);
}

.fyve-kostentabelle th,
.fyve-kostentabelle td {
	padding: 12px 8px;
	border: 0;
	border-bottom: 1px solid #E6EAEE;
	font-weight: 400;
	text-align: left;
}

.fyve-kostentabelle td {
	text-align: right;
	white-space: nowrap;
}

.fyve-kostentabelle__sum th,
.fyve-kostentabelle__sum td {
	border-bottom: 0;
	border-top: 2px solid var(--ast-global-color-2);
	font-weight: 700;
	color: var(--ast-global-color-1);
}

/* FAQ: subcategories indented, questions plain */
.fyve-faq-sub {
	margin-left: 16px;
}

.fyve-faq-questions .elementor-tab-title {
	font-weight: 500;
}

/* Downloads */
.fyve-downloads .elementor-icon-list-item a:hover .elementor-icon-list-text {
	text-decoration: underline;
}

/* First view: original icons (PNG @2x) at 60 px */
.fyve-vorteil .elementor-image-box-img {
	flex: 0 0 60px;
	width: 60px !important;
}

.fyve-vorteil .elementor-image-box-img img {
	width: 60px;
	height: 60px;
	transition: transform .3s ease;
}

.fyve-vorteil:hover .elementor-image-box-img img {
	transform: translateY(-4px);
}

.fyve-vorteil .elementor-image-box-title {
	margin: 0;
}

@media (prefers-reduced-motion: reduce) {
	.fyve-vorteil .elementor-image-box-img img {
		transition: none;
	}
}

/* Highlighted labels (old .heading--bg / --bg-secondary / --bg-tertiary) */
.fyve-label .elementor-heading-title {
	display: inline-block;
	padding: .25em .6em;
	border-radius: 0;
	font-family: 'Oswald', sans-serif;
	font-weight: 600;
	letter-spacing: .03em;
	text-transform: uppercase;
	line-height: 1.2;
}

.fyve-label--sm .elementor-heading-title { font-size: 14px; }
.fyve-label--md .elementor-heading-title { font-size: 28px; }

.fyve-label--pink .elementor-heading-title { background: var(--fyve-pink); color: #fff; }
.fyve-label--green .elementor-heading-title { background: var(--ast-global-color-1); color: #fff; }
.fyve-label--white .elementor-heading-title { background: #fff; color: var(--fyve-pink); }

/* Offers: large price */
.fyve-offer-price .elementor-heading-title {
	font-family: 'Oswald', sans-serif;
	font-size: 72px;
	font-weight: 700;
	line-height: 1;
	text-align: center;
}

.fyve-offer-price span {
	display: block;
	font-size: 18px;
	font-weight: 400;
	text-transform: none;
}

/* Articles: cards with subtle hover */
.fyve-card {
	transition: transform .25s ease, box-shadow .25s ease;
}

.fyve-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 12px 28px rgba(16, 24, 40, .08);
}

@media (prefers-reduced-motion: reduce) {
	.fyve-card { transition: none; }
}

/* Footer extra: "Volle Balken" (Astra Footer Builder, HTML element 2) */
.fyve-bars-wrap {
	display: inline-flex;
	align-items: flex-end;
	gap: 16px;
}

.fyve-bars {
	display: flex;
	align-items: flex-end;
	gap: 5px;
	height: 40px;
}

.fyve-bars__bar {
	width: 9px;
	border-radius: 0;
	background: rgba(29, 29, 27, .18);
	transition: background-color .3s ease;
}

.fyve-bars__bar:nth-child(1) { height: 20%; }
.fyve-bars__bar:nth-child(2) { height: 40%; transition-delay: .15s; }
.fyve-bars__bar:nth-child(3) { height: 60%; transition-delay: .3s; }
.fyve-bars__bar:nth-child(4) { height: 80%; transition-delay: .45s; }
.fyve-bars__bar:nth-child(5) { height: 100%; transition-delay: .6s; }

.fyve-bars.is-full .fyve-bars__bar {
	background: var(--ast-global-color-2);
}

.fyve-bars__claim {
	margin: 0;
	color: var(--ast-global-color-2);
	font-family: 'Oswald', sans-serif;
	font-weight: 600;
	font-size: 18px;
	line-height: 1.15;
	text-transform: uppercase;
	text-align: left;
}

/* Rocket "back to top" button */
.fyve-to-top {
	position: fixed;
	right: 20px;
	bottom: 20px;
	z-index: 99;
	display: grid;
	place-items: center;
	width: 56px;
	height: 56px;
	padding: 0;
	border: 0 !important;
	border-radius: 50% !important;
	background: #fff !important;
	box-shadow: 0 8px 24px rgba(16, 24, 40, .18);
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	transform: translateY(12px);
	transition: opacity .3s ease, transform .3s ease, visibility .3s;
}

.fyve-to-top.is-shown {
	opacity: 1;
	visibility: visible;
	transform: none;
}

.fyve-to-top svg {
	width: 34px;
	height: 34px;
	transition: transform .25s ease;
}

.fyve-to-top:hover svg,
.fyve-to-top:focus-visible svg {
	transform: translateY(-3px);
}

.fyve-to-top:focus-visible {
	outline: 3px solid var(--ast-global-color-2);
	outline-offset: 3px;
}

.fyve-to-top__flame {
	transform-origin: 32px 48px;
}

.fyve-to-top:hover .fyve-to-top__flame {
	animation: fyve-flame .25s ease-in-out infinite alternate;
}

.fyve-to-top.is-launching svg {
	animation: fyve-launch 1.1s cubic-bezier(.5, 0, .75, 0) forwards;
}

@keyframes fyve-flame {
	to { transform: scaleY(1.25); }
}

@keyframes fyve-launch {
	0% { transform: translateY(0); }
	15% { transform: translateY(4px); }
	100% { transform: translateY(-100vh); }
}

@media (prefers-reduced-motion: reduce) {
	.fyve-bars__bar,
	.fyve-to-top,
	.fyve-to-top svg {
		transition: none;
	}

	.fyve-to-top:hover .fyve-to-top__flame,
	.fyve-to-top.is-launching svg {
		animation: none;
	}
}

/* ---------------------------------------------------------------
 * Background decoration for coloured areas (class on the container: fyve-deco)
 * – light diagonals like in the footer; fyve-deco--stars adds a starry sky
 * ------------------------------------------------------------- */
.e-con.fyve-deco,
.fyve-deco {
	position: relative;
	overflow: hidden !important;
	isolation: isolate;
}

/* Elementor adds its own ::before (overlay) to the container – hence higher specificity + !important */
.e-con.fyve-deco::before,
.fyve-deco::before {
	content: "" !important;
	position: absolute;
	inset: -40% -10% -10% 45% !important;
	z-index: -1 !important;
	border: 0 !important;
	border-radius: 0;
	opacity: 1 !important;
	background: linear-gradient(115deg, rgba(255, 255, 255, .08) 0 45%, rgba(255, 255, 255, .03) 45% 100%);
	transform: skewX(-18deg);
	pointer-events: none;
}

.e-con.fyve-deco--stars::after,
.fyve-deco--stars::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background-image:
		radial-gradient(circle at 85% 18%, rgba(255, 255, 255, .22) 0, transparent 30%),
		radial-gradient(3px 3px at 30% 12%, #fff 98%, transparent),
		radial-gradient(3px 3px at 80% 70%, #fff 98%, transparent),
		radial-gradient(2.5px 2.5px at 42% 88%, #fff 98%, transparent),
		radial-gradient(2px 2px at 62% 46%, #fff 98%, transparent),
		radial-gradient(3px 3px at 5% 86%, #fff 98%, transparent),
		radial-gradient(1.5px 1.5px at 8% 14%, #fff 98%, transparent),
		radial-gradient(2px 2px at 22% 78%, #fff 98%, transparent),
		radial-gradient(1.5px 1.5px at 35% 30%, rgba(255, 255, 255, .8) 98%, transparent),
		radial-gradient(2.5px 2.5px at 48% 12%, #fff 98%, transparent),
		radial-gradient(1.5px 1.5px at 57% 64%, rgba(255, 255, 255, .7) 98%, transparent),
		radial-gradient(2px 2px at 66% 26%, #fff 98%, transparent),
		radial-gradient(1.5px 1.5px at 74% 82%, rgba(255, 255, 255, .8) 98%, transparent),
		radial-gradient(2.5px 2.5px at 88% 52%, #fff 98%, transparent),
		radial-gradient(1.5px 1.5px at 93% 8%, rgba(255, 255, 255, .8) 98%, transparent),
		radial-gradient(2px 2px at 14% 52%, rgba(255, 255, 255, .6) 98%, transparent);
	animation: fyve-twinkle 4s ease-in-out infinite alternate;
	pointer-events: none;
}

@keyframes fyve-twinkle {
	from { opacity: .65; }
	to { opacity: 1; }
}

/* Outline buttons as tall as filled ones: border inside instead of outside */
.fyve-btn-outline .elementor-button {
	border: 0;
	box-shadow: inset 0 0 0 2px currentColor;
}

.fyve-btn-outline .elementor-button:hover,
.fyve-btn-outline .elementor-button:focus-visible {
	box-shadow: inset 0 0 0 2px transparent;
}

/* ---------------------------------------------------------------
 * Tariff card (template "FYVE – Plans", based on the client's design)
 * ------------------------------------------------------------- */
.fyve-tarif {
	height: 100%;
	overflow: hidden;
	box-shadow: 0 10px 30px rgba(16, 24, 40, .06);
	transition: transform .25s ease, box-shadow .25s ease;
}

.fyve-tarif:hover {
	transform: translateY(-4px);
	box-shadow: 0 18px 40px rgba(16, 24, 40, .1);
}

.fyve-tarif__badge .elementor-heading-title {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 8px 12px;
	background: var(--fyve-pink);
	color: #fff;
	font-family: 'Oswald', sans-serif;
	font-size: 16px;
	font-weight: 500;
	letter-spacing: .04em;
	line-height: 1.2;
	text-transform: uppercase;
}

/* Equal-height cards, price + button aligned at the bottom */
.e-con:has(> .fyve-tarif) > .fyve-tarif {
	flex: 1 1 auto;
}

.fyve-tarif > .e-con {
	flex: 1 1 auto;
}

.fyve-tarif__features {
	flex-grow: 1;
}

.fyve-tarif__btn,
.fyve-tarif__btn .elementor-button {
	width: 100%;
}

.fyve-tarif__name .elementor-heading-title {
	font-size: 26px;
}

.fyve-tarif__name sup {
	font-size: .5em;
	vertical-align: super;
}

.fyve-tarif__gb .elementor-heading-title {
	font-family: 'Oswald', sans-serif;
	font-size: 44px;
	font-weight: 700;
	line-height: 1;
	color: var(--fyve-green-text);
	white-space: nowrap;
}

.fyve-tarif__gb s {
	font-size: .55em;
	color: var(--fyve-grey-text);
}

.fyve-tarif__arrow {
	font-size: .45em;
	vertical-align: middle;
	color: var(--fyve-green-text);
}

.fyve-tarif__features .elementor-icon-list-text {
	text-align: center;
}

.fyve-tarif__features s {
	color: var(--fyve-grey-text);
}

.fyve-tarif__price .elementor-heading-title {
	margin-top: 8px;
	font-family: 'Oswald', sans-serif;
	font-size: 40px;
	font-weight: 700;
	color: var(--ast-global-color-2);
}

.fyve-tarif__price span {
	font-family: 'Roboto', sans-serif;
	font-size: 15px;
	font-weight: 400;
	color: var(--ast-global-color-3);
}

.fyve-tarif__btn .elementor-button {
	font-family: 'Oswald', sans-serif;
	font-size: 18px;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
	padding: 16px 24px;
}

.fyve-tarif__pib {
	font-size: 14px;
}

.fyve-tarif__pib a {
	color: var(--ast-global-color-3);
	text-decoration: underline !important;
	text-underline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
	.fyve-deco--stars::after { animation: none; }
	.fyve-tarif { transition: none; }
}

/* ---------------------------------------------------------------
 * Uniform buttons: square, Oswald, uppercase
 * (Astra + Elementor kit are configured; this covers widgets with their own typography)
 * ------------------------------------------------------------- */
.elementor-button,
.elementor-cta__button,
.elementor-field-type-submit .elementor-button,
.ast-button,
.ast-custom-button,
.e-n-tab-title,
.elementor-tab-title {
	border-radius: 0;
}

.elementor-button,
.elementor-cta__button,
.e-n-tab-title {
	font-family: 'Oswald', sans-serif !important;
	font-weight: 500 !important;
	letter-spacing: .04em !important;
	text-transform: uppercase !important;
}

.e-n-tab-title {
	font-size: 16px !important;
}

/* Countdown digits styled like headings */
.elementor-countdown-digits {
	font-family: 'Oswald', sans-serif !important;
	font-weight: 600 !important;
}

/* Accordion: title (Oswald) and icon vertically centred */
.elementor-accordion .elementor-tab-title {
	display: flex;
	align-items: center;
	gap: 12px;
}

.elementor-accordion .elementor-accordion-icon {
	display: inline-flex;
	align-items: center;
	float: none !important;
	width: auto !important;
}

.elementor-accordion .elementor-accordion-icon-left {
	order: -1;
}

.elementor-accordion .elementor-accordion-title {
	line-height: 1.2;
}

.e-n-accordion-item-title {
	align-items: center !important;
}

.e-n-accordion-item-title-text {
	line-height: 1.2 !important;
}

.e-n-accordion-item-title-icon {
	display: inline-flex;
	align-items: center;
}

/* ---------------------------------------------------------------
 * Accessibility (WCAG 2.2 AA)
 * ------------------------------------------------------------- */

/* First view: new GB values in text green (Elementor sets the colour inline) */
.fyve-first-view .elementor-heading-title:has(.fyve-upgrade-new) {
	color: var(--fyve-green-text) !important;
}

/* Links in body text not identifiable by colour alone */
.elementor-widget-text-editor p a,
.elementor-widget-text-editor li a,
.elementor-form label a,
.entry-content p a {
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* Visible focus for keyboard users */
.elementor-button:focus-visible,
.e-n-tab-title:focus-visible,
.e-n-accordion-item-title:focus-visible,
.elementor-cta__button:focus-visible {
	outline: 3px solid var(--ast-global-color-2);
	outline-offset: 3px;
}

/* "Reduce motion": disable Elementor entrance animations everywhere */
@media (prefers-reduced-motion: reduce) {
	.elementor-invisible {
		visibility: visible !important;
	}

	.animated {
		animation: none !important;
	}
}

/* Upgrade card: compact notice button (Oswald runs wider than Roboto) */
.fyve-upgrade-card .elementor-button {
	font-size: 14px !important;
	letter-spacing: .02em !important;
	padding-inline: 12px;
}

/* Call to Action (Pro): remove default border – like all other buttons */
.elementor-cta__button.elementor-button {
	border-width: 0 !important;
}

/* ---------------------------------------------------------------
 * Legal notes (template "FYVE – Rechtliche Hinweise", below the footer)
 * ------------------------------------------------------------- */
.fyve-legal .e-n-accordion-item,
.fyve-legal .e-n-accordion-item-title {
	border: 0 !important;
	background: transparent !important;
}

.fyve-legal .e-n-accordion-item-title {
	justify-content: center !important;
	padding: 22px 16px !important;
	cursor: pointer;
}

.fyve-legal .e-n-accordion-item-title-icon {
	font-size: 12px;
}

.fyve-legal .e-n-accordion-item-title-text {
	font-family: 'Oswald', sans-serif;
	font-size: 15px !important;
	font-weight: 600;
	letter-spacing: .03em;
	text-transform: uppercase;
	color: var(--ast-global-color-2) !important;
}

.fyve-legal .e-n-accordion-item > .e-con {
	padding: 0 !important;
	border: 0 !important;
}

.fyve-legal .elementor-widget-text-editor {
	font-size: 14px;
	line-height: 1.7;
	color: var(--ast-global-color-2);
}

.fyve-legal .elementor-widget-text-editor a {
	color: var(--fyve-pink);
}

/* ---------------------------------------------------------------
 * Home: tariff packages (container .fyve-tarife)
 * ------------------------------------------------------------- */

/* Highlighted card ("Am beliebtesten"): raised, stronger shadow */
@media (min-width: 1025px) {
	.fyve-tarif--highlight {
		transform: translateY(-10px);
		box-shadow: 0 22px 48px rgba(16, 24, 40, .14);
	}

	.fyve-tarif--highlight:hover {
		transform: translateY(-14px);
	}
}

/* No arrow between old/new: spacing after the strikethrough value */
.fyve-tarif__gb s {
	margin-right: .15em;
}

/* Links below the cards */
.fyve-tarife__links {
	padding-top: 28px;
	border-top: 1px solid #E6EAEE;
}

.fyve-tarife__links p {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px 36px;
	margin: 0;
}

.fyve-tarife__links a {
	color: var(--ast-global-color-2);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.fyve-tarife__links a:hover,
.fyve-tarife__links a:focus-visible {
	color: var(--ast-global-color-1);
}

@media (prefers-reduced-motion: reduce) {
	.fyve-tarif--highlight,
	.fyve-tarif--highlight:hover {
		transform: none;
	}
}

.fyve-tarif__badge span[aria-hidden="true"] {
	margin-right: .4em;
}

/* ---------------------------------------------------------------
 * Home: basic SIM (card .fyve-basis-card)
 * ------------------------------------------------------------- */
.fyve-highlight {
	color: var(--ast-global-color-1);
}

.e-con.fyve-basis-card {
	position: relative;
	overflow: visible;
}

/* Badge top right, overlapping the card edge */
.fyve-basis-card__badge {
	position: absolute !important;
	top: -16px;
	right: 20px;
	width: auto !important;
}

.fyve-basis-card__badge .elementor-heading-title {
	padding: 8px 16px;
	background: var(--fyve-pink);
	color: #fff;
	font-family: 'Oswald', sans-serif;
	font-size: 15px;
	font-weight: 500;
	letter-spacing: .05em;
	text-transform: uppercase;
}

.fyve-basis-card__price .elementor-heading-title {
	padding-bottom: 20px;
	border-bottom: 2px solid #E6EAEE;
	font-family: 'Oswald', sans-serif;
	font-size: 56px;
	font-weight: 700;
	line-height: 1.1;
	color: var(--fyve-green-text);
}

.fyve-basis-card__price span {
	font-size: 22px;
	font-weight: 500;
	color: var(--fyve-grey-text);
}

.fyve-basis-card__list {
	margin-top: 8px;
}

/* Order hotline: large phone number */
.fyve-hotline-big .elementor-heading-title,
.fyve-hotline-big .elementor-heading-title a {
	font-family: 'Oswald', sans-serif;
	font-size: 34px;
	font-weight: 600;
	letter-spacing: .06em;
	color: var(--ast-global-color-2);
	text-decoration: underline;
	text-underline-offset: 5px;
	white-space: nowrap;
}

.fyve-hotline-big .elementor-heading-title a:hover,
.fyve-hotline-big .elementor-heading-title a:focus-visible {
	color: var(--ast-global-color-1);
}

@media (max-width: 544px) {
	.fyve-hotline-big .elementor-heading-title,
	.fyve-hotline-big .elementor-heading-title a {
		font-size: 26px;
	}
}

/* ---------------------------------------------------------------
 * Home: "FYVE Prepaid" banner + roaming
 * ------------------------------------------------------------- */

/* Icon in white circle (like the rocket in the first view) */
.fyve-circle-icon .elementor-widget-container {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 132px;
	height: 132px;
	min-height: 132px;
	aspect-ratio: 1;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 12px 30px rgba(0, 60, 30, .18);
}

.fyve-prepaid-banner__kicker .elementor-heading-title {
	font-family: 'Oswald', sans-serif;
	font-size: 36px;
	font-weight: 500;
	line-height: 1.1;
	text-transform: none;
	color: var(--ast-global-color-8);
}

.fyve-prepaid-banner__title .elementor-heading-title {
	font-size: 76px;
	font-weight: 500;
	line-height: 1;
	color: #fff;
	text-shadow: 4px 4px 0 rgba(0, 70, 35, .55);
}

.fyve-prepaid-banner__text {
	font-size: 15px;
	color: var(--ast-global-color-8);
}

.fyve-btn-wide .elementor-button {
	min-width: 300px;
	padding-block: 20px;
	font-size: 19px !important;
	text-transform: none !important;
}

@media (max-width: 767px) {
	.fyve-prepaid-banner__kicker .elementor-heading-title { font-size: 28px; }
	.fyve-prepaid-banner__title .elementor-heading-title { font-size: 52px; }
	.fyve-btn-wide .elementor-button { min-width: 0; }
	.fyve-circle-icon .elementor-widget-container { width: 100px; height: 100px; min-height: 100px; }
}

/* Roaming: zones as white boxes on green */
.fyve-roaming__heading .elementor-icon-box-title {
	margin: 0;
	font-size: 20px;
}

.fyve-zone {
	padding: 14px 16px;
	border-radius: 0;
	background: #fff;
}

.fyve-zone .elementor-icon-box-title {
	margin: 0 0 2px;
	font-size: 16px;
}

.fyve-zone .elementor-icon-box-description {
	font-size: 14px;
	line-height: 1.4;
}

.fyve-roaming__copy .elementor-icon-list-text {
	font-weight: 700;
}

/* SIM card SVG has a lot of whitespace in its viewBox – display larger */
.fyve-circle-icon img {
	width: 124px !important;
	max-width: none;
}

@media (max-width: 767px) {
	.fyve-circle-icon img { width: 94px !important; }
}

/* ---------------------------------------------------------------
 * Home: SEO text area (card .fyve-seo)
 * ------------------------------------------------------------- */
.fyve-seo__h2 .elementor-heading-title {
	padding-left: 14px;
	border-left: 4px solid var(--fyve-green);
	font-size: 34px;
	line-height: 1.15;
}

.fyve-seo__h3 .elementor-heading-title {
	display: inline;
	padding-bottom: 2px;
	border-bottom: 2px solid var(--fyve-green);
	font-size: 22px;
	letter-spacing: .03em;
	line-height: 1.6;
}

.fyve-seo__h4 .elementor-heading-title {
	font-size: 18px;
	font-weight: 500;
}

.fyve-seo .elementor-widget-text-editor {
	font-size: 15px;
	line-height: 1.7;
}

.fyve-seo-list {
	margin: 4px 0 0;
	padding: 0;
	list-style: none;
}

.fyve-seo-list li {
	padding: 10px 0;
	border-bottom: 1px dashed #D9DEE3;
}

.fyve-badge-inline {
	display: inline-block;
	margin-right: 6px;
	padding: 2px 8px;
	background: var(--fyve-pink);
	color: #fff;
	font-family: 'Oswald', sans-serif;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .05em;
	text-transform: uppercase;
	vertical-align: 1px;
}

.fyve-label--xs .elementor-heading-title {
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .02em;
	text-transform: none;
}

@media (max-width: 767px) {
	.fyve-seo__h2 .elementor-heading-title { font-size: 26px; }
	.fyve-seo__h3 .elementor-heading-title { font-size: 19px; }
}

/* ---------------------------------------------------------------
 * Home: tariff overview (compact cards .fyve-mini-tarif)
 * ------------------------------------------------------------- */
.e-con:has(> .fyve-mini-tarif) > .fyve-mini-tarif {
	flex: 1 1 auto;
}

.e-con.fyve-mini-tarif {
	position: relative;
	overflow: visible;
	transition: transform .25s ease, box-shadow .25s ease;
}

.e-con.fyve-mini-tarif:hover {
	transform: translateY(-3px);
	box-shadow: 0 14px 32px rgba(16, 24, 40, .1);
}

/* Badge centred on the top edge */
.fyve-mini-tarif__badge {
	position: absolute !important;
	top: -12px;
	left: 50%;
	width: auto !important;
	transform: translateX(-50%);
}

.fyve-mini-tarif__badge .elementor-heading-title {
	padding: 3px 12px;
	border-radius: 0;
	background: var(--fyve-pink);
	color: #fff;
	font-family: 'Oswald', sans-serif;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .06em;
	text-transform: uppercase;
	white-space: nowrap;
}

.fyve-mini-tarif__price .elementor-heading-title {
	padding-bottom: 14px;
	border-bottom: 1px solid #E6EAEE;
	font-family: 'Oswald', sans-serif;
	font-size: 30px;
	font-weight: 700;
	color: var(--ast-global-color-2);
}

.fyve-mini-tarif__price span {
	font-family: 'Roboto', sans-serif;
	font-size: 13px;
	font-weight: 400;
	color: var(--fyve-grey-text);
}

.fyve-mini-tarif__list {
	flex-grow: 1 !important;
	font-size: 14px;
}

.fyve-mini-tarif__list .elementor-icon-list-item {
	border-bottom-style: dashed !important;
}

.fyve-mini-tarif__list s {
	color: var(--fyve-grey-text);
}

.fyve-mini-tarif__pib {
	font-size: 12px;
}

.fyve-mini-tarif__btn,
.fyve-mini-tarif__btn .elementor-button {
	width: 100%;
}

@media (prefers-reduced-motion: reduce) {
	.e-con.fyve-mini-tarif { transition: none; }
}

.fyve-mini-tarif__btn .elementor-button {
	padding-inline: 10px;
	font-size: 15px !important;
	white-space: nowrap;
}

/* Legal texts (imprint, privacy policy …) */
.fyve-legal-text p {
	margin-bottom: 1.4em;
}

.fyve-legal-text a {
	overflow-wrap: anywhere;
}

/* ---------------------------------------------------------------
 * FAQ page: section (l1) → category (l2) → question (l3)
 * Equal specificity: the later level wins for nested titles
 * ------------------------------------------------------------- */
.fyve-faq .e-n-accordion {
	gap: 0;
}

.fyve-faq .e-n-accordion-item,
.fyve-faq .e-n-accordion-item-title,
.fyve-faq .e-n-accordion-item > .e-con {
	border: 0 !important;
	border-radius: 0;
	background: transparent !important;
}

.fyve-faq .e-n-accordion-item-title {
	justify-content: space-between !important;
	gap: 16px;
	cursor: pointer;
}

.fyve-faq .e-n-accordion-item-title-header {
	flex: 1 1 auto;
	text-align: left;
}

.fyve-faq .e-n-accordion-item-title-text {
	margin: 0;
	color: var(--ast-global-color-2) !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
}

/* Level 1: grey box per section, chevron */
.fyve-faq-l1 > .e-n-accordion {
	gap: 24px;
}

.fyve-faq-l1 .e-n-accordion-item {
	background: #EDEDED !important;
}

.fyve-faq-l1 .e-n-accordion-item-title {
	padding: 28px 32px 24px !important;
	box-shadow: inset 0 -2px 0 #FFFFFF;
	margin: 0 0 8px;
}

.fyve-faq-l1 .e-n-accordion-item:not([open]) > .e-n-accordion-item-title {
	box-shadow: none;
	margin: 0;
}

.fyve-faq-l1 .e-n-accordion-item-title-text {
	font-family: 'Oswald', sans-serif !important;
	font-size: 32px !important;
	font-weight: 500 !important;
}

.fyve-faq-l1 .e-n-accordion-item-title-icon {
	font-size: 22px;
}

/* Level 2: category, divider, plus/minus in white circle */
.fyve-faq-l2 .e-n-accordion-item {
	background: transparent !important;
	border-bottom: 3px solid #FFFFFF !important;
}

.fyve-faq-l2 .e-n-accordion-item:last-child {
	border-bottom: 0 !important;
}

.fyve-faq-l2 .e-n-accordion-item-title {
	padding: 20px 0 !important;
	box-shadow: none;
	margin: 0;
}

.fyve-faq-l2 .e-n-accordion-item-title-text {
	font-family: 'Oswald', sans-serif !important;
	font-size: 30px !important;
	font-weight: 500 !important;
}

.fyve-faq-l2 .e-n-accordion-item-title-icon,
.fyve-faq-l3 .e-n-accordion-item-title-icon {
	flex: 0 0 44px;
	justify-content: center;
	width: 44px !important;
	height: 44px;
	border-radius: 50%;
	background: #FFFFFF;
	font-size: 18px;
}

.fyve-faq .e-n-accordion-item-title-icon span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.fyve-faq .e-n-accordion-item-title-icon svg,
.fyve-faq .e-n-accordion-item-title-icon i {
	width: 1em;
	height: 1em;
	fill: var(--ast-global-color-2);
	color: var(--ast-global-color-2);
}

/* Level 3: plain question */
.fyve-faq-l3 .e-n-accordion-item {
	border-bottom: 0 !important;
}

.fyve-faq-l3 .e-n-accordion-item-title {
	padding: 12px 0 !important;
}

.fyve-faq-l3 .e-n-accordion-item-title-text {
	font-family: 'Roboto', sans-serif !important;
	font-size: 18px !important;
	font-weight: 400 !important;
	text-transform: none;
	line-height: 1.4 !important;
}

.fyve-faq-l3 .elementor-widget-text-editor {
	font-size: 17px;
	line-height: 1.7;
}

@media (max-width: 767px) {
	.fyve-faq-l1 .e-n-accordion-item-title {
		padding: 20px 16px 16px !important;
	}

	.fyve-faq-l1 .e-n-accordion-item > .e-con {
		padding: 0 16px 16px !important;
	}

	.fyve-faq-l2 .e-n-accordion-item-title {
		padding: 16px 0 !important;
	}

	.fyve-faq-l2 .e-n-accordion-item > .e-con {
		padding: 0 0 12px !important;
	}

	.fyve-faq-l3 .e-n-accordion-item-title {
		padding: 10px 0 !important;
	}

	.fyve-faq-l3 .e-n-accordion-item > .e-con {
		padding: 0 0 8px !important;
	}

	.fyve-faq-l1 .e-n-accordion-item-title-text {
		font-size: 26px !important;
	}

	.fyve-faq-l2 .e-n-accordion-item-title-text {
		font-size: 22px !important;
	}

	.fyve-faq-l3 .e-n-accordion-item-title-text {
		font-size: 16px !important;
	}

	.fyve-faq-l2 .e-n-accordion-item-title-icon,
	.fyve-faq-l3 .e-n-accordion-item-title-icon {
		flex-basis: 36px;
		width: 36px !important;
		height: 36px;
		font-size: 15px;
	}
}

/* ---------------------------------------------------------------
 * Prepaid tariffs page
 * ------------------------------------------------------------- */
.fyve-prepaid-notice {
	border-left: 4px solid var(--fyve-green) !important;
}

.fyve-prepaid-notice .elementor-heading-title {
	color: var(--ast-global-color-1);
}

.fyve-prepaid-notice p {
	margin: 0;
}

.fyve-prepaid-price .elementor-heading-title {
	text-align: left;
}

/* Add-ons below the main list: smaller, plus icon */
.fyve-prepaid-extras {
	font-size: 14px;
}

.fyve-prepaid-extras .elementor-icon-list-text {
	color: var(--fyve-grey-text) !important;
}

.fyve-kostentabelle__sum--sub th,
.fyve-kostentabelle__sum--sub td {
	border-top: 0;
}

.fyve-basis-card .fyve-btn-outline {
	margin-top: -4px;
}

.fyve-dayflat a {
	color: var(--ast-global-color-2);
}

/* Remove Astra table borders from the cost table */
table.fyve-kostentabelle {
	border: 0;
}

/* Prepaid tariff cards: pink header like the tariff packages on the home page */
.e-con.fyve-prepaid-tarif {
	overflow: hidden;
}

.e-con.fyve-prepaid-tarif.fyve-tarif--highlight {
	border-color: var(--fyve-pink) !important;
}

.e-con.fyve-prepaid-head {
	background: linear-gradient(120deg, var(--fyve-pink) 0%, #7d1852 100%);
}

.fyve-prepaid-head__name .elementor-heading-title {
	margin: 0;
	color: #FFFFFF;
	font-size: 30px;
	line-height: 1.1;
}

.fyve-prepaid-head__name sup {
	font-size: .5em;
}

.fyve-prepaid-head__kicker .elementor-heading-title {
	color: #FFFFFF;
	font-family: 'Oswald', sans-serif;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.e-con.fyve-prepaid-tarif__body {
	flex-grow: 1;
}

/* Header: do not wrap menu and login button on smaller desktops (from 922 px) */
@media (min-width: 922px) {
	.ast-primary-header-bar .main-header-menu > .menu-item > .menu-link,
	.ast-primary-header-bar .ast-custom-button {
		white-space: nowrap;
	}

	.ast-primary-header-bar .main-header-menu {
		flex-wrap: nowrap;
	}
}

@media (min-width: 922px) and (max-width: 1100px) {
	.ast-primary-header-bar .main-header-menu > .menu-item > .menu-link {
		padding-inline: 10px;
	}
}

/* ---------------------------------------------------------------
 * Prepaid: teaser "In FYVE Sekunden zum Tarif" (based on the client's mockup)
 * Light grey with green wave, black title box, mascot in a circle,
 * tariff picker in dark pink
 * ------------------------------------------------------------- */
.fyve-teaser {
	--fyve-pink-dark: #7D1852;
	position: relative;
	isolation: isolate;
	overflow: hidden;
	color: var(--ast-global-color-2);
}

/* Green wave with white swoosh (purely decorative) */
.e-con.fyve-teaser::before {
	content: "" !important;
	position: absolute;
	inset: 0;
	z-index: -1 !important;
	opacity: 1 !important;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 900' preserveAspectRatio='none'%3E%3Cpath fill='%2300C05A' d='M0 640 C 380 560 640 700 900 560 S 1300 260 1440 200 L1440 900 L0 900 Z'/%3E%3Cpath fill='%23FFFFFF' d='M0 700 C 360 610 660 760 930 620 S 1290 330 1440 280 L1440 330 C 1300 380 1120 560 950 670 S 380 680 0 760 Z'/%3E%3C/svg%3E") no-repeat center bottom / 100% 100% !important;
	pointer-events: none;
}

.fyve-teaser__title .elementor-heading-title {
	display: inline;
	padding: .04em .22em;
	background: var(--ast-global-color-2);
	color: #FFFFFF;
	font-family: 'Oswald', sans-serif;
	font-size: 62px;
	font-weight: 600;
	line-height: 1.3;
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
}

.fyve-teaser__sub .elementor-heading-title {
	font-family: 'Oswald', sans-serif;
	font-size: 26px;
	font-weight: 500;
	color: var(--ast-global-color-2);
}

.fyve-teaser__list .elementor-icon-list-text {
	font-size: 18px;
}

.fyve-teaser__link a {
	color: var(--ast-global-color-2);
	font-family: 'Oswald', sans-serif;
	font-weight: 500;
}

.e-con.fyve-teaser__stage {
	position: relative;
	min-height: 400px;
}

/* Mascot: white circle with pink ring, head sticks out at the top */
.fyve-teaser__visual {
	position: relative;
	width: 360px !important;
	max-width: 100%;
}

.fyve-teaser__visual::before {
	content: "";
	position: absolute;
	inset: 0;
	aspect-ratio: 1;
	border-radius: 50%;
	background: #FFFFFF;
	box-shadow: 0 0 0 12px var(--fyve-pink), 0 24px 48px rgba(29, 29, 27, .18);
}

.fyve-teaser__visual img {
	position: relative;
	display: block;
	width: 100% !important;
	height: auto;
	clip-path: inset(-30% -30% 0 -30% round 0 0 50% 50%);
	animation: fyve-wave 6s ease-in-out infinite;
}

@keyframes fyve-wave {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-6px); }
}

.fyve-teaser__badge {
	position: absolute !important;
	left: 0;
	bottom: 10%;
	width: auto !important;
	z-index: 2;
}

.fyve-teaser__badge .elementor-heading-title {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 156px;
	height: 156px;
	padding: 16px;
	border: 4px solid #FFFFFF;
	border-radius: 50%;
	background: var(--fyve-pink);
	color: #FFFFFF;
	font-family: 'Oswald', sans-serif;
	font-size: 21px;
	font-weight: 500;
	line-height: 1.1;
	text-align: center;
	transform: rotate(-10deg);
	box-shadow: 0 12px 28px rgba(0, 0, 0, .18);
}

.fyve-teaser__badge strong {
	font-size: 46px;
	font-weight: 700;
	line-height: 1;
}

.fyve-teaser__badge span {
	font-family: 'Roboto', sans-serif;
	font-size: 12px;
	font-weight: 400;
}

/* Tariff picker */
.fyve-picker {
	display: grid;
	grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr);
	gap: 28px;
	align-items: start;
}

.fyve-picker__list {
	margin: 0;
	padding: 0;
	border: 0;
	min-width: 0;
}

.fyve-picker__legend {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 16px;
	padding: 0;
	color: var(--ast-global-color-2);
	font-family: 'Oswald', sans-serif;
	font-size: 26px;
	font-weight: 500;
	line-height: 1.2;
}

/* Step numbers 1 / 2 */
.fyve-picker__legend > span,
.fyve-picker__kicker > span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--ast-global-color-2);
	color: #FFFFFF;
	font-size: 17px;
	font-weight: 600;
}

.fyve-picker__kicker {
	display: flex;
	align-items: center;
	gap: 12px;
}

.fyve-picker__kicker > span {
	background: #FFFFFF;
	color: var(--fyve-pink-dark);
}

.fyve-picker__option {
	position: relative;
	display: flex;
	align-items: center;
	gap: 18px;
	margin: 0 0 12px;
	padding: 18px 28px;
	background: #FFFFFF;
	color: var(--ast-global-color-2);
	cursor: pointer;
	box-shadow: 0 6px 18px rgba(29, 29, 27, .10);
	transition: background-color .2s ease, transform .2s ease;
}

.fyve-picker__option:hover {
	transform: translateX(4px);
}

.fyve-picker__option input {
	flex: 0 0 auto;
	width: 22px;
	height: 22px;
	margin: 0;
	accent-color: var(--fyve-pink-dark);
	cursor: pointer;
}

.fyve-picker__option:has(input:focus-visible) {
	outline: 3px solid var(--ast-global-color-2);
	outline-offset: 3px;
}

.fyve-picker__option:has(input:checked) {
	background: var(--fyve-pink-dark);
	color: #FFFFFF;
}

.fyve-picker__option:has(input:checked) input {
	accent-color: #FFFFFF;
}

.fyve-picker__gb {
	flex: 0 0 auto;
	min-width: 3.4em;
	font-family: 'Oswald', sans-serif;
	font-size: 40px;
	font-weight: 600;
	line-height: 1;
	white-space: nowrap;
}

.fyve-picker__gb small {
	font-size: .5em;
}

.fyve-picker__name {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 10px;
	font-family: 'Oswald', sans-serif;
	font-size: 18px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: .04em;
}

.fyve-picker__badge {
	display: inline-block;
	padding: 3px 10px;
	border-radius: 0;
	background: var(--fyve-pink);
	color: #FFFFFF;
	font-size: 12px;
	letter-spacing: .06em;
	white-space: nowrap;
}

.fyve-picker__option:has(input:checked) .fyve-picker__badge {
	background: #FFFFFF;
	color: var(--fyve-pink-dark);
}

.fyve-picker__price {
	flex: 0 0 auto;
	margin-left: auto;
	font-family: 'Oswald', sans-serif;
	font-size: 30px;
	font-weight: 600;
	white-space: nowrap;
	text-align: right;
}

.fyve-picker__price small {
	display: block;
	font-family: 'Roboto', sans-serif;
	font-size: 12px;
	font-weight: 400;
}

.fyve-picker__summary {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin-top: 58px;
	padding: 28px;
	background: var(--fyve-pink-dark);
	color: #FFFFFF;
	box-shadow: 0 12px 32px rgba(0, 0, 0, .18);
	scroll-margin-top: 16px;
}

.fyve-picker__summary p {
	margin: 0;
}

.fyve-picker__kicker,
.fyve-picker__title {
	font-family: 'Oswald', sans-serif;
	font-size: 22px;
	font-weight: 500;
}

.fyve-picker__title strong {
	font-size: 1.4em;
}

.fyve-picker__cost {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	font-family: 'Oswald', sans-serif;
	font-size: 18px;
}

.fyve-picker__cost strong {
	font-size: 54px;
	line-height: 1;
}

.fyve-picker__features {
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 15px;
}

.fyve-picker__features li {
	padding: 6px 0 6px 24px;
	border-top: 1px solid rgba(255, 255, 255, .25);
	background: no-repeat left center / 14px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2.4' d='M2 8.5l4 4 8-9'/%3E%3C/svg%3E");
}

.fyve-picker__btn.elementor-button {
	width: 100%;
	padding: 16px 24px;
	font-size: 18px !important;
	text-align: center;
}

.fyve-picker__pib {
	color: #FFFFFF;
	font-size: 14px;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.fyve-picker__pib:hover,
.fyve-picker__pib:focus-visible {
	color: #FFFFFF;
}

@media (max-width: 1024px) {
	.fyve-teaser__title .elementor-heading-title {
		font-size: 48px;
	}

	.fyve-picker {
		grid-template-columns: 1fr;
	}

	.fyve-picker__summary {
		margin-top: 0;
	}
}

/* Mobile as in the mockup: small mascot top right, badge to its left */
@media (max-width: 767px) {
	/* Wave only behind the tariff picker */
	.e-con.fyve-teaser::before {
		background-size: 240% 48% !important;
		background-position: 35% 100% !important;
	}

	.fyve-teaser > .e-con-inner > .e-con:first-child {
		gap: 12px;
	}

	.e-con.fyve-teaser__stage {
		order: -1;
		align-self: flex-end;
		width: auto !important;
		min-height: 0;
		padding-right: 8px;
	}

	.fyve-teaser__visual {
		width: 190px !important;
	}

	.fyve-teaser__visual::before {
		box-shadow: 0 0 0 7px var(--fyve-pink), 0 12px 24px rgba(29, 29, 27, .18);
	}

	.fyve-teaser__badge {
		left: -84px;
		bottom: 4%;
	}

	.fyve-teaser__badge .elementor-heading-title {
		width: 104px;
		height: 104px;
		padding: 10px;
		border-width: 3px;
		font-size: 14px;
	}

	.fyve-teaser__badge strong {
		font-size: 30px;
	}

	.fyve-teaser__badge span {
		font-size: 9px;
	}

	.fyve-teaser__title .elementor-heading-title {
		font-size: 36px;
	}

	.fyve-teaser__sub {
		display: none;
	}

	.fyve-teaser__list .elementor-icon-list-text {
		font-size: 16px;
	}

	.fyve-picker__legend {
		font-size: 22px;
	}

	.fyve-picker__option {
		gap: 10px;
		padding: 14px 14px;
		margin-bottom: 8px;
	}

	.fyve-picker__gb {
		min-width: 0;
		font-size: 28px;
	}

	.fyve-picker__name {
		flex: 1 1 auto;
		font-size: 14px;
	}

	.fyve-picker__badge {
		padding: 2px 7px;
		font-size: 10px;
		letter-spacing: .02em;
	}

	.fyve-picker__price {
		font-size: 22px;
	}

	.fyve-picker__price small {
		font-size: 11px;
	}

	/* Compact summary: title + price on one line, button */
	.fyve-picker__summary {
		display: grid;
		grid-template-columns: 1fr auto;
		align-items: end;
		gap: 12px 16px;
		padding: 20px;
	}

	.fyve-picker__summary > div[aria-live] {
		display: contents;
	}

	.fyve-picker__kicker {
		grid-column: 1 / -1;
		font-size: 18px;
	}

	.fyve-picker__title {
		font-size: 18px;
	}

	.fyve-picker__cost > span {
		display: none;
	}

	.fyve-picker__cost strong {
		font-size: 34px;
	}

	.fyve-picker__features,
	.fyve-picker__pib {
		display: none;
	}

	.fyve-picker__btn.elementor-button {
		grid-column: 1 / -1;
	}
}

@media (prefers-reduced-motion: reduce) {
	.fyve-teaser__visual img { animation: none; }
	.fyve-picker__option { transition: none; }
	.fyve-picker__option:hover { transform: none; }
}

/* Mobile menu: submenu arrow without button background (Astra otherwise gives it hover/focus green) */
#ast-hf-mobile-menu .ast-menu-toggle,
#ast-hf-mobile-menu .ast-menu-toggle:hover,
#ast-hf-mobile-menu .ast-menu-toggle:focus,
#ast-hf-mobile-menu .ast-menu-toggle:active {
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	color: var(--ast-global-color-2) !important;
}

#ast-hf-mobile-menu .ast-menu-toggle:focus-visible {
	outline: 2px solid var(--ast-global-color-2);
	outline-offset: -4px;
}

#ast-hf-mobile-menu .ast-menu-toggle svg {
	fill: currentColor;
	transition: transform .2s ease;
}

#ast-hf-mobile-menu .ast-submenu-expanded > .ast-menu-toggle svg {
	transform: rotate(180deg);
}

@media (prefers-reduced-motion: reduce) {
	#ast-hf-mobile-menu .ast-menu-toggle svg { transition: none; }
}

/* ---------------------------------------------------------------
 * Mobile menu (fullscreen, Astra "full-width") in the teaser style:
 * light grey, uppercase Oswald, everything the same size and dark,
 * active page in a black box, green wave + mascot at the bottom
 * ------------------------------------------------------------- */
#ast-mobile-popup .ast-mobile-popup-inner {
	--fyve-menu-size: 22px;
	overflow-x: hidden;
	overflow-y: auto;
	background: #F1F1F3;
}

/* Decoration: wave + mascot at the end of the list (move down when submenus expand) */
#ast-mobile-popup .ast-mobile-popup-inner {
	display: flex;
	flex-direction: column;
}

#ast-mobile-popup .ast-mobile-popup-content {
	display: flex !important;
	flex: 1 0 auto;
	flex-direction: column;
}

#ast-mobile-popup .ast-mobile-popup-content::after {
	content: "";
	flex: 0 0 auto;
	height: 200px;
	margin: auto -20px 0;
	background:
		url("assets/img/fyve-maskottchen-v2.webp") no-repeat right 8px bottom / 150px 150px,
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 200' preserveAspectRatio='none'%3E%3Cpath fill='%2300C05A' d='M0 90 C 120 40 200 140 400 30 L400 200 L0 200 Z'/%3E%3Cpath fill='%23FFFFFF' d='M0 112 C 130 62 210 160 400 52 L400 70 C 220 176 120 84 0 132 Z'/%3E%3C/svg%3E") no-repeat center bottom / 100% 100%;
	pointer-events: none;
}

/* Top bar: logo left, close button as black box */
#ast-mobile-popup .ast-mobile-popup-header {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 64px;
	padding: 0 16px 0 20px;
}

#ast-mobile-popup .ast-mobile-popup-header::before {
	content: "";
	width: 64px;
	height: 30px;
	background: url("assets/img/fyve_logo.svg") no-repeat left center / contain;
}

#ast-mobile-popup .menu-toggle-close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	background: var(--ast-global-color-2) !important;
	color: #FFFFFF !important;
}

#ast-mobile-popup .menu-toggle-close svg {
	width: 22px;
	height: 22px;
	fill: currentColor;
}

#ast-mobile-popup .ast-mobile-popup-content {
	position: relative;
	z-index: 1;
	padding: 8px 20px 0;
}

/* Uniform rows: menu items, phone, login */
#ast-hf-mobile-menu {
	background: transparent !important;
}

#ast-hf-mobile-menu > .menu-item,
#ast-mobile-popup .ast-header-html-1,
#ast-mobile-popup .ast-header-button-1 {
	width: 100%;
	margin: 0;
	border: 0 !important;
	border-bottom: 2px solid rgba(29, 29, 27, .12) !important;
}

#ast-hf-mobile-menu .menu-link,
#ast-mobile-popup .fyve-hotline,
#ast-mobile-popup .ast-custom-button {
	font-family: 'Oswald', sans-serif !important;
	font-size: var(--fyve-menu-size) !important;
	font-weight: 500 !important;
	line-height: 1.15 !important;
	letter-spacing: .01em;
	text-transform: uppercase;
	color: var(--ast-global-color-2) !important;
}

#ast-hf-mobile-menu > .menu-item > .menu-link {
	display: inline-block;
	padding: 14px 0 !important;
	border: 0 !important;
	background: transparent !important;
}

/* Active page: black box like the teaser title */
#ast-hf-mobile-menu > .current-menu-item > .menu-link,
#ast-hf-mobile-menu > .current-menu-ancestor > .menu-link {
	margin: 10px 0;
	padding: 2px 12px !important;
	background: var(--ast-global-color-2) !important;
	color: #FFFFFF !important;
}

/* Submenu: smaller, indented with green line */
#ast-hf-mobile-menu .sub-menu {
	margin: 0 0 12px !important;
	padding: 0 0 0 14px !important;
	border: 0 !important;
	border-left: 4px solid var(--ast-global-color-0) !important;
	background: transparent !important;
}

#ast-hf-mobile-menu .sub-menu .menu-item {
	border: 0 !important;
}

#ast-hf-mobile-menu .sub-menu .menu-link {
	padding: 6px 0 !important;
	border: 0 !important;
	background: transparent !important;
	font-size: 17px !important;
	font-weight: 400 !important;
}

#ast-hf-mobile-menu .sub-menu .menu-link .ast-icon {
	display: none;
}

#ast-hf-mobile-menu .sub-menu .current-menu-item > .menu-link {
	text-decoration: underline;
	text-decoration-thickness: 3px;
	text-underline-offset: 4px;
}

#ast-hf-mobile-menu .ast-menu-toggle {
	top: 50%;
	height: 52px;
	transform: translateY(-50%);
}

#ast-hf-mobile-menu .menu-item-has-children > .ast-menu-toggle {
	top: 0;
	transform: none;
	height: calc(var(--fyve-menu-size) * 1.15 + 28px);
}

#ast-hf-mobile-menu .ast-menu-toggle svg {
	width: 18px;
	height: 18px;
}

#ast-hf-mobile-menu .ast-menu-toggle:focus-visible {
	outline-offset: 2px;
}

/* Phone + login: same rows without box */
#ast-mobile-popup .ast-header-html-1 p {
	margin: 0;
}

#ast-mobile-popup .fyve-hotline {
	display: flex;
	gap: 12px;
	padding: 14px 0;
}

#ast-mobile-popup .fyve-hotline::before {
	width: .8em;
	height: .8em;
}

#ast-mobile-popup .ast-builder-button-wrap {
	width: 100%;
}

#ast-mobile-popup .ast-custom-button-link {
	display: block;
}

#ast-mobile-popup .ast-custom-button {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px 0 !important;
	border: 0 !important;
	background: transparent !important;
}

#ast-mobile-popup .ast-custom-button::after {
	content: "→";
	font-weight: 500;
}

#ast-mobile-popup .fyve-hotline:hover,
#ast-mobile-popup .ast-custom-button-link:hover .ast-custom-button,
#ast-hf-mobile-menu > .menu-item:not(.current-menu-item) > .menu-link:hover {
	color: var(--ast-global-color-1) !important;
}

@media (max-height: 560px) {
	#ast-mobile-popup .ast-mobile-popup-content::after {
		height: 120px;
		background-size: 100px 100px, 100% 100%;
	}
}

/* Menu item only as wide as its text (parent <li> is a flex column) */
#ast-mobile-popup #ast-hf-mobile-menu > .menu-item > .menu-link {
	align-self: flex-start;
	width: auto !important;
}

#ast-mobile-popup .ast-header-html-1,
#ast-mobile-popup .ast-header-button-1,
#ast-mobile-popup .ast-header-html-1 .ast-header-html,
#ast-mobile-popup .ast-builder-html-element,
#ast-mobile-popup .ast-builder-button-wrap {
	padding: 0 !important;
	margin: 0 !important;
}

/* Mobile menu: touch targets at least 46 px (WCAG 2.5.5 / Apple HIG), look unchanged */
#ast-hf-mobile-menu .sub-menu .menu-link {
	display: flex !important;
	align-items: center;
	min-height: 46px;
	padding: 0 !important;
}

/* Top-level items tappable across the full row (arrow button sits on top at the right) */
#ast-mobile-popup #ast-hf-mobile-menu > .menu-item:not(.current-menu-item) > .menu-link {
	align-self: stretch;
	width: 100% !important;
}

/* Active box stays compact: transparent border only enlarges the touch target */
#ast-mobile-popup #ast-hf-mobile-menu > .current-menu-item > .menu-link {
	margin: 0 !important;
	border: 0 solid transparent !important;
	border-width: 9px 0 !important;
	background-clip: padding-box !important;
}

#ast-mobile-popup .menu-toggle-close {
	width: 46px;
	height: 46px;
}

/* ---------------------------------------------------------------
 * Downloads page: categories as grey bars, files with icon on the right
 * ------------------------------------------------------------- */
.fyve-dl .e-n-accordion-item + .e-n-accordion-item {
	margin-top: 8px !important;
}

.fyve-dl .e-n-accordion-item {
	border: 0 !important;
	background: #EDEDED !important;
}

.fyve-dl .e-n-accordion-item-title {
	justify-content: space-between !important;
	min-height: 52px;
	padding: 14px 24px !important;
	border: 0 !important;
	background: transparent !important;
	cursor: pointer;
}

.fyve-dl .e-n-accordion-item-title-header {
	flex: 1 1 auto;
	text-align: left;
}

.fyve-dl .e-n-accordion-item-title-text {
	margin: 0;
	color: var(--ast-global-color-2) !important;
	font-family: 'Oswald', sans-serif !important;
	font-size: 20px !important;
	font-weight: 500 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
}

.fyve-dl .e-n-accordion-item-title-icon {
	font-size: 18px;
}

.fyve-dl .e-n-accordion-item-title-icon svg,
.fyve-dl .e-n-accordion-item-title-icon i {
	width: 1em;
	height: 1em;
	fill: var(--ast-global-color-2);
	color: var(--ast-global-color-2);
}

.fyve-dl .e-n-accordion-item > .e-con {
	border: 0 !important;
	background: transparent !important;
}

/* File row: whole row is the link, icon on the right */
.fyve-dl__list .elementor-icon-list-item > a {
	display: flex !important;
	flex-direction: row-reverse;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	min-height: 64px;
	padding: 14px 0;
}

.fyve-dl__list .elementor-icon-list-text {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 0 !important;
}

.fyve-dl__name {
	font-size: 16px;
	font-weight: 500;
	overflow-wrap: anywhere;
}

.fyve-dl__meta {
	color: var(--ast-global-color-3);
	font-size: 13px;
}

.fyve-dl__list .elementor-icon-list-icon {
	flex: 0 0 auto;
}

.fyve-dl__list .elementor-icon-list-item > a:hover .fyve-dl__name,
.fyve-dl__list .elementor-icon-list-item > a:focus-visible .fyve-dl__name {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.fyve-dl__list .elementor-icon-list-item > a:focus-visible {
	outline: 3px solid var(--ast-global-color-2);
	outline-offset: 2px;
}

.fyve-dl__empty p {
	margin: 4px 0 12px;
	color: var(--ast-global-color-3);
}

@media (max-width: 767px) {
	.fyve-dl .e-n-accordion-item-title {
		padding: 12px 16px !important;
	}

	.fyve-dl .e-n-accordion-item > .e-con {
		padding: 0 16px 8px !important;
	}
}

/* ---------------------------------------------------------------
 * Desktop header in the style of the mobile menu / teaser:
 * same width as the content, uppercase Oswald, everything the same size
 * and dark, active page in a black box, login with arrow
 * ------------------------------------------------------------- */
@media (min-width: 922px) {
	#ast-desktop-header .site-primary-header-wrap.ast-container {
		max-width: 1148px;
		padding-inline: 24px;
	}

	#ast-desktop-header .main-header-menu > .menu-item > .menu-link,
	#ast-desktop-header .fyve-hotline,
	#ast-desktop-header .ast-custom-button {
		font-family: 'Oswald', sans-serif !important;
		font-size: 17px !important;
		font-weight: 500 !important;
		line-height: 1.2 !important;
		letter-spacing: .04em !important;
		text-transform: uppercase;
		color: var(--ast-global-color-2) !important;
	}

	#ast-desktop-header .main-header-menu > .menu-item > .menu-link {
		padding: 6px 12px !important;
	}

	#ast-desktop-header .main-header-menu > .current-menu-item > .menu-link,
	#ast-desktop-header .main-header-menu > .current-menu-ancestor > .menu-link {
		background: var(--ast-global-color-2) !important;
		color: #FFFFFF !important;
	}

	#ast-desktop-header .main-header-menu > .menu-item:not(.current-menu-item):not(.current-menu-ancestor) > .menu-link:hover,
	#ast-desktop-header .main-header-menu > .menu-item:not(.current-menu-item):not(.current-menu-ancestor) > .menu-link:focus-visible {
		box-shadow: inset 0 -3px 0 var(--ast-global-color-0);
	}

	/* Phone and login: same font, separated by dividers */
	#ast-desktop-header .ast-header-html-1,
	#ast-desktop-header .ast-header-button-1 {
		margin-left: 8px;
		padding-left: 20px;
		border-left: 2px solid rgba(29, 29, 27, .12);
	}

	#ast-desktop-header .ast-header-html-1 p {
		display: flex;
		align-items: center;
		margin: 0;
		line-height: 1.2;
	}

	#ast-desktop-header .fyve-hotline::before {
		width: .95em;
		height: .95em;
	}

	#ast-desktop-header .fyve-hotline:hover {
		color: var(--ast-global-color-1) !important;
	}

	#ast-desktop-header .ast-custom-button {
		display: inline-flex;
		align-items: center;
		gap: 8px;
		padding: 6px 0 !important;
		border: 0 !important;
		background: transparent !important;
	}

	#ast-desktop-header .ast-custom-button::after {
		content: "→";
		transition: transform .2s ease;
	}

	#ast-desktop-header .ast-custom-button-link:hover .ast-custom-button::after,
	#ast-desktop-header .ast-custom-button-link:focus-visible .ast-custom-button::after {
		transform: translateX(4px);
	}

	/* Submenu (Service): light grey panel with green line */
	#ast-desktop-header .main-header-menu .sub-menu {
		width: max-content !important;
		min-width: 220px;
		padding: 8px 0;
		border: 0 !important;
		border-top: 4px solid var(--ast-global-color-0) !important;
		background: #F1F1F3 !important;
		box-shadow: 0 16px 32px rgba(29, 29, 27, .14);
	}

	#ast-desktop-header .main-header-menu .sub-menu .menu-link {
		white-space: nowrap;
		padding: 11px 20px !important;
		border: 0 !important;
		color: var(--ast-global-color-2) !important;
		font-family: 'Oswald', sans-serif;
		font-size: 15px;
		font-weight: 400;
		letter-spacing: .04em;
		text-transform: uppercase;
	}

	#ast-desktop-header .main-header-menu .sub-menu .menu-link:hover,
	#ast-desktop-header .main-header-menu .sub-menu .menu-link:focus-visible {
		background: #FFFFFF !important;
	}

	#ast-desktop-header .main-header-menu .sub-menu .menu-link .ast-icon {
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	#ast-desktop-header .ast-custom-button::after { transition: none; }
}

/* ---------------------------------------------------------------
 * Footer in the teaser style: green wave with white swoosh on top,
 * FYVE green with dark text, headings in black boxes,
 * mascot waves goodbye, bottom row black
 * ------------------------------------------------------------- */
.site-footer {
	position: relative;
	z-index: 2; /* Wave + mascot overlap the last section */
	margin-top: 120px;
}

.site-footer::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 100%;
	height: 120px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath fill='%2300C05A' d='M0 70 C 360 10 720 130 1080 50 S 1380 20 1440 30 L1440 120 L0 120 Z'/%3E%3Cpath fill='%23FFFFFF' d='M0 92 C 360 32 720 150 1080 72 S 1380 42 1440 52 L1440 64 C 1380 56 1290 66 1080 88 S 360 52 0 106 Z'/%3E%3C/svg%3E") no-repeat center bottom / 100% 100%;
	pointer-events: none;
}

/* Mascot stands on the wave; the bottom edge of the image fades softly into the green */
.site-footer::after {
	content: "";
	position: absolute;
	right: max(24px, calc((100% - 1100px) / 2));
	bottom: calc(100% - 40px);
	width: 170px;
	height: 170px;
	-webkit-mask-image: linear-gradient(to bottom, #000 72%, transparent 98%);
	mask-image: linear-gradient(to bottom, #000 72%, transparent 98%);
	background: url("assets/img/fyve-maskottchen-v2.webp") no-repeat center bottom / contain;
	pointer-events: none;
}

.site-footer .site-above-footer-wrap,
.site-footer .site-primary-footer-wrap {
	color: var(--ast-global-color-2);
}

/* Logo: white variant (green lettering in white box) */
.fyve-footer-logo {
	display: inline-flex;
}

.fyve-footer-logo img {
	display: block;
	width: 84px;
	height: auto;
}

/* Headings as black boxes */
.site-footer .widget-title {
	display: inline-block;
	margin-bottom: 16px;
	padding: 2px 10px;
	background: var(--ast-global-color-2);
	color: #FFFFFF !important;
	font-family: 'Oswald', sans-serif;
	font-size: 18px !important;
	font-weight: 500;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.site-footer .site-primary-footer-wrap a {
	color: var(--ast-global-color-2) !important;
}

.site-footer .site-primary-footer-wrap .widget li,
.site-footer .site-primary-footer-wrap .menu-item {
	margin-bottom: 4px;
}

.site-footer .site-primary-footer-wrap .widget a {
	display: inline-block;
	padding: 6px 0;
}



.site-footer .ast-footer-social-wrap a:hover svg,
.site-footer .ast-footer-social-wrap a:focus-visible svg {
	fill: #FFFFFF !important;
}

/* Bottom row: black, white text */
.site-footer .site-below-footer-wrap,
.site-footer .site-below-footer-wrap a,
.site-footer .site-below-footer-wrap .ast-footer-copyright {
	color: #FFFFFF !important;
}

.site-footer .site-below-footer-wrap {
	border-top: 0 !important;
}

.site-footer a:focus-visible {
	outline: 3px solid var(--ast-global-color-2);
	outline-offset: 2px;
}

.site-footer .site-below-footer-wrap a:focus-visible {
	outline-color: #FFFFFF;
}

@media (max-width: 921px) {
	.site-footer {
		margin-top: 80px;
	}

	.site-footer::before {
		height: 80px;
	}

	.site-footer::after {
		width: 110px;
		height: 110px;
		bottom: calc(100% - 26px);
		right: 12px;
	}
}

/* Footer content at the same width as header and content (1100 px + padding) */
.site-footer .ast-builder-footer-grid-columns.ast-builder-grid-row {
	box-sizing: border-box;
	max-width: 1148px !important;
	padding-inline: 24px !important;
}

/* Desktop: submenu arrow at least 24 × 24 px (WCAG 2.5.8) */
@media (min-width: 922px) {
	#ast-desktop-header .dropdown-menu-toggle {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-width: 24px;
		min-height: 24px;
	}
}

/* Home variant B: longer badge text, "statt x GB" in the picker */
.fyve-teaser__badge--long strong {
	font-size: 36px;
	white-space: nowrap;
}

.fyve-picker__old {
	font-family: 'Roboto', sans-serif;
	font-size: 13px;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
}

.fyve-picker__old s {
	opacity: .75;
}

@media (max-width: 767px) {
	.fyve-teaser__badge--long strong {
		font-size: 24px;
	}

	.fyve-picker__old {
		font-size: 11px;
	}
}

/* ---------------------------------------------------------------
 * Square corners site-wide (like the teaser): no rounded corners.
 * Intentional circles (mascot, badge, step numbers, plus/minus,
 * rocket button) keep 50 % via their own rules.
 * ------------------------------------------------------------- */
.e-con,
.elementor-field-group .elementor-field,
.elementor-field-textual,
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="search"],
input[type="url"],
input[type="number"],
select,
textarea,
.e-n-tabs-heading .e-n-tab-title,
.elementor-cta,
.elementor-flip-box__front,
.elementor-flip-box__back,
.elementor-price-table,
.elementor-testimonial,
.ast-builder-menu .sub-menu,
.search-submit,
.search-field,
.wp-block-image img {
	border-radius: 0 !important;
}

/* Shop iframes (pym.js sets the height) */
.fyve-iframe {
	width: 100%;
}
.fyve-iframe iframe {
	display: block;
	width: 100%;
	border: 0;
}
