:root{
  --lawn-dark:#1E3A2B;
  --lawn:#2F5240;
  --lawn-line:#4A6E58;
  --cream:#F6F2E7;
  --cream-2:#EFE8D6;
  --wood:#8A5A32;
  --gold:#C79A3E;
  --ink:#1E2420;
  --ink-soft:#4B5750;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:'Inter',sans-serif;
  color:var(--ink);
  background:var(--cream);
}
a{color:inherit;}
.wrap{
  max-width:1000px;
  margin:0 auto;
}

/* ---------- Site header ---------- */
.site-header{
  color:var(--cream);
  position:relative;
  overflow:hidden;
  height:170px;
  background-color:#5C6830;
}
.header-gradient{
  position:absolute;
  inset:0;
  background-image:linear-gradient(100deg, rgba(15,30,20,0.88) 0%, rgba(15,30,20,0.74) 40%, rgba(15,30,20,0.30) 68%, rgba(15,30,20,0.12) 100%);
  pointer-events:none;
  z-index:1;
}
.header-inner{
  max-width:1000px;
  margin:0 auto;
  padding:0 32px;
  position:relative;
  height:100%;
  display:flex;
  align-items:center;
}
.header-text{
  display:flex;
  flex-direction:column;
  gap:16px;
  position:relative;
  z-index:2;
  width:100%;
}
.brand-mark{
  display:flex;
  align-items:center;
  gap:14px;
}
.brand-mark svg{flex:none;}
.brand-mark .name{
  font-family:'Fraunces',serif;
  font-weight:600;
  font-size:22px;
  letter-spacing:0.01em;
  color:var(--cream);
  text-shadow:0 1px 5px rgba(0,0,0,0.45);
}
.site-nav{
  display:flex;
  align-items:center;
  gap:26px;
  flex-wrap:nowrap;
  white-space:nowrap;
}
.site-nav a{
  text-decoration:none;
  color:var(--cream);
  font-size:14px;
  font-weight:500;
  letter-spacing:0.02em;
  padding:5px 0;
  border-bottom:2px solid transparent;
  transition:border-color .15s ease;
  text-shadow:0 1px 5px rgba(0,0,0,0.45);
}
.site-nav a:hover{border-color:var(--gold);}
.site-nav a.current{
  color:var(--gold);
  border-color:var(--gold);
}
.site-nav a.external::after{
  content:"↗";
  font-size:11px;
  margin-left:3px;
}
.header-image{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  right:32px;
  width:456px;
  height:170px;
  overflow:hidden;
  z-index:0;
}
.header-image img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
  -webkit-mask-image:linear-gradient(to right, transparent 0, black 130px, black calc(100% - 50px), transparent 100%);
  mask-image:linear-gradient(to right, transparent 0, black 130px, black calc(100% - 50px), transparent 100%);
}

/* ---------- Page intro (homepage hero heading) ---------- */
.page-intro{
  padding:38px 32px 8px;
  max-width:1000px;
  margin:0 auto;
}
.page-intro h1{
  font-family:'Fraunces',serif;
  font-weight:600;
  font-size:40px;
  line-height:1.08;
  margin:0 0 14px;
  color:var(--lawn-dark);
}
.page-intro p.sub{
  font-size:16.5px;
  line-height:1.6;
  max-width:640px;
  color:var(--ink-soft);
  margin:0 0 18px;
}
.balls-row{display:flex; gap:10px;}
.ball{
  width:16px;height:16px;border-radius:50%;
  box-shadow:0 1px 3px rgba(0,0,0,0.25);
}

/* ---------- Body / content sections ---------- */
.section{
  max-width:1000px;
  margin:0 auto;
  padding:22px 32px;
}
.section-title{
  font-family:'Fraunces',serif;
  font-size:24px;
  font-weight:600;
  color:var(--lawn-dark);
  margin:0 0 8px;
}
.section-note{
  font-size:14.5px;
  color:var(--ink-soft);
  margin:0 0 14px;
}
ul.section-list{
  font-size:14.5px;
  color:var(--ink-soft);
  margin:0 0 6px;
  padding-left:20px;
}
ul.section-list li{
  margin:0 0 6px;
  line-height:1.5;
}

