/**
Theme Name: Zuby MS
Author: Brainstorm Force
Author URI: http://wpastra.com/about/
Description: Astra is the fastest, fully customizable & beautiful theme suitable for blogs, personal portfolios and business websites. It is very lightweight (less than 50KB on frontend) and offers unparalleled speed. Built with SEO in mind, Astra comes with schema.org code integrated so search engines will love your site. Astra offers plenty of sidebar options and widget areas giving you a full control for customizations. Furthermore, we have included special features and templates so feel free to choose any of your favorite page builder plugin to create pages flexibly. Some of the other features: # WooCommerce Ready # Responsive # Compatible with major plugins # Translation Ready # Extendible with premium addons # Regularly updated # Designed, Developed, Maintained & Supported by Brainstorm Force. Looking for a perfect base theme? Look no further. Astra is fast, fully customizable and beautiful theme!
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: zuby-ms
Template: astra
*/

/* ===== UNIVERZÁLNÍ CTA TLAČÍTKA ===== */
a.btn-primary,
a.btn-primary:visited {
  display: inline-block;
  text-decoration: none;
  border-style: solid;
  border-width: 1px;
  border-color: var(--ast-global-color-0);
  background-color: var(--ast-global-color-0);
  color: var(--ast-global-color-4);
  padding: 16px 24px;
  font-family: inherit;
  font-weight: 500;
  font-size: 14px;
  line-height: 1em;
  border-radius: 8px;
  transition: all 0.3s ease;
}

/* Hover efekt - check */
a.btn-primary:hover,
a.btn-primary:focus {
  background-color: var(--ast-global-color-1);
  border-color: var(--ast-global-color-1);
  color: #fff;
  text-decoration: none;
}


.btn-secondary {
  display: inline-block;
  background-color: transparent;
  color: #4B73A9;
  font-weight: 600;
  padding: 12px 28px;
  border-radius: 8px;
  border: 1px solid #4B73A9;
  text-decoration: none;
  transition: all 0.25s ease;
  text-align: center;
  font-size: 1rem;
}

.btn-secondary:hover {
  background-color: #4B73A9;
  color: #fff;
}

}

@media (max-width: 768px) {
  .btn-primary {
    width: 100%;
    padding: 14px 0;
  }
}

/* ===== TLAČÍTKO REZERVACE ===== */
@media (max-width: 768px) {
  #btnXdentBookNowOwn {
    display: block;
    width: 100%;
    box-sizing: border-box;
  }
}


/* ===== HEADING ANIMATION ===== */
.heading-accent {
  animation: colorChange 9s ease-in-out infinite;
}

@keyframes colorChange {
  0%, 40% {
    color: inherit;
  }
  50%, 90% {
    color: #4B73A9;
  }
  100% {
    color: inherit;
  }
}


/* ===== DENTÁLNÍ HYGIENA - PRŮBĚH NÁVŠTĚVY ===== */

.visit-process {
  width: 100%;
  background-color: #f9fbff;
  padding: 80px 20px;
  text-align: center;
}

.visit-process .section-title {
  font-size: 2rem;
  margin-bottom: 60px;
  color: #2a3e5c;
}

.timeline {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  position: relative;
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 20px;
}

/* Spojující čáry */
.timeline::before,
.timeline::after {
  content: "";
  position: absolute;
  top: 36px; /* zarovnání na střed kroužků */
  height: 2px;
  background-color: #b3c6e0;
  border-radius: 2px;
  z-index: 1;
}

.timeline::before {
  left: calc(16.6%);
  right: calc(50% + 40px);
}

.timeline::after {
  left: calc(50% + 40px);
  right: calc(16.6%);
}

/* Každý krok */
.step {
  flex: 1;
  position: relative;
  z-index: 2;
  text-align: center;
  max-width: 300px;
}

.step h3 {
  font-size: 1.2rem;
  margin-top: 20px;
  margin-bottom: 10px;
  color: #2a3e5c;
}

.step p {
  font-size: 1rem;
  line-height: 1.6;
  color: #444;
}

/* Kruh s číslem */
.circle {
  width: 70px;
  height: 70px;
  margin: 0 auto;
  border: 6px solid #b3c6e0;
  background-color: #4b73a9;
  color: #f9fbff;
  font-size: 1.5rem;
  font-weight: 600;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 2;
}

