/* ПитомЧик v79.4.5 — единая компактная система кнопок публичного сайта.
   Слой меняет только внешний вид и размеры элементов управления. */

:root{
  --pc-public-button-radius:15px;
  --pc-public-button-height:44px;
  --pc-public-button-shadow:0 8px 18px rgba(47,109,70,.14);
}

.button{
  min-height:var(--pc-public-button-height);
  max-width:100%;
  padding:10px 16px;
  border-radius:var(--pc-public-button-radius);
  gap:8px;
  font-size:.94rem;
  font-weight:800;
  line-height:1.2;
  text-align:center;
  white-space:normal;
  box-shadow:var(--pc-public-button-shadow);
  transition:background-color .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease;
}

.button:hover{
  transform:translateY(-1px);
  box-shadow:0 10px 22px rgba(47,109,70,.18);
}

.button:active{
  transform:translateY(0) scale(.985);
  box-shadow:0 5px 12px rgba(47,109,70,.14);
}

.button:focus-visible{
  outline:3px solid rgba(47,109,70,.22);
  outline-offset:3px;
}

.button-outline{
  background:#fff;
  border-color:rgba(37,83,55,.2);
  color:var(--brand-dark,#245d38);
  box-shadow:0 5px 14px rgba(35,65,45,.07);
}

.button-outline:hover{
  background:#f3f8f3;
  border-color:rgba(37,83,55,.3);
  color:var(--brand-dark,#245d38);
}

.button-light{
  background:#fff;
  border-color:rgba(255,255,255,.85);
  color:var(--brand-dark,#245d38);
  box-shadow:0 5px 14px rgba(26,54,36,.08);
}

.button-small,
.site-header .header-action{
  min-height:40px;
  padding:8px 14px;
  border-radius:13px;
  font-size:.86rem;
  white-space:nowrap;
}

/* Кнопки форм и карточек сохраняют заметность, но не раздувают блоки. */
.request-submit,
.review-form-actions .button,
.product-actions .button,
.product-links .button,
.favorite-card-actions .button,
.contacts-hero-actions .button,
.contacts-route-actions .button,
.contacts-help-actions .button,
.contact-actions .button,
.route-actions .button,
.guide-final-actions .button,
.request-form-actions .button,
.request-footer-actions .button{
  min-height:44px;
  padding:10px 16px;
  border-radius:15px;
  font-size:.92rem;
  box-shadow:none;
}

.product-actions,
.product-links,
.hero-actions,
.contact-actions,
.route-actions,
.contacts-hero-actions,
.contacts-route-actions,
.contacts-help-actions,
.request-form-actions,
.request-footer-actions,
.review-form-actions{
  gap:10px;
}

/* Средние экраны: старые flex-правила слишком растягивали действия. */
@media (min-width:721px) and (max-width:1240px){
  .hero-actions .button,
  .contact-actions .button,
  .route-actions .button,
  .contacts-hero-actions .button,
  .contacts-route-actions .button,
  .contacts-help-actions .button,
  .request-form-actions .button,
  .request-footer-actions .button,
  .review-form-actions .button,
  .product-links .button{
    width:auto!important;
    flex:0 1 auto!important;
    min-width:0;
    min-height:42px;
    padding:9px 14px;
    border-radius:14px;
    font-size:.88rem;
  }

  .product-actions .button,
  .product-actions a{
    min-height:42px!important;
    padding:9px 13px!important;
    border-radius:14px!important;
    font-size:.88rem!important;
  }
}

/* Телефон: кнопка удобна пальцу, но не занимает лишнюю высоту. */
@media (max-width:720px){
  :root{
    --pc-public-button-height:44px;
    --pc-public-button-radius:15px;
  }

  .button{
    padding:10px 14px;
    font-size:.9rem;
  }

  .button-small,
  .site-header .header-action{
    min-height:40px;
    padding:8px 12px;
    border-radius:13px;
    font-size:.84rem;
  }

  .hero-actions .button,
  .contact-actions .button,
  .route-actions .button,
  .contacts-hero-actions .button,
  .contacts-route-actions .button,
  .contacts-help-actions .button,
  .request-form-actions .button,
  .request-footer-actions .button,
  .review-form-actions .button,
  .product-actions .button,
  .product-links .button{
    min-height:44px!important;
    padding:10px 14px!important;
    border-radius:15px!important;
    font-size:.9rem!important;
  }
}

/* Очень узкие телефоны: длинные подписи переносятся без выхода за экран. */
@media (max-width:405px){
  .button{
    width:100%;
    min-width:0;
    padding-right:12px;
    padding-left:12px;
    overflow-wrap:anywhere;
  }

  .site-header .header-action,
  .mobile-nav-actions .button{
    width:auto;
  }
}

@media (prefers-reduced-motion:reduce){
  .button{
    transition:none;
  }
}
