/*!
Theme Name: bodyandsoul-theme
Theme URI: http://underscores.me/
Author: Underscores.me
Author URI: http://underscores.me/
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: bodyandsoul-theme
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

bodyandsoul-theme is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
	box-sizing: content-box;
	height: 0;
	overflow: visible;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
	font-family: monospace, monospace;
	font-size: 1em;
}

/* Text-level semantics
	 ========================================================================== */

/**
 * Remove the gray background on active links in IE 10.
 */
a {
	background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
	border-bottom: none;
	text-decoration: underline;
	text-decoration: underline dotted;
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
	font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
	font-family: monospace, monospace;
	font-size: 1em;
}

/**
 * Add the correct font size in all browsers.
 */
small {
	font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}

sub {
	bottom: -0.25em;
}

sup {
	top: -0.5em;
}

/* Embedded content
	 ========================================================================== */

/**
 * Remove the border on images inside links in IE 10.
 */
img {
	border-style: none;
}

dfn,
cite,
em,
i {
	font-style: italic;
}

address {
	margin: 0 0 1.5em;
}

pre {
	background: #eee;
	font-family: "Courier 10 Pitch", courier, monospace;
	line-height: 1.6;
	margin-bottom: 1.6em;
	max-width: 100%;
	overflow: auto;
	padding: 1.6em;
}

code,
kbd,
tt,
var {
	font-family: monaco, consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
}

abbr,
acronym {
	border-bottom: 1px dotted #666;
	cursor: help;
}

mark {
	background: #fff9c0;
	text-decoration: none;
}

big {
	font-size: 125%;
}

/* Elements
--------------------------------------------- */

hr {
	background-color: #ccc;
	border: 0;
	height: 1px;
	margin-bottom: 1.5em;
}

dt {
	font-weight: 700;
}

dd {
	margin: 0 1.5em 1.5em;
}

/* Make sure embeds and iframes fit their containers. */
embed,
iframe,
object {
	max-width: 100%;
}

img {
	height: auto;
	max-width: 100%;
}


/*--------------------------------------------------------------
# Layouts
--------------------------------------------------------------*/

/* Comments
--------------------------------------------- */
.comment-content a {
	word-wrap: break-word;
}

.bypostauthor {
	display: block;
}

/* Widgets
--------------------------------------------- */
.widget {
	margin: 0 0 1.5em;
}

.widget select {
	max-width: 100%;
}

/* Media
--------------------------------------------- */
.page-content .wp-smiley,
.entry-content .wp-smiley,
.comment-content .wp-smiley {
	border: none;
	margin-bottom: 0;
	margin-top: 0;
	padding: 0;
}

/* Make sure logo link wraps around logo image. */
.custom-logo-link {
	display: block;
}

/* Captions
--------------------------------------------- */
.wp-caption {
	margin-bottom: 1.5em;
	max-width: 100%;
}

.wp-caption img[class*="wp-image-"] {
	display: block;
	margin-left: auto;
	margin-right: auto;
}

.wp-caption .wp-caption-text {
	margin: 0.8075em 0;
}

.wp-caption-text {
	text-align: center;
}

/* Galleries
--------------------------------------------- */
.gallery {
	margin-bottom: 1.5em;
	display: grid;
	grid-gap: 1.5em;
}

.gallery-item {
	display: inline-block;
	text-align: center;
	width: 100%;
}

.gallery-columns-2 {
	grid-template-columns: repeat(2, 1fr);
}

.gallery-columns-3 {
	grid-template-columns: repeat(3, 1fr);
}

.gallery-columns-4 {
	grid-template-columns: repeat(4, 1fr);
}

.gallery-columns-5 {
	grid-template-columns: repeat(5, 1fr);
}

.gallery-columns-6 {
	grid-template-columns: repeat(6, 1fr);
}

.gallery-columns-7 {
	grid-template-columns: repeat(7, 1fr);
}

.gallery-columns-8 {
	grid-template-columns: repeat(8, 1fr);
}

.gallery-columns-9 {
	grid-template-columns: repeat(9, 1fr);
}

.gallery-caption {
	display: block;
}

/*--------------------------------------------------------------
# Plugins
--------------------------------------------------------------*/

/* Jetpack infinite scroll
--------------------------------------------- */

/* Hide the Posts Navigation and the Footer when Infinite Scroll is in use. */
.infinite-scroll .posts-navigation,
.infinite-scroll.neverending .site-footer {
	display: none;
}

