/*
Theme Name: Kalapka
Theme URI: https://kalapka.hu
Description: Kalapka gyerektéma Hello Elementor + WooCommerce alapra. Meleg, barátságos kézműves dizájnrendszer, saját fejléc mini kosárral, bal oldali szűrőpanellel ellátott terméklista, termékoldal, kosár és pénztár. A statikus oldalak Elementorral épülnek, ehhez segédosztályokat ad. Szülőtéma: Hello Elementor.
Author: RM Webstudio
Author URI: https://rmwebstudio.hu
Template: hello-elementor
Version: 1.3.0
Text Domain: kalapka
*/

/* ============================================================
   1. DESIGN TOKENEK
   Ha színt vagy betűt módosítasz, elég itt átírni.
   Ugyanezeket vedd fel Elementor Global Colors / Fonts alatt is.
   ============================================================ */
:root {
  /* Barnák: a logó és a címsorok színvilága */
  --kal-ink: #3A2205;
  --kal-ink-soft: #6B5B49;
  --kal-brand: #7C6853;
  --kal-brand-soft: #EFE9E0;

  /* Terrakotta: elsődleges gombok, linkek, kiemelés */
  --kal-accent: #C3512F;
  --kal-accent-dark: #A33F20;
  --kal-accent-soft: #F8E9E2;

  /* Bogyópiros: kizárólag akció és kedvezmény */
  --kal-berry: #AF0331;
  --kal-berry-soft: #FBE4E9;

  /* Hátterek, vonalak */
  --kal-bg: #FFFDFA;
  --kal-bg-soft: #F8F6F2;
  --kal-bg-alt: #EBE8E2;
  --kal-line: #E2DBCF;
  --kal-line-strong: #C9BFAE;

  /* Állapotok */
  --kal-success: #4F7A3A;
  --kal-success-soft: #E7EFDF;
  --kal-danger: #A33226;
  --kal-danger-soft: #F7E5E2;

  /* Lábléc */
  --kal-footer-bg: #3A2205;
  --kal-footer-text: #D8CBBA;

  /* Forma */
  --kal-radius-sm: 8px;
  --kal-radius: 12px;
  --kal-radius-lg: 18px;
  --kal-radius-pill: 999px;
  --kal-shadow-sm: 0 1px 3px rgba(58, 34, 5, .08);
  --kal-shadow-md: 0 10px 28px rgba(58, 34, 5, .13);
  --kal-shadow-lg: 0 20px 48px rgba(58, 34, 5, .18);

  /* Tipográfia */
  --kal-font-display: "Josefin Sans", "Barlow", "Segoe UI", sans-serif;
  --kal-font-body: "Barlow", "Segoe UI", Helvetica, Arial, sans-serif;

  /* Ritmus */
  --kal-gap: 24px;
  --kal-container: 1180px;
}

/* ============================================================
   2. ALAP TIPOGRÁFIA
   A méreteket az Elementor Global Fonts adja, itt a családot,
   a színt és a tördelést rögzítjük.
   ============================================================ */
body {
  font-family: var(--kal-font-body);
  color: var(--kal-ink-soft);
  background-color: var(--kal-bg);
  line-height: 1.65;
}

h1, h2, h3, h4, h5 {
  font-family: var(--kal-font-display);
  color: var(--kal-ink);
  line-height: 1.22;
  font-weight: 600;
  text-wrap: balance;
}

h1 { letter-spacing: -.01em; }
h2 { letter-spacing: 0; }

a { color: var(--kal-accent); }
a:hover { color: var(--kal-accent-dark); }

strong, b { color: var(--kal-ink); font-weight: 700; }

.kal-container {
  width: min(var(--kal-container), calc(100% - 40px));
  margin-left: auto;
  margin-right: auto;
}

/* ============================================================
   3. SZEKCIÓ- ÉS SZÖVEGSEGÉDEK
   Elementor konténer vagy widget "CSS Classes" mezőjébe.
   ============================================================ */

/* Váltakozó krém háttér */
.kal-section-alt {
  background-color: var(--kal-bg-alt);
  border-top: 1px solid var(--kal-line);
  border-bottom: 1px solid var(--kal-line);
}

.kal-section-soft { background-color: var(--kal-bg-soft); }

/* Hero háttér, meleg átmenettel */
.kal-hero-bg {
  background: linear-gradient(165deg, #FDFBF7 0%, #EFE9E0 100%);
  border-bottom: 1px solid var(--kal-line);
}

/* Kis, nagybetűs felcím (Heading widget) */
.kal-eyebrow,
.kal-eyebrow .elementor-heading-title {
  font-family: var(--kal-font-body);
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--kal-accent);
}

/* A kalapka.hu-ról ismerős, könnyed nagybetűs szekciócím */
.kal-section-title,
.kal-section-title .elementor-heading-title {
  font-family: var(--kal-font-body);
  font-weight: 300;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--kal-ink);
}

/* Kézírásos hangulatú alcím a cím alá */
.kal-subtitle {
  font-family: var(--kal-font-display);
  font-size: 1.05rem;
  font-weight: 400;
  color: var(--kal-brand);
}

/* Információs sáv (Text Editor widget) */
.kal-notice {
  background: var(--kal-brand-soft);
  border-left: 4px solid var(--kal-brand);
  border-radius: var(--kal-radius-sm);
  padding: 14px 18px;
  color: var(--kal-ink);
}
.kal-notice--accent { background: var(--kal-accent-soft); border-left-color: var(--kal-accent); }
.kal-notice--success { background: var(--kal-success-soft); border-left-color: var(--kal-success); }

/* Elválasztó, a kalapka.hu vékony vonalas ritmusához */
.kal-divider {
  height: 1px;
  border: 0;
  margin: 34px auto;
  width: 120px;
  background: var(--kal-line-strong);
}

/* ============================================================
   4. GOMBOK
   A .kal-btn a téma saját gombja, a Woo/Elementor gombokat a
   13. szekció igazítja ugyanerre a formára.
   ============================================================ */
.kal-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 13px 26px;
  border: 2px solid transparent;
  border-radius: var(--kal-radius-pill);
  font-family: var(--kal-font-body);
  font-size: .92rem;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .12s ease, box-shadow .18s ease;
}
.kal-btn:hover { transform: translateY(-1px); text-decoration: none; }
.kal-btn:active { transform: translateY(0); }
.kal-btn:focus-visible { outline: 3px solid var(--kal-accent); outline-offset: 2px; }

