/* =========================================================
   Portál občana – Životní situace + infopanely
   - sjednocená primární modrá = modrá z panelu Rezervace
   - bez zbytečných experimentálních bloků (booking-inline/box apod.)
   ========================================================= */

/* ====== THEME ====== */
:root{
  --gov-blue: #34548b;
  --gov-blue-dark: #2a446f;
  --gov-blue-soft: rgba(52,84,139,.12);

  --gov-text: #111827;
  --gov-muted: #6b7280;

  --gov-page-bg: #ffffff;
  --gov-card-bg: #ffffff;

  --gov-border: #e5e7eb;
  --gov-shadow: 0 1px 2px rgba(0,0,0,.04), 0 10px 28px rgba(0,0,0,.07);

  --gov-intro-bg: #f3f4f6;
  --gov-intro-border: #e5e7eb;

  --gov-gold-bg: #fbf3df;
  --gov-gold-border: #e8c77a;

  --gov-btn-yellow: #f0c23a;
}

/* ====== BASE / RESET ====== */
.gov-page, .gov-page *{ box-sizing: border-box; }
html, body{ background:#fff !important; }

.gov-page{
  background: var(--gov-page-bg) !important;
  color: var(--gov-text);
  line-height: 1.6;
}

/* ====== LAYOUT ====== */
.gov-container{
  max-width: 920px;
  margin: 0 auto;
  padding: 28px 18px 48px;
}
.gov-main{ width: 100%; }

/* ====== TYPO ====== */
.gov-title{
  font-size: 2rem;
  line-height: 1.15;
  margin: 0 0 18px 0;
  letter-spacing: -0.02em;
}
.gov-main h2{
  margin: 22px 0 12px;
  font-size: 1.25rem;
  line-height: 1.25;
  letter-spacing: -0.01em;
}

/* ====== CARD ====== */
.gov-card{
  background: var(--gov-card-bg);
  border: 1px solid var(--gov-border);
  border-radius: 16px;
  padding: 20px 22px;
  box-shadow: var(--gov-shadow);
  margin-bottom: 16px;
}
.gov-card p{ margin: 0; }
.gov-card p + p{ margin-top: 12px; }

.gov-intro{
  background: var(--gov-intro-bg);
  border: 1px solid var(--gov-intro-border);
  border-radius: 16px;
  padding: 18px 20px;
  color: #374151;
  margin-bottom: 22px;
}

.gov-highlight{
  background: #fff5cc;
  border-radius: 12px;
  padding: 14px 16px;
  margin: 14px 0;
  border: 1px solid rgba(0,0,0,.06);
}

/* ====== STEPS (kroky – karty 1/2/3) ====== */
.gov-step{
  display: flex;
  align-items: flex-start;
  gap: 14px;
}
.gov-step__number{
  flex: 0 0 auto;
  width: 34px;
  height: 34px;
  border-radius: 999px;
  background: var(--gov-blue);
  color: #fff;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 6px 14px rgba(52,84,139,.22);
  margin-top: 2px;
}
.gov-step__content h3{
  margin: 0 0 6px;
  font-size: 1.05rem;
  line-height: 1.25;
}
.gov-step__content p{
  margin: 0;
  color: var(--gov-muted);
}

/* ====== LISTY ====== */
.gov-list{ padding-left: 1.25rem; }
.gov-list li{ margin: 6px 0; }

.gov-checklist{
  list-style: none;
  padding-left: 0;
  margin: 0;
}
.gov-checklist li{
  position: relative;
  padding-left: 1.8rem;
  margin: 8px 0;
}
.gov-checklist li::before{
  content: "✔";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--gov-blue);
  font-weight: 900;
}

/* Pozor: .gov-steps používáme i jako wrapper pro karty kroků */
.gov-steps{
  margin: 0;
  padding: 0;
  list-style: none;
}
ul.gov-steps{
  list-style: disc;
  padding-left: 1.25rem;
}

.gov-note{
  margin-top: 10px;
  color: var(--gov-muted);
  font-size: .95rem;
}

/* ====== ICON HEADING ====== */
.gov-h3-icon{
  display: flex;
  align-items: center;
  gap: .55rem;
  margin: 0 0 10px 0;
}
.gov-h3-icon .po-ico{
  width: 20px;
  height: 20px;
  flex: 0 0 auto;
}

/* ====== SVG ICON (currentColor) ====== */
.po-ico{
  display: inline-block;
  vertical-align: middle;
  width: 24px;
  height: 24px;
  color: var(--gov-blue);
  fill: currentColor;
}