/* Re-display the Theme Footer when Infinite Scroll has reached its end. */
.infinity-end.neverending .site-footer {
	display: block;
}

/*--------------------------------------------------------------
# Utilities
--------------------------------------------------------------*/

/* Accessibility
--------------------------------------------- */

/* Text meant only for screen readers. */
.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

.screen-reader-text:focus {
	background-color: #f1f1f1;
	border-radius: 3px;
	box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
	clip: auto !important;
	clip-path: none;
	color: #21759b;
	display: block;
	font-size: 0.875rem;
	font-weight: 700;
	height: auto;
	left: 5px;
	line-height: normal;
	padding: 15px 23px 14px;
	text-decoration: none;
	top: 5px;
	width: auto;
	z-index: 100000;
}

/* Do not show the outline on the skip link target. */
#primary[tabindex="-1"]:focus {
	outline: 0;
}

/* Alignments
--------------------------------------------- */
.alignleft {

	/*rtl:ignore*/
	float: left;

	/*rtl:ignore*/
	margin-right: 1.5em;
	margin-bottom: 1.5em;
}

.alignright {

	/*rtl:ignore*/
	float: right;

	/*rtl:ignore*/
	margin-left: 1.5em;
	margin-bottom: 1.5em;
}

.aligncenter {
	clear: both;
	display: block;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 1.5em;
}

.wpcf7-list-item {
	margin: 0;
}

.wpcf7-form-control-wrap {
	display: block;
}

.wpcf7-spinner {
	display: none !important;
}

.wpcf7-not-valid-tip {
	font-size: 14px;
	margin-top: 5px;
}

.wpcf7 form .wpcf7-response-output {
	margin: 10px 0 0;
	padding: 0;
	border: 0;
	font-size: 14px;
}

blockquote {
	margin: 0;
}
.gap-24-48{
	gap: 24px 48px;
}
@media (max-width: 550px) {
	.gap-24-48{
		gap: 16px 48px;
	}
}
.wp-block-image{
	margin: 72px 0;
}
.wp-block-image:last-child{
	margin-bottom: 0;
}
.wp-block-list:not(:last-child){
	margin-bottom: 72px;
}
.wp-block-list:not(:last-child) + .buttons-list{
	margin-top: -40px;
}
.wp-block-heading{
	margin-top: 72px;
}
@media (max-width: 1199px){
	.wp-block-image{
		margin: 36px 0;
	}
	.wp-block-image:last-child{
		margin-bottom: 0;
	}
	.wp-block-list:not(:last-child){
		margin-bottom: 36px;
	}
	.wp-block-heading{
		margin-top: 36px;
	}
	.wp-block-list:not(:last-child) + .buttons-list{
		margin-top: -4px;
	}
}

/* Standorte map */
.map-result-wrap { min-height: 560px; }
@media (max-width: 767px) { .map-result-wrap { min-height: 420px; } }

.map-popup {
    position: absolute;
    bottom: 24px;
    right: 24px;
    z-index: 1000;
    display: flex;
    width: 400px;
    max-width: calc(100% - 48px);
    background: #1c1c1c;
    border-radius: 24px;
    overflow: hidden;
}
.map-popup.hidden { display: none; }

.small-margin{
	margin: 32px 0;
}
@media (max-width: 991px){
	.small-margin{
		margin: 24px 0;
	}
}
.wp-block-table{
	margin: 24px 0;
}
.h1-title p, .h2-title p, .h3-title p, .h4-title p{
	line-height: inherit;
}
.gfield_required.gfield_required_text{
	display: none; !important;
}
.wp-block-image img{
	border-radius: 24px;
}
.rounded-24:not(.media-column__bg) > img{
	border-radius: 24px;
}

.line-sep{
	width: 100%;
	height: 1px;
	background: #1C1C1C;
	margin-top: 40px;
	opacity: .4;
}
.woocommerce div.product form.cart.nlc-mb-72-36:not(:last-child) {
	margin-bottom: 72px;
}
@media (max-width: 1199px) {
	.woocommerce div.product form.cart.nlc-mb-72-36:not(:last-child) {
		margin-bottom: 36px;
	}
}
.b-product-page .voucher-list .btn.active{
	color: var(--color-orange) !important;
}
.reset_variations{
	display: none !important;
}
ins{
	text-decoration: none;
}
.woocommerce div.product form.cart .variations{
	margin-bottom: 40px;
}
.woocommerce div.product form.cart .variations label{
	font-weight: 500;
}

