/* Korbus Wine – Theme-Styles. Farben und Schriften kommen aus theme.json (Website-Editor > Stile). */
:root { --kw-panel: rgba(138,90,98,.2); --kw-pad: clamp(1.5rem, 5vw, 5rem); }
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; }
.wp-site-blocks, .kw-main { padding: 0; }
.kw-main { margin: 0 !important; }
.kw-main > * { margin-block: 0; }

/* ---------- Kopfzeile ---------- */
.kw-header { position: fixed; inset: 0 0 auto 0; z-index: 50; display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: 1.5rem var(--kw-pad); pointer-events: none; }
.kw-header > * { pointer-events: auto; margin: 0; }
.kw-logo { position: absolute; left: var(--kw-pad); top: 1.5rem; }
.kw-logo img { display: block; width: 36px; height: auto; }
.kw-header .wp-block-navigation { margin: 0 auto; font-size: .875rem; letter-spacing: .04em; }
.kw-header .wp-block-navigation a { text-decoration: none; text-transform: lowercase; }
.kw-header .wp-block-navigation a:hover { text-decoration: underline; }
.kw-shop-wrap .wp-block-button__link, .is-style-kw-shop .wp-block-button__link { background: var(--wp--preset--color--mint); color: #000; border-radius: 0; padding: .35em 1em; font-size: .75rem; text-transform: uppercase; letter-spacing: .05em; text-decoration: none; }
.wp-block-navigation__responsive-container.is-menu-open { background: var(--wp--preset--color--weiss) url("../img/nav-bg.jpg") center/cover; font-size: 1.75rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 1rem; }
body:has(.kw-dark) .kw-logo img { filter: invert(1); }
body:has(.kw-dark) .kw-header .wp-block-navigation a, body:has(.kw-dark) .kw-header .wp-block-navigation__responsive-container-open { color: #fff; }

/* ---------- Fußzeile ---------- */
.kw-footer { position: fixed; inset: auto 0 0 0; z-index: 40; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 1rem var(--kw-pad); font-size: .75rem; pointer-events: none; }
.kw-footer > * { pointer-events: auto; margin: 0; }
.kw-footer a { text-decoration: none; }
.kw-footer a:hover { text-decoration: underline; }
.kw-footer .wp-block-navigation { font-size: .75rem; }
.kw-social a { margin-left: 1rem; }
body:has(.kw-dark) .kw-footer, body:has(.kw-dark) .kw-footer a { color: #fff; }
@media (max-width: 899px) { .kw-footer { position: static; flex-wrap: wrap; padding-bottom: 2rem; } }

/* ---------- Hero (Startseite) ---------- */
.kw-hero { min-height: 100vh; display: flex; flex-direction: column; justify-content: center; padding: 8rem var(--kw-pad); }
.kw-hero__row { display: flex; align-items: baseline; flex-wrap: wrap; gap: .2em 1.2rem; margin: 0; }
.kw-hero__word { font-family: var(--wp--preset--font-family--playfair); font-style: italic; font-weight: 700; font-size: var(--wp--preset--font-size--hero); line-height: 1; margin: 0; }
.kw-hero__one, .kw-hero__two { font-weight: 300; text-transform: uppercase; line-height: 1.05; margin: 0; font-size: clamp(2rem, 1rem + 6vw, 7rem); }
.kw-hero__two { font-weight: 100; }

/* ---------- Abschnitte (Text & Bild) ---------- */
.kw-section { position: relative; isolation: isolate; min-height: 100vh; display: flex; align-items: center; padding: 8rem var(--kw-pad) 6rem; scroll-margin-top: 0; }
.kw-split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 6%, 6rem); align-items: center; width: 100%; max-width: 1400px; margin: 0 auto; }
.kw-text { position: relative; padding: 2rem 0; }
.kw-text::before, .kw-media::before { content: ""; position: absolute; inset: 0 -4vw; background: var(--kw-panel); z-index: -1; }
.kw-media::before { display: none; }
.kw-tone-rose { --kw-panel: rgba(138,90,98,.2); }
.kw-tone-oliv { --kw-panel: rgba(157,158,130,.2); }
.kw-tone-ocker { --kw-panel: rgba(181,148,83,.2); }
.kw-text h1, .kw-text h2 { margin: 0 0 1.2rem; }
.kw-text p { margin: 0 0 1.2rem; max-width: 52ch; }
.kw-media { position: relative; margin: 0; }
.kw-media figure, .kw-media .wp-block-image { margin: 0; }
.kw-media img { display: block; width: 100%; height: auto; }
.kw-section--image-text .kw-media { order: -1; }
.kw-section--image-text .kw-media::before { display: block; inset: 2rem -4vw; }
.kw-section--image-text .kw-text::before { display: none; }
.kw-section--text-image-panel .kw-text::before { display: none; }
.kw-section--text-image-panel .kw-media::before { display: block; inset: 2rem -4vw; }
.kw-big img { aspect-ratio: 4 / 5; object-fit: cover; }
.kw-duo { display: flex; align-items: flex-end; justify-content: space-between; gap: 2.7vw; }
.kw-duo > .wp-block-image:first-child { width: 57%; }
.kw-duo > .wp-block-image:nth-child(2) { width: 40%; }
.kw-section--duo-reverse .kw-duo > .wp-block-image:first-child { order: 2; }
.kw-section--duo-reverse .kw-duo > .wp-block-image:nth-child(2) { order: 1; }
.kw-section--duo .kw-media::before, .kw-section--duo-reverse .kw-media::before { display: block; inset: -2rem -4vw 2rem; }
.kw-section--duo .kw-text::before, .kw-section--duo-reverse .kw-text::before { display: none; }
.kw-karte { width: 70%; margin: 0 0 2rem auto; }
.kw-karte img { width: 100%; height: auto; }
.wp-block-button.is-style-kw-arrow .wp-block-button__link { background: none; color: inherit; padding: 0; border-radius: 0; font-weight: 400; text-transform: lowercase; text-decoration: none; }
.wp-block-button.is-style-kw-arrow .wp-block-button__link::before { content: "\2192"; display: inline-block; margin-right: .5em; transition: transform .2s; }
.wp-block-button.is-style-kw-arrow .wp-block-button__link:hover::before { transform: translateX(.3em); }
.kw-next { margin: 1.5rem 0 0; }
.kw-next a { display: inline-block; text-decoration: none; font-size: 1.5rem; transform: rotate(90deg); }

/* ---------- Kontaktformular (Contact Form 7) ---------- */
.kw-dark { background: #000; color: #fff; }
.kw-dark a, .kw-dark label { color: #fff; }
.kw-form { min-height: 100vh; display: flex; align-items: center; padding: 8rem var(--kw-pad) 6rem; }
.kw-form__inner { width: 100%; max-width: 900px; margin: 0 auto; }
.kw-form h1 { font-size: var(--wp--preset--font-size--klein); font-weight: 400; margin: 0 0 2rem; }
.kw-form .fieldWrapper { margin-bottom: 1.5rem; }
.kw-form label { display: block; font-size: .8125rem; opacity: .8; margin-bottom: .4rem; }
.kw-form input[type=text], .kw-form input[type=email], .kw-form textarea { width: 100%; background: transparent; color: #fff; border: 1px solid rgba(255,255,255,.4); padding: .8rem 1rem; font: inherit; border-radius: 0; }
.kw-form input:focus, .kw-form textarea:focus { outline: 1px solid var(--wp--preset--color--mint); }
.kw-form .wpcf7-submit, .kw-form button { background: var(--wp--preset--color--mint); color: #000; border: 0; padding: .8rem 2rem; font: inherit; text-transform: lowercase; cursor: pointer; }
.kw-form .wpcf7-not-valid-tip { color: #ff8a8a; font-size: .8125rem; }
.kw-form .wpcf7-response-output { border-color: rgba(255,255,255,.4) !important; margin: 1rem 0 0 !important; padding: .8rem 1rem !important; }

/* ---------- Rechtstexte ---------- */
.kw-legal { max-width: 900px; margin: 0 auto; padding: 8rem var(--kw-pad) 6rem; }
.kw-legal h1 { margin-bottom: 2rem; }
.kw-legal h2, .kw-legal h3 { margin-top: 2rem; }

/* ---------- Altersabfrage-Popup ---------- */
.kw-popup { position: fixed; inset: 0; z-index: 1000; display: none; align-items: center; justify-content: center; padding: 1rem; background: rgba(0,0,0,.55); }
.kw-popup.is-open, html.kw-age-pending .kw-popup { display: flex; }
.kw-popup__box { background: #fff; width: min(92vw, 520px); max-height: 92vh; overflow: auto; padding: 2.5rem 2.5rem 2rem; text-align: center; box-shadow: 0 10px 40px rgba(0,0,0,.35); }
.kw-popup__headline { font-weight: 500; font-size: 1.25rem; margin: 0 0 1.5rem; }
.kw-popup__image { margin: 0 0 1.5rem; }
.kw-popup__image img { display: block; width: 300px; max-width: 100%; margin: 0 auto; }
.kw-age { margin: 0 0 1.5rem; font-size: .8125rem; }
.kw-popup__buttons { justify-content: center; }
.kw-popup-close .wp-block-button__link { background: #000; color: #fff; border-radius: 0; padding: .7rem 2rem; text-transform: lowercase; text-decoration: none; transition: opacity .2s; }
.kw-popup-close.is-disabled .wp-block-button__link { opacity: .3; pointer-events: none; }
body.kw-popup-open, html.kw-age-pending body { overflow: hidden; }
/* Rechtstexte (Impressum, Datenschutz) bleiben ohne Altersabfrage lesbar. Zeile löschen, wenn das Popup dort auch erscheinen soll: */
body:has(.kw-legal) .kw-popup { display: none !important; }
body:has(.kw-legal) { overflow: auto !important; }
.kw-popup-close.is-disabled .wp-block-button__link, .kw-popup-close .wp-block-button__link[aria-disabled=true] { cursor: not-allowed; }
.kw-age input[type=checkbox] { width: 1.1rem; height: 1.1rem; vertical-align: middle; margin-right: .4rem; accent-color: #000; }
.kw-popup input:focus-visible, .kw-popup a:focus-visible { outline: 2px solid #000; outline-offset: 3px; }

/* ---------- Scroll-Animationen ---------- */
.kw-reveal { opacity: 0; transform: translateY(2.5rem); transition: opacity .9s ease, transform .9s ease; }
.kw-reveal.is-visible { opacity: 1; transform: none; }
.kw-section .kw-media .wp-block-image { opacity: 0; transform: translateY(3rem) scale(.96); transition: opacity 1s ease .15s, transform 1s ease .15s; }
.kw-section.is-visible .kw-media .wp-block-image { opacity: 1; transform: none; }
.kw-section .kw-text > * { opacity: 0; transform: translateY(1.5rem); transition: opacity .8s ease, transform .8s ease; }
.kw-section.is-visible .kw-text > * { opacity: 1; transform: none; }
.kw-section.is-visible .kw-text > :nth-child(2) { transition-delay: .12s; }
.kw-section.is-visible .kw-text > :nth-child(3) { transition-delay: .24s; }
.kw-section.is-visible .kw-text > :nth-child(4) { transition-delay: .36s; }
.kw-hero .kw-hero__row, .kw-hero .kw-hero__two { animation: kw-rise 1.2s ease both; }
.kw-hero .kw-hero__two { animation-delay: .3s; }
@keyframes kw-rise { from { opacity: 0; transform: translateY(2rem); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .kw-reveal, .kw-section .kw-media .wp-block-image, .kw-section .kw-text > * { opacity: 1; transform: none; transition: none; }
  .kw-hero .kw-hero__row, .kw-hero .kw-hero__two { animation: none; }
}
/* Im Editor immer sichtbar */
.editor-styles-wrapper .kw-reveal, .editor-styles-wrapper .kw-section .kw-media .wp-block-image, .editor-styles-wrapper .kw-section .kw-text > * { opacity: 1; transform: none; }
.editor-styles-wrapper .kw-header, .editor-styles-wrapper .kw-footer { position: static; }
.editor-styles-wrapper .kw-popup { display: flex; position: static; background: none; }

/* ---------- Mobil ---------- */
@media (max-width: 899px) {
  .kw-split { grid-template-columns: 1fr; gap: 2.5rem; }
  .kw-section { min-height: 0; padding: 7rem var(--kw-pad) 3rem; }
  .kw-text::before { inset: 0 -1.5rem; }
  .kw-section--image-text .kw-media { order: 0; }
  .kw-section--duo-reverse .kw-duo > .wp-block-image:first-child, .kw-section--duo-reverse .kw-duo > .wp-block-image:nth-child(2) { order: 0; }
  .kw-hero { padding-top: 7rem; }
  .kw-logo img { width: 28px; }
}
