/*
 Theme Name:   Astra Child
 Theme URI:    https://wpastra.com/
 Description:  Child Theme für Astra
 Author:       crozzIT (Michael Kreutz)
 Author URI:   https://wineyoga.de/
 Template:     astra
 Version:      1.0.74
*/

/* ════════════════════════════════════════════════
   WP Cover Block — Basis-Styles
   (WP lädt Block-CSS nur im Gutenberg-Editor automatisch.
    Bei Shortcode-Seiten ohne Block-Kontext muss es manuell
    bereitgestellt werden.)
   ════════════════════════════════════════════════ */

.wp-block-cover {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.wp-block-cover__image-background,
.wp-block-cover__video-background {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    object-fit: cover;
    z-index: 0;
}
.wp-block-cover__background {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    z-index: 1;
}
.has-background-dim-10  { opacity: 0.1; }
.has-background-dim-20  { opacity: 0.2; }
.has-background-dim-30  { opacity: 0.3; }
.has-background-dim-40  { opacity: 0.4; }
.has-background-dim-50  { opacity: 0.5; }
.has-background-dim-55  { opacity: 0.55; }
.has-background-dim-60  { opacity: 0.6; }
.has-background-dim-70  { opacity: 0.7; }
.has-background-dim-80  { opacity: 0.8; }
.has-background-dim-90  { opacity: 0.9; }
.has-background-dim-100 { opacity: 1; }
.wp-block-cover__inner-container {
    position: relative;
    z-index: 2;
    width: 100%;
    padding: 2rem 1rem;
}
.wp-block-cover.alignfull {
    width: 100%;
}

/* WP Buttons Block — Flex Layout */
.wp-block-buttons.is-layout-flex {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}
@media (max-width: 768px) {
    .wp-block-buttons.is-layout-flex {
        gap: 1rem;
    }
    .wy-main-cta-link .wp-block-buttons.is-layout-flex {
        flex-direction: column;
        align-items: center;
    }
}
.wp-block-buttons.is-layout-flex.is-content-justification-center {
    justify-content: center;
}

/* ════════════════════════════════════════════════
   LAYOUT-TOKENS
   ════════════════════════════════════════════════ */

/*  Breakpoint-Referenz (CSS custom props in @media nicht nutzbar):
    --bp-sm:  540px   kleine Phones / single-column
    --bp-md:  768px   Tablet / 2-column
    --bp-lg:  900px   Desktop / 3-column
    --bp-xl: 1200px   Content-Max-Width / 4→2 Spalten (z.B. Angebote)
    600px wird als Zwischenstufe zwischen sm und md verwendet.          */

:root {
    --wy-banner-height-min:  280px;
    --wy-banner-height-vw:   28vw;
    --wy-banner-height-max:  500px;
    --wy-mobile-breakpoint:  768px;
    --wy-section-padding:    80px 5%;
    --wy-content-max-width:  1200px;

    /* Farbpalette */
    --wy-color-teal:         #3d7a6e;
    --wy-color-teal-light:   #4d9080;
    --wy-color-dark-teal:    #246355;
    --wy-color-slate:        #454F5E;
    --wy-color-sage-light:   #cddbc7;
    --wy-color-white:        #FFFFFF;
    --wy-color-sage:         #9dad92;
    --wy-color-forest:       #0F2F2F;
    --wy-color-snow:         #f8faf8;

    /* Semantische Farben */
    --wy-color-error:        #c0392b;
    --wy-color-warning:      #f4b942;
    --wy-color-pink:         #e8366d;

    /* Opacity */
    --wy-opacity-muted:      0.7;
    --wy-opacity-subtle:     0.5;

    /* Border-Radius */
    --wy-radius-sm:          4px;
    --wy-radius-md:          8px;
}


/* ════════════════════════════════════════════════
   TYPOGRAFIE
   ════════════════════════════════════════════════ */

.wy-overline {
    display: block;
    font-size: 13px;
    letter-spacing: 4px;
    text-transform: uppercase;
    font-weight: 400;
    color: var(--wy-color-dark-teal);
    margin-bottom: 0.8rem;
    line-height: 1.4;
}

.wy-h2 {
    font-size: clamp(1.8rem, 3vw, 2.6rem);
    font-weight: 400;
    line-height: 1.3;
    margin: 8px 0 20px;
}

.wy-section-header {
    text-align: center;
    max-width: 1200px;
    margin: 0 auto 3rem;
}

/* WooCommerce + Entry-Titel */
header.entry-header .entry-title,
h1.entry-title {
    font-size: 40px !important;
    font-family: 'Abel', sans-serif !important;
    color: var(--wy-color-teal) !important;
    line-height: 1.2em !important;
}
.wc-block-cart__empty-cart__title {
    font-size: 40px !important;
    font-family: 'Abel', sans-serif !important;
    color: var(--wy-color-teal) !important;
    line-height: 1.3em !important;
}
h1.ast-archive-title {
    color: var(--wy-color-teal) !important;
}


/* ════════════════════════════════════════════════
   LINKS
   ════════════════════════════════════════════════ */

a:not(.menu-link):not(.ast-menu-toggle):not(.wp-block-button__link):not(.button):not(.ast-button):not(.wc-block-components-button) {
    color: var(--wy-color-teal);
    text-decoration: none;
}
a:not(.menu-link):not(.ast-menu-toggle):not(.wp-block-button__link):not(.button):not(.ast-button):not(.wc-block-components-button):hover {
    color: var(--wy-color-teal-light);
    text-decoration: underline;
}
.entry-content a:not(.wp-block-button__link):not(.menu-link):not(.wc-block-components-button) {
    color: var(--wy-color-dark-teal);
}
.entry-content a:not(.wp-block-button__link):not(.menu-link):not(.wc-block-components-button):hover {
    color: var(--wy-color-teal);
}


/* ════════════════════════════════════════════════
   VISUALLY HIDDEN (SEO-H1, Screenreader)
   ════════════════════════════════════════════════ */

.wy-visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}


