/*
Theme Name: Зеркала красоты — Лендинг (конструктор блоков)
Theme URI: https://zerkalastudio.ru
Author: Зеркала красоты
Author URI: https://zerkalastudio.ru
Description: Рекламный лендинг центра инъекционной косметологии и депиляции на Тульской. Все блоки собираются на странице через ACF Flexible Content — текст, фото, цены и порядок блоков редактируются в админке без правки кода.
Version: 1.3
Requires at least: 5.9
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: zerkala-landing
*/

/* ============ TOKENS ============ */
:root{
  --bg:      #FAF9F5;
  --surface: #FFFFFF;
  --tint:    #EEF2ED;
  --ink:     #1C231F;
  --ink-soft:#5B655D;
  --green:      #2F4A3D;
  --green-dark: #20332A;
  --green-pale: #DCE6DE;
  --accent:  #C98B6B;
  --line:    rgba(28,35,31,0.12);
  --font-display: 'Fraunces', serif;
  --font-body: 'Manrope', sans-serif;
  --radius: 6px;
  --container: 1180px;
  --gap: 24px;
}
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-font-smoothing:antialiased; scroll-behavior:smooth; }
body{ margin:0; background:var(--bg); color:var(--ink); font-family:var(--font-body); font-size:16px; line-height:1.6; }
img{ max-width:100%; display:block; }
a{ color:inherit; }
h1,h2,h3{ font-family:var(--font-display); margin:0; color:var(--ink); }
p{ margin:0; }
ul{ list-style:none; margin:0; padding:0; }

.zk-banner{
  background:var(--green-dark); color:#fff; text-align:center;
  font-size:13px; font-weight:600; padding:10px 20px; letter-spacing:0.02em;
}

.zk-section{ padding:76px 24px; max-width:var(--container); margin:0 auto; }
.zk-section--tint{ max-width:none; background:var(--tint); }
.zk-section--tint > *{ max-width:var(--container); margin-left:auto; margin-right:auto; }

.zk-section__head{ max-width:640px; margin:0 0 44px; }
.zk-section__head.center{ max-width:640px; margin-left:auto; margin-right:auto; text-align:center; }
.zk-eyebrow{ font-weight:700; font-size:13px; letter-spacing:0.12em; text-transform:uppercase; color:var(--green); margin:0 0 12px; }
.zk-section__head h2{ font-size:clamp(1.7rem,3vw,2.4rem); font-weight:560; line-height:1.15; }
.zk-section__head p{ margin-top:14px; color:var(--ink-soft); font-size:1.02rem; }

/* Buttons */
.zk-btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; font-weight:700; font-size:15px;
  text-decoration:none; padding:16px 28px; border-radius:var(--radius); border:1px solid transparent;
  transition:background-color .15s ease,color .15s ease,border-color .15s ease,transform .15s ease; cursor:pointer; }
