/*
Theme Name: Zazou Child
Template: storefront
Description: Дочерняя тема под визуальный стиль цветочного магазина ZAZOU (Минск)
Version: 1.7
Text Domain: zazou-child
*/

/* ==========================================================
   ДИЗАЙН-ТОКЕНЫ
   Палитра: кремовый фон, глубокий зелёный (флористика),
   пыльно-розовый акцент — премиальный, но не приторный цветочный стиль
   ========================================================== */
:root{
  --zz-cream:      #FAF6F1;
  --zz-cream-2:    #F3ECE3;
  --zz-forest:     #2B3A2E;
  --zz-forest-2:   #3E5142;
  --zz-rose:       #C98B93;
  --zz-rose-soft:  #F3E1DE;
  --zz-pistachio:  #DDE6CE;
  --zz-ink:        #2A2A28;
  --zz-line:       #E4DACD;

  --zz-font-display: 'Cormorant Garamond', Georgia, serif;
  --zz-font-body:    'Jost', 'Helvetica Neue', Arial, sans-serif;
}

/* ===== Базовые сбросы под тему Storefront ===== */
body{
  background: var(--zz-cream);
  color: var(--zz-ink);
  font-family: var(--zz-font-body);
  font-size: 16px;
  letter-spacing: .01em;
  overflow-x: hidden;
}

/* Вырывает элемент из ограниченного .col-full контейнера Storefront
   на всю ширину экрана — для баннера и сетки каталога */
.zz-full-bleed{
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
}

h1, h2, h3, h4,
.site-title,
.woocommerce-loop-category__title,
.product_title{
  font-family: var(--zz-font-display);
  font-weight: 500;
  color: var(--zz-forest);
  letter-spacing: .01em;
}

a{ color: var(--zz-forest-2); }
a:hover{ color: var(--zz-rose); }

/* ===== Шапка сайта ===== */
#masthead{
  background: var(--zz-cream);
  border-bottom: 1px solid var(--zz-line);
}
.site-branding .site-title{
  font-size: 28px;
  letter-spacing: .18em;
  text-transform: uppercase;
}

/* ===== Верхняя строка шапки: соцсети / лого по центру / контакты ===== */
.zz-header-top{
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 24px;
  max-width: 1400px;
  margin: 0 auto;
  padding: 20px 32px;
}
.zz-header-social{
  display: flex;
  gap: 18px;
}
.zz-header-icon{
  display: inline-flex;
  color: var(--zz-forest);
}
.zz-header-icon:hover{ color: var(--zz-rose); }
.zz-header-logo{ text-align: center; }
.zz-header-logo a{
  font-family: var(--zz-font-display);
  font-size: 30px;
  letter-spacing: .24em;
  color: var(--zz-forest);
  text-decoration: none;
}
.zz-header-contact{
  text-align: right;
  font-size: 12px;
  line-height: 1.6;
  letter-spacing: .02em;
  color: var(--zz-ink);
}
.zz-header-contact a{ color: var(--zz-ink); }
.zz-header-contact a:hover{ color: var(--zz-rose); }
@media (max-width: 780px){
  .zz-header-top{
    grid-template-columns: 1fr;
    text-align: center;
    gap: 12px;
    padding: 18px 20px;
  }
  .zz-header-social{ justify-content: center; }
  .zz-header-contact{ text-align: center; }
}

.main-navigation ul li a{
  font-family: var(--zz-font-body);
  font-size: 13px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--zz-ink);
}
.main-navigation ul li a:hover{ color: var(--zz-rose); }