.kal-btn--primary {
  background: var(--kal-accent);
  border-color: var(--kal-accent);
  color: #fff;
}
.kal-btn--primary:hover { background: var(--kal-accent-dark); border-color: var(--kal-accent-dark); color: #fff; box-shadow: var(--kal-shadow-md); }

.kal-btn--dark {
  background: var(--kal-ink);
  border-color: var(--kal-ink);
  color: #fff;
}
.kal-btn--dark:hover { background: #241503; border-color: #241503; color: #fff; }

.kal-btn--outline {
  background: transparent;
  border-color: var(--kal-line-strong);
  color: var(--kal-ink);
}
.kal-btn--outline:hover { border-color: var(--kal-accent); color: var(--kal-accent); background: var(--kal-accent-soft); }

.kal-btn--ghost {
  background: transparent;
  border-color: transparent;
  color: var(--kal-accent);
  padding-left: 6px;
  padding-right: 6px;
}
.kal-btn--ghost:hover { color: var(--kal-accent-dark); text-decoration: underline; }

.kal-btn--sm { padding: 9px 18px; font-size: .82rem; }
.kal-btn--block { width: 100%; }

/* ============================================================
   5. KÁRTYÁK ÉS JELVÉNYEK
   ============================================================ */
.kal-card {
  background: var(--kal-bg);
  border: 1px solid var(--kal-line);
  border-radius: var(--kal-radius-lg);
  padding: 26px;
  box-shadow: var(--kal-shadow-sm);
  transition: box-shadow .2s ease, transform .2s ease;
}
.kal-card--hover:hover { box-shadow: var(--kal-shadow-md); transform: translateY(-3px); }
.kal-card--soft { background: var(--kal-bg-soft); box-shadow: none; }

.kal-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 11px;
  border-radius: var(--kal-radius-pill);
  background: var(--kal-brand-soft);
  color: var(--kal-ink);
  font-family: var(--kal-font-body);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .02em;
  line-height: 1.7;
}
.kal-badge--sale { background: var(--kal-berry-soft); color: var(--kal-berry); }
.kal-badge--new { background: var(--kal-accent-soft); color: var(--kal-accent-dark); }
.kal-badge--stock { background: var(--kal-success-soft); color: var(--kal-success); }
.kal-badge--out { background: var(--kal-danger-soft); color: var(--kal-danger); }
.kal-badge--custom { background: var(--kal-ink); color: #FFF6E9; }

/* ============================================================
   6. FEJLÉC
   Sorrend: logó, menü, keresés, kosár.
   ============================================================ */
.kal-site-header {
  position: relative;
  z-index: 90;
  background: var(--kal-bg);
  border-bottom: 1px solid var(--kal-line);
}

/* Felső, vékony infósáv */
.kal-topbar {
  background: var(--kal-ink);
  color: #EFE4D6;
  font-size: .82rem;
}
.kal-topbar__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 38px;
  padding: 5px 0;
}
.kal-topbar a { color: #EFE4D6; text-decoration: none; font-weight: 500; }
.kal-topbar a:hover { color: #fff; text-decoration: underline; }
.kal-topbar__note { color: #C8B49B; }

/* Fő sor */
.kal-header-main {
  display: flex;
  align-items: center;
  gap: 28px;
  min-height: 84px;
  padding: 12px 0;
}

.kal-brand { flex: 0 0 auto; margin-right: auto; }
.kal-brand a, .kal-brand .custom-logo-link { display: inline-flex; align-items: center; text-decoration: none; }
.kal-brand img, .kal-brand .custom-logo { max-height: 58px; width: auto; height: auto; display: block; }
.kal-brand__text { flex-direction: column; align-items: flex-start !important; gap: 1px; }
.kal-brand__name {
  font-family: var(--kal-font-display);
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--kal-ink);
  line-height: 1;
}
.kal-brand__tagline {
  font-family: var(--kal-font-body);
  font-size: .68rem;
  font-weight: 500;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--kal-brand);
}

/* Fő menü */
.kal-mainnav { flex: 0 1 auto; }
.kal-main-menu {
  display: flex;
  align-items: center;
  gap: 4px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.kal-main-menu li { position: relative; margin: 0; }
.kal-main-menu > li > a {
  display: block;
  padding: 10px 14px;
  border-radius: var(--kal-radius-pill);
  color: var(--kal-ink);
  font-size: .94rem;
  font-weight: 600;
  text-decoration: none;
  transition: background-color .16s ease, color .16s ease;
}
.kal-main-menu > li > a:hover,
.kal-main-menu > li.current-menu-item > a,
.kal-main-menu > li.current-menu-ancestor > a {
  background: var(--kal-accent-soft);
  color: var(--kal-accent-dark);
}

/* Almenü */
.kal-main-menu .sub-menu {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  z-index: 20;
  min-width: 230px;
  margin: 0;
  padding: 8px;
  list-style: none;
  background: var(--kal-bg);
  border: 1px solid var(--kal-line);
  border-radius: var(--kal-radius);
  box-shadow: var(--kal-shadow-md);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: opacity .16s ease, transform .16s ease, visibility .16s;
}
.kal-main-menu li:hover > .sub-menu,
.kal-main-menu li:focus-within > .sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.kal-main-menu .sub-menu a {
  display: block;
  padding: 9px 13px;
  border-radius: var(--kal-radius-sm);
  color: var(--kal-ink);
  font-size: .9rem;
  font-weight: 500;
  text-decoration: none;
}
.kal-main-menu .sub-menu a:hover { background: var(--kal-bg-alt); color: var(--kal-accent-dark); }

/* Keresés és kosár */
.kal-header-actions {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 6px;
}

.kal-icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: var(--kal-radius-pill);
  background: transparent;
  color: var(--kal-ink);
  cursor: pointer;
  transition: background-color .16s ease, color .16s ease;
}
.kal-icon-btn:hover { background: var(--kal-accent-soft); color: var(--kal-accent-dark); }
.kal-icon-btn:focus-visible { outline: 3px solid var(--kal-accent); outline-offset: 2px; }

.kal-cart-wrap { position: relative; }
.kal-cart-toggle { position: relative; text-decoration: none; }
.kal-cart-count {
  position: absolute;
  top: 4px;
  right: 3px;
  min-width: 19px;
  height: 19px;
  padding: 0 5px;
  border-radius: var(--kal-radius-pill);
  background: var(--kal-accent);
  color: #fff;
  font-family: var(--kal-font-body);
  font-size: .68rem;
  font-weight: 700;
  line-height: 19px;
  text-align: center;
}
.kal-cart-count[hidden] { display: none; }

/* Hamburger */
.kal-menu-toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 44px;
  height: 44px;
  padding: 0 11px;
  border: 0;
  border-radius: var(--kal-radius-pill);
  background: var(--kal-accent);
  cursor: pointer;
}
.kal-menu-toggle span { display: block; height: 2px; border-radius: 2px; background: #fff; transition: transform .18s ease, opacity .18s ease; }
.kal-menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.kal-menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.kal-menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Kereső panel */
.kal-search-panel {
  border-top: 1px solid var(--kal-line);
  background: var(--kal-bg-soft);
  padding: 18px 0;
}
.kal-search-panel__form { position: relative; display: flex; gap: 10px; }
.kal-search-panel__form input[type="search"] {
  flex: 1 1 auto;
  width: 100%;
  padding: 14px 18px;
  border: 1.5px solid var(--kal-line-strong);
  border-radius: var(--kal-radius-pill);
  background: var(--kal-bg);
  color: var(--kal-ink);
  font: 1rem/1.3 var(--kal-font-body);
}
.kal-search-panel__form input[type="search"]:focus {
  outline: none;
  border-color: var(--kal-accent);
  box-shadow: 0 0 0 3px var(--kal-accent-soft);
}

/* Mobil menü */
.kal-mobile-menu {
  position: fixed;
  inset: 0;
  z-index: 120;
  overflow-y: auto;
  background: var(--kal-bg);
  padding: 90px 24px 40px;
}
.kal-mobile-menu[hidden] { display: none; }
.kal-mobile-menu__list { margin: 0; padding: 0; list-style: none; }
.kal-mobile-menu__list li { border-bottom: 1px solid var(--kal-line); }
.kal-mobile-menu__list a {
  display: block;
  padding: 15px 4px;
  color: var(--kal-ink);
  font-family: var(--kal-font-display);
  font-size: 1.14rem;
  font-weight: 600;
  text-decoration: none;
}
.kal-mobile-menu__list .sub-menu { margin: 0 0 8px 14px; padding: 0; list-style: none; }
.kal-mobile-menu__list .sub-menu li { border: 0; }
.kal-mobile-menu__list .sub-menu a { padding: 9px 4px; font-family: var(--kal-font-body); font-size: .98rem; font-weight: 500; color: var(--kal-ink-soft); }
.kal-mobile-menu__phone {
  display: inline-flex;
  margin-top: 26px;
  color: var(--kal-accent);
  font-size: 1.05rem;
  font-weight: 700;
  text-decoration: none;
}
body.kal-mobile-menu-open { overflow: hidden; }

/* ============================================================
   7. MINI KOSÁR
   ============================================================ */
.kal-mini-cart {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  z-index: 60;
  width: 360px;
  max-width: calc(100vw - 32px);
  padding: 20px;
  background: var(--kal-bg);
  border: 1px solid var(--kal-line);
  border-radius: var(--kal-radius-lg);
  box-shadow: var(--kal-shadow-lg);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: opacity .16s ease, transform .16s ease, visibility .16s;
}
.kal-cart-wrap.is-open .kal-mini-cart { opacity: 1; visibility: visible; transform: translateY(0); }

.kal-mini-cart__heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  padding-bottom: 12px;
  margin-bottom: 12px;
  border-bottom: 1px solid var(--kal-line);
}
.kal-mini-cart__heading strong { font-family: var(--kal-font-display); font-size: 1.05rem; }
.kal-mini-cart__heading span { color: var(--kal-ink-soft); font-size: .84rem; }

.kal-mini-cart__items { margin: 0; padding: 0; list-style: none; max-height: 320px; overflow-y: auto; }
.kal-mini-cart__item { display: flex; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--kal-line); }
.kal-mini-cart__item:last-child { border-bottom: 0; }
.kal-mini-cart__thumb { flex: 0 0 62px; }
.kal-mini-cart__thumb img { width: 62px; height: 62px; object-fit: cover; border-radius: var(--kal-radius-sm); background: var(--kal-bg-alt); }
.kal-mini-cart__item-body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.kal-mini-cart__item-name { color: var(--kal-ink); font-size: .92rem; font-weight: 600; line-height: 1.35; text-decoration: none; }
.kal-mini-cart__item-name:hover { color: var(--kal-accent); }
.kal-mini-cart__item-meta { color: var(--kal-ink-soft); font-size: .78rem; }
.kal-mini-cart__item-price { color: var(--kal-ink); font-size: .88rem; font-weight: 600; font-variant-numeric: tabular-nums; }
.kal-mini-cart__remove { align-self: flex-start; color: var(--kal-danger); font-size: .76rem; font-weight: 600; text-decoration: none; }
.kal-mini-cart__remove:hover { color: var(--kal-danger); text-decoration: underline; }

.kal-mini-cart__subtotal {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  padding: 14px 0 4px;
  margin-top: 8px;
  border-top: 1px solid var(--kal-line);
}
.kal-mini-cart__subtotal span { color: var(--kal-ink-soft); font-size: .88rem; }
.kal-mini-cart__subtotal strong { font-family: var(--kal-font-body); font-size: 1.2rem; font-weight: 700; color: var(--kal-ink); font-variant-numeric: tabular-nums; }

.kal-mini-cart__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 14px; }
.kal-mini-cart__actions .kal-btn { padding: 11px 12px; font-size: .84rem; }

.kal-mini-cart__empty { display: flex; flex-direction: column; gap: 7px; padding: 14px 0; text-align: center; }
.kal-mini-cart__empty-title { font-family: var(--kal-font-display); font-size: 1.05rem; font-weight: 600; color: var(--kal-ink); }
.kal-mini-cart__shop-link { margin-top: 8px; font-weight: 700; }

/* Ingyenes szállítás csík */
.kal-freeship { margin-top: 12px; padding: 12px 14px; border-radius: var(--kal-radius); background: var(--kal-bg-soft); font-size: .82rem; color: var(--kal-ink-soft); }
.kal-freeship__bar { height: 6px; margin-top: 8px; border-radius: var(--kal-radius-pill); background: var(--kal-line); overflow: hidden; }
.kal-freeship__fill { display: block; height: 100%; border-radius: inherit; background: var(--kal-success); transition: width .3s ease; }
.kal-freeship.is-reached { background: var(--kal-success-soft); color: var(--kal-success); font-weight: 600; }

/* ============================================================
   8. LÁBLÉC
   ============================================================ */
