/* =========================================================================
   shop.css — Cart, Generic Page, Checkout (Bone reading-sections)
   Loaded after base + glass, no glass on cart-items / totals / page-content.
   ========================================================================= */

/* ---------- Generic Page ----------------------------------------------- */

.page-default .page-hero {
  text-align: center;
  border-bottom: 1px solid rgba(201, 169, 110, 0.18);
}
.page-default .page-hero__title {
  margin: 0;
  letter-spacing: 0.02em;
}

.page-content-section {
  color: var(--c-forest);
}
.page-content-section h1,
.page-content-section h2,
.page-content-section h3,
.page-content-section h4,
.page-content-section h5,
.page-content-section h6 { color: var(--c-forest-deep); }
.page-content-section p { color: var(--c-forest); }
.page-content-section a:where(:not(.wp-element-button)) {
  color: var(--c-ember);
  text-decoration: underline;
  text-decoration-color: rgba(232, 80, 10, 0.4);
  text-underline-offset: 3px;
}
.page-content-section a:where(:not(.wp-element-button)):hover {
  color: var(--c-ember-deep);
  text-decoration-color: var(--c-ember-deep);
}

.page-content {
  font-size: var(--fs-body-lg);
  line-height: 1.7;
}

/* ---------- Cart — Hero -------------------------------------------------- */

.cart-hero {
  border-bottom: 1px solid rgba(201, 169, 110, 0.2);
}
.cart-hero__title {
  margin: 0;
  letter-spacing: 0.02em;
}

/* ---------- Cart — Section ---------------------------------------------- */

.cart-section { color: var(--c-forest); }
.cart-section h1,
.cart-section h2,
.cart-section h3,
.cart-section h4 { color: var(--c-forest-deep); }
.cart-section p { color: var(--c-forest); }

/* Cart-Item-Liste & Totals: KEIN Glass (Design-Spec §2.7)
   Solide helle Box mit Brass-Trennlinien. */
.cart-items-col .wp-block-woocommerce-cart-line-items-block,
.cart-items-col .wp-block-woocommerce-cart-cross-sells-block,
.cart-summary-col .wp-block-woocommerce-cart-totals-block,
.cart-summary-col .wp-block-woocommerce-cart-order-summary-block {
  background: var(--c-snow);
  border: 1px solid rgba(201, 169, 110, 0.25);
  border-radius: var(--radius-md);
  padding: var(--space-lg);
  box-shadow: var(--shadow-soft);
}

.cart-items-col .wp-block-woocommerce-cart-line-items-block + .wp-block-woocommerce-cart-cross-sells-block {
  margin-top: var(--space-xl);
}

/* WC Cart Item Rows */
.cart-section .wc-block-cart-items table,
.cart-section .wc-block-cart-items {
  color: var(--c-forest);
  background: transparent;
}
.cart-section .wc-block-cart-items th {
  color: var(--c-forest-deep);
  font-family: 'Inter', system-ui, sans-serif;
  font-size: var(--fs-ui);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  border-bottom: 1px solid rgba(201, 169, 110, 0.4);
  padding-bottom: var(--space-sm);
}
.cart-section .wc-block-cart-items td {
  border-bottom: 1px solid rgba(44, 50, 38, 0.08);
  padding: var(--space-md) var(--space-sm);
}
.cart-section .wc-block-cart-item__product-name,
.cart-section .wc-block-components-product-name {
  color: var(--c-forest-deep) !important;
  font-weight: 600;
  text-decoration: none;
}
.cart-section .wc-block-components-product-price__value,
.cart-section .wc-block-components-totals-item__value,
.cart-section .wc-block-formatted-money-amount {
  color: var(--c-ember);
  font-family: 'Bebas Neue', system-ui, sans-serif;
  letter-spacing: 0.02em;
  font-size: 1.15em;
}

/* Totals Block */
.cart-summary-col .wc-block-components-totals-item {
  color: var(--c-forest);
  border-bottom: 1px solid rgba(44, 50, 38, 0.08);
  padding: var(--space-sm) 0;
}
.cart-summary-col .wc-block-components-totals-footer-item {
  border-top: 2px solid var(--c-forest-deep);
  padding-top: var(--space-md);
  margin-top: var(--space-sm);
}
.cart-summary-col .wc-block-components-totals-footer-item .wc-block-formatted-money-amount {
  font-size: 1.6em;
  color: var(--c-ember);
}

