/* ═══════════════════════════════════════════════════════════════
   Internet Praha 1 — CSS overrides
   Loaded after Elementor's generated styles.
   !important is required throughout: Elementor generates high-
   specificity styles from data-settings attributes.
   ═══════════════════════════════════════════════════════════════ */

/* ── Brand tokens ───────────────────────────────────────────────── */
:root {
  --ip1-navy:   #003F65;
  --ip1-cyan:   #19BEEE;
  --ip1-text:   #2d3436;
  --ip1-bg:     #eef2f7;
  --ip1-shadow: rgba(0,63,101,0.06);
}

/* ── Global: Elementor pseudo-element overlays block link clicks ── */
:is(.e-con, .e-con-inner, .e-con-boxed, .elementor-section)::before,
:is(.e-con, .e-con-inner, .e-con-boxed, .elementor-section)::after {
  pointer-events: none !important;
}
:is(.e-con, .e-con-inner) a {
  position: relative;
  z-index: 1;
  pointer-events: auto !important;
}

/* ── Page-specific tweaks ───────────────────────────────────────── */

/* Footer "Další informace" column left padding */
.elementor-element-282882c { padding-left: 36px !important; }

/* Reference page "Další klienti" heading top margin */
.elementor-element-5d8c828 { margin-top: 40px !important; }

/* SVJ "Jak probíhá instalace" list spacing */
.elementor-element-9c8ee6c ol li { margin-bottom: 10px !important; }
.elementor-element-9c8ee6c ul li { margin-bottom: 8px !important; }

/* SVJ "Co zajišťujeme" heading — left-align */
.elementor-element-b5bb0e9 h3 { text-align: left !important; }

/* ── Blog article pages ─────────────────────────────────────────── */
/* Scoped to: body.elementor-page-63 .elementor-9999             */

body.elementor-page-63 { background: var(--ip1-bg) !important; }
body.elementor-page-63 .elementor-9999,
body.elementor-page-63 .elementor-9999 .e-con-boxed {
  background: transparent !important;
  display: block !important;
}

/* Article card shell */
body.elementor-page-63 .elementor-9999 .e-con-inner {
  display: block !important;
  background: #fff !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  box-shadow: 0 2px 8px var(--ip1-shadow), 0 8px 48px rgba(0,63,101,0.10) !important;
  max-width: 800px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 52px !important;
  padding-right: 52px !important;
  padding-bottom: 64px !important;
  margin-bottom: 48px !important;
}

/* Dark hero band: spacer + heading share background & negative margins */
body.elementor-page-63 .elementor-9999 .page-top-spacer,
body.elementor-page-63 .elementor-9999 .elementor-widget-heading {
  background: var(--ip1-navy) !important;
  margin-left: -52px !important;
  margin-right: -52px !important;
}
body.elementor-page-63 .elementor-9999 .elementor-widget-heading {
  padding: 6px 52px 44px !important;
  border-bottom: none !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* "← Blog" breadcrumb chip above the title */
body.elementor-page-63 .elementor-9999 .elementor-widget-heading::before {
  content: "← Blog";
  display: block;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.55);
  margin-bottom: 14px;
}

/* H2 article title */
body.elementor-page-63 .elementor-9999 .elementor-heading-title {
  font-size: clamp(1.9rem, 3.8vw, 2.8rem) !important;
  line-height: 1.18 !important;
  font-weight: 800 !important;
  color: #fff !important;
  letter-spacing: -0.02em;
}

/* Body text block */
body.elementor-page-63 .elementor-9999 .elementor-widget-text-editor {
  font-size: 17px !important;
  padding-top: 32px !important;
  border-top: 3px solid var(--ip1-cyan) !important;
  margin-top: 0 !important;
  color: var(--ip1-text) !important;
}
body.elementor-page-63 .elementor-9999 .elementor-widget-text-editor :is(p, li, strong) {
  color: var(--ip1-text) !important;
}

/* Date meta — first paragraph, grey & smaller */
body.elementor-page-63 .elementor-9999 .elementor-widget-text-editor .elementor-widget-container > p:first-child {
  color: #9ca3af !important;
  font-size: 0.875rem !important;
  margin-bottom: 1.6em !important;
}

/* CTA button inside article body */
body.elementor-page-63 .elementor-9999 .elementor-widget-text-editor a.elementor-button {
  background: var(--ip1-navy) !important;
  color: #fff !important;
  padding: 12px 24px !important;
  border-radius: 6px !important;
  text-decoration: none !important;
  display: inline-block !important;
  font-weight: 600 !important;
  font-size: 15px !important;
  border: none !important;
}
body.elementor-page-63 .elementor-9999 .elementor-widget-text-editor a.elementor-button:hover {
  background: #004f7c !important;
  text-decoration: none !important;
}

/* Inline links */
body.elementor-page-63 .elementor-9999 .elementor-widget-text-editor a {
  color: #0088bb !important;
  text-decoration: underline !important;
  text-decoration-color: rgba(25,190,238,0.4) !important;
  text-underline-offset: 3px !important;
}
body.elementor-page-63 .elementor-9999 .elementor-widget-text-editor a:hover {
  color: var(--ip1-navy) !important;
  text-decoration-color: var(--ip1-navy) !important;
}

/* Paragraphs */
body.elementor-page-63 .elementor-9999 .elementor-widget-text-editor p {
  line-height: 1.85 !important;
  margin-bottom: 1.2em !important;
}