/* ===== Hero-блок главной страницы ===== */
.zz-hero{
  position: relative;
  min-height: 62vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  background: var(--zz-cream-2)
    url('images/hero-placeholder.jpg') center/cover no-repeat;
  padding: 40px 20px;
}
.zz-hero::after{
  /* лёгкое затемнение фото для читаемости заголовка */
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(43,58,46,.15), rgba(43,58,46,.35));
}
.zz-hero-inner{
  position: relative;
  z-index: 1;
  color: #fff;
}
.zz-hero-eyebrow{
  font-size: 13px;
  letter-spacing: .3em;
  text-transform: uppercase;
  opacity: .9;
  margin-bottom: 14px;
}
.zz-hero-title{
  font-size: clamp(34px, 6vw, 64px);
  line-height: 1.05;
  margin: 0 0 22px;
  color: #fff;
}
.zz-hero-cta{
  display: inline-block;
  padding: 14px 36px;
  border: 1px solid #fff;
  color: #fff;
  text-decoration: none;
  font-size: 13px;
  letter-spacing: .16em;
  text-transform: uppercase;
  transition: background .25s ease, color .25s ease;
}
.zz-hero-cta:hover{
  background: #fff;
  color: var(--zz-forest);
}

/* ===== Сетка категорий каталога ===== */
.zz-categories{
  max-width: 1320px;
  margin: 90px auto 50px;
  padding: 0 24px;
}
.zz-categories-heading{
  text-align: center;
  font-size: 34px;
  margin-bottom: 8px;
}
.zz-categories-sub{
  text-align: center;
  font-size: 13px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--zz-forest-2);
  margin-bottom: 48px;
}
.zz-cat-grid{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2px;
  background: var(--zz-line);
}
@media (max-width: 1200px){ .zz-cat-grid{ grid-template-columns: repeat(3,1fr); } }
@media (max-width: 900px){ .zz-cat-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 520px){ .zz-cat-grid{ grid-template-columns: 1fr; } }

.zz-cat-card{
  position: relative;
  display: block;
  text-decoration: none;
  aspect-ratio: 3/4;
  overflow: hidden;
  background: var(--zz-forest);
}
.zz-cat-card img{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .5s ease;
}
.zz-cat-card:hover img{ transform: scale(1.05); }
.zz-cat-card::after{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(20,26,20,0) 42%, rgba(20,26,20,.78) 100%);
  pointer-events: none;
}
.zz-cat-card-arrow{
  position: absolute;
  top: 22px;
  right: 22px;
  z-index: 2;
  width: 38px;
  height: 38px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.65);
  color: #fff;
  font-size: 16px;
  transition: background .25s ease, color .25s ease;
}
.zz-cat-card:hover .zz-cat-card-arrow{
  background: #fff;
  color: var(--zz-forest);
}
.zz-cat-card-body{
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  padding: 26px 28px 30px;
}
.zz-cat-card-title{
  font-size: 24px;
  margin: 0 0 8px;
  color: #fff;
}
.zz-cat-card-desc{
  font-size: 14px;
  line-height: 1.5;
  color: rgba(255,255,255,.88);
  opacity: 1;
  margin: 0;
}

/* ===== Тонкий ботанический разделитель — фирменный элемент ===== */
.zz-divider{
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin: 60px 0;
  color: var(--zz-rose);
}
.zz-divider::before,
.zz-divider::after{
  content: "";
  height: 1px;
  width: 80px;
  background: var(--zz-line);
}

/* ===== Футер ===== */
#colophon{
  background: var(--zz-forest);
  color: #EDE7DD;
  padding: 60px 24px 28px;
}
#colophon a{ color: #EDE7DD; }
#colophon a:hover{ color: var(--zz-rose); }
.zz-footer-top{
  text-align: center;
  font-size: 13px;
  letter-spacing: .03em;
  padding-bottom: 32px;
  margin-bottom: 36px;
  border-bottom: 1px solid rgba(237,231,221,.15);
}
.zz-footer-columns{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
  max-width: 900px;
  margin: 0 auto;
}
@media (max-width: 640px){ .zz-footer-columns{ grid-template-columns: 1fr; gap: 28px; } }
.zz-footer-col h4{
  font-family: var(--zz-font-display);
  color: #EDE7DD;
  font-size: 14px;
  letter-spacing: .15em;
  text-transform: uppercase;
  margin: 0 0 14px;
}
.zz-footer-col ul{ list-style: none; margin: 0; padding: 0; }
.zz-footer-col li{ margin-bottom: 8px; font-size: 13px; }
.zz-footer-legal{
  max-width: 900px;
  margin: 40px auto 0;
  font-size: 11px;
  line-height: 1.6;
  opacity: .65;
  text-align: center;
}