.kal-site-footer { margin-top: 64px; background: var(--kal-footer-bg); color: var(--kal-footer-text); }
.kal-footer-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1.1fr;
  gap: 40px;
  padding: 56px 0 40px;
}
.kal-footer-brand .kal-brand__name { color: var(--kal-footer-text); filter: brightness(1.25); }
.kal-footer-brand .kal-brand__tagline { color: var(--kal-footer-text); opacity: .72; }
.kal-footer-brand img { max-height: 64px; width: auto; margin-bottom: 14px; }
.kal-footer-brand p { margin-top: 14px; font-size: .92rem; color: var(--kal-footer-text); opacity: .82; }
.kal-site-footer h2 {
  margin: 0 0 16px;
  color: var(--kal-footer-text);
  filter: brightness(1.25);
  font-family: var(--kal-font-body);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.kal-footer-menu { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 10px; }
.kal-footer-menu .sub-menu { margin: 10px 0 0 14px; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 9px; }
.kal-site-footer a { color: var(--kal-footer-text); font-size: .93rem; text-decoration: none; }
.kal-site-footer a:hover { color: #fff; text-decoration: underline; }
.kal-site-footer p { margin: 0 0 9px; font-size: .93rem; }
.kal-footer-muted { color: var(--kal-footer-text); opacity: .62; font-size: .84rem !important; }
.kal-footer-bottom {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 18px 0 26px;
  border-top: 1px solid color-mix(in srgb, var(--kal-footer-text) 22%, transparent);
  font-size: .84rem;
  color: var(--kal-footer-text);
  opacity: .68;
}

/* ============================================================
   9. WOOCOMMERCE – TERMÉKLISTA ÉS BAL OLDALI SZŰRŐ
   ============================================================ */
.kal-shop-toolbar { display: none; margin-bottom: 16px; }
.kal-shop-filter-toggle {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 11px 22px;
  border: 2px solid var(--kal-accent);
  border-radius: var(--kal-radius-pill);
  background: var(--kal-accent);
  color: #fff;
  font: 700 .9rem var(--kal-font-body);
  cursor: pointer;
}

.kal-shop-active-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 18px; }
.kal-shop-filter-chip {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 6px 14px;
  border: 1px solid var(--kal-line-strong);
  border-radius: var(--kal-radius-pill);
  background: var(--kal-bg);
  color: var(--kal-ink);
  font-size: .82rem;
  font-weight: 600;
  text-decoration: none;
}
.kal-shop-filter-chip:hover { border-color: var(--kal-accent); color: var(--kal-accent); background: var(--kal-accent-soft); }
.kal-shop-filter-chip span[aria-hidden] { font-size: 1rem; line-height: 1; }
.kal-shop-filter-clear { color: var(--kal-danger); font-size: .8rem; font-weight: 700; text-decoration: none; }
.kal-shop-filter-clear:hover { color: var(--kal-danger); text-decoration: underline; }

.kal-shop-layout {
  display: grid;
  grid-template-columns: minmax(240px, 285px) minmax(0, 1fr);
  gap: 32px;
  align-items: start;
}
.kal-shop-layout__filters,
.kal-shop-layout__products { min-width: 0; }
.kal-shop-filters__backdrop { display: none; }

.kal-shop-filters {
  position: sticky;
  top: 24px;
  max-height: calc(100vh - 150px);
  overflow-y: auto;
  padding: 22px;
  border: 1px solid var(--kal-line);
  border-radius: var(--kal-radius-lg);
  background: var(--kal-bg);
  box-shadow: var(--kal-shadow-sm);
}
.kal-shop-filters__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.kal-shop-filters__head h2 { display: flex; align-items: baseline; gap: 12px; margin: 0; font-size: 1.15rem; }
.kal-shop-filters__reset { color: var(--kal-danger); font: 700 .76rem/1 var(--kal-font-body); text-decoration: none; }
.kal-shop-filters__reset:hover { text-decoration: underline; color: var(--kal-danger); }
.kal-shop-filters__close { display: none; border: 0; background: transparent; color: var(--kal-ink-soft); font-size: 1.8rem; line-height: 1; cursor: pointer; }

.kal-shop-filter-group { border-top: 1px solid var(--kal-line); padding: 4px 0; }
.kal-shop-filter-group summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 13px 0;
  cursor: pointer;
  list-style: none;
  color: var(--kal-ink);
  font-family: var(--kal-font-body);
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.kal-shop-filter-group summary::-webkit-details-marker { display: none; }
.kal-shop-filter-group summary::after {
  content: "";
  width: 9px;
  height: 9px;
  border-right: 2px solid var(--kal-brand);
  border-bottom: 2px solid var(--kal-brand);
  transform: rotate(45deg) translateY(-2px);
  transition: transform .18s ease;
}
.kal-shop-filter-group[open] summary::after { transform: rotate(225deg) translateY(-2px); }

.kal-shop-filter-options { display: flex; flex-direction: column; gap: 3px; padding-bottom: 12px; }
.kal-shop-filter-option {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 8px;
  border-radius: var(--kal-radius-sm);
  cursor: pointer;
  font-size: .91rem;
  color: var(--kal-ink);
  transition: background-color .14s ease;
}
.kal-shop-filter-option:hover { background: var(--kal-bg-soft); }
.kal-shop-filter-option[hidden] { display: none; }
.kal-shop-filter-option input[type="checkbox"] {
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  margin: 0;
  accent-color: var(--kal-accent);
  cursor: pointer;
}
.kal-shop-filter-option span { flex: 1 1 auto; min-width: 0; }
.kal-shop-filter-option small { color: var(--kal-brand); font-size: .78rem; font-variant-numeric: tabular-nums; }

.kal-shop-filter-more {
  align-self: flex-start;
  margin-top: 4px;
  padding: 4px 8px;
  border: 0;
  background: transparent;
  color: var(--kal-accent);
  font: 700 .8rem var(--kal-font-body);
  cursor: pointer;
}
.kal-shop-filter-more:hover { text-decoration: underline; }

.kal-shop-filter-price { display: flex; align-items: center; gap: 8px; padding: 4px 0 14px; }
.kal-shop-filter-price input {
  width: 100%;
  min-width: 0;
  padding: 9px 11px;
  border: 1.5px solid var(--kal-line-strong);
  border-radius: var(--kal-radius-sm);
  background: var(--kal-bg);
  font: .9rem var(--kal-font-body);
}
.kal-shop-filter-price input:focus { outline: none; border-color: var(--kal-accent); box-shadow: 0 0 0 3px var(--kal-accent-soft); }
.kal-shop-filter-price span { color: var(--kal-brand); }

.kal-shop-filters__actions { display: flex; flex-direction: column; gap: 10px; margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--kal-line); }
.kal-shop-filters__actions .kal-btn { width: 100%; padding: 12px; font-size: .85rem; }

/* Terméklista fejléc és rács */
.kal-shop-layout__products .woocommerce-result-count {
  float: left;
  margin: 6px 0 20px;
  color: var(--kal-ink-soft);
  font-size: .9rem;
}
.kal-shop-layout__products .woocommerce-result-count strong { color: var(--kal-ink); }
.kal-shop-layout__products .woocommerce-ordering { float: right; margin: 0 0 20px; display: flex; align-items: center; gap: 10px; }
.kal-shop-layout__products .woocommerce-ordering::before { content: "Rendezés:"; color: var(--kal-ink-soft); font-size: .88rem; }
.kal-shop-layout__products .woocommerce-ordering select {
  padding: 10px 14px;
  border: 1.5px solid var(--kal-line-strong);
  border-radius: var(--kal-radius-pill);
  background: var(--kal-bg);
  color: var(--kal-ink);
  font: .9rem var(--kal-font-body);
  cursor: pointer;
}
.kal-shop-layout__products ul.products {
  clear: both;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.kal-shop-layout__products ul.products::before,
.kal-shop-layout__products ul.products::after { display: none; }
.kal-shop-layout__products .woocommerce-pagination { clear: both; padding-top: 34px; }

/* Termékkártya */
.woocommerce ul.products li.product {
  display: flex;
  flex-direction: column;
  width: auto !important;
  height: 100%;
  margin: 0 !important;
  float: none;
  overflow: hidden;
  text-align: left;
  background: var(--kal-bg);
  border: 1px solid var(--kal-line);
  border-radius: var(--kal-radius-lg);
  box-shadow: var(--kal-shadow-sm);
  transition: box-shadow .2s ease, transform .2s ease, border-color .2s ease;
}
.woocommerce ul.products li.product:hover {
  border-color: var(--kal-line-strong);
  box-shadow: var(--kal-shadow-md);
  transform: translateY(-4px);
}

.kal-shop-card__media { position: relative; overflow: hidden; background: var(--kal-bg-alt); }
.kal-shop-card__media-link { display: block; }
.woocommerce ul.products li.product .kal-shop-card__media img,
.kal-shop-card__media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  margin: 0;
  border-radius: 0;
  transition: transform .35s ease;
}
.woocommerce ul.products li.product:hover .kal-shop-card__media img { transform: scale(1.05); }
.kal-shop-card__badges { position: absolute; top: 12px; left: 12px; display: flex; flex-wrap: wrap; gap: 6px; }
.kal-shop-card__badges .kal-badge { box-shadow: var(--kal-shadow-sm); }