.zk-btn--primary{ background:var(--green); color:#fff; }
.zk-btn--primary:hover{ background:var(--green-dark); transform:translateY(-1px); }
.zk-btn--ghost{ background:transparent; color:var(--ink); border-color:var(--line); }
.zk-btn--ghost:hover{ border-color:var(--ink); }
.zk-btn--light{ background:#fff; color:var(--green-dark); }
.zk-btn--light:hover{ background:var(--green-pale); }
.zk-btn--sm{ padding:10px 18px; font-size:14px; }
.zk-btn--block{ width:100%; }
.zk-cta-row{ display:flex; flex-wrap:wrap; gap:14px; }

/* Photo placeholder */
.ph{ display:flex; align-items:center; justify-content:center; text-align:center; padding:16px;
  background:linear-gradient(150deg,var(--green-pale),var(--tint)); color:var(--green-dark);
  font-size:12.5px; font-weight:700; letter-spacing:0.02em; border-radius:var(--radius); min-height:160px; }

/* ============ HEADER (без навигации — рекламный лендинг) ============ */
.zk-header{ position:sticky; top:0; z-index:40; background:rgba(250,249,245,0.94); backdrop-filter:blur(8px); border-bottom:1px solid var(--line); }
.zk-header__inner{ max-width:var(--container); margin:0 auto; padding:14px 24px; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; row-gap:10px; gap:20px; }
.zk-logo{ font-family:var(--font-display); font-weight:680; font-size:19px; text-decoration:none; color:var(--ink); white-space:nowrap; }
.zk-header__actions{ display:flex; align-items:center; gap:14px; }
.zk-phone{ font-weight:700; text-decoration:none; font-size:14px; white-space:nowrap; }

/* ============ 1. HERO ============ */
.zk-hero{ display:grid; grid-template-columns:1fr; gap:40px; align-items:center; padding-top:56px; }
.zk-hero__title{ font-size:clamp(2.1rem,5vw,3.3rem); font-weight:560; line-height:1.08; letter-spacing:-0.01em; margin:0 0 20px; }
.zk-hero__subtitle{ font-size:clamp(1rem,1.4vw,1.12rem); color:var(--ink-soft); max-width:54ch; margin:0 0 32px; }
.zk-badges{ display:flex; flex-wrap:wrap; gap:10px 22px; margin-top:32px; padding-top:24px; border-top:1px solid var(--line); }
.zk-badges li{ font-size:13px; font-weight:700; color:var(--ink-soft); display:flex; align-items:center; gap:6px; }
.zk-badges li::before{ content:'✓'; color:var(--green); font-weight:800; }
.zk-hero__media{ aspect-ratio:4/5; border-radius:10px; overflow:hidden; }
.zk-hero__media .ph{ border-radius:10px; min-height:100%; }

/* ============ КАРТОЧКИ (проблемы / направления / уходы) ============ */
.zk-problems{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--gap); }
.zk-problems--cols-2{ grid-template-columns:repeat(2,1fr); }
.zk-problems--cols-4{ grid-template-columns:repeat(4,1fr); }
.zk-problem{ background:var(--surface); border:1px solid var(--line); border-radius:8px; overflow:hidden; display:flex; flex-direction:column; }
.zk-problem__media{ aspect-ratio:4/3; }
.zk-problem__media .ph{ border-radius:0; min-height:100%; }
.zk-problem__body{ padding:22px; display:flex; flex-direction:column; gap:10px; flex:1; }
.zk-problem__body h3{ font-size:1.1rem; font-weight:600; }
.zk-problem__body p{ color:var(--ink-soft); font-size:14.5px; flex:1; }
.zk-problem__body .zk-link{ align-self:flex-start; }
.zk-link{ font-weight:700; text-decoration:none; color:var(--green); border-bottom:1px solid transparent; font-size:14.5px; }
.zk-link:hover{ border-color:var(--green); }
.zk-care-note{ margin-top:20px; font-size:13.5px; color:var(--ink-soft); }

/* Плитки направлений — переиспользуют стиль карточек «проблем» */
.zk-directions{ display:grid; grid-template-columns:repeat(2,1fr); gap:var(--gap); }
.zk-direction__media{ aspect-ratio:16/9; }
.zk-direction__media .ph{ border-radius:0; min-height:100%; }
.zk-direction__body{ padding:26px; display:flex; flex-direction:column; gap:10px; }
.zk-direction__body h3{ font-size:1.3rem; font-weight:560; }
.zk-direction__body p{ color:var(--ink-soft); font-size:14.5px; }

/* ============ ДОВЕРИЕ ============ */
.zk-trust{ display:grid; grid-template-columns:repeat(3,1fr); gap:32px 28px; }
.zk-trust__icon{ width:44px; height:44px; border-radius:50%; background:var(--green-pale); display:flex; align-items:center; justify-content:center; margin-bottom:16px; }
.zk-trust__icon svg{ width:22px; height:22px; stroke:var(--green-dark); fill:none; stroke-width:1.7; }
.zk-trust h3{ font-size:1.08rem; font-weight:600; margin-bottom:8px; }
.zk-trust p{ color:var(--ink-soft); font-size:14.5px; }

/* ============ ГЛАВНАЯ ПРОЦЕДУРА + СЕТКА ПРОЦЕДУР ============ */
.zk-proc-featured{ display:grid; grid-template-columns:1fr 1fr; gap:36px; background:var(--surface); border:1px solid var(--line); border-radius:10px; overflow:hidden; }
.zk-proc-featured__media{ min-height:380px; }
.zk-proc-featured__media .ph{ border-radius:0; min-height:100%; }
.zk-proc-featured__body{ padding:40px 40px 40px 0; display:flex; flex-direction:column; gap:14px; justify-content:center; }
.zk-tag{ display:inline-flex; align-self:flex-start; font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:0.06em; color:var(--green); background:var(--green-pale); padding:5px 12px; border-radius:999px; }
.zk-tag--muted{ color:var(--ink-soft); background:var(--tint); }
.zk-proc-featured__body h3{ font-size:1.7rem; font-weight:560; }
.zk-proc-featured__body p{ color:var(--ink-soft); font-size:15px; }
.zk-proc-featured__meta{ display:flex; flex-wrap:wrap; gap:28px; padding:16px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin:6px 0; }
.zk-proc-featured__meta div span{ display:block; }
.zk-proc-featured__meta .label{ font-size:11.5px; text-transform:uppercase; letter-spacing:0.05em; color:var(--ink-soft); margin-bottom:4px; }
.zk-proc-featured__meta .value{ font-weight:700; font-size:15px; }
.zk-checklist{ display:flex; flex-direction:column; gap:8px; margin:2px 0 6px; }
.zk-checklist li{ font-size:14.5px; color:var(--ink-soft); display:flex; align-items:flex-start; gap:8px; }
.zk-checklist li::before{ content:'✓'; color:var(--green); font-weight:800; flex-shrink:0; }

.zk-procedures{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--gap); }
.zk-proc-card{ background:var(--surface); border:1px solid var(--line); border-radius:8px; overflow:hidden; display:flex; flex-direction:column; }
.zk-proc-card__media{ aspect-ratio:4/3; }
.zk-proc-card__media .ph{ border-radius:0; min-height:100%; }
.zk-proc-card__body{ padding:22px; display:flex; flex-direction:column; gap:10px; flex:1; }
.zk-proc-card__body h3{ font-size:1.12rem; font-weight:600; }
.zk-proc-card__body p{ color:var(--ink-soft); font-size:14px; flex:1; }
.zk-proc-card__price{ font-weight:700; font-size:14.5px; padding-top:10px; border-top:1px solid var(--line); display:flex; justify-content:space-between; align-items:center; }
.zk-proc-card__price small{ font-weight:500; color:var(--ink-soft); font-size:12px; }

