/* ========================================================================
   ZEMELNYJ PORTAL — Design System v10 (matches reference exactly)
   ======================================================================== */

:root {
  --pz-navy:       #1A2368;
  --pz-green:      #3DA648;
  --pz-green-dark: #2D8A3A;
  --pz-blue:       #0399E5;
  --pz-sky:        #EEF5FC;
  --pz-white:      #FFFFFF;
  --pz-text:       #1C2033;
  --pz-text-sec:   #5B6378;
  --pz-border:     #E4E9F0;
  --pz-radius:     14px;
  --pz-radius-sm:  10px;
  --pz-font:       'Manrope', system-ui, -apple-system, sans-serif;
  --pz-dur:        .28s;
}

/* ── Reset for homepage ── */
.page-id-34 .entry-title,
.page-id-34 .ast-title-layout-1,
.page-id-34 .ast-breadcrumbs-wrapper,
.page-id-34 .entry-header,
.page-id-34 .page-header { display:none!important; }
.page-id-34 .site-content > .ast-container,
.page-id-34 .entry-content,
.page-id-34 .ast-container { max-width:100%!important; padding:0!important; margin:0!important; }
.page-id-34 #primary { padding:0!important; margin:0!important; }
.page-id-34 { text-align:left!important; }

/* ── Container ── */
.pz-container { max-width:1200px; margin:0 auto; padding:0 24px; box-sizing:border-box; }

/* ── Eyebrow ── */
.pz-eyebrow {
  display:block; font-family:var(--pz-font); font-size:.75rem; font-weight:700;
  text-transform:uppercase; letter-spacing:.15em; color:var(--pz-green); margin-bottom:.5rem;
}