/* Proceed-to-Checkout Button */
.cart-summary-col .wc-block-cart__submit-button,
.cart-summary-col .wp-block-woocommerce-proceed-to-checkout-block .wc-block-components-button {
  background: var(--c-ember);
  color: var(--c-snow);
  border: none;
  border-radius: var(--radius-md);
  padding: var(--space-md) var(--space-lg);
  font-family: 'Inter', system-ui, sans-serif;
  font-weight: 600;
  font-size: var(--fs-body-lg);
  letter-spacing: 0.03em;
  width: 100%;
  margin-top: var(--space-md);
  transition: background var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-lift);
  box-shadow: var(--shadow-soft);
}
.cart-summary-col .wc-block-cart__submit-button:hover,
.cart-summary-col .wp-block-woocommerce-proceed-to-checkout-block .wc-block-components-button:hover {
  background: var(--c-ember-deep);
  transform: translateY(-2px);
  box-shadow: var(--shadow-lift);
}

/* Quantity selector */
.cart-section .wc-block-components-quantity-selector {
  border: 1px solid rgba(44, 50, 38, 0.2);
  border-radius: var(--radius-sm);
  background: var(--c-snow);
}
.cart-section .wc-block-components-quantity-selector__button {
  color: var(--c-forest-deep);
}

/* Remove-Link */
.cart-section .wc-block-cart-item__remove-link {
  color: var(--c-alert);
  font-size: var(--fs-ui);
}
.cart-section .wc-block-cart-item__remove-link:hover { color: var(--c-ember-deep); }

/* ---------- Cart — Sticky Summary --------------------------------------- */

.cart-summary-sticky {
  position: sticky;
  top: calc(var(--header-height) + var(--space-md));
}

/* ---------- Cart — Trust Row -------------------------------------------- */

.cart-trust-row {
  margin-top: var(--space-md);
  padding: var(--space-lg);
  background: var(--c-snow);
  border: 1px solid rgba(201, 169, 110, 0.25);
  border-radius: var(--radius-md);
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}
.cart-trust-item {
  display: flex;
  align-items: flex-start;
  gap: var(--space-md);
  color: var(--c-forest);
  font-size: var(--fs-body);
  line-height: 1.45;
}
.cart-trust-item strong { color: var(--c-forest-deep); font-weight: 600; }
.cart-trust-item__icon {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: var(--radius-pill);
  background: rgba(201, 169, 110, 0.18);
  color: var(--c-brass-deep);
}

/* ---------- Cart — Cross-Sells ------------------------------------------ */

.cart-cross-sells .section-heading {
  margin-bottom: var(--space-xl);
  letter-spacing: 0.02em;
}

/* ---------- Cart — Empty State ------------------------------------------ */

.wp-block-woocommerce-empty-cart-block {
  background: var(--c-snow);
  border: 1px solid rgba(201, 169, 110, 0.25);
  border-radius: var(--radius-md);
  padding: var(--space-2xl) var(--space-lg);
  text-align: center;
}
.empty-cart-title {
  color: var(--c-forest-deep) !important;
  margin-bottom: var(--space-md);
}

/* ---------- Cart Page Wrapper (Bone reading-mode) ----------------------- */

.page-cart,
body.page-cart {
  background: var(--c-bone);
  color: var(--c-forest);
}
.page-cart .cart-columns {
  display: flex;
  gap: var(--space-xl);
  align-items: flex-start;
}
.page-cart .cart-items-col { flex: 1 1 60%; min-width: 0; }
.page-cart .cart-summary-col { flex: 0 0 360px; }

/* ---------- Checkout Page ----------------------------------------------- */

.page-checkout,
body.page-checkout {
  background: var(--c-bone);
  color: var(--c-forest);
}