/* Malé zakončení čáry (kruhové tečky)
.timeline::after,
.timeline::before {
  background-image: radial-gradient(circle at right, #4b73a9 2px, transparent 2px);
  background-repeat: no-repeat;
  background-position: right center;
  background-size: 10px 10px;
}
*/

/* RESPONSIVE – mobily */
@media (max-width: 768px) {
  .timeline {
    flex-direction: column;
    align-items: center;
  }

  .timeline::before,
  .timeline::after {
    content: none;
  }

  .step {
    max-width: 400px;
    margin-bottom: 40px;
  }

  .circle {
    width: 60px;
    height: 60px;
  }
}


/* FAQ sekce */

.faq-section {
  width: 100%;
  background-color: #F9FBFF;
  padding: 60px 0;
}

.faq-container {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.faq-row {
  display: flex;
  gap: 20px;
}

.faq-column {
  display: flex;
  flex-direction: column;
  gap: 20px;
  width: 50%;
}

.faq-tile {
  display: flex;
  align-items: flex-start;
  background: linear-gradient(145deg, #E8EEF7 0%, #DCE5F2 100%);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.06);
  color: #1A1A1A;
  border-radius: 16px;
  padding: 24px;
  cursor: pointer;
  transition: all 0.25s ease;
  position: relative;
  overflow: hidden;
}

.faq-tile:hover {
  transform: translateY(-4px) scale(1.02);
  box-shadow: 0 8px 16px rgba(0,0,0,0.1);
}

.faq-icon {
  font-size: 2rem;
  color: #4B73A9;
  margin-right: 16px;
  flex-shrink: 0;
  line-height: 1;
  transition: transform 0.25s ease, color 0.25s ease;
}

.faq-content {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.faq-content h3 {
  color: #4B73A9;
  font-size: 1.25rem;
  margin-bottom: 8px;
  transition: font-size 0.25s ease, color 0.25s ease;
}

.faq-content p {
  color: #1A1A1A;
  line-height: 1.4;
  margin: 0;
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: all 0.35s ease;
}


/* Výšky a poměry stran */
.faq-small {
  aspect-ratio: 4 / 1;
}

.faq-large {
  aspect-ratio: 2 / 1;
  height: calc((100% - 20px) + 20px); /* kompenzace mezery mezi malými dlaždicemi */
}

input[type="checkbox"] {
  display: none;
}

/* Aktivní stav po kliknutí */
input[type="checkbox"]:checked + .faq-tile {
  background: linear-gradient(145deg, #4B73A9 0%, #395C8A 100%);
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15);
  color: #F9FBFF;
}

input[type="checkbox"]:checked + .faq-tile .faq-icon {
  color: #F9FBFF;
  transform: rotate(45deg);
}

input[type="checkbox"]:checked + .faq-tile h3 {
  color: #F9FBFF;
  font-size: 1.0rem; /* zmenšený nadpis */
}

input[type="checkbox"]:checked + .faq-tile p {
  opacity: 1;
  max-height: 200px; /* prostor pro text odpovědi */
  margin-top: 8px;
  color: #F9FBFF;
}

/* Responsivita */
@media (max-width: 900px) {
  .faq-row {
    flex-direction: column;
  }
  .faq-column {
    width: 100%;
  }
  .faq-large,
  .faq-small {
    aspect-ratio: auto;
    height: auto;
  }
  .faq-tile {
	transition: all 1s ease;
  }
}


/* Decision-tree sekce */

.decision-section {
  position: relative;
  background: linear-gradient(135deg, #1F4B81 0%, #2C5FA0 100%);
  padding: 40px 0;
  overflow: hidden;
  z-index: 0;
}

/* ANIMOVANÉ POZADÍ */
.decision-section::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 200%;
  height: 200%;
  background: radial-gradient(circle at 20% 20%, rgba(255,255,255,0.08), transparent 70%),
              radial-gradient(circle at 80% 80%, rgba(255,255,255,0.05), transparent 70%),
              radial-gradient(circle at 60% 40%, rgba(255,255,255,0.06), transparent 70%);
  animation: moveBg 60s linear infinite;
  z-index: 0;
  opacity: 0.5;
}

.decision-inner {
  position: relative;
  z-index: 1;
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 20px;
  text-align: left;
}

@keyframes moveBg {
  0%   { transform: translate(0,0) scale(1); }
  50%  { transform: translate(-150px, -150px) scale(1.1); }
  100% { transform: translate(0,0) scale(1); }
}

.decision-heading {
  color: #F9FBFF;
  font-size: 2.2rem;
  font-weight: 700;
  margin-bottom: 12px;
}

.decision-subtext {
  color: rgba(249, 251, 255, 0.9);
  font-size: 1.1rem;
  margin-bottom: 50px;
}

.decision-container {
  background: #fff;
  border-radius: 16px;
  max-width: 800px;
  margin: 0 auto;
  padding: 20px 40px 40px 40px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.15);
  text-align: center;
}

.decision-progress {
  height: 6px;
  background: #e0e0e0;
  border-radius: 3px;
  overflow: hidden;
  margin-bottom: 30px;
}

.decision-progress-bar {
  height: 100%;
  background: #1F4B81;
  width: 0%;
  transition: width 0.3s ease;
}

.decision-question {
  font-size: 1.6rem;
  margin-bottom: 30px;
  color: #1F4B81;
}

.decision-options button {
  background: #1F4B81;
  color: white;
  border: none;
  border-radius: 8px;
  padding: 12px 20px;
  margin: 8px;
  cursor: pointer;
  transition: all 0.3s ease;
}

.decision-options button:hover {
  background: #2C5FA0;
  transform: translateY(-2px);
}

/* Container pro checkbox možnosti */
.decision-options .checkbox-wrapper {
  display: inline-flex;
  align-items: center;
  background: white;
  color: #1F4B81;
  border-radius: 8px;
  border: 1px solid #1F4B81;
  padding: 12px 20px;
  margin: 8px;
  cursor: pointer;
  transition: all 0.3s ease;
  user-select: none;
}

/* Hover efekt */
.decision-options .checkbox-wrapper:hover {
  background: #2C5FA0;
  color: white;
  transform: translateY(-2px);
}

/* Skrytý native checkbox */
.decision-options .checkbox-wrapper input[type="checkbox"] {
  display: none;
}

/* Stylovaný vizuální "checkbox" */
.decision-options .checkbox-wrapper .custom-check {
  width: 20px;
  height: 20px;
  border: 1px solid #1F4B81;
  border-radius: 4px;
  margin-right: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
}

/* Hover rámečku */
.decision-options .checkbox-wrapper:hover .custom-check {
  border-color: white;
}

/* Při zaškrtnutí checkboxu (checkbox input checked) */
.decision-options .checkbox-wrapper input[type="checkbox"]:checked + .custom-check {
  border-color: white;          /* bílý rámeček */
  background: #1F4B81;          /* tmavě modré pozadí */
}

/* Celý wrapper, když je zaškrtnutý checkbox - label:has() - moderní prohlížeče */
.decision-options .checkbox-wrapper:has(input[type="checkbox"]:checked) {
  background: #1F4B81; /* tmavě modrá */
  color: white;
  transform: none; /* žádný posun jako při hoveru */
  border-color: white;
}

/* Fajfka, která se objeví při zaškrtnutí */
.decision-options .checkbox-wrapper input[type="checkbox"]:checked + .custom-check::after {
  content: "✓";
  color: white;
  font-size: 16px;
}

/* Text v labelu při zaškrtnutí */
.decision-options .checkbox-wrapper input[type="checkbox"]:checked ~ span {
  color: white;
}

/* Pro result text */
.decision-content p {
  text-align: center;
  position: relative;
  padding: 0px 0px 40px 0px;
  margin: 0 auto;
  max-width: 100%;
  opacity: 1;
  max-height: none;
  overflow: visible;
}

.decision-buttons {
  display: flex;
  flex-wrap: wrap; /* zalomení tlačítek na menších displejích */
  justify-content: center;
  gap: 0.8rem; /* mezera mezi tlačítky */
  margin-top: 1.5rem;
}

.restart-button button {
  border-radius: 8px;
  padding: 12px 20px;
  margin: 8px;
  border: 1px solid #1F4B81;
  background-color: white;
  color: #1F4B81;
  cursor: pointer;
  transition: all 0.3s ease;
}

/* === Reakce na odpovědi === */
.reaction-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.95);
  text-align: center;
  opacity: 0;
  transition: opacity 0.6s ease;
  z-index: 10;
}