/* ════════════════════════════════════════════════
   BUTTONS
   ════════════════════════════════════════════════ */

/* PRIMARY: gefüllt */
.wp-block-button:not(.is-style-outline):not(.wy-btn-outline-white):not(.wy-btn-inverted) .wp-block-button__link {
    background-color: var(--wy-color-teal) !important;
    color: var(--wy-color-white) !important;
    border-color: var(--wy-color-teal) !important;
    font-size: 15px !important;
}
.wp-block-button:not(.is-style-outline):not(.wy-btn-outline-white):not(.wy-btn-inverted) .wp-block-button__link:hover {
    background-color: var(--wy-color-teal-light) !important;
    border-color: var(--wy-color-teal-light) !important;
    color: var(--wy-color-white) !important;
}

/* SECONDARY: Outline */
.wp-block-button.is-style-outline:not(.wy-btn-outline-white) .wp-block-button__link {
    background: transparent !important;
    color: var(--wy-color-teal) !important;
    border: 2px solid var(--wy-color-teal) !important;
    font-size: 15px !important;
}
.wp-block-button.is-style-outline:not(.wy-btn-outline-white) .wp-block-button__link:hover {
    background-color: var(--wy-color-teal) !important;
    color: var(--wy-color-white) !important;
}

/* OUTLINE WEISS: auf dunklem Hintergrund */
/* Shortcode-Buttons (wy_next_termine / wy_alle_termine) */
.wy-btn {
    display: inline-block;
    padding: 0.6rem 1.4rem;
    font-size: inherit;
    font-family: inherit;
    font-weight: inherit;
    letter-spacing: 2px;
    text-transform: uppercase;
    border-radius: 0;
    white-space: nowrap;
    text-decoration: none;
    cursor: pointer;
}
.wy-btn--primary {
    background-color: var(--wy-color-teal);
    color: var(--wy-color-white) !important;
    border: 1px solid var(--wy-color-teal);
}
.wy-btn--primary:hover {
    background-color: var(--wy-color-teal-light);
    border-color: var(--wy-color-teal-light);
    color: var(--wy-color-white) !important;
}
.wy-btn--secondary {
    background-color: transparent;
    color: var(--wy-color-teal) !important;
    border: 2px solid var(--wy-color-teal);
}
.wy-btn--secondary:hover {
    background-color: var(--wy-color-teal);
    border-color: var(--wy-color-teal);
    color: var(--wy-color-white) !important;
}

.wy-btn-outline-white .wp-block-button__link {
    background: transparent !important;
    color: var(--wy-color-white) !important;
    border: 2px solid rgba(255,255,255,0.7) !important;
}
.wy-btn-outline-white .wp-block-button__link:hover {
    background: rgba(255,255,255,0.15) !important;
    color: var(--wy-color-white) !important;
}







/* ════════════════════════════════════════════════
   MAILPOET Formular
   ════════════════════════════════════════════════ */

