/* Казкотерапія й книжки (inc/kazka.php, inc/shop.php). Сторінки не підключають services.css, тому потрібні .svc-* продубльовано тут. */
.svc-tools{display:grid; grid-template-columns:1fr 1fr; gap:24px 40px; margin-bottom:30px; max-width:760px;}
.svc-tools label span{display:block; font-size:13px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--pink); margin-bottom:6px;}
.svc-tools select{width:100%; border:none; border-bottom:2px solid var(--pink); background:transparent; padding:8px 2px; font:inherit; font-size:16px; color:var(--ink); border-radius:0;}
.svc-nothing{color:var(--ink-soft); margin:0 0 24px;}
.svc-empty{padding:40px; text-align:center; color:var(--ink-soft); background:var(--pink-tint); border-radius:var(--radius);}
.svc-flash{background:var(--teal-tint); color:var(--ink); border-radius:var(--radius-sm); padding:14px 18px; margin-bottom:24px; font-size:15px;}
.svc-consent{display:flex; gap:10px; align-items:flex-start; font-size:13px; color:var(--ink-soft); margin-top:14px; line-height:1.5;}
.svc-consent input{margin-top:3px; flex:0 0 auto;}
.svc-consent a{color:var(--pink);}
.svc-error{color:#b32d2e; font-size:14px; margin-top:12px;}
.svc-error[hidden], .kz-done[hidden], .kz-form[hidden], .kz-pick[hidden], .kz-np-list[hidden], .kz-tale[hidden], .svc-nothing[hidden]{display:none !important;}
.svc-done-icon{width:56px; height:56px; border-radius:50%; background:var(--teal); color:#fff; font-size:28px; line-height:56px; margin:0 auto 12px; text-align:center;}

/* ---------- Загальне ---------- */
.kz-narrow{max-width:820px;}
.kz-lead{font-size:18px; color:var(--ink-soft); max-width:760px; margin-bottom:30px;}
.kz-muted{color:var(--ink-soft); font-size:14px;}
.kz-sub{font-size:20px; font-weight:600; color:var(--ink); margin:10px 0 16px;}
.kz-link{color:var(--pink); font-weight:700; text-decoration:none;}
.kz-link:hover{text-decoration:underline;}
.kz-free{display:inline-block; background:var(--teal); color:#fff; font-size:13px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; padding:6px 14px; border-radius:999px;}
.kz-soon{display:inline-block; background:var(--pink-tint); color:var(--pink); font-size:13px; font-weight:800; padding:5px 12px; border-radius:999px;}
.kz-price{font-size:28px; font-weight:800; color:var(--pink); margin:0;}
.kz-price .kz-soon{vertical-align:middle; margin-left:8px;}

.kz-cover{display:block; width:100%; height:auto; border-radius:var(--radius); object-fit:cover;}
.kz-cover-empty{aspect-ratio:4/3; display:flex; align-items:center; justify-content:center; padding:24px; text-align:center; border-radius:var(--radius);
  background:linear-gradient(135deg, var(--pink-tint), var(--teal-tint)); color:var(--pink); font-weight:800; font-size:22px; line-height:1.3;}

/* ---------- Перший екран ---------- */
.kz-hero p, .kz-narrow p, .kz-book-info > p, .kz-block > p, .kz-book-promo p, .kz-psych-grid p, .kz-final p{margin:0 0 12px;}
.kz-hero .kz-sub{margin:10px 0 16px;}
.kz-hero{padding:40px 0 64px; background:linear-gradient(180deg, var(--pink-tint), transparent);}
.kz-hero-grid{display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:48px; align-items:center;}
.kz-hero-single{grid-template-columns:minmax(0,1fr);}
.kz-hero-single > div{max-width:860px;}
.kz-hero h1{margin:14px 0 6px;}
.kz-hero .breadcrumb, .kz-book .breadcrumb{color:var(--ink-soft); margin-bottom:14px;}
.kz-hero .breadcrumb a, .kz-book .breadcrumb a{color:var(--teal); font-weight:600;}
.kz-info{list-style:none; padding:0; margin:18px 0 24px; display:grid; gap:6px;}
.kz-info li{font-size:16px;}
.kz-marks{list-style:none; padding:0; margin:20px 0 26px; display:flex; flex-wrap:wrap; gap:10px;}
.kz-marks li{background:#fff; border:1px solid var(--line); border-radius:999px; padding:8px 16px; font-size:14.5px; font-weight:600;}
.kz-marks li::before{content:"✓ "; color:var(--teal); font-weight:800;}

/* ---------- Картки ---------- */
.kz-cards{display:grid; grid-template-columns:repeat(auto-fit, minmax(180px, 1fr)); gap:20px;}
.kz-cards-2{grid-template-columns:repeat(2, minmax(0,1fr));}
.kz-cards-3{grid-template-columns:repeat(3, minmax(0,1fr));}
.kz-cards-4{grid-template-columns:repeat(4, minmax(0,1fr));}
.kz-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius-sm); padding:22px;}
.kz-card h3{font-size:18px; margin:0 0 8px; color:var(--pink);}
.kz-card p{margin:0; color:var(--ink-soft); font-size:15px;}
.kz-numbered{counter-reset:kz;}
.kz-numbered .kz-card{position:relative; padding-top:58px;}
.kz-numbered .kz-card::before{counter-increment:kz; content:counter(kz); position:absolute; left:22px; top:18px; width:32px; height:32px; border-radius:50%; background:var(--pink); color:#fff; font-weight:800; text-align:center; line-height:32px;}

.kz-steps{counter-reset:st; list-style:none; padding:0; margin:20px 0; display:grid; gap:12px;}
.kz-steps li{counter-increment:st; position:relative; padding:14px 18px 14px 60px; background:var(--pink-tint); border-radius:var(--radius-sm); font-size:16px;}
.kz-steps li::before{content:counter(st); position:absolute; left:16px; top:50%; transform:translateY(-50%); width:30px; height:30px; border-radius:50%; background:var(--pink); color:#fff; font-weight:800; text-align:center; line-height:30px;}

/* ---------- Дати й форма ---------- */
.kz-nodates{background:#fff; border-radius:var(--radius); padding:28px; display:flex; flex-wrap:wrap; gap:18px; align-items:center; justify-content:space-between;}
.kz-nodates p{margin:0; max-width:620px;}
.kz-dates{display:grid; gap:12px; margin:20px 0 28px;}
.kz-date{display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:18px; align-items:center; background:#fff; border:1px solid var(--line); border-radius:var(--radius-sm); padding:16px 20px;}
.kz-date small{display:block; color:var(--ink-soft); margin-top:2px;}
.kz-date.is-full{opacity:.6;}
.kz-seats{font-size:14px; font-weight:700; color:var(--teal);}
.kz-date.is-full .kz-seats{color:var(--ink-soft);}
.kz-form, .kz-done{background:#fff; border-radius:var(--radius); padding:28px; max-width:860px;}
.kz-form-grid{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:14px 20px;}
.kz-form .field label, .kz-popup .field label{display:block; font-size:14px; font-weight:700; margin-bottom:6px;}
.kz-form .field input, .kz-form .field select, .kz-popup .field input, .kz-popup .field select{width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:12px; font:inherit; font-size:15px; background:#fff; color:var(--ink);}
.kz-form #kzSubmit{margin-top:20px;}
.kz-done{text-align:center;}

/* ---------- Галерея ---------- */
.kz-gallery{display:grid; grid-template-columns:repeat(auto-fill, minmax(240px, 1fr)); gap:16px;}
.kz-gal-item{margin:0;}
.kz-gal-item img, .kz-gal-item video{display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; border-radius:var(--radius-sm);}
.kz-gal-item figcaption{font-size:13.5px; color:var(--ink-soft); margin-top:6px;}
.kz-gal-video{display:flex; align-items:center; justify-content:center; aspect-ratio:4/3; border-radius:var(--radius-sm); background:var(--pink-tint); color:var(--pink); font-weight:800; text-decoration:none;}
.kz-zoom{position:fixed; inset:0; z-index:10000; background:rgba(20,10,25,.86); display:flex; align-items:center; justify-content:center; padding:20px; cursor:zoom-out;}
.kz-zoom img{max-width:100%; max-height:100%; border-radius:12px;}
.kz-zoom button{position:absolute; top:16px; right:16px; width:44px; height:44px; border-radius:50%; border:none; background:#fff; font-size:18px; cursor:pointer;}

/* ---------- Книжка на сторінці казки ---------- */
.kz-book-promo{display:grid; grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr); gap:44px; align-items:center;}
.kz-book-promo .kz-price{margin:12px 0 18px;}
.kz-book-promo .kz-muted{margin-top:14px;}

/* ---------- Психолог ---------- */
.kz-psych-grid{display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr); gap:44px; align-items:center;}
.kz-psych-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:22px; display:flex; gap:18px; align-items:center;}
.kz-psych-card img{width:110px; height:110px; border-radius:50%; object-fit:cover; flex:0 0 auto;}
.kz-psych-card b{display:block; font-size:18px;}
.kz-psych-card span{display:block; color:var(--ink-soft); font-size:14px; margin:4px 0 12px;}
.kz-reviewed{display:inline-block; background:var(--teal-tint); color:var(--ink); border-radius:999px; padding:8px 16px; font-weight:700; font-size:14px;}

/* ---------- FAQ ---------- */
.kz-faq{display:grid; gap:10px; margin-top:18px;}
.kz-faq-item{background:#fff; border:1px solid var(--line); border-radius:var(--radius-sm); padding:0 20px;}
.kz-faq-item summary{cursor:pointer; padding:16px 28px 16px 0; font-weight:700; position:relative; list-style:none;}
.kz-faq-item summary::-webkit-details-marker{display:none;}
.kz-faq-item summary::after{content:"+"; position:absolute; right:0; top:50%; transform:translateY(-50%); font-size:22px; color:var(--pink);}
.kz-faq-item[open] summary::after{content:"−";}
.kz-faq-item p{margin:0 0 16px; color:var(--ink-soft);}

/* ---------- Фінал ---------- */
.kz-final{text-align:center; background:linear-gradient(135deg, var(--pink-tint), var(--teal-tint));}
.kz-final p{max-width:680px; margin-left:auto; margin-right:auto;}
.kz-final .btn{margin-top:10px;}

/* ---------- Каталог казок ---------- */
.kz-tales{display:grid; grid-template-columns:repeat(auto-fill, minmax(300px, 1fr)); gap:24px;}
.kz-tale{background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; display:flex; flex-direction:column;}
.kz-tale-img{position:relative; display:block;}
.kz-tale-img .kz-cover-empty, .kz-book-card .kz-cover-empty{display:flex !important;}
.kz-tale-img img, .kz-tale-img .kz-cover-empty{display:block; width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:0;}
.kz-tale-img .kz-free{position:absolute; left:14px; top:14px;}
.kz-tale-img .kz-cover-empty{padding-top:56px;}
.kz-tale-body{padding:20px 22px 22px; display:flex; flex-direction:column; flex:1;}
.kz-tale-body h3{margin:0 0 6px; font-size:20px;}
.kz-tale-body h3 a{color:var(--ink); text-decoration:none;}
.kz-tale-body p{font-size:15px; margin:0 0 10px;}
.kz-age{color:var(--pink); font-weight:700;}
.kz-next{margin-top:auto !important; padding-top:6px; color:var(--ink-soft);}
.kz-tale-actions{display:flex; flex-wrap:wrap; gap:14px; align-items:center; margin-top:12px;}

/* ---------- Книжки: картки ---------- */
.kz-books{display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:22px; margin-bottom:28px;}
.kz-book-card{display:flex; flex-direction:column; gap:6px; background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:16px; color:var(--ink); text-decoration:none;}
.kz-book-card img, .kz-book-card .kz-cover-empty{display:block; width:100%; aspect-ratio:3/4; object-fit:cover; border-radius:var(--radius-sm); margin-bottom:8px; font-size:18px;}
.kz-book-card b{font-size:17px;}
.kz-book-card small{color:var(--ink-soft);}
.kz-book-card em{font-style:normal; font-weight:800; color:var(--pink); font-size:18px;}
.kz-book-card .kz-soon{align-self:flex-start;}
.kz-book-card:hover{box-shadow:0 10px 30px rgba(164,66,149,.12);}

/* ---------- Сторінка книжки ---------- */
.kz-book{padding:36px 0 60px;}
.kz-book-grid{display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:48px; align-items:start;}
.kz-book-gallery{position:sticky; top:100px;}
.kz-book-cover.kz-cover-empty{aspect-ratio:3/4;}
.kz-book-thumbs{display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:10px; margin-top:12px;}
.kz-book-thumbs .kz-gal-item img, .kz-book-thumbs .kz-gal-item video{aspect-ratio:1;}
.kz-book-thumbs figcaption{display:none;}
.kz-book-info h1{margin:10px 0 6px;}
.kz-buy{display:flex; flex-wrap:wrap; gap:14px 20px; align-items:center; background:var(--pink-tint); border-radius:var(--radius); padding:20px 22px; margin:20px 0 10px;}
.kz-buy .kz-muted{flex-basis:100%; margin:0;}
.kz-block{margin-top:44px;}
.kz-block h2{font-size:26px; margin-bottom:16px;}
.kz-phrases{display:grid; gap:10px;}
.kz-phrases div{background:#fff; border:1px solid var(--line); border-radius:var(--radius-sm); padding:14px 18px;}
.kz-phrases b{display:block; color:var(--pink);}
.kz-phrases span{color:var(--ink-soft); font-size:15px;}
.kz-part{margin-bottom:18px;}
.kz-part h3{font-size:18px; margin:0 0 6px;}
.kz-list{padding-left:20px; margin:8px 0;}
.kz-list li{margin-bottom:4px;}
.kz-summary{background:var(--teal-tint); border-radius:var(--radius-sm); padding:16px 18px; font-weight:600;}
.kz-toy{display:grid; grid-template-columns:160px minmax(0,1fr); gap:20px; align-items:start; background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:18px; margin-top:14px;}
.kz-toy-img, .kz-toy .kz-cover-empty{aspect-ratio:1; font-size:15px;}
.kz-toy:not(:has(.kz-cover, .kz-cover-empty)){grid-template-columns:1fr;}
.kz-set-list{display:grid; gap:10px;}
.kz-set{display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:16px; align-items:center; background:#fff; border:1px solid var(--line); border-radius:var(--radius-sm); padding:14px 18px;}
.kz-set em{font-style:normal; font-weight:800; color:var(--pink); font-size:18px;}
.kz-set.is-soon{opacity:.75;}
.kz-tale-cta{background:var(--teal-tint); border-radius:var(--radius); padding:26px;}
.kz-final-buy{background:var(--pink-tint); border-radius:var(--radius); padding:26px;}
.kz-final-buy .kz-price{margin:6px 0 14px;}

/* ---------- Оформлення замовлення ---------- */
.kz-popup{max-width:560px; max-height:92vh; overflow-y:auto;}
.kz-popup .field{margin-top:14px;}
.kz-offers{display:grid; gap:8px; margin:14px 0;}
.kz-offer{display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:12px; align-items:center; border:1px solid var(--line); border-radius:12px; padding:12px 14px; cursor:pointer;}
.kz-offer:has(input:checked){border-color:var(--pink); background:var(--pink-tint);}
.kz-offer small{display:block; color:var(--ink-soft);}
.kz-offer em{font-style:normal; font-weight:800; color:var(--pink);}
.kz-offer.is-soon{opacity:.55; cursor:default;}
.kz-pick{background:var(--pink-tint); border-radius:12px; padding:12px 14px;}
.kz-pick p{margin:0 0 8px; font-weight:700;}
.kz-pick label{display:block; margin:4px 0;}
.kz-delivery{display:flex; flex-wrap:wrap; gap:8px 18px; align-items:center; margin-top:16px;}
.kz-delivery > span{flex-basis:100%; font-size:14px; font-weight:700;}
.kz-np{position:relative;}
.kz-np-list{position:absolute; left:0; right:0; top:100%; z-index:5; background:#fff; border:1px solid var(--line); border-radius:12px; box-shadow:0 12px 30px rgba(0,0,0,.12); max-height:240px; overflow-y:auto;}
.kz-np-list button{display:block; width:100%; text-align:left; border:none; background:none; padding:10px 14px; font:inherit; font-size:14.5px; cursor:pointer;}
.kz-np-list button:hover{background:var(--pink-tint);}
.kz-total{display:flex; justify-content:space-between; align-items:center; margin-top:18px; padding-top:14px; border-top:1px solid var(--line);}
.kz-total b{font-size:22px; color:var(--pink);}
.kz-popup #shopSubmit{width:100%; margin-top:18px;}
.kz-note{font-size:13px; color:var(--ink-soft); text-align:center; margin:10px 0 0;}

/* ---------- Адаптив ---------- */
/* До 980 px шапка закріплена (position:fixed) - відступ під неї. */
@media (max-width:980px){ .kz-hero, .kz-book{padding-top:90px;} }
@media (max-width:1000px){
  .kz-cards-4{grid-template-columns:repeat(2, minmax(0,1fr));}
  .kz-cards-3{grid-template-columns:repeat(2, minmax(0,1fr));}
}
@media (max-width:860px){
  .kz-hero-grid, .kz-book-promo, .kz-psych-grid, .kz-book-grid{grid-template-columns:minmax(0,1fr); gap:28px;}
  .kz-hero-img{order:-1;}
  .kz-book-gallery{position:static;}
  .kz-book-promo-img{max-width:320px;}
}
@media (max-width:640px){
  .kz-hero{padding-bottom:44px;}
  .kz-sub{font-size:18px;}
  .kz-cards-2, .kz-cards-3, .kz-cards-4, .kz-form-grid, .svc-tools{grid-template-columns:minmax(0,1fr);}
  .kz-date{grid-template-columns:minmax(0,1fr) auto; gap:10px;}
  .kz-date > div{grid-column:1 / -1;}
  .kz-set{grid-template-columns:minmax(0,1fr) auto;}
  .kz-set .btn, .kz-set > .kz-soon{grid-column:1 / -1; justify-self:start;}
  .kz-form, .kz-done, .kz-nodates, .kz-tale-cta, .kz-final-buy{padding:20px;}
  .kz-psych-card{flex-direction:column; text-align:center;}
  .kz-toy{grid-template-columns:minmax(0,1fr);}
  .kz-toy-img, .kz-toy .kz-cover-empty{max-width:200px;}
  .kz-tales{grid-template-columns:minmax(0,1fr);}
}
