/*!
 * cav-shop-flow.css — brand skin for cart, checkout, my-account, thankyou.
 * Briefing §3.3–3.6. Skins the classic WooCommerce shortcode output.
 */

/* shared layout width */
.woocommerce-cart .cav-flow,
.woocommerce-checkout .cav-flow,
.woocommerce-account .cav-flow{ }

/* ---- generic woo element skin within our pages ---- */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.select2-container .select2-selection{
  border:1px solid var(--cav-card-border) !important; background: var(--cav-hafer-2) !important;
  border-radius:12px !important; padding:12px 14px !important; min-height:46px;
}
.woocommerce-page .button,
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button{
  background: var(--cav-navy) !important; color:#fff !important;
  border-radius:999px !important; padding:13px 22px !important; font-weight:700 !important;
}
.woocommerce-page .button:hover,
.woocommerce button.button:hover{ background: var(--cav-navy-hover) !important; }
.woocommerce .button.cav-disabled,
#place_order.cav-disabled{ opacity:.45 !important; pointer-events:none; }

/* WooCommerce-Notices markengerecht (Login-/Reset-Fehler, Konto, Kasse): gerundete
   Karte, dezent getönt je Typ + farbiges Icon-Badge (✓ / ! / i) im Kreis links.
   Ersetzt den WC-Default (dicker Top-Balken + WC-Icon-Font). */