.kal-shop-card__body { display: flex; flex-direction: column; gap: 8px; flex: 1 1 auto; padding: 18px 20px 20px; }
.kal-shop-card__cat {
  font-family: var(--kal-font-body);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--kal-brand);
}
.kal-shop-card__name { margin: 0; font-family: var(--kal-font-display); font-size: 1.08rem; font-weight: 600; line-height: 1.3; }
.kal-shop-card__name a { color: var(--kal-ink); text-decoration: none; }
.kal-shop-card__name a:hover { color: var(--kal-accent); }
.kal-shop-card__meta { margin: 0; color: var(--kal-ink-soft); font-size: .86rem; line-height: 1.5; }
.kal-shop-card__features { display: flex; flex-wrap: wrap; gap: 6px; }
.kal-shop-card__feature {
  padding: 3px 10px;
  border-radius: var(--kal-radius-pill);
  background: var(--kal-bg-soft);
  border: 1px solid var(--kal-line);
  color: var(--kal-ink-soft);
  font-size: .74rem;
  font-weight: 600;
}
.kal-shop-card__price-row { display: flex; align-items: baseline; gap: 10px; margin-top: auto; padding-top: 6px; }
.kal-shop-card__price {
  color: var(--kal-ink);
  font-family: var(--kal-font-body);
  font-size: 1.28rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.kal-shop-card__price del,
.kal-shop-card__old-price {
  margin-left: 8px;
  color: var(--kal-brand);
  font-size: .92rem;
  font-weight: 400;
  text-decoration: line-through;
  opacity: 1;
}
.kal-shop-card__price ins { text-decoration: none; background: transparent; color: var(--kal-berry); }
.kal-shop-card__price .woocommerce-Price-currencySymbol { font-weight: 600; }
.kal-shop-card__stock { align-self: flex-start; }
.kal-shop-card__actions { display: grid; grid-template-columns: 1fr; gap: 10px; margin-top: 6px; }
.kal-shop-card__actions .kal-btn,
.kal-shop-card__actions .button { width: 100%; margin: 0; padding: 12px 14px; font-size: .88rem; }

/* A Woo alap "Kosárba" gombja a kártyán */
.woocommerce ul.products li.product .button.kal-shop-card__add,
.woocommerce ul.products li.product a.add_to_cart_button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 2px solid var(--kal-accent);
  border-radius: var(--kal-radius-pill);
  background: var(--kal-accent);
  color: #fff;
  font: 700 .84rem var(--kal-font-body);
}
.woocommerce ul.products li.product .button.kal-shop-card__add:hover,
.woocommerce ul.products li.product a.add_to_cart_button:hover { background: var(--kal-accent-dark); border-color: var(--kal-accent-dark); color: #fff; }
.woocommerce ul.products li.product a.added_to_cart { display: none; }

/* Woo saját akciós jelvény, ha valahol mégis megjelenik */
.woocommerce span.onsale {
  top: 12px;
  left: 12px;
  right: auto;
  min-width: 0;
  min-height: 0;
  padding: 4px 13px;
  border-radius: var(--kal-radius-pill);
  background: var(--kal-berry-soft);
  color: var(--kal-berry);
  font: 700 .72rem/1.7 var(--kal-font-body);
}

/* Archívum fejléc */
.woocommerce-products-header { padding-top: 8px; }
.woocommerce-products-header__title { margin: 6px 0 10px; font-size: clamp(1.9rem, 4vw, 2.7rem); }
.woocommerce .term-description, .woocommerce-products-header .term-description { max-width: 70ch; color: var(--kal-ink-soft); }
.woocommerce .woocommerce-breadcrumb { margin: 0 0 6px; color: var(--kal-brand); font-size: .84rem; }
.woocommerce .woocommerce-breadcrumb a { color: var(--kal-brand); text-decoration: none; }
.woocommerce .woocommerce-breadcrumb a:hover { color: var(--kal-accent); text-decoration: underline; }

/* Lapozó */
.woocommerce nav.woocommerce-pagination ul { border: 0; display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; margin: 0; overflow: visible; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  height: 42px;
  padding: 0 12px;
  border: 1px solid var(--kal-line);
  border-radius: var(--kal-radius-pill);
  background: var(--kal-bg);
  color: var(--kal-ink);
  font-weight: 600;
}
.woocommerce nav.woocommerce-pagination ul li a:hover { border-color: var(--kal-accent); background: var(--kal-accent-soft); color: var(--kal-accent-dark); }
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--kal-accent); border-color: var(--kal-accent); color: #fff; }

/* ============================================================
   10. WOOCOMMERCE – TERMÉKOLDAL
   Lefedi a natív Woo markupot és az Elementor Pro
   termék-widgetek wrapperét is.
   ============================================================ */
/*
 * A natív Woo termékoldal 48%/48% lebegtetés helyett rácsba kerül.
 * Így a jobb oldali oszlop rövid tartalomnál sem hagy nagy üres sávot,
 * és a fülek nem a lebegtetés törlésétől kerülnek a helyükre.
 *
 * Elementor Pro egyedi termék-sablon esetén a div.product gyerekei
 * Elementor konténerek. Azok a lenti :not() szabály miatt mind teljes
 * szélességet kapnak, vagyis az elrendezés szimplán egyoszlopos lesz.
 */
.woocommerce div.product {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 46fr) minmax(0, 54fr);
  column-gap: 48px;
  align-items: start;
  margin-top: 8px;
}
/*
 * A duplázott osztálynév azért kell, mert a WooCommerce
 * `.woocommerce div.product div.summary { width: 48% }` szabálya
 * elemnévvel erősebb, mint egy sima gyerekszelektor. Enélkül a
 * jobb oldali oszlop a rácscella 48%-ára zsugorodna.
 */
.woocommerce div.product > .woocommerce-product-gallery.woocommerce-product-gallery,
.woocommerce div.product > div.images.images {
  grid-column: 1;
  float: none;
  width: auto;
  margin: 0;
}
.woocommerce div.product > div.summary.summary {
  grid-column: 2;
  position: sticky;
  top: 24px;
  float: none;
  width: auto;
  margin: 0;
}
.woocommerce div.product > *:not(.woocommerce-product-gallery):not(div.images):not(.summary):not(span.onsale) {
  grid-column: 1 / -1;
  margin-top: 48px;
}
.woocommerce div.product > span.onsale { position: absolute; top: 14px; left: 14px; z-index: 3; }

/* A főkép rögzített arányban, hogy ne nyúljon a képernyő aljáig. */
.woocommerce div.product .woocommerce-product-gallery__image img,
.woocommerce div.product div.images .woocommerce-main-image img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
}

.woocommerce div.product div.images img,
.elementor-widget-woocommerce-product-images .woocommerce-product-gallery img {
  border: 1px solid var(--kal-line);
  border-radius: var(--kal-radius-lg);
  background: var(--kal-bg-alt);
}
.woocommerce div.product div.images .flex-control-thumbs li img,
.elementor-widget-woocommerce-product-images .flex-control-thumbs img {
  border: 2px solid var(--kal-line);
  border-radius: var(--kal-radius);
  padding: 2px;
  opacity: .8;
  transition: border-color .16s ease, opacity .16s ease;
}
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active,
.woocommerce div.product div.images .flex-control-thumbs li img:hover { border-color: var(--kal-accent); opacity: 1; }

.woocommerce div.product .product_title,
.elementor-widget-woocommerce-product-title .product_title {
  margin: 4px 0 12px;
  font-size: clamp(1.7rem, 3.4vw, 2.3rem);
  line-height: 1.2;
}

.woocommerce div.product p.price,
.woocommerce div.product span.price,
.elementor-widget-woocommerce-product-price .price {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 12px;
  margin: 0 0 14px;
  color: var(--kal-ink);
  font-family: var(--kal-font-body);
  font-size: 1.9rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.woocommerce div.product p.price del,
.woocommerce div.product span.price del { color: var(--kal-brand); font-size: 1.05rem; font-weight: 400; opacity: 1; }
.woocommerce div.product p.price ins,
.woocommerce div.product span.price ins { text-decoration: none; background: transparent; color: var(--kal-berry); }
.woocommerce div.product .woocommerce-product-details__short-description {
  margin-bottom: 20px;
  color: var(--kal-ink-soft);
  font-size: 1rem;
}
/* Ha a terméknek nincs ára, az üres ár-elem ne foglaljon helyet. */
.woocommerce div.product p.price:empty,
.woocommerce div.product span.price:empty,
.woocommerce div.product .woocommerce-product-details__short-description:empty { display: none; }

/* Készlet és metaadat */
.woocommerce div.product .stock {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 13px;
  border-radius: var(--kal-radius-pill);
  font-size: .82rem;
  font-weight: 700;
}
.woocommerce div.product .stock.in-stock { background: var(--kal-success-soft); color: var(--kal-success); }
.woocommerce div.product .stock.out-of-stock { background: var(--kal-danger-soft); color: var(--kal-danger); }
.woocommerce div.product .product_meta {
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid var(--kal-line);
  color: var(--kal-ink-soft);
  font-size: .86rem;
}
.woocommerce div.product .product_meta > span { display: block; margin-bottom: 5px; }
.woocommerce div.product .product_meta a { color: var(--kal-ink-soft); text-decoration: underline; }
.woocommerce div.product .product_meta a:hover { color: var(--kal-accent); }

/* Mennyiség és kosárgomb */
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: 18px; }
.woocommerce div.product form.cart .variations { width: 100%; margin-bottom: 4px; }
.woocommerce div.product form.cart .variations td { padding: 6px 0; }
.woocommerce div.product form.cart .variations label { color: var(--kal-ink); font-weight: 700; }
.woocommerce .quantity .qty {
  width: 84px;
  height: 52px;
  padding: 0 10px;
  border: 1.5px solid var(--kal-line-strong);
  border-radius: var(--kal-radius-pill);
  background: var(--kal-bg);
  color: var(--kal-ink);
  font: 600 1rem var(--kal-font-body);
  text-align: center;
  appearance: textfield;
}
.woocommerce .quantity .qty::-webkit-outer-spin-button,
.woocommerce .quantity .qty::-webkit-inner-spin-button { margin: 0; appearance: none; }
.woocommerce div.product form.cart .button.single_add_to_cart_button {
  flex: 1 1 240px;
  min-height: 52px;
  padding: 14px 30px;
  border: 2px solid var(--kal-accent);
  border-radius: var(--kal-radius-pill);
  background: var(--kal-accent);
  color: #fff;
  font: 700 1rem var(--kal-font-body);
}
.woocommerce div.product form.cart .button.single_add_to_cart_button:hover { background: var(--kal-accent-dark); border-color: var(--kal-accent-dark); box-shadow: var(--kal-shadow-md); }
.woocommerce div.product form.cart .button.single_add_to_cart_button.loading { opacity: .75; }

/* Bizalmi pontok a kosárgomb alatt */
.kal-product-assurances { display: flex; flex-direction: column; gap: 9px; margin: 4px 0 0; padding: 0; list-style: none; }
.kal-product-assurances li { display: flex; align-items: flex-start; gap: 10px; color: var(--kal-ink-soft); font-size: .89rem; }
.kal-product-assurances li::before {
  content: "";
  flex: 0 0 8px;
  width: 8px;
  height: 8px;
  margin-top: 8px;
  border-radius: 50%;
  background: var(--kal-accent);
}