.checkout-main {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 380px;
  gap: var(--space-xl);
  align-items: start;
  max-width: var(--wide-width);
  margin-inline: auto;
  padding: var(--space-xl) var(--space-lg) var(--space-2xl);
}
.checkout-main__form { min-width: 0; }
.checkout-main__summary {
  position: sticky;
  top: calc(var(--header-height) + var(--space-md));
  background: var(--c-snow);
  border: 1px solid rgba(201, 169, 110, 0.25);
  border-radius: var(--radius-md);
  padding: var(--space-lg);
  box-shadow: var(--shadow-soft);
}
.checkout-main h1,
.checkout-main h2,
.checkout-main h3,
.checkout-main h4 { color: var(--c-forest-deep); }
.checkout-main p,
.checkout-main label,
.checkout-main li { color: var(--c-forest); }
.checkout-main a:where(:not(.wp-element-button)) {
  color: var(--c-ember);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.checkout-main a:where(:not(.wp-element-button)):hover { color: var(--c-ember-deep); }

.checkout-trust-row {
  margin-top: var(--space-lg);
  padding: var(--space-md) var(--space-lg);
  background: rgba(201, 169, 110, 0.1);
  border: 1px solid rgba(201, 169, 110, 0.28);
  border-radius: var(--radius-md);
  color: var(--c-forest);
  font-size: var(--fs-body);
}

/* ---------- PDP — .product-main (Bone-Section) ------------------------- */

.product-main {
  background: var(--c-bone);
  color: var(--c-forest);
  padding: var(--space-xl) var(--space-lg);
}
.product-main h1,
.product-main h2,
.product-main h3,
.product-main h4,
.product-main .product_title {
  color: var(--c-forest-deep);
}
.product-main p,
.product-main li,
.product-main .woocommerce-product-details__short-description,
.product-main .product_meta,
.product-main label { color: var(--c-forest); }
.product-main .price,
.product-main .woocommerce-Price-amount {
  color: var(--c-ember);
  font-family: 'Bebas Neue', system-ui, sans-serif;
  font-size: 2.25rem;
  letter-spacing: 0.02em;
}
.product-main .product_meta .sku_wrapper,
.product-main .product_meta .posted_in,
.product-main .product_meta .tagged_as {
  display: block;
  font-size: var(--fs-ui);
  color: var(--c-brass-deep);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  margin-top: var(--space-xs);
}
.product-main a:where(:not(.wp-element-button)) {
  color: var(--c-ember);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* ---------- Responsive --------------------------------------------------- */

@media (max-width: 880px) {
  .cart-columns,
  .page-cart .cart-columns {
    flex-direction: column;
  }
  .cart-items-col,
  .cart-summary-col,
  .page-cart .cart-items-col,
  .page-cart .cart-summary-col {
    flex-basis: 100% !important;
    width: 100%;
  }
  .cart-summary-sticky { position: static; }
}

@media (max-width: 768px) {
  .checkout-main {
    grid-template-columns: 1fr;
    gap: var(--space-lg);
    padding: var(--space-lg) var(--space-md) var(--space-xl);
  }
  .checkout-main__summary {
    position: static;
    order: -1;
  }
  .page-cart .cart-columns { gap: var(--space-lg); }
  .cart-summary-col .wp-block-woocommerce-cart-totals-block,
  .cart-summary-col .wp-block-woocommerce-cart-order-summary-block {
    padding: var(--space-md);
  }
  .product-main { padding: var(--space-lg) var(--space-md); }
  .product-main .price,
  .product-main .woocommerce-Price-amount { font-size: 1.75rem; }
  .checkout-main .wc-block-components-checkout-step,
  .wc-block-checkout__main .wc-block-components-checkout-step {
    padding: var(--space-md);
  }
}

/* =====================================================
   MOOD-BREAK
   ===================================================== */
.mood-break__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-lg);
  text-align: center;
  padding: var(--space-2xl) 0;
}
.mood-break__line {
  width: 60px;
  height: 1px;
  background: var(--c-brass);
  opacity: 0.6;
}
.mood-break__quote {
  margin: 0;
  padding: 0;
  border: 0;
}
.mood-break__quote p {
  font-family: 'Bebas Neue', system-ui, sans-serif;
  font-size: clamp(1.5rem, 4vw, 2.5rem);
  line-height: 1.15;
  color: var(--c-bone);
  letter-spacing: 0.03em;
  margin: 0 0 var(--space-md);
}
.mood-break__quote cite {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: var(--fs-ui);
  color: var(--c-brass);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-style: normal;
}

/* =====================================================
   KUNDENSTIMMEN
   ===================================================== */
.testimonials-grid {
  margin-top: var(--space-xl) !important;
  gap: var(--space-lg) !important;
}
.testimonial-card {
  padding: var(--space-lg) !important;
  border-radius: var(--radius-md);
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}
.testimonial-stars {
  color: var(--c-brass);
  font-size: 1.1rem;
  letter-spacing: 0.1em;
}

/* =====================================================
   UGC / FOTO EINSENDEN
   ===================================================== */