.woocommerce-message, .woocommerce-info, .woocommerce-error{
  position:relative;
  border:1px solid var(--cav-card-border, rgba(140,136,130,0.22)) !important;
  background:#fff !important;
  border-radius:14px !important;
  padding:15px 18px 15px 58px !important;
  margin:0 0 16px !important;
  color: var(--cav-ink, #33322E) !important;
  font-size:14.5px; line-height:1.5; font-weight:600;
  box-shadow:0 10px 26px -20px rgba(42,58,82,0.30);
  list-style:none !important;
  min-height:28px;
  display:block;
}
.woocommerce-message li, .woocommerce-info li, .woocommerce-error li{ list-style:none !important; margin:0 !important; padding:0 !important; border:0 !important; }
.woocommerce-message li::before, .woocommerce-info li::before, .woocommerce-error li::before{ display:none !important; content:none !important; }
/* farbiges Icon-Badge */
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before{
  position:absolute !important; left:16px !important; top:50% !important; transform:translateY(-50%) !important;
  width:28px !important; height:28px !important; border-radius:50% !important;
  display:flex !important; align-items:center !important; justify-content:center !important;
  color:#fff !important; font-size:16px !important; font-weight:800 !important; line-height:1 !important;
  font-family: Arial, Helvetica, sans-serif !important;
  margin:0 !important; padding:0 !important; text-indent:0 !important;
}
.woocommerce-message{ background:rgba(46,139,134,0.07) !important; border-color:rgba(46,139,134,0.28) !important; }
.woocommerce-message::before{ content:'✓' !important; background:#2E8B86 !important; }
.woocommerce-info{ background:rgba(217,164,65,0.09) !important; border-color:rgba(217,164,65,0.34) !important; }
.woocommerce-info::before{ content:'i' !important; background: var(--cav-honey, #D9A441) !important; font-family: Georgia, 'Times New Roman', serif !important; font-style:italic !important; }
.woocommerce-error{ background:rgba(180,68,46,0.06) !important; border-color:rgba(180,68,46,0.28) !important; }
.woocommerce-error::before{ content:'!' !important; background:#B4442E !important; }

/* ---- cart / checkout containers ---- */
/* Centre the 1320px flow content in the full-bleed container.
   body-prefixed + !important to beat `.cav-bleed .entry-content{margin:0 !important}`. */
body.woocommerce-cart .entry-content,
body.woocommerce-checkout .entry-content,
body.woocommerce-account .entry-content{ max-width: var(--cav-container); margin-left:auto !important; margin-right:auto !important; }

.woocommerce table.shop_table{
  border:1px solid var(--cav-card-border); border-radius: var(--cav-radius-card);
  background:#fff; box-shadow: var(--cav-shadow-card); overflow:hidden;
}
.woocommerce table.shop_table th{ font-family: var(--cav-font-head); color: var(--cav-navy); }

/* ============================================================
   KASSE (checkout) — kasse.dc.html 1:1
   ============================================================ */
body.woocommerce-checkout .entry-title,
body.woocommerce-checkout .inside-article > .entry-header{ display:none; }
/* let .cav-kasse own the width */
body.woocommerce-checkout .entry-content{ max-width:none !important; padding:0 !important; }

.cav-kasse{ max-width:1320px; margin:0 auto; padding:36px 20px 64px; }
.cav-kasse__head{ margin-bottom:24px; }
.cav-kasse__crumbs{ font-size:13px; color: var(--cav-warm, #8C8882); font-weight:700; margin-bottom:12px; }
.cav-kasse__crumbs a{ color: var(--cav-warm, #8C8882); text-decoration:none; }
.cav-kasse__crumbs a:hover{ color: var(--cav-navy, #2A3A52); }
.cav-kasse__head h1{ font-family: var(--cav-font-head, 'Fredoka'), sans-serif; font-weight:600; font-size:34px; color: var(--cav-navy, #2A3A52); margin:0; line-height:1.1; }
.cav-kasse__head p{ font-size:15px; color: var(--cav-ink-soft, #5C574F); margin:8px 0 0; }

.cav-kasse__form > .woocommerce-NoticeGroup,
.cav-kasse__form > .woocommerce-error,
.cav-kasse__form > .woocommerce-message,
.cav-kasse__form > .woocommerce-info{ margin:0 0 18px; }
.cav-kasse__grid{ display:grid; grid-template-columns:1fr 380px; gap:28px; align-items:start; }
.cav-kasse__main{ display:flex; flex-direction:column; gap:18px; min-width:0; }

/* cards */
.cav-kcard{ background:#fff; border:1px solid rgba(140,136,130,0.18); border-radius:18px; padding:24px; }
.cav-kcard__head{ display:flex; align-items:center; gap:10px; margin-bottom:16px; }
.cav-knum{ flex:none; width:28px; height:28px; border-radius:50%; background: var(--cav-navy, #2A3A52); color:#fff; font-family: var(--cav-font-head, 'Fredoka'), sans-serif; font-weight:600; font-size:14px; display:flex; align-items:center; justify-content:center; }
.cav-kcard__head h2{ font-family: var(--cav-font-head, 'Fredoka'), sans-serif; font-weight:600; font-size:19px; color: var(--cav-navy, #2A3A52); margin:0; }

/* fields */
.cav-kasse .form-row{ margin:0 0 0; padding:0; }
.cav-klabel,
.cav-kasse .form-row > label{ display:block; font-size:13px; font-weight:800; color: var(--cav-navy, #2A3A52); margin-bottom:6px; }
.cav-kasse .form-row .required{ display:none; }
.cav-kasse .form-row input.input-text,
.cav-roinput{
  width:100%; border:1.5px solid rgba(140,136,130,0.25) !important; background:#F7F4EC !important;
  border-radius:11px !important; padding:13px 14px !important; font-family:inherit; font-size:15px !important;
  color: var(--cav-ink, #33322E); outline:none; min-height:auto !important; box-shadow:none !important;
  transition:border-color .15s ease;
}
.cav-kasse .form-row input.input-text:focus,
.cav-roinput:focus{ border-color: var(--cav-navy, #2A3A52) !important; }
.cav-two{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.cav-two .form-row{ width:100%; float:none; }
.cav-country{ margin-top:14px; }
.cav-roinput{ cursor:default; }
.cav-khint{ font-size:12.5px; color: var(--cav-warm, #8C8882); margin:8px 0 0; }
.cav-khint--ico{ display:flex; align-items:center; gap:7px; margin-top:10px; }

/* payment (methods only) */
/* keine lavendelfarbene WC-Box */
.woocommerce-checkout-payment, .cav-kpay, #payment{ background:transparent !important; }
.cav-kpay .payment_methods{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
.cav-kpay .wc_payment_method{ display:flex; flex-wrap:wrap; align-items:center; border:1.5px solid rgba(140,136,130,0.28); border-radius:14px; background:#fff; overflow:hidden; transition:border-color .15s ease, background .15s ease; }
.cav-kpay .wc_payment_method input[type="radio"]{ order:0; flex:none; -webkit-appearance:none; appearance:none; width:22px; height:22px; border:2px solid rgba(140,136,130,0.55); border-radius:50%; background:#fff; margin:0 14px 0 26px !important; cursor:pointer; position:relative; transition:border-color .15s ease; }
.cav-kpay .wc_payment_method input[type="radio"]:checked{ border-color: var(--cav-navy, #2A3A52); }
.cav-kpay .wc_payment_method input[type="radio"]:checked::after{ content:''; position:absolute; top:3px; left:3px; right:3px; bottom:3px; border-radius:50%; background: var(--cav-navy, #2A3A52); }
.cav-kpay .wc_payment_method > label{ order:1; flex:1 1 auto; min-width:0; display:flex !important; align-items:center; gap:12px; padding:16px 16px 16px 12px; margin:0; cursor:pointer; font-weight:800; font-size:15px; color: var(--cav-navy, #2A3A52); }
.cav-kpay .wc_payment_method > label img{ margin-left:auto; max-height:24px; width:auto; }
.cav-kpay .wc_payment_method .payment_box{ order:10; flex:0 0 100%; background:#F7F4EC; margin:0; padding:14px 16px 16px; font-size:13px; color: var(--cav-ink-soft, #5C574F); border-top:1px solid rgba(140,136,130,0.18); }
.cav-kpay .wc_payment_method:has(input[type="radio"]:checked){ border:2px solid var(--cav-navy, #2A3A52); background:#F7F4EC; }
.cav-kpay .payment_box p{ margin:0 0 6px; }
.cav-kpay .payment_box::before{ display:none; }

/* Bestellung bezahlen (order-pay) */
.cav-orderpay{ max-width:720px; }
.cav-orderpay .cav-kasse__head h1{ font-size:30px; }
.cav-orderpay__sub{ font-size:14.5px; color: var(--cav-ink-2,#5C574F); margin:4px 0 0; }
.cav-orderpay__form{ display:flex; flex-direction:column; gap:18px; margin-top:22px; }
.cav-orderpay .cav-place-order{ margin-top:16px; }

/* consent card — own checkboxes + Germanized legal checkboxes */
.cav-consent{ display:flex; flex-direction:column; gap:14px; margin:0; }
.cav-consent__row,
.cav-kcard--consent .form-row{ display:flex; gap:11px; align-items:flex-start; font-size:13.5px; color: var(--cav-ink-soft, #5C574F); line-height:1.5; cursor:pointer; margin:0; padding:0; }
.cav-kcard--consent .wc-gzd-checkbox-placeholder + .wc-gzd-checkbox-placeholder .form-row,
.cav-kcard--consent .wc-gzd-checkbox-placeholder ~ .wc-gzd-checkbox-placeholder{ margin-top:14px; }
.cav-kcard--consent .form-row label,
.cav-kcard--consent label.checkbox{ display:flex !important; gap:11px; align-items:flex-start; margin:0; font-weight:400; font-size:13.5px; color: var(--cav-ink-soft, #5C574F); line-height:1.5; cursor:pointer; }
.cav-consent__row input,
.cav-kcard--consent input[type="checkbox"]{ margin:2px 0 0 !important; width:17px; height:17px; accent-color: var(--cav-navy, #2A3A52); flex:none; }
.cav-consent__row a,
.cav-kcard--consent a{ color: var(--cav-navy, #2A3A52); font-weight:700; text-decoration:underline; }
.cav-consent__row strong,
.cav-kcard--consent strong{ color: var(--cav-ink, #33322E); }
.cav-kcard--consent .wc-gzd-checkbox-placeholder{ display:block; }
.cav-kcard--consent .required{ display:none; }

/* right summary */
.cav-kasse__side{ min-width:0; position:sticky; top:96px; align-self:start; }
.cav-ksum{ background:#fff; border:1px solid rgba(140,136,130,0.18); border-radius:18px; padding:24px; }
.cav-ksum__head{ font-family: var(--cav-font-head, 'Fredoka'), sans-serif; font-weight:600; font-size:19px; color: var(--cav-navy, #2A3A52); margin-bottom:16px; }
.cav-ksum__table{ width:100%; border:0 !important; border-collapse:collapse; background:transparent !important; box-shadow:none !important; margin:0; }
.cav-ksum__table tbody{ display:block; max-height:230px; overflow-y:auto; margin-bottom:14px; }
.cav-ksum__row{ display:flex; align-items:center; gap:12px; }
.cav-ksum__row td{ border:0 !important; padding:6px 0 !important; }
.cav-ksum__pn{ display:flex; align-items:center; gap:12px; flex:1; min-width:0; }
.cav-ksum__cover{ flex:none; width:42px; aspect-ratio:63/89; object-fit:cover; border-radius:7px; background:#EDE8DD; }
.cav-ksum__info{ display:flex; flex-direction:column; min-width:0; }
.cav-ksum__title{ font-weight:700; font-size:14px; color: var(--cav-navy, #2A3A52); line-height:1.2; }
.cav-ksum__qty{ color: var(--cav-warm, #8C8882); font-weight:700; }
.cav-ksum__pdf{ font-size:11.5px; color: var(--cav-teal, #2E8B86); font-weight:700; margin-top:2px; }
.cav-ksum__price{ font-weight:800; font-size:14px; color: var(--cav-ink, #33322E); white-space:nowrap; text-align:right; }
.cav-ksum__table tfoot{ display:block; border-top:1px solid #F0ECE2; padding-top:14px; }
.cav-ksum__line{ display:flex; justify-content:space-between; }
.cav-ksum__line th{ font-weight:400; text-align:left; font-size:14.5px; color: var(--cav-ink-soft, #5C574F); padding:4px 0 !important; border:0 !important; }
.cav-ksum__line td{ font-weight:700; font-size:14.5px; color: var(--cav-ink, #33322E); padding:4px 0 !important; border:0 !important; text-align:right; }
.cav-ksum__line--ship .cav-ksum__free,
.cav-ksum__line--ship td{ color: var(--cav-teal, #2E8B86) !important; font-weight:700; }
.cav-ksum__line--tax th, .cav-ksum__line--tax td{ font-size:12.5px !important; color: var(--cav-warm, #8C8882) !important; font-weight:400 !important; }
.cav-ksum__total{ display:flex; justify-content:space-between; align-items:baseline; border-top:1px solid #F0ECE2; margin-top:12px; padding-top:12px; }
.cav-ksum__total th{ font-weight:800; font-size:16px; color: var(--cav-ink, #33322E); border:0 !important; padding:0 !important; text-align:left; }
.cav-ksum__total td{ font-family: var(--cav-font-head, 'Fredoka'), sans-serif; font-weight:600; font-size:26px; color: var(--cav-ink, #33322E); border:0 !important; padding:0 !important; text-align:right; }
.cav-ksum__total td .woocommerce-Price-amount{ font-weight:600; }

/* pay button */
.cav-place-order{ margin-top:18px; }
.cav-place-order .woocommerce-terms-and-conditions-wrapper{ margin-bottom:12px; }
.cav-kbuy{ width:100%; border:none !important; border-radius:999px !important; font-family:inherit; font-weight:800 !important; font-size:16px !important; padding:15px !important; background: var(--cav-navy, #2A3A52) !important; color:#fff !important; cursor:pointer; transition:background .15s ease, transform .14s ease; }
.cav-kbuy:hover{ background: var(--cav-navy-hover, #22304a) !important; }
.cav-kbuy:active{ transform:scale(.98); }
.cav-kbuy__in{ display:inline-flex; align-items:center; justify-content:center; gap:9px; }
.cav-kbuy__price .woocommerce-Price-amount{ color:#fff; font-weight:800; }
.cav-kbuy.cav-disabled,
.cav-kbuy:disabled{ background:#EDE8DD !important; color:#8C8882 !important; cursor:not-allowed; pointer-events:none; opacity:1 !important; }
.cav-kbuy:disabled .woocommerce-Price-amount{ color:#8C8882; }
.cav-ksum__trust{ display:flex; align-items:center; justify-content:center; gap:8px; margin-top:13px; font-size:12px; color: var(--cav-warm, #8C8882); font-weight:700; }

/* Mobile: fixe Bezahl-Leiste (Desktop-Sidebar bleibt sticky) */
.cav-kbuy-mobile{ display:none; }
@media (max-width:880px){
  .cav-kasse__grid{ grid-template-columns:1fr; }
  .cav-kasse__side{ position:static; }
  .cav-kasse{ padding-bottom:90px; }
  .cav-kbuy-mobile:not([hidden]){
    display:flex; align-items:center; gap:12px;
    position:fixed; left:0; right:0; bottom:0; z-index:9000;
    background:#fff; border-top:1px solid rgba(140,136,130,0.25);
    padding:11px 15px calc(11px + env(safe-area-inset-bottom));
    box-shadow:0 -10px 26px -16px rgba(42,58,82,0.5);
  }
  .cav-kbuy-mobile__total{ display:flex; flex-direction:column; line-height:1.12; flex:none; }
  .cav-kbuy-mobile__total span{ font-size:11px; color:var(--cav-warm,#8C8882); font-weight:700; }
  .cav-kbuy-mobile__total strong{ font-family:var(--cav-font-head,'Fredoka'),sans-serif; font-weight:600; font-size:18px; color:var(--cav-navy,#2A3A52); }
  .cav-kbuy-mobile__btn{ flex:1; text-align:center; padding:13px 16px; white-space:nowrap; }
}
@media (max-width:520px){
  .cav-two{ grid-template-columns:1fr; }
  .cav-kasse__head h1{ font-size:28px; }
}

/* ============================================================
   WARENKORB (cart page) — warenkorb.dc.html 1:1
   ============================================================ */
body.woocommerce-cart .entry-title,
body.woocommerce-cart .inside-article > .entry-header{ display:none; }
body.woocommerce-cart .entry-content{ max-width:none !important; padding:0 !important; }

.cav-wk{ max-width:1320px; margin:0 auto; padding:40px 20px 64px; }
.cav-wk__head h1{ font-family:var(--cav-font-head,'Fredoka'),sans-serif; font-weight:600; font-size:38px; color:var(--cav-navy,#2A3A52); margin:0; line-height:1.1; }
.cav-wk__head p{ font-size:15.5px; color:var(--cav-ink-soft,#5C574F); margin:8px 0 0; }
.cav-wk__grid{ display:grid; grid-template-columns:1fr 360px; gap:28px; align-items:start; margin-top:24px; }
.cav-wk__items{ background:#fff; border:1px solid rgba(140,136,130,0.18); border-radius:18px; padding:8px 22px; min-width:0; }
.cav-wk__row{ display:flex; gap:16px; align-items:center; padding:18px 0; border-bottom:1px solid #F0ECE2; }
.cav-wk__cover{ flex:none; display:block; width:62px; }
.cav-wk__cover img{ width:62px; aspect-ratio:3/4; object-fit:cover; border-radius:9px; background:#EDE8DD; display:block; }
.cav-wk__info{ flex:1; min-width:0; }
.cav-wk__title{ font-family:var(--cav-font-head,'Fredoka'),sans-serif; font-weight:500; font-size:17px; color:var(--cav-navy,#2A3A52); line-height:1.2; }
.cav-wk__title a{ color:inherit; text-decoration:none; }
.cav-wk__qty{ color:var(--cav-warm,#8C8882); font-weight:600; }
.cav-wk__pdf{ display:inline-flex; align-items:center; gap:6px; margin-top:6px; font-size:12px; font-weight:700; color:var(--cav-teal,#2E8B86); background:rgba(46,139,134,0.12); padding:3px 10px; border-radius:999px; white-space:nowrap; }
.cav-wk__price{ font-weight:800; font-size:17px; color:var(--cav-ink,#33322E); white-space:nowrap; }
.cav-wk__remove{ flex:none; display:flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:50%; background:#F4F1E9; color:var(--cav-warm,#8C8882); font-size:18px; line-height:1; text-decoration:none; transition:color .14s, background .14s; }
.cav-wk__remove:hover{ color:#8C4A5C; background:#fff; }
.cav-wk__back{ display:inline-block; margin:18px 0; font-weight:800; color:var(--cav-navy,#2A3A52); font-size:14px; text-decoration:none; }

.cav-wk__sumwrap{ min-width:0; }
.cav-wk__sum{ background:#fff; border:1px solid rgba(140,136,130,0.18); border-radius:18px; padding:24px; position:sticky; top:96px; }
.cav-wk__sumhead{ font-family:var(--cav-font-head,'Fredoka'),sans-serif; font-weight:600; font-size:20px; color:var(--cav-navy,#2A3A52); margin-bottom:16px; }
.cav-wk__line{ display:flex; justify-content:space-between; font-size:15px; color:var(--cav-ink-soft,#5C574F); padding:6px 0; }
.cav-wk__line .v{ font-weight:700; color:var(--cav-ink,#33322E); }
.cav-wk__line .free{ color:var(--cav-teal,#2E8B86) !important; }
.cav-wk__line--tax{ font-size:13px; color:var(--cav-warm,#8C8882); }
.cav-wk__line--tax .v{ color:var(--cav-warm,#8C8882); font-weight:400; }
.cav-wk__rule{ border-top:1px solid #F0ECE2; margin:12px 0; }
.cav-wk__total{ display:flex; justify-content:space-between; align-items:baseline; }
.cav-wk__total span:first-child{ font-weight:800; font-size:16px; color:var(--cav-ink,#33322E); }
.cav-wk__total .v{ font-family:var(--cav-font-head,'Fredoka'),sans-serif; font-weight:600; font-size:28px; color:var(--cav-ink,#33322E); }
.cav-wk__total .v .woocommerce-Price-amount{ font-weight:600; }
.cav-wk__checkout{ margin-top:18px; width:100%; background:var(--cav-navy,#2A3A52); color:#fff; font-weight:800; font-size:17px; padding:15px; border-radius:999px; display:flex; align-items:center; justify-content:center; gap:8px; text-decoration:none; transition:background .15s; box-sizing:border-box; }
.cav-wk__checkout:hover{ background:var(--cav-navy-hover,#22304a); color:#fff; }
.cav-wk__trust{ display:flex; align-items:center; justify-content:center; gap:14px; margin-top:14px; font-size:12.5px; color:var(--cav-warm,#8C8882); font-weight:600; }
.cav-wk__gratis{ max-width:1320px; margin:48px auto 0; padding:0 20px; }

/* empty cart */
.cav-wk__empty{ background:#fff; border:1px solid rgba(140,136,130,0.18); border-radius:18px; padding:56px 24px; text-align:center; margin-top:24px; }
.cav-wk__empty-ic{ width:72px; height:72px; border-radius:50%; background:var(--cav-hafer,#F4F1E9); display:flex; align-items:center; justify-content:center; margin:0 auto 18px; color:var(--cav-warm,#8C8882); }
.cav-wk__empty-ic svg{ width:34px; height:34px; }
.cav-wk__empty-t{ font-family:var(--cav-font-head,'Fredoka'),sans-serif; font-weight:600; font-size:22px; color:var(--cav-navy,#2A3A52); }
.cav-wk__empty p{ font-size:15px; line-height:1.6; color:var(--cav-ink-soft,#5C574F); margin:8px auto 22px; max-width:430px; }
.cav-wk__empty .cav-wk__checkout{ display:inline-flex; width:auto; margin-top:0; padding:14px 30px; }

@media (max-width:980px){
  .cav-wk__grid{ grid-template-columns:1fr; }
  .cav-wk__sum{ position:static; }
}
@media (max-width:520px){
  .cav-wk__head h1{ font-size:30px; }
  .cav-wk__cover, .cav-wk__cover img{ width:52px; }
}

/* ---- thankyou ---- */
.cav-thankyou{ max-width: 900px; margin:8px auto 0; }

/* ===== Danke-Seite 1:1 zu danke.dc.html ===== */
.cav-ty-hero{ text-align:center; padding:40px 20px 4px; }
.cav-ty-check{ width:74px; height:74px; border-radius:50%; background: var(--cav-teal, #2E8B86); color:#fff; display:flex; align-items:center; justify-content:center; margin:0 auto 20px; box-shadow:0 18px 40px -16px rgba(46,139,134,0.55); animation: cav-pop .5s var(--cav-ease-bounce, cubic-bezier(.4,.8,.3,1)) both; }
.cav-ty-check--fail{ background:#B4442E; box-shadow:0 18px 40px -16px rgba(180,68,46,0.5); }
.cav-ty-check--wait{ background: var(--cav-honey, #D9A441); box-shadow:0 18px 40px -16px rgba(217,164,65,0.5); animation:none; }
.cav-ty-spin{ animation: cav-spin .8s linear infinite; transform-origin:center; }
@keyframes cav-spin{ to{ transform:rotate(360deg); } }
.cav-ty-eyebrow{ font-size:13px; font-weight:800; letter-spacing:1.2px; text-transform:uppercase; color: var(--cav-honey, #D9A441); }
.cav-ty-eyebrow--fail{ color:#B4442E; }
.cav-ty-title{ font-family: var(--cav-font-head,'Fredoka'),sans-serif; font-weight:600; font-size:34px; color: var(--cav-navy,#2A3A52); margin:10px 0 0; line-height:1.1; }
.cav-ty-sub{ font-size:16px; color: var(--cav-ink-2,#5C574F); margin:14px auto 0; max-width:540px; line-height:1.55; }
.cav-ty-sub strong{ color: var(--cav-ink,#33322E); }
.cav-ty-meta{ display:inline-flex; align-items:center; gap:13px; flex-wrap:wrap; justify-content:center; margin-top:18px; font-size:13.5px; color: var(--cav-warm,#8C8882); font-weight:700; }
.cav-ty-meta strong{ color: var(--cav-navy,#2A3A52); }
.cav-ty-meta a{ color: var(--cav-navy,#2A3A52); text-decoration:underline; }
.cav-ty-dot{ width:5px; height:5px; border-radius:50%; background:#C9C4BB; display:inline-block; }
.cav-ty-actions{ margin-top:22px; }

.cav-ty-panel{ margin-top:28px; padding:26px 28px; }
.cav-ty-panelhead{ margin-bottom:18px; }
.cav-ty-panelhead h2{ font-family: var(--cav-font-head,'Fredoka'),sans-serif; font-weight:600; font-size:21px; color: var(--cav-navy,#2A3A52); margin:0; }

.cav-ty-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap:16px; }
.cav-ty-dl{ background:#fff; border:1px solid rgba(140,136,130,0.16); border-radius:14px; overflow:hidden; box-shadow:0 12px 30px -22px rgba(42,58,82,0.3); }
.cav-ty-dl__cover{ background:#EDE8DD; }
.cav-ty-dl__cover img{ width:100%; aspect-ratio:63/89; object-fit:cover; display:block; }
.cav-ty-dl__body{ padding:14px 15px 16px; }
.cav-ty-dl__t{ font-family: var(--cav-font-head,'Fredoka'),sans-serif; font-weight:600; font-size:15.5px; color: var(--cav-navy,#2A3A52); line-height:1.2; }
.cav-ty-dl__meta{ font-size:12px; color: var(--cav-warm,#8C8882); margin-top:3px; }
.cav-ty-dl__btn{ width:100%; margin-top:14px; display:flex; align-items:center; justify-content:center; gap:9px; background: var(--cav-navy,#2A3A52); color:#fff !important; border:none; cursor:pointer; font-family:inherit; font-weight:800; font-size:15.5px; padding:15px 18px; border-radius:13px; text-decoration:none; box-shadow:0 14px 26px -12px rgba(42,58,82,0.55); transition:transform .16s ease, box-shadow .16s ease, background .16s ease; }
.cav-ty-dl__btn:hover{ background: var(--cav-navy-hover,#22304a); transform:translateY(-2px); box-shadow:0 20px 34px -12px rgba(42,58,82,0.62); }
.cav-ty-dl__btn svg{ width:20px; height:20px; flex:none; }
.cav-ty-grid.is-single{ grid-template-columns:1fr; }
.cav-ty-grid.is-single .cav-ty-dl{ display:flex; align-items:center; gap:16px; padding:14px; }
.cav-ty-grid.is-single .cav-ty-dl__cover{ flex:none; width:60px; border-radius:9px; overflow:hidden; }
.cav-ty-grid.is-single .cav-ty-dl__cover img{ width:60px; height:84px; aspect-ratio:auto; }
.cav-ty-grid.is-single .cav-ty-dl__body{ flex:1; min-width:0; padding:0; }
.cav-ty-grid.is-single .cav-ty-dl__btn{ width:auto; display:inline-flex; margin-top:12px; padding:14px 24px; font-size:15.5px; }

.cav-ty-hint{ display:flex; align-items:center; gap:11px; margin-top:20px; padding:14px 16px; background: var(--cav-hafer,#F4F1E9); border-radius:13px; }
.cav-ty-hint svg{ flex:none; color: var(--cav-navy,#2A3A52); }
.cav-ty-hint p{ margin:0; font-size:13.5px; color: var(--cav-ink-2,#5C574F); line-height:1.5; }

.cav-ty-next{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:20px; }
.cav-ty-nextcard{ display:flex; align-items:center; gap:16px; background:#fff; border:1px solid var(--cav-card-border, rgba(140,136,130,0.18)); border-radius:16px; padding:20px 22px; text-decoration:none; transition:border-color .15s ease, transform .15s ease; }
.cav-ty-nextcard:hover{ border-color: var(--cav-navy,#2A3A52); transform:translateY(-2px); }
.cav-ty-nextcard__ic{ flex:none; width:46px; height:46px; border-radius:13px; background: var(--cav-hafer,#F4F1E9); display:flex; align-items:center; justify-content:center; color: var(--cav-navy,#2A3A52); }
.cav-ty-nextcard__tx{ flex:1; display:flex; flex-direction:column; min-width:0; }
.cav-ty-nextcard__tx strong{ font-family: var(--cav-font-head,'Fredoka'),sans-serif; font-weight:600; font-size:16.5px; color: var(--cav-navy,#2A3A52); }
.cav-ty-nextcard__tx small{ font-size:13px; color: var(--cav-ink-2,#5C574F); margin-top:2px; }
.cav-ty-nextcard > svg:last-child{ flex:none; color: var(--cav-navy,#2A3A52); }

.cav-ty-claim{ margin-top:20px; text-align:center; padding:34px 30px 36px; }
.cav-ty-claim__ic{ display:inline-flex; align-items:center; justify-content:center; width:54px; height:54px; border-radius:15px; background: var(--cav-hafer,#F4F1E9); color: var(--cav-navy,#2A3A52); margin-bottom:14px; }
.cav-ty-claim h2{ font-family: var(--cav-font-head,'Fredoka'),sans-serif; font-weight:600; font-size:21px; color: var(--cav-navy,#2A3A52); margin:8px 0 0; }
.cav-ty-claimtext{ font-size:15px; color: var(--cav-ink-2,#5C574F); line-height:1.55; margin:8px auto 0; max-width:520px; }
.cav-ty-claimtext strong{ color: var(--cav-ink,#33322E); }
.cav-ty-claimbtns{ display:flex; gap:12px; flex-wrap:wrap; margin-top:22px; justify-content:center; }
.cav-ty-claimmsg{ margin:18px auto 0; max-width:520px; font-weight:700; color: var(--cav-navy,#2A3A52); }
.cav-ty-claimmsg.is-err{ color:#B4442E; }
.cav-ty-claimconsent{ display:inline-flex; align-items:flex-start; gap:9px; text-align:left; margin:20px auto 0; max-width:440px; font-size:13px; color: var(--cav-ink-2,#5C574F); line-height:1.5; cursor:pointer; }
.cav-ty-claimconsent input{ margin-top:2px; width:16px; height:16px; accent-color: var(--cav-navy,#2A3A52); flex:none; }
.cav-ty-claimconsent a{ color: var(--cav-navy,#2A3A52); font-weight:700; text-decoration:underline; }

@media (max-width: 680px){
  .cav-ty-next{ grid-template-columns:1fr; }
  .cav-ty-grid:not(.is-single){ grid-template-columns:1fr 1fr !important; }
}
@media (max-width: 460px){
  .cav-ty-grid:not(.is-single){ grid-template-columns:1fr !important; }
  .cav-ty-title{ font-size:27px; }
}

/* Konto → Meine Downloads: Karten bleiben einspaltig (nicht die Danke-Seite) */
.cav-dlgrid{ display:grid; grid-template-columns: 1fr; gap:12px; margin-top:8px; }
.cav-dlcard{ display:flex; gap:16px; align-items:center; padding:16px; }
.cav-dlcard img{ width:56px; height:78px; object-fit:cover; border-radius:8px; flex:none; }
.cav-dlcard .t{ font-family: var(--cav-font-head); color: var(--cav-navy); }

/* ---- my account ---- */
/* Custom 2-col grid lives on .cav-konto-grid (my-account.php); neutralise WC's own layout. */
.woocommerce-account .woocommerce{ display:block; }
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content{ width:auto !important; float:none !important; margin:0 !important; }
.cav-konto-grid{ max-width:1320px; margin:26px auto 0; padding:0 20px 40px; display:grid; grid-template-columns:248px minmax(0,1fr); gap:28px; align-items:start; }
.cav-konto-side{ position:sticky; top:96px; align-self:start; }
.cav-konto-tab{ background:transparent; color:#5C574F; transition:background .14s ease, color .14s ease; }
.cav-konto-tab:hover{ background:#F4F1E9; color:#2A3A52; }
.cav-konto-tab.is-active{ background:#2A3A52; color:#fff; }
.cav-konto-badge{ background:#F4F1E9; color:#2A3A52; }
.cav-konto-tab.is-active .cav-konto-badge{ background:rgba(255,255,255,.2); color:#fff; }
.cav-konto-logout{ transition:border-color .14s ease, background .14s ease; }
.cav-konto-logout:hover{ border-color:#8C4A5C; background:#fff; }
.ka-hero-cta{ transition:background .14s ease; }
.ka-hero-cta:hover{ background:#EDE8DD; }
/* Content = white card by default (Konto-Daten, Bestellungen, Downloads sit in a card)… */
.woocommerce-account .woocommerce-MyAccount-content{ background:#fff; border:1px solid var(--cav-card-border); border-radius: var(--cav-radius-card); box-shadow: var(--cav-shadow-card); padding:26px; min-width:0; }
/* …except the Übersicht, which has its own cards (tiles, band, recent) on the hafer bg. */
body.woocommerce-dashboard .woocommerce-MyAccount-content{ background:transparent; border:0; box-shadow:none; padding:0; }
.cav-account-hero{ background:#fff; border:1px solid var(--cav-card-border); border-radius: var(--cav-radius-card); box-shadow: var(--cav-shadow-card); padding:22px; display:flex; gap:16px; align-items:center; margin-bottom:22px; position:relative; overflow:hidden; }
.cav-account-hero::after{ content:""; position:absolute; right:-40px; top:-40px; width:160px; height:160px; border-radius:50%; background: radial-gradient(circle, rgba(217,164,65,.18), transparent 70%); }
.cav-account-hero__avatar{ width:58px; height:58px; border-radius:50%; background: var(--cav-navy); color:#fff; display:flex; align-items:center; justify-content:center; font-family: var(--cav-font-head); font-weight:700; font-size:22px; }
.cav-account-tiles{ display:grid; grid-template-columns: repeat(3,1fr); gap:14px; margin-bottom:20px; }
.cav-account-tile{ background: var(--cav-hafer-2); border-radius:16px; padding:16px; text-align:center; }
.cav-account-tile b{ display:block; font-family: var(--cav-font-head); font-size:26px; color: var(--cav-navy); }
.woocommerce-account a.logout, .woocommerce-MyAccount-navigation li--customer-logout a{ color: var(--cav-berry) !important; }

/* Konto: Zurück-Link auf Unterseiten */
.cav-konto-back{ display:inline-flex; align-items:center; gap:7px; font-family:inherit; font-weight:800; font-size:13.5px; color: var(--cav-meta-text); text-decoration:none; margin-bottom:18px; }
.cav-konto-back:hover{ color: var(--cav-navy); }
/* Konto: freundlicher Leer-Zustand (statt WC-Standard-Notice) */
.cav-empty{ text-align:center; padding:34px 20px 30px; }
.cav-empty__ic{ font-size:46px; line-height:1; }
.cav-empty__h{ font-family: var(--cav-font-head); font-weight:600; font-size:21px; color: var(--cav-navy); margin:10px 0 6px; }
.cav-empty__p{ color: var(--cav-ink-2); font-size:15px; line-height:1.55; max-width:430px; margin:0 auto 20px; }
/* Konto: Rechnung-Download + Vorkasse-Hinweis */
.cav-invoice-dl{ margin:16px 0 0; }
.cav-invoice-note{ margin:14px 0 0; color: var(--cav-meta-text); font-size:14px; }
/* Bestell-Aktionen (Anzeigen/Bezahlen) */
.cav-konto-oaction{ display:inline-block; margin:2px 4px 2px 0; padding:8px 15px !important; font-size:13px !important; }
.cav-btn-ghost{ background:#fff; border:1.5px solid rgba(140,136,130,0.4); color: var(--cav-navy); }
.cav-btn-ghost:hover{ background: var(--cav-navy); color:#fff; border-color: var(--cav-navy); }
/* Konto: Bestellungen als Karten (statt Tabelle) */
.cav-orders-list{ display:flex; flex-direction:column; gap:12px; }
.cav-order-card{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; background: var(--cav-hafer-2); border:1px solid var(--cav-card-border); border-radius:14px; padding:15px 18px; }
.cav-order-card__num{ font-family: var(--cav-font-head); font-weight:600; font-size:16.5px; color: var(--cav-navy); }
.cav-order-card__num a{ color:inherit; text-decoration:none; }
.cav-order-card__num a:hover{ text-decoration:underline; }
.cav-order-card__meta{ font-size:13.5px; color: var(--cav-ink-2); margin-top:3px; }
.cav-order-card__right{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.cav-order-card__actions{ display:flex; gap:8px; flex-wrap:wrap; }
.cav-order-status{ font-size:12.5px; font-weight:800; padding:5px 12px; border-radius:999px; white-space:nowrap; background: rgba(140,136,130,.16); color:#5C574F; }
.cav-order-status--on-hold, .cav-order-status--pending{ background: rgba(217,164,65,.18); color:#8a6113; }
.cav-order-status--processing, .cav-order-status--completed{ background: rgba(46,139,134,.15); color:#1f6d68; }
.cav-order-status--cancelled, .cav-order-status--failed, .cav-order-status--refunded{ background: rgba(140,74,92,.14); color:#8C4A5C; }
@media(max-width:560px){ .cav-order-card{ flex-direction:column; align-items:flex-start; gap:12px; } .cav-order-card__right{ width:100%; justify-content:space-between; } }

/* Konto: Bestellansicht (view-order) */
.cav-vieworder__status{ font-size:15px; color: var(--cav-ink-2,#5C574F); margin:0 0 6px; }
.cav-vieworder__h{ font-family: var(--cav-font-head,'Fredoka'),sans-serif; font-weight:600; font-size:19px; color: var(--cav-navy,#2A3A52); margin:26px 0 12px; }
.cav-note{ background: rgba(217,164,65,.12); border:1px solid rgba(217,164,65,.4); border-radius:12px; padding:12px 16px; font-size:14px; line-height:1.5; color:#7a5a1e; margin:6px 0 0; }
.cav-vieworder__items{ background:#fff; border:1px solid var(--cav-card-border); border-radius:14px; padding:4px 18px; }
.cav-vieworder__row{ display:flex; justify-content:space-between; gap:16px; padding:13px 0; border-bottom:1px solid #F0ECE2; font-size:15px; color: var(--cav-ink,#33322E); }
.cav-vieworder__qty{ color: var(--cav-warm,#8C8882); }
.cav-vieworder__price{ font-weight:700; white-space:nowrap; }
.cav-vieworder__row--total{ font-family: var(--cav-font-head,'Fredoka'),sans-serif; font-weight:700; font-size:17px; color: var(--cav-navy,#2A3A52); border-bottom:0; }
.cav-vieworder__pay{ font-size:13px; color: var(--cav-warm,#8C8882); padding:0 0 12px; }
.cav-vieworder__actions{ display:flex; gap:12px; flex-wrap:wrap; margin-top:20px; }

/* Konto: gebrandete Login/Register-Seite (form-login) */
.cav-auth-page{ display:grid; grid-template-columns:1fr; gap:20px; max-width:520px; margin:8px auto 0; }
.cav-auth-page--two{ max-width:920px; grid-template-columns:1fr 1fr; }
.cav-auth-card{ background:#fff; border:1px solid var(--cav-card-border); border-radius:18px; padding:26px 24px; box-shadow:0 14px 34px -28px rgba(42,58,82,.3); }
.cav-auth-card__h{ font-family:var(--cav-font-head,'Fredoka'),sans-serif; font-weight:600; font-size:22px; color:var(--cav-navy,#2A3A52); margin:0 0 4px; }
.cav-auth-card__p{ font-size:14.5px; color:var(--cav-ink-2,#5C574F); margin:0 0 18px; }
.cav-auth-card .cav-flabel{ display:block; font-size:13px; font-weight:800; color:var(--cav-navy,#2A3A52); margin:14px 0 6px; }
/* Feld-Box + randloses Input + Fokus-Ring kommen global aus cav-ui.css (.cav-ifield). */
.cav-auth-row{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin:14px 0 16px; }
.cav-check--sm{ font-size:13.5px; color:var(--cav-ink-2,#5C574F); display:inline-flex; align-items:center; gap:7px; }
.cav-auth-hint{ font-size:13px; color:var(--cav-warm,#8C8882); margin:6px 0 16px; }
.cav-auth-page .cav-forgot{ font-size:13.5px; }
.cav-auth-page .cav-forgot a{ color:var(--cav-navy,#2A3A52); font-weight:700; }
@media(max-width:760px){ .cav-auth-page--two{ grid-template-columns:1fr; max-width:520px; } }

/* Zahlbox (Mollie-Kartenformular) auf Marken-Ton statt WC-Lavendel */
.cav-kasse .payment_box, .cav-kpay .payment_box{ background:#F7F4EC !important; }
.cav-kasse .payment_box::before, .cav-kpay .payment_box::before{ border:1em solid #F7F4EC !important; border-right-color:transparent !important; border-left-color:transparent !important; border-top-color:transparent !important; }
.cav-kasse .mollie-components{ padding:2px 0; }
.cav-kasse .mollie-component-label{ display:block; font-size:12.5px; font-weight:800; color: var(--cav-navy,#2A3A52); margin:12px 0 6px; }
.cav-kasse .mollie-component{ background:#fff !important; border:1.5px solid rgba(140,136,130,.3) !important; border-radius:11px !important; padding:12px 14px !important; box-shadow:none !important; }
.cav-kasse .mollie-component.mollie-component--is-focused{ border-color: var(--cav-navy,#2A3A52) !important; }
.cav-kasse .payment_box .mollie-components + p, .cav-kasse .payment_box small{ color: var(--cav-warm,#8C8882); }

@media (max-width: 900px){
  .cav-konto-grid{ grid-template-columns: 1fr; }
  .cav-konto-side{ position:static; }
  .cav-account-tiles{ grid-template-columns: 1fr 1fr; }
}
/* Konto greeting hero (my-account.php) + dashboard hero: stack on phones so the
   name/e-mail column doesn't get crushed to one character per line. */
@media (max-width: 600px){
  .cav-konto-hero{ flex-direction:column !important; align-items:flex-start !important; gap:14px !important; padding:22px 20px !important; }
  .cav-konto-hero .ka-hero-cta{ align-self:stretch; justify-content:center; }
  .cav-account-hero{ flex-direction:column; align-items:flex-start; text-align:left; }
}
@media (max-width: 560px){ .cav-account-tiles{ grid-template-columns: 1fr; } }
