/*
Theme Name: Reekenfelder Erhaltungszucht
Theme URI: https://www.reekenfelder.de/
Author: Reekenfelder Erhaltungszucht
Description: Individuelles Block-Theme für die Reekenfelder Erhaltungszucht – Altsteirer und alte Geflügelrassen.
Version: 1.4.0
Requires at least: 6.6
Requires PHP: 7.4
Text Domain: reekenfelder
*/

:root {
  --rz-forest: #123a2b;
  --rz-forest-deep: #0a271d;
  --rz-forest-soft: #24513e;
  --rz-gold: #c99a45;
  --rz-gold-light: #e6c57f;
  --rz-olive: #7c8650;
  --rz-paper: #fbfaf6;
  --rz-cream: #f1eee3;
  --rz-ink: #183329;
  --rz-muted: #5f6e65;
  --rz-line: #d7dacf;
  --rz-serif: Georgia, "Times New Roman", serif;
  --rz-sans: Arial, "Helvetica Neue", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 7rem; }
body { margin: 0; background: var(--rz-paper); color: var(--rz-ink); font-family: var(--rz-sans); font-size: 1rem; line-height: 1.75; }
body, a, button { -webkit-font-smoothing: antialiased; }
a { color: inherit; text-underline-offset: .2em; }
img { max-width: 100%; height: auto; }
.wp-site-blocks { overflow: clip; }
.wp-site-blocks > * { margin-block-start: 0; }

.rz-header { position: sticky; top: 0; z-index: 50; background: rgba(251,250,246,.94); border-bottom: 1px solid rgba(18,58,43,.12); backdrop-filter: blur(16px); }
body.admin-bar .rz-header { top: 32px; }
.rz-header__inner { min-height: 5.75rem; }
.rz-site-title { margin: 0 !important; font-family: var(--rz-serif); font-size: 1.45rem; font-weight: 400; letter-spacing: -.02em; }
.rz-site-title a { text-decoration: none; }
.rz-site-title::before { content: "R"; width: 2.8rem; height: 2.8rem; display: inline-grid; place-items: center; margin-right: .8rem; border-radius: 50%; background: var(--rz-forest); color: var(--rz-gold-light); font: 400 1.75rem/1 var(--rz-serif); vertical-align: middle; }
.rz-header .wp-block-navigation { font-size: .88rem; }
.rz-header .wp-block-navigation-item__content { text-decoration: none; }
.rz-header .wp-block-navigation-item__content:hover { color: var(--rz-gold); }
.rz-header .rz-nav-login .wp-block-navigation-item__content { padding: .7rem 1rem; border: 1px solid var(--rz-forest); border-radius: 999px; font-weight: 700; }
.rz-header .rz-nav-login .wp-block-navigation-item__content:hover { background: var(--rz-forest); color: white; }