/* ============ ЭТАПЫ ============ */
.zk-steps{ display:grid; grid-template-columns:repeat(5,1fr); gap:20px; }
.zk-step{ position:relative; padding-top:8px; }
.zk-step__num{ font-family:var(--font-display); font-size:15px; font-weight:600; color:var(--accent); display:block; margin-bottom:10px; }
.zk-step h3{ font-size:1rem; font-weight:600; margin-bottom:6px; }
.zk-step p{ color:var(--ink-soft); font-size:13.5px; }

/* ============ ДО/ПОСЛЕ ============ */
.zk-cases{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--gap); }
.zk-case{ background:var(--surface); border:1px solid var(--line); border-radius:8px; overflow:hidden; }
.zk-case__media{ display:grid; grid-template-columns:1fr 1fr; }
.zk-case__media .ph{ border-radius:0; aspect-ratio:1/1; min-height:0; font-size:11px; }
.zk-case__body{ padding:20px; display:flex; flex-direction:column; gap:8px; }
.zk-case__body h3{ font-size:1.05rem; font-weight:600; }
.zk-case__body p{ font-size:13.5px; color:var(--ink-soft); }
.zk-case__meta{ font-size:12px; font-weight:700; color:var(--green); text-transform:uppercase; letter-spacing:0.04em; }