/* Fülek */
.woocommerce div.product .woocommerce-tabs { margin-top: 12px; }
.woocommerce div.product .woocommerce-tabs ul.tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 22px;
  padding: 0;
  border-bottom: 1px solid var(--kal-line);
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  display: block;
  padding: 12px 18px;
  border-bottom: 3px solid transparent;
  color: var(--kal-ink-soft);
  font-family: var(--kal-font-body);
  font-size: .93rem;
  font-weight: 700;
  text-decoration: none;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover { color: var(--kal-accent); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--kal-ink); border-bottom-color: var(--kal-accent); }
.woocommerce div.product .woocommerce-tabs .panel { margin: 0; padding: 0; color: var(--kal-ink-soft); }
.woocommerce div.product .woocommerce-tabs .panel > h2:first-child { display: none; }
.woocommerce div.product .woocommerce-tabs .panel ul { padding-left: 20px; }

/* Attribútum tábla */
.woocommerce table.shop_attributes { border: 1px solid var(--kal-line); border-radius: var(--kal-radius); overflow: hidden; }
.woocommerce table.shop_attributes th,
.woocommerce table.shop_attributes td { padding: 11px 16px; border-bottom: 1px solid var(--kal-line); font-style: normal; }
.woocommerce table.shop_attributes th { width: 34%; background: var(--kal-bg-soft); color: var(--kal-ink); font-weight: 700; }
.woocommerce table.shop_attributes tr:last-child th,
.woocommerce table.shop_attributes tr:last-child td { border-bottom: 0; }

/* Kapcsolódó termékek */
.woocommerce .related, .woocommerce .upsells, .woocommerce .cross-sells { margin-top: 52px; }
.woocommerce .related > h2, .woocommerce .upsells > h2, .woocommerce .cross-sells > h2 { margin-bottom: 22px; font-size: 1.5rem; }
.woocommerce .related ul.products,
.woocommerce .upsells ul.products {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  margin: 0;
  list-style: none;
}
.woocommerce .related ul.products::before,
.woocommerce .related ul.products::after,
.woocommerce .upsells ul.products::before,
.woocommerce .upsells ul.products::after { display: none; }

/* ============================================================
   11. WOOCOMMERCE – KOSÁR
   ============================================================ */
.kal-cart-page-grid { display: grid; grid-template-columns: 1.6fr 1fr; gap: 36px; align-items: start; margin-top: 26px; }
.kal-cart-page-grid .woocommerce-cart-form,
.kal-cart-page-grid .cart-collaterals { min-width: 0; width: 100% !important; float: none !important; }
.kal-cart-page-grid .cart-collaterals { position: sticky; top: 24px; }

.kal-cart-page-grid table.cart { display: block; width: 100%; border: 0; border-collapse: collapse; background: transparent; }
.kal-cart-page-grid table.cart thead { display: none; }
.kal-cart-page-grid table.cart tbody { display: flex; flex-direction: column; gap: 14px; }
.kal-cart-page-grid table.cart tr.cart_item {
  display: grid;
  grid-template-columns: 108px minmax(0, 1fr) auto;
  grid-template-areas: "thumb name quantity" "thumb name subtotal" "thumb name remove";
  gap: 7px 18px;
  align-items: center;
  padding: 16px;
  border: 1px solid var(--kal-line);
  border-radius: var(--kal-radius-lg);
  background: var(--kal-bg);
}
.kal-cart-page-grid table.cart tr.cart_item td { padding: 0; border: 0; background: transparent !important; }
.kal-cart-page-grid table.cart td.product-thumbnail { grid-area: thumb; }
.kal-cart-page-grid table.cart td.product-thumbnail img { width: 100%; max-width: 100px; margin: 0; border-radius: var(--kal-radius); background: var(--kal-bg-alt); }
.kal-cart-page-grid table.cart td.product-name {
  grid-area: name;
  align-self: start;
  padding-top: 2px;
  font-family: var(--kal-font-display);
  font-size: 1.02rem;
  font-weight: 600;
  line-height: 1.4;
}
.kal-cart-page-grid table.cart td.product-name a { color: var(--kal-ink); text-decoration: none; }
.kal-cart-page-grid table.cart td.product-name a:hover { color: var(--kal-accent); }
.kal-cart-page-grid table.cart td.product-name dl.variation { margin: 4px 0 0; font: 500 .82rem var(--kal-font-body); color: var(--kal-ink-soft); }
.kal-cart-page-grid table.cart td.product-name dl.variation dt { font-weight: 700; }
.kal-cart-page-grid table.cart td.product-name dl.variation dd { margin: 0; }
.kal-cart-page-grid table.cart td.product-price { display: none; }
.kal-cart-page-grid table.cart td.product-quantity { grid-area: quantity; justify-self: end; align-self: start; }
.kal-cart-page-grid table.cart td.product-quantity .qty { width: 68px; height: 40px; }
.kal-cart-page-grid table.cart td.product-subtotal {
  grid-area: subtotal;
  justify-self: end;
  align-self: end;
  white-space: nowrap;
  color: var(--kal-ink);
  font: 700 1.1rem var(--kal-font-body);
  font-variant-numeric: tabular-nums;
}
.kal-cart-page-grid table.cart td.product-remove { grid-area: remove; justify-self: end; align-self: end; }
.kal-cart-page-grid table.cart td.product-remove a.remove { width: auto; height: auto; color: transparent; font-size: 0; line-height: 1; background: transparent !important; }
.kal-cart-page-grid table.cart td.product-remove a.remove::after { content: "Törlés"; color: var(--kal-danger); font: 600 .78rem/1 var(--kal-font-body); }
.kal-cart-page-grid table.cart td.product-remove a.remove:hover::after { text-decoration: underline; }

.kal-cart-page-grid table.cart tr:not(.cart_item) { display: block; background: transparent !important; }
/*
 * A kupon és a kosárfrissítés egy önálló, kártyás sorba kerül. A beviteli
 * mező flex-alapon nyúlik, mert fix szélességgel a flex-shrink néhány
 * tucat pixelre nyomta össze.
 */
.kal-cart-page-grid table.cart td.actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  margin-top: 4px;
  padding: 16px;
  border: 1px solid var(--kal-line);
  border-radius: var(--kal-radius-lg);
  background: var(--kal-bg) !important;
}
.kal-cart-page-grid table.cart td.actions .coupon {
  display: flex;
  flex: 1 1 340px;
  /* A min-width miatt a sor inkább tördel, mint hogy a mező összenyomódjon. */
  min-width: 260px;
  gap: 10px;
  margin: 0;
  padding: 0;
  border: 0;
}
.kal-cart-page-grid table.cart td.actions .coupon .input-text {
  flex: 1 1 auto;
  min-width: 120px;
  width: auto;
  padding: 12px 18px;
  border: 1.5px solid var(--kal-line-strong);
  border-radius: var(--kal-radius-pill);
  background: var(--kal-bg);
  color: var(--kal-ink);
  font: .92rem var(--kal-font-body);
}
.kal-cart-page-grid table.cart td.actions .coupon .input-text:focus {
  outline: none;
  border-color: var(--kal-accent);
  box-shadow: 0 0 0 3px var(--kal-accent-soft);
}
.kal-cart-page-grid table.cart td.actions .coupon .button { flex: 0 0 auto; white-space: nowrap; }
.kal-cart-page-grid table.cart td.actions .button { margin: 0; }
.kal-cart-page-grid table.cart td.actions > button[name="update_cart"] { margin-left: auto; }

.kal-cart-page-grid .cart_totals {
  width: 100% !important;
  float: none;
  padding: 26px;
  border: 1px solid var(--kal-line);
  border-radius: var(--kal-radius-lg);
  background: var(--kal-bg-soft);
}
.kal-cart-page-grid .cart_totals h2 { margin: 0 0 18px; font-size: 1.18rem; }
.kal-cart-page-grid .cart_totals table.shop_table { width: 100%; margin: 0; border: 0; border-collapse: collapse; background: transparent; }
.kal-cart-page-grid .cart_totals table.shop_table th,
.kal-cart-page-grid .cart_totals table.shop_table td {
  padding: 8px 0;
  border: 0;
  background: transparent;
  font-size: .93rem;
  font-weight: 400;
  text-align: right;
  vertical-align: top;
}
.kal-cart-page-grid .cart_totals table.shop_table th { color: var(--kal-ink-soft); text-align: left; font-weight: 500; }
.kal-cart-page-grid .cart_totals table.shop_table tr.order-total th,
.kal-cart-page-grid .cart_totals table.shop_table tr.order-total td {
  padding-top: 15px;
  border-top: 2px solid var(--kal-line-strong);
  font-size: 1.08rem;
  font-weight: 700;
}
.kal-cart-page-grid .cart_totals table.shop_table tr.order-total td,
.kal-cart-page-grid .cart_totals table.shop_table tr.order-total .amount { white-space: nowrap; color: var(--kal-ink); font: 700 1.35rem var(--kal-font-body); }
.kal-cart-page-grid .cart_totals .wc-proceed-to-checkout { padding: 16px 0 0; }
.kal-cart-page-grid .cart_totals .wc-proceed-to-checkout a.checkout-button { width: 100%; margin: 0; }
.kal-cart-page-grid .cart_totals .woocommerce-shipping-destination { color: var(--kal-ink-soft); font-size: .84rem; }
.kal-cart-page-grid .cart_totals tr.woocommerce-shipping-totals td { text-align: right; }
.kal-cart-page-grid .cart_totals .woocommerce-shipping-methods { margin: 0; padding: 0; list-style: none; }
.kal-cart-page-grid .cart_totals .woocommerce-shipping-methods li { margin-bottom: 4px; }
.kal-cart-page-grid .cart_totals .woocommerce-shipping-calculator { margin-top: 10px; }
.kal-cart-page-grid .cart_totals .shipping-calculator-button { font-size: .84rem; font-weight: 700; }
.kal-cart-page-grid .cart_totals .shipping-calculator-form { margin-top: 12px; text-align: left; }
.kal-cart-page-grid .cart_totals .shipping-calculator-form .form-row { margin-bottom: 10px; }
.kal-cart-page-grid .cart_totals .shipping-calculator-form .button { width: 100%; }