.ugc-columns {
  gap: var(--space-2xl) !important;
  align-items: center;
}
.ugc-text {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}
.ugc-placeholder-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: var(--space-sm);
  aspect-ratio: 1;
  border-radius: var(--radius-md);
  overflow: hidden;
}
.ugc-cell {
  background: var(--c-forest-deep);
  border-radius: var(--radius-sm);
  transition: opacity var(--dur-base) var(--ease-out);
}
.ugc-cell--1 { background: linear-gradient(135deg, var(--c-forest-deep), var(--c-forest)); }
.ugc-cell--2 { background: linear-gradient(135deg, var(--c-moss), var(--c-forest-deep)); opacity: 0.7; }
.ugc-cell--3 { background: linear-gradient(135deg, var(--c-forest), var(--c-abyss)); opacity: 0.85; }
.ugc-cell--4 { background: linear-gradient(135deg, var(--c-forest-deep), var(--c-moss)); opacity: 0.6; }

@media (max-width: 768px) {
  .ugc-columns { flex-direction: column !important; }
  .ugc-visual { display: none; }
}

/* =====================================================
   TERMINE-STRIP
   ===================================================== */
.termine-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--space-lg);
}
.termine-title {
  font-family: 'Bebas Neue', system-ui, sans-serif;
  font-size: var(--fs-h2);
  color: var(--c-bone);
  margin: 0;
  letter-spacing: 0.04em;
}
.termine-all {
  font-size: var(--fs-ui);
  color: var(--c-brass);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 600;
  text-decoration: none;
  transition: color var(--dur-fast) var(--ease-out);
}
.termine-all:hover { color: var(--c-ember); }
.termine-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-md);
}
.termine-card {
  display: flex;
  gap: var(--space-md);
  align-items: center;
  background: rgba(245, 240, 232, 0.04);
  border: 1px solid rgba(201, 169, 110, 0.2);
  border-radius: var(--radius-md);
  padding: var(--space-md) var(--space-lg);
  transition: border-color var(--dur-base) var(--ease-out),
              background var(--dur-base) var(--ease-out);
}
.termine-card:hover {
  background: rgba(245, 240, 232, 0.07);
  border-color: rgba(201, 169, 110, 0.45);
}
.termine-card__date {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 48px;
  flex-shrink: 0;
}
.termine-card__day {
  font-family: 'Bebas Neue', system-ui, sans-serif;
  font-size: 2.2rem;
  color: var(--c-ember);
  line-height: 1;
}
.termine-card__month {
  font-size: var(--fs-ui);
  color: var(--c-brass);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 600;
}
.termine-card__name {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: var(--fs-body);
  color: var(--c-bone);
  font-weight: 600;
  margin: 0 0 var(--space-xs);
}
.termine-card__loc {
  font-size: var(--fs-ui);
  color: rgba(245, 240, 232, 0.55);
  margin: 0;
  letter-spacing: 0.04em;
}
@media (max-width: 880px) {
  .termine-cards { grid-template-columns: 1fr; }
}

/* =====================================================
   SOCIAL-STRIP
   ===================================================== */
.social-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--space-lg);
}
.social-title {
  font-family: 'Bebas Neue', system-ui, sans-serif;
  font-size: var(--fs-h2);
  color: var(--c-bone);
  margin: 0;
  letter-spacing: 0.04em;
}
.social-follow {
  font-size: var(--fs-ui);
  color: var(--c-brass);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 600;
  text-decoration: none;
  border: 1px solid rgba(201, 169, 110, 0.4);
  padding: var(--space-xs) var(--space-md);
  border-radius: var(--radius-pill);
  transition: color var(--dur-fast) var(--ease-out),
              border-color var(--dur-fast) var(--ease-out),
              background var(--dur-fast) var(--ease-out);
}
.social-follow:hover {
  color: var(--c-bone);
  border-color: var(--c-ember);
  background: rgba(232, 80, 10, 0.12);
}
.social-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: var(--space-xs);
  border-radius: var(--radius-md);
  overflow: hidden;
}
.social-cell {
  aspect-ratio: 1;
  border-radius: var(--radius-sm);
  transition: opacity var(--dur-base) var(--ease-out);
}
.social-cell:hover { opacity: 0.75; cursor: pointer; }
@media (max-width: 768px) {
  .social-grid { grid-template-columns: repeat(3, 1fr); }
}