.mailpoet_form,
.mailpoet_form * {
    font-family: inherit !important;
}
.mailpoet_form input[type="email"],
.mailpoet_form input[type="text"],
.mailpoet_form textarea,
.mailpoet_form select {
    width: 100%;
    max-width: 100%;
    font-family: inherit;
    font-size: inherit;
    border: 1px solid #ccc;
    padding: 0.75em 1em;
    border-radius: var(--wy-radius-sm);
    box-sizing: border-box;
}
.mailpoet_submit {
    background-color: var(--wy-color-teal);
    color: var(--wy-color-white);
    padding: 0.75em 1.5em;
    border: none;
    border-radius: var(--wy-radius-sm);
    font-family: inherit;
    font-size: inherit;
    cursor: pointer;
    text-align: center;
    display: inline-block;
}
.mailpoet_submit:hover {
    background-color: var(--wy-color-teal-light);
}
p.mailpoet_form_paragraph {
    margin-bottom: 1em;
}
.mailpoet_text_label,
.mailpoet_textarea_label {
    font-weight: 600;
    margin-bottom: 0.5em;
    display: block;
}
.mailpoet_form .mailpoet-heading {
    font-size: 36px;
    color: var(--wy-color-teal);
    line-height: 1.3em;
}
.mailpoet_form .mailpoet_form_paragraph {
    font-size: 18px;
    color: var(--wy-color-slate);
    line-height: 1.6em;
}


.ast-no-title.ast-header-without-markup {
    display: none;
}


/* ════════════════════════════════════════════════
   COMPLIANZ Cookie-Banner
   ════════════════════════════════════════════════ */

.cmplz-link {
    color: var(--wy-color-dark-teal) !important;
}





/* Nicht-klickbare Menü-Parents (href="#") */
.main-header-menu .menu-item > a[href="#"] {
    pointer-events: none;
    cursor: default;
}

/* Styling für rechtliche Seiten (body_class Filter in functions.php) */

/* Seitentitel als Überschrift stylen statt ausblenden */
.wy-legal-page .entry-title {
    font-size: 1.8rem !important;
    margin-bottom: 1.5rem !important;
    padding-bottom: 0.5rem !important;
    border-bottom: 2px solid var(--wy-color-sage-light);
    text-transform: uppercase;
}

/* Sektions-Überschriften */
body.wy-legal-page .entry-content h3 {
    font-size: 0.75rem !important;
    text-transform: uppercase !important;
    letter-spacing: 2px !important;
    color: var(--wy-color-teal) !important;
    margin-top: 1.8rem !important;
    margin-bottom: 0.3rem !important;
}

/* Fließtext */
.wy-legal-page .entry-content p {
    margin-bottom: 0.5rem !important;
    line-height: 1.7 !important;
    font-size: 0.95rem !important;
}






/* wy-uebermich-section — Über mich Seite */
.wy-uebermich-section {
    padding: 4rem 5%;
    max-width: 1200px;
    margin: 0 auto;
}

.wy-uebermich-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    align-items: start;
}

.wy-uebermich-text p {
    margin-bottom: 1.2em;
    line-height: 1.8;
    color: var(--wy-color-slate, #454F5E);
}

.wy-uebermich-fotos {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
}

.wy-uebermich-fotos img {
    width: 100%;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    border-radius: 4px;
}

@media (max-width: 768px) {
    .wy-uebermich-inner {
        grid-template-columns: 1fr;
    }
    .wy-uebermich-fotos {
        grid-template-columns: 1fr 1fr;
    }
}

/* wy-uebermich-split — Text links, Bild rechts */
.wy-uebermich-split {
    padding: 3rem 5%;
    background: var(--wy-color-white, #fff);
}
.wy-uebermich-split-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    align-items: center;
    max-width: 1200px;
    margin: 0 auto;
}
.wy-uebermich-split-text p {
    margin-bottom: 1.2em;
    line-height: 1.8;
    color: var(--wy-color-slate, #454F5E);
}
.wy-uebermich-split-img img {
    width: 100%;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    border-radius: 4px;
}
@media (max-width: 768px) {
    .wy-uebermich-split-inner {
        grid-template-columns: 1fr;
    }
}

/* wy-location-intro — zentrierter Einleitungstext Location-Seite */
.wy-location-intro {
    padding: var(--wy-section-padding, 80px 5%);
}

.wy-location-intro-inner {
    text-align: center;
    max-width: 760px;
    margin: 0 auto;
}

.wy-location-intro-inner .wy-overline {
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--wy-color-teal, #3d7a6e);
    margin-bottom: 0.5rem;
}

.wy-location-intro-inner h2 {
    font-size: 2.2rem;
    margin-top: 0;
    margin-bottom: 1.2rem;
    color: var(--wy-color-forest, #06140C);
}

.wy-location-intro-inner p {
    line-height: 1.8;
    color: var(--wy-color-slate, #454F5E);
    margin-bottom: 1rem;
}
.wy-location-intro .wy-overline {
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--wy-color-teal, #3d7a6e);
    margin-bottom: 0.5rem;
}
.wy-location-intro h2 {
    font-size: 2.2rem;
    margin-top: 0;
    margin-bottom: 1.2rem;
    color: var(--wy-color-forest, #06140C);
}
.wy-location-intro p {
    line-height: 1.8;
    color: var(--wy-color-slate, #454F5E);
    margin-bottom: 1rem;
}