.woocommerce .cart-empty, .woocommerce .return-to-shop { text-align: center; }
.woocommerce .return-to-shop { margin-top: 18px; }

/* ============================================================
   12. WOOCOMMERCE – PÉNZTÁR, FIÓK, ÉRTESÍTÉSEK
   ============================================================ */
.woocommerce-checkout form.checkout { display: block; margin-top: 26px; }
.kal-checkout-layout { display: grid; grid-template-columns: 1.5fr 1fr; gap: 36px; align-items: start; }
.kal-checkout-main, .kal-checkout-summary { min-width: 0; }
.kal-checkout-summary { position: sticky; top: 24px; }
.kal-checkout-summary__card { padding: 26px; border: 1px solid var(--kal-line); border-radius: var(--kal-radius-lg); background: var(--kal-bg-soft); }
.kal-checkout-summary__card h2 { margin: 0 0 18px; font-size: 1.18rem; }

.woocommerce-checkout form.checkout .col2-set { grid-template-columns: 1fr; gap: 0; width: auto; }
.woocommerce-checkout form.checkout #customer_details .col-1,
.woocommerce-checkout form.checkout #customer_details .col-2,
.woocommerce-checkout form.checkout .woocommerce-additional-fields {
  float: none;
  width: auto;
  margin-bottom: 18px;
  padding: 26px;
  border: 1px solid var(--kal-line);
  border-radius: var(--kal-radius-lg);
  background: var(--kal-bg);
}
.woocommerce-checkout form.checkout #customer_details h3,
.woocommerce-checkout form.checkout .woocommerce-additional-fields h3,
.woocommerce-checkout form.checkout .kal-checkout-shipping-section > h2,
.woocommerce-checkout form.checkout .kal-checkout-payment-section > h2 {
  display: flex;
  align-items: center;
  gap: 11px;
  margin: 0 0 18px;
  font-size: 1.12rem;
}
/*
 * A lépések sorszáma CSS-számlálóval készül, nem beégetve.
 *
 * A WooCommerce a megjegyzés mezőt a szállítási blokkba teszi, a
 * hozzá tartozó címsort pedig csak akkor rendereli, ha nincs szállítás.
 * Beégetett számokkal ezért kimaradt a 3-as. A számláló mindig annyit
 * számoz, ahány lépés ténylegesen megjelenik.
 */
.woocommerce-checkout form.checkout .kal-checkout-main { counter-reset: kal-step; }

.woocommerce-checkout form.checkout #customer_details .col-1 h3,
.woocommerce-checkout form.checkout .woocommerce-shipping-fields > h3,
.woocommerce-checkout form.checkout .woocommerce-additional-fields > h3,
.woocommerce-checkout form.checkout .kal-checkout-shipping-section > h2,
.woocommerce-checkout form.checkout .kal-checkout-payment-section > h2 { counter-increment: kal-step; }

.woocommerce-checkout form.checkout #customer_details .col-1 h3::before,
.woocommerce-checkout form.checkout .woocommerce-shipping-fields > h3::before,
.woocommerce-checkout form.checkout .woocommerce-additional-fields > h3::before,
.kal-checkout-num::before {
  content: counter(kal-step);
}

.woocommerce-checkout form.checkout #customer_details .col-1 h3::before,
.woocommerce-checkout form.checkout .woocommerce-shipping-fields > h3::before,
.woocommerce-checkout form.checkout .woocommerce-additional-fields > h3::before,
.kal-checkout-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: var(--kal-accent);
  color: #fff;
  font: 700 .85rem var(--kal-font-body);
}

.kal-checkout-shipping-section,
.kal-checkout-payment-section {
  margin-bottom: 18px;
  padding: 26px;
  border: 1px solid var(--kal-line);
  border-radius: var(--kal-radius-lg);
  background: var(--kal-bg);
}
.kal-checkout-payment-section { margin-bottom: 0; }
.kal-checkout-shipping-section[hidden] { display: none; }

.kal-checkout-shipping .kal-shipping-package + .kal-shipping-package { margin-top: 16px; }
.kal-checkout-shipping .kal-shipping-package__label {
  display: block;
  margin-bottom: 8px;
  color: var(--kal-ink-soft);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.kal-checkout-shipping ul.woocommerce-shipping-methods {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.kal-checkout-shipping ul.woocommerce-shipping-methods li {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  padding: 14px 16px;
  border: 2px solid var(--kal-line);
  border-radius: var(--kal-radius);
  background: var(--kal-bg);
  transition: border-color .16s ease, background-color .16s ease;
}
.kal-checkout-shipping ul.woocommerce-shipping-methods li:hover { border-color: var(--kal-accent); }
.kal-checkout-shipping ul.woocommerce-shipping-methods li:has(input:checked) {
  border-color: var(--kal-accent);
  background: var(--kal-accent-soft);
}
.kal-checkout-shipping ul.woocommerce-shipping-methods input[type="radio"] { flex: 0 0 auto; margin: 0; accent-color: var(--kal-accent); }
.kal-checkout-shipping ul.woocommerce-shipping-methods label {
  flex: 1 1 auto;
  margin: 0;
  color: var(--kal-ink);
  font-size: .95rem;
  font-weight: 600;
  cursor: pointer;
}
.kal-checkout-shipping .woocommerce-shipping-destination,
.kal-checkout-shipping p { margin: 10px 0 0; color: var(--kal-ink-soft); font-size: .86rem; }
.kal-checkout-shipping .kal-shipping-empty { color: var(--kal-ink-soft); font-size: .92rem; }
.kal-checkout-payment-section #payment { margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; }
.woocommerce-checkout #payment ul.payment_methods { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0 0 18px; border: 0; }
.woocommerce-checkout #payment ul.payment_methods li {
  padding: 14px 16px;
  border: 2px solid var(--kal-line);
  border-radius: var(--kal-radius);
  background: var(--kal-bg);
  list-style: none;
}
.woocommerce-checkout #payment ul.payment_methods li:hover { border-color: var(--kal-accent); }
.woocommerce-checkout #payment ul.payment_methods li label { color: var(--kal-ink); font-weight: 700; }
.woocommerce-checkout #payment ul.payment_methods li input[type="radio"] { accent-color: var(--kal-accent); margin-right: 6px; }
.woocommerce-checkout #payment div.payment_box {
  margin: 10px 0 0;
  padding: 12px 14px;
  border-radius: var(--kal-radius-sm);
  background: var(--kal-bg-soft);
  color: var(--kal-ink-soft);
  font-size: .84rem;
}
.woocommerce-checkout #payment div.payment_box::before { display: none; }
.woocommerce-checkout #payment .place-order { margin: 0; padding: 0; }
.woocommerce-checkout #payment .place-order .button { width: 100%; margin: 0; }
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper { margin-bottom: 14px; font-size: .88rem; }

/* Kuponsáv és kuponűrlap a pénztár tetején */
.woocommerce-checkout .woocommerce-form-coupon-toggle { margin-bottom: 20px; }
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info.woocommerce-info {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding: 14px 20px;
  border: 1px solid var(--kal-line);
  border-left: 4px solid var(--kal-brand);
  border-radius: var(--kal-radius);
  background: var(--kal-bg-soft);
  color: var(--kal-ink);
  font-size: .92rem;
}
.woocommerce-checkout form.checkout_coupon {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  margin: 0 0 20px;
  padding: 18px 20px;
  border: 1px solid var(--kal-line);
  border-radius: var(--kal-radius-lg);
  background: var(--kal-bg);
}
.woocommerce-checkout form.checkout_coupon p { margin: 0; }
.woocommerce-checkout form.checkout_coupon .form-row { flex: 1 1 260px; min-width: 0; width: auto; }
.woocommerce-checkout form.checkout_coupon .form-row-last { flex: 0 0 auto; }
.woocommerce-checkout form.checkout_coupon .input-text {
  width: 100%;
  padding: 12px 18px;
  border: 1.5px solid var(--kal-line-strong);
  border-radius: var(--kal-radius-pill);
  background: var(--kal-bg);
}