.reaction-overlay.visible {
  opacity: 1;
}

.reaction-overlay.fade-out {
  opacity: 0;
}

/* === RESPONSIVE ÚPRAVY PRO MOBILNÍ VERZI === */
@media (max-width: 768px) {
  .decision-container {
    padding: 20px 30px 40px 30px; /* menší vnitřní odsazení */
  }

  .decision-question {
    font-size: 1.3rem;
    margin-bottom: 20px;
  }

  .decision-options button {
    width: 100%;
    margin: 6px 0;
    padding: 12px 16px;
  }

  .decision-options .checkbox-wrapper {
    width: 100%;
    justify-content: flex-start;
    margin: 6px 0;
  }

  .decision-progress {
    margin-bottom: 20px;
  }

  .decision-heading {
    font-size: 1.6rem;
  }

  .decision-subtext {
    font-size: 1rem;
  }
	
  .decision-buttons {
    flex-direction: column;
    align-items: stretch;
  }

  .decision-buttons button {
    width: 100%;
  }
}


/* === ZRUŠENÍ HOVER EFEKTŮ NA DOTEKOVÝCH ZAŘÍZENÍCH === */
@media (hover: none) and (pointer: coarse) {
  .decision-options button:hover,
  .decision-options .checkbox-wrapper:hover {
    background: #1F4B81;
    color: white;
    transform: none !important;
  }

  .decision-options button,
  .decision-options .checkbox-wrapper {
    transition: all 0.15s ease;
  }
}


