/* =========================================================
   Vet House — base.css
   Токены, сброс, кнопки, заглушки, иконки, формы, окно, уведомление.
   Подключается на всех страницах первым.
   ========================================================= */
:root{
  --font:'Onest', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --ink:#1F2327;
  --ink-2:#454C53;
  --muted:#6B7280;
  --line:#E4E8E7;
  --mist:#F2F6F5;
  --paper:#FFFFFF;
  --teal:#1E6E6B;
  --teal-deep:#154F4D;
  --teal-night:#0F3B3A;
  --teal-tint:#E2EFED;
  --coral:#FF6B4D;
  --coral-deep:#F25A3C;
  --coral-tint:#FFECE7;
  --coral-ink:#B53A20;
  --r-pill:999px;
  --ease:cubic-bezier(.2,.7,.2,1);
  --h-strip:36px;
  --h-bar:84px;
  --h-nav:48px;
  --gutter:40px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;font-family:var(--font);color:var(--ink);background:var(--paper);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0;padding:0}
.i{display:block;flex-shrink:0}
img{display:block}
h1,h2,h3,h4,p{margin:0}
.tnum{font-variant-numeric:tabular-nums}
:focus-visible{outline:2px solid var(--teal);outline-offset:2px;border-radius:8px}
[hidden]{display:none !important}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{max-width:1360px;margin:0 auto;padding:0 var(--gutter)}

/* ---------- общие кнопки ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;height:52px;padding:0 26px;border-radius:var(--r-pill);font-weight:600;font-size:15px;white-space:nowrap;transition:background .15s, color .15s, border-color .15s}
.btn-teal{background:var(--teal);color:#fff}
.btn-teal:hover{background:var(--teal-deep)}
.btn-line{border:1.5px solid var(--line);color:var(--ink)}
.btn-line:hover{border-color:var(--teal);color:var(--teal)}
.btn-cta{display:flex;align-items:center;justify-content:center;width:100%;height:48px;border-radius:var(--r-pill);background:var(--coral);color:var(--ink);font-weight:700;font-size:15px;transition:background .15s}
.btn-cta:hover{background:var(--coral-deep)}
.link{color:var(--teal);font-weight:600;font-size:15px;display:inline-flex;align-items:center;gap:6px}
.link:hover{color:var(--teal-deep)}

/* ---------- заглушка логотипа ----------
   Замените <span class="logo-ph"> на <img src="img/logo.svg" alt="Vet House">
   и перенесите высоту из правил .logo-ph на img. Пропорции логотипа ~3,44 : 1 */