/* ============ СПЕЦИАЛИСТЫ ============ */
.zk-doctors{ display:grid; grid-template-columns:repeat(4,1fr); gap:var(--gap); }
.zk-doctor{ background:var(--surface); border:1px solid var(--line); border-radius:8px; overflow:hidden; }
.zk-doctor__media{ aspect-ratio:3/4; }
.zk-doctor__media .ph{ border-radius:0; min-height:100%; }
.zk-doctor__body{ padding:22px; display:flex; flex-direction:column; gap:6px; }
.zk-doctor__body h3{ font-size:1.1rem; font-weight:600; }
.zk-doctor__role{ font-size:13px; color:var(--green); font-weight:700; }
.zk-doctor__exp{ font-size:12.5px; color:var(--ink-soft); margin-bottom:8px; }
.zk-doctor__body p{ font-size:13.5px; color:var(--ink-soft); }

/* ============ ОТЗЫВЫ ============ */
.zk-reviews{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--gap); }
.zk-review{ background:var(--surface); border:1px solid var(--line); border-radius:8px; padding:26px; }
.zk-review__stars{ color:var(--accent); letter-spacing:2px; margin-bottom:14px; }
.zk-review__text{ font-size:14.5px; color:var(--ink); margin-bottom:20px; }
.zk-review__author{ display:flex; justify-content:space-between; align-items:flex-end; }
.zk-review__name{ display:block; font-weight:700; font-size:14px; }
.zk-review__source{ display:block; font-size:12px; color:var(--ink-soft); }

/* ============ FAQ ============ */
.zk-faq{ max-width:820px; margin:0 auto; display:flex; flex-direction:column; gap:12px; }
.zk-faq details{ background:var(--surface); border:1px solid var(--line); border-radius:8px; padding:6px 22px; }
.zk-faq summary{ cursor:pointer; padding:16px 0; font-weight:700; font-size:15.5px; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:16px; }
.zk-faq summary::-webkit-details-marker{ display:none; }
.zk-faq summary::after{ content:'+'; font-family:var(--font-display); font-size:22px; color:var(--green); flex-shrink:0; }
.zk-faq details[open] summary::after{ content:'–'; }
.zk-faq p{ padding:0 0 18px; color:var(--ink-soft); font-size:14.5px; }

