/* ==========================================================================
   BODY LOGIC — sjednocení vzhledu (2026-07)
   Paleta: tmavě zelená / světle krémová / bílá / tmavě šedá.
   Tento blok je záměrně na konci souboru — přepisuje starší pravidla výše.
   ========================================================================== */

:root{
  --teal:#2c4a48;
  --cream:#efe8db;
  --page:#f7f4ef;
  --card:#ffffff;
  --ink:#23201d;
  --muted:#6f6a63;
  --line:#e3dbcb;
  --white:#ffffff;
  /* staré akcenty srovnané do palety, ať se nikde neobjeví cizí barva */
  --cause:#2c4a48;
  --cause-bg:#efe8db;
  --comp:#2c4a48;
  --pain:#2c4a48;
  --accent:#2c4a48;
}

body{
  background:var(--page);
  color:var(--ink);
}

h1,h2,h3{ color:var(--ink); }
a{ color:var(--teal); }

/* ---------- HORNÍ LIŠTA ---------- */
.topnav{
  background:var(--page);
  border-bottom:1px solid var(--line);
  padding:16px 28px;
  box-shadow:none;
  /* důležité: odkaz .brand má inline color:inherit, takže barvu musí dodat rodič */
  color:var(--ink);
  align-items:center;
}
.topnav .brand{ color:var(--ink); }
.topnav .brand .tagline{
  display:block;
  color:var(--teal);
  font-size:11px;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-weight:600;
  margin-left:0;
}
/* telefon patří na konec řádku, ne před navigaci */
.topnav nav{ flex-wrap:wrap; }
.topnav nav a.phone-cta{ order:99; }
.topnav nav a{
  color:var(--muted);
  background:transparent;
  border-radius:12px;
  padding:8px 10px;
}
.topnav nav a:hover{ color:var(--teal); background:var(--cream); }
.topnav nav a.active{
  color:var(--teal);
  background:transparent;
  font-weight:600;
}
.topnav nav a.phone-cta,
.topnav nav a.phone-cta:hover{
  background:var(--teal);
  color:#fff;
  border-radius:16px;
  padding:9px 17px;
  font-weight:600;
}

/* ---------- HLAVIČKA STRÁNKY ---------- */
.page-head{ padding:44px 0 8px; }
.page-head h1{ font-size:40px; line-height:1.12; }
.page-head p{ color:var(--muted); font-size:17px; }

/* ---------- KARTY ---------- */
.card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:22px;
  padding:30px 28px;
  box-shadow:none;
}
.card h2{ font-size:23px; }