.logo-ph{display:inline-flex;align-items:center;justify-content:center;height:40px;aspect-ratio:3.44/1;border-radius:8px;border:1.5px dashed #B9C7C5;background:repeating-linear-gradient(135deg, rgba(30,110,107,.06) 0 8px, transparent 8px 16px), var(--mist);color:#7E8E8C;font-size:12px;font-weight:600;letter-spacing:.02em;white-space:nowrap;overflow:hidden}
.logo-ph--light{border-color:rgba(255,255,255,.3);background:repeating-linear-gradient(135deg, rgba(255,255,255,.06) 0 8px, transparent 8px 16px), rgba(255,255,255,.04);color:rgba(255,255,255,.6)}

/* ---------- заглушка картинки ---------- */
.ph{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:
  repeating-linear-gradient(135deg, rgba(30,110,107,.045) 0 10px, transparent 10px 20px), var(--mist);color:#94A3A1;text-align:center;overflow:hidden}
.ph .i{opacity:.7}
.ph-label{font-size:12px;line-height:1.3;padding:0 12px;color:#8A9896}


/* ---------- иконки Font Awesome ----------
   Все иконки — <i class="i fa-solid fa-…">. Класс .i выравнивает их
   и задаёт базовый размер; i-xs…i-xl — готовые размеры. */
.i{display:inline-flex;align-items:center;justify-content:center;width:1.25em;line-height:1;flex-shrink:0;font-size:16px}
.i-xs{font-size:10px}
.i-sm{font-size:13px}
.i-lg{font-size:19px}
.i-xl{font-size:21px}
.link-btn{color:var(--teal);font-weight:600}
.link-btn:hover{color:var(--teal-deep)}
.sr-only-focusable:focus{position:fixed;left:16px;top:16px;width:auto;height:auto;clip:auto;z-index:200;background:var(--paper);padding:10px 14px;border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.2)}

/* ---------- формы ---------- */
.field{display:block;margin-bottom:12px}
.field span{display:block;font-size:13px;color:var(--ink-2);margin-bottom:6px}
.field input{width:100%;height:46px;padding:0 14px;border-radius:12px;border:1.5px solid var(--line);outline:0;font-size:16px;background:var(--paper);transition:border-color .15s, box-shadow .15s}
.field input:focus{border-color:var(--teal);box-shadow:0 0 0 4px rgba(30,110,107,.14)}
.cb-done{display:none}
.is-done > form{display:none}
.is-done > .cb-done{display:block}
.cb-done .tick{width:44px;height:44px;border-radius:50%;background:var(--teal-tint);color:var(--teal);display:flex;align-items:center;justify-content:center;margin-bottom:12px}
.field textarea{width:100%;min-height:84px;padding:12px 14px;border-radius:12px;border:1.5px solid var(--line);outline:0;font:inherit;font-size:16px;resize:vertical}
.field textarea:focus{border-color:var(--teal);box-shadow:0 0 0 4px rgba(30,110,107,.14)}

/* ---------- модальное окно ---------- */
.dialog{border:0;padding:0;border-radius:24px;width:min(420px, calc(100vw - 32px));max-height:calc(100vh - 32px);color:var(--ink);background:var(--paper);box-shadow:0 30px 60px -20px rgba(31,35,39,.45)}
.dialog::backdrop{background:rgba(31,35,39,.45)}
.dialog[open]{animation:dlg-in .22s var(--ease)}
@keyframes dlg-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.dialog-close{position:absolute;top:10px;right:10px}
.cb-wrap{padding:28px}
.dialog h3{font-size:22px;line-height:1.2;font-weight:700;letter-spacing:-.01em;margin-bottom:6px;padding-right:40px}
.dialog-lead{font-size:14.5px;color:var(--muted);margin-bottom:18px}
.dialog-note{display:block;margin-top:12px;font-size:12.5px;color:var(--muted)}
.dialog-note a{text-decoration:underline}
@media (max-width:600px){
  .dialog{width:100%;max-width:100%;margin:auto 0 0;border-radius:24px 24px 0 0}
  .cb-wrap{padding:24px 18px 28px}
}

/* ---------- тост ---------- */
.toast{position:fixed;left:50%;bottom:24px;z-index:120;transform:translate(-50%,20px);opacity:0;visibility:hidden;display:flex;align-items:center;gap:12px;max-width:calc(100vw - 32px);padding:12px 14px 12px 12px;border-radius:16px;background:var(--ink);color:#fff;font-size:14px;box-shadow:0 18px 40px -16px rgba(0,0,0,.5);transition:opacity .2s, transform .25s var(--ease), visibility .2s}
.toast.is-on{opacity:1;visibility:visible;transform:translate(-50%,0)}
.toast .tick{width:30px;height:30px;border-radius:50%;background:var(--coral);color:var(--ink);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.toast a{color:#8FD3CC;font-weight:600;margin-left:6px;white-space:nowrap}


@media (max-width:1023px){
  :root{--gutter:16px;--h-m-bar:56px;--h-m-search:56px}
  html{scroll-padding-top:70px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:.01ms !important;animation-duration:.01ms !important}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:.01ms !important;animation-duration:.01ms !important}
}

/* ---------- плашка о cookie ---------- */
.cookie{position:fixed;left:24px;bottom:24px;z-index:79;max-width:440px;display:flex;flex-direction:column;gap:14px;padding:20px;border-radius:20px;background:var(--paper);box-shadow:0 0 0 1px rgba(31,35,39,.06),0 24px 48px -16px rgba(31,35,39,.35);font-size:14px;line-height:1.5;color:var(--ink-2)}
.cookie a{color:var(--teal);text-decoration:underline}
.cookie-actions{display:flex;gap:10px}
.cookie .btn{height:42px;padding:0 20px;font-size:14px}
@media (max-width:1023px){
  .cookie{left:12px;right:12px;bottom:12px;max-width:none;padding:16px;border-radius:18px}
}

/* =========================================================
   Vet House для ocStore: фото товаров, цены, служебные элементы.
   ========================================================= */
/* фото внутри заглушки .ph */
.ph.has-img{background:#fff}
.ph > img{width:100%;height:100%;object-fit:contain;border-radius:inherit;display:block}
.ph.has-img > .ph-label{display:none}
/* иллюстрации оформления заполняют блок целиком */
.ph.has-art{background:none;padding:0;overflow:hidden}
.ph.has-art > img{object-fit:cover;padding:0}
.pet-tile .ph.has-art{padding:0}
.pet-tile .ph.has-art > img{object-position:right 18%}
.pdp-main.ph > img{padding:16px}
.pdp-thumbs button.ph{padding:0;border:2px solid transparent;cursor:pointer}
.pdp-thumbs button.ph.is-active{border-color:var(--teal)}
/* цена со скидкой */
.card-price{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 8px;min-width:0}
.price.is-sale{color:var(--coral-deep)}
.price-old{font-size:14px;color:var(--muted);font-weight:500}
.buy-price .price-old{font-size:17px}
/* рецептурный препарат */
.bdg.rx{background:#EEF1FA;color:#3949AB;font-weight:700}
/* ловушка для ботов в формах */
.hp{position:absolute !important;left:-9999px !important;width:1px;height:1px;opacity:0}
/* кнопка во время отправки */
.btn-cta.is-busy{opacity:.7;cursor:progress}
/* SEO-текст раздела из админки */
.cat-desc{margin-top:40px;max-width:820px;color:var(--ink)}
.cat-desc:empty{display:none}
/* информационные страницы: содержимое из админки */
.info-body > .wrap + .wrap{margin-top:24px}
/* стандартные страницы ocStore (кабинет и т. п.) внутри темы */
body[data-page="legacy"] #content, body[data-page="legacy"] .container{max-width:var(--wrap, 1240px)}
body[data-page="legacy"] main.page, body[data-page="legacy"] > .container{padding-top:24px;padding-bottom:48px}
body[data-page="legacy"] .breadcrumb{background:none;padding:0;margin:0 0 16px;font-size:14px}
body[data-page="legacy"] h1{font-size:32px;font-weight:700;margin:0 0 20px}
/* на мобильном баннер cookie не перекрывает нижнюю панель покупки/оформления */
@media (max-width:1023px){
  body:has(.pdp-bar:not([hidden])) .cookie{bottom:calc(84px + env(safe-area-inset-bottom))}
}
/* логотип-картинка: те же размеры, что у заглушки (пропорции ~3,5 : 1) */
.logo-img{display:block;height:40px;width:auto;max-width:none}
.logo .logo-img{transition:height .25s var(--ease)}
.hdr.is-compact .logo .logo-img{height:30px}
.dr-top .logo-img{height:28px}
.foot .logo-img{height:36px}
@media (max-width:1023px){ .m-bar .logo .logo-img{height:30px} }
/* контакты: второй телефон, режим работы, карта */
.foot .tel-2{display:block;margin-top:2px}
.hours-list{line-height:1.7}
.hours-list span{display:inline-block;min-width:76px;color:var(--muted)}
.map{overflow:hidden;background:var(--mist)}
.map iframe{display:block;width:100%;height:100%;min-height:inherit;border:0}
/* хлебные крошки из магазина (со списком для поисковиков) */
.crumbs-list{display:contents;list-style:none;margin:0;padding:0}
.crumbs-list li{display:contents}
/* хлебные крошки: «Главная» — значком домика (текст остаётся для экранных дикторов и разметки) */
.crumbs > a:first-child,.crumbs-list li:first-child > a{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;margin-left:-6px;border-radius:8px;font-size:0;line-height:0;color:var(--muted);transition:background .15s,color .15s}
.crumbs > a:first-child::before,.crumbs-list li:first-child > a::before{content:"\f015";font-family:"Font Awesome 6 Free";font-weight:900;font-size:14px;line-height:1}
.crumbs > a:first-child:hover,.crumbs-list li:first-child > a:hover{background:var(--mist);color:var(--teal)}
.crumbs-list li:first-child > a span{font-size:0}
/* метки и «избранное» поверх фото: белое на белом фото сливается — даём им подложку и лёгкую тень */
.card-badges .bdg:not(.sale):not(.taste):not(.rx){background:var(--teal-tint);color:var(--teal-deep)}
.card-badges .bdg{box-shadow:0 1px 2px rgba(21,79,77,.10)}
.card-media .fav{box-shadow:0 1px 3px rgba(21,79,77,.14), 0 0 0 1px rgba(21,79,77,.06)}
