/* ============================================================
   Kouzelný děda – design system (child theme)  v1.1
   ============================================================ */

:root {
  --km-violet: #5A2EA6; --km-violet-d: #4A2491; --km-coral: #FF5C39;
  --km-gold: #FFC53D; --km-teal: #14B8A6; --km-green: #16A34A;
  --km-ink: #1F2430; --km-slate: #5B6472; --km-cloud: #F6F7F9;
  --km-line: #ECEEF2; --km-vtint: #F3EDFC;
  --km-radius: 14px; --km-radius-lg: 18px;
}

/* ---------- Homepage (scoped .km-home) ---------- */
.km-home { color: var(--km-ink); font-family: inherit; }
.km-home img { max-width: 100%; height: auto; }
.km-home .km-ct { max-width: 1100px; margin: 0 auto; padding: 0 20px; }
.km-home .km-sec { padding: 42px 0; }
.km-home .km-bg { background: var(--km-cloud); }
.km-home .km-sechead { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 18px; }
.km-home .km-sechead h2 { font-size: 25px; font-weight: 800; letter-spacing: -0.01em; margin: 0; }
.km-home .km-sub { font-size: 14px; color: var(--km-slate); margin-top: 2px; }

/* Hero */
.km-hero { background: linear-gradient(180deg, var(--km-vtint) 0%, #fff 100%); padding: 50px 0 40px; }
.km-hero h1 { font-size: 40px; line-height: 1.13; font-weight: 800; letter-spacing: -0.02em; max-width: 680px; margin: 0; }
.km-hero h1 em { color: var(--km-violet); font-style: normal; }
.km-hero p { font-size: 18px; color: var(--km-slate); margin: 14px 0 24px; max-width: 560px; }
.km-hsearch { display: flex; gap: 10px; max-width: 620px; }
.km-hsearch input[type=text] { flex: 1; border: 1.5px solid var(--km-line); border-radius: var(--km-radius); padding: 13px 16px; font-size: 15px; background: #fff; outline: none; }
.km-go { background: var(--km-coral); color: #fff; border: 0; border-radius: var(--km-radius); padding: 0 26px; font-weight: 700; font-size: 16px; cursor: pointer; }
.km-chips { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 16px; }
.km-chip { background: #fff; border: 1px solid var(--km-line); border-radius: 999px; padding: 7px 14px; font-size: 13px; font-weight: 600; color: var(--km-violet); }
.km-chip:hover { border-color: var(--km-violet); }
.km-trust { display: flex; gap: 24px; flex-wrap: wrap; margin-top: 22px; color: var(--km-slate); font-size: 14px; font-weight: 500; }
.km-trust b { color: var(--km-ink); }

/* Obrázkové dlaždice */
.km-tiles { display: grid; gap: 14px; }
.km-c5 { grid-template-columns: repeat(5, 1fr); }
.km-c4 { grid-template-columns: repeat(4, 1fr); }
.km-tile { position: relative; height: 150px; border-radius: var(--km-radius-lg); overflow: hidden; display: block; background: var(--km-vtint); }
.km-tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.km-tile:hover img { transform: scale(1.06); }
.km-ov { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(31,18,60,0) 35%, rgba(31,18,60,.82) 100%); }
.km-lb { position: absolute; left: 14px; right: 14px; bottom: 12px; color: #fff; z-index: 1; }
.km-lb .km-nm { display: block; font-weight: 800; font-size: 16px; line-height: 1.2; }
.km-lb .km-c2 { display: block; font-size: 12px; opacity: .9; margin-top: 2px; }

/* Karty nabídek */
.km-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.km-offer { border: 1px solid var(--km-line); border-radius: var(--km-radius-lg); overflow: hidden; background: #fff; display: flex; flex-direction: column; transition: transform .15s, box-shadow .15s; color: var(--km-ink); }
.km-offer:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(31,36,48,.12); }
.km-ophoto { height: 150px; position: relative; overflow: hidden; background: var(--km-vtint); }
.km-ophoto img { width: 100%; height: 100%; object-fit: cover; }
.km-badge { position: absolute; top: 12px; left: 12px; background: #fff; font-size: 11px; font-weight: 700; padding: 4px 10px; border-radius: 999px; box-shadow: 0 2px 6px rgba(0,0,0,.18); display: flex; align-items: center; gap: 5px; }
.km-disc { position: absolute; top: 12px; right: 12px; background: var(--km-coral); color: #fff; font-size: 14px; font-weight: 800; padding: 5px 11px; border-radius: 8px; box-shadow: 0 3px 10px rgba(255,92,57,.35); letter-spacing: -0.01em; }
.km-dot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; }
.km-opbody { padding: 14px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.km-optitle { font-size: 15px; font-weight: 700; line-height: 1.3; }
.km-opfoot { margin-top: auto; display: flex; align-items: flex-end; justify-content: space-between; gap: 8px; padding-top: 6px; }
.km-pricewrap { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.km-price { font-size: 17px; font-weight: 800; color: var(--km-ink); }
.km-price del { font-size: 12px; font-weight: 400; color: var(--km-slate); }
.km-price ins { text-decoration: none; }
.km-save { font-size: 12px; font-weight: 700; color: var(--km-green); white-space: nowrap; }
.km-cta { background: var(--km-violet); color: #fff; border-radius: 12px; padding: 9px 14px; font-weight: 700; font-size: 13px; white-space: nowrap; flex: 0 0 auto; }
.km-offer:hover .km-cta { background: var(--km-violet-d); }
.km-note { font-size: 11px; color: var(--km-slate); opacity: .85; margin-top: 2px; }

/* Trust pruh nad výpisem kategorie */
.km-trustbar { display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: center; background: var(--km-vtint); border: 1px solid var(--km-line); border-radius: var(--km-radius); padding: 12px 18px; margin: 0 0 20px; font-size: 14px; color: var(--km-slate); }
.km-trustbar b { color: var(--km-ink); font-weight: 800; }
.km-trustbar > span { display: inline-flex; align-items: center; gap: 5px; }
.km-trustbar .km-sep { color: var(--km-line); font-weight: 700; }
@media (max-width: 560px) { .km-trustbar .km-sep { display: none; } .km-trustbar { gap: 4px 16px; } }

/* FAQ pod výpisem kategorie */
.km-faq { max-width: 920px; margin: 36px 0 8px; }
.km-faq > h2 { font-size: 22px; font-weight: 800; letter-spacing: -0.01em; margin: 0 0 14px; }
.km-faq-item { border: 1px solid var(--km-line); border-radius: var(--km-radius); padding: 0; margin-bottom: 10px; background: #fff; overflow: hidden; }
.km-faq-item summary { cursor: pointer; list-style: none; padding: 14px 18px; font-weight: 700; color: var(--km-ink); font-size: 15px; position: relative; }
.km-faq-item summary::-webkit-details-marker { display: none; }
.km-faq-item summary::after { content: "+"; position: absolute; right: 18px; top: 12px; font-size: 20px; font-weight: 400; color: var(--km-violet); }
.km-faq-item[open] summary::after { content: "−"; }
.km-faq-a { padding: 0 18px 16px; color: var(--km-slate); line-height: 1.7; font-size: 14px; }

/* Blog H1 */
.km-blog-h1 { grid-column: 1 / -1; font-size: 30px; font-weight: 800; letter-spacing: -0.02em; margin: 0 0 22px; color: var(--km-ink); }

/* Keyword H2 nad výpisem kategorie */
.km-cat-h2 { font-size: 19px; font-weight: 800; letter-spacing: -0.01em; color: var(--km-ink); margin: 4px 0 16px; }

/* „Jak vybrat" intro pod výpisem */
.km-catintro { max-width: 920px; margin: 32px 0 8px; }
.km-catintro h2 { font-size: 20px; font-weight: 800; letter-spacing: -0.01em; margin: 0 0 8px; }
.km-catintro p { color: var(--km-slate); line-height: 1.7; margin: 0; }

/* Související kategorie (interní prolinkování) */
.km-related { margin: 30px 0 8px; }
.km-related h2 { font-size: 18px; font-weight: 800; letter-spacing: -0.01em; margin: 0 0 12px; }
.km-related-list { display: flex; flex-wrap: wrap; gap: 9px; }
.km-relchip { display: inline-flex; align-items: center; gap: 7px; background: #fff; border: 1px solid var(--km-line); border-radius: 999px; padding: 8px 14px; font-size: 13px; font-weight: 600; color: var(--km-violet); transition: border-color .15s, box-shadow .15s; }
.km-relchip:hover { border-color: var(--km-violet); box-shadow: 0 4px 12px rgba(90,46,166,.12); color: var(--km-violet); }
.km-relchip span { background: var(--km-vtint); color: var(--km-slate); border-radius: 999px; padding: 1px 8px; font-size: 11px; font-weight: 700; }

/* Filtr Podle města / Podle kategorie (chipy) */
.km-cityfilter { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 18px; }
.km-cityfilter-l { font-size: 13px; font-weight: 700; color: var(--km-slate); margin-right: 2px; }
.km-cityfilter .km-relchip.is-active { background: var(--km-violet); border-color: var(--km-violet); color: #fff !important; }

/* Partneři */
.km-partners { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.km-pcard { border: 1px solid var(--km-line); border-radius: var(--km-radius-lg); padding: 22px; background: #fff; }
.km-pn { font-weight: 800; font-size: 17px; display: flex; align-items: center; gap: 8px; }
.km-pd { color: var(--km-slate); font-size: 13px; margin-top: 6px; }

/* SEO text */
.km-seo { max-width: 820px; }
.km-seo h2 { font-size: 20px; font-weight: 800; margin-bottom: 8px; }
.km-seo p { color: var(--km-slate); line-height: 1.7; }

/* ---------- Sladění ReHub akcentu s logem (červená/zelená → violet/coral) ---------- */
:root {
  --rehub-main-color: #5A2EA6 !important;
  --rehub-link-color: #5A2EA6 !important;
  --rehub-main-btn-bg: #5A2EA6 !important;
  --rehub-sec-color: #FF5C39 !important;
}
/* natvrdo zapsaná červená (#de1414) v dynamickém CSS – přebít na violet */
a { color: var(--km-violet); }
a:hover { color: var(--km-violet-d); }
.color_link, nav.top_menu ul li ul.sub-menu a:hover,
.rehub_woo_review .rehub_woo_tabs_menu li.current,
.post .rehub_woo_tabs_menu li.current,
.btn_more:hover, .tw-pagination .current,
.rething_item a.cat { color: var(--km-violet) !important; }
.rehub-main-color-border, .widget .title:after { border-color: var(--km-violet) !important; }

/* tlačítka (zelená #50cc81) → violet, hover tmavší */
.rehub_btn_color, .rething_button .btn_more,
.woocommerce a.woo_loop_btn, .woocommerce .button.checkout,
.woocommerce input.button, .re_thing_btn .rehub_offer_coupon,
.rehub_offer_coupon, .button_action {
  background-color: var(--km-violet) !important; border-color: var(--km-violet) !important; color: #fff !important;
}
.rehub_btn_color:hover, .woocommerce a.woo_loop_btn:hover,
.woocommerce .button.checkout:hover, .woocommerce input.button:hover {
  background-color: var(--km-violet-d) !important;
}

/* ---------- Header + menu (ReHub override, nativní třídy) ---------- */
/* vynutit bílý header (ReHub mu dává zelenou z barvy tlačítek) — neprůstřelná specificita */
html body #main_header,
html body #main_header.white_style,
html body .logo_section_wrap,
html body .logo_section_wrap.header_one_row,
html body .is-sticky .logo_section_wrap,
html body .sticky-active.logo_section_wrap,
html body .main-nav,
html body .responsive_nav_wrap {
  background: #fff !important;
  background-color: #fff !important;
  background-image: none !important;
}
#main_header { border-bottom: 1px solid var(--km-line); box-shadow: 0 2px 10px rgba(31,36,48,.04); }
.logo_section_wrap.header_one_row { padding-top: 8px; padding-bottom: 8px; }
/* horní úroveň menu: tmavý text (přebít dark_style bílou), violet hover */
.main-nav.dark_style nav.top_menu > ul > li > a,
nav.top_menu > ul.menu > li > a { font-weight: 600; color: var(--km-ink) !important; transition: color .15s; }
nav.top_menu > ul.menu > li > a:hover,
nav.top_menu > ul.menu > li.current-menu-item > a,
nav.top_menu > ul.menu > li.current-menu-parent > a { color: var(--km-violet) !important; }
/* ikony v headeru (vyhledávání, mobilní menu) na bílém pozadí ztmavit */
#main_header .rhicon, #main_header .heads_icon_label,
.main-nav.dark_style .dl-menuwrapper button i,
.main-nav.dark_style .dl-menuwrapper .rh-header-icon,
#main_header.white_style .btnsearch i { color: var(--km-ink) !important; }
.dl-menuwrapper button svg line { stroke: var(--km-ink) !important; }

/* dlouhá podmenu → vícesloupcový panel, ať jsou vidět všechny podkategorie */
nav.top_menu > ul > li > ul.sub-menu {
  max-height: 82vh; overflow-y: auto;
  border-radius: 12px; box-shadow: 0 16px 40px rgba(31,36,48,.16);
}
/* Cestovanie (552006), Zážitky (550364), Krása (550362): 3 stĺpce */
.menu-item-552006 > ul.sub-menu, .menu-item-550364 > ul.sub-menu, .menu-item-550362 > ul.sub-menu {
  width: 660px !important; column-count: 3; column-gap: 6px; padding: 14px !important;
}
.menu-item-552006 > ul.sub-menu > li,
.menu-item-550364 > ul.sub-menu > li,
.menu-item-550362 > ul.sub-menu > li { break-inside: avoid; }
/* sekcie bližšie k pravému okraju zarovnať doprava, aby panel nepretiekol */
.menu-item-550364 > ul.sub-menu, .menu-item-550362 > ul.sub-menu { left: auto !important; right: 0 !important; }
nav.top_menu ul.sub-menu > li > a { padding-top: 7px !important; padding-bottom: 7px !important; }
/* zaoblené vyhledávání + coral tlačítko */
.head_search input[type="text"], .head_search input[type="search"], .head_search .search-form input.field { border-radius: 12px 0 0 12px; }
.head_search button[type="submit"], .head_search .search-form button { background: var(--km-coral); border-radius: 0 12px 12px 0; border: 0; color: #fff; }

/* ---------- Patička (vlastní footer.php, dle návrhu) ---------- */
#theme_footer.km-footer { background: var(--km-ink) !important; background-image: none !important; padding: 46px 0 24px; color: #aab0bd; }
.km-footer .km-ct { max-width: 1100px; margin: 0 auto; padding: 0 20px; }
.km-foot-grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 28px; }
.km-foot-brand .km-foot-logo { display: inline-block; background: #fff; border-radius: 12px; padding: 8px 12px; }
.km-foot-brand .km-foot-logo img { height: 38px; display: block; width: auto; }
.km-foot-brand p { margin-top: 14px; color: #aab0bd; line-height: 1.6; max-width: 300px; }
.km-footer h4 { color: #fff; font-size: 15px; font-weight: 700; margin: 0 0 12px; }
.km-foot-col a { display: block; color: #cfd3dc; padding: 5px 0; text-decoration: none; }
.km-foot-col a:hover { color: #fff; }
.km-foot-cities { border-top: 1px solid #33384a; margin-top: 26px; padding-top: 20px; }
.km-foot-cities h4 { color: #fff; font-size: 15px; font-weight: 700; margin: 0 0 12px; }
.km-cities-list { display: flex; flex-wrap: wrap; gap: 8px; }
.km-cities-list a { display: inline-block; color: #cfd3dc !important; background: #2a2f3d; border-radius: 999px; padding: 6px 13px; font-size: 13px; text-decoration: none !important; }
.km-cities-list a:hover { background: #3a4150; color: #fff !important; }
.km-foot-bottom { border-top: 1px solid #33384a; margin-top: 30px; padding-top: 18px; display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; font-size: 13px; color: #8b91a0; }
.km-foot-bottom a { color: #cfd3dc; text-decoration: underline; }
.km-foot-bottom a:hover { color: #fff; }
@media (max-width: 860px) { .km-foot-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .km-foot-grid { grid-template-columns: 1fr; } }

/* ---------- Kategorie / archiv: použít homepage karty (.km-offer) ---------- */
/* symetrický grid se stejnou výškou, bez odrážek seznamu */
.woocommerce ul.products {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after { content: none !important; display: none !important; }
.woocommerce ul.products li.product.km-prod-cell {
  width: auto !important; margin: 0 !important; float: none !important; list-style: none !important;
}
@media (max-width: 980px) { .woocommerce ul.products { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .woocommerce ul.products { grid-template-columns: 1fr; } }
/* zrušit ReHub chrome na li, kartu kreslí .km-offer uvnitř */
.woocommerce ul.products li.product.km-prod-cell {
  border: 0 !important; box-shadow: none !important; background: transparent !important;
  padding: 0 !important; transform: none !important; overflow: visible !important;
}
.woocommerce ul.products li.product.km-prod-cell:hover { box-shadow: none !important; transform: none !important; }
.woocommerce ul.products li.product.km-prod-cell .km-offer { width: 100%; height: 100%; }
.term-description { max-width: 920px; color: var(--km-slate); line-height: 1.7; }
.woocommerce-pagination .page-numbers { border-radius: 10px; }

/* ---------- Detail nabídky ---------- */
body.single-product .product_title.entry-title { font-weight: 800; letter-spacing: -0.01em; }
/* úspora + trust mikrokopie pod affiliate CTA */
.km-pdp-save { margin: 12px 0 2px; font-size: 16px; font-weight: 800; color: var(--km-green); }
.km-pdp-save span { display: inline-block; background: rgba(22,163,74,.12); color: var(--km-green); padding: 2px 8px; border-radius: 6px; font-size: 13px; margin-left: 4px; vertical-align: middle; }
.km-pdp-note { font-size: 13px; color: var(--km-slate); margin: 8px 0 0; line-height: 1.55; max-width: 420px; }
.km-pdp-note strong { color: var(--km-ink); }
body.single-product .summary.whitebg { border-radius: var(--km-radius-lg); }
body.single-product .related-woo-section .related_title,
body.single-product .related-woo-area h3 { font-weight: 800; letter-spacing: -0.01em; }

/* Responsivita */
@media (max-width: 980px) {
  .km-c5, .km-c4 { grid-template-columns: repeat(2, 1fr); }
  .km-grid { grid-template-columns: repeat(2, 1fr); }
  .km-partners { grid-template-columns: repeat(2, 1fr); }
  .km-hero h1 { font-size: 32px; }
}
@media (max-width: 560px) {
  .km-c5, .km-c4 { grid-template-columns: 1fr 1fr; }
  .km-grid { grid-template-columns: 1fr; }
  .km-partners { grid-template-columns: 1fr; }
  .km-hsearch { flex-direction: column; }
  .km-go { padding: 12px; }
  .km-cta { padding: 10px 14px; font-size: 14px; }
}

/* ---------- Textové logo „Kúzelné miesta" (ReHub rehub_text_logo) ---------- */
#main_header .textlogo,
.logo-section .textlogo,
#logo_mobile_wrapper .textlogo {
  font-family: Poppins, sans-serif !important;
  font-weight: 800 !important;
  font-size: 23px;
  letter-spacing: -0.02em;
  line-height: 1.05;
  color: var(--km-ink) !important;
  padding: 0 !important;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
}
#main_header .textlogo::before,
.logo-section .textlogo::before {
  content: "";
  width: 25px; height: 25px;
  flex: 0 0 auto;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%235A2EA6' d='M12 2C8.1 2 5 5.1 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.9-3.1-7-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E") center/contain no-repeat;
}
/* slogan pod logom – decentný, skrytý na mobile */
#main_header .sloganlogo { font-size: 11.5px; color: var(--km-slate); font-weight: 500; margin-top: 2px; }
@media (max-width: 768px) { #main_header .sloganlogo { display: none; } #main_header .textlogo { font-size: 20px; } }

/* Textové logo v pätičke (biely chip, ink text + violet pin) */
.km-foot-logo .km-foot-brandname {
  display: inline-flex; align-items: center; gap: 7px;
  font-family: Poppins, sans-serif; font-weight: 800; font-size: 19px;
  letter-spacing: -0.02em; color: var(--km-ink); line-height: 1; white-space: nowrap;
}
.km-foot-logo .km-foot-brandname::before {
  content: ""; width: 21px; height: 21px; flex: 0 0 auto;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%235A2EA6' d='M12 2C8.1 2 5 5.1 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.9-3.1-7-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E") center/contain no-repeat;
}

/* Mobilné logo: skryť starý obrázok, zobraziť textové logo (desktop rieši rehub_text_logo) */
#logo_mobile_wrapper .logo_image_mobile img,
#mobpanelimg { display: none !important; }
#logo_mobile_wrapper .logo_image_mobile,
.mobpanel .logo_image_mobile,
a.logo_image_mobile {
  display: inline-flex !important; align-items: center; gap: 7px;
  font-family: Poppins, sans-serif; font-weight: 800; font-size: 19px;
  letter-spacing: -0.02em; color: var(--km-ink) !important; white-space: nowrap; text-decoration: none;
}
#logo_mobile_wrapper .logo_image_mobile::before,
a.logo_image_mobile::before {
  content: ""; width: 21px; height: 21px; flex: 0 0 auto;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%235A2EA6' d='M12 2C8.1 2 5 5.1 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.9-3.1-7-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E") center/contain no-repeat;
}
#logo_mobile_wrapper .logo_image_mobile::after,
a.logo_image_mobile::after { content: "Kúzelné miesta"; }
