/*
Theme Name: Astra Veterina Child
Template: astra
Author: Wobify
Version: 1.0
*/

/* ====== Google Fonts (modern pair): Figtree (UI) + Sora (headlines) ====== */
@import url('https://fonts.googleapis.com/css2?family=Figtree:ital,wght@0,300..900;1,300..900&family=Sora:wght@400..800&display=swap');

/* Globální proměnné + font */
:root{
  --font-ui: "Figtree", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
  --font-title: "Sora", "Figtree", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;

  --lh-body: 1.66;  /* příjemná čitelnost na mobilech */
  --lh-head: 1.18;

  /* Barvy brandu (sjednocení s nadpisy/Novinkami) */
  --brand-blue:  #0B65D8;
  --brand-red:   #B71C1C;
  --brand-green: #1B5E20;

  /* Globální tlačítka */
  --btn-blue:  var(--brand-blue);
  --btn-red:   var(--brand-red);
  --btn-green: var(--brand-green);
  --btn-fg:    #FFFFFF;

  --btn-radius: 999px;
  --btn-shadow: 0 6px 14px rgba(0,0,0,.10);
  --btn-shadow-hover: 0 10px 24px rgba(0,0,0,.15);
  --btn-pad-y: .75em;
  --btn-pad-x: 1.5em;
  --btn-bw: 2px;
  --btn-focus: 0 0 0 3px rgba(11,101,216,.35);

  --er-blue:#0C1C3C;
  --er-green:#1B5E20;
}

