/* Naše otevřená náruč – vlastní styly nad Bootstrap 5.3 */

:root {
  --cream: #f4ede1;
  --cream-dark: #ede3d2;
  --terracotta: #c0603f;       /* velké nadpisy (plakát) */
  --terracotta-dark: #a34f33;  /* text, tlačítka (kontrast AA) */
  --teal-dark: #1f6b5c;        /* text, patička (kontrast AA) */
  --sage: #9fc3b5;
  --sage-light: #e6f0ea;
  --sand: #e8d9bf;
  --ink: #2b2b2b;
  --bs-body-font-family: "Nunito", "Segoe UI", system-ui, -apple-system, sans-serif;
  --bs-body-font-size: 1.125rem;
  --bs-body-line-height: 1.65;
  --bs-body-color: var(--ink);
  --bs-body-bg: var(--cream);
  --bs-link-color: var(--teal-dark);
  --bs-link-hover-color: var(--terracotta-dark);
  --bs-border-radius: .85rem;
}

@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
}

body {
  background: var(--bs-body-bg);
  color: var(--bs-body-color);
  font-family: var(--bs-body-font-family);
  font-size: var(--bs-body-font-size);
  line-height: var(--bs-body-line-height);
}

h1, h2, h3, h4 { font-weight: 800; }
p { max-width: 70ch; }
.text-center p { margin-left: auto; margin-right: auto; }

[id] { scroll-margin-top: 4.5rem; }
@media (min-width: 992px) and (max-width: 1199.98px) { [id] { scroll-margin-top: 6.5rem; } }

.icon { width: 1.2em; height: 1.2em; vertical-align: -.2em; flex: none; }

/* ---------- hlavička ---------- */
.site-header {
  background: var(--cream);
  border-bottom: 2px solid var(--sand);
}
.site-header .container { max-width: 1320px; }
@media (min-width: 992px) {
  .site-header { position: sticky; top: 0; z-index: 1020; }
}
.navbar-brand {
  display: inline-flex; align-items: center; gap: .45rem;
  color: var(--terracotta-dark); font-weight: 800; font-size: 1.25rem;
}
.navbar-brand:hover, .navbar-brand:focus { color: var(--terracotta); }
.brand-icon { width: auto; height: 1.5em; flex: none; }
.navbar-nav .nav-link {
  color: var(--teal-dark); font-weight: 700; padding: .35rem .7rem;
  border-radius: .5rem;
}
.navbar-nav .nav-link:hover, .navbar-nav .nav-link:focus {
  color: var(--terracotta-dark); background: var(--cream-dark);
}
.navbar-nav .nav-link:focus-visible, .navbar-brand:focus-visible, .btn-call:focus-visible, .footer-mail a:focus-visible {
  outline: 3px solid var(--terracotta); outline-offset: 2px; box-shadow: none;
}
.nav-phones { display: flex; flex-wrap: wrap; gap: .4rem; }
@media (max-width: 767.98px) {
  .navbar-nav .nav-link { padding: .3rem .5rem; }
  .nav-phones { width: 100%; margin-top: .35rem; }
  .nav-phones .btn-call.btn-sm { min-height: 44px; font-size: 1rem; flex: 1 1 auto; }
}

/* ---------- tlačítka s telefonem ---------- */
.btn-call {
  --bs-btn-bg: var(--terracotta-dark);
  --bs-btn-border-color: var(--terracotta-dark);
  --bs-btn-color: #fff;
  --bs-btn-hover-bg: #8f4128;
  --bs-btn-hover-border-color: #8f4128;
  --bs-btn-hover-color: #fff;
  --bs-btn-active-bg: #8f4128;
  --bs-btn-active-border-color: #8f4128;
  --bs-btn-active-color: #fff;
  --bs-btn-focus-shadow-rgb: 163, 79, 51;
  --bs-btn-font-weight: 700;
  --bs-btn-border-radius: 2rem;
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  min-height: 48px;
}
.btn-call.btn-sm { min-height: 0; font-size: .9rem; padding: .3rem .8rem; gap: .35rem; }
.btn-call.btn-sm .icon { width: 1em; height: 1em; }
.btn-call.btn-lg { font-size: 1.25rem; padding: .7rem 1.5rem; }
.btn-call-light {
  --bs-btn-bg: #fff;
  --bs-btn-border-color: #fff;
  --bs-btn-color: var(--teal-dark);
  --bs-btn-hover-bg: var(--cream);
  --bs-btn-hover-border-color: var(--cream);
  --bs-btn-hover-color: var(--teal-dark);
  --bs-btn-active-bg: var(--cream);
  --bs-btn-active-border-color: var(--cream);
  --bs-btn-active-color: var(--teal-dark);
  --bs-btn-focus-shadow-rgb: 255, 255, 255;
}

/* ---------- hero ---------- */
.hero { padding: 3rem 0 3.5rem; position: relative; overflow: hidden; }
.hero-head {
  display: flex; align-items: center; justify-content: center; flex-wrap: wrap;
  gap: .5rem 1.75rem; margin-bottom: .25rem;
}
.hero-icon { width: 7.5rem; height: auto; flex: none; }
.hero-title {
  color: var(--terracotta); text-transform: uppercase; letter-spacing: .02em;
  font-size: clamp(2.2rem, 6vw, 3.6rem); margin-bottom: 0;
}
.hero-subtitle {
  color: var(--teal-dark); font-weight: 700;
  font-size: clamp(1.35rem, 3.2vw, 1.9rem); margin-bottom: 1rem;
}
.hero-text { font-size: 1.25rem; margin-bottom: 0; max-width: 40em; }