.rz-hero { background: linear-gradient(135deg,#fbfaf6 0%,#f5f2e8 60%,#eeeadb 100%); }
.rz-hero__inner { min-height: calc(100svh - 5.75rem); padding-block: clamp(3.5rem,7vw,6rem); }
.rz-eyebrow { margin-bottom: 1.35rem !important; color: var(--rz-forest-soft); font-size: .72rem !important; line-height: 1.4; font-weight: 700; letter-spacing: .19em; }
.rz-display { margin: 0 !important; font-family: var(--rz-serif); font-size: clamp(3.7rem,7.4vw,6.6rem) !important; line-height: .98 !important; font-weight: 400 !important; letter-spacing: -.045em; }
.rz-display em, .rz-heading em { color: var(--rz-olive); font-weight: 400; }
.rz-lead { max-width: 38rem; margin-top: 2rem !important; color: var(--rz-muted); font-size: clamp(1rem,1.5vw,1.12rem); }
.rz-primary-button .wp-block-button__link { min-height: 3.4rem; display: inline-flex; align-items: center; padding: .8rem 1.35rem; background: var(--rz-forest); color: white; border-radius: .2rem; box-shadow: 0 .8rem 2rem rgba(18,58,43,.15); font-size: .88rem; font-weight: 600; }
.rz-primary-button .wp-block-button__link:hover { background: var(--rz-forest-soft); }
.rz-shop-button .wp-block-button__link { min-height: 3.4rem; display: inline-flex; align-items: center; padding: .8rem 1.35rem; background: var(--rz-gold); color: var(--rz-forest-deep); border: 1px solid var(--rz-gold); border-radius: .2rem; box-shadow: 0 .8rem 2rem rgba(201,154,69,.22); font-size: .88rem; font-weight: 700; }
.rz-shop-button .wp-block-button__link:hover { background: var(--rz-gold-light); border-color: var(--rz-gold-light); }
.rz-app-button .wp-block-button__link { min-height: 3.4rem; display: inline-flex; align-items: center; padding: .8rem 1.35rem; background: var(--rz-gold); color: var(--rz-forest-deep); border: 1px solid var(--rz-gold); border-radius: .2rem; box-shadow: 0 .8rem 2rem rgba(201,154,69,.22); font-size: .88rem; font-weight: 700; }
.rz-app-button .wp-block-button__link:hover { background: var(--rz-gold-light); border-color: var(--rz-gold-light); }
.rz-text-link .wp-block-button__link { padding: .65rem 0 .2rem; background: transparent; color: var(--rz-ink); border-bottom: 1px solid var(--rz-gold); border-radius: 0; font-size: .9rem; font-weight: 600; }
.rz-facts { padding-top: 1.5rem; margin-top: 2rem !important; border-top: 1px solid var(--rz-line); }
.rz-fact strong { display: block; color: var(--rz-forest); font: 400 1.5rem/1 var(--rz-serif); }
.rz-fact span { color: var(--rz-muted); font-size: .76rem; line-height: 1.35; }
.rz-hero-photo { position: relative; min-height: 35rem; overflow: hidden; border-radius: 16rem 16rem .4rem .4rem; background: #d6d9ca; box-shadow: 0 2rem 5rem rgba(10,39,29,.16); }
.rz-hero-photo figure, .rz-hero-photo img { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; object-fit: cover; }
.rz-hero-photo::after { content: "Vielfalt, die bleibt."; position: absolute; inset: auto 0 0; z-index: 2; padding: 7rem 2rem 1.8rem; background: linear-gradient(transparent,rgba(6,29,20,.88)); color: white; font: 400 clamp(1.7rem,3vw,2.5rem)/1.2 var(--rz-serif); }
.rz-promise { background: var(--rz-forest); color: #f6e7c2; }
.rz-promise__inner { min-height: 4.5rem; text-transform: uppercase; font-size: .78rem; font-weight: 700; letter-spacing: .15em; }
.rz-dot { color: var(--rz-gold); }

.rz-section { padding-block: clamp(4.5rem,9vw,7.5rem); }
.rz-heading { margin: 0 !important; font-family: var(--rz-serif); font-size: clamp(2.8rem,5.5vw,5rem) !important; line-height: 1.05 !important; font-weight: 400 !important; letter-spacing: -.035em; }
.rz-intro { color: var(--rz-ink); font: 400 clamp(1.35rem,2.3vw,1.85rem)/1.45 var(--rz-serif); }
.rz-muted { color: var(--rz-muted); }
.rz-club { padding-top: 1.5rem; margin-top: 2rem !important; border-top: 1px solid var(--rz-line); }
.rz-club-mark { width: 3rem; height: 3rem; display: grid; place-items: center; border-radius: 50%; background: var(--rz-cream); color: var(--rz-gold); font-size: 1.3rem; }
.rz-breeds { background: var(--rz-cream); }
.rz-card { position: relative; min-height: 34rem; display: flex; flex-direction: column; padding: clamp(2rem,4vw,3rem); overflow: hidden; background: var(--rz-paper); border-top: 3px solid var(--rz-olive); }
.rz-card--dark { background: var(--rz-forest); color: white; border-top-color: var(--rz-gold); }
.rz-card__number { position: absolute; right: 2.2rem; top: 1.8rem; color: rgba(18,58,43,.11); font: 400 6rem/1 var(--rz-serif); }
.rz-card--dark .rz-card__number { color: rgba(255,255,255,.1); }
.rz-card__kicker { position: relative; color: var(--rz-olive); font-size: .68rem; font-weight: 700; letter-spacing: .14em; }
.rz-card--dark .rz-card__kicker { color: var(--rz-gold-light); }
.rz-card h3 { position: relative; margin: 3.2rem 0 1.3rem; font-family: var(--rz-serif); font-size: clamp(2.6rem,4vw,3.7rem); line-height: 1; font-weight: 400; }
.rz-card p, .rz-card li { position: relative; color: var(--rz-muted); }
.rz-card--dark p, .rz-card--dark li { color: #d1ddd5; }
.rz-card ul { padding-left: 1.2rem; }
.rz-offers { background: var(--rz-paper); }
.rz-offer { padding-block: 2rem; border-bottom: 1px solid var(--rz-line); }
.rz-offer:first-child { border-top: 1px solid var(--rz-line); }
.rz-offer__number { color: var(--rz-gold); font: 400 1.3rem/1.4 var(--rz-serif); }
.rz-offer h3 { margin: 0; font-family: var(--rz-serif); font-size: 2rem; font-weight: 400; }
.rz-logo-panel { padding-top: 0; }
.rz-logo-panel figure { padding: clamp(1rem,4vw,3rem); background: white; border: 1px solid #e8e7e0; box-shadow: 0 1.5rem 4rem rgba(18,58,43,.08); }
.rz-contact { background: var(--rz-forest-deep); color: white; text-align: center; }
.rz-contact .rz-eyebrow { color: var(--rz-gold-light); }
.rz-contact p:not(.rz-eyebrow) { color: #bfcfc5; }
.rz-contact-box { width: fit-content; margin-inline: auto !important; padding: 1rem 1.3rem; border: 1px solid rgba(255,255,255,.18); }

.rz-footer { padding-block: 3rem 2rem; background: #071b14; color: #dce6df; }
.rz-footer .wp-block-site-title { font-family: var(--rz-serif); }
.rz-footer a { color: inherit; }
.rz-footer__small { padding-top: 2rem; margin-top: 2rem !important; border-top: 1px solid rgba(255,255,255,.1); color: #879b8f; font-size: .75rem; }
.rz-page { padding-block: clamp(4rem,8vw,7rem); }
.rz-page h1 { font-family: var(--rz-serif); font-size: clamp(2.8rem,6vw,5rem); line-height: 1.05; font-weight: 400; }

@media (max-width: 800px) {
  .rz-header__inner { min-height: 4.8rem; }
  .rz-site-title { font-size: 1.1rem; }
  .rz-site-title::before { width: 2.35rem; height: 2.35rem; font-size: 1.45rem; }
  .rz-hero__inner { min-height: auto; }
  .rz-hero-photo { min-height: 31rem; margin-top: 2.5rem !important; }
  .rz-card { min-height: auto; }
  .rz-promise__inner { padding-block: 1rem; gap: .75rem !important; }
}

@media (max-width: 520px) {
  .rz-display { font-size: clamp(3.2rem,17vw,4.6rem) !important; }
  .rz-hero-photo { min-height: 26rem; border-radius: 11rem 11rem .3rem .3rem; }
  .rz-section { padding-block: 4rem; }
  .rz-heading { font-size: 2.7rem !important; }
  .rz-card { padding: 2rem 1.5rem; }
  .rz-card__number { font-size: 4.5rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

/* Mobile Optimierung 1.4.0 */
html { overflow-x: hidden; }
body { min-width: 320px; overflow-wrap: anywhere; }
input, select, textarea, button { max-width: 100%; }
iframe, video, table { max-width: 100%; }
.wp-site-blocks > main { min-width: 0; }
.wp-block-group.alignwide, .wp-block-columns.alignwide { width: min(1184px, calc(100% - 2rem)); margin-inline: auto; }
.woocommerce table { border-collapse: collapse; }
.woocommerce img { height: auto; }

@media (max-width: 1024px) {
  .rz-header__inner { width: calc(100% - 2rem); }
  .rz-hero__inner { min-height: auto; padding-block: 4.5rem; }
  .rz-display { font-size: clamp(3.4rem,8vw,5.5rem) !important; }
  .rz-hero-photo { min-height: 30rem; }
  .rz-section { padding-block: 5.5rem; }
}

@media (max-width: 782px) {
  body.admin-bar .rz-header { top: 46px; }
  .rz-header__inner { min-height: 4.8rem; gap: .75rem; }
  .rz-site-title { min-width: 0; font-size: 1.05rem; line-height: 1.15; }
  .rz-site-title a { display: inline-flex; align-items: center; text-decoration: none; }
  .rz-site-title::before { flex: 0 0 2.4rem; width: 2.4rem; height: 2.4rem; margin-right: .55rem; font-size: 1.45rem; }
  .rz-header .wp-block-navigation__responsive-container-open { display: flex; padding: .65rem; border-radius: .25rem; background: var(--rz-forest); color: white; }
  .rz-header .wp-block-navigation__responsive-container.is-menu-open { box-sizing: border-box; padding: max(1.25rem,env(safe-area-inset-top)) 1.25rem max(1.5rem,env(safe-area-inset-bottom)); background: var(--rz-paper); color: var(--rz-ink); }
  .rz-header .wp-block-navigation__responsive-container-close { top: 1rem; right: 1rem; padding: .65rem; border-radius: 50%; background: var(--rz-forest); color: white; }
  .rz-header .wp-block-navigation__responsive-container-content { align-items: stretch; padding-top: 4rem; }
  .rz-header .wp-block-navigation__container { width: 100%; align-items: stretch !important; gap: 0 !important; }
  .rz-header .wp-block-navigation-item { width: 100%; border-bottom: 1px solid var(--rz-line); }
  .rz-header .wp-block-navigation-item__content { display: block; width: 100%; padding: 1rem .25rem !important; font-size: 1.05rem; }
  .rz-header .rz-nav-login .wp-block-navigation-item__content { margin-block: .7rem; padding: .85rem 1rem !important; background: var(--rz-gold); color: var(--rz-forest-deep); border-color: var(--rz-gold); text-align: center; }

  .rz-hero__inner { padding-block: 3.25rem; }
  .rz-hero__inner.wp-block-columns { gap: 2.5rem; }
  .rz-hero__inner > .wp-block-column { flex-basis: 100% !important; }
  .rz-display { font-size: clamp(3rem,13vw,4.8rem) !important; }
  .rz-lead { margin-top: 1.5rem !important; }
  .rz-hero-photo { min-height: clamp(22rem,85vw,31rem); margin-top: 0 !important; border-radius: 12rem 12rem .35rem .35rem; }
  .rz-facts:not(.is-not-stacked-on-mobile) { display: flex; flex-wrap: nowrap; gap: .6rem; }
  .rz-facts:not(.is-not-stacked-on-mobile) > .wp-block-column { flex: 1 1 33.333% !important; min-width: 0; }
  .rz-fact span { font-size: .7rem; }
  .rz-promise__inner { justify-content: center !important; padding-block: 1rem; text-align: center; }
  .rz-section { padding-block: 4.5rem; }
  .rz-section > .wp-block-columns { gap: 2.5rem; }
  .rz-heading { font-size: clamp(2.55rem,10vw,4rem) !important; }
  .rz-card { min-height: auto; }
  .rz-contact-box { width: 100%; box-sizing: border-box; }
  .rz-footer { text-align: center; }
  .rz-footer .wp-block-columns { gap: 1.25rem; }
  .rz-footer .has-text-align-right { text-align: center; }
  .rz-footer__small { flex-direction: column; justify-content: center !important; gap: .5rem !important; }
  .rz-footer__small p { margin: 0; }

  .woocommerce .woocommerce-result-count, .woocommerce .woocommerce-ordering { float: none; width: 100%; }
  .woocommerce .woocommerce-ordering select { width: 100%; min-height: 2.8rem; }
  .woocommerce div.product div.images, .woocommerce div.product div.summary { float: none; width: 100%; }
  .woocommerce form .form-row-first, .woocommerce form .form-row-last { float: none; width: 100%; }
  .woocommerce-cart .cart-collaterals .cart_totals, .woocommerce-checkout #customer_details, .woocommerce-checkout #order_review { width: 100%; }
  .woocommerce table.shop_table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .woocommerce .checkout-button, .woocommerce #place_order { width: 100%; text-align: center; }
}

@media (max-width: 600px) {
  .wp-block-group.alignwide, .wp-block-columns.alignwide, .rz-header__inner { width: min(100% - 1.25rem,1184px); }
  .rz-header { position: sticky; }
  .rz-site-title { max-width: calc(100vw - 6rem); font-size: .92rem; }
  .rz-eyebrow { margin-bottom: 1rem !important; font-size: .66rem !important; letter-spacing: .14em; }
  .rz-display { font-size: clamp(2.75rem,14vw,4rem) !important; line-height: 1 !important; }
  .rz-lead { font-size: 1rem; }
  .rz-hero .wp-block-buttons { display: grid; grid-template-columns: 1fr 1fr; width: 100%; gap: .65rem !important; }
  .rz-hero .wp-block-button { width: 100%; margin: 0; }
  .rz-hero .wp-block-button:not(.rz-shop-button):not(.rz-app-button) { grid-column: 1 / -1; }
  .rz-hero .wp-block-button__link { width: 100%; min-height: 3.25rem; justify-content: center; padding: .7rem .65rem; text-align: center; line-height: 1.25; }
  .rz-shop-button .wp-block-button__link, .rz-app-button .wp-block-button__link { font-size: .76rem; }
  .rz-hero-photo::after { padding: 5rem 1.25rem 1.25rem; font-size: 1.65rem; }
  .rz-promise__inner { gap: .45rem .7rem !important; font-size: .66rem; letter-spacing: .1em; }
  .rz-promise__inner .rz-dot { display: none; }
  .rz-section { padding-block: 3.75rem; }
  .rz-intro { font-size: 1.25rem; }
  .rz-club { align-items: flex-start !important; }
  .rz-club-mark { flex: 0 0 3rem; }
  .rz-card { padding: 2rem 1.3rem; }
  .rz-card h3 { margin-top: 2.7rem; font-size: 2.45rem; }
  .rz-offer { padding-block: 1.4rem; }
  .rz-offer h3 { font-size: 1.7rem; }
  .rz-contact { padding-inline: .35rem; }
  .rz-page { padding-block: 3rem; }
  .rz-page h1 { font-size: clamp(2.5rem,12vw,3.5rem); overflow-wrap: anywhere; }

  input:not([type="checkbox"]):not([type="radio"]), select, textarea { min-height: 2.9rem; font-size: 16px !important; }
  button, .button, .wp-element-button { min-height: 44px; }
  table { font-size: .88rem; }
  .rz-portal h1 { font-size: clamp(2.35rem,12vw,3.5rem) !important; }
  .rz-frontend-button { text-align: center; }
  .rz-record-actions { width: 100%; flex-wrap: wrap; }
  .rz-record-actions a, .rz-record-actions button { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }

  .woocommerce ul.products[class*="columns-"] { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .85rem; }
  .woocommerce ul.products[class*="columns-"]::before, .woocommerce ul.products[class*="columns-"]::after { display: none; }
  .woocommerce ul.products[class*="columns-"] li.product { float: none; width: auto; margin: 0; }
  .woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 1rem; line-height: 1.3; }
  .woocommerce ul.products li.product .button { width: 100%; padding-inline: .5rem; text-align: center; }
  .woocommerce div.product .product_title { font-size: 2rem; line-height: 1.15; }
  .woocommerce div.product form.cart { display: flex; flex-wrap: wrap; gap: .6rem; }
  .woocommerce div.product form.cart .button { flex: 1; min-width: 11rem; }
  .woocommerce-message, .woocommerce-info, .woocommerce-error { padding: 1rem 1rem 1rem 2.7rem; font-size: .9rem; }
}

@media (max-width: 390px) {
  .rz-site-title { font-size: .82rem; }
  .rz-site-title::before { flex-basis: 2.1rem; width: 2.1rem; height: 2.1rem; font-size: 1.25rem; }
  .rz-hero .wp-block-buttons { grid-template-columns: 1fr; }
  .rz-hero .wp-block-button { grid-column: 1 !important; }
  .rz-shop-button .wp-block-button__link, .rz-app-button .wp-block-button__link { font-size: .85rem; }
  .woocommerce ul.products[class*="columns-"] { grid-template-columns: 1fr; }
}