/* ====== FONT INHERIT (pravý sloupec / panely) ====== */
.gov-help, .gov-help * ,
.gov-panels, .gov-panels * ,
.gov-panel, .gov-panel *{
  font-family: inherit !important;
}

/* ====== INFO PANELS (pravý sloupec) ====== */
.gov-panels{
  display: grid;
  gap: 14px;
  max-width: 520px;
  position: sticky;
  top: 2rem;
  align-self: flex-start;

  border-top: 0 !important; /* jistota: žádná čára */
}
.gov-panels::before, .gov-panels::after{
  content: none !important;
  display: none !important;
}

@media (min-width: 992px){
  .gov-panels{ margin-top: 3rem; }
}
@media (max-width: 991.98px){
  .gov-panels{
    position: static;
    max-width: none;
    width: 100%;
    margin-top: 1rem;
  }
}

.gov-panel{
  border-radius: 18px;
  padding: 16px 18px;
  border: 1px solid var(--gov-border);
  box-shadow: var(--gov-shadow);
  background: #fff;
  font-size: 1rem;
  line-height: 1.6;
}

.gov-panel__title{
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 10px 0;
  font-size: 1.125rem;
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: -0.01em;
  color: var(--gov-text);
}
.gov-panel__title .po-ico{
  width: 22px;
  height: 22px;
  flex: 0 0 auto;
}