.divider {
  width: 6rem; margin: 1.25rem auto; border: 0; height: 3px; opacity: 1;
  background: linear-gradient(90deg, transparent, var(--terracotta), transparent);
}

/* ---------- sekce ---------- */
.section { padding: 3.5rem 0; position: relative; overflow: hidden; }
.section > .container { position: relative; }
.section-alt { background: var(--cream-dark); }
.section-title {
  color: var(--terracotta); font-size: clamp(1.7rem, 4vw, 2.4rem);
  margin-bottom: 1.5rem; text-align: center;
}
.section-subtitle {
  color: var(--teal-dark); font-weight: 700; font-size: 1.25rem; margin-bottom: 1.5rem;
}
.narrow { max-width: 52rem; }
.intro { font-size: 1.2rem; margin-bottom: 1.75rem; }

/* ---------- služby ---------- */
.service-card, .principle-card {
  background: var(--sage-light);
  border: 2px solid var(--sage);
  box-shadow: 0 4px 16px rgba(46, 139, 122, .08);
}
.service-card .card-body { padding: 1.5rem; }
.service-icon {
  width: 3.5rem; height: 3.5rem; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  background: #fff; color: var(--terracotta); margin-bottom: .9rem;
}
.service-icon .icon { width: 1.9rem; height: 1.9rem; }
.service-card .card-title { color: var(--teal-dark); }
.service-list { margin: 0; padding-left: 1.25rem; }
.service-list li { margin-bottom: .25rem; }
.service-list li::marker { color: var(--terracotta); }

/* ---------- o nás ---------- */
.story + .story { margin-top: 3rem; padding-top: 3rem; border-top: 2px solid var(--sand); }
.story-name { color: var(--teal-dark); font-size: 1.6rem; margin-bottom: 1rem; }
.story-subtitle { color: var(--terracotta-dark); font-size: 1.25rem; margin: 1.5rem 0 .75rem; }
.story-photo {
  display: block; width: 100%; max-width: 22rem; height: auto;
  border-radius: var(--bs-border-radius); border: 3px solid #fff;
  box-shadow: 0 6px 20px rgba(0, 0, 0, .12);
}
@media (max-width: 991.98px) { .story-photo { max-width: 18rem; } }

/* ---------- jak pracujeme ---------- */
.principle-card .card-body { padding: 1.5rem; }
.principle-card p { margin: 0; }
.principle-card strong { color: var(--teal-dark); display: block; margin-bottom: .35rem; font-size: 1.15rem; }

/* ---------- citát ---------- */
.quote-section { padding-top: 2rem; padding-bottom: 2rem; }
.quote { font-size: clamp(1.35rem, 3vw, 1.75rem); font-weight: 700; color: var(--ink); max-width: 30em; }
.quote .heart { color: var(--terracotta); }

/* ---------- patička ---------- */
.site-footer { background: var(--teal-dark); color: #fff; padding: 2.5rem 0; }
.footer-area { font-size: 1.35rem; font-weight: 800; margin-bottom: .25rem; }
.footer-price { font-size: 1.15rem; margin-bottom: 1.5rem; opacity: .95; }
.footer-phones { display: flex; flex-wrap: wrap; gap: .75rem 1.25rem; justify-content: center; margin-bottom: 1.25rem; }
.footer-mail { font-size: 1.25rem; margin: 0; }
.footer-mail a {
  color: #fff; font-weight: 700; display: inline-flex; align-items: center; gap: .4rem;
  text-decoration-thickness: 2px; text-underline-offset: .2em; padding: .25rem 0; min-height: 44px;
}
.footer-mail a:hover, .footer-mail a:focus { color: var(--cream); }


/* ---------- úleva pro rodinu (citace) ---------- */
.family-quote {
  max-width: 52rem; margin: 2.5rem auto 0;
  padding: 2rem 2rem 1.5rem 2.5rem;
  background: #fff; border-left: 6px solid var(--terracotta);
  border-radius: 0 var(--bs-border-radius) var(--bs-border-radius) 0;
  box-shadow: 0 4px 16px rgba(192, 96, 63, .08);
}
.family-quote-title { color: var(--terracotta-dark); font-size: 1.35rem; margin-bottom: .9rem; }
.family-quote p:last-child { margin-bottom: 0; }
@media (max-width: 575.98px) {
  .family-quote { padding: 1.5rem 1.25rem 1.25rem 1.5rem; }
}

/* ---------- dekorace: větvičky ---------- */
.deco { position: absolute; pointer-events: none; user-select: none; width: 200px; height: auto; opacity: .9; }
.deco-tl { top: 0; left: 0; transform: scaleY(-1); }
.deco-tr { top: 0; right: 0; transform: scale(-1, -1); }
.deco-bl { bottom: 0; left: 0; }
.deco-br { bottom: 0; right: 0; transform: scaleX(-1); }
@media (max-width: 1199.98px) { .hero .deco { display: none; } }
@media (max-width: 991.98px) { .deco { display: none; } }
