* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: #F2E9E9;
  color: #6F3F44;
  font-family: 'Nunito Sans', sans-serif;
  -webkit-font-smoothing: antialiased;
}
a { color: #C96F70; text-decoration: none; }
a:hover { color: #E18A8A; }
img { max-width: 100%; }

.page {
  width: 100%;
  max-width: 440px;
  margin: 0 auto;
  background: #FFFFFF;
  overflow: hidden;
  min-height: 100vh;
}

/* ---------- Nav ---------- */
.nav {
  position: sticky; top: 0; z-index: 30;
  background: rgba(253,242,242,0.94);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
}
.nav-inner {
  padding: 12px 20px;
  display: flex; align-items: center; justify-content: flex-end;
}
.nav-links { display: none; }
.nav-brand { display: flex; align-items: center; gap: 9px; }
.nav-brand img { width: 36px; height: 36px; object-fit: contain; }
.nav-brand span { font-family: 'Spectral', serif; font-weight: 300; font-size: 20px; color: #6F3F44; }
.burger {
  width: 46px; height: 46px; border-radius: 999px;
  border: 1px solid #F1DCDC; background: #FFFFFF;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px;
  cursor: pointer; padding: 0;
}
.burger div { width: 18px; height: 1.5px; background: #C96F70; }

/* ---------- Menu overlay ---------- */
.menu {
  position: fixed; top: 0; bottom: 0; left: 50%; transform: translateX(-50%);
  width: 100%; max-width: 440px; z-index: 60;
  background: #FDF3F3;
  display: flex; flex-direction: column;
}
.menu[hidden] { display: none; }
.menu-head {
  padding: 12px 20px;
  display: flex; align-items: center; justify-content: flex-end;
  border-bottom: 1px solid #F3E0E0;
}
.menu-close {
  width: 46px; height: 46px; border-radius: 999px;
  border: 1px solid #EFD5D5; background: #FFFFFF;
  cursor: pointer; padding: 0; position: relative;
}
.menu-close div { position: absolute; top: 22px; left: 13px; width: 18px; height: 1.5px; background: #C96F70; }
.menu-close div:first-child { transform: rotate(45deg); }
.menu-close div:last-child { transform: rotate(-45deg); }
.menu-links {
  flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 30px;
  font-family: 'Spectral', serif; font-weight: 300; font-size: 32px;
}
.menu-links a { color: #6F3F44; }
.menu-foot {
  padding: 0 24px 46px;
  display: flex; flex-direction: column; align-items: center; gap: 6px;
  font-size: 15px; color: #6E6265;
}
.menu-foot .line { width: 44px; height: 1px; background: #EFC9C9; margin-bottom: 18px; }
.menu-foot .tel { font-size: 17px; }
body.menu-open { overflow: hidden; }

/* ---------- Hero (homepage) ---------- */
.hero {
  padding: 46px 24px 52px;
  text-align: center;
  background:
    linear-gradient(180deg, #FDF2F2 0%, rgba(253,242,242,0) 140px),
    radial-gradient(420px 300px at 50% 0%, #FDF1F1 0%, #FFFFFF 72%);
}
.hero-logo { width: 132px; height: 132px; object-fit: contain; margin: 0 auto 10px; display: block; }
.hero h1 {
  margin: 0; font-family: 'Spectral', serif; font-weight: 300;
  font-size: min(38px, calc((100vw - 48px) / 10.3)); line-height: 1.12; color: #6F3F44;
}
.hero-sub {
  margin: 16px 0 0; font-size: min(13px, calc((100vw - 48px) / 25.5)); letter-spacing: 0.18em;
  text-transform: uppercase; color: #E18A8A;
}
.divider { width: 54px; height: 1px; background: #EFC9C9; margin: 28px auto 26px; }
.portrait { position: relative; padding-bottom: 80px; }
.portrait .blob-fill {
  position: absolute; left: -6px; right: 14px; top: 10px; bottom: 42px;
  background: #FBE9E9;
  border-radius: 52% 48% 44% 56% / 46% 56% 44% 54%;
}
.portrait .blob-line {
  position: absolute; inset: -16px 0 46px -16px;
  border-radius: 42% 58% 46% 54% / 55% 44% 56% 45%;
  border: 1px solid #F4DADA;
}
.portrait .foto {
  position: relative; width: 100%; aspect-ratio: 1 / 1.08;
  object-fit: cover; object-position: 50% 18%; display: block;
  border-radius: 44% 56% 48% 52% / 54% 46% 54% 46%;
}
.portrait .signature {
  position: absolute; left: 50%; bottom: 0; transform: translateX(-50%);
  width: 205px; height: auto; margin: 0;
}
/* hero text elements (shared mobile + desktop) */
.hero-perex {
  margin: 18px auto 0; max-width: 480px;
  font-size: 16px; line-height: 1.75; color: #6F3F44; text-wrap: pretty;
}
.hero-ctas { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px; margin: 26px 0 0; }
.hero-ctas .cta-fill {
  padding: 13px 26px; border-radius: 999px; background: #E18A8A;
  color: #FFFFFF; font-size: 14px; letter-spacing: 0.06em;
}
.hero-ctas .cta-outline {
  padding: 13px 24px; border-radius: 999px; border: 1px solid #E7BFBF;
  color: #C96F70; font-size: 14px; letter-spacing: 0.06em;
}
.hero-points {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 22px;
  margin: 22px 0 0; font-size: 13px; color: #8A7C7E;
}
.hero-points .item { display: flex; gap: 8px; }
.hero-points .h { color: #E18A8A; }
.portrait { display: none; }
.hero-photo { display: block; position: relative; margin-top: 4px; padding: 30px 0 88px; }
.hero-photo .foto {
  position: relative; z-index: 1;
  width: min(86%, 330px); aspect-ratio: 1 / 1.05;
  object-fit: cover; object-position: 50% 18%;
  border-radius: 47% 53% 44% 56% / 52% 46% 56% 48%;
  display: block; margin: 0 auto;
}
.hero-photo .glow { position: absolute; pointer-events: none; }
.hero-photo .g1 { top: -30px; right: -36px; width: 300px; height: 300px; background: radial-gradient(circle, rgba(255,167,183,0.55) 0%, rgba(255,167,183,0) 70%); }
.hero-photo .g2 { bottom: 20px; right: -16px; width: 330px; height: 330px; background: radial-gradient(circle, rgba(253,186,199,0.65) 0%, rgba(253,186,199,0) 72%); }
.hero-photo .g3 { left: -26px; top: 42%; width: 200px; height: 200px; background: radial-gradient(circle, rgba(169,184,132,0.28) 0%, rgba(169,184,132,0) 70%); }
.hero-photo .g4 { top: -16px; left: -8px; width: 210px; height: 210px; background: radial-gradient(circle, rgba(253,196,206,0.5) 0%, rgba(253,196,206,0) 70%); }
.hero-photo .podpis {
  position: absolute; z-index: 2; width: 200px; height: auto;
  left: 50%; bottom: 4px; transform: translateX(-50%) rotate(-5deg);
}

/* ---------- O OLA ---------- */
.o-ola { padding: 8px 24px 56px; }
.o-ola .col { display: flex; flex-direction: column; }
.o-ola p {
  margin: 0; padding: 22px 0; font-size: 16px; line-height: 1.8; color: #6F3F44;
  border-top: 1px solid #F1DEDE; text-wrap: pretty;
}
.o-ola p:last-child { border-bottom: 1px solid #F1DEDE; }
.o-ola strong {
  font-family: 'Spectral', serif; font-weight: 300;
  font-size: 34px; line-height: 1; color: #E18A8A;
}

/* ---------- Video ---------- */
.video { padding: 0 24px 56px; }
.video .label {
  margin: 0 0 16px; text-align: center; font-size: 11px;
  letter-spacing: 0.2em; text-transform: uppercase; color: #C09A9A;
}
.video .frame {
  width: 100%; aspect-ratio: 16 / 9; border-radius: 18px; overflow: hidden;
  background: #FBEEEE;
  border: 1px solid #F4E1E1;
}
.video .frame iframe { width: 100%; height: 100%; border: 0; display: block; }

/* ---------- O Aktivacích ---------- */
.aktivace { padding: 56px 24px; background: #FDF3F3; text-align: center; }
.aktivace h2 {
  margin: 0 auto 22px; max-width: 300px;
  font-family: 'Spectral', serif; font-weight: 300;
  font-size: 32px; line-height: 1.2; color: #6F3F44; text-wrap: balance;
}
.aktivace > p { margin: 0; font-size: 16px; line-height: 1.85; color: #6F3F44; text-align: left; text-wrap: pretty; }
.nabidka-cta { display: flex; justify-content: center; margin-top: 30px; }
.nabidka-cta button {
  padding: 15px 26px; border-radius: 999px; border: 1px solid #E18A8A;
  background: transparent; color: #C96F70; font-family: 'Nunito Sans', sans-serif;
  font-size: 14px; letter-spacing: 0.05em; cursor: pointer;
}
.nabidka-cta button:hover { background: rgba(255,255,255,0.6); }
.expander {
  display: grid; grid-template-rows: 0fr;
  transition: grid-template-rows 0.55s ease;
}
.expander.open { grid-template-rows: 1fr; }
.expander > .expander-inner { overflow: hidden; min-height: 0; }
.nabidka-list { display: flex; flex-direction: column; text-align: left; padding-top: 26px; }
.nabidka-list p {
  margin: 0; padding: 15px 0; font-size: 15px; line-height: 1.7; color: #6F3F44;
  border-top: 1px solid #F0D8D8; display: flex; gap: 12px; text-wrap: pretty;
}
.nabidka-list p:last-child { border-bottom: 1px solid #F0D8D8; }
.nabidka-list .h { flex: none; color: #E18A8A; font-size: 13px; line-height: 2; }
.nabidka-list b, .nabidka-list strong { font-weight: 700; color: #6F3F44; }

/* ---------- Jak probíhá / Pro koho ---------- */
.jak { padding: 56px 24px 8px; }
.jak-photo { display: flex; justify-content: center; margin: 0 0 20px; }
.jak-photo img { width: 150px; height: 150px; }
.jak h3 {
  margin: 0 0 22px; text-align: center;
  font-family: 'Spectral', serif; font-weight: 300; font-size: 26px; color: #6F3F44;
}
.jak h3 + .heart-mark { text-align: center; color: #E9B4B4; font-size: 14px; margin: -14px 0 20px; }
.jak h3.second { margin-top: 0; }
.jak-col + .jak-col { margin-top: 44px; }
.jak .list { display: flex; flex-direction: column; }
.jak .list p {
  margin: 0; padding: 16px 0; font-size: 15px; line-height: 1.7; color: #6F3F44;
  border-top: 1px solid #F1DEDE; display: flex; gap: 12px;
}
.jak .list p:last-child { border-bottom: 1px solid #F1DEDE; }
.jak .list .h { flex: none; color: #E18A8A; font-size: 13px; line-height: 2; }

/* ---------- Setkání (homepage cards) ---------- */
.setkani { padding: 36px 24px 56px; background: linear-gradient(180deg, #FFFFFF 0%, #FDF6F6 100%); }
.setkani h2, .reference h2 {
  margin: 0 0 10px; text-align: center;
  font-family: 'Spectral', serif; font-weight: 300; font-size: 34px; color: #6F3F44;
}
.setkani .divider, .reference .divider { margin: 0 auto 32px; }
.cards { display: flex; flex-direction: column; gap: 26px; }
.card {
  background: #FFFFFF; border-radius: 24px; overflow: hidden;
  border: 1px solid #F4E3E3;
  box-shadow: 0 20px 44px -34px rgba(190,120,120,0.55);
}
.card img { width: 100%; height: 220px; object-fit: cover; display: block; }
.card .body { padding: 26px 24px 28px; display: flex; flex-direction: column; flex: 1; }
.card .body .btn { margin-top: auto; }
.card { display: flex; flex-direction: column; }
.card .date {
  margin: 0 0 10px; font-size: 11px; letter-spacing: 0.18em;
  text-transform: uppercase; color: #C79B9B;
}
.card h3 {
  margin: 0 0 22px; font-family: 'Spectral', serif; font-weight: 300;
  font-size: 29px; line-height: 1.2; color: #6F3F44;
}
.btn {
  display: flex; align-items: center; justify-content: center;
  padding: 16px; border-radius: 999px; background: #E18A8A;
  color: #FFFFFF; font-size: 15px; letter-spacing: 0.08em;
}
.btn:hover { color: #FFFFFF; background: #D97F7F; }

/* ---------- Sesouladění páru (HP blok) ---------- */
.pary-blok { padding: 72px 24px 64px; }
.pary-grid { display: flex; flex-direction: column; gap: 28px; }
.pary-photo { display: flex; justify-content: center; }
.pary-photo .graf { width: min(100%, 390px); height: auto; display: block; }
.pary-photo .foto, .pary-photo .ph-blob {
  width: min(100%, 300px); aspect-ratio: 1 / 1.05; object-fit: cover;
  border-radius: 47% 53% 44% 56% / 52% 46% 56% 48%; display: block;
}
.pary-photo .ph-blob {
  background: repeating-linear-gradient(135deg, #FBEEEE 0 10px, #FDF6F6 10px 20px);
  border: 1px solid #F4E1E1;
  display: flex; align-items: center; justify-content: center;
}
.pary-photo .ph-blob p { margin: 0; font-family: ui-monospace, 'SF Mono', monospace; font-size: 11px; color: #B08C8C; }
.pary-text h2 {
  margin: 0 0 22px; text-align: center;
  font-family: 'Spectral', serif; font-weight: 300;
  font-size: 28px; line-height: 1.3; color: #6F3F44; text-wrap: balance;
}
.pary-text p { margin: 0 0 18px; font-size: 16px; line-height: 1.8; color: #6F3F44; text-wrap: pretty; }
.pary-cta-row { display: flex; justify-content: center; margin-top: 22px; }
.pary-cta { display: inline-flex; padding: 15px 30px; }

.card-ph {
  height: 220px; display: flex; align-items: flex-end; justify-content: center; padding: 14px;
  background: repeating-linear-gradient(135deg, #FBEEEE 0 10px, #FDF6F6 10px 20px);
  border-bottom: 1px solid #F4E3E3;
}
.card-ph p { margin: 0; font-family: ui-monospace, 'SF Mono', monospace; font-size: 11px; color: #B08C8C; }

.photo-ph {
  width: 100%; aspect-ratio: 3 / 2; border-radius: 20px; border: 1px solid #F4E1E1;
  background: repeating-linear-gradient(135deg, #FBEEEE 0 10px, #FDF6F6 10px 20px);
  display: flex; align-items: flex-end; justify-content: center; padding: 14px;
}
.photo-ph p { margin: 0; font-family: ui-monospace, 'SF Mono', monospace; font-size: 11px; color: #B08C8C; }

/* ---------- Reference ---------- */
.reference { padding: 56px 24px; }
.ref-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.ref-video.wide { grid-column: 1 / -1; }
.ref-video {
  aspect-ratio: 9 / 16; border-radius: 16px; border: 1px solid #F4E1E1;
  overflow: hidden; background: #FBEEEE;
}
.ref-video iframe { width: 100%; height: 100%; border: 0; display: block; }
.ref-video.wide { aspect-ratio: 16 / 9; }
.reference .expander-inner .ref-grid { padding-top: 18px; }
.setkani .expander-inner .cards { padding: 26px 0 34px; }
.ref-more { display: flex; justify-content: center; margin-top: 28px; }
.btn-outline {
  padding: 14px 30px; border-radius: 999px; border: 1px solid #E18A8A;
  background: transparent; color: #C96F70; font-family: 'Nunito Sans', sans-serif;
  font-size: 14px; letter-spacing: 0.05em; cursor: pointer;
}
.btn-outline:hover { background: #FDF6F6; }

/* ---------- Kontakt ---------- */
.kontakt { padding: 56px 24px; background: #FDF6F6; }
.kontakt h2 {
  margin: 0 0 24px; font-family: 'Spectral', serif; font-weight: 300;
  font-size: 34px; color: #6F3F44;
}
.kontakt .who { display: flex; flex-direction: column; gap: 6px; font-size: 16px; line-height: 1.7; color: #6F3F44; }
.kontakt .who p { margin: 0; }
.kontakt .who .name { font-size: 19px; font-weight: 600; }
.kontakt .rule { height: 1px; background: #EFDADA; margin: 22px 0; }
.kontakt .firm { display: flex; flex-direction: column; gap: 3px; font-size: 15px; line-height: 1.7; color: #6E6265; }
.kontakt .firm p { margin: 0; }
.kontakt .tagline {
  margin: 20px 0 28px; font-family: 'Spectral', serif; font-weight: 300; font-style: italic;
  font-size: 20px; color: #C96F70;
}
.price-card { background: #FFFFFF; border-radius: 20px; padding: 26px 22px 28px; border: 1px solid #F4E3E3; }
.price-card .eyebrow {
  margin: 0 0 4px; font-size: 11px; letter-spacing: 0.18em;
  text-transform: uppercase; color: #C96F70;
}
.price-card .intro { margin: 0 0 18px; font-size: 14px; line-height: 1.6; color: #8A7C7E; }
.price-rows { display: flex; flex-direction: column; }
.price-row {
  display: flex; align-items: baseline; justify-content: space-between; gap: 14px;
  padding: 13px 0; border-top: 1px solid #F1DEDE;
}
.price-row:last-child { border-bottom: 1px solid #F1DEDE; }
.price-row .label { font-size: 15px; color: #6F3F44; }
.price-row .price { flex: none; font-family: 'Spectral', serif; font-weight: 300; font-size: 21px; color: #C96F70; }
.price-card .scope { margin: 12px 0 22px; font-size: 14px; color: #8A7C7E; }
.price-box { background: #FDF6F6; border-radius: 16px; padding: 18px 18px 20px; }
.price-box p:first-child { margin: 0 0 8px; font-size: 15px; line-height: 1.65; color: #6F3F44; }
.price-box p:last-child { margin: 0; font-family: 'Spectral', serif; font-weight: 300; font-size: 24px; color: #C96F70; }
.price-card .rule2 { height: 1px; background: #F1DEDE; margin: 22px 0; }
.price-note { margin: 0 0 10px; display: flex; gap: 10px; font-size: 14px; line-height: 1.7; color: #6E6265; }
.price-note:last-child { margin-bottom: 0; }
.price-note .h { flex: none; color: #E18A8A; font-size: 12px; line-height: 2; }

/* ---------- Footer ---------- */
.footer {
  position: relative; min-height: 400px;
  display: flex; align-items: center; justify-content: center;
  padding: 60px 24px;
  background-image: url('img/blossom.jpg');
  background-size: cover; background-position: center;
}
.footer .veil { position: absolute; inset: 0; background: rgba(255,255,255,0.44); }
.footer .inner { position: relative; text-align: center; }
.footer .quote {
  margin: 0; font-family: 'Spectral', serif; font-weight: 300;
  font-size: 26px; line-height: 1.5; color: #6E3E44; text-wrap: pretty;
}
.footer img { width: 72px; height: 72px; object-fit: contain; margin: 24px auto 0; display: block; }


/* ---------- Subpage (detail setkání) ---------- */
.sub-hero {
  padding: 34px 24px;
  text-align: center;
  background:
    linear-gradient(180deg, #FDF2F2 0%, rgba(253,242,242,0) 120px),
    radial-gradient(420px 300px at 50% 0%, #FDF1F1 0%, #FFFFFF 74%);
}
.sub-hero .back {
  font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: #C79B9B;
}
.sub-hero .back:hover { color: #C96F70; }
.sub-hero h1 {
  margin: 16px 0 0; font-family: 'Spectral', serif; font-weight: 300;
  font-size: min(40px, calc((100vw - 48px) / 8.6)); line-height: 1.1; color: #6F3F44; text-wrap: balance;
}
.sub-hero .sub {
  margin: 16px 0 0; font-size: 16px; line-height: 1.7; color: #6E6265; text-wrap: pretty;
}
.sub-hero .divider { margin: 26px auto 0; }

.sub-facts { padding: 0 24px 44px; }
.sub-facts .photo {
  width: 100%; height: auto; display: block; border-radius: 20px;
}
.fact { margin-top: 22px; padding-top: 18px; border-top: 1px solid #F1DEDE; }
.fact:first-of-type { margin-top: 30px; }
.fact .label {
  margin: 0 0 6px; font-size: 11px; letter-spacing: 0.18em;
  text-transform: uppercase; color: #C79B9B;
}
.fact .value { margin: 0; font-family: 'Spectral', serif; font-weight: 300; font-size: 26px; color: #6F3F44; }
.fact .text { margin: 0; font-size: 15px; line-height: 1.75; color: #6F3F44; }
.fact .text .price { font-family: 'Spectral', serif; font-weight: 300; font-size: 21px; color: #C96F70; }

.sub-highlight { padding: 46px 24px; background: #FDF3F3; text-align: center; }
.sub-highlight .heart { color: #E9B4B4; font-size: 15px; margin-bottom: 18px; }
.sub-highlight p {
  margin: 0; font-family: 'Spectral', serif; font-weight: 300;
  font-size: 25px; line-height: 1.5; color: #6F3F44; text-wrap: pretty;
}
.sub-highlight p.long { font-size: 21px; line-height: 1.6; }

.sub-program { padding: 50px 24px 40px; }
.sub-program h2 {
  margin: 0 0 6px; text-align: center;
  font-family: 'Spectral', serif; font-weight: 300; font-size: 32px; color: #6F3F44;
}
.sub-program .heart-mark { text-align: center; color: #E9B4B4; font-size: 14px; margin-bottom: 24px; }
.sub-program .rows { display: flex; flex-direction: column; }
.sub-program .rows p {
  margin: 0; padding: 20px 0; font-size: 15px; line-height: 1.8; color: #6F3F44;
  border-top: 1px solid #F1DEDE; text-wrap: pretty;
}
.sub-program .rows > :last-child { border-bottom: 1px solid #F1DEDE; }
.sub-program .rows p.day {
  padding: 22px 0 4px; font-family: 'Spectral', serif; font-weight: 300;
  font-size: 24px; line-height: 1.3; color: #C96F70;
}
.sub-program .rows p.cont { border-top: 0; padding: 12px 0 8px; }
.sub-program .rows > p.cont:last-child { padding-bottom: 20px; }

.sub-card-section { padding: 0 24px 46px; }
.sub-card { background: #FDF6F6; border-radius: 20px; padding: 28px 24px; }
.sub-card + .sub-card { margin-top: 20px; }
.sub-card h2 {
  margin: 0 0 14px; font-family: 'Spectral', serif; font-weight: 300; font-style: italic;
  font-weight: 400; font-size: 26px; color: #6F3F44;
}
.sub-card p { margin: 0; font-size: 15px; line-height: 1.8; color: #6F3F44; text-wrap: pretty; }
.sub-card p + p { margin-top: 14px; }

.sub-close { padding: 0 24px 52px; text-align: center; }
.sub-close .big {
  margin: 0; font-family: 'Spectral', serif; font-weight: 300;
  font-size: 27px; line-height: 1.45; color: #6F3F44; text-wrap: pretty;
}
.sub-close .info { margin: 20px 0 0; font-size: 16px; line-height: 1.7; color: #6F3F44; }
.sub-close .info a { font-weight: 600; }
.sub-close .sign {
  margin: 14px 0 0; font-family: 'Sacramento', cursive; font-size: 44px;
  line-height: 1.2; color: #E18A8A;
}
.sub-close .sign-img { width: 200px; height: auto; display: block; margin: 20px auto 0; }
.sub-close .sign.small { font-size: 34px; }

/* ============================================================
   Desktop (PC) layout — from 900px, follows the Desktop design
   ============================================================ */
@media (min-width: 900px) {
  body { background: #FFFFFF; }
  .page { max-width: none; }

  /* Nav */
  .nav { background: rgba(255,255,255,0.92); border-bottom: 1px solid #F6E7E7; }
  .nav-inner { max-width: 1200px; margin: 0 auto; padding: 18px 40px; gap: 40px; }
  .nav-brand img { width: 46px; height: 46px; }
  .nav-brand span { font-size: 25px; letter-spacing: 0.02em; }
  .burger { display: none; }
  .menu { display: none; }
  .nav-links {
    display: flex; align-items: center; gap: 38px;
    font-size: 15px; letter-spacing: 0.04em;
  }
  .nav-links a { color: #5C5254; }
  .nav-links a:hover { color: #C96F70; }
  .nav-links .nav-cta { padding: 11px 26px; border-radius: 999px; background: #E18A8A; color: #FFFFFF; letter-spacing: 0.06em; }
  .nav-links .nav-cta:hover { background: #D57878; color: #FFFFFF; }

  /* Hero — white background, blob photo with soft logo-colored glow */
  .hero {
    padding: 56px 40px 72px; text-align: left;
    background: #FFFFFF; border-bottom: 0;
  }
  .hero-grid {
    max-width: 1200px; margin: 0 auto;
    display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 64px; align-items: center;
  }
  .hero-left .divider, .portrait { display: none; }
  .hero-left { padding: 0; display: block; }
  .hero-logo { display: block; width: 190px; height: 190px; margin: 0 0 14px; }
  .hero h1 { font-size: clamp(44px, 4.6vw, 53px); line-height: 1.08; letter-spacing: 0.01em; text-wrap: balance; }
  .hero-sub { margin: 18px 0 0; font-size: 15px; letter-spacing: 0.2em; }
  .hero-perex {
    display: block; margin: 22px 0 0; max-width: 480px; font-size: 17px;
    font-size: 17px; line-height: 1.75; color: #6F3F44; text-wrap: pretty;
  }
  .hero-ctas { display: flex; justify-content: flex-start; align-items: center; gap: 14px; margin: 30px 0 0; }
  .hero-ctas .cta-fill {
    padding: 14px 32px; border-radius: 999px; background: #E18A8A;
    color: #FFFFFF; font-size: 15px; letter-spacing: 0.06em;
  }
  .hero-ctas .cta-fill:hover { background: #D57878; color: #FFFFFF; }
  .hero-ctas .cta-outline {
    padding: 14px 30px; border-radius: 999px; border: 1px solid #E7BFBF;
    color: #C96F70; font-size: 15px; letter-spacing: 0.06em;
  }
  .hero-ctas .cta-outline:hover { background: #FDF6F6; }
  .hero-points { display: flex; justify-content: flex-start; align-items: center; gap: 26px; margin: 28px 0 0; font-size: 14px; color: #8A7C7E; }
  .hero-points .item { display: flex; gap: 9px; }
  .hero-points .h { color: #E18A8A; }
  .hero-photo { display: block; position: relative; padding: 36px 12px; }
  .hero-photo .foto {
    position: relative; z-index: 1;
    width: min(100%, 440px); aspect-ratio: 1 / 1.05;
    object-fit: cover; object-position: 50% 18%;
    border-radius: 47% 53% 44% 56% / 52% 46% 56% 48%;
    display: block; margin: 0 auto;
  }
  .hero-photo .glow { position: absolute; pointer-events: none; }
  .hero-photo .g1 {
    top: -110px; right: -130px; width: 620px; height: 620px;
    background: radial-gradient(circle, rgba(255,167,183,0.75) 0%, rgba(255,167,183,0) 70%);
  }
  .hero-photo .g2 {
    bottom: -130px; right: -40px; width: 660px; height: 660px;
    background: radial-gradient(circle, rgba(253,186,199,0.85) 0%, rgba(253,186,199,0) 72%);
  }
  .hero-photo .g3 {
    left: -80px; top: 30%; width: 400px; height: 400px;
    background: radial-gradient(circle, rgba(169,184,132,0.38) 0%, rgba(169,184,132,0) 70%);
  }
  .hero-photo .podpis {
    position: absolute; z-index: 2;
    width: 250px; height: auto;
    left: 50%; bottom: -58px;
    transform: translateX(-50%) rotate(-5deg);
    filter: drop-shadow(0 0 6px rgba(255,255,255,0.9)) drop-shadow(0 0 14px rgba(255,255,255,0.7));
  }
  .hero-photo .g4 {
    top: -60px; left: -20px; width: 380px; height: 380px;
    background: radial-gradient(circle, rgba(253,196,206,0.55) 0%, rgba(253,196,206,0) 70%);
  }

  /* O OLA */
  .o-ola { padding: 92px 40px; }
  .o-ola .col { max-width: 900px; margin: 0 auto; }
  .o-ola p { padding: 26px 0; font-size: 18px; line-height: 1.85; }
  .o-ola strong { font-size: 40px; }

  /* Video */
  .video { padding: 8px 40px 92px; }
  .video .label { margin-bottom: 26px; font-size: 13px; letter-spacing: 0.24em; }
  .video .frame { max-width: 940px; margin: 0 auto; border-radius: 24px; }

  /* O Aktivacích */
  .aktivace { padding: 96px 40px; }
  .aktivace h2 { max-width: 620px; margin-bottom: 34px; font-size: 48px; line-height: 1.18; }
  .aktivace > p { max-width: 860px; margin: 0 auto; font-size: 18px; line-height: 1.92; }
  .nabidka-cta { margin-top: 38px; }
  .nabidka-cta button { padding: 15px 34px; font-size: 15px; }
  .nabidka-list { max-width: 720px; margin: 0 auto; }
  .nabidka-list p { padding: 16px 0; font-size: 16px; }

  /* Jak / Pro koho */
  .jak { padding: 92px 40px 12px; }
  .jak-grid {
    max-width: 1100px; margin: 0 auto;
    display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: start;
  }
  .jak h3 { font-size: 34px; }
  .jak-col + .jak-col { margin-top: 0; }
  .jak-photo { margin-bottom: 24px; }
  .jak-photo img { width: 175px; height: 175px; }
  .jak .list p { padding: 18px 0; font-size: 17px; gap: 14px; }

  /* Setkání */
  .setkani { padding: 48px 40px 92px; }
  .setkani h2, .reference h2, .kontakt h2 { font-size: 50px; }
  .setkani h2 { margin-bottom: 14px; }
  .setkani .divider, .reference .divider { width: 64px; margin-bottom: 56px; }
  .cards {
    max-width: 1200px; margin: 0 auto;
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 34px;
  }
  .card img { height: 236px; }
  .card .body { padding: 28px 28px 30px; }
  .card h3 { margin-bottom: 24px; font-size: 30px; }
  .btn { padding: 15px; }

  /* Sesouladění páru */
  .pary-blok { padding: 84px 40px 104px; }
  .pary-grid {
    max-width: 1140px; margin: 0 auto;
    display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center;
  }
  .pary-photo .foto, .pary-photo .ph-blob { width: min(100%, 380px); }
  .pary-photo { justify-content: flex-start; }
  .pary-photo .graf { width: min(100%, 520px); margin-left: -56px; }
  .pary-text h2 { font-size: 36px; text-align: left; }
  .pary-text p { font-size: 17px; line-height: 1.85; }
  .pary-cta-row { justify-content: flex-start; margin-top: 26px; }
  .card-ph { height: 236px; }
  .photo-ph { max-width: 760px; margin: 0 auto; border-radius: 26px; }

  /* Reference */
  .reference { padding: 96px 40px; }
  .reference .ref-grid { max-width: 1200px; margin: 0 auto; grid-template-columns: repeat(4, 1fr); gap: 26px; }
  .ref-video { border-radius: 22px; }
  .reference .expander-inner .ref-grid { padding-top: 26px; }
  .setkani .expander-inner .cards { padding: 34px 0 40px; }
  .ref-more { margin-top: 46px; }
  .btn-outline { padding: 14px 38px; font-size: 15px; letter-spacing: 0.06em; }

  /* Kontakt */
  .kontakt { padding: 96px 40px; }
  .kontakt-grid {
    max-width: 1200px; margin: 0 auto;
    display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 72px; align-items: start;
  }
  .kontakt h2 { margin-bottom: 34px; }
  .kontakt .who { gap: 8px; font-size: 17px; }
  .kontakt .who .name { font-size: 20px; }
  .kontakt .rule { margin: 28px 0; }
  .kontakt .firm { gap: 4px; font-size: 16px; }
  .kontakt .tagline { margin: 28px 0 0; font-size: 24px; }
  .price-card {
    border-radius: 26px; padding: 44px 48px;
    box-shadow: 0 22px 54px -40px rgba(190,120,120,0.5);
  }
  .price-card .eyebrow { margin-bottom: 6px; font-size: 12px; }
  .price-card .intro { margin-bottom: 22px; font-size: 16px; }
  .price-row { padding: 15px 0; gap: 20px; }
  .price-row .label { font-size: 17px; }
  .price-row .price { font-size: 25px; }
  .price-card .scope { margin: 14px 0 26px; font-size: 16px; }
  .price-box {
    border-radius: 18px; padding: 24px 26px;
    display: flex; align-items: baseline; justify-content: space-between; gap: 24px;
  }
  .price-box p:first-child { margin: 0; font-size: 17px; line-height: 1.6; }
  .price-box p:last-child { flex: none; font-size: 28px; }
  .price-card .rule2 { margin: 28px 0; }
  .price-note { margin-bottom: 12px; gap: 14px; font-size: 16px; line-height: 1.75; }

  /* Footer */
  .footer { min-height: 460px; padding: 90px 40px; }
  .footer .veil { background: rgba(255,255,255,0.42); }
  .footer .inner { max-width: 900px; }
  .footer .quote { font-size: clamp(32px, 3.5vw, 42px); line-height: 1.45; }
  .footer img { width: 92px; height: 92px; margin-top: 34px; opacity: 0.9; }

  /* Subpages */
  .sub-hero {
    padding: 74px 40px 60px;
    background: radial-gradient(1000px 520px at 50% -10%, #FDF1F1 0%, #FFFFFF 70%);
  }
  .sub-hero .back { font-size: 12px; }
  .sub-hero h1 { margin-top: 20px; font-size: clamp(46px, 5.5vw, 66px); line-height: 1.08; }
  .sub-hero .sub { margin: 22px auto 0; max-width: 660px; font-size: 19px; }
  .sub-hero .divider { width: 64px; margin-top: 34px; }

  .sub-facts { max-width: 1180px; margin: 0 auto; padding: 0 40px 82px; }
  .sub-facts .photo { max-width: 760px; margin: 0 auto; height: auto; border-radius: 26px; }
  .facts-grid { display: grid; grid-template-columns: 0.7fr 1.3fr; gap: 40px; margin-top: 42px; }
  .facts-grid .fact { margin-top: 0; padding-top: 20px; }
  .fact .label { margin-bottom: 8px; }
  .fact .value { font-size: 30px; }
  .fact .text { font-size: 17px; }
  .fact .text .price { font-size: 24px; }

  .sub-highlight { padding: 82px 40px; }
  .sub-highlight .heart { font-size: 16px; margin-bottom: 22px; }
  .sub-highlight p { max-width: 900px; margin: 0 auto; font-size: 34px; }
  .sub-highlight p.long { font-size: 27px; }

  .sub-program { max-width: 980px; margin: 0 auto; padding: 88px 40px 74px; }
  .sub-program h2 { margin-bottom: 8px; font-size: 44px; }
  .sub-program .heart-mark { font-size: 15px; margin-bottom: 34px; }
  .sub-program .rows p { padding: 24px 0; font-size: 17px; line-height: 1.85; }
  .sub-program .rows p.day { padding: 26px 0 4px; font-size: 28px; }
  .sub-program .rows p.cont { padding: 14px 0 10px; }
  .sub-program .rows > p.cont:last-child { padding-bottom: 24px; }

  .sub-card-section { max-width: 980px; margin: 0 auto; padding: 0 40px 88px; }
  .sub-card { border-radius: 26px; padding: 44px 48px; }
  .sub-card + .sub-card { margin-top: 26px; }
  .sub-card h2 { margin-bottom: 18px; font-size: 32px; }
  .sub-card p { font-size: 17px; line-height: 1.85; }

  .sub-close { max-width: 840px; margin: 0 auto; padding: 0 40px 96px; }
  .sub-close .big { font-size: 34px; }
  .sub-close .info { margin-top: 26px; font-size: 18px; }
  .sub-close .sign { margin-top: 18px; font-size: 52px; }
  .sub-close .sign-img { width: 235px; margin-top: 24px; }
  .sub-close .sign.small { font-size: 40px; }
}

/* ============================================================
   Landing page — Pobyty pro páry
   ============================================================ */
.lp-hero h1 { font-size: min(31px, calc((100vw - 48px) / 10.5)); line-height: 1.22; }
.lp-points { flex-direction: column; align-items: center; gap: 10px; }
.lp-points .item { text-align: left; }
.portrait.no-sign { padding-bottom: 20px; }

.lp-section { padding: 56px 24px; }
.lp-eyebrow {
  margin: 0 0 18px; text-align: center; font-size: 11px;
  letter-spacing: 0.2em; text-transform: uppercase; color: #C09A9A;
}
.lp-h2 {
  margin: 0 auto 16px; text-align: center;
  font-family: 'Spectral', serif; font-weight: 300;
  font-size: 30px; line-height: 1.25; color: #6F3F44; text-wrap: balance;
}
.lp-sub {
  margin: 0 auto 26px; text-align: center; font-size: 16px; line-height: 1.7;
  color: #8A7C7E; text-wrap: pretty;
}
.lp-lead {
  margin: 0 0 26px; font-family: 'Spectral', serif; font-weight: 300; font-size: 22px;
  line-height: 1.55; color: #6F3F44; text-align: center; text-wrap: pretty;
}
.lp-pokud { margin: 0 0 6px; font-size: 16px; font-weight: 700; color: #6F3F44; }
.lp-pokud.center { text-align: center; }
.lp-text { margin: 18px 0 0; font-size: 16px; line-height: 1.8; color: #6F3F44; text-wrap: pretty; }
.lp-list { display: flex; flex-direction: column; }
.lp-list p {
  margin: 0; padding: 14px 0; font-size: 15px; line-height: 1.7; color: #6F3F44;
  border-top: 1px solid #F1DEDE; display: flex; gap: 12px; text-wrap: pretty;
}
.lp-list p:last-child { border-bottom: 1px solid #F1DEDE; }
.lp-list .h { flex: none; color: #E18A8A; font-size: 13px; line-height: 2; }

.lp-mood .btn { display: inline-flex; margin-top: 28px; padding: 16px 34px; }
.lp-mood { min-height: 340px; }

.lp-video { padding: 0; }
.lp-pink { padding: 56px 24px; background: #FDF3F3; }
.lp-pink-inner { }

.zmena-grid { display: flex; flex-direction: column; gap: 16px; margin-top: 20px; }
.zmena-card { background: #FDF6F6; border-radius: 18px; padding: 24px 22px; }
.lp-pink .zmena-card { background: #FFFFFF; }
.zmena-card h3 {
  margin: 0 0 8px; font-family: 'Spectral', serif; font-weight: 300;
  font-size: 23px; color: #6F3F44;
}
.zmena-card p { margin: 0; font-size: 15px; line-height: 1.7; color: #6F3F44; }

.lp-ola { text-align: center; margin-top: 6px; }
.lp-ola-photo { position: relative; max-width: 300px; margin: 0 auto; }
.lp-ola-photo .foto {
  width: 100%; aspect-ratio: 1 / 1.05; object-fit: cover; object-position: 50% 18%;
  border-radius: 47% 53% 44% 56% / 52% 46% 56% 48%; display: block;
}
.lp-ola-photo .sign { width: 170px; height: auto; display: block; margin: 14px auto 0; }
.lp-placeholder {
  margin: 22px 0 0; font-family: ui-monospace, 'SF Mono', monospace;
  font-size: 12px; color: #B08C8C;
}
.lp-cta-row { display: flex; justify-content: center; margin-top: 30px; }
.lp-cta { display: inline-flex; padding: 16px 34px; }

.steps { display: flex; flex-direction: column; align-items: center; text-align: center; margin-top: 8px; }
.step { max-width: 560px; }
.step h3 {
  margin: 0 0 8px; font-family: 'Spectral', serif; font-weight: 300;
  font-size: 23px; line-height: 1.3; color: #6F3F44;
}
.step p { margin: 0; font-size: 15px; line-height: 1.75; color: #6F3F44; text-wrap: pretty; }
.step-arrow { color: #E18A8A; font-size: 22px; margin: 16px 0; }

.misto-list p { border-color: #F0D8D8; }
.misto-list p:last-child { border-color: #F0D8D8; }
.misto-photos { display: grid; grid-template-columns: 1fr; gap: 14px; margin-top: 28px; }
.misto-photos img {
  width: 100%; aspect-ratio: 3 / 2; object-fit: cover; display: block;
  border-radius: 18px; border: 1px solid #F4E3E3;
}
.misto-photos .ph {
  aspect-ratio: 3 / 2; border-radius: 18px; border: 1px solid #F4E1E1;
  background: repeating-linear-gradient(135deg, #FBEEEE 0 10px, #FDF6F6 10px 20px);
  display: flex; align-items: flex-end; justify-content: center; padding: 14px;
}
.misto-photos .ph p { margin: 0; font-family: ui-monospace, 'SF Mono', monospace; font-size: 11px; color: #B08C8C; }

.lp-cena .lp-price { margin-top: 10px; }
.lp-price-line { margin: 20px 0 0; font-size: 16px; color: #6F3F44; }
.lp-price-line .price { font-family: 'Spectral', serif; font-weight: 300; font-size: 25px; color: #C96F70; white-space: nowrap; }
.lp-big {
  margin: 0 0 16px; font-family: 'Spectral', serif; font-weight: 300; font-size: 22px;
  line-height: 1.5; color: #6F3F44; text-wrap: pretty;
}
.lp-note { margin: 0 0 12px; font-size: 15px; line-height: 1.75; color: #6E6265; }
.lp-form { display: flex; flex-direction: column; gap: 12px; margin-top: 20px; }
.lp-form input, .lp-form textarea {
  padding: 14px 16px; border-radius: 14px; border: 1px solid #F1DCDC;
  font-family: 'Nunito Sans', sans-serif; font-size: 15px; color: #6F3F44; background: #FFFFFF;
}
.lp-form input::placeholder, .lp-form textarea::placeholder { color: #C09A9A; }
.lp-form textarea { min-height: 110px; resize: vertical; }
.lp-form button {
  padding: 16px; border-radius: 999px; border: 0; background: #E18A8A;
  color: #FFFFFF; font-family: 'Nunito Sans', sans-serif; font-size: 15px;
  letter-spacing: 0.08em; cursor: pointer;
}
.lp-form button:hover { background: #D57878; }
#form-dekujeme { margin: 4px 0 0; font-size: 15px; color: #C96F70; }

.faq details { border-top: 1px solid #F1DEDE; }
.faq details:last-of-type { border-bottom: 1px solid #F1DEDE; }
.faq summary {
  cursor: pointer; padding: 18px 34px 18px 0; list-style: none; position: relative;
  font-family: 'Spectral', serif; font-weight: 300; font-size: 21px; line-height: 1.35; color: #6F3F44;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
  content: '+'; position: absolute; right: 6px; top: 50%; transform: translateY(-50%);
  color: #E18A8A; font-size: 24px; font-family: 'Nunito Sans', sans-serif;
}
.faq details[open] summary::after { content: '−'; }
.faq .a { margin: 0; padding: 0 0 20px; font-size: 15px; line-height: 1.8; color: #6F3F44; text-wrap: pretty; }

.lp-footer { padding: 34px 24px 40px; text-align: center; background: #FFFFFF; }
.lp-footer p { margin: 0 0 6px; font-size: 14px; line-height: 1.7; color: #6E6265; }
.lp-footer .name { font-size: 17px; font-weight: 600; color: #6F3F44; }
.lp-footer .firm { font-size: 13px; }

@media (min-width: 900px) {
  .lp-hero h1 { font-size: clamp(34px, 3.4vw, 44px); line-height: 1.16; }
  .lp-points { flex-direction: row; flex-wrap: wrap; justify-content: flex-start; gap: 12px 26px; max-width: 520px; }
  .lp-section { max-width: 980px; margin: 0 auto; padding: 88px 40px; }
  .lp-eyebrow { font-size: 13px; margin-bottom: 24px; }
  .lp-h2 { max-width: 760px; font-size: 42px; margin-bottom: 20px; }
  .lp-sub { max-width: 660px; font-size: 18px; margin-bottom: 34px; }
  .lp-lead { max-width: 760px; margin: 0 auto 30px; font-size: 27px; }
  .lp-list { max-width: 760px; margin: 0 auto; }
  .lp-pokud { max-width: 760px; margin: 0 auto 6px; font-size: 17px; }
  .lp-text { max-width: 760px; margin: 20px auto 0; font-size: 17px; line-height: 1.85; }
  .lp-list p { padding: 16px 0; font-size: 16px; }
  .lp-mood { min-height: 400px; }
  .lp-pink { padding: 88px 40px; }
  .lp-pink > .lp-h2, .lp-pink > .lp-sub { }
  .lp-pink-inner { max-width: 760px; margin: 0 auto; }
  .lp-video { max-width: 940px; margin: 0 auto; }
  .zmena-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; max-width: 980px; margin: 26px auto 0; }
  .zmena-card { padding: 30px 30px; border-radius: 22px; }
  .zmena-card h3 { font-size: 26px; margin-bottom: 10px; }
  .zmena-card p { font-size: 16px; }
  .zmena-card:last-child { grid-column: 1 / -1; max-width: 478px; justify-self: center; width: 100%; }
  .lp-ola-photo { max-width: 340px; }
  .steps { margin-top: 14px; }
  .step h3 { font-size: 27px; }
  .step p { font-size: 16px; }
  .misto-photos { grid-template-columns: repeat(3, 1fr); gap: 22px; max-width: 1100px; margin: 36px auto 0; }
  .lp-cena .lp-price { max-width: 700px; margin: 10px auto 0; }
  .lp-big { font-size: 25px; }
  .faq { max-width: 820px; }
  .faq summary { font-size: 24px; }
  .faq .a { font-size: 16px; }
  .lp-footer { padding: 40px 40px 46px; }
}

/* ============================================================
   Beige theme — only LP Pobyty pro páry (body.beige)
   ============================================================ */
body.beige { background: #EFE9DE; color: #5E4B3B; }
.beige a { color: #A9835D; }
.beige a:hover { color: #C0996F; }
.beige .nav { border-bottom-color: #F0E9DC; }
@media (max-width: 899.98px) {
  .beige .nav { background: rgba(247,241,232,0.94); }
  .beige .hero {
    background:
      linear-gradient(180deg, #F7F1E8 0%, rgba(247,241,232,0) 140px),
      radial-gradient(420px 300px at 50% 0%, #F7F1E8 0%, #FFFFFF 72%);
  }
}
.beige .nav-links a { color: #6B5F50; }
.beige .nav-links a:hover { color: #A9835D; }
.beige .nav-links .nav-cta { background: #B5936B; color: #FFFFFF; }
.beige .nav-links .nav-cta:hover { background: #A78255; color: #FFFFFF; }
.beige .burger { border-color: #EAE0D0; }
.beige .burger div { background: #A9835D; }
.beige .menu { background: #F7F1E8; }
.beige .menu-head { border-bottom-color: #EDE4D4; }
.beige .menu-close { border-color: #E5DAC6; }
.beige .menu-close div { background: #A9835D; }
.beige .menu-links a { color: #5E4B3B; }
.beige .menu-foot { color: #8A8072; }

.beige .hero h1 { color: #5E4B3B; }
.beige .hero-perex { color: #5E4B3B; }
.beige .hero-points { color: #8A8072; }
.beige .hero-points .h { color: #C2A075; }
.beige .hero-ctas .cta-fill { background: #B5936B; }
.beige .hero-ctas .cta-fill:hover { background: #A78255; }
.beige .hero-ctas .cta-outline { border-color: #DFCFB4; color: #A9835D; }
.beige .hero-ctas .cta-outline:hover { background: #FAF6EF; }
.beige .divider { background: #E3D5BC; }
.beige .portrait .blob-fill { background: #F5EEE1; }
.beige .portrait .blob-line { border-color: #EAE0CD; }
.beige .hero-photo .g1 { background: radial-gradient(circle, rgba(216,187,142,0.55) 0%, rgba(216,187,142,0) 70%); }
.beige .hero-photo .g2 { background: radial-gradient(circle, rgba(233,216,185,0.85) 0%, rgba(233,216,185,0) 72%); }
.beige .hero-photo .g3 { background: radial-gradient(circle, rgba(169,184,132,0.30) 0%, rgba(169,184,132,0) 70%); }
.beige .hero-photo .g4 { background: radial-gradient(circle, rgba(226,205,168,0.55) 0%, rgba(226,205,168,0) 70%); }

.beige .lp-eyebrow { color: #AF9E82; }
.beige .lp-h2, .beige .zmena-card h3, .beige .step h3, .beige .reference h2 { color: #5E4B3B; }
.beige .lp-sub { color: #8A8072; }
.beige .lp-lead, .beige .lp-text, .beige .lp-pokud, .beige .zmena-card p, .beige .step p { color: #5E4B3B; }
.beige .lp-list p { color: #5E4B3B; border-color: #EAE0D0; }
.beige .lp-list .h { color: #C2A075; }
.beige .lp-pink { background: #F7F1E8; }
.beige .zmena-card { background: #FAF6EF; }
.beige .lp-pink .zmena-card { background: #FFFFFF; }
.beige .step-arrow { color: #C2A075; }
.beige .video .frame { background: #F5EEE1; border-color: #EEE5D6; }
.beige .misto-photos img { border-color: #EEE5D6; }
.beige .misto-photos .ph { border-color: #EEE5D6; background: repeating-linear-gradient(135deg, #F5EEE1 0 10px, #FAF6EF 10px 20px); }
.beige .misto-photos .ph p, .beige .lp-placeholder { color: #AF9E82; }
.beige .ref-video { border-color: #EEE5D6; background: #F5EEE1; }
.beige .btn, .beige .lp-form button { background: #B5936B; color: #FFFFFF; }
.beige .btn:hover, .beige .lp-form button:hover { background: #A78255; color: #FFFFFF; }
.beige .btn-outline { border-color: #C2A075; color: #A9835D; }
.beige .btn-outline:hover { background: #FAF6EF; }

.beige .price-card { border-color: #EEE5D6; box-shadow: 0 22px 54px -40px rgba(150,120,80,0.45); }
.beige .price-card .eyebrow { color: #A9835D; }
.beige .lp-price-line { color: #5E4B3B; }
.beige .lp-price-line .price { color: #A9835D; }
.beige .lp-big { color: #5E4B3B; }
.beige .lp-note { color: #8A8072; }
.beige .price-card .rule2 { background: #EAE0D0; }
.beige .lp-form input, .beige .lp-form textarea { border-color: #EAE0D0; color: #5E4B3B; }
.beige .lp-form input::placeholder, .beige .lp-form textarea::placeholder { color: #AF9E82; }
.beige #form-dekujeme { color: #A9835D; }

.beige .faq details { border-color: #EAE0D0; }
.beige .faq details:last-of-type { border-color: #EAE0D0; }
.beige .faq summary { color: #5E4B3B; }
.beige .faq summary::after { color: #C2A075; }
.beige .faq .a { color: #5E4B3B; }

.beige .lp-mood .veil {
  background: rgba(250,246,239,0.55);
  -webkit-backdrop-filter: sepia(0.5) saturate(0.5) hue-rotate(-8deg);
  backdrop-filter: sepia(0.5) saturate(0.5) hue-rotate(-8deg);
}
.beige .lp-mood .quote { color: #5E4B3B; }
.beige .lp-footer p { color: #8A8072; }
.beige .lp-footer .name { color: #5E4B3B; }

/* ---------- Text z administrace (odrážky, tučné, odkazy) ---------- */
.sub-program .rows ul, .sub-program .rows ol {
  margin: 0; padding: 20px 0 20px 22px; border-top: 1px solid #F1DEDE;
  font-size: 15px; line-height: 1.8; color: #6F3F44;
}
.sub-program .rows ul.cont, .sub-program .rows ol.cont { border-top: 0; padding-top: 0; }
.sub-program .rows li { margin-bottom: 8px; }
.sub-program .rows li:last-child { margin-bottom: 0; }
.sub-card ul, .sub-card ol { margin: 0 0 14px; padding-left: 22px; font-size: 15px; line-height: 1.8; color: #6F3F44; }
.sub-card li { margin-bottom: 6px; }
.sub-close ul, .sub-close ol { display: inline-block; text-align: left; margin: 0; padding-left: 22px; }
.sub-program .rows strong, .sub-card strong, .sub-close strong { font-weight: 700; }
.sub-program .rows em, .sub-card em { font-style: italic; }

@media (min-width: 900px) {
  .sub-program .rows ul, .sub-program .rows ol { padding: 24px 0 24px 26px; font-size: 17px; line-height: 1.85; }
  .sub-program .rows ul.cont, .sub-program .rows ol.cont { padding-top: 14px; }
  .sub-card ul, .sub-card ol { font-size: 17px; line-height: 1.85; }
}

/* ============================================================
   WordPress + Elementor
   Kontejner se sekcí OLA se skládá jako obyčejný blok, stejně jako
   sekce na původním webu. Ve flexboxu Elementoru by prvky s poměrem
   stran (videa) spočítaly výšku podle iframe 300×150 a přetekly.
   ============================================================ */
.e-con:has(> .elementor-widget[class*="elementor-widget-ola-"]) { display: block; }

/* Elementor dává obrázkům výšku auto; logo v úvodu má pevnou. */
.elementor .hero-logo { height: 132px; }
@media (min-width: 900px) {
  .elementor .hero-logo { height: 190px; }
}

/* ============================================================
   Pobyty pro páry – úpravy podle zadání (září 2026)
   ============================================================ */

/* Úvod: bez loga a podpisu, větší text pod nadpisem */
.lp-hero .hero-perex { font-size: 18px; line-height: 1.7; }
.hero.bez-podpisu .hero-photo { padding-bottom: 30px; }
.hero.bez-podpisu .portrait { padding-bottom: 20px; }

/* Lišta s ikonami pod úvodem */
.ikony { padding: 34px 24px 46px; background: #FFFFFF; color: #6F3F44; }
.ikony-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 30px 16px; }
.ikona { text-align: center; }
.ikona-obr { display: block; width: 54px; height: 54px; margin: 0 auto 12px; }
.ikona-obr svg, .ikona-obr img { display: block; width: 100%; height: 100%; object-fit: contain; }
.ikona p { margin: 0; font-size: 15px; line-height: 1.45; text-wrap: balance; }
.beige .ikony { color: #5E4B3B; }

/* Fotka vedle seznamu nebo textu */
.lp-split { display: flex; flex-direction: column; gap: 28px; }
/* fotky jsou připravené i s tvarem a září (PNG/WebP s průhledností) – bez ořezu */
.lp-split-foto img { display: block; width: min(100%, 340px); height: auto; margin: 0 auto; }
.lp-split-obsah .lp-text:first-child { margin-top: 0; }

/* Karty s malou kulatou fotkou */
.zmena-card.s-fotkou { display: flex; align-items: center; gap: 18px; }
.zmena-foto { flex: none; width: 92px; height: auto; display: block; margin: -8px -6px -8px -10px; }
.zmena-text { min-width: 0; }

/* Kdo vás provede: fotka s podpisem vlevo, text a tlačítko vpravo */
.lp-ola--vedle { text-align: left; }
.lp-ola--vedle .lp-ola-photo { margin-bottom: 8px; }
.lp-ola--vedle .lp-ola-text .lp-cta-row { margin-top: 26px; }
.lp-ola--vedle .lp-cta { text-align: center; justify-content: center; }

/* Průběh víkendu: fotky – na mobilu pod kroky, na velké obrazovce po stranách */
.kroky-fotky { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 34px; }
.krok-foto { display: block; width: 100%; height: auto; }

/* Úvod s fotkou, která už má tvar i záři */
.hero.foto-tvar .glow { display: none; }
.hero.foto-tvar .hero-photo { padding: 0 0 10px; margin-top: 18px; }
.hero.foto-tvar .hero-photo .foto,
.hero.foto-tvar .portrait .foto { width: min(100%, 400px); aspect-ratio: auto; height: auto; border-radius: 0; object-fit: contain; }

/* Místo: fotky s vlastním tvarem, na mobilu po dvou */
.misto-photos--tvar { grid-template-columns: 1fr 1fr; gap: 10px; }
.misto-photos--tvar img { aspect-ratio: auto; height: auto; object-fit: contain; border: 0; border-radius: 0; }

@media (min-width: 900px) {
  .lp-hero .hero-perex { font-size: 22px; line-height: 1.65; max-width: 520px; }

  .ikony { padding: 50px 40px 70px; }
  .ikony-grid {
    max-width: 1140px; margin: 0 auto;
    grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 40px;
  }
  .ikona-obr { width: 74px; height: 74px; margin-bottom: 18px; }
  .ikona p { font-size: 20px; line-height: 1.4; }

  .lp-split {
    display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
    gap: 56px; align-items: center; max-width: 900px; margin: 0 auto;
  }
  .lp-split--vpravo { grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.75fr); }
  .lp-pink-inner.lp-split { max-width: 1000px; }
  .lp-split .lp-list, .lp-split .lp-pokud, .lp-split .lp-text { max-width: none; margin-left: 0; margin-right: 0; }

  .zmena-card.s-fotkou { gap: 22px; }
  .zmena-foto { width: 124px; margin: -12px -8px -12px -14px; }
  .hero.foto-tvar .hero-photo { padding: 0; margin-top: 0; }
  .hero.foto-tvar .hero-photo .foto { width: min(100%, 580px); }
  .misto-photos--tvar { grid-template-columns: repeat(4, 1fr); gap: 18px; }
  .lp-split-foto img { width: 100%; max-width: 420px; }

  .lp-ola--vedle {
    display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
    gap: 60px; align-items: center; max-width: 1000px; margin: 20px auto 0;
  }
  .lp-ola--vedle .lp-ola-photo { max-width: 360px; width: 100%; margin: 0 auto; }
  .lp-ola--vedle .lp-ola-text .lp-text { max-width: none; margin: 18px 0 0; }
  .lp-ola--vedle .lp-ola-text .lp-text:first-child { margin-top: 0; }
  .lp-ola--vedle .lp-cta-row { justify-content: flex-start; }
}

@media (min-width: 1100px) {
  .lp-section.s-fotkami { position: relative; }
  .kroky-fotky { display: block; margin: 0; }
  .krok-foto { position: absolute; width: clamp(190px, 20vw, 340px); }
  /* 50 % – 50vw = okraj okna; fotky střídavě vlevo a vpravo, různě daleko od textu */
  .krok-foto-1 { top: 150px; left: calc(50% - 50vw + 5.5vw); }
  .krok-foto-2 { top: 34%; right: calc(50% - 50vw + 2.5vw); }
  .krok-foto-3 { top: 58%; left: calc(50% - 50vw + 2vw); }
  .krok-foto-4 { top: 76%; right: calc(50% - 50vw + 6.5vw); }
}

/* Nadpis a úvodní věta vedle fotky, zarovnané s textem (září 2026, 2. kolo) */
.lp-split--nadpis .lp-eyebrow,
.lp-split--nadpis .lp-lead,
.lp-split--nadpis .lp-h2 { text-align: left; margin-left: 0; margin-right: 0; max-width: none; }
.lp-split--nadpis .lp-lead { margin-bottom: 26px; }

@media (min-width: 900px) {
  .lp-section.s-fotkou .lp-split-foto img { max-width: 460px; margin: 0; }
  .lp-pink-inner.lp-split--vpravo {
    max-width: 1100px; grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); gap: 48px;
  }
  .lp-split--vpravo .lp-split-foto img { max-width: 520px; margin: 0 0 0 auto; }
}
@media (min-width: 1200px) {
  /* fotka u výčtu vystoupí doleva za textový sloupec stránky */
  .lp-section.s-fotkou .lp-split {
    max-width: none; margin-left: -130px; margin-right: -90px;
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr); gap: 60px;
  }
  .lp-section.s-fotkou .lp-split-foto img { max-width: 540px; }
}

/* Tvarované fotky se září: na mobilu a tabletu se vycentruje samotná fotka,
   ne celý obrázek i se září (posun --posun-x spočítá plugin z průhlednosti). */
@media (max-width: 899.98px) {
  .hero.foto-tvar .hero-photo .foto,
  .lp-split-foto img { transform: translateX(var(--posun-x, 0%)); }
}
