/*
Theme Name: EasyPeasy (VT10 Child)
Theme URI: https://easypeasy.schule
Description: Child theme for the PremiumPress Video Theme (VT10). All EasyPeasy customisations live here so the parent theme can be updated.
Author: EasyPeasy
Template: VT10
Version: 1.0.0
Text Domain: easypeasy-child
*/

/*
 * VT10 does not use its own style.css; it loads its CSS from the framework/CDN.
 * Only child-theme overrides go here. They load after Elementor's styles but
 * before VT10's deferred styles, so prefix selectors with "body" when a rule
 * has to win over the theme.
 */

/* ===========================================================================
   Poppins, self-hosted (GDPR: no Google Fonts request). Files: fonts/
   ======================================================================== */
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 400; font-display: swap; src: url('fonts/poppins-400-latin-ext.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 400; font-display: swap; src: url('fonts/poppins-400-latin.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 500; font-display: swap; src: url('fonts/poppins-500-latin-ext.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 500; font-display: swap; src: url('fonts/poppins-500-latin.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 600; font-display: swap; src: url('fonts/poppins-600-latin-ext.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 600; font-display: swap; src: url('fonts/poppins-600-latin.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 700; font-display: swap; src: url('fonts/poppins-700-latin-ext.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 700; font-display: swap; src: url('fonts/poppins-700-latin.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 800; font-display: swap; src: url('fonts/poppins-800-latin-ext.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 800; font-display: swap; src: url('fonts/poppins-800-latin.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* ===========================================================================
   Base: Poppins everywhere (VT10's own CSS sets other families on some parts)
   ======================================================================== */
body, body .elementor, body button, body input, body select, body textarea,
body .btn, body h1, body h2, body h3, body h4, body h5, body h6 {
	font-family: 'Poppins', sans-serif;
}
body { color: var(--e-global-color-text, #42434C); }
body a { text-decoration-thickness: 1px; text-underline-offset: 3px; }
/*
 * VT10 (css.theme-utilities.css) forces h2 { font-size: 26px !important } below
 * 576px, which beats Elementor's global fonts. Elementor h2 headings carry the
 * class ep-t-<global font id>; re-apply that font's (responsive) size.
 */
body .ep-t-ep_h2 h2.elementor-heading-title { font-size: var(--e-global-typography-ep_h2-font-size) !important; }
body .ep-t-ep_h3 h2.elementor-heading-title { font-size: var(--e-global-typography-ep_h3-font-size) !important; }
body .ep-t-ep_h4 h2.elementor-heading-title { font-size: var(--e-global-typography-ep_h4-font-size) !important; }
body .ep-t-ep_label h2.elementor-heading-title { font-size: var(--e-global-typography-ep_label-font-size) !important; }
body .ep-t-ep_banner h2.elementor-heading-title { font-size: var(--e-global-typography-ep_banner-font-size) !important; }

/* ===========================================================================
   Header (Elementor template 200)
   ======================================================================== */
body .ep-topnav ul.menu,
body .ep-mainnav ul.menu { display: flex; align-items: center; margin: 0; padding: 0; list-style: none; }
body .ep-topnav ul.menu { gap: 22px; }
body .ep-topnav a,
body .ep-account-links a { font-size: 13px; line-height: 18px; color: var(--e-global-color-primary, #151515); text-decoration: none; }
body .ep-topnav a:hover,
body .ep-account-links a:hover { color: var(--e-global-color-accent, #E3427E); }
body .ep-account-links { display: flex; gap: 22px; }
body .ep-topnav .widget_nav_menu, body .ep-mainnav .widget_nav_menu { margin: 0; }
body .ep-topnav h5, body .ep-mainnav h5 { display: none; }

body .ep-mainnav ul.menu { gap: 34px; }
body .ep-mainnav ul.menu > li > a {
	position: relative; display: block; padding: 8px 0;
	font-size: 15px; font-weight: 500; line-height: 22px;
	color: var(--e-global-color-primary, #151515); text-decoration: none;
}
body .ep-mainnav ul.menu > li > a::after {
	content: ''; position: absolute; left: 0; right: 0; bottom: -4px; height: 2px;
	background: var(--e-global-color-accent, #E3427E); transform: scaleX(0); transition: transform .2s;
}
body .ep-mainnav ul.menu > li > a:hover::after { transform: scaleX(1); }
body .ep-mainnav ul.menu > li.current-menu-item > a,
body .ep-mainnav ul.menu > li.current-menu-ancestor > a,
body .ep-mainnav ul.menu > li.current-product_cat-ancestor > a,
body .ep-mainnav ul.menu > li.ep-current > a { font-weight: 600; }
body .ep-mainnav ul.menu > li.current-menu-item > a::after,
body .ep-mainnav ul.menu > li.current-menu-ancestor > a::after,
body .ep-mainnav ul.menu > li.current-product_cat-ancestor > a::after,
body .ep-mainnav ul.menu > li.ep-current > a::after { transform: scaleX(1); }

body .ep-cart {
	position: relative; display: inline-flex; align-items: center; justify-content: center;
	width: 48px; height: 48px; border-radius: 50%;
	background: var(--e-global-color-accent, #E3427E); color: #fff;
	box-shadow: 0 6px 14px rgba(227, 66, 126, .25); transition: transform .15s;
}
body .ep-cart:hover { color: #fff; transform: translateY(-1px); }
body .ep-cart__count {
	position: absolute; top: -3px; right: -3px; min-width: 18px; height: 18px; padding: 0 4px;
	border-radius: 9px; background: var(--e-global-color-ep_yellow, #FFCC00); color: #151515;
	font-size: 11px; font-weight: 700; line-height: 18px; text-align: center;
}
body .ep-burger { cursor: pointer; }
body .ep-burger .elementor-icon { display: flex; }
body .ep-logo img { display: block; }
/* Elementor gives child containers width:100%; the menu/cart group should only take what it needs. */
body .ep-mainbar > .e-con-inner > .e-con { --width: auto; flex: 0 0 auto; }
body .ep-mainbar > .e-con-inner { flex-wrap: nowrap; }

/* ===========================================================================
   Shared layout pieces (used by WooCommerce templates)
   ======================================================================== */
body .ep-container { max-width: 1152px; margin: 0 auto; padding: 0; }
@media (max-width: 1199px) { body .ep-container { padding: 0 24px; } }
@media (max-width: 767px)  { body .ep-container { padding: 0 16px; } }
body .ep-h2 { margin: 0; font-size: 36px; font-weight: 700; line-height: 1.2; color: var(--e-global-color-primary, #151515); }
@media (max-width: 767px) { body .ep-h2 { font-size: 28px; } }

/* Filter tabs (shop + homepage) */
body .ep-tabs, body .elementor-widget-tabs.ep-tabs-widget .elementor-tabs-wrapper { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 24px; }
body .ep-tab,
body .elementor-widget-tabs.ep-tabs-widget .elementor-tab-desktop-title {
	display: inline-flex; align-items: center; padding: 9px 22px; border-radius: 5px;
	border: 1px solid #DCDCE0; background: #fff; color: var(--e-global-color-primary, #151515);
	font-size: 14px; font-weight: 600; line-height: 22px; text-decoration: none; cursor: pointer;
}
body .ep-tab:hover { border-color: var(--e-global-color-accent, #E3427E); color: var(--e-global-color-accent, #E3427E); }
body .ep-tab.is-active,
body .elementor-widget-tabs.ep-tabs-widget .elementor-tab-desktop-title.elementor-active {
	background: var(--e-global-color-accent, #E3427E); border-color: var(--e-global-color-accent, #E3427E); color: #fff;
}

/* ===========================================================================
   Product cards (woocommerce/content-product.php)
   ======================================================================== */
body ul.products { display: grid; gap: 22px; margin: 0; padding: 0; list-style: none; }
body ul.products[class]::before, body ul.products[class]::after,
body .woocommerce ul.products[class]::before, body .woocommerce ul.products[class]::after { content: none; display: none; }
body ul.products.columns-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
body ul.products.columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
body ul.products.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1100px) { body ul.products.columns-5, body ul.products.columns-4 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767px)  { body ul.products[class*="columns-"] { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; } }
@media (max-width: 340px)  { body ul.products[class*="columns-"] { grid-template-columns: minmax(0, 1fr); } }

body .woocommerce ul.products[class] li.ep-card.product,
body ul.products[class] li.ep-card.product {
	display: flex; flex-direction: column; width: auto; margin: 0; padding: 0; float: none; clear: none;
	background: #fff; border-radius: 6px; overflow: hidden;
	box-shadow: 0 2px 4px rgba(21, 21, 21, .04), 0 10px 26px rgba(21, 21, 21, .06);
}
body .ep-card__media { display: block; aspect-ratio: 213 / 192; background: var(--ep-card-bg); overflow: hidden; }
body .ep-card__media img.ep-card__img { display: block; width: 100%; height: 100%; margin: 0; object-fit: cover; }
body .ep-card__body { display: flex; flex: 1; flex-direction: column; padding: 16px 16px 18px; }
body .ep-badges { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
body .ep-badge {
	display: inline-block; padding: 2px 7px; border-radius: 3px;
	font-size: 10px; font-weight: 700; line-height: 14px; letter-spacing: .4px; text-transform: uppercase;
	background: var(--e-global-color-ep_yellow, #FFCC00); color: #151515;
}
body .ep-badge--komplett, body .ep-badge--gratis { background: var(--e-global-color-ep_green, #30AF58); color: #fff; }
body .ep-badge--kicker { background: var(--e-global-color-accent, #E3427E); color: #fff; }
body .ep-card__title { margin: 0 0 10px; font-size: 16px; font-weight: 700; line-height: 1.3; }
body .ep-card__title a { color: var(--e-global-color-primary, #151515); text-decoration: none; }
body .ep-card__title a:hover { color: var(--e-global-color-accent, #E3427E); }
body .ep-card__text { margin: 0 0 14px; font-size: 13px; line-height: 1.6; color: var(--e-global-color-ep_grey, #7E7F89); }
body .ep-card__price {
	display: flex; align-items: baseline; justify-content: space-between; gap: 8px;
	margin-top: auto; padding-top: 14px; border-top: 1px solid #F0F0F3;
}
body .ep-card__price--saving { flex-direction: column; align-items: flex-start; gap: 4px; }
body .ep-card__amount, body .ep-card__amount .amount { font-size: 20px; font-weight: 700; line-height: 1.2; color: var(--e-global-color-primary, #151515); }
body .ep-price-note { font-size: 11px; line-height: 1.4; color: var(--e-global-color-ep_grey, #7E7F89); }
/* .ep-card.product a.button outranks the general "body .woocommerce a.button" further down */
body .ep-card .button, body .ep-card.product a.button {
	display: block; width: 100%; margin: 16px 0 0; padding: 12px 10px; border: 0; border-radius: 5px;
	background: var(--e-global-color-accent, #E3427E); color: #fff;
	font-size: 12px; font-weight: 700; line-height: 18px; letter-spacing: .4px; text-align: center; text-transform: uppercase;
	box-shadow: 0 6px 14px rgba(227, 66, 126, .25);
}
body .ep-card .button:hover, body .ep-card.product a.button:hover { background: #CF3170; color: #fff; }
body .ep-card .added_to_cart { display: block; margin-top: 8px; font-size: 12px; text-align: center; color: var(--e-global-color-accent, #E3427E); }
body .ep-card .button.loading { opacity: .7; }

/* Shop / category pages */
body .ep-woo { background: var(--e-global-color-ep_bg, #FCFCFC); }
body .ep-archive { padding: 28px 0 80px; }
body .ep-archive__head { display: flex; align-items: flex-end; justify-content: space-between; margin: 10px 0 18px; }
body .ep-archive__intro p { margin: 8px 0 0; font-size: 16px; color: var(--e-global-color-ep_grey, #7E7F89); }
body .woocommerce-breadcrumb { margin: 0; font-size: 13px; color: var(--e-global-color-ep_grey, #7E7F89); }
body .woocommerce-breadcrumb a { color: var(--e-global-color-accent, #E3427E); text-decoration: underline; }

/* ===========================================================================
   Homepage (Elementor template 50)
   ======================================================================== */
body .ep-accent { color: var(--e-global-color-secondary, #F86093); }
body .ep-btn-shadow .elementor-button,
body .elementor-widget-button .elementor-button { box-shadow: 0 8px 18px rgba(227, 66, 126, .28); }
body .ep-textlink .elementor-heading-title a { text-decoration: underline; text-underline-offset: 4px; }
body .ep-hero-video video, body .ep-hero-video .elementor-wrapper { border-radius: 8px; overflow: hidden; }
body .ep-hero-video { box-shadow: 0 18px 40px rgba(21, 21, 21, .14); border-radius: 8px; }
body .ep-stat-number { font-size: 26px; font-weight: 700; line-height: 1.2; color: var(--e-global-color-primary, #151515); }
body .ep-section-intro p { max-width: 600px; margin: 0 auto; }

/* Elementor Tabs as pill filters ("Neu im Shop") */
body .ep-tabs-widget .elementor-tabs-wrapper { border: 0; }
body .ep-tabs-widget .elementor-tab-desktop-title { border: 1px solid #DCDCE0 !important; margin: 0; }
body .ep-tabs-widget .elementor-tab-desktop-title::before,
body .ep-tabs-widget .elementor-tab-desktop-title::after { display: none !important; }
body .ep-tabs-widget .elementor-tab-content { padding: 6px 0 0; border: 0; }
body .ep-tabs-widget .elementor-tab-mobile-title { display: none; }
body .ep-tabs-widget .elementor-tabs-content-wrapper { border: 0; }
body .ep-tabs-widget .elementor-tab-content .woocommerce { width: 100%; }
@media (max-width: 767px) {
	body .ep-tabs-widget .elementor-tabs-wrapper { display: flex !important; }
	body .ep-tabs-widget .elementor-tab-content { display: none; }
	body .ep-tabs-widget .elementor-tab-content.elementor-active { display: block; }
}

/* Video cards [ep_videos] */
body .ep-videos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 25px; margin: 0; padding: 0; list-style: none; }
@media (max-width: 1024px) { body .ep-videos { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px)  { body .ep-videos { gap: 14px; } }
@media (max-width: 340px)  { body .ep-videos { grid-template-columns: minmax(0, 1fr); } }
body .ep-video { display: flex; flex-direction: column; background: #fff; border-radius: 6px; overflow: hidden; box-shadow: 0 2px 4px rgba(21,21,21,.04), 0 10px 26px rgba(21,21,21,.06); }
body .ep-video__media { position: relative; display: block; aspect-ratio: 270 / 150; overflow: hidden; background: #eee; }
body .ep-video__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
body .ep-video__play {
	position: absolute; top: 50%; left: 50%; width: 52px; height: 52px; margin: -26px 0 0 -26px; border-radius: 50%;
	background: rgba(255, 255, 255, .55); border: 2px solid rgba(255, 255, 255, .85);
}
body .ep-video__play::after { content: ''; position: absolute; left: 21px; top: 16px; border-style: solid; border-width: 9px 0 9px 14px; border-color: transparent transparent transparent #fff; }
body .ep-video__media .ep-badge { position: absolute; left: 12px; bottom: 12px; }
body .ep-video__body { padding: 14px 16px 18px; }
body .ep-video__tag { display: block; font-size: 12px; color: var(--e-global-color-ep_grey, #7E7F89); margin-bottom: 4px; }
body .ep-video__title { margin: 0 0 6px; font-size: 15px; font-weight: 600; line-height: 1.35; }
body .ep-video__title a { color: var(--e-global-color-primary, #151515); text-decoration: none; }
body .ep-video__views { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--e-global-color-ep_grey, #7E7F89); }

/* Package cards */
body .ep-pkg-icon .elementor-icon { box-shadow: 6px 6px 0 #E8ECFF; }
body .ep-pkg-price { width: 100%; }
body .ep-pkg-price .ep-price { display: flex; flex-direction: column; align-items: center; padding: 18px 10px; background: var(--e-global-color-secondary, #F86093); color: #fff; }
body .ep-pkg-price .ep-price__amount, body .ep-pkg-price .ep-price__amount .amount { font-size: 26px; font-weight: 700; line-height: 1.3; color: #fff; }
body .ep-pkg-price .ep-price__suffix { font-size: 14px; font-weight: 500; }
body .ep-pkg-price .ep-price > span:first-child + .ep-price__suffix { margin-left: 4px; }
body .ep-pkg-price .ep-price { flex-flow: row wrap; justify-content: center; align-items: baseline; }
body .ep-price__saving { flex-basis: 100%; text-align: center; }
body .ep-price__saving { display: inline-block; flex-basis: auto; margin-top: 6px; padding: 2px 8px; border-radius: 3px; background: var(--e-global-color-ep_yellow, #FFCC00); color: #151515; font-size: 11px; font-weight: 700; text-transform: uppercase; }
body .ep-price__saving .amount { color: #151515; }
body .ep-pkg-features .elementor-icon-list-item { justify-content: center; }
body .ep-pkg-features .elementor-icon-list-text { font-size: 13px; font-weight: 600; line-height: 1.5; color: var(--e-global-color-primary, #151515); }

/* Buttons rendered by shortcodes (add to cart) */
body a.ep-btn, body a.ep-btn.button {
	display: inline-block; padding: 26px 26px; border-radius: 6px; border: 0;
	background: var(--e-global-color-accent, #E3427E); color: #fff;
	font-size: 14px; font-weight: 700; line-height: 18px; letter-spacing: .5px; text-transform: uppercase; text-decoration: none;
	box-shadow: 0 8px 18px rgba(227, 66, 126, .28);
}
body a.ep-btn:hover { background: #CF3170; color: #fff; }
body a.ep-btn.loading { opacity: .7; }
body .ep-pkg-button { text-align: center; }
body .ep-pkg-button .added_to_cart, body .ep-product-row .added_to_cart { display: block; margin-top: 10px; font-size: 13px; color: var(--e-global-color-accent, #E3427E); text-align: center; }

/* Kobe & Katie row [ep_product_row] */
body .ep-product-row { display: flex; align-items: center; gap: 28px; }
body .ep-product-row__img img { display: block; width: 68px; height: 97px; object-fit: cover; border-radius: 3px; }
body .ep-product-row__text { flex: 1; }
body .ep-product-row__text h3 { margin: 0 0 4px; font-size: 18px; font-weight: 700; }
body .ep-product-row__text h3 a { color: var(--e-global-color-primary, #151515); text-decoration: none; }
body .ep-product-row__text p { margin: 0; font-size: 15px; color: var(--e-global-color-ep_grey, #7E7F89); }
body .ep-product-row__price, body .ep-product-row__price .amount { font-size: 22px; font-weight: 700; color: var(--e-global-color-primary, #151515); white-space: nowrap; }
@media (max-width: 767px) {
	body .ep-product-row { flex-wrap: wrap; gap: 16px; }
	body .ep-product-row__text { flex-basis: calc(100% - 96px); }
	body .ep-product-row__price { flex: 1; }
}
/* VT10 sets its own size/colour on <p>; let Elementor text widgets control their paragraphs. */
body .elementor-widget-text-editor p { font-size: inherit; line-height: inherit; color: inherit; font-weight: inherit; }
body .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
/* Hero video play button (Elementor video overlay) */
body .ep-hero-video .elementor-custom-embed-play { width: 72px; height: 72px; border-radius: 50%; background: var(--e-global-color-secondary, #F86093); box-shadow: 0 10px 24px rgba(248, 96, 147, .45); display: flex; align-items: center; justify-content: center; }
body .ep-hero-video .elementor-custom-embed-play i, body .ep-hero-video .elementor-custom-embed-play svg { font-size: 26px; width: 26px; height: 26px; fill: #fff; color: #fff; opacity: 1; text-shadow: none; filter: none; margin-left: 4px; }
body .ep-tabs-widget .elementor-tabs .elementor-tab-content,
body .ep-tabs-widget .elementor-tabs .elementor-tabs-content-wrapper { border: 0 !important; }
@media (max-width: 767px) {
	body .ep-card__body { padding: 12px 12px 14px; }
	body .ep-card__title { font-size: 14px; }
	body .ep-card__text { font-size: 12px; }
	body .ep-card__amount, body .ep-card__amount .amount { font-size: 17px; }
	body .ep-card__price { flex-direction: column; align-items: flex-start; gap: 2px; }
	body .ep-card .button, body .ep-card.product a.button { padding: 10px 6px; font-size: 11px; }
	body .ep-video__body { padding: 10px 12px 14px; }
	body .ep-video__title { font-size: 13px; }
}

/* ===========================================================================
   Single product (woocommerce/content-single-product.php)
   ======================================================================== */
body .ep-woo--single { background: #fff; }
body .ep-product__hero { padding: 30px 0 56px; background: var(--e-global-color-ep_bg, #FCFCFC); }
body .ep-product__grid { display: grid; grid-template-columns: minmax(0, 553fr) minmax(0, 552fr); gap: 47px; margin-top: 20px; align-items: start; }
@media (max-width: 991px) { body .ep-product__grid { grid-template-columns: minmax(0, 1fr); gap: 28px; } }

body .ep-product__gallery .woocommerce-product-gallery { position: relative; width: 100% !important; float: none !important; margin: 0 !important; opacity: 1 !important; }
body .ep-product__gallery .woocommerce-product-gallery__wrapper { margin: 0; }
body .ep-product__gallery .flex-viewport,
body .ep-product__gallery .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:only-child { border-radius: 8px; overflow: hidden; background: var(--ep-card-bg); }
body .ep-product__gallery .woocommerce-product-gallery__image img { display: block; width: 100%; height: auto; }
body .ep-product__gallery .flex-control-thumbs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin: 14px 0 0; padding: 0; list-style: none; }
body .ep-product__gallery .flex-control-thumbs li { width: auto !important; float: none !important; margin: 0 !important; }
body .ep-product__gallery .flex-control-thumbs img {
	display: block; width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 6px; background: #fff; cursor: pointer;
	box-shadow: 0 2px 4px rgba(21,21,21,.04), 0 8px 20px rgba(21,21,21,.06); opacity: .75; transition: opacity .15s;
}
body .ep-product__gallery .flex-control-thumbs img.flex-active, body .ep-product__gallery .flex-control-thumbs img:hover { opacity: 1; }
body .ep-product__gallery .woocommerce-product-gallery__trigger { display: none; }

body .ep-badges--lg { margin-bottom: 14px; }
body .ep-badges--lg .ep-badge { font-size: 11px; padding: 3px 8px; }
body .ep-product__title { margin: 0 0 18px; font-size: 40px; font-weight: 700; line-height: 1.15; color: var(--e-global-color-primary, #151515); }
@media (max-width: 767px) { body .ep-product__title { font-size: 28px; } }
body .ep-product__short p { margin: 0 0 22px; font-size: 17px; line-height: 1.6; color: var(--e-global-color-text, #42434C); }
body .ep-product__price { display: flex; align-items: baseline; flex-wrap: wrap; gap: 10px; margin-bottom: 22px; }
body .ep-product__amount, body .ep-product__amount .amount { font-size: 36px; font-weight: 700; line-height: 1.1; color: var(--e-global-color-primary, #151515); }
body .ep-product__price .ep-price-note { font-size: 13px; }
body .ep-product__buy { display: flex; flex-wrap: wrap; gap: 12px; align-items: stretch; }
body .ep-product__buy form.cart, body.woocommerce div.product .ep-product__buy form.cart { display: flex; flex: 0 1 298px; margin: 0 !important; }
body .ep-product__buy form.cart .quantity { display: none; }
body .ep-product__buy .single_add_to_cart_button.button,
body .ep-product__buy .single_add_to_cart_button.button.alt {
	width: 100%; min-height: 73px; padding: 20px 26px; border: 0; border-radius: 6px;
	background: var(--e-global-color-accent, #E3427E); color: #fff;
	font-size: 14px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase;
	box-shadow: 0 8px 18px rgba(227, 66, 126, .28);
}
body .ep-product__buy .single_add_to_cart_button.button:hover { background: #CF3170; }
body .ep-btn-outline {
	display: inline-flex; align-items: center; justify-content: center; flex: 0 1 241px; min-height: 73px; padding: 20px 26px;
	border: 2px solid var(--e-global-color-primary, #151515); border-radius: 6px; background: #fff;
	color: var(--e-global-color-primary, #151515); font-size: 14px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; text-decoration: none;
}
body .ep-btn-outline:hover { border-color: var(--e-global-color-accent, #E3427E); color: var(--e-global-color-accent, #E3427E); }
body .ep-product__delivery { margin: 12px 0 18px; font-size: 13px; line-height: 1.6; color: var(--e-global-color-ep_grey, #7E7F89); }
body .ep-product__features {
	margin: 0 0 18px; padding: 22px 24px; list-style: none; background: #fff; border-radius: 8px;
	box-shadow: 0 2px 4px rgba(21,21,21,.04), 0 10px 26px rgba(21,21,21,.06);
}
body .ep-product__features li { position: relative; padding: 3px 0 3px 32px; font-size: 15px; line-height: 1.6; color: var(--e-global-color-primary, #151515); }
body .ep-product__features li::before {
	content: ''; position: absolute; left: 0; top: 6px; width: 20px; height: 20px; border-radius: 50%;
	background: var(--e-global-color-ep_green, #30AF58) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center / 12px no-repeat;
}
body .ep-product__upsell {
	display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 20px 22px;
	background: var(--e-global-color-ep_rose, #FFE9F1); border-radius: 8px;
}
body .ep-product__upsell strong { display: block; margin-bottom: 4px; font-size: 15px; color: var(--e-global-color-primary, #151515); }
body .ep-product__upsell span { font-size: 13px; line-height: 1.6; color: var(--e-global-color-primary, #151515); }
body .ep-product__upsell a { flex: none; font-size: 15px; font-weight: 600; color: var(--e-global-color-accent, #E3427E); text-decoration: underline; }
@media (max-width: 575px) { body .ep-product__upsell { flex-direction: column; align-items: flex-start; } }

body .ep-product__info { padding: 64px 0; background: #fff; }
body .ep-product__info-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 90px; }
@media (max-width: 991px) { body .ep-product__info-grid { grid-template-columns: minmax(0, 1fr); gap: 40px; } }
body .ep-product__about .ep-h2, body .ep-product__faq .ep-h2 { margin-bottom: 20px; }
body .ep-product__description p { margin: 0 0 14px; font-size: 16px; line-height: 1.7; color: var(--e-global-color-primary, #151515); }
body .ep-faq { margin: 0 0 12px; background: #fff; border-radius: 6px; box-shadow: 0 2px 4px rgba(21,21,21,.04), 0 8px 22px rgba(21,21,21,.07); }
body .ep-faq summary { position: relative; padding: 18px 18px 18px 36px; font-size: 15px; font-weight: 600; line-height: 1.45; color: var(--e-global-color-primary, #151515); cursor: pointer; list-style: none; }
body .ep-faq summary::-webkit-details-marker { display: none; }
body .ep-faq summary::before { content: ''; position: absolute; left: 18px; top: 24px; border-style: solid; border-width: 5px 0 5px 8px; border-color: transparent transparent transparent currentColor; transition: transform .15s; }
body .ep-faq[open] summary::before { transform: rotate(90deg); }
body .ep-faq__answer { padding: 0 18px 18px 36px; font-size: 14px; line-height: 1.65; color: var(--e-global-color-text, #42434C); }

body .ep-product__related { padding: 60px 0 80px; background: var(--e-global-color-ep_bg, #FCFCFC); border-top: 1px solid #F0F0F3; }
body .ep-product__related .ep-h2 { margin-bottom: 26px; }
body .ep-price__saving .amount { font-size: inherit; }

/* ===========================================================================
   Pages with the "Volle Breite" template: Warenkorb, Kasse, Mein Konto
   ======================================================================== */
body .ep-page { padding: 30px 0 80px; background: var(--e-global-color-ep_bg, #FCFCFC); }
body .ep-page__title { margin: 10px 0 28px; }
body .ep-page__content { font-size: 15px; color: var(--e-global-color-text, #42434C); }
body .ep-page .woocommerce { margin: 0; }

/* Form fields */
body .woocommerce form .form-row label { font-size: 14px; font-weight: 600; color: var(--e-global-color-primary, #151515); }
body .woocommerce form .form-row input.input-text,
body .woocommerce form .form-row textarea,
body .woocommerce form .form-row select,
body .woocommerce .select2-container .select2-selection--single,
body .woocommerce-cart table.cart td.actions .coupon .input-text {
	min-height: 48px; padding: 11px 14px; border: 1px solid #DCDCE0; border-radius: 6px; background: #fff;
	font-size: 15px; color: var(--e-global-color-primary, #151515); box-shadow: none;
}
body .woocommerce .select2-container .select2-selection--single .select2-selection__rendered { line-height: 24px; padding: 0; }
body .woocommerce .select2-container .select2-selection--single .select2-selection__arrow { top: 10px; right: 8px; }
body .woocommerce form .form-row input.input-text:focus,
body .woocommerce form .form-row textarea:focus { border-color: var(--e-global-color-accent, #E3427E); outline: 0; box-shadow: 0 0 0 3px rgba(227, 66, 126, .12); }

/* Buttons */
body .woocommerce a.button, body .woocommerce button.button, body .woocommerce input.button,
body .woocommerce #respond input#submit, body .woocommerce a.button.alt, body .woocommerce button.button.alt,
body .woocommerce-page .wc-proceed-to-checkout a.checkout-button, body .woocommerce #place_order {
	display: inline-block; padding: 16px 26px; border: 0; border-radius: 6px;
	background: var(--e-global-color-accent, #E3427E); color: #fff;
	font-size: 14px; font-weight: 700; line-height: 18px; letter-spacing: .5px; text-transform: uppercase;
	box-shadow: 0 8px 18px rgba(227, 66, 126, .22);
}
body .woocommerce a.button:hover, body .woocommerce button.button:hover, body .woocommerce #place_order:hover,
body .woocommerce-page .wc-proceed-to-checkout a.checkout-button:hover { background: #CF3170; color: #fff; }
body .woocommerce button.button:disabled, body .woocommerce button.button:disabled[disabled] { background: #E8A3BD; color: #fff; padding: 16px 26px; }
body .woocommerce #place_order { width: 100%; min-height: 64px; font-size: 15px; }

/* Tables (cart, order review, orders, downloads) */
body .woocommerce table.shop_table { border: 0; border-radius: 8px; background: #fff; box-shadow: 0 2px 4px rgba(21,21,21,.04), 0 10px 26px rgba(21,21,21,.06); border-collapse: separate; overflow: hidden; }
body .woocommerce table.shop_table th { padding: 14px 18px; font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .3px; color: var(--e-global-color-primary, #151515); background: #FAFAFB; }
body .woocommerce table.shop_table td { padding: 16px 18px; border-top: 1px solid #F0F0F3; font-size: 15px; }
body .woocommerce table.shop_table td.product-name a { font-weight: 600; color: var(--e-global-color-primary, #151515); text-decoration: none; }
body .woocommerce table.cart img { width: 64px; border-radius: 4px; }
body .woocommerce a.remove { color: var(--e-global-color-accent, #E3427E) !important; }
body .woocommerce a.remove:hover { background: var(--e-global-color-accent, #E3427E); color: #fff !important; }
body .woocommerce .cart-collaterals .cart_totals h2,
body .woocommerce-checkout h3, body .ep-account-h { margin: 0 0 16px; font-size: 22px; font-weight: 700; color: var(--e-global-color-primary, #151515); }
body .woocommerce .amount { font-weight: 600; }

/* Checkout */
body .woocommerce-checkout #customer_details { margin-bottom: 30px; }
body .woocommerce-checkout #order_review { padding: 0; }
body .woocommerce-checkout #payment { border-radius: 8px; background: #fff; box-shadow: 0 2px 4px rgba(21,21,21,.04), 0 10px 26px rgba(21,21,21,.06); }
body .woocommerce-checkout #payment div.payment_box { background: var(--e-global-color-ep_bg, #FCFCFC); color: var(--e-global-color-text, #42434C); }
body .woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--e-global-color-ep_bg, #FCFCFC); }
body .woocommerce-checkout .ep-waiver { margin: 0 0 18px; padding: 14px 16px; border-radius: 6px; background: var(--e-global-color-ep_rose, #FFE9F1); }
body .woocommerce-checkout .ep-waiver label { font-weight: 400 !important; font-size: 13px !important; line-height: 1.55; }
body .woocommerce-checkout .woocommerce-terms-and-conditions-wrapper { font-size: 13px; }
body .woocommerce-info, body .woocommerce-message, body .woocommerce-error {
	border: 0; border-left: 4px solid var(--e-global-color-accent, #E3427E); border-radius: 6px; background: #fff;
	box-shadow: 0 2px 4px rgba(21,21,21,.04), 0 8px 20px rgba(21,21,21,.05); color: var(--e-global-color-primary, #151515);
}
body .woocommerce-info::before, body .woocommerce-message::before { color: var(--e-global-color-accent, #E3427E); }
body .woocommerce-error { border-left-color: #D63638; }

/* Mein Konto */
body .woocommerce-account .woocommerce { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 40px; align-items: start; }
body .woocommerce-account .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
body .woocommerce-account .woocommerce-MyAccount-navigation,
body .woocommerce-account .woocommerce-MyAccount-content { width: auto; float: none; }
body .woocommerce-MyAccount-navigation ul { margin: 0; padding: 8px; list-style: none; background: #fff; border-radius: 8px; box-shadow: 0 2px 4px rgba(21,21,21,.04), 0 10px 26px rgba(21,21,21,.06); }
body .woocommerce-MyAccount-navigation li a { display: block; padding: 11px 14px; border-radius: 5px; font-size: 15px; font-weight: 500; color: var(--e-global-color-primary, #151515); text-decoration: none; }
body .woocommerce-MyAccount-navigation li.is-active a, body .woocommerce-MyAccount-navigation li a:hover { background: var(--e-global-color-ep_rose, #FFE9F1); color: var(--e-global-color-accent, #E3427E); font-weight: 600; }
body .woocommerce-account:not(.logged-in) .woocommerce { display: block; max-width: 520px; }
body .woocommerce-account .woocommerce-form-login { padding: 28px; border: 0; border-radius: 8px; background: #fff; box-shadow: 0 2px 4px rgba(21,21,21,.04), 0 10px 26px rgba(21,21,21,.06); }
body .ep-package-table { margin-bottom: 18px; }
body .ep-package-empty { padding: 22px; border-radius: 8px; background: var(--e-global-color-ep_rose, #FFE9F1); }
body .ep-package-empty p { margin: 0 0 16px; color: var(--e-global-color-primary, #151515); }
body .woocommerce-MyAccount-content a.ep-btn { padding: 14px 22px; }
@media (max-width: 767px) {
	body .woocommerce-account .woocommerce { grid-template-columns: minmax(0, 1fr); gap: 20px; }
	body .woocommerce table.shop_table_responsive tr td::before { font-weight: 600; }
}
body .woocommerce-cart table.cart td.actions .coupon .input-text { width: 210px !important; margin-right: 8px; }
body .woocommerce-cart table.cart td.actions .coupon { display: flex; align-items: center; }
/* VT10 styles labels/inputs inline; restore WooCommerce's stacked form layout */
body .woocommerce form .form-row { display: block; margin: 0 0 16px; padding: 0; }
body .woocommerce form .form-row label:not(.checkbox):not(.woocommerce-form__label-for-checkbox) { display: block; margin: 0 0 6px; line-height: 1.4; }
body .woocommerce form .form-row .woocommerce-input-wrapper,
body .woocommerce form .form-row input.input-text,
body .woocommerce form .form-row textarea,
body .woocommerce form .form-row select { display: block; width: 100%; max-width: none; box-sizing: border-box; }
body .woocommerce form .form-row textarea { min-height: 120px; }
body .woocommerce form .form-row-first, body .woocommerce form .form-row-last { width: 48%; }
body .woocommerce form .form-row-first { float: left; }
body .woocommerce form .form-row-last { float: right; }
body .woocommerce form .form-row-wide { clear: both; }
body .woocommerce form .form-row .woocommerce-form__label-for-checkbox,
body .woocommerce form .form-row label.checkbox { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; }
body .woocommerce form .form-row input[type="checkbox"] { flex: none; width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--e-global-color-accent, #E3427E); }
body .woocommerce-checkout .col2-set { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; }
body .woocommerce-checkout .col2-set .col-1, body .woocommerce-checkout .col2-set .col-2 { width: auto; float: none; }
body .woocommerce-checkout .col2-set::before, body .woocommerce-checkout .col2-set::after { display: none; }
@media (max-width: 767px) {
	body .woocommerce-checkout .col2-set { grid-template-columns: minmax(0, 1fr); gap: 0; }
	body .woocommerce form .form-row-first, body .woocommerce form .form-row-last { width: 100%; float: none; }
}
body .woocommerce-info a, body .woocommerce-message a:not(.button), body .woocommerce-checkout a:not(.button), body .woocommerce-MyAccount-content a:not(.button):not(.ep-btn) { color: var(--e-global-color-accent, #E3427E); }

/* ===========================================================================
   Legal pages (Impressum, AGB, Widerrufsbelehrung, Datenschutz, Versand & Zahlung)
   ======================================================================== */
body .ep-crumbs p { margin: 0; }
body .ep-crumbs a { color: inherit; text-decoration: none; }
body .ep-crumbs a:hover { color: var(--e-global-color-accent, #E3427E); }
body .ep-legal-text p { margin: 0 0 12px; font-size: 15px; line-height: 1.7; }
body .ep-legal-text p:last-child { margin-bottom: 0; }
body .ep-legal-text a, body .ep-deflist a { color: var(--e-global-color-accent, #E3427E); text-decoration: underline; }
body .ep-deflist { width: 100%; margin: 0; border: 0; border-collapse: collapse; font-size: 15px; line-height: 1.6; }
body .ep-deflist th, body .ep-deflist td { padding: 5px 0; border: 0; vertical-align: top; text-align: left; background: none; }
body .ep-deflist th { width: 34%; padding-right: 18px; font-weight: 600; color: var(--e-global-color-primary, #151515); }
body .ep-deflist td { color: var(--e-global-color-text, #42434C); }
body .ep-placeholder strong { color: var(--e-global-color-accent, #E3427E); }
body .ep-legal-side { position: sticky; top: 24px; }
body .ep-legal-side p { margin: 0; }
body .ep-legal-links .elementor-icon-list-item a { font-weight: 600; }
body .ep-legal-links .elementor-icon-list-text { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
body .ep-legal-links .elementor-icon-list-item a:hover .elementor-icon-list-text { text-decoration-thickness: 2px; }
body .ep-legal-links .elementor-icon-list-text { padding-left: 0 !important; }
@media (max-width: 767px) {
	body .ep-deflist th, body .ep-deflist td { display: block; width: auto; padding: 0; border: 0; }
	body .ep-deflist th { padding-top: 12px; }
	body .ep-deflist td { padding-bottom: 2px; }
	body .ep-deflist tr:first-child th { padding-top: 0; }
	body .ep-legal-side { position: static; }
}

/* ===========================================================================
   Footer (Elementor template 79)
   ======================================================================== */
body .ep-footmenu ul.menu { margin: 0; padding: 0; list-style: none; }
body .ep-footmenu ul.menu li { margin: 0 0 9px; }
body .ep-footmenu ul.menu a { font-size: 14px; line-height: 20px; color: var(--e-global-color-text, #42434C); text-decoration: none; }
body .ep-footmenu ul.menu a:hover,
body .ep-footmenu ul.menu .current-menu-item > a { color: var(--e-global-color-accent, #E3427E); }
body .ep-trust .elementor-icon { box-shadow: 0 2px 6px rgba(21, 21, 21, .05); }
body .ep-trust .elementor-icon-box-title { margin-top: 0; }
body .ep-trust .elementor-icon-box-description { margin: 0; }
body .ep-payments p { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; margin: 0; }
body .ep-payments strong { margin-right: 6px; font-weight: 700; }
body .ep-chip { display: inline-block; padding: 5px 12px; border: 1px solid #DCDCE0; border-radius: 6px; background: #fff; font-size: 13px; line-height: 18px; color: var(--e-global-color-primary, #151515); white-space: nowrap; }
body .ep-vatnote .elementor-icon-list-text { font-weight: 600; }
body .ep-legalbar ul.menu { display: flex; flex-wrap: wrap; gap: 8px 26px; margin: 0; padding: 0; list-style: none; }
body .ep-legalbar ul.menu a { font-size: 14px; line-height: 22px; color: #fff; text-decoration: underline; opacity: .9; }
body .ep-legalbar ul.menu a:hover,
body .ep-legalbar ul.menu .current-menu-item > a { font-weight: 700; opacity: 1; }
body .ep-copyright p { margin: 0; opacity: .85; }