/* ===== GRID DLAŽDIC ===== */
.services-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  transition: all 0.3s ease;
}

.service-tile {
  background: linear-gradient(145deg, #E8EEF7 0%, #DCE5F2 100%);
  border-radius: 16px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.06);
  padding: 32px 24px;
  text-align: left;
  transition: all 0.3s ease;
  cursor: pointer;
}

.service-tile:hover {
  transform: translateY(-6px) scale(1.02);
  box-shadow: 0 8px 16px rgba(0,0,0,0.1);
}

.service-icon {
  font-size: 2rem;
  color: #4B73A9;
  margin-bottom: 12px;
}

.service-icon img {
  width: 48px;
  height: 48px;
}

.service-tile h3 {
  font-size: 1.25rem;
  color: #4B73A9;
  margin-bottom: 10px;
}

.service-tile p {
  color: #1A1A1A;
  line-height: 1.5;
  flex-grow: 1;
}

/* Infobox */
.service-infobox {
  background: linear-gradient(145deg, #E8EEF7 0%, #DCE5F2 100%);
  border-radius: 16px;
  box-shadow: 0 6px 16px rgba(0,0,0,0.1);
  padding: 32px 24px;
  margin-top: 24px;
  opacity: 0;
  transform: scale(0.95);
  transition: opacity 0.35s ease, transform 0.35s ease;
  display: none;
  flex-direction: column;
  justify-content: flex-start;
  visibility: hidden;
  position: relative;
  z-index: 2;

  /* Desktop: výška gridu (2 řady) */
  height: calc((100% / 2 * 2) + 24px); /* 2 řady + gap */
  min-height: 500px; /* případná fallback hodnota */
}

.service-infobox.active {
  opacity: 1;
  visibility: visible;
}

/* Skrytý infobox */
.service-infobox.hidden {
  display: none;
}

.infobox-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
}

.infobox-title {
  color: #4B73A9;
  font-size: 1.5rem;
	margin: 0;
}

.infobox-back {
  cursor: pointer;
  text-decoration: underline;
}

.infobox-close {
  background: transparent;
  border: none;
  font-size: 1.2rem;
  cursor: pointer;
  color: #395C8A;
}

.infobox-close:hover {
	background: transparent;
	border: none;
}

.infobox-content p {
  color: #1A1A1A;
  line-height: 1.6;
}
/*
.infobox-cta {
  display: inline-block;
  margin-top: 20px;
  padding: 10px 20px;
  background-color: #4B73A9;
  color: #F9FBFF;
  text-decoration: none;
  font-weight: 600;
  border-radius: 8px;
  transition: all 0.25s ease;
}

.infobox-cta:hover {
  background-color: #395C8A;
}
*/


/* Responsivita */
@media (max-width: 1000px) {
  .services-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .service-infobox {
    height: auto;
  }
}

@media (max-width: 700px) {
  .services-grid {
    grid-template-columns: 1fr;
  }
}


/* ===== SVG ICONS ===== */