/* Photo row */
.photo-row{
  max-width:1000px;
  margin:0 auto;
  padding:10px 32px;
  display:flex;
  gap:12px;
}
.photo-row img{
  flex:1 1 0;
  width:100%;
  height:150px;
  object-fit:cover;
  display:block;
  border-radius:6px;
}

/* Pricing */
.pricing{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
  margin:0 0 20px;
}
.price-card{
  background:var(--cream-2);
  border:1px solid var(--lawn-line);
  border-radius:8px;
  padding:20px 24px 18px;
}
.price-card .field{
  font-size:12.5px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--wood);
  font-weight:600;
  margin:0 0 12px;
}
.price-card .range{
  font-family:'Fraunces',serif;
  font-size:21px;
  font-weight:600;
  color:var(--ink);
  margin:0 0 14px;
}
.price-card .amount{
  font-size:30px;
  font-weight:600;
  color:var(--lawn-dark);
  margin:0;
}
.price-card .amount span{
  font-size:15px;
  font-weight:400;
  color:var(--ink-soft);
}
.price-card .min{
  font-size:13.5px;
  color:var(--ink-soft);
  margin-top:8px;
}

/* Extras */
.extras{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 32px;
}
.extra-row{
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding:10px 0;
  border-bottom:1px solid var(--cream-2);
}
.extra-row:last-child,
.extras > div:last-child .extra-row:last-child{
  border-bottom:none;
}
.extra-row .dot{
  width:12px;height:12px;border-radius:50%;
  margin-top:6px;
  flex:none;
}
.extra-row .label{
  font-size:15px;
  font-weight:500;
  color:var(--ink);
  line-height:1.3;
}
.extra-row .desc{
  font-size:13px;
  color:var(--ink-soft);
  margin-top:2px;
}
.extra-row .val{
  margin-left:auto;
  font-size:15px;
  font-weight:600;
  color:var(--lawn-dark);
  white-space:nowrap;
  padding-left:10px;
}

/* ---------- Kontakty page ---------- */
.org-card{
  background:var(--cream-2);
  border:1px solid var(--lawn-line);
  border-radius:8px;
  padding:22px 26px;
  margin:0 0 28px;
}
.org-card dl{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:8px 20px;
  margin:0;
  font-size:14.5px;
}
.org-card dt{color:var(--wood); font-weight:600;}
.org-card dd{margin:0; color:var(--ink);}
.people{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
}
.person-card{
  background:var(--cream-2);
  border:1px solid var(--lawn-line);
  border-radius:8px;
  padding:20px 24px;
}
.person-card .role{
  font-size:12.5px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--wood);
  font-weight:600;
  margin:0 0 8px;
}
.person-card .person-name{
  font-family:'Fraunces',serif;
  font-size:20px;
  font-weight:600;
  color:var(--lawn-dark);
  margin:0 0 10px;
}
.person-card .contact-line{
  font-size:14px;
  color:var(--ink-soft);
  margin:4px 0;
}
.person-card a{
  color:var(--lawn-dark);
  text-decoration:none;
  font-weight:500;
}
.person-card a:hover{text-decoration:underline;}

/* ---------- Footer ---------- */
.site-footer{
  background:var(--lawn-dark);
  color:var(--cream);
  padding:26px 32px;
  text-align:center;
}
.site-footer .cta-text{
  font-size:15px;
  font-weight:500;
  letter-spacing:0.02em;
}
.site-footer a{
  color:var(--gold);
  text-decoration:none;
  font-weight:600;
}
.site-footer a:hover{text-decoration:underline;}

@media (max-width:900px){
  .header-inner{padding:0 24px;}
}
@media (max-width:640px){
  .page-intro h1{font-size:30px;}
  .photo-row{flex-wrap:wrap;}
  .photo-row img{flex:1 1 45%; height:120px;}
  .pricing,.extras,.people{grid-template-columns:1fr;}
  .brand-mark .name{font-size:17px;}
  .brand-mark svg{width:54px; height:63px;}
  .site-nav{gap:14px;}
  .site-nav a{font-size:12px;}
  .header-inner{padding:0 20px;}
  .section,.page-intro,.photo-row{padding-left:20px;padding-right:20px;}
}
