/* Слой темы megapharma поверх эталонных V5-слоёв (styles … site-v5): только то, чего нет в макете v19. */

/* Мега-меню: панель категории не добавляет своего блока — её дети остаются прямыми потомками .mega-content
   (flex-колонка макета). Скрытая панель прячется атрибутом [hidden]. */
.mega-panel{display:contents}

/* Страницы ошибок 403/404/410: ряд кнопок под блоком page-intro. */
.error-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}

/* Подвал: в макете две колонки меню, у сайта три (Каталог, Покупателям, Компания — меню footer_* в админке).
   Широкая сетка получает пятую колонку; на узких экранах колонки переносятся сеткой макета. */
@media(min-width:1251px){
  body#top .footer-grid:has(>div:nth-child(5)){grid-template-columns:1.3fr 1fr 1.1fr .9fr 1.2fr}
}

/* Листинги (категория, производитель, поиск): то, чего нет в макете — серверная форма фильтров
   вместо клиентской, ссылки-чипы производителей, многоточие в пагинации, карточка без фото. */
.filter-submit{width:100%;margin-top:18px;justify-content:center}
.listing-sidebar .check-row small,.filter-links small{color:#6c805f;font-size:.875em}
.filter-links{display:flex;flex-direction:column;gap:4px;margin-top:6px}
.filter-links a{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:44px;padding:6px 12px;border-radius:8px;color:#193e2b;font-size:1rem;line-height:1.4}
.filter-links a:hover,.filter-links a.active{background:#e6f1de}
.filter-links a.active{font-weight:700}
.empty-state .filter-links{flex-direction:row;flex-wrap:wrap;justify-content:center}
.empty-state .filter-links a{background:#fff;border:1px solid #dfe6db}
.pagination>span{display:grid;place-items:center;min-width:24px;color:#6c805f}
.product-image>.icon{margin:auto;width:56px;height:56px;color:#b7cba9}
.product-card .add-to-cart:disabled{opacity:.7;cursor:progress}
.sort-control select{max-width:100%}
.catalog-tile{min-width:0}
.catalog-tile strong{overflow-wrap:anywhere}

/* Карточка товара: то, чего нет в макете — фото и вкладки работают и без скрипта (ссылки вместо кнопок,
   вкладки раскрыты, пока JS их не включил), блок «нет в наличии», старая цена, ссылка в строке действий. */
.product-tabs[hidden],.product-information [role=tabpanel][hidden]{display:none}
a.gallery-thumb{display:block}
.gallery-main>.icon{width:96px;height:96px;color:#b7cba9}
.detail-actions>a{display:flex;align-items:center;gap:8px}
body#top.site-v5 .detail-actions>a{min-height:44px;padding:11px 17px;border-radius:8px;background:#f3f7ed;font-size:1rem;line-height:1.5;color:#587a4c}
body#top.site-v5 .detail-actions>a:hover{background:#e6f1de}
.old-price{font-size:.55em;font-weight:500;color:#6c805f}
.purchase-row>a.button{flex:1 1 auto;max-width:none;justify-content:center;text-align:center}
.spec-table td a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.product-information [role=tabpanel]+[role=tabpanel]{margin-top:28px}
.product-tabs:not([hidden])~[role=tabpanel]{margin-top:0}
.compare-actions{margin-top:20px}

/* Корзина, оформление и подтверждение заказа: то, чего нет в макете — позиция без фото и недоступная позиция,
   пометка наличия, общее сообщение об ошибке формы, поля, скрытые для выбранного способа получения
   ([hidden] перебивается display:flex у label макета), ссылки и кнопки под итогом и подтверждением. */
.cart-line-thumb,.mini-thumb{display:grid;place-items:center;background:#f5f8f1;border-radius:8px;color:#b7cba9}
.cart-line-thumb{width:85px;height:80px}
.cart-line-thumb>.icon{width:36px;height:36px}
.mini-thumb{flex-shrink:0;width:49px;height:49px}
.mini-thumb>.icon{width:24px;height:24px}
.cart-line .cart-line-note{margin-top:4px;color:#875005;font-weight:600}
.cart-line.is-unavailable>img,.cart-line.is-unavailable .cart-line-info h3{opacity:.6}
.cart-line-unavailable{margin:0;color:#875005;font-size:.875rem;line-height:1.5;font-weight:600}
@media(max-width:1100px){
  .cart-line>.cart-line-thumb{grid-row:1/3;width:70px;height:70px}
  .cart-line>.cart-line-unavailable{grid-column:2;grid-row:2}
}
@media(max-width:600px){.cart-line>.cart-line-thumb{width:54px;height:54px}}
.order-summary>.text-link{display:inline-flex;margin-top:14px;min-height:44px;align-items:center}
.order-mini-list a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.checkout-form [hidden]{display:none}
.checkout-form .form-note a{text-decoration:underline;text-underline-offset:3px}
.checkout-form>.button{margin-top:8px}
.delivery-note{margin:-6px 0 17px}
.form-alert{display:flex;gap:12px;align-items:flex-start;margin-bottom:24px;padding:14px 16px;border-radius:8px;
  background:var(--brand-orange-tint,#fef7f1);border:1px solid #f3d3b4;color:var(--brand-orange-text,#a75912)}
.form-alert>.icon{flex-shrink:0;width:22px;height:22px;margin-top:2px}
.form-alert p{margin:0;font-size:1rem;line-height:1.5;font-weight:600}
.receipt-details p+p{margin-top:6px}
.receipt-items{margin-bottom:8px}
.receipt-items h3+p{margin-top:8px}
.receipt-items p+h3{margin-top:18px}
.receipt-items a{text-decoration:underline;text-underline-offset:3px}
.receipt .button .icon{width:18px;height:18px}

/* Формы обращения (partials/contact-form) и вход/кабинет: то, чего нет в макете — ловушка для ботов,
   блок «Заявка отправлена» и сообщение об успехе вместо демо-черновика письма, список в форме,
   двухколоночная страница входа, кнопка «Выйти» в меню кабинета, статусы и история заказа, действия адреса. */
.contact-form-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.contact-form-body{min-width:0;position:relative}
.inquiry-form[hidden],.contact-form-success[hidden],.form-notice[hidden],.form-alert[hidden]{display:none}
.inquiry-form select{font:inherit;font-size:1rem;line-height:1.5;color:#193e2b;padding:12px 14px;width:100%;min-width:0;min-height:48px;background:#fff;border:1px solid #dce5d7;border-radius:8px}
.inquiry-form select:focus-visible{outline:2px solid #007e3a;outline-offset:2px}
.inquiry-form>.button{margin-top:8px}
.inquiry-form[aria-busy=true] [data-contact-submit]{opacity:.7;cursor:progress}
.inquiry-form .form-note a,.account-panel .muted-note a,.auth-aside a.text-link{text-decoration:underline;text-underline-offset:3px}
.inquiry-form .check-row{flex-direction:row;align-items:flex-start;gap:10px;margin-bottom:6px;font-size:1rem}
.inquiry-form .check-row input[type=checkbox]{width:20px;height:20px;min-height:0;margin:2px 0 0;flex-shrink:0;accent-color:#007e3a}
.inquiry-form .check-row+small[data-error]{display:block;margin-bottom:12px}
.contact-form-success{padding:28px;border-radius:10px;background:#fff;border:1px solid #dce5d7}
.contact-form-success>.icon{width:40px;height:40px;color:#007e3a;margin-bottom:12px}
.contact-form-success h3{font-size:1.375rem;line-height:1.4;margin-bottom:8px}
.contact-form-success p{margin-bottom:18px;font-size:1rem;line-height:1.6}
.contact-form-success:focus{outline:none}
.form-notice{display:flex;gap:12px;align-items:flex-start;margin-bottom:24px;padding:14px 16px;border-radius:8px;
  background:#eef7e8;border:1px solid #cfe5c1;color:#1f5a2f}
.form-notice>.icon{flex-shrink:0;width:22px;height:22px;margin-top:2px}
.form-notice p{margin:0;font-size:1rem;line-height:1.5;font-weight:600}

/* Вход и регистрация: форма слева, пояснение справа; на узком экране — одна колонка. */
.auth-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.9fr);gap:27px;align-items:start;margin-top:30px}
.auth-layout>.account-panel>h2,.account-panel>h2{margin-bottom:18px}
.auth-aside p{font-size:1rem;line-height:1.6;margin-bottom:18px}
.auth-aside .muted-note{margin:22px 0 0}
.auth-captcha{margin:4px 0 16px;min-height:65px}
@media(max-width:900px){.auth-layout{grid-template-columns:1fr;gap:19px}}

/* Кабинет: «Выйти» — кнопка формы POST /logout, оформлена как пункт меню. */
.account-logout{display:contents}
.account-logout button{display:flex;align-items:center;gap:13px;width:100%;min-height:44px;padding:12px;border:0;border-radius:6px;
  background:none;font:inherit;font-size:1rem;line-height:1.5;color:#6c805f;cursor:pointer;text-align:left}
.account-logout button:hover{background:#e8f3df;color:#006a31}
.account-logout .icon{width:19px;height:19px}
@media(max-width:900px){.account-logout button{flex-shrink:0;width:auto;font-size:.875rem;white-space:nowrap;gap:7px}}
.account-panel .account-section-title{margin-top:40px;padding-top:32px;border-top:1px solid #e5eae4}
.account-subtitle{margin:28px 0 14px;font-size:1.25rem;line-height:1.4}
.account-orders .history-card{margin-bottom:14px}
.account-orders .history-card>.icon{flex-shrink:0;width:28px;height:28px;color:#8aab76}
.history-card .text-link,.account-panel>.text-link{display:inline-flex;align-items:center;gap:6px;min-height:44px}
.order-status{display:inline-block;font-weight:700;color:#006a31}
.order-status-new,.order-status-confirmed{color:#875005}
.order-status-cancelled,.order-status-refunded{color:#6c805f}
.order-timeline{list-style:none;margin:0 0 8px;padding:0}
.order-timeline li{padding:6px 0;font-size:1rem;line-height:1.5;border-bottom:1px solid #eef2ec}
.order-timeline time{font-variant-numeric:tabular-nums;color:#526854}
.account-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
.account-actions .button .icon{width:18px;height:18px}
.address-list{margin-bottom:8px}
.address-actions{display:flex;gap:8px;flex-shrink:0}
.address-actions form{display:contents}
.address-default{display:inline-block;margin-left:6px;padding:0 8px;border-radius:999px;background:#e8f3df;color:#006a31;font-size:.8125rem;font-weight:700;line-height:1.7}
.account-favorites{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
.account-panel .empty-state{margin-top:0}

/* Инфо-страницы (pages/*, текст из админки): то, чего нет в макете — числа «о компании», списки внутри карточек
   и рамки текста, подразделы карты сайта, подпись-метка и пустые блоки контента. Блоки текста лежат прямо
   в <main>, поэтому отступы между ними задаёт .site-main>section из site.css. */
.stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:19px}
.stat-card{display:flex;flex-direction:column;gap:6px;padding:24px 28px;background:#f0f6e8;border:1px solid #e0e8d6;border-radius:10px}
.stat-card strong{font-size:2.5rem;line-height:1.1;font-weight:750;color:#006a31;letter-spacing:-.5px}
.stat-card span{font-size:1rem;line-height:1.5;color:#526854}
.info-feature ul,.prose-panel ul{margin:0 0 15px;padding-left:22px;display:flex;flex-direction:column;gap:8px}
.info-feature li,.prose-panel li{font-size:1rem;line-height:1.65;color:#566c4c}
.prose-panel ul.check-list{list-style:none;padding-left:0}
.prose-panel ul.check-list li{position:relative;padding-left:28px}
.prose-panel ul.check-list li::before{content:"\2713";position:absolute;left:0;top:0;color:#006a31;font-weight:700}
.site-main>section.prose-panel{max-width:none}
.prose-panel .button{margin:8px 12px 0 0}
.document-page-card img{max-width:100%;height:auto}
.site-main>.contact-location-grid .location-map-link{display:inline-flex;align-items:center;gap:6px}
.department-grid .text-link{display:inline-flex;align-items:center;gap:6px;min-height:44px}
.sitemap-columns a{font-size:1rem;line-height:1.5;display:block;min-height:24px}
.sitemap-columns a.sitemap-sub{padding-left:18px;color:#6c805f}
.faq-list.full-faq{margin-top:0}
@media(max-width:900px){.stat-grid{grid-template-columns:1fr;gap:12px}.stat-card{padding:20px 22px}.stat-card strong{font-size:2rem}}

/* Главная: карусель без боковых карточек (или карточки без карусели) занимает всю ширину сетки первого экрана. */
body#top.home-v5 .v5-hero-grid.v5-hero-grid--single{grid-template-columns:minmax(0,1fr)}

/* Контакты и соцсети (T19): значки WhatsApp/Instagram… из Shell::socialLinks() — в шапке рядом с телефоном, в мобильном
   каталоге и подвале, на главной (блок «Есть вопрос?») — и крупные кнопки Shell::socialLink() с подписью: страница
   /contact-us, карточка товара («Спросить в WhatsApp»), ошибки и подтверждение заказа. Глифы заливаются сами
   (fill в символах спрайта), правило .icon-social — на случай стороннего `svg.icon{fill:none}`. */
svg.icon.icon-social{fill:currentColor;stroke:none}
.social-links{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.social-links .social-link{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;border-radius:50%;background:#f0f5e9;color:#006a31;transition:background-color .15s,color .15s}
.social-links .social-link:hover,.social-links .social-link:focus-visible{background:#007e3a;color:#fff}
.social-links .icon-social{width:22px;height:22px}
.social-link.button .icon-social{width:20px;height:20px}

/* Шапка: телефон и значки одной группой. На 601–1000 px телефон в шапке скрыт (как в макете) — группа тоже, контакты есть
   в мобильном каталоге и подвале; на телефоне группа занимает третью строку сетки поиска. */
.header-contact{display:flex;align-items:center;gap:14px;margin-left:auto}
.header-contact .header-social{flex-wrap:nowrap;gap:8px}
@media(max-width:1000px){.header-contact{display:none}}
@media(max-width:600px){
  .header-contact{display:flex;grid-row:3;grid-column:1/-1;justify-content:center;gap:16px;margin-left:0}
}

/* Мобильный каталог (диалог ≤900px): как мобильное меню старого сайта — «Колл-центр», телефон, часы и значки. */
.drawer-contacts{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin:0 0 20px;padding:18px 0 0;border-top:1px solid var(--retail-line,#e5eae4)}
.drawer-contacts strong{font-size:.875rem;letter-spacing:.04em;color:#526854}
.drawer-contacts .drawer-phone{display:inline-flex;align-items:center;gap:10px;min-height:44px;font-size:1.375rem;font-weight:750;line-height:1.3;color:#163a2b}
.drawer-contacts p{margin:0;font-size:.875rem;line-height:1.5;color:#566c4c}
.drawer-contacts .social-links{margin-top:6px}

/* Подвал: подписи «Написать нам» и «Мы в сети» и ряд значков (на старом сайте — «Мы в сети»). */
body#top .footer-contact .footer-label{margin:14px 0 4px;font-size:.875rem;line-height:1.5;color:#526854}
body#top .footer-contact h3+.footer-label{margin-top:0}
body#top .footer-contact .social-links{margin-top:8px}
body#top .footer-grid .social-links .social-link{display:inline-flex;margin:0;background:#fff;color:#006a31}
body#top .footer-grid .social-links .social-link:hover,body#top .footer-grid .social-links .social-link:focus-visible{background:#007e3a;color:#fff}

/* Главная, «Есть вопрос?»: значки под часами работы. */
.v3-help-intro .help-social{margin-top:16px}

/* /contact-us: «Основной магазин» тремя карточками, под ними — полоса «Напишите нам в мессенджере». */
.contact-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:19px}
.contact-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:28px;background:#fff;border:1px solid var(--retail-line,#e5eae4);border-radius:10px}
.contact-card .contact-card-icon{display:grid;place-items:center;width:48px;height:48px;margin-bottom:8px;border-radius:12px;background:#f0f6e8;color:#006a31}
.contact-card h3{margin:0;font-size:1.375rem;line-height:1.4}
.contact-card .contact-card-link{display:inline-flex;align-items:center;min-height:44px;font-size:1.25rem;font-weight:750;line-height:1.3;color:#006a31;overflow-wrap:anywhere}
.contact-card p,.contact-card address{margin:0;font-size:1rem;line-height:1.65;font-style:normal;color:#566c4c}
.contact-card .text-link{display:inline-flex;align-items:center;gap:6px;min-height:44px}
.contact-social{display:flex;align-items:center;justify-content:space-between;gap:32px;padding:32px;background:#f4f8ee;border-radius:12px}
.contact-social h2{margin:6px 0 8px;font-size:1.75rem;line-height:1.25}
.contact-social p{margin:0;font-size:1rem;line-height:1.65;color:#566c4c}
.contact-social-actions{display:flex;flex-wrap:wrap;gap:12px}
@media(max-width:900px){
  .contact-cards{grid-template-columns:1fr;gap:12px}
  .contact-card{padding:22px}
  .contact-social{flex-direction:column;align-items:flex-start;gap:20px;padding:24px}
  .contact-social h2{font-size:1.5rem}
  .contact-social-actions{width:100%}
  .contact-social-actions .button{flex:1 1 100%}
}

/* Карточка товара: «Спросить в WhatsApp» отдельной строкой под покупкой. */
.product-ask{margin-top:12px}
.product-ask .button{width:100%;justify-content:center}
@media(min-width:601px){.product-ask .button{width:auto}}

/* Быстрый заказ (T20): окно inquiry-dialog макета для «Заказать» в корзине и «Быстрый заказ» на карточке, та же форма на /checkout.
   Сводка заказа над формой, подпись про звонок менеджера, подтверждение в окне; на телефоне окно занимает весь экран. */
.quick-order-dialog{width:min(600px,calc(100% - 28px))}
.quick-order-dialog [hidden]{display:none}
.quick-order-summary{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 16px;margin-top:18px;padding:14px 16px;border-radius:8px;background:#f2f7eb;font-size:1rem;line-height:1.5;color:#193e2b}
.quick-order-summary>strong{flex:1 1 100%;font-weight:650}
.quick-order-dialog .inquiry-form{margin-top:18px}
.quick-order-form [hidden]{display:none}
.quick-order-note{display:flex;gap:10px;align-items:flex-start;margin:4px 0 0;font-size:1rem;line-height:1.5;font-weight:600;color:#1f5a2f}
.quick-order-note>.icon{flex-shrink:0;width:20px;height:20px;margin-top:2px;color:#007e3a}
.quick-order-form>.button{margin-top:16px}
.quick-order-form[aria-busy=true] [data-quick-order-submit]{opacity:.7;cursor:progress}
.quick-order-form .form-note a{text-decoration:underline;text-underline-offset:3px}
.quick-order-success{margin-top:18px}
.quick-order-success .button{margin-top:4px}
.checkout-form>.quick-order-form{margin-top:12px}
.purchase-row>.quick-order-button{gap:10px}
.purchase-row>.quick-order-button .icon{width:18px;height:18px}
.order-summary>[data-quick-order-open]{width:100%;justify-content:center}
[data-cart-ordered]:focus{outline:none}
[data-cart-ordered]>.icon{color:#007e3a}
@media(max-width:600px){
  body#top .quick-order-dialog{width:100%;max-width:100%;height:100%;height:100dvh;max-height:100%;max-height:100dvh;margin:0;inset:0;border-radius:0;padding:16px 16px calc(24px + env(safe-area-inset-bottom))}
  .quick-order-dialog .drawer-header{position:sticky;top:-16px;z-index:1;margin:-16px -16px 0;padding:16px;background:#fafcf7}
}

/* Содержимое старого сайта (T21): картинки разделов (плитки подразделов, /all-categories), иллюстрации и видео
   инфо-страниц («О компании», «Карьера»), блок «Свяжитесь с нами» значками, как на старых страницах. */
.catalog-index-heading>.catalog-index-thumb{width:64px;height:64px;flex:none;object-fit:contain;border-radius:8px;background:#fff}
.catalog-index-heading:has(>.catalog-index-thumb){flex-wrap:wrap}
.catalog-index-heading:has(>.catalog-index-thumb)>h2{overflow-wrap:anywhere}
.catalog-index-heading:has(>.catalog-index-thumb)>span{flex-basis:100%;padding-left:80px;margin-top:-10px}
.catalog-tile>.category-thumb{width:96px;height:96px;max-width:100%;object-fit:contain;border-radius:8px;background:#fff}
body#top .info-feature>span.info-feature-art{width:96px;height:96px;padding:10px;border-radius:12px;background:#fff}
.info-feature-art>img{width:100%;height:100%;object-fit:contain}
.video-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:19px;align-items:start}
.video-card{margin:0;display:flex;flex-direction:column;gap:10px;min-width:0}
.video-card iframe{display:block;width:100%;aspect-ratio:16/9;border:0;border-radius:12px;background:#10261a}
.video-card-short iframe{aspect-ratio:9/16;max-height:620px}
.video-card figcaption{font-size:1rem;line-height:1.5;color:#526854}
.video-card figcaption a{color:#006a31;text-decoration:underline;text-underline-offset:3px}
.contact-strip .social-links{margin:4px 0 14px}
@media(max-width:900px){.video-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.video-grid{grid-template-columns:1fr}.video-card-short iframe{max-height:520px}.catalog-tile>.category-thumb{width:72px;height:72px}}
