/* Palette: soft gray + dusty rose */
:root{
  --bg:#f7f7fa;
  --bg-2:#ffffff;
  --paper:#ffffff;
  --ink:#23232a;
  --muted:#5f5f68;
  --accent:#c06b84;
  --accent-2:#9c556a;
  --line:#e6e6ee;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:"Manrope",system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  background:radial-gradient(circle at 20% 20%, rgba(192,107,132,.06), transparent 35%), radial-gradient(circle at 80% 0%, rgba(156,85,106,.04), transparent 30%), linear-gradient(180deg,var(--bg),var(--bg-2));
  color:var(--ink);
  line-height:1.6;
  background-attachment: fixed;
}

.wrap{max-width:1100px;margin:auto;padding:0 1.2rem}

/* Header */
.header{
  position:sticky; top:0; z-index:100;
  background:rgba(255,255,255,.9);
  backdrop-filter:saturate(140%) blur(12px);
  border-bottom:1px solid var(--line);
  transition: box-shadow .25s ease, border-color .25s ease, transform .2s ease;
}
.header--scrolled{ box-shadow: 0 6px 20px rgba(0,0,0,.06); border-color:rgba(0,0,0,.02); transform: translateY(-2px); }
.brand-block {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.brand {
  display: flex;
  align-items: center;
  gap: 1rem;
  text-decoration: none;
  color: inherit;
}

.brand img{ height:60px; width:auto; display:block; border-radius:12px; }
@media (max-width:520px){
  .brand img{ height:48px; }
  .tagline{ font-size:1rem; }
}
.tagline {
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--muted);
  border-left: 2px solid var(--accent);
  padding-left: 0.8rem;
}

.nav{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:1.2rem;
  margin-top:.8rem;
  flex-wrap:wrap;
}
.nav a{
  margin:0;
  color:var(--ink);
  font-weight:700;
  text-decoration:none;
  position:relative;
  padding:.4rem .7rem;
}
.nav a::after{
  content:"";
  position:absolute; left:.7rem; right:.7rem; bottom:.2rem; height:2px;
  background:var(--accent);
  transform:scaleX(0); transform-origin:left; transition:transform .25s;
}
.nav a:hover::after,
.nav a:focus-visible::after{ transform:scaleX(1); }
.nav a:focus-visible, .btn:focus-visible{
  outline:3px solid rgba(192,107,132,.35);
  outline-offset:2px; border-radius:8px;
}
.nav a[aria-current="page"]{
  color: var(--accent-2);
}
.nav a[aria-current="page"]::after{
  transform: scaleX(1);
}

/* Buttons */
.btn{
  display:inline-block; padding:.85rem 1.25rem; border-radius:12px;
  background:linear-gradient(180deg,var(--accent),var(--accent-2));
  color:#fff; text-decoration:none; font-weight:800; letter-spacing:.2px;
  transition: transform .08s ease, filter .2s ease, box-shadow .2s ease;
  box-shadow:0 10px 28px rgba(156,85,106,.25);
}
.btn:hover{ filter:brightness(1.05); box-shadow:0 12px 32px rgba(156,85,106,.28); transform: translateY(-1px) scale(1.01); }
.btn:active{ transform:translateY(1px) }
.btn--ghost{
  background:transparent; color:var(--accent-2); border:1px solid var(--accent-2);
  box-shadow:none;
}

/* Sections */
.section{padding:72px 0;border-bottom:1px solid var(--line)}
.section--muted{background:#fafafb}
.lead{color:var(--muted); margin:.4rem 0 1.2rem}

/* Hero */
.hero{position:relative; background:var(--paper)}
.hero__grid{display:grid; gap:2rem; align-items:center; grid-template-columns:1.2fr .9fr}
@media (max-width:900px){ .hero__grid{grid-template-columns:1fr} }
.hero__copy h1{font-size:clamp(28px,5vw,44px); line-height:1.15; font-weight:800}
.accent-underline{background:linear-gradient(120deg,rgba(192,107,132,.22),rgba(156,85,106,.22)); box-decoration-break:clone; padding:0 .2rem; border-radius:6px}
.eyebrow{color:var(--accent-2); font-weight:800; letter-spacing:.08em; text-transform:uppercase; font-size:.85rem; margin:0 0 .4rem; display:inline-block}
.hero__cta{display:flex; gap:.8rem; margin:1.2rem 0; flex-wrap:wrap}
.hero__badges{display:flex; gap:.6rem; list-style:none; color:var(--muted); font-size:.9rem; flex-wrap:wrap}
.hero__badges li{border:1px solid var(--line); padding:.35rem .6rem; border-radius:999px; background:#fff}
.hero__card{perspective:1000px}
.hero__reviews{position:relative; overflow:hidden}
.hero__reviews::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(160deg,rgba(192,107,132,.06),rgba(156,85,106,.03),transparent 70%);
  pointer-events:none;
}

/* Placeholder for images */
.ph{
  width:100%; aspect-ratio:16/10; border-radius:16px;
  background: linear-gradient(135deg, #f1f1f4, #e7e7ea);
  position:relative; overflow:hidden;
}
.ph::after{
  content:""; position:absolute; inset:0;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.6), transparent);
  transform: translateX(-100%); animation: shimmer 1.8s infinite;
}
.ph--hero{ aspect-ratio: 16/10; }
@keyframes shimmer { 100% { transform: translateX(100%); } }