/* ---------- TLAČÍTKA ---------- */
.btn-primary,
.submit-btn,
button.submit-btn{
  background:var(--teal);
  color:#fff;
  border:none;
  border-radius:16px;
  padding:15px 26px;
  font-weight:600;
  font-size:15px;
  line-height:1.2;
  cursor:pointer;
}
.btn-primary:hover,
.submit-btn:hover{ background:#203937; color:#fff; }

.btn-secondary{
  background:transparent;
  color:var(--teal);
  border:1.5px solid var(--line);
  border-radius:16px;
  padding:15px 26px;
  font-weight:600;
  font-size:15px;
}
.btn-secondary:hover{ background:var(--cream); border-color:var(--teal); color:var(--teal); }

.cta-row{ display:flex; gap:12px; flex-wrap:wrap; align-items:center; }

/* ---------- DROBNÉ TEXTY ---------- */
.footnote, .quick-book-note, .hint, .price-note, .billing-note{
  color:var(--muted);
}
.quick-book-note a, .footnote a{ color:var(--teal); }

/* ---------- ZÁVĚREČNÁ VÝZVA ---------- */
.home-cta-final{
  background:var(--teal);
  color:#fff;
  border:none;
  border-radius:28px;
  padding:44px 40px;
}
.home-cta-final h2,
.home-cta-final h3,
.home-cta-final p{ color:#fff; }
.home-cta-final p{ opacity:.85; }
.home-cta-final .btn-primary{ background:#fff; color:var(--teal); }
.home-cta-final .btn-primary:hover{ background:var(--cream); color:var(--teal); }
.home-cta-final .btn-secondary{ border-color:rgba(255,255,255,.4); color:#fff; }
.home-cta-final .btn-secondary:hover{ background:rgba(255,255,255,.12); color:#fff; border-color:#fff; }

/* ---------- FOTKY ---------- */
.photo-frame, .bio-photo, .map-embed{
  border-radius:20px;
  overflow:hidden;
  border:1px solid var(--line);
}
.photo-frame img, .bio-photo img{ display:block; width:100%; height:auto; }

/* ---------- SPOLUPRÁCE: KROKY ---------- */
.process-step{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:20px;
  padding:22px 24px;
}
.process-num{
  background:var(--teal);
  color:#fff;
  border-radius:50%;
  width:34px; height:34px;
  display:flex; align-items:center; justify-content:center;
  font-weight:700; font-size:15px;
  flex-shrink:0;
}
.voluntary-tag{
  background:var(--cream);
  color:var(--teal);
  border-radius:12px;
  padding:3px 10px;
  font-size:11px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}

/* ---------- O MNĚ: SEZNAM KURZŮ ---------- */
.cert-list li{
  border-bottom:1px solid var(--line);
  padding:9px 0 9px 20px;
  position:relative;
  list-style:none;
}
.cert-list{ padding-left:0; margin:0; }
.cert-list li:last-child{ border-bottom:none; }
.cert-list li::before{
  content:''; position:absolute; left:0; top:17px;
  width:7px; height:7px; border-radius:50%; background:var(--teal);
}

/* ---------- FAQ ---------- */
.faq-item{
  border-bottom:1px solid var(--line);
  padding:18px 0;
}
.faq-item:last-child{ border-bottom:none; }
.faq-item h3{ font-size:17px; margin:0 0 6px; }

/* ---------- SVALY ---------- */
.muscle-card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:20px;
  overflow:hidden;
}
.muscle-card .num{
  background:var(--teal);
  color:#fff;
  border-radius:50%;
}

/* ---------- KONTAKT ---------- */
.contact-block{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:20px;
  padding:24px 26px;
}
.map-link{ color:var(--teal); font-weight:600; }

/* ---------- CENÍK: KARTY MÍSTO TABULKY ---------- */
.prices{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; align-items:start; }
.price{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:22px;
  padding:30px 26px;
  position:relative;
}
.price.featured{
  background:var(--teal);
  border-color:var(--teal);
  color:#fff;
  padding-top:34px;
}
.price .star{
  display:flex; gap:7px; align-items:flex-start;
  background:rgba(255,255,255,.1);
  border-radius:12px; padding:10px 12px;
  font-size:12.5px; line-height:1.4; margin-bottom:20px;
  color:#fff; font-weight:600;
}
.price .star svg{ flex-shrink:0; margin-top:1px; }
.price h3{
  font-family:var(--font-display, 'Fraunces', serif);
  font-size:20px; margin:0 0 14px; font-weight:600;
  line-height:1.25; min-height:50px;
}
.price.featured h3{ min-height:0; color:#fff; }
.price .dur{
  display:inline-block; font-size:15px; font-weight:700; letter-spacing:.04em;
  background:var(--cream); color:var(--teal);
  padding:7px 15px; border-radius:14px; margin-bottom:16px;
}
.price.featured .dur{ background:rgba(255,255,255,.16); color:#fff; }
.price .amount{
  font-family:var(--font-display, 'Fraunces', serif);
  font-size:40px; font-weight:600; color:var(--teal);
  line-height:1; margin-bottom:20px;
}
.price.featured .amount{ color:#fff; }
.price ul{ list-style:none; padding:0; margin:0 0 24px; }
.price li{
  font-size:14.5px; padding:9px 0 9px 27px; position:relative;
  border-bottom:1px solid var(--line);
}
.price.featured li{ border-bottom-color:rgba(255,255,255,.16); }
.price li:last-child{ border-bottom:none; }
.price li::before{
  content:''; position:absolute; left:0; top:15px; width:14px; height:7px;
  border-left:2.5px solid var(--teal); border-bottom:2.5px solid var(--teal);
  transform:rotate(-45deg);
}
.price.featured li::before{ border-color:#fff; }
.price .btn-primary, .price .btn-secondary{ width:100%; text-align:center; display:block; }
.price.featured .btn-primary{ background:#fff; color:var(--teal); }

/* ---------- SPOLEČNÉ NOVÉ PRVKY (index) ---------- */
.kicker{
  font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--teal); margin-bottom:8px;
}
.sec-head{ margin-bottom:32px; max-width:52em; }
.sec-head h2{ font-size:33px; margin:0 0 10px; }
.sec-head p{ color:var(--muted); margin:0; font-size:16px; }
.note{
  background:var(--cream); border-radius:18px; padding:20px 24px;
  font-size:14px; color:var(--muted); margin-top:20px;
}
.note b{ color:var(--ink); }

@media (max-width:900px){
  .prices{ grid-template-columns:1fr; }
  .price h3{ min-height:0; }
}


/* ==========================================================================
   NOVÉ SEKCE HLAVNÍ STRÁNKY
   ========================================================================== */

/* ---------- HERO ---------- */
.bl-hero{
  display:grid; grid-template-columns:1.05fr .95fr; gap:48px;
  align-items:center; padding:52px 0 60px;
}
.bl-hero .eyebrow{
  display:inline-block; background:var(--cream); color:var(--teal);
  font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  padding:6px 14px; border-radius:20px; margin-bottom:20px;
}
.bl-hero h1{ font-size:47px; line-height:1.1; margin:0 0 20px; }
.bl-hero h1 em{ font-style:normal; color:var(--teal); }
.bl-hero .lead{ font-size:17px; color:var(--muted); margin:0 0 30px; max-width:30em; }
.bl-hero .micro{ font-size:13px; color:var(--muted); margin:0; }
.bl-hero-art{ display:flex; align-items:center; justify-content:center; }
.bl-hero-art img{ width:100%; max-width:430px; height:auto; display:block; }

/* ---------- ZNÁTE TO? ---------- */
.recognise{ background:var(--cream); border-radius:28px; padding:46px 44px; }
.recognise h2{ font-size:31px; margin:0 0 8px; }
.recognise > p{ color:var(--muted); margin:0 0 30px; max-width:42em; }
.rec-list{ display:grid; grid-template-columns:1fr 1fr; gap:12px 34px; margin-bottom:28px; }
.rec-list div{
  display:flex; gap:13px; align-items:flex-start; font-size:16px; padding:9px 0;
  border-bottom:1px solid rgba(44,74,72,.12);
}
.rec-list svg{ flex-shrink:0; margin-top:4px; }
.recognise .close{ font-size:17px; font-family:var(--font-display,'Fraunces',serif); color:var(--teal); margin:0; }

/* ---------- JAK PRACUJE BODY LOGIC ---------- */
.process{ background:var(--teal); color:#fff; border-radius:28px; padding:50px 44px; }
.process .kicker{ color:#9dc4bd; }
.process h2{ font-size:33px; margin:0 0 10px; color:#fff; }
.process .sub{ color:#c4dbd7; margin:0 0 36px; max-width:44em; font-size:16px; }
.steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.step{
  background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.14);
  border-radius:18px; padding:24px 20px;
}
.step .n{
  width:34px; height:34px; border-radius:50%; background:#fff; color:var(--teal);
  display:flex; align-items:center; justify-content:center;
  font-weight:700; font-size:15px; margin-bottom:16px;
}
.step h3{ font-size:15px; margin:0 0 8px; font-weight:700; color:#fff; }
.step p{ font-size:13.5px; color:#c4dbd7; margin:0; line-height:1.55; }
.step .ic{ margin-bottom:14px; display:block; }

/* ---------- PROČ MI KLIENTI VĚŘÍ ---------- */
.trust-grid{ display:grid; grid-template-columns:1.35fr 1fr; gap:22px; align-items:start; }
.creds{ background:var(--card); border:1px solid var(--line); border-radius:22px; padding:32px 30px; }
.cred-group + .cred-group{ margin-top:26px; padding-top:26px; border-top:1px solid var(--line); }
.cred-head{ display:flex; gap:12px; align-items:flex-start; margin-bottom:14px; }
.cred-head svg{ flex-shrink:0; margin-top:2px; }
.cred-head .who{ font-weight:700; font-size:15.5px; line-height:1.35; }
.cred-head .who .badge-ms{
  display:inline-block; background:var(--teal); color:#fff;
  font-size:10px; font-weight:700; letter-spacing:.09em; text-transform:uppercase;
  padding:3px 9px; border-radius:10px; margin-left:8px; vertical-align:2px;
}
.cred-head .role{ font-size:13px; color:var(--muted); margin-top:2px; }
.cred-list{ list-style:none; margin:0; padding:0 0 0 34px; }
.cred-list li{
  position:relative; padding:8px 0 8px 20px; font-size:14.5px; line-height:1.5;
  border-bottom:1px solid var(--line);
}
.cred-list li:last-child{ border-bottom:none; }
.cred-list li::before{
  content:''; position:absolute; left:0; top:16px; width:7px; height:7px;
  border-radius:50%; background:var(--teal);
}
.cred-list li span{ display:block; font-size:13px; color:var(--muted); margin-top:1px; }
.means{ background:var(--teal); color:#fff; border-radius:22px; padding:30px 28px; }
.means h3{ font-size:21px; margin:0 0 8px; color:#fff; }
.means > p{ font-size:14px; color:#c4dbd7; margin:0 0 20px; line-height:1.55; }
.means ul{ list-style:none; margin:0 0 20px; padding:0; }
.means li{
  display:flex; gap:11px; align-items:flex-start; font-size:15px; font-weight:600;
  padding:11px 0; border-bottom:1px solid rgba(255,255,255,.16);
}
.means li:last-child{ border-bottom:none; }
.means li svg{ flex-shrink:0; margin-top:3px; }
.means .foot{ font-size:13.5px; color:#c4dbd7; margin:0; line-height:1.55; }

/* ---------- RESPONZIVITA ---------- */
@media (max-width:900px){
  .bl-hero{ grid-template-columns:1fr; gap:32px; padding:36px 0 44px; }
  .bl-hero h1{ font-size:36px; }
  .bl-hero-art{ order:-1; }
  .bl-hero-art img{ max-width:300px; }
  .steps{ grid-template-columns:1fr 1fr; }
  .trust-grid{ grid-template-columns:1fr; }
  .rec-list{ grid-template-columns:1fr; }
  .recognise, .process{ padding:34px 24px; }
  .creds, .means{ padding:26px 22px; }
  .sec-head h2, .process h2{ font-size:27px; }
}
@media (max-width:560px){
  .steps{ grid-template-columns:1fr; }
  .page-head h1{ font-size:31px; }
}


/* ---------- CENÍK: dvě karty podle služby, uvnitř délky ---------- */
.prices.two{ grid-template-columns:1fr 1fr; }
.price .plans{ list-style:none; padding:0; margin:0 0 20px; }
.price .plans li{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:12px 0 12px 0;
}
.price .plans li::before{ display:none; }
.price .plans .d{
  display:inline-block; font-size:14px; font-weight:700; letter-spacing:.03em;
  background:var(--cream); color:var(--teal);
  padding:7px 14px; border-radius:13px;
}
.price.featured .plans .d{ background:rgba(255,255,255,.16); color:#fff; }
.price .plans .p{
  font-family:var(--font-display,'Fraunces',serif);
  font-size:24px; font-weight:600; color:var(--teal); line-height:1; white-space:nowrap;
}
.price.featured .plans .p{ color:#fff; }
.price .plans .note-in{ font-size:12px; color:var(--muted); display:block; margin-top:3px; }
.price.featured .plans .note-in{ color:#a9c7c2; }
.price .incl{ list-style:none; padding:0; margin:0 0 22px; }
.price .incl li{
  font-size:14px; padding:7px 0 7px 26px; position:relative;
  color:var(--muted); border-bottom:none;
}
.price.featured .incl li{ color:#c4dbd7; }
.price .incl li::before{
  display:block; content:''; position:absolute; left:0; top:13px; width:13px; height:6px;
  border-left:2.4px solid var(--teal); border-bottom:2.4px solid var(--teal);
  transform:rotate(-45deg);
}
.price.featured .incl li::before{ border-color:#fff; }
.price .plans-head{
  font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  color:var(--muted); margin:0 0 4px;
}
.price.featured .plans-head{ color:#a9c7c2; }

@media (max-width:900px){
  .prices.two{ grid-template-columns:1fr; }
}


/* ==========================================================================
   REZERVAČNÍ FORMULÁŘ
   Pozn.: JS přidává tlačítkům třídu .selected, ale do 18. 8. 2026 pro ni
   neexistovalo žádné CSS pravidlo — klient tedy nevěděl, co má vybrané.
   ========================================================================== */
.step-label{
  font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--teal); margin-bottom:14px;
}
.step-section{ margin-top:30px; padding-top:26px; border-top:1px solid var(--line); }

.service-grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.service-card{
  background:var(--white); border:1.5px solid var(--line); border-radius:18px;
  padding:22px 20px; transition:border-color .15s, background .15s;
}
.service-card.selected{ border-color:var(--teal); background:#faf8f4; }
.service-card h3{
  font-family:var(--font-display,'Fraunces',serif);
  font-size:18px; margin:0 0 14px; font-weight:600;
}
.duration-row{ display:flex; gap:8px; flex-wrap:wrap; }

.duration-btn, .day-btn, .slot-btn{
  font-family:inherit; font-size:14px; font-weight:600; cursor:pointer;
  background:var(--cream); color:var(--teal); border:1.5px solid transparent;
  padding:10px 16px; border-radius:13px; transition:all .15s; line-height:1.2;
}
.duration-btn:hover, .day-btn:hover, .slot-btn:hover{ border-color:var(--teal); }
.duration-btn.selected, .day-btn.selected, .slot-btn.selected{
  background:var(--teal); color:var(--white); border-color:var(--teal);
  box-shadow:0 2px 8px rgba(44,74,72,.25);
}
.duration-btn:disabled, .day-btn:disabled, .slot-btn:disabled{ opacity:.4; cursor:not-allowed; }

.day-grid{ display:flex; gap:8px; flex-wrap:wrap; }
.day-btn{ font-size:13.5px; padding:9px 14px; }

.slot-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(96px,1fr)); gap:9px; }
.slot-btn{ background:var(--white); border-color:var(--line); text-align:center; padding:12px 8px; font-size:15px; }
.slot-btn.selected{ background:var(--teal); border-color:var(--teal); }
.slot-empty-msg{ color:var(--muted); font-size:14px; background:var(--cream); padding:14px 16px; border-radius:12px; }

.form-field{ margin-bottom:15px; }
.form-field label{ display:block; font-size:13px; color:var(--muted); margin-bottom:5px; font-weight:500; }
.form-field input, .form-field textarea{
  width:100%; font-family:inherit; font-size:15px; padding:12px 14px;
  border:1.5px solid var(--line); border-radius:12px; background:var(--white); color:var(--ink);
}
.form-field input:focus, .form-field textarea:focus{ outline:none; border-color:var(--teal); }

.booking-summary-box{ background:var(--cream); border-radius:16px; padding:18px 20px; margin:22px 0; }
.booking-summary-box .row{
  display:flex; justify-content:space-between; gap:14px; padding:8px 0;
  font-size:14.5px; border-bottom:1px solid rgba(44,74,72,.12);
}
.booking-summary-box .row:last-child{ border-bottom:none; }
.booking-summary-box .row.total{ font-weight:700; font-size:17px; color:var(--teal); }

@media (max-width:700px){
  .service-grid{ grid-template-columns:1fr; }
}


/* ---------- SPOLUPRÁCE: kroky u masáže ---------- */
.card .process-step{
  display:flex; gap:16px; align-items:flex-start;
  background:transparent; border:none; border-radius:0;
  padding:18px 0; border-bottom:1px solid var(--line);
}
.card .process-step:last-child{ border-bottom:none; padding-bottom:0; }
.card .process-step:first-child{ padding-top:0; }
.card .process-body h3{ font-size:16.5px; margin:0 0 5px; font-weight:700; }
.card .process-body p{ margin:0; color:var(--muted); font-size:14.5px; line-height:1.6; }

/* Zavřený den: vidět je, ale vybrat nejde. */
.day-btn.closed, .day-btn.closed:hover{
  background:transparent; color:#a49c90; border:1.5px dashed var(--line);
  cursor:not-allowed; opacity:1; box-shadow:none;
}

/* Odstupy mezi sekcemi — bez nich se nadpisy lepí na předchozí blok. */
.wrap > section{ padding:66px 0; }
.wrap > section:first-of-type{ padding-top:40px; }
.wrap > section:last-of-type{ padding-bottom:76px; }
.sec-head{ margin-bottom:34px; }
@media (max-width:700px){
  .wrap > section{ padding:42px 0; }
}