/* ===== Внутренние страницы (О нас, Доставка, Ивенты, Политика) ===== */
.zz-page-header{
  text-align: center;
  padding: 70px 24px 30px;
}
.zz-page-title{
  font-size: clamp(30px, 5vw, 46px);
  margin: 0;
}
.zz-page-subtitle{
  font-size: 14px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--zz-forest-2);
  margin-top: 10px;
}
.zz-content{
  max-width: 860px;
  margin: 0 auto;
  padding: 0 24px 90px;
  line-height: 1.75;
}
.zz-content h2{
  font-size: 24px;
  margin: 48px 0 16px;
}
.zz-content h3{
  font-size: 19px;
  margin: 30px 0 10px;
  color: var(--zz-forest-2);
}
.zz-content p{ margin: 0 0 16px; }
.zz-content ul{ margin: 0 0 20px; padding-left: 22px; }
.zz-content li{ margin-bottom: 8px; }

.zz-benefits-list{
  list-style: none;
  padding: 0;
  margin: 0 0 10px;
  display: grid;
  gap: 20px;
}
.zz-benefits-list li{
  position: relative;
  padding-left: 30px;
}
.zz-benefits-list li::before{
  content: "✦";
  position: absolute;
  left: 0;
  top: 1px;
  color: var(--zz-rose);
}

.zz-contact-block{
  background: var(--zz-cream-2);
  border: 1px solid var(--zz-line);
  border-radius: 4px;
  padding: 28px 32px;
  margin-top: 10px;
}
.zz-contact-block p{ margin: 0 0 10px; }
.zz-contact-block p:last-child{ margin-bottom: 0; }

.zz-legal-doc h2{
  font-size: 18px;
  letter-spacing: .04em;
  margin: 40px 0 14px;
}
.zz-legal-doc p{
  font-size: 14.5px;
  opacity: .88;
}

.zz-events-grid{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  margin: 40px 0;
}
@media (max-width: 640px){ .zz-events-grid{ grid-template-columns: 1fr; } }
.zz-events-card{
  background: var(--zz-cream-2);
  border-radius: 4px;
  padding: 22px 24px;
}
.zz-events-card h3{
  margin: 0 0 8px;
  font-size: 18px;
  color: var(--zz-forest);
}
.zz-events-card p{
  margin: 0;
  font-size: 13.5px;
  opacity: .85;
}

.zz-lead-cta{
  text-align: center;
  background: var(--zz-forest);
  color: #fff;
  padding: 50px 24px;
  margin: 50px 0;
}
.zz-lead-cta p{
  color: #EDE7DD;
  margin-bottom: 22px;
}

/* ===== Карточка товара WooCommerce ===== */
ul.products li.product .woocommerce-loop-product__title{
  font-family: var(--zz-font-display);
  font-size: 19px;
}
ul.products li.product .price{
  color: var(--zz-forest-2);
  font-family: var(--zz-font-body);
}
.add_to_cart_button,
.single_add_to_cart_button{
  background: var(--zz-forest) !important;
  border-radius: 2px !important;
  letter-spacing: .1em;
  text-transform: uppercase;
  font-size: 12px !important;
}
.add_to_cart_button:hover,
.single_add_to_cart_button:hover{
  background: var(--zz-rose) !important;
}

/* Прячем выбор количества на странице товара — покупаем поштучно */
.single-product form.cart .quantity{
  display: none;
}

/* ===== Сетка каталога: одинаковые карточки, вертикальное фото 2:3 =====
   Заменяем float-раскладку Storefront на CSS-grid — так все карточки
   в ряду одной высоты, а кнопка «Купить» выстраивается по нижней линии
   независимо от длины названия/описания под букетом. */
.woocommerce ul.products,
.woocommerce-page ul.products{
  display: grid !important;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px 28px;
  margin: 0 0 48px;
}
@media (max-width: 980px){
  .woocommerce ul.products,
  .woocommerce-page ul.products{ grid-template-columns: repeat(2, 1fr); gap: 32px 20px; }
}
@media (max-width: 420px){
  .woocommerce ul.products,
  .woocommerce-page ul.products{ grid-template-columns: 1fr; }
}

