/*
Theme Name: Zen Essence
Theme URI: https://zenessence.cz/
Description: Lightweight child block theme for Zen Essence, based on Twenty Twenty-Five.
Author: A&S Enterprises / Zen Essence
Template: twentytwentyfive
Version: 0.1.0
Text Domain: zen-essence
*/

:root {
  --ze-forest: #1f3a34;
  --ze-sage: #6f8b7c;
  --ze-sage-soft: #aebdb4;
  --ze-sand: #e8e0d4;
  --ze-gold: #c4a15a;
  --ze-ivory: #f8f6f1;
  --ze-charcoal: #252b28;
  --ze-white: #ffffff;
  --ze-radius: 22px;
  --ze-shadow: 0 18px 50px rgba(31, 58, 52, 0.08);
}

html { scroll-behavior: smooth; }
body { background: var(--ze-ivory); color: var(--ze-charcoal); }

.ze-site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(248, 246, 241, 0.94);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(31, 58, 52, 0.09);
}

.ze-header-inner,
.ze-footer-inner {
  max-width: 1240px;
  margin: 0 auto;
  padding: 18px clamp(20px, 4vw, 52px);
}

.ze-header-row {
  display: flex;
  align-items: center;
  gap: 28px;
  justify-content: space-between;
}

.ze-brand-link {
  color: var(--ze-forest);
  text-decoration: none;
  font-family: ui-serif, Georgia, Cambria, "Times New Roman", serif;
  letter-spacing: .18em;
  text-transform: uppercase;
  font-size: .95rem;
  white-space: nowrap;
}

.ze-primary-nav {
  display: flex;
  align-items: center;
  gap: 22px;
  flex: 1;
  justify-content: center;
  font-size: .95rem;
}

.ze-primary-nav a,
.ze-footer-nav a,
.ze-language-switcher {
  color: var(--ze-charcoal);
  text-decoration: none;
}

.ze-primary-nav a:hover,
.ze-footer-nav a:hover,
.ze-language-switcher:hover { color: var(--ze-forest); }

.ze-primary-nav .ze-nav-cta {
  padding: 10px 16px;
  border: 1px solid var(--ze-forest);
  border-radius: 999px;
  color: var(--ze-forest);
}

.ze-language-switcher {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  border: 1px solid rgba(31, 58, 52, .24);
  border-radius: 999px;
  font-size: .82rem;
  letter-spacing: .08em;
  font-weight: 600;
}