/* Globální použití fontu (Figtree pro UI/text, Sora pro nadpisy) */
html{ -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
body, .site, .entry-content{
  font-family: var(--font-ui);
  font-weight: 400;
  line-height: var(--lh-body);
  font-optical-sizing: auto;
}

h1,h2,h3,h4,h5,h6{
  font-family: var(--font-title);
  font-weight: 700;
  line-height: var(--lh-head);
  letter-spacing: .12px;
  font-optical-sizing: auto;
}

/* Elementor – výchozí UI font, s výjimkou nadpisů (aby se uplatnil Sora) */
.elementor, .elementor *{ font-family: var(--font-ui) !important; }
.elementor :is(h1,h2,h3,h4,h5,h6){ font-family: var(--font-title) !important; font-weight:700 !important; }

time, .time, .post-meta{ font-variant-numeric: tabular-nums; }

/* =============== UNIFIKACE TLAČÍTEK NAPŘÍČ BUILDERY/PLUGINY =============== */
:root{
  --btn-inactive-bg:#FFFFFF;
  --btn-inactive-fg:#667085;              /* šedý text jako na screenu */
  --btn-inactive-brd:rgba(12,28,60,.16);  /* světle šedý okraj */
}

.elementor .elementor-button,
a.elementor-button, .elementor-button,
.wp-block-button__link, .wp-element-button,
.ast-button, .ast-custom-button, .ast-header-button a,
.btn,
input[type="submit"], input[type="button"], button[type="submit"],
/* WooCommerce */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce .single_add_to_cart_button, .woocommerce .add_to_cart_button,
/* Formuláře */
.wpcf7 input.wpcf7-submit,
.gform_wrapper .gform_button,
.nf-form-content input[type="button"], .nf-form-content input[type="submit"],
.ff-btn{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:.55em !important;

  /* VÝCHOZÍ = BÍLÁ PILULKA */
  background: var(--btn-inactive-bg) !important;
  color: var(--btn-inactive-fg) !important;
  border: var(--btn-bw) solid var(--btn-inactive-brd) !important;
  border-radius: var(--btn-radius) !important;
  padding: var(--btn-pad-y) var(--btn-pad-x) !important;

  font-weight:600 !important;
  text-decoration:none !important;
  line-height:1.2 !important;

  backdrop-filter: blur(8px) saturate(160%);
  -webkit-backdrop-filter: blur(8px) saturate(160%);

  box-shadow: var(--btn-shadow) !important;
  transition: transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease, border-color .25s ease !important;
  cursor:pointer !important;
}

/* HOVER = MODRÁ (jako barva písma v nadpisech) */
.elementor .elementor-button:hover,
a.elementor-button:hover, .elementor-button:hover,
.wp-block-button__link:hover, .wp-element-button:hover,
.ast-button:hover, .ast-custom-button:hover, .ast-header-button a:hover,
.btn:hover,
input[type="submit"]:hover, input[type="button"]:hover, button[type="submit"]:hover,
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce .single_add_to_cart_button:hover, .woocommerce .add_to_cart_button:hover,
.wpcf7 input.wpcf7-submit:hover,
.gform_wrapper .gform_button:hover,
.nf-form-content input[type="button"]:hover, .nf-form-content input[type="submit"]:hover,
.ff-btn:hover{
  background: var(--btn-blue) !important;   /* čistá modrá */
  color:#fff !important;
  border-color: transparent !important;
  transform:translateY(-1px) !important;
  box-shadow: var(--btn-shadow-hover) !important;
}

/* AKTIVNÍ/TOGGLED = ZELENÁ (např. [aria-pressed="true"]) */
.elementor .elementor-button:active,
a.elementor-button:active, .elementor-button:active,
.wp-block-button__link:active, .wp-element-button:active,
.ast-button:active, .ast-custom-button:active, .ast-header-button a:active,
.btn:active,
input[type="submit"]:active, input[type="button"]:active, button[type="submit"]:active,
.woocommerce a.button:active, .woocommerce button.button:active, .woocommerce input.button:active,
/* toggly a přepínače */
.elementor .elementor-button.is-active,
.elementor-button.is-active, .wp-element-button.is-active, .btn.is-active,
[aria-pressed="true"], [data-state="active"]{
  background: var(--btn-green) !important;
  color:#fff !important;
  border-color: transparent !important;
  transform:translateY(0) scale(.99) !important;
  box-shadow: var(--btn-shadow) !important;
}

/* Focus ring (a11y) – modrý rámeček */
.elementor .elementor-button:focus-visible,
a.elementor-button:focus-visible, .elementor-button:focus-visible,
.wp-block-button__link:focus-visible, .wp-element-button:focus-visible,
.ast-button:focus-visible, .ast-custom-button:focus-visible, .ast-header-button a:focus-visible,
.btn:focus-visible,
input[type="submit"]:focus-visible, input[type="button"]:focus-visible, button[type="submit"]:focus-visible,
.woocommerce a.button:focus-visible, .woocommerce button.button:focus-visible, .woocommerce input.button:focus-visible{
  outline:none !important;
  box-shadow: var(--btn-focus), var(--btn-shadow) !important;
}

/* Disabled */
.btn[disabled], .btn.is-disabled,
input[type="submit"][disabled], input[type="button"][disabled], button[disabled],
.woocommerce a.button.disabled, .woocommerce button.button.disabled, .woocommerce input.button.disabled{
  opacity:.55 !important; pointer-events:none !important; transform:none !important;
}

/* Volitelné varianty – ponechány, ale sladěny s novým vzhledem */
.elementor .elementor-button.is-ghost,
.elementor-button.is-ghost,
.wp-block-button__link.is-ghost,
.wp-element-button.is-ghost,
.ast-button.is-ghost, .ast-custom-button.is-ghost,
.btn.is-ghost{
  background:#fff !important;
  color: var(--btn-blue) !important;
  border: var(--btn-bw) solid rgba(11,101,216,.55) !important;
  box-shadow: none !important;
}
.elementor .elementor-button.is-ghost:hover,
.elementor-button.is-ghost:hover,
.wp-block-button__link.is-ghost:hover,
.wp-element-button.is-ghost:hover,
.ast-button.is-ghost:hover, .ast-custom-button.is-ghost:hover,
.btn.is-ghost:hover{
  background: var(--btn-blue) !important;
  color:#fff !important;
  border-color: transparent !important;
}

.elementor .elementor-button.is-outline,
.elementor-button.is-outline,
.wp-element-button.is-outline,
.ast-button.is-outline, .ast-custom-button.is-outline,
.btn.is-outline{
  background:#fff !important;
  color: var(--btn-blue) !important;
  border: var(--btn-bw) solid rgba(11,101,216,.55) !important;
}
.elementor .elementor-button.is-outline:hover,
.elementor-button.is-outline:hover,
.wp-element-button.is-outline:hover,
.ast-button.is-outline:hover, .ast-custom-button.is-outline:hover,
.btn.is-outline:hover{
  background: var(--btn-blue) !important;
  color:#fff !important;
  border-color: transparent !important;
}

/* Gutenberg speciál: "is-style-outline" */
.wp-block-button.is-style-outline > .wp-block-button__link{
  background:#fff !important;
  color: var(--btn-blue) !important;
  border:var(--btn-bw) solid rgba(11,101,216,.55) !important;
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover{
  background: var(--btn-blue) !important;
  color:#fff !important;
  border-color: transparent !important;
}

/* Velikosti / šířky beze změny */
.btn--sm,
.wp-block-button.is-style-squared .wp-block-button__link.btn--sm,
.elementor .elementor-button.btn--sm{ padding:.45em .95em !important; font-size:.92em !important; }
.btn--lg,
.wp-block-button .wp-block-button__link.btn--lg,
.elementor .elementor-button.btn--lg{ padding:1em 1.75em !important; font-size:1.05em !important; }
.btn--full, .button-full, .is-fullwidth,
.wp-block-button.is-style-fill.is-fullwidth .wp-block-button__link{ display:flex !important; width:100% !important; }

/* Ikony v tlačítkách */
.elementor .elementor-button-icon,
.btn svg, .wp-block-button__link svg { width:1.1em; height:1.1em; }

/* Mobilní menší padding */
@media (max-width: 680px){
  .elementor .elementor-button,
  a.elementor-button, .elementor-button,
  .wp-block-button__link, .wp-element-button,
  .ast-button, .ast-custom-button, .ast-header-button a,
  .btn,
  input[type="submit"], input[type="button"], button[type="submit"],
  .woocommerce a.button, .woocommerce button.button, .woocommerce input.button{
    padding:.55em .95em !important;
  }
}

/* Barva prvního písmena každého slova v nadpisu (pokud používáš) */
:root { --initial-letter-color: #D32F2F; }
.initial-letter { color: var(--initial-letter-color); }
.no-initials .initial-letter { color: inherit; }

/* ===== Smart Slider – zaoblení pouze IMG ve vrstvách (ponecháno) ===== */
:root { --ss-layer-radius: 16px; }
body #page .n2-ss-slider,
body #page .n2-ss-slider .n2-ss-slide,
body #page .n2-ss-slider .n2-ss-slide-background,
body #page .n2-ss-slider .n2-ss-slide-background-image {
  border-radius: 0 !important;
  clip-path: none !important;
  -webkit-clip-path: none !important;
  overflow: visible !important;
}
@supports (selector(:has(*))) {
  body #page .n2-ss-slider .n2-ss-layer:has(img),
  body #page .n2-ss-slider .n2-ss-layer:has(picture > img) {
    border-radius: var(--ss-layer-radius) !important;
    overflow: clip !important;
    clip-path: inset(0 round var(--ss-layer-radius)) !important;
    -webkit-clip-path: inset(0 round var(--ss-layer-radius)) !important;
    isolation: isolate;
  }
  body #page .n2-ss-slider .n2-ss-layer img,
  body #page .n2-ss-slider .n2-ss-layer picture > img {
    border-radius: inherit !important;
    display: block;
  }
}
@supports not (selector(:has(*))) {
  body #page .n2-ss-slider .n2-ss-layer img,
  body #page .n2-ss-slider .n2-ss-layer picture > img {
    border-radius: var(--ss-layer-radius) !important;
    clip-path: inset(0 round var(--ss-layer-radius)) !important;
    -webkit-clip-path: inset(0 round var(--ss-layer-radius)) !important;
    display: block;
  }
}
@supports (-webkit-appearance:none) {
  body #page .n2-ss-slider .n2-ss-layer img,
  body #page .n2-ss-slider .n2-ss-layer picture > img {
    -webkit-mask-image: none !important;
    mask-image: none !important;
  }
}
body #page .n2-ss-slider .n2-ss-layer img { filter: none !important; }