/* WooCommerce вешает на ul.products clearfix-псевдоэлементы ::before/::after
   (для старой float-раскладки). В CSS-grid они превращаются в пустые ячейки —
   из-за них появлялось «пустое место» на месте первого товара. Отключаем их. */
.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce-page ul.products::before,
.woocommerce-page ul.products::after{
  content: none;
  display: none;
}

/* Сбрасываем ширины/отступы/обтекание из родительской темы */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product{
  width: auto !important;
  float: none !important;
  clear: none !important;
  margin: 0 !important;
  padding: 0;
  display: flex;
  flex-direction: column;
  height: 100%;
  text-align: center;
}

/* Ссылка-обёртка (фото + название + цена) тянется на всю высоту карточки,
   чтобы кнопка под ней всегда прижималась к низу */
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link{
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
}

/* Увеличенное вертикальное фото 2:3 */
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link img,
.woocommerce ul.products li.product img{
  width: 100%;
  height: auto;
  aspect-ratio: 2 / 3;
  object-fit: cover;
  display: block;
  margin: 0 0 14px;
  border-radius: 3px;
}

/* Название — резервируем место под 2 строки, чтобы цена и кнопка
   не «прыгали» между карточками с разным по длине текстом */
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  min-height: 2.6em;
  margin: 0 0 6px;
  padding: 0;
}

/* Цену прижимаем к низу ссылки — выравнивание по нижней линии */
.woocommerce ul.products li.product .price{
  margin: auto 0 14px;
  display: block;
}

/* Кнопка «Купить/В корзину» — по центру, единой линией во всех карточках */
.woocommerce ul.products li.product .button.add_to_cart_button,
.woocommerce ul.products li.product .added_to_cart{
  align-self: center;
  margin: 0;
}

/* ===== Общий блок ZAZOU на странице товара ===== */
.zz-shared-block{
  display: flex;
  align-items: flex-start;
  gap: 16px;
  margin: 24px 0;
  padding: 20px 22px;
  background: var(--zz-cream-2);
  border: 1px solid var(--zz-line);
  border-radius: 4px;
}
.zz-shared-block-img{
  width: 88px;
  height: 88px;
  object-fit: cover;
  border-radius: 4px;
  flex-shrink: 0;
}
.zz-shared-block-text p{
  margin: 0 0 8px;
  font-size: 14px;
  line-height: 1.6;
  color: var(--zz-ink);
}
.zz-shared-block-text p:last-child{ margin-bottom: 0; }
@media (max-width: 480px){
  .zz-shared-block{ flex-direction: column; }
}

/* ===== Аккордеон УТП на странице товара ===== */
.zz-usp-accordion{
  margin: 24px 0;
  border: 1px solid var(--zz-line);
  border-radius: 4px;
  overflow: hidden;
}
.zz-usp-item{
  border-bottom: 1px solid var(--zz-line);
}
.zz-usp-item:last-child{ border-bottom: none; }
.zz-usp-title{
  cursor: pointer;
  list-style: none;
  padding: 14px 42px 14px 18px;
  position: relative;
  font-family: var(--zz-font-display);
  font-size: 16px;
  color: var(--zz-forest);
  background: var(--zz-cream-2);
  transition: background .2s ease;
}
.zz-usp-title::-webkit-details-marker{ display: none; }
.zz-usp-title::after{
  content: "+";
  position: absolute;
  right: 18px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 20px;
  line-height: 1;
  color: var(--zz-forest-2);
}
.zz-usp-item[open] .zz-usp-title::after{
  content: "\2212";
}
.zz-usp-title:hover{ background: var(--zz-pistachio); }
.zz-usp-content{
  padding: 4px 18px 18px;
  font-size: 14px;
  line-height: 1.6;
  color: var(--zz-ink);
}
.zz-usp-content p{ margin: 0 0 8px; }
.zz-usp-content p:last-child{ margin-bottom: 0; }