.ze-hero {
  min-height: min(76vh, 820px);
  display: grid;
  align-items: center;
  padding-top: clamp(76px, 10vw, 150px) !important;
  padding-bottom: clamp(76px, 10vw, 150px) !important;
  background:
    radial-gradient(circle at 80% 22%, rgba(196,161,90,.18), transparent 32%),
    radial-gradient(circle at 12% 78%, rgba(111,139,124,.18), transparent 34%),
    linear-gradient(135deg, #fbfaf7 0%, #f1ede5 100%);
}

.ze-hero .wp-block-group__inner-container,
.ze-section-inner,
.ze-final-cta .wp-block-group__inner-container { max-width: 1120px; }

.ze-eyebrow {
  text-transform: uppercase;
  letter-spacing: .17em;
  color: var(--ze-forest);
  font-weight: 600;
  font-size: .78rem;
  margin-bottom: 18px;
}

.ze-hero h1,
.ze-display-heading {
  font-family: ui-serif, Georgia, Cambria, "Times New Roman", serif;
  color: var(--ze-forest);
  font-weight: 500;
  line-height: 1.02;
  letter-spacing: -.025em;
}

.ze-hero h1 { max-width: 920px; font-size: clamp(3rem, 7vw, 6.2rem); }
.ze-lead { max-width: 720px; font-size: clamp(1.08rem, 2vw, 1.32rem); line-height: 1.7; color: #4b5751; }

.ze-button-row { gap: 12px !important; margin-top: 32px !important; }
.wp-block-button .wp-block-button__link {
  border-radius: 999px;
  padding: 13px 22px;
  transition: transform .18s ease, box-shadow .18s ease;
}
.wp-block-button .wp-block-button__link:hover { transform: translateY(-1px); box-shadow: 0 10px 25px rgba(31,58,52,.12); }
.ze-button-primary .wp-block-button__link { background: var(--ze-forest); color: var(--ze-white); }
.ze-button-secondary .wp-block-button__link { background: transparent; color: var(--ze-forest); border: 1px solid var(--ze-forest); }

.ze-section { padding-top: clamp(68px, 8vw, 118px) !important; padding-bottom: clamp(68px, 8vw, 118px) !important; }
.ze-section-alt { background: #f1ede5; }
.ze-section-dark { background: var(--ze-forest); color: var(--ze-ivory); }
.ze-section-dark h2, .ze-section-dark h3 { color: var(--ze-white); }

.ze-section h2,
.ze-page-intro h1 {
  font-family: ui-serif, Georgia, Cambria, "Times New Roman", serif;
  color: var(--ze-forest);
  font-weight: 500;
  letter-spacing: -.02em;
}

.ze-section h2 { font-size: clamp(2.2rem, 4.6vw, 4rem); }
.ze-section-copy { max-width: 760px; color: #53615a; line-height: 1.75; }

.ze-card-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px !important;
  margin-top: 38px !important;
}

.ze-card {
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(31,58,52,.08);
  border-radius: var(--ze-radius);
  padding: 26px !important;
  box-shadow: var(--ze-shadow);
}

.ze-card h3 { font-family: ui-serif, Georgia, Cambria, "Times New Roman", serif; color: var(--ze-forest); font-size: 1.35rem; font-weight: 500; }
.ze-meta { color: #65736c; font-size: .9rem; }
.ze-price { color: var(--ze-forest); font-weight: 650; }
.ze-muted { color: #66736d; }

.ze-split {
  display: grid !important;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr);
  gap: clamp(32px, 6vw, 84px) !important;
  align-items: start;
}

.ze-highlight {
  border-left: 2px solid var(--ze-gold);
  padding-left: 24px;
}

.ze-step-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px !important;
  margin-top: 34px !important;
}
.ze-step-number { color: var(--ze-gold); font-size: .82rem; letter-spacing: .12em; font-weight: 700; }

.ze-page-intro {
  padding-top: clamp(76px, 9vw, 130px) !important;
  padding-bottom: clamp(48px, 6vw, 84px) !important;
}
.ze-page-intro h1 { font-size: clamp(3rem, 6vw, 5.4rem); }

.ze-final-cta {
  padding-top: clamp(70px, 8vw, 110px) !important;
  padding-bottom: clamp(70px, 8vw, 110px) !important;
  background: var(--ze-forest);
  color: var(--ze-ivory);
}
.ze-final-cta h2 { color: var(--ze-white); font-family: ui-serif, Georgia, Cambria, "Times New Roman", serif; font-weight: 500; }
.ze-final-cta .ze-button-primary .wp-block-button__link { background: var(--ze-ivory); color: var(--ze-forest); }

.ze-site-footer { border-top: 1px solid rgba(31,58,52,.1); background: #f3efe8; }
.ze-footer-row { display: flex; gap: 24px; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.ze-footer-nav { display: flex; flex-wrap: wrap; gap: 16px; font-size: .9rem; }
.ze-footer-meta { font-size: .84rem; color: #69756f; }

@media (max-width: 960px) {
  .ze-header-row { align-items: flex-start; flex-wrap: wrap; }
  .ze-primary-nav { order: 3; width: 100%; justify-content: flex-start; overflow-x: auto; padding-bottom: 4px; }
  .ze-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ze-split { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
  .ze-header-inner { padding: 14px 18px; }
  .ze-primary-nav { gap: 16px; font-size: .88rem; }
  .ze-card-grid, .ze-step-grid { grid-template-columns: 1fr; }
  .ze-hero { min-height: auto; }
}