/* --------------------------------------------------------------
   Global loading / spinner utilities
   -------------------------------------------------------------- */
@keyframes bs-spin{
	to{ transform: rotate(360deg); }
}
/* Shared spinner ring (used by .is-busy and .is-loading). */
.is-busy::after,
.is-loading::before{
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 28px;
	height: 28px;
	margin: -14px 0 0 -14px;
	border: 2px solid var(--color-dark, #1C1C1C);
	border-top-color: transparent;
	border-radius: 50%;
	z-index: 3;
	animation: bs-spin .6s linear infinite;
}
/* Inline control (button/link): hide its label and show a centered spinner. */
.is-busy{
	position: relative;
	pointer-events: none;
}
.is-busy > *{
	opacity: 0;
}
.is-busy::after{
	width: 20px;
	height: 20px;
	margin: -10px 0 0 -10px;
}
/* Block / card: dim with an overlay and show a centered spinner. */
.is-loading{
	position: relative;
	pointer-events: none;
}
.is-loading::after{
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(248, 245, 240, .6);
	border-radius: inherit;
	z-index: 2;
}

/* Mini-cart: lock interaction while a cart update is in flight. */
.shopping-cart.cart-loading .shopping-cart__list,
.shopping-cart.cart-loading .coupon-wrap{
	pointer-events: none;
}
.coupon-error{
	color: #C23A1F;
	font-size: 16px;
}
.coupon-error.hidden{
	display: none;
}

/* Checkout: the real WooCommerce payment radios are mirrored into the design's
   left-column proxy (js/main.js), so hide the real radio + label but keep each
   gateway's payment box reachable. */
.jsCheckoutRealMethods{
	list-style: none;
	margin: 0;
	padding: 0;
}
.jsCheckoutRealMethods > li > input[type="radio"],
.jsCheckoutRealMethods > li > label{
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}
.woocommerce form .form-row{
	margin: 0;
	padding: 0;
}
.b-checkout .right-part .result-block .result-additional .includes_tax{
	display: none !important;
}
#add_payment_method #payment, .woocommerce-cart #payment, .woocommerce-checkout #payment{
	background: none;
	border: 0;
}
.jsCheckoutRealMethods{
	display: none !important;
}
#add_payment_method #payment div.form-row, .woocommerce-cart #payment div.form-row, .woocommerce-checkout #payment div.form-row{
	padding: 0;
}
.b-locations-page .map-result-wrap{
	width: 100%;
}
.b-header .header .menu>ul>li.menu-item-has-children>a, .b-header .header .menu>ul>li.menu-item-has-children>span {
	flex: 1 0 0;
}
.b-header .header .menu>ul>li.menu-item-has-children>span, .b-header .header .menu>ul>li.menu-item-has-children>span:hover{
	cursor: pointer;
}
.b-single-article .media-container .media img{
	height: 100%;
}
.image-copyright{
	display: flex;
	align-items: center;
	position: absolute;
	right: 15px;
	bottom: 15px;
	max-width: calc(100% - 30px);
	color: white;
	font-size: 14px;
}
.image-copyright__text{
	max-width: 0;
	opacity: 0;
	overflow: hidden;
	white-space: nowrap;
	-webkit-transition: max-width 0.2s ease-in-out, opacity 0.2s ease-in-out, padding-left 0.2s ease-in-out;
	transition: max-width 0.2s ease-in-out, opacity 0.2s ease-in-out, padding-left 0.2s ease-in-out;
}
/* Long credits still wrap, but only once the slide-out has finished: while
   max-width is animating the text stays on one line, otherwise it reflows into
   a tall word-per-line block and the badge collapses downwards in steps. */
.image-copyright.active .image-copyright__text{
	max-width: 100%;
	opacity: 1;
	padding-left: 5px;
	white-space: normal;
	-webkit-transition: max-width 0.2s ease-in-out, opacity 0.2s ease-in-out, padding-left 0.2s ease-in-out;
	transition: max-width 0.2s ease-in-out, opacity 0.2s ease-in-out, padding-left 0.2s ease-in-out, white-space 0.2s step-end allow-discrete;
}
.b-single-article .simple-slider .swiper-slide > .relative{
	width: fit-content;
	margin-inline: auto;
}/* Two-up teaser: center picker replacing the link button. */
.post-standorte{
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 16px;
}
.post-standorte__select{
	width: 100%;
	max-width: 420px;
}
.ss-content{
	z-index: 3 !important;
}