/* Subtle blobs */
.blob{position:absolute; filter:blur(40px); opacity:.18; z-index:-1}
.blob--1{width:320px;height:320px; background:var(--accent); top:-60px; left:-80px; border-radius:50%; transition: transform .6s ease-out;}
.blob--2{width:380px;height:380px; background:var(--accent-2); right:-120px; bottom:-120px; border-radius:50%; transition: transform .6s ease-out;}

/* Cards */
.cards{display:grid; gap:1.2rem; grid-template-columns:repeat(3,1fr)}
@media (max-width:900px){ .cards{grid-template-columns:1fr 1fr} }
@media (max-width:620px){ .cards{grid-template-columns:1fr} }
.card{background:var(--paper); border:1px solid var(--line); border-radius:16px; overflow:hidden; transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease; position:relative}
.card:hover{ transform:translateY(-6px) rotateX(1deg) rotateY(-1deg); box-shadow:0 16px 32px rgba(0,0,0,.10); border-color:rgba(192,107,132,.4) }
.card .stretched{ position:absolute; inset:0; z-index:1; text-indent:-9999px; }
.card .stretched:focus-visible{ outline:3px solid rgba(192,107,132,.35); outline-offset:-8px; border-radius:14px; }
.card__body, .card__media{ position:relative; z-index:2; }
.card__media{overflow:hidden}
.card__media img{display:block; width:100%; aspect-ratio:16/10; object-fit:cover; transition: transform .35s ease;}
.card:hover .card__media img{ transform:scale(1.04); }
.card__body{padding:1rem}
.card__body h3{margin-bottom:.35rem}
.link{color:var(--accent-2); text-decoration:none; position:relative; font-weight:700}
.link::after{content:""; position:absolute; left:0; right:0; bottom:-3px; height:2px; background:var(--accent-2); transform:scaleX(0); transform-origin:left; transition:transform .25s}
.link:hover::after{transform:scaleX(1)}

.center{text-align:center}
.mt-24{margin-top:24px}

/* About */
.about{display:grid; gap:2rem; grid-template-columns:1.4fr .8fr}
@media (max-width:900px){ .about{grid-template-columns:1fr} }

/* Form */
.form{display:grid; gap:1rem; max-width:640px}
.form label{display:grid; gap:.4rem; font-weight:700}
.form input,.form textarea{
  border:1px solid var(--line); border-radius:10px; padding:.8rem .9rem;
  background:#fff; font:inherit; color:inherit; outline:none;
  transition:border-color .2s ease, box-shadow .2s ease;
}
.form input:focus,.form textarea:focus{ border-color:var(--accent); box-shadow:0 0 0 3px rgba(192,107,132,.15) }
.form__alt{font-size:.9rem; color:var(--muted)}
.form__consent{
  display:flex; gap:.5rem; align-items:flex-start;
  font-size:.95rem; color:var(--muted);
}
.form__consent input{ margin-top:.2rem; }

/* Footer */
.footer{background:#fff}
.footer .wrap{display:flex; align-items:center; justify-content:space-between; padding:22px 0; color:var(--muted)}
.footer .wrap a{color:var(--accent-2); text-decoration:none}

/* Reveal effect */
.reveal{opacity:0; transform:translateY(16px); transition:opacity .7s ease, transform .7s ease}
.reveal--in{opacity:1; transform:none}

/*Services*/
.services{
  list-style:none;
  padding:0;
  margin:1.2rem 0 0;
  display:grid;
  gap:.6rem;
}
.services li{
  background:#fff;
  border:1px solid var(--line);
  border-radius:10px;
  padding:.8rem 1rem;
  font-weight:500;
  color:var(--ink);
  box-shadow:0 2px 6px rgba(0,0,0,.03);
  transition:transform .15s ease, box-shadow .15s ease;
}
.services li:hover{
  transform:translateY(-2px);
  box-shadow:0 4px 14px rgba(0,0,0,.06);
}

/* Testimonials */
.t-grid{
  display:grid; gap:1rem;
  grid-template-columns:repeat(3,1fr);
}
@media (max-width:900px){ .t-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:620px){ .t-grid{ grid-template-columns:1fr; } }

.t-card{
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:16px;
  padding:1rem 1.2rem;
  box-shadow:0 2px 6px rgba(0,0,0,.03);
  transition:transform .15s ease, box-shadow .15s ease;
}
.t-card:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 18px rgba(0,0,0,.06);
}
.t-rating{
  color:var(--accent-2);
  letter-spacing:.1rem;
  font-weight:700;
  font-size:1.1rem;
  margin-bottom:.35rem;
}
.t-card blockquote{
  margin:.2rem 0 .7rem;
  font-weight:600;
  color:var(--ink);
}
.t-author{
  font-size:.9rem;
  color:var(--muted);
}