/* A rendelés-összegző táblája szellősebb és olvashatóbb */
.kal-checkout-summary table.shop_table thead th {
  padding-bottom: 12px;
  border-bottom: 1px solid var(--kal-line);
  color: var(--kal-ink-soft);
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.kal-checkout-summary table.shop_table tbody td { padding: 11px 0; border-bottom: 1px solid var(--kal-line); }
.kal-checkout-summary table.shop_table tbody tr:last-child td { border-bottom: 0; }
.kal-checkout-summary table.shop_table tfoot th,
.kal-checkout-summary table.shop_table tfoot td { padding: 9px 0; }
.kal-checkout-summary table.shop_table .product-quantity { margin-left: 4px; color: var(--kal-brand); font-weight: 600; }
.kal-checkout-summary .woocommerce-shipping-methods { margin: 0; padding: 0; list-style: none; }

/* Az adatvédelmi tájékoztató sora a megrendelés gomb fölött */
.woocommerce-checkout .woocommerce-privacy-policy-text { margin-bottom: 16px; color: var(--kal-ink-soft); font-size: .86rem; }

.kal-checkout-summary #order_review { margin: 0; padding: 0; background: transparent; }
.kal-checkout-summary table.shop_table { width: 100%; margin: 0; border: 0; border-collapse: collapse; background: transparent; }
.kal-checkout-summary table.shop_table th,
.kal-checkout-summary table.shop_table td {
  padding: 8px 0;
  border: 0;
  background: transparent;
  font-size: .93rem;
  font-weight: 400;
  text-align: right;
  vertical-align: top;
}
.kal-checkout-summary table.shop_table th { color: var(--kal-ink-soft); text-align: left; font-weight: 500; }
.kal-checkout-summary table.shop_table td.product-name { text-align: left; color: var(--kal-ink); font-weight: 600; }
.kal-checkout-summary table.shop_table .product-quantity { color: var(--kal-ink-soft); font-weight: 500; }
.kal-checkout-summary table.shop_table tr.order-total th,
.kal-checkout-summary table.shop_table tr.order-total td {
  padding-top: 15px;
  border-top: 2px solid var(--kal-line-strong);
  font-size: 1.08rem;
  font-weight: 700;
}
.kal-checkout-summary table.shop_table tr.order-total td,
.kal-checkout-summary table.shop_table tr.order-total .amount,
.kal-checkout-summary table.shop_table tr.shipping td { white-space: nowrap; }
.kal-checkout-summary table.shop_table tr.order-total .amount { color: var(--kal-ink); font: 700 1.35rem var(--kal-font-body); }

/* Űrlapmezők a teljes WooCommerce felületen */
.woocommerce form .form-row { width: auto; margin: 0; padding: 0; float: none; }
.woocommerce form .form-row-wide, .woocommerce form .form-row-first, .woocommerce form .form-row-last { width: auto; float: none; }
.woocommerce-billing-fields__field-wrapper,
.woocommerce-shipping-fields__field-wrapper { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; }
.woocommerce-billing-fields__field-wrapper .form-row-wide,
.woocommerce-shipping-fields__field-wrapper .form-row-wide { grid-column: 1 / -1; }
.woocommerce form .form-row label { display: block; margin-bottom: 5px; color: var(--kal-ink); font-size: .83rem; font-weight: 700; }
.woocommerce form .form-row label .required { color: var(--kal-berry); border: 0; }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .select2-container .select2-selection--single {
  width: 100%;
  height: auto;
  padding: 12px 15px;
  border: 1.5px solid var(--kal-line-strong);
  border-radius: var(--kal-radius);
  background: var(--kal-bg);
  color: var(--kal-ink);
  font: .96rem/1.35 var(--kal-font-body);
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
  outline: none;
  border-color: var(--kal-accent);
  box-shadow: 0 0 0 3px var(--kal-accent-soft);
}
.woocommerce form .form-row textarea { min-height: 96px; resize: vertical; }
.woocommerce .select2-container .select2-selection--single .select2-selection__rendered { padding: 0; line-height: 1.35; color: var(--kal-ink); }
.woocommerce .select2-container .select2-selection--single .select2-selection__arrow { top: 12px; right: 10px; }
.woocommerce form .form-row.woocommerce-invalid input.input-text { border-color: var(--kal-danger); }

/* Értesítések */
.woocommerce-message.woocommerce-message,
.woocommerce-info.woocommerce-info,
.woocommerce-error.woocommerce-error,
.woocommerce-notice.woocommerce-notice {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  margin: 0 0 22px;
  padding: 15px 20px;
  border: 1px solid var(--kal-line);
  border-top: 0;
  border-right: 0;
  border-bottom: 0;
  border-left: 4px solid var(--kal-brand);
  border-radius: var(--kal-radius);
  background: var(--kal-bg-soft);
  color: var(--kal-ink);
  font-size: .94rem;
  list-style: none;
}
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before { display: none; }
.woocommerce-message.woocommerce-message { border-left-color: var(--kal-success); background: var(--kal-success-soft); }
.woocommerce-info.woocommerce-info { border-left-color: var(--kal-brand); background: var(--kal-brand-soft); }
.woocommerce-error.woocommerce-error { border-left-color: var(--kal-danger); background: var(--kal-danger-soft); }
.woocommerce-message .button, .woocommerce-info .button, .woocommerce-error .button { margin-left: auto; }

/* Általános Woo gombok egységesítése */
.woocommerce .button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button.alt,
.woocommerce button.button.alt {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 26px;
  border: 2px solid var(--kal-line-strong);
  border-radius: var(--kal-radius-pill);
  background: var(--kal-bg);
  color: var(--kal-ink);
  font: 700 .9rem var(--kal-font-body);
  line-height: 1.2;
  text-decoration: none;
  transition: background-color .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease;
}
.woocommerce .button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover { border-color: var(--kal-accent); background: var(--kal-accent-soft); color: var(--kal-accent-dark); }
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce .checkout-button,
.woocommerce #place_order {
  border-color: var(--kal-accent);
  background: var(--kal-accent);
  color: #fff;
}
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce .checkout-button:hover,
.woocommerce #place_order:hover {
  border-color: var(--kal-accent-dark);
  background: var(--kal-accent-dark);
  color: #fff;
  box-shadow: var(--kal-shadow-md);
}
.woocommerce .button:disabled, .woocommerce .button.disabled { opacity: .55; cursor: not-allowed; }

/* Fiók oldal */
.woocommerce-account .woocommerce-MyAccount-navigation ul { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 6px; }
.woocommerce-account .woocommerce-MyAccount-navigation li a {
  display: block;
  padding: 11px 16px;
  border-radius: var(--kal-radius);
  color: var(--kal-ink);
  font-weight: 600;
  text-decoration: none;
}
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover { background: var(--kal-bg-soft); }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { background: var(--kal-accent-soft); color: var(--kal-accent-dark); }
/*
 * Kártyás táblázat a fiókoldalon és a rendelés részleteinél. Az
 * összegzőkben (kosár, pénztár) viszont nem kell keret, mert azok már
 * egy kártyán belül vannak. Enélkül dobozt látunk a dobozban.
 */
.woocommerce table.shop_table {
  border: 1px solid var(--kal-line);
  border-radius: var(--kal-radius-lg);
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
}
.woocommerce table.shop_table th { background: var(--kal-bg-soft); color: var(--kal-ink); }

.kal-cart-page-grid .cart_totals table.shop_table,
.kal-checkout-summary table.shop_table,
.woocommerce-checkout #order_review table.shop_table,
.kal-cart-page-grid table.cart {
  border: 0;
  border-radius: 0;
  overflow: visible;
  background: transparent;
}
.kal-cart-page-grid .cart_totals table.shop_table th,
.kal-checkout-summary table.shop_table th,
.woocommerce-checkout #order_review table.shop_table th { background: transparent; }

/* Köszönőoldal */
.woocommerce ul.woocommerce-thankyou-order-details {
  display: flex;
  flex-wrap: wrap;
  gap: 22px;
  margin: 0 0 28px;
  padding: 22px 26px;
  border: 1px solid var(--kal-line);
  border-radius: var(--kal-radius-lg);
  background: var(--kal-bg-soft);
  list-style: none;
}
.woocommerce ul.woocommerce-thankyou-order-details li { border: 0; color: var(--kal-ink-soft); font-size: .82rem; text-transform: uppercase; letter-spacing: .06em; }
.woocommerce ul.woocommerce-thankyou-order-details li strong { display: block; margin-top: 4px; color: var(--kal-ink); font-size: 1.05rem; text-transform: none; letter-spacing: 0; }

/* ============================================================
   13. TOAST VISSZAJELZÉS
   ============================================================ */
.kal-toast {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 200;
  display: flex;
  align-items: center;
  gap: 11px;
  max-width: min(380px, calc(100vw - 40px));
  padding: 14px 20px;
  border-radius: var(--kal-radius);
  background: var(--kal-ink);
  color: #FFF6E9;
  font-size: .92rem;
  font-weight: 600;
  box-shadow: var(--kal-shadow-lg);
  animation: kal-toast-in .22s ease;
}
.kal-toast[hidden] { display: none; }
.kal-toast__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 24px;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--kal-success);
  color: #fff;
  font-size: .8rem;
}
.kal-toast--error .kal-toast__icon { background: var(--kal-danger); }
@keyframes kal-toast-in { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }

/* ============================================================
   14. RESZPONZÍV
   ============================================================ */
@media (max-width: 1100px) {
  .kal-main-menu > li > a { padding: 10px 10px; font-size: .9rem; }
  .kal-header-main { gap: 18px; }
}

@media (max-width: 1024px) {
  .kal-mainnav { display: none; }
  .kal-menu-toggle { display: flex; }
  .kal-footer-grid { grid-template-columns: 1fr 1fr; gap: 32px; }

  .kal-shop-toolbar { display: block; }
  .kal-shop-layout { grid-template-columns: 1fr; }
  .kal-shop-layout__filters { position: fixed; inset: 0; z-index: 130; pointer-events: none; }
  .kal-shop-filters__backdrop {
    position: fixed;
    inset: 0;
    z-index: 131;
    display: block;
    border: 0 !important;
    background: rgba(58, 34, 5, .5) !important;
    box-shadow: none !important;
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s ease;
  }
  .kal-shop-filters {
    position: fixed;
    z-index: 132;
    inset: 0 auto 0 0;
    width: min(360px, 88vw);
    max-width: 100%;
    max-height: none;
    overflow-y: auto;
    border: 0;
    border-radius: 0;
    box-shadow: var(--kal-shadow-lg);
    transform: translateX(-105%);
    transition: transform .24s ease;
  }
  .kal-shop-layout__filters.is-open { pointer-events: auto; }
  .kal-shop-layout__filters.is-open .kal-shop-filters__backdrop { opacity: 1; pointer-events: auto; }
  .kal-shop-layout__filters.is-open .kal-shop-filters { transform: translateX(0); }
  .kal-shop-filters__close { display: inline-flex; }
  .kal-shop-filters__actions { position: sticky; bottom: 0; margin: 20px -22px -22px; padding: 14px 22px 22px; background: var(--kal-bg); }
  body.kal-shop-filters-open { overflow: hidden; }

  .kal-shop-layout__products ul.products,
  .woocommerce .related ul.products,
  .woocommerce .upsells ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .woocommerce div.product { grid-template-columns: 1fr; row-gap: 28px; }
  .woocommerce div.product > .summary { position: static; }
  .woocommerce div.product > *:not(.woocommerce-product-gallery):not(div.images):not(.summary):not(span.onsale) { margin-top: 20px; }
  .woocommerce div.product .woocommerce-product-gallery__image img { aspect-ratio: 1 / 1; }

  .kal-cart-page-grid, .kal-checkout-layout { grid-template-columns: 1fr; gap: 24px; }
  .kal-cart-page-grid .cart-collaterals, .kal-checkout-summary { position: static; }
}