/* ── Buttons ── */
.pz-btn {
  display:inline-flex; align-items:center; gap:6px;
  font-family:var(--pz-font); font-size:.9375rem; font-weight:600;
  padding:14px 28px; border-radius:var(--pz-radius-sm);
  text-decoration:none; transition:all var(--pz-dur); cursor:pointer; border:none;
}
.pz-btn--green { background:var(--pz-green); color:#fff; padding:16px 36px; font-size:1rem; }
.pz-btn--green:hover { background:var(--pz-green-dark); color:#fff; transform:translateY(-1px); }
.pz-btn--outline { background:transparent; color:rgba(255,255,255,.85); border:1.5px solid rgba(255,255,255,.45); font-size:.9375rem; }
.pz-btn--outline:hover { background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.7); color:#fff; }
.pz-btn--whatsapp { background:#25D366; color:#fff; border-radius:24px; }
.pz-btn--whatsapp:hover { background:#1ebe57; color:#fff; }

/* ── Header ── */
.site-header { position:relative; z-index:100; background:#fff; box-shadow:0 1px 8px rgba(0,0,0,.06); }
.main-header-menu > .menu-item > a {
  font-family:var(--pz-font)!important; font-size:13px!important; font-weight:500!important;
  padding:0 10px!important; color:#2D3348!important; transition:color .2s; white-space:nowrap!important;
}
.main-header-menu > .menu-item > a:hover { color:var(--pz-blue)!important; }
.main-header-menu .sub-menu { border:1px solid var(--pz-border)!important; border-radius:12px!important; box-shadow:0 8px 24px rgba(0,0,0,.08)!important; }
.main-header-menu .sub-menu a { font-family:var(--pz-font)!important; font-size:13px!important; color:var(--pz-text-sec)!important; }
.main-header-menu .sub-menu a:hover { color:var(--pz-green)!important; background:var(--pz-sky)!important; }

/* Phone button */
.pz-menu-phone-item { list-style:none!important; margin-left:10px!important; }
.pz-header-phone {
  display:flex!important; align-items:center; justify-content:center;
  width:42px; height:42px; border-radius:50%;
  border:2px solid transparent!important;
  background:linear-gradient(#fff,#fff) padding-box, linear-gradient(135deg,#0A9B39,#0399E5) border-box!important;
  color:#0A9B39!important; transition:all .25s; padding:0!important;
}
.pz-header-phone:hover { background:linear-gradient(135deg,#0A9B39,#0399E5)!important; color:#fff!important; }

/* CTA button */
.pz-menu-cta-item { list-style:none!important; margin-left:10px!important; }
.pz-header-cta {
  display:inline-flex!important; align-items:center; padding:10px 24px!important;
  background:linear-gradient(135deg,#0374D7,#0399E5,#42A130)!important;
  color:#fff!important; font-family:var(--pz-font)!important; font-size:14px!important;
  font-weight:600!important; border-radius:24px!important; text-decoration:none!important;
  transition:all .25s; white-space:nowrap;
}
.pz-header-cta:hover { opacity:.9; transform:translateY(-1px); box-shadow:0 4px 12px rgba(3,153,229,.35); color:#fff!important; }


/* ================================================================
   1. HERO
   ================================================================ */
.pz-hero {
  position:relative; margin-top:-80px; padding:0;
  background-size:cover; background-position:center; background-repeat:no-repeat;
  min-height:660px; display:flex; align-items:center;
  background-size:110% auto;
}
.pz-hero__overlay {
  position:absolute; inset:0;
  background:linear-gradient(135deg, rgba(13,27,76,.6) 0%, rgba(13,27,76,.25) 100%);
  z-index:1;
}
.pz-hero__inner {
  position:relative; z-index:2;
  padding-top:180px; padding-bottom:140px;
  text-align:left!important;
  display:flex; flex-direction:column; align-items:flex-start;
  width:100%; box-sizing:border-box;
}
.pz-hero__eyebrow {
  font-family:var(--pz-font); font-size:.75rem; font-weight:600;
  text-transform:uppercase; letter-spacing:.15em; color:rgba(255,255,255,.7);
  margin-bottom:12px;
}
.pz-hero h1 {
  font-family:var(--pz-font); font-size:4rem; font-weight:800;
  color:#fff; line-height:1.0; letter-spacing:-.025em; margin:0 0 20px;
  text-shadow:0 2px 16px rgba(0,0,0,.3);
  text-align:left!important; max-width:700px;
}
.pz-hero__sub {
  font-family:var(--pz-font); font-size:1.15rem; color:rgba(255,255,255,.9);
  margin:0 0 12px; text-shadow:0 1px 8px rgba(0,0,0,.2);
  text-align:left!important; max-width:600px;
}
.pz-hero__badge {
  display:inline-block; padding:6px 16px; border-radius:20px;
  background:rgba(255,255,255,.15); backdrop-filter:blur(6px);
  font-family:var(--pz-font); font-size:.8125rem; font-weight:600;
  color:rgba(255,255,255,.9); margin-bottom:24px;
  border:1px solid rgba(255,255,255,.2);
}
.pz-hero__btns { display:flex; gap:16px; flex-wrap:wrap; justify-content:flex-start; margin-bottom:32px; }

/* Hero mini-features */
.pz-hero__features {
  display:flex; gap:32px; flex-wrap:wrap;
}
.pz-hero__feat {
  display:flex; align-items:flex-start; gap:10px; color:#fff;
}
.pz-hero__feat svg {
  flex-shrink:0; margin-top:2px; opacity:.8;
}
.pz-hero__feat span {
  font-family:var(--pz-font); font-size:.8125rem; font-weight:600;
  line-height:1.3; color:rgba(255,255,255,.9);
}
.pz-hero__feat small {
  font-weight:400; color:rgba(255,255,255,.6); font-size:.75rem;
}

.pz-hero__wave {
  position:absolute; bottom:-1px; left:0; right:0; z-index:3;
  line-height:0;
}
.pz-hero__wave svg { width:100%; height:60px; display:block; }


/* ================================================================
   2. SERVICES
   ================================================================ */
.pz-services {
  padding:96px 0; background:#fff; text-align:left;
}
.pz-services__head {
  display:flex; justify-content:space-between; align-items:flex-end;
  margin-bottom:40px;
}
.pz-services__head h2 {
  font-family:var(--pz-font); font-size:2.125rem; font-weight:800;
  color:var(--pz-navy); margin:0; line-height:1.15;
}
.pz-services__all {
  font-family:var(--pz-font); font-size:.875rem; font-weight:600;
  color:var(--pz-blue); text-decoration:none; white-space:nowrap;
  transition:color .2s;
}
.pz-services__all:hover { color:var(--pz-green); }

.pz-cards {
  display:grid; grid-template-columns:repeat(3,1fr); gap:24px;
}
.pz-card {
  display:block; border:1px solid var(--pz-border); border-radius:var(--pz-radius);
  overflow:hidden; background:#fff; text-decoration:none;
  transition:transform var(--pz-dur), box-shadow var(--pz-dur), border-color var(--pz-dur);
}
.pz-card:hover { transform:translateY(-6px); box-shadow:0 12px 32px rgba(0,0,0,.08); border-color:var(--pz-green); }
.pz-card { display:flex; flex-direction:column; }
.pz-card img { width:100%; height:212px; object-fit:cover; display:block; flex-shrink:0; }
.pz-card__body { padding:18px 22px 22px; flex:1; display:flex; flex-direction:column; }
.pz-card__body h3 {
  font-family:var(--pz-font); font-size:1.0625rem; font-weight:700;
  color:var(--pz-navy); margin:0 0 8px;
}
.pz-card__body p {
  font-family:var(--pz-font); font-size:.8125rem; font-weight:400;
  color:var(--pz-text-sec); margin:0; line-height:1.5;
}
.pz-card--green .pz-card__body { border-left:3px solid var(--pz-green); }
.pz-card--blue .pz-card__body { border-left:3px solid var(--pz-blue); }


/* ================================================================
   3. ABOUT
   ================================================================ */
.pz-about {
  padding:96px 0; background:var(--pz-sky);
}
.pz-about h2 {
  font-family:var(--pz-font); font-size:2.125rem; font-weight:800;
  color:var(--pz-navy); margin:0 0 16px; line-height:1.15;
}
.pz-about p {
  font-family:var(--pz-font); font-size:.9375rem; color:var(--pz-text-sec);
  line-height:1.6; margin:0 0 24px;
}
.pz-about__grid {
  display:grid; grid-template-columns:1fr 1fr 1fr; gap:32px; align-items:start;
}
.pz-about__photo img {
  width:100%; border-radius:1rem; aspect-ratio:4/3; object-fit:cover;
}
.pz-about__features {
  display:flex; flex-direction:column; gap:20px;
}
.pz-feature {
  display:flex; align-items:flex-start; gap:12px;
}
.pz-feature__icon {
  width:44px; height:44px; border-radius:50%; background:#fff; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  color:var(--pz-green); box-shadow:0 4px 12px rgba(0,0,0,.06);
}
.pz-feature__text {
  display:flex; flex-direction:column; gap:2px;
}
.pz-feature__text strong {
  font-family:var(--pz-font); font-size:.875rem; font-weight:700; color:var(--pz-navy);
}
.pz-feature__text span {
  font-family:var(--pz-font); font-size:.75rem; color:var(--pz-text-sec); line-height:1.4;
}


/* ================================================================
   4. STEPS
   ================================================================ */
.pz-steps {
  background:var(--pz-sky); padding:0; overflow:hidden;
}
.pz-steps__wave-top {
  line-height:0; margin-bottom:-1px;
}
.pz-steps__wave-top svg { width:100%; height:48px; display:block; }
.pz-steps__wave-bottom {
  line-height:0; margin-top:-1px;
}
.pz-steps__wave-bottom svg { width:100%; height:48px; display:block; }

.pz-steps__content {
  padding:40px 24px 44px;
}
.pz-steps__header {
  text-align:center; margin-bottom:28px;
}
.pz-steps__header h2 {
  font-family:var(--pz-font); font-size:2.125rem; font-weight:800;
  color:var(--pz-navy); margin:0; line-height:1.15;
}

/* Track — cards + arrows */
.pz-steps__track {
  display:grid;
  grid-template-columns: 1fr 44px 1fr 44px 1fr 44px 1fr;
  align-items:center;
  gap:0;
}

/* Arrow connector */
.pz-step-arrow {
  display:flex; align-items:center; justify-content:center;
  padding:0 2px;
}
.pz-step-arrow svg { width:100%; height:24px; overflow:visible; }

/* Card — compact, no photo, no icon */
.pz-step-card {
  background:#fff;
  border:1px solid var(--pz-border);
  border-radius:var(--pz-radius);
  padding:20px 22px 22px;
  display:flex; flex-direction:column; gap:6px;
  transition:box-shadow .2s, transform .2s;
}
.pz-step-card:hover {
  box-shadow:0 6px 22px rgba(26,35,104,.08);
  transform:translateY(-2px);
}
.pz-step-card__num {
  font-family:var(--pz-font); font-size:.6875rem; font-weight:800;
  color:#4A9ED8; letter-spacing:.12em; text-transform:uppercase;
}
.pz-step-card h3 {
  font-family:var(--pz-font); font-size:1rem; font-weight:700;
  color:var(--pz-navy); margin:0; line-height:1.2;
}
.pz-step-card p {
  font-family:var(--pz-font); font-size:.8125rem; color:var(--pz-text-sec);
  line-height:1.5; margin:0;
}


/* ================================================================
   5. CTA
   ================================================================ */
.pz-cta {
  position:relative; padding:0;
  background:linear-gradient(135deg, var(--pz-navy) 0%, #0D4B8C 100%);
}
.pz-cta__inner {
  position:relative; z-index:2;
  display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center;
  padding:80px 24px;
}
.pz-cta__text h3 {
  font-family:var(--pz-font); font-size:2rem; font-weight:800;
  color:#fff; margin:0 0 16px;
}
.pz-cta__text p {
  font-family:var(--pz-font); font-size:.9375rem; color:rgba(255,255,255,.7);
  line-height:1.6; margin:0;
}
.pz-cta__form {
  background:#fff; border-radius:var(--pz-radius); padding:32px;
  box-shadow:0 16px 48px rgba(0,0,0,.15);
}
.pz-cta__form h3 {
  font-family:var(--pz-font); font-size:1.25rem; font-weight:700;
  color:var(--pz-navy); text-align:center; margin:0 0 20px;
}
.pz-cta__form .wpcf7 input[type="text"],
.pz-cta__form .wpcf7 input[type="email"],
.pz-cta__form .wpcf7 input[type="tel"],
.pz-cta__form .wpcf7 textarea {
  width:100%; padding:.75rem .875rem; border:1px solid var(--pz-border);
  border-radius:var(--pz-radius-sm); font-family:var(--pz-font); font-size:.875rem;
  margin-bottom:.625rem; box-sizing:border-box; background:var(--pz-sky);
  transition:border-color var(--pz-dur); color:var(--pz-text);
}
.pz-cta__form .wpcf7 input:focus,
.pz-cta__form .wpcf7 textarea:focus {
  outline:2px solid var(--pz-green); border-color:var(--pz-green); background:#fff;
}
.pz-cta__form .wpcf7 textarea { min-height:44px; max-height:80px; resize:vertical; }
.pz-cta__form .wpcf7 input[type="submit"] {
  width:100%; padding:.8125rem; background:var(--pz-green); color:#fff; border:none;
  border-radius:var(--pz-radius-sm); font-family:var(--pz-font); font-size:.9375rem;
  font-weight:600; cursor:pointer; transition:background var(--pz-dur);
}
.pz-cta__form .wpcf7 input[type="submit"]:hover { background:var(--pz-green-dark); }


/* ================================================================
   6. CONTACTS
   ================================================================ */
.pz-contacts { padding:40px 0; background:var(--pz-navy); }
.pz-contacts__bar {
  display:flex; align-items:center; gap:32px; flex-wrap:wrap;
}
.pz-contacts__logo img { height:40px; width:auto; filter:brightness(0) invert(1); }
.pz-contacts__item {
  display:flex; flex-direction:column; gap:2px;
}
.pz-contacts__item strong {
  font-family:var(--pz-font); font-size:.9375rem; font-weight:700; color:#fff;
}
.pz-contacts__item span {
  font-family:var(--pz-font); font-size:.75rem; color:rgba(255,255,255,.55);
}
.pz-contacts__bar .pz-btn--whatsapp { margin-left:auto; }


/* ================================================================
   FOOTER
   ================================================================ */
.site-footer, .ast-small-footer {
  background:var(--pz-navy)!important; color:rgba(255,255,255,.5)!important;
  font-family:var(--pz-font)!important; font-size:.8125rem!important;
}
.site-footer a { color:rgba(255,255,255,.7)!important; }
.site-footer a:hover { color:#fff!important; }
/* Hide Astra default footer content on homepage */
.page-id-34 .site-below-footer-wrap { display:none!important; }
.page-id-34 .site-footer { padding:0!important; }
.page-id-34 .ast-builder-footer-grid-columns { display:none!important; }
/* Remove empty space from reopened #content wrapper */
.page-id-34 #content.site-content { min-height:0!important; padding:0!important; margin:0!important; }
.page-id-34 #primary { min-height:0!important; }
.pz-footer-copy {
  text-align:center; padding:1rem 2rem; color:rgba(255,255,255,.4);
  font-family:var(--pz-font); font-size:.75rem;
  border-top:1px solid rgba(255,255,255,.08);
}


/* ================================================================
   7. MODAL
   ================================================================ */
.pz-modal {
  position:fixed; inset:0; z-index:99999;
  display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden;
  transition:opacity .3s, visibility .3s;
}
.pz-modal.is-open {
  opacity:1; visibility:visible;
}
.pz-modal__backdrop {
  position:absolute; inset:0;
  background:rgba(10,20,60,.55); backdrop-filter:blur(6px);
}
.pz-modal__dialog {
  position:relative; z-index:2;
  background:#fff; border-radius:20px; padding:32px 32px 28px;
  width:92%; max-width:420px;
  box-shadow:0 24px 64px rgba(0,0,0,.2);
  transform:translateY(24px) scale(.96);
  transition:transform .35s cubic-bezier(.22,1,.36,1);
  text-align:center;
}
.pz-modal.is-open .pz-modal__dialog {
  transform:translateY(0) scale(1);
}
.pz-modal__close {
  position:absolute; top:14px; right:14px;
  width:36px; height:36px; border-radius:50%;
  border:none; background:var(--pz-sky); color:var(--pz-text-sec);
  font-size:1.4rem; line-height:1; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:background .2s, color .2s;
}
.pz-modal__close:hover { background:var(--pz-border); color:var(--pz-navy); }
.pz-modal__icon {
  width:56px; height:56px; border-radius:50%; margin:0 auto 12px;
  background:var(--pz-sky);
  display:flex; align-items:center; justify-content:center;
}
.pz-modal__dialog h3 {
  font-family:var(--pz-font); font-size:1.25rem; font-weight:800;
  color:var(--pz-navy); margin:0 0 4px;
}
.pz-modal__dialog > p {
  font-family:var(--pz-font); font-size:.8125rem; color:var(--pz-text-sec);
  margin:0 0 16px; line-height:1.4;
}
/* Form inside modal */
.pz-modal__dialog .wpcf7 input[type="text"],
.pz-modal__dialog .wpcf7 input[type="email"],
.pz-modal__dialog .wpcf7 input[type="tel"],
.pz-modal__dialog .wpcf7 textarea {
  width:100%; padding:.75rem .875rem; border:1px solid var(--pz-border);
  border-radius:var(--pz-radius-sm); font-family:var(--pz-font); font-size:.875rem;
  margin-bottom:.625rem; box-sizing:border-box; background:var(--pz-sky);
  transition:border-color var(--pz-dur); color:var(--pz-text); text-align:left;
}
.pz-modal__dialog .wpcf7 input:focus,
.pz-modal__dialog .wpcf7 textarea:focus {
  outline:2px solid var(--pz-green); border-color:var(--pz-green); background:#fff;
}
.pz-modal__dialog .wpcf7 textarea { min-height:44px; max-height:80px; resize:vertical; }
.pz-modal__dialog .wpcf7 input[type="submit"] {
  width:100%; padding:.875rem; background:var(--pz-green); color:#fff; border:none;
  border-radius:var(--pz-radius-sm); font-family:var(--pz-font); font-size:1rem;
  font-weight:700; cursor:pointer; transition:background var(--pz-dur);
  margin-top:4px;
}
.pz-modal__dialog .wpcf7 input[type="submit"]:hover { background:var(--pz-green-dark); }
.pz-modal__dialog .wpcf7 label {
  display:block; text-align:left;
  font-family:var(--pz-font); font-size:.8125rem; font-weight:600;
  color:var(--pz-navy); margin-bottom:2px;
}
.pz-modal__dialog .wpcf7-response-output {
  font-family:var(--pz-font); font-size:.8125rem; margin:12px 0 0; padding:8px 12px;
  border-radius:var(--pz-radius-sm);
}
/* Body scroll lock */
body.pz-modal-open { overflow:hidden; }


/* ================================================================
   ACCESSIBILITY
   ================================================================ */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible {
  outline:2px solid var(--pz-green); outline-offset:2px;
}


/* ================================================================
   RESPONSIVE — TABLET
   ================================================================ */
@media (max-width:1024px) {
  .pz-hero h1 { font-size:2.75rem; }
  .pz-hero { background-size:cover; }
  .pz-hero__features { gap:20px; }
  .pz-cards { grid-template-columns:repeat(2,1fr); }
  .pz-about__grid { grid-template-columns:1fr 1fr; }
  .pz-about__features { gap:16px; }
  .pz-steps__track { grid-template-columns:1fr 36px 1fr; grid-template-rows:auto; }
  .pz-steps__track > .pz-step-card:nth-child(5),
  .pz-steps__track > .pz-step-card:nth-child(7) { grid-column: auto; }
  .pz-steps__track > .pz-step-arrow:nth-child(4) { display:none; }
  .pz-steps__content { padding:32px 24px 36px; }
  .pz-cta__inner { grid-template-columns:1fr; }
}

/* ================================================================
   RESPONSIVE — MOBILE
   ================================================================ */
@media (max-width:767px) {
  .pz-hero { min-height:auto; }
  .pz-hero { background-size:cover!important; }
  .pz-hero__inner { padding-top:120px; padding-bottom:90px; }
  .pz-hero h1 { font-size:2.125rem; }
  .pz-hero__sub { font-size:1rem; }
  .pz-hero__wave svg { height:30px; }
  .pz-hero__btns { flex-direction:column; }
  .pz-hero__btns .pz-btn { width:100%; justify-content:center; }
  .pz-hero__features { flex-direction:column; gap:16px; }

  .pz-services, .pz-about { padding:48px 0; }
  .pz-services__head { flex-direction:column; align-items:flex-start; gap:12px; }
  .pz-services__head h2, .pz-about h2 { font-size:1.5rem; }
  .pz-cards { grid-template-columns:1fr; }
  .pz-card:hover { transform:none; }

  .pz-about__grid { grid-template-columns:1fr; }
  .pz-about__features { gap:16px; }
  .pz-steps__content { padding:28px 16px 32px; }
  .pz-steps__header { margin-bottom:20px; }
  .pz-steps__header h2 { font-size:1.5rem; }
  /* Vertical stack on mobile */
  .pz-steps__track {
    grid-template-columns:1fr;
    grid-template-rows:auto;
  }
  .pz-step-arrow {
    height:28px; width:100%;
    transform:rotate(90deg);
  }
  .pz-step-arrow svg { height:28px; width:56px; margin:0 auto; }

  .pz-contacts__bar { flex-direction:column; text-align:center; }
  .pz-contacts__bar .pz-btn--whatsapp { margin-left:0; }

  .pz-header-cta { font-size:.75rem; padding:.375rem .75rem; }
}