/* ==== Hlavní menu – menší písmo + decentní (ale viditelná) linka pod textem ==== */
:root{
  --font-menu: var(--font-ui);
  --menu-weight: 700;
  --menu-weight-sub: 600;

  /* VÍCE VIDITELNÉ, ALE POŘÁD STŘÍZLIVÉ */
  --menu-underline-h: 2px;          /* z 1px -> 2px */
  --menu-underline-gap: .45em;      /* lehce blíž k textu */
  --menu-underline-r: 999px;
  --menu-link-px: clamp(10px, .9vw, 16px);

  /* Snadné doladění intenzity */
  --menu-underline-alpha-rest: .26; /* klidový stav (bylo ~.18) */
  --menu-underline-alpha-hover: .46;/* hover/aktivní (bylo ~.28) */
}

/* DESKTOP – top-level */
.ast-desktop .ast-primary-header-bar .main-header-menu > .menu-item > .menu-link{
  font-family: var(--font-menu);
  font-weight: var(--menu-weight);
  font-size: clamp(16px, 1.1vw, 20px);
  letter-spacing: .01em;
  line-height: 1.2;
  text-decoration: none;
  position: relative;
  overflow: visible;
  padding-inline: var(--menu-link-px);
  padding-bottom: calc(var(--menu-underline-gap) + var(--menu-underline-h));
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  color: var(--ink, #0C1C3C);
}

/* Barvy textu */
.ast-desktop .main-header-menu > .menu-item > .menu-link:hover,
.ast-desktop .main-header-menu > .menu-item:hover > .menu-link{
  color: var(--brand-blue);
}
.ast-desktop .main-header-menu > .menu-item.current-menu-item > .menu-link,
.ast-desktop .main-header-menu > .menu-item.current-menu-ancestor > .menu-link{
  color: var(--brand-green);
}

/* Podtržení – plné barvy, ale řízené celkovou průhledností (alpha) */
.ast-desktop .main-header-menu > .menu-item > .menu-link::after{
  content:"";
  position:absolute;
  left:  var(--menu-link-px);
  right: var(--menu-link-px);
  bottom: 0;
  height: var(--menu-underline-h);
  border-radius: var(--menu-underline-r);
  background: linear-gradient(90deg, #B71C1C, #0B65D8); /* červená → modrá */
  opacity: var(--menu-underline-alpha-rest);           /* klidový stav */
  transform: translateY(var(--menu-underline-gap)) scaleX(0);
  transform-origin: center;
  transition: transform .28s ease, opacity .28s ease;
  pointer-events: none;
}

/* Na hover/aktivní trochu zesílit a roztáhnout */
.ast-desktop .main-header-menu > .menu-item:hover > .menu-link::after,
.ast-desktop .main-header-menu > .menu-item:focus-within > .menu-link::after,
.ast-desktop .main-header-menu > .menu-item.current-menu-item > .menu-link::after,
.ast-desktop .main-header-menu > .menu-item.current-menu-ancestor > .menu-link::after{
  transform: translateY(var(--menu-underline-gap)) scaleX(1);
  opacity: var(--menu-underline-alpha-hover);
}

/* A11y: focus ring */
.ast-primary-header-wrap .main-header-menu .menu-link:focus-visible{
  outline: 2px solid rgba(11,101,216,.6);
  outline-offset: 3px;
  border-radius: 8px;
}

/* MOBIL/TABLET – bez ozdobné linky (čistší) */
.ast-header-break-point .main-header-menu .menu-link{
  font-family: var(--font-menu);
  font-weight: var(--menu-weight);
  font-size: clamp(17px, 3.7vw, 20px);
  line-height: 1.3;
  text-decoration: none;
  padding-block: 14px;
}
.ast-header-break-point .main-header-menu .menu-link::after{ display:none !important; }

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  .ast-desktop .main-header-menu > .menu-item > .menu-link::after{ transition:none; }
}

/* ==== SUBMENU – vertikální linka (decentní) ==== */
:root{
  --submenu-bar-w: 2px;                 /* tloušťka linky (bylo 3px) */
  --submenu-bar-gap: .40em;             /* zkrácení shora i zdola */
  --submenu-bar-left: .50em;            /* odsazení linky od levého okraje */
  --submenu-bar-alpha-rest: .28;        /* klid – jemné */
  --submenu-bar-alpha-hover: .50;       /* hover/aktivní – o fous výraznější */
}

/* Základ submenu odkazu – rezerva vlevo pro linku */
.ast-desktop .ast-primary-header-bar .main-header-menu .sub-menu .menu-link{
  position: relative;
  padding-left: calc(1em + var(--submenu-bar-left) + 6px);
  padding-right: 1em;
  padding-bottom: 10px; /* malé svislé „dýchání“, lze klidně smazat */
  text-decoration: none;
  overflow: visible;
}

/* ZRUŠ underline variaci, pokud byla nasazená */
.ast-desktop .main-header-menu .sub-menu .menu-link::after{ display:none !important; }

/* NOVÁ vertikální linka – gradient, jemná průhlednost + animace */
.ast-desktop .main-header-menu .sub-menu .menu-link::before{
  content:"";
  position: absolute;
  left: var(--submenu-bar-left);
  top: var(--submenu-bar-gap);
  bottom: var(--submenu-bar-gap);
  width: var(--submenu-bar-w);
  border-radius: 999px;
  background: linear-gradient(180deg, var(--brand-red), var(--brand-blue));
  opacity: var(--submenu-bar-alpha-rest);
  transform: scaleY(.55);                 /* nenápadná v klidu */
  transform-origin: center;
  transition: transform .22s ease, opacity .22s ease;
  pointer-events: none;
}

/* Hover/aktivní – protáhnout a lehce zvýraznit */
.ast-desktop .main-header-menu .sub-menu .menu-item:hover > .menu-link::before,
.ast-desktop .main-header-menu .sub-menu .menu-item:focus-within > .menu-link::before,
.ast-desktop .main-header-menu .sub-menu .current-menu-item > .menu-link::before,
.ast-desktop .main-header-menu .sub-menu .current-menu-ancestor > .menu-link::before{
  transform: scaleY(1);
  opacity: var(--submenu-bar-alpha-hover);
}

/* Volitelně: jemná změna barvy textu na hover/aktivní (držíme decentní) */
.ast-desktop .main-header-menu .sub-menu .menu-item:hover > .menu-link{
  color: color-mix(in srgb, var(--brand-blue) 80%, #0C1C3C);
}
.ast-desktop .main-header-menu .sub-menu .current-menu-item > .menu-link,
.ast-desktop .main-header-menu .sub-menu .current-menu-ancestor > .menu-link{
  color: color-mix(in srgb, var(--brand-green) 80%, #0C1C3C);
}

/* Mobil/tablet – bez dekoru (čisté) */
.ast-header-break-point .main-header-menu .sub-menu .menu-link::before{ display:none !important; }

/* ===== Otevřeno/Zavřeno – status box + zvýraznění řádku dne ===== */
#contact-page #hodiny-mapa .open-status{
  display:flex; align-items:flex-start; gap:10px;
  padding:12px 14px; margin:6px 0 12px;
  background:#fff; border:1px solid var(--card-brd); border-radius:12px;
  box-shadow:0 6px 18px rgba(12,28,60,.06);
}
#contact-page #hodiny-mapa .open-dot{ width:10px; height:10px; border-radius:999px; margin-top:.45em; flex:0 0 auto; background:#9ca3af; }
#contact-page #hodiny-mapa .open-status.open  .open-dot{ background:#1B5E20; }
#contact-page #hodiny-mapa .open-status.soon  .open-dot{ background:#B76B00; }
#contact-page #hodiny-mapa .open-status.closed.open-today .open-dot{ background:#B76B00; }
#contact-page #hodiny-mapa .open-status.closed  .open-dot{ background:#B71C1C; }

#contact-page #hodiny-mapa .os-text{ line-height:1.35 }
#contact-page #hodiny-mapa .os-head{ font-weight:800; color:var(--brand); }
#contact-page #hodiny-mapa .os-sub{ margin-top:2px; color:#475569; font-size:.95rem; }

#contact-page #hodiny-mapa tr.is-today{ box-shadow: inset 3px 0 0 var(--primary); }
#contact-page #hodiny-mapa tr.is-open{
  background: color-mix(in srgb, var(--primary) 6%, #fff) !important;
}
@supports not (background: color-mix(in srgb, #000 10%, #fff)){
  #contact-page #hodiny-mapa tr.is-open{ background:#F3F8FF !important; }
}

/* ===== Pohotovostní banner – TEAL varianta (uklidňující, dobře čitelná) ===== */
/* Mění se pouze „plachta“ banneru. Ostatní prvky a chování beze změn. */
#er-banner{
  background: linear-gradient(180deg, #26A69A 0%, #009688 55%, #00796B 100%) !important;
  border-bottom: 1px solid rgba(0,0,0,.06) !important;
  box-shadow: 0 6px 18px rgba(12,28,60,.08) !important;

  /* jistota – žádné filtry ani překryvy, aby zůstala 100% klikatelnost */
  -webkit-backdrop-filter: none !important;
          backdrop-filter: none !important;
  pointer-events: auto !important;
}

/* (volitelné) na teal pozadí maličko zesvětšíme „lokální“ pilulky pro lepší čitelnost */
#er-banner .er-loc{
  background: rgba(255,255,255,.16) !important;
  border-color: rgba(255,255,255,.28) !important;
}

/* (volitelné) pro ultra-kontrast v úplně tmavých tématech */
@media (prefers-color-scheme: dark){
  #er-banner{
    background: linear-gradient(180deg, #2CB7AA 0%, #0FA194 55%, #0A766B 100%) !important;
  }
}