/* H3 section headings */
body.elementor-page-63 .elementor-9999 .elementor-widget-text-editor h3 {
  font-size: 1.4rem !important;
  font-weight: 700 !important;
  margin-top: 2.2em !important;
  margin-bottom: 0.7em !important;
  color: var(--ip1-navy) !important;
  border-left: 4px solid var(--ip1-cyan) !important;
  padding-left: 14px !important;
  line-height: 1.35 !important;
}

/* Lists */
body.elementor-page-63 .elementor-9999 .elementor-widget-text-editor :is(ul, ol) {
  line-height: 1.8 !important;
  margin-bottom: 1.2em !important;
  padding-left: 1.6em !important;
}
body.elementor-page-63 .elementor-9999 .elementor-widget-text-editor li { margin-bottom: 0.5em !important; }

/* ── Blog index: card grid ──────────────────────────────────────── */
.ip1-blog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 28px;
}

.ip1-blog-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 12px;
  padding: 24px 22px 20px;
  box-shadow: 0 2px 8px var(--ip1-shadow), 0 1px 3px rgba(0,63,101,0.04);
  text-decoration: none !important;
  color: inherit;
  transition: box-shadow 0.2s, transform 0.2s;
  min-height: 150px;
  overflow: hidden;
}

.ip1-blog-card__img {
  width: calc(100% + 44px);
  margin: -24px -22px 16px;
  height: 160px;
  background-size: cover;
  background-position: center;
  border-radius: 12px 12px 0 0;
  flex-shrink: 0;
}
.ip1-blog-card:hover {
  box-shadow: 0 6px 24px rgba(0,63,101,0.13);
  transform: translateY(-2px);
}

.ip1-blog-card__date {
  font-size: 12px;
  color: #9ca3af;
  display: block;
  margin-bottom: 10px;
}
.ip1-blog-card__title {
  font-size: 0.95rem;
  font-weight: 700;
  color: #111827;
  line-height: 1.45;
  flex: 1;
  margin-bottom: 18px;
}
.ip1-blog-card__arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  background: var(--ip1-cyan);
  color: #fff;
  border-radius: 50%;
  font-size: 20px;
  line-height: 1;
  flex-shrink: 0;
  align-self: flex-start;
}

/* ── Responsive ─────────────────────────────────────────────────── */

@media (min-width: 1025px) {
  /* EN nav: 6 items + button fit on one line — padding only, font unchanged */
  html[lang="en"] nav.elementor-nav-menu--main ul.elementor-nav-menu {
    flex-wrap: nowrap !important;
    justify-content: flex-start !important;
  }
  html[lang="en"] nav.elementor-nav-menu--main ul.elementor-nav-menu > li {
    flex: 0 0 auto !important;
    width: auto !important;
  }
  html[lang="en"] nav.elementor-nav-menu--main .elementor-item {
    padding-left: 12px !important;
    padding-right: 12px !important;
    white-space: nowrap !important;
  }
}

@media (max-width: 1024px) {
  /* Header CTA: own row below hamburger */
  .elementor-element-4c18523 {
    --width: 100% !important;
    width: 100% !important;
    order: 10 !important;
    justify-content: center !important;
  }
}

@media (max-width: 768px) {
  .ip1-blog-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 600px) {
  /* Blog article: full-width, no card radius/shadow */
  body.elementor-page-63 .elementor-9999 .e-con-inner {
    padding-left: 20px !important;
    padding-right: 20px !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }
  body.elementor-page-63 .elementor-9999 .page-top-spacer,
  body.elementor-page-63 .elementor-9999 .elementor-widget-heading {
    margin-left: -20px !important;
    margin-right: -20px !important;
  }
  body.elementor-page-63 .elementor-9999 .elementor-widget-heading {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
}

@media (max-width: 480px) {
  .ip1-blog-grid { grid-template-columns: 1fr; }
}

/* ── Hero height fix: short pages use 390px image, override to 900px + proper height ── */
/* opticka-sit hero (802910c) */
.elementor-element-802910c { --min-height: 560px !important; }
.elementor-element-802910c:not(.elementor-motion-effects-element-type-background),
.elementor-element-802910c > .elementor-motion-effects-container > .elementor-motion-effects-layer {
  background-image: url(/wp-content/uploads/2025/08/header_2600x900-kontakt-scaled.jpg) !important;
  background-position: center center !important;
  background-size: cover !important;
}

/* sprava-it hero (d368ba3) */
.elementor-element-d368ba3 { --min-height: 560px !important; }
.elementor-element-d368ba3:not(.elementor-motion-effects-element-type-background),
.elementor-element-d368ba3 > .elementor-motion-effects-container > .elementor-motion-effects-layer {
  background-image: url(/wp-content/uploads/2025/08/header_2600x900-firmy-scaled.jpg) !important;
  background-position: center center !important;
  background-size: cover !important;
}

/* shared hero (bd67e79): kontakt, o-nasi, svj, reference, kariera */
.elementor-element-bd67e79 { --min-height: 460px !important; }
.elementor-element-bd67e79:not(.elementor-motion-effects-element-type-background),
.elementor-element-bd67e79 > .elementor-motion-effects-container > .elementor-motion-effects-layer {
  background-image: url(/wp-content/uploads/2025/08/header_2600x900-kontakt-scaled.jpg) !important;
  background-position: center center !important;
  background-size: cover !important;
}