/* ============ ФИНАЛЬНЫЙ CTA ============ */
.zk-final{ border-radius:12px; background:var(--green); color:#fff; padding:64px 40px; text-align:center; }
.zk-final__content{ max-width:600px; margin:0 auto; }
.zk-final h2{ color:#fff; font-size:clamp(1.7rem,3.4vw,2.3rem); margin-bottom:16px; }
.zk-final p{ opacity:0.9; margin-bottom:30px; }

/* ============ КОНТАКТЫ + ФОРМА ============ */
.zk-contacts{ display:grid; grid-template-columns:1fr 1fr 1.1fr; gap:var(--gap); align-items:stretch; }
.zk-contacts__info{ background:var(--surface); border:1px solid var(--line); border-radius:8px; padding:30px; display:flex; flex-direction:column; gap:22px; }
.zk-contacts__info dl{ display:flex; flex-direction:column; gap:16px; }
.zk-contacts__info dt{ font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:0.06em; color:var(--ink-soft); margin-bottom:3px; }
.zk-contacts__info dd{ margin:0; font-size:15px; font-weight:600; }
.zk-contacts__info a{ text-decoration:none; }
.zk-contacts__map{ min-height:280px; border-radius:8px; overflow:hidden; border:1px solid var(--line); }
.zk-contacts__map iframe{ width:100%; height:100%; min-height:280px; display:block; }

.zk-form{ background:var(--surface); border:1px solid var(--line); border-radius:8px; padding:30px; display:flex; flex-direction:column; gap:14px; }
.zk-form h3{ font-size:1.15rem; font-weight:600; margin-bottom:4px; }
.zk-form label{ font-size:12.5px; font-weight:700; text-transform:uppercase; letter-spacing:0.04em; color:var(--ink-soft); display:block; margin-bottom:6px; }
.zk-form input{ width:100%; padding:13px 14px; border:1px solid var(--line); border-radius:6px; font-family:var(--font-body); font-size:14.5px; background:var(--bg); }
.zk-form input:focus{ outline:2px solid var(--green); outline-offset:1px; }
.zk-form small{ color:var(--ink-soft); font-size:12px; }
.zk-form .radio-row{ display:flex; gap:18px; flex-wrap:wrap; }
.zk-form .radio-row label{ text-transform:none; font-weight:600; font-size:14px; color:var(--ink); display:flex; align-items:center; gap:6px; }
.zk-form .radio-row input{ width:auto; }

/* ============ FOOTER ============ */
.zk-footer{ background:var(--green-dark); color:#EDEFEC; margin-top:0; }
.zk-footer__inner{ max-width:var(--container); margin:0 auto; padding:40px 24px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px; }
.zk-footer__inner .zk-logo{ color:#fff; }
.zk-footer__social{ display:flex; gap:20px; font-size:13px; font-weight:600; }
.zk-footer__social a{ text-decoration:none; color:#EDEFEC; }
.zk-footer__social a:hover{ text-decoration:underline; }
.zk-footer__bottom{ border-top:1px solid rgba(237,239,236,0.15); padding:16px 24px; text-align:center; font-size:12.5px; color:rgba(237,239,236,0.55); }

/* ============ RESPONSIVE ============ */
@media (min-width:900px){ .zk-hero{ grid-template-columns:1.1fr .9fr; gap:56px; padding-top:64px; } }

@media (max-width:960px){
  .zk-problems{ grid-template-columns:repeat(2,1fr); }
  .zk-trust{ grid-template-columns:repeat(2,1fr); }
  .zk-procedures{ grid-template-columns:repeat(2,1fr); }
  .zk-steps{ grid-template-columns:repeat(3,1fr); row-gap:28px; }
  .zk-cases{ grid-template-columns:repeat(2,1fr); }
  .zk-doctors{ grid-template-columns:repeat(2,1fr); }
  .zk-reviews{ grid-template-columns:repeat(2,1fr); }
  .zk-contacts{ grid-template-columns:1fr 1fr; }
  .zk-contacts__map{ grid-column:span 2; }
  .zk-proc-featured{ grid-template-columns:1fr; }
  .zk-proc-featured__body{ padding:32px; }
  .zk-proc-featured__media{ min-height:260px; }
}

@media (max-width:760px){
  .zk-section{ padding:56px 20px; }
  .zk-problems, .zk-trust, .zk-procedures, .zk-cases, .zk-doctors, .zk-reviews, .zk-directions{ grid-template-columns:1fr; }
  .zk-steps{ grid-template-columns:1fr 1fr; }
  .zk-contacts{ grid-template-columns:1fr; }
  .zk-contacts__map{ grid-column:auto; }
  .zk-final{ padding:44px 24px; }
  .zk-proc-featured__meta{ flex-wrap:wrap; gap:16px; }
}

@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } .zk-btn{ transition:none; } }

/* Demo/start images and uploaded replacements */
.zk-hero__media img,.zk-problem__media img,.zk-direction__media img,.zk-proc-featured__media img,.zk-proc-card__media img,.zk-doctor__media img,.zk-case__media img{width:100%;height:100%;object-fit:cover;display:block;}