.gov-panel p{ margin: 0; color: #374151; }
.gov-panel .muted{ color: var(--gov-muted); }

/* Kontakt – zlatý panel */
.gov-panel--contact{
  background: var(--gov-gold-bg);
  border-color: var(--gov-gold-border);
}

/* Kontakt – layout */
.gov-contact{ display: grid; gap: 8px; }
.gov-contact__row{
  display: flex;
  align-items: flex-start;
  gap: 10px;
}
.gov-contact__row .po-ico{
  width: 18px;
  height: 18px;
  margin-top: 2px;
  flex: 0 0 auto;
}
.gov-contact a{
  color: var(--gov-blue);
  text-decoration: none;
  font-weight: 800;
}
.gov-contact a:hover{ text-decoration: underline; }

/* Kontakty – osoby jako mini-karty */
.gov-contact__people{
  display: grid;
  gap: 14px;
  margin-top: 10px;
}
.gov-person{
  background: rgba(255,255,255,.55);
  border: 1px solid rgba(52,84,139,.18);
  border-radius: 14px;
  padding: 12px;
}
.gov-person__name{
  margin: 0 0 8px 0;
  font-weight: 900;
  color: var(--gov-text);
}

/* Úřední hodiny – zrušit zebra pozadí */
.gov-hours{
  width: 100%;
  border-collapse: collapse;
  margin-top: 6px;
}
.gov-hours, .gov-hours *{ background: transparent !important; }
.gov-hours td{
  padding: 4px 0;
  color: var(--gov-muted);
  font-size: 1rem;
  background: transparent !important;
}
.gov-hours td:last-child{
  text-align: right;
  color: var(--gov-text);
  font-weight: 800;
}

/* Rezervace panel (pravý sloupec) */
.gov-panel--booking{
  background: var(--gov-blue);
  border-color: transparent;
  color: #fff;
  text-align: center;
}
.gov-panel--booking .gov-panel__title,
.gov-panel--booking p{
  color: #fff;
}
.gov-panel--booking .muted{
  color: rgba(255,255,255,.85);
}
.gov-panel--booking .po-ico{
  color: #fff;
}

/* Default centrování titulku (ikona + text) */
.gov-panel--booking .gov-panel__title{
  justify-content: center;
  margin: 0 0 12px 0; /* přepíše případný globální margin h3 */
  padding: 0;
}

/* Volitelné: „opticky perfektní“ střed textu nezávisle na ikoně
   (použij v HTML: .gov-panel__title gov-panel__title--center + span + spacer) */
.gov-panel--booking .gov-panel__title--center{
  display: grid !important;
  grid-template-columns: 24px 1fr 24px;
  align-items: center;
  margin: 0 0 12px 0 !important;
  padding: 0 !important;
}
.gov-panel--booking .gov-panel__title--center .po-ico{
  width: 24px;
  height: 24px;
  justify-self: start;
}
.gov-panel--booking .gov-panel__title--center > span{
  justify-self: center;
  text-align: center;
}
.gov-panel--booking .gov-panel__title-spacer{
  width: 24px;
  height: 24px;
}

/* ====== TLAČÍTKA ====== */

/* Žluté CTA (Objednat se) – v Rezervaci panelu */
.gov-btn{
  display: block;
  width: 100%;
  margin-top: 12px;
  padding: 12px 14px;
  border-radius: 12px;
  background: var(--gov-btn-yellow);
  color: var(--gov-text) !important;
  text-align: center;
  font-weight: 900;
  text-decoration: none;
  border: 0;
}
.gov-btn:hover{ filter: brightness(0.98); }

/* Modré tlačítko (Přejít na Portál dopravy) */
.gov-link a{
  display: inline-block;
  background: var(--gov-blue);
  color: #ffffff !important;
  padding: 0.7rem 1.4rem;
  border-radius: 12px;
  text-decoration: none;
  font-weight: 900;
  border: 2px solid var(--gov-blue);
  transition: all 0.2s ease;
}
.gov-link a:hover{
  background: var(--gov-blue-dark);
  border-color: var(--gov-blue-dark);
}

/* ====== RESPONSIVE (obecné) ====== */
@media (max-width: 520px){
  .gov-title{ font-size: 1.6rem; }
  .gov-card{ padding: 18px; }
  .gov-panel{ padding: 14px 16px; }
  .gov-step__number{ width: 32px; height: 32px; }
}

@media (max-width: 992px){
  .gov-container{
    max-width: 100%;
    width: 100%;
    padding-left: clamp(12px, 4vw, 18px);
    padding-right: clamp(12px, 4vw, 18px);
  }
}

/* ochrana proti přetečení textů/odkazů */
.gov-card, .gov-intro, .gov-panel{ overflow: hidden; }
.gov-card p, .gov-intro p, .gov-panel p, .gov-panel a{
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* =========================================================
   RZS / ADMIN – MOBILE FIX (FINÁL, sjednoceno do jednoho bloku)
   ========================================================= */
@media (max-width: 768px){

  /* Bootstrap wrapper (container-fluid) – zrušit boční odsazení */
  .wrapperRzs{
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  .wrapperRzs > .row{
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  /* Skrytí prázdných bočních sloupců (col-2) => obsah na plno */
  .wrapperRzs .row > .col-2{
    display: none !important;
  }

  /* Všechny col-8 na 100 % (na mobilu) + základní padding */
  .wrapperRzs .row > .col-8,
  .wrapperRzs .row > [class*="col-8"]{
    flex: 0 0 100% !important;
    max-width: 100% !important;
    width: 100% !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  /* Obsah stránky (popis) – širší */
  .wrapperRzs .popisKrok{
    padding-left: 4px !important;
    padding-right: 4px !important;
  }
  .wrapperRzs .popisKrok .gov-container,
  .wrapperRzs .popisKrok .gov-situation{
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  .wrapperRzs .popisKrok .gov-card{
    padding-left: 14px;
    padding-right: 14px;
  }

  /* Nápověda – doladěná šířka (finál: širší o 8px vs předchozí) */
  .wrapperRzs .rzsKrokNapoveda{
    padding-left: 40px !important;
    padding-right: 40px !important;
  }

  /* VolbyContainer (když je obsah uvnitř) – držet 100 % */
  .volbyContainer{
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
    box-sizing: border-box !important;
  }
  .volbyContainer .gov-page,
  .volbyContainer .gov-container,
  .volbyContainer .gov-main,
  .volbyContainer .gov-situation{
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box !important;
  }
  .volbyContainer .gov-card{
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}


/* ===== Kontakt panel (kartičky) – oprava vzhledu linků a barev ===== */
.gov-panel--contact .gov-person{
  text-align: left; /* ať se nic necentruje */
}

.gov-panel--contact .gov-person__name{
  color: var(--gov-blue-dark) !important; /* tmavě modrá jako dřív */
  font-weight: 700;
  margin: 0 0 6px 0;
}

/* Telefon + email: odstranit default "modrý podtržený odkaz" */
.gov-panel--contact .gov-person a{
  color: var(--gov-blue-dark) !important;
  text-decoration: none !important;
  font-weight: 600;
}

/* Hover – decentní */
.gov-panel--contact .gov-person a:hover{
  text-decoration: underline !important;
  text-underline-offset: 3px;
}

/* E-mail se nebude lámat po nesmyslných kouskách */
.gov-panel--contact .gov-person a{
  display: inline-block;
  max-width: 100%;
  overflow-wrap: anywhere;  /* zalomí až když je potřeba */
  word-break: normal;
}