/* Mini recenze v hero */
.hero__reviews{
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 1rem 1.2rem;
  box-shadow: 0 12px 32px rgba(0,0,0,.08);
}
.tmini{ position: relative; min-height: 160px; }
.tmi{
  position:absolute; inset:0;
  opacity:0; transform: translateY(12px) scale(.98);
  transition: opacity .5s ease, transform .5s ease;
}
.tmi.is-active{ opacity:1; transform:none; }
.tmi blockquote{ margin:0; font-size:1rem; line-height:1.6; font-weight:600; color: var(--ink); }
.tmi figcaption{ margin-top:.6rem; font-size:.95rem; color: var(--muted); }

/* Dots for mini testimonials */
.tmini-dots{ display:flex; gap:.4rem; margin-top:.8rem; }
.tmini-dots button{
  width:9px; height:9px; border:0; border-radius:999px;
  background: var(--line); cursor:pointer; transition:transform .2s ease, background .2s ease;
}
.tmini-dots button.is-active{ background: var(--accent-2); transform:scale(1.2); }
.tmini-cta{ margin-top:.6rem; text-align:right; }

.pill{
  display:inline-flex; align-items:center; gap:.35rem;
  padding:.1rem .6rem; border-radius:999px;
  background:rgba(192,107,132,.12); color:var(--accent-2);
  font-weight:700; font-size:.85rem;
}

#progress{
  position: fixed; top: 0; left: 0; height: 3px; width: 0%;
  background: linear-gradient(90deg, var(--accent), var(--accent-2));
  z-index: 9999; pointer-events: none;
  box-shadow: 0 2px 8px rgba(156,85,106,.35);
}

/* Expandable services */
.services--expand li{
  padding:0; background:transparent; border:none; box-shadow:none;
}
.services--expand details{
  background:#fff; border:1px solid var(--line); border-radius:10px;
  transition: box-shadow .15s ease, border-color .15s ease, transform .15s ease;
  will-change: transform;
}
.services--expand details:hover{
  transform:translateY(-2px);
  box-shadow:0 4px 14px rgba(0,0,0,.06);
}
.services--expand summary{
  display:flex; align-items:center; justify-content:space-between;
  gap:.8rem; padding:.9rem 1rem; cursor:pointer; font-weight:700;
  list-style:none; outline:none; user-select:none;
}
.services--expand summary::-webkit-details-marker{ display:none; }
.services--expand summary::after{
  content:"v"; color:var(--muted); font-size:.9rem; transition:transform .2s ease;
}
.services--expand details[open]{ border-color:var(--accent); box-shadow:0 4px 14px rgba(192,107,132,.08); }
.services--expand details[open] summary::after{ transform:rotate(180deg); }

.services--expand .svc-body{
  padding:0 1rem 1rem;
  color:var(--muted);
  opacity:0; transform:translateY(4px);
  transition:opacity .2s ease, transform .2s ease;
}
.services--expand details[open] .svc-body{
  opacity:1; transform:none;
}

/* Timeline */
.steps{ list-style:none; padding:0; margin:1rem 0 2rem; }
.steps--timeline{ position:relative; display:grid; gap:1rem; }
.steps--timeline li{
  position:relative;
  display:grid;
  grid-template-columns:40px 1fr;
  column-gap:1rem;
  align-items:flex-start;
  background:#fff;
  border:1px solid var(--line);
  border-radius:12px;
  padding: .9rem 1rem;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.steps--timeline li:hover{
  transform: translateY(-2px);
  box-shadow: 0 8px 18px rgba(0,0,0,.06);
  border-color: var(--accent);
}
.steps--timeline li::before{
  content:"";
  position:absolute;
  left:20px; top:34px; bottom:-18px;
  width:2px; background: var(--line);
}
.steps--timeline li:last-child::before{ display:none; }

.steps--timeline .n{
  display:inline-flex; align-items:center; justify-content:center;
  width:32px; height:32px; border-radius:999px;
  background: linear-gradient(180deg,var(--accent),var(--accent-2));
  color:#fff; font-weight:800; line-height:1; margin-top:.1rem;
  box-shadow: 0 4px 10px rgba(192,107,132,.25);
}
.steps--timeline .c h4{ margin:0; font-size:1.05rem; }
.steps--timeline .c p{ margin:.25rem 0 0; color:var(--muted); }

@media (max-width:600px){
  .steps--timeline li{ grid-template-columns:34px 1fr; padding:.8rem .9rem; }
  .steps--timeline .n{ width:28px; height:28px; font-size:.95rem; }
}

@media (max-width:600px){
  .section{ padding:56px 0; }
}