@media (max-width: 782px) {
  .kal-topbar__note { display: none; }
  .kal-header-main { min-height: 70px; gap: 12px; }
  .kal-brand img, .kal-brand .custom-logo { max-height: 46px; }
  .kal-brand__name { font-size: 1.3rem; }

  .kal-mini-cart { position: fixed; top: auto; right: 12px; left: 12px; bottom: 12px; width: auto; max-width: none; }

  .woocommerce-billing-fields__field-wrapper,
  .woocommerce-shipping-fields__field-wrapper { grid-template-columns: 1fr; }
  .kal-checkout-summary__card,
  .kal-checkout-payment-section,
  .woocommerce-checkout form.checkout #customer_details .col-1,
  .woocommerce-checkout form.checkout #customer_details .col-2 { padding: 20px; }

  .kal-cart-page-grid table.cart tr.cart_item {
    grid-template-columns: 84px minmax(0, 1fr);
    grid-template-areas: "thumb name" "thumb quantity" "subtotal remove";
    gap: 10px 14px;
  }
  .kal-cart-page-grid table.cart td.product-quantity,
  .kal-cart-page-grid table.cart td.product-subtotal { justify-self: start; }
  .kal-cart-page-grid table.cart td.actions .coupon { width: 100%; margin: 0 0 8px; }
  .kal-cart-page-grid table.cart td.actions .coupon .input-text { flex: 1 1 auto; width: auto; }

  .woocommerce div.product form.cart { gap: 10px; }
  .woocommerce div.product form.cart .button.single_add_to_cart_button { flex: 1 1 100%; }
}

@media (max-width: 600px) {
  .kal-shop-layout__products ul.products,
  .woocommerce .related ul.products,
  .woocommerce .upsells ul.products { grid-template-columns: 1fr; }
  .kal-shop-layout__products .woocommerce-result-count,
  .kal-shop-layout__products .woocommerce-ordering { float: none; margin: 0 0 12px; }
  .kal-footer-grid { grid-template-columns: 1fr; gap: 28px; padding: 40px 0 30px; }
  .kal-shop-card__actions { grid-template-columns: 1fr; }
  .kal-mini-cart__actions { grid-template-columns: 1fr; }
  .kal-toast { right: 12px; left: 12px; bottom: 12px; max-width: none; }
}

/* ============================================================
   15. AKADÁLYMENTESSÉG
   ============================================================ */
.screen-reader-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.skip-link:focus {
  position: fixed !important;
  top: 12px;
  left: 12px;
  z-index: 999;
  width: auto;
  height: auto;
  padding: 12px 20px;
  clip: auto;
  border-radius: var(--kal-radius);
  background: var(--kal-ink);
  color: #fff;
  font-weight: 700;
  text-decoration: none;
}
:where(a, button, input, select, textarea, summary):focus-visible {
  outline: 3px solid var(--kal-accent);
  outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ============================================================
   16. PRIORITÁS: SZÖVEGSZÍNEK MINDEN MÁS FÖLÖTT

   Egy éles WordPress oldalon több stíluslap is a téma UTÁN töltődik
   be: az Elementor kit (`.elementor-kit-N a`), a WooCommerce blokkok
   (wc-blocks.css) és a fizetési átjárók sajátjai. Emiatt az azonos
   erősségű szabályaink veszítenek, hover állapotban pedig a
   `.elementor-kit-N a:hover` egy elemnévvel erősebb is nálunk.

   Ez a szakasz ezért !important-tal rögzíti a téma saját elemeinek a
   szövegszínét. Szándékosan csak a `color` tulajdonságra vonatkozik és
   csak a téma osztályaira, a tartalmi linkek színét nem érinti, azt
   továbbra is az Elementor globális beállítása adja.

   Ha valamelyiket felül akarod írni, használj szintén !important-ot.
   ============================================================ */

/* --- Gombok --- */
.kal-btn { color: var(--kal-ink) !important; text-decoration: none; }
.kal-btn--outline { color: var(--kal-ink) !important; }
.kal-btn--outline:hover,
.kal-btn--outline:focus { color: var(--kal-accent-dark) !important; }
.kal-btn--ghost { color: var(--kal-accent) !important; }
.kal-btn--ghost:hover { color: var(--kal-accent-dark) !important; }
.kal-btn--primary,
.kal-btn--primary:hover,
.kal-btn--primary:focus,
.kal-btn--dark,
.kal-btn--dark:hover,
.kal-btn--dark:focus { color: #fff !important; }

/* --- WooCommerce gombok --- */
.woocommerce .button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button { color: var(--kal-ink) !important; text-decoration: none; }
.woocommerce .button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover { color: var(--kal-accent-dark) !important; }
.woocommerce a.button.alt,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt,
.woocommerce .checkout-button,
.woocommerce .checkout-button:hover,
.woocommerce #place_order,
.woocommerce #place_order:hover,
.woocommerce ul.products li.product a.add_to_cart_button,
.woocommerce ul.products li.product a.add_to_cart_button:hover,
.woocommerce ul.products li.product .button.kal-shop-card__add,
.woocommerce ul.products li.product .button.kal-shop-card__add:hover,
.woocommerce div.product form.cart .button.single_add_to_cart_button,
.woocommerce div.product form.cart .button.single_add_to_cart_button:hover { color: #fff !important; }

/* --- Fejléc --- */
.kal-topbar a { color: #EFE4D6 !important; }
.kal-topbar a:hover { color: #fff !important; }
.kal-brand a,
.kal-brand .custom-logo-link { color: var(--kal-ink) !important; text-decoration: none; }
.kal-main-menu a { color: var(--kal-ink) !important; }
.kal-main-menu a:hover,
.kal-main-menu > li.current-menu-item > a,
.kal-main-menu > li.current-menu-ancestor > a { color: var(--kal-accent-dark) !important; }
.kal-icon-btn { color: var(--kal-ink) !important; text-decoration: none; }
.kal-icon-btn:hover { color: var(--kal-accent-dark) !important; }
.kal-mobile-menu a { color: var(--kal-ink) !important; }
.kal-mobile-menu .sub-menu a { color: var(--kal-ink-soft) !important; }
.kal-mobile-menu a.kal-mobile-menu__phone { color: var(--kal-accent) !important; }

/* --- Mini kosár --- */
.kal-mini-cart a { color: var(--kal-ink) !important; }
.kal-mini-cart a.kal-mini-cart__item-name:hover { color: var(--kal-accent) !important; }
.kal-mini-cart a.kal-mini-cart__remove,
.kal-mini-cart a.kal-mini-cart__remove:hover { color: var(--kal-danger) !important; }
.kal-mini-cart a.kal-mini-cart__shop-link,
.kal-mini-cart a.kal-mini-cart__shop-link:hover { color: var(--kal-accent) !important; }
.kal-mini-cart a.kal-btn--primary,
.kal-mini-cart a.kal-btn--primary:hover { color: #fff !important; }
.kal-mini-cart a.kal-btn--outline:hover { color: var(--kal-accent-dark) !important; }

/* --- Terméklista és szűrők --- */
.kal-shop-card__name a { color: var(--kal-ink) !important; text-decoration: none; }
.kal-shop-card__name a:hover { color: var(--kal-accent) !important; }
a.kal-shop-filter-chip { color: var(--kal-ink) !important; text-decoration: none; }
a.kal-shop-filter-chip:hover { color: var(--kal-accent) !important; }
a.kal-shop-filter-clear,
a.kal-shop-filter-clear:hover,
a.kal-shop-filters__reset,
a.kal-shop-filters__reset:hover { color: var(--kal-danger) !important; }
a.kal-shop-filter-option,
a.kal-shop-filter-option:hover { color: var(--kal-ink) !important; text-decoration: none; }
.woocommerce-breadcrumb a { color: var(--kal-brand) !important; text-decoration: none; }
.woocommerce-breadcrumb a:hover { color: var(--kal-accent) !important; }
.woocommerce-pagination a { color: var(--kal-ink) !important; }
.woocommerce-pagination a:hover { color: var(--kal-accent-dark) !important; }

/* --- Termékoldal --- */
.woocommerce div.product .product_meta a { color: var(--kal-ink-soft) !important; }
.woocommerce div.product .product_meta a:hover { color: var(--kal-accent) !important; }
.woocommerce-tabs ul.tabs li a { color: var(--kal-ink-soft) !important; }
.woocommerce-tabs ul.tabs li.active a,
.woocommerce-tabs ul.tabs li a:hover { color: var(--kal-ink) !important; }

/* --- Kosár, pénztár, fiók --- */
.kal-cart-page-grid td.product-name a { color: var(--kal-ink) !important; }
.kal-cart-page-grid td.product-name a:hover { color: var(--kal-accent) !important; }
.kal-cart-page-grid td.product-remove a.remove { color: transparent !important; }
.kal-cart-page-grid .cart_totals a,
.kal-cart-page-grid .cart_totals a:hover,
.kal-checkout-summary a,
.kal-checkout-summary a:hover,
.woocommerce-checkout a.showcoupon,
.woocommerce-checkout a.showcoupon:hover,
.woocommerce-privacy-policy-link,
.woocommerce-privacy-policy-link:hover,
.shipping-calculator-button,
.shipping-calculator-button:hover { color: var(--kal-accent) !important; }
.kal-cart-page-grid .cart_totals a.checkout-button,
.kal-cart-page-grid .cart_totals a.checkout-button:hover { color: #fff !important; }
.woocommerce-MyAccount-navigation a { color: var(--kal-ink) !important; }
.woocommerce-MyAccount-navigation li.is-active a { color: var(--kal-accent-dark) !important; }

/* --- Értesítések és lábléc --- */
.woocommerce-message a:not(.button),
.woocommerce-info a:not(.button),
.woocommerce-error a:not(.button) { color: var(--kal-accent) !important; }
.kal-site-footer a { color: var(--kal-footer-text) !important; }
.kal-site-footer a:hover { color: #fff !important; }
