/**
 * SvichkaVisk v2 — footer (BEM: .sv2-footer)
 * 4-column e-commerce grid: brand | info | contacts | partners
 */

#Footer,
.sv2-footer {
  --sv2-footer-pt: 1.5rem;
  --sv2-footer-pb: 1rem;
  --sv2-footer-col-gap: 1.875rem;
  --sv2-footer-item-gap: 0.75rem;
  --sv2-footer-title-mb: 1.25rem;
  --sv2-footer-bar-py: 0.5rem;
  --sv2-footer-inner-max: 75rem;
}

@media (min-width: 768px) {
  #Footer,
  .sv2-footer {
    --sv2-footer-pt: 2rem;
    --sv2-footer-bar-py: 0.625rem;
  }
}

/* ==========================================================================
   Block
   ========================================================================== */

.sv2-footer,
#Footer {
  position: relative;
  margin-top: auto;
}

.sv2-footer,
.sv2-footer__main,
#Footer .widgets_wrapper {
  background-color: var(--sv2-footer-bg);
}

.sv2-footer__main,
#Footer .widgets_wrapper {
  padding: var(--sv2-footer-pt) 0 var(--sv2-footer-pb);
}

/* ==========================================================================
   Grid container — 1 / 2 / 4 columns
   ========================================================================== */

.sv2-footer__inner,
#Footer.mfn-footer .widgets_wrapper > .container {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--sv2-footer-col-gap);
  align-items: start;
  width: 100%;
  max-width: var(--sv2-footer-inner-max);
  margin: 0 auto;
  padding-left: var(--sv2-gutter, 1rem);
  padding-right: var(--sv2-gutter, 1rem);
  box-sizing: border-box;
}

@media (min-width: 576px) {
  .sv2-footer__inner,
  #Footer.mfn-footer .widgets_wrapper > .container {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 992px) {
  .sv2-footer__inner,
  #Footer.mfn-footer .widgets_wrapper > .container {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

/* Legacy Betheme float columns inside grid */
.sv2-footer__inner > .column,
#Footer.mfn-footer .widgets_wrapper > .container > .column {
  float: none;
  width: auto;
  max-width: none;
  margin: 0;
  padding: 0;
}

/* ==========================================================================
   Column + unified titles
   ========================================================================== */

.sv2-footer__col {
  min-width: 0;
}

.sv2-footer__title,
.sv2-footer__widget .widgettitle,
.sv2-footer__widget h3,
.sv2-footer__widget h4,
.sv2-footer .widget .widgettitle,
.sv2-footer .widget h3,
.sv2-footer .widget h4,
#Footer.mfn-footer .wp-block-heading,
#Footer.mfn-footer .widgettitle,
#Footer.mfn-footer h4 {
  margin: 0 0 var(--sv2-footer-title-mb);
  color: var(--sv2-brown);
  font-size: 1.125rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  line-height: 1.3;
}

/* PHP title replaces widget heading */
.sv2-footer__col--has-title .widget :is(h3, h4, .widgettitle, .wp-block-heading),
.sv2-footer__col--has-title .sv2-footer__widget :is(h3, h4, .widgettitle, .wp-block-heading) {
  display: none;
}

.sv2-footer__widget,
.sv2-footer .widget,
#Footer.mfn-footer .widget {
  margin: 0;
  padding: 0;
  color: var(--sv2-text);
}

.sv2-footer__widget::after,
.sv2-footer .widget::after {
  display: none;
}

.sv2-footer__widget p {
  margin: 0 0 0.75rem;
  color: var(--sv2-text-muted);
  line-height: 1.6;
}

.sv2-footer__widget p:last-child {
  margin-bottom: 0;
}

/* ==========================================================================
   Links
   ========================================================================== */

#Footer.sv2-footer a:not(.button, .icon_bar, .mfn-btn, .mfn-option-btn, .sv2-footer__social-link, .sv2-footer__logo),
.sv2-footer a:not(.button, .icon_bar, .mfn-btn, .mfn-option-btn, .sv2-footer__social-link, .sv2-footer__logo),
#Footer.mfn-footer a:not(.button, .icon_bar, .mfn-btn, .mfn-option-btn) {
  color: var(--sv2-text);
  text-decoration: none;
  transition: color 0.3s ease;
}

#Footer.sv2-footer a:not(.button, .icon_bar, .mfn-btn, .mfn-option-btn, .sv2-footer__social-link, .sv2-footer__logo):hover,
#Footer.sv2-footer a:not(.button, .icon_bar, .mfn-btn, .mfn-option-btn, .sv2-footer__social-link, .sv2-footer__logo):focus-visible,
.sv2-footer a:not(.button, .icon_bar, .mfn-btn, .mfn-option-btn, .sv2-footer__social-link, .sv2-footer__logo):hover,
.sv2-footer a:not(.button, .icon_bar, .mfn-btn, .mfn-option-btn, .sv2-footer__social-link, .sv2-footer__logo):focus-visible,
#Footer.mfn-footer a:not(.button, .icon_bar, .mfn-btn, .mfn-option-btn):hover,
#Footer.mfn-footer a:not(.button, .icon_bar, .mfn-btn, .mfn-option-btn):focus-visible {
  color: var(--sv2-primary);
}

/* ==========================================================================
   Column 1 — brand + social
   ========================================================================== */

.sv2-footer__col--brand {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.25rem;
}

.sv2-footer__logo {
  display: inline-flex;
  align-items: center;
  line-height: 0;
}

.sv2-footer__logo-img {
  display: block;
  width: auto;
  max-width: 160px;
  height: auto;
  max-height: 52px;
  object-fit: contain;
}

.sv2-footer__social-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.9375rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.sv2-footer__social-item {
  margin: 0;
  padding: 0;
}

.sv2-footer__social-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.75rem;
  min-height: 2.75rem;
  padding: 0.5rem;
  color: var(--sv2-brown);
  border-radius: var(--sv2-radius-pill);
  transition: color 0.3s ease, background 0.3s ease;
}

.sv2-footer__social-link:hover,
.sv2-footer__social-link:focus-visible {
  color: var(--sv2-primary);
  background: rgba(226, 165, 46, 0.14);
}

.sv2-footer__social-icon {
  display: block;
  flex-shrink: 0;
}

/* ==========================================================================
   Column 2 — info links
   ========================================================================== */

.sv2-footer__links,
.sv2-footer__nav,
#Footer.mfn-footer .widgets_wrapper ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.sv2-footer__item,
.sv2-footer__link-item,
.sv2-footer__nav li,
#Footer.mfn-footer .widgets_wrapper ul li {
  margin: 0 0 var(--sv2-footer-item-gap);
  padding: 0;
  line-height: 1.4;
}

.sv2-footer__item:last-child,
.sv2-footer__link-item:last-child,
.sv2-footer__nav li:last-child,
#Footer.mfn-footer .widgets_wrapper ul li:last-child {
  margin-bottom: 0;
}

.sv2-footer__nav li a,
#Footer.mfn-footer .widgets_wrapper ul li a:not(.sv2-footer__contact-link) {
  display: inline-block;
  padding: 0.125rem 0;
  color: var(--sv2-text);
  font-weight: 500;
  line-height: 1.4;
}

#Footer.mfn-footer .widgets_wrapper ul li .icon-dot {
  display: none;
}

#Footer.mfn-footer .widget_nav_menu ul li::after,
#Footer.mfn-footer .widget_nav_menu ul li:after,
#Footer.mfn-footer .widget_archive ul li::after,
#Footer.mfn-footer .widget_archive ul li:after {
  display: none;
  content: none;
}

/* ==========================================================================
   Column 3 — contacts
   ========================================================================== */

.sv2-footer__contacts {
  display: flex;
  flex-direction: column;
  gap: var(--sv2-footer-item-gap);
  margin: 0;
  padding: 0;
  list-style: none;
}

.sv2-footer__contacts .sv2-footer__contact-item,
.sv2-footer__contacts .sv2-footer__item {
  margin: 0;
}

.sv2-footer__contact-link {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: auto;
  padding: 0.125rem 0;
  color: var(--sv2-text);
  font-weight: 600;
  line-height: 1.35;
}

#Footer.mfn-footer .widgets_wrapper ul.sv2-footer__contacts li a.sv2-footer__contact-link {
  display: flex;
  align-items: center;
  gap: 8px;
}

@media (max-width: 575px) {
  .sv2-footer__col--contact {
    text-align: center;
  }

  .sv2-footer__col--contact .sv2-footer__title {
    width: 100%;
    text-align: center;
  }

  .sv2-footer__contacts {
    align-items: center;
    width: 100%;
  }

  .sv2-footer__contact-link {
    min-height: 2.75rem;
    padding: 0.25rem 0;
  }
}

.sv2-footer__contact-icon {
  display: block;
  flex-shrink: 0;
  color: var(--sv2-brown);
  transition: color 0.3s ease;
}

.sv2-footer__contact-link > span {
  line-height: 1.35;
}

.sv2-footer__contact-link:hover .sv2-footer__contact-icon,
.sv2-footer__contact-link:focus-visible .sv2-footer__contact-icon {
  color: var(--sv2-primary);
}

.sv2-footer__col--contact .textwidget:has(.sv2-footer__contacts) > p,
.sv2-footer__col--contact .widget:has(.sv2-footer__contacts) > p {
  display: none;
}

/* ==========================================================================
   Column 4 — partners / payment logos
   ========================================================================== */

.sv2-footer__partners,
.sv2-footer__col--partners .textwidget {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
}

.sv2-footer__partners-logos {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.625rem;
}

.sv2-footer__partners-logos img {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: 30px;
  margin: 0;
  object-fit: contain;
}

@media (max-width: 575px) {
  .sv2-footer__col--partners {
    text-align: center;
  }

  .sv2-footer__col--partners .sv2-footer__title {
    width: 100%;
    text-align: center;
  }

  .sv2-footer__partners,
  .sv2-footer__col--partners .textwidget {
    align-items: center;
    width: 100%;
  }

  .sv2-footer__partners-logos {
    justify-content: center;
    width: 100%;
  }
}

/* ==========================================================================
   Bottom bar
   ========================================================================== */

.sv2-footer__bar,
#Footer.mfn-footer .footer_copy {
  border-top: 1px solid rgba(0, 0, 0, 0.1);
  background: rgba(255, 255, 255, 0.12);
}

.sv2-footer__bar-inner {
  max-width: var(--sv2-footer-inner-max);
  margin: 0 auto;
}

.sv2-footer__bar .one,
#Footer.mfn-footer .footer_copy .one,
#Footer.mfn-footer .footer_copy .column.one {
  min-height: 0;
  margin: 0;
  padding: var(--sv2-footer-bar-py) 0 calc(var(--sv2-footer-bar-py) + env(safe-area-inset-bottom, 0));
}

.sv2-footer__bar-content,
#Footer.mfn-footer .footer_copy .mcb-column-inner {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 0.5rem;
  min-height: 0;
  margin: 0;
  padding: 0;
  text-align: left;
}

.sv2-footer__copyright,
#Footer.mfn-footer .footer_copy .copyright {
  flex: 1 1 auto;
  float: none;
  margin: 0;
  padding: 0;
  color: var(--sv2-text-muted);
  font-size: 0.8125rem;
  line-height: 1.35;
}

.sv2-footer__copyright a,
#Footer.mfn-footer .footer_copy .copyright a {
  color: var(--sv2-brown);
  font-weight: 700;
}

.sv2-footer__copyright a[href*="sawyer.marketing"],
#Footer.mfn-footer .footer_copy .copyright a[href*="sawyer.marketing"] {
  display: none;
}

/* ==========================================================================
   Floating back to top (fixed viewport — not in footer bar)
   ========================================================================== */

#back_to_top.sv2-back-to-top {
  position: fixed;
  right: 1.25rem;
  bottom: calc(1.25rem + env(safe-area-inset-bottom, 0));
  z-index: 9001;
  float: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  min-width: 2.75rem;
  min-height: 2.75rem;
  margin: 0;
  padding: 0;
  border: 1px solid var(--sv2-border-strong);
  border-radius: var(--sv2-radius-pill);
  background: var(--sv2-card);
  color: var(--sv2-brown);
  box-shadow: var(--sv2-shadow-sm);
  font-size: 0.875rem;
  line-height: 1;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: transform 0.2s ease, background 0.2s ease, color 0.2s ease, opacity 0.3s ease, visibility 0.3s ease;
}

#back_to_top.sv2-back-to-top.is-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

#back_to_top.sv2-back-to-top:hover,
#back_to_top.sv2-back-to-top:focus-visible {
  background: linear-gradient(135deg, var(--sv2-primary), var(--sv2-primary-soft));
  color: var(--sv2-on-primary);
  border-color: transparent;
}

/* Avoid overlap with Betheme popup contact button */
body:has(#popup_contact) #back_to_top.sv2-back-to-top {
  right: 4.75rem;
}

@media (min-width: 768px) {
  #back_to_top.sv2-back-to-top {
    right: 4.6875rem;
    bottom: 1.25rem;
  }

  body:has(#popup_contact) #back_to_top.sv2-back-to-top {
    right: 6.25rem;
  }
}

/* ==========================================================================
   Betheme overrides (mfn-dynamic padding, widget bullets)
   ========================================================================== */

#Footer.mfn-footer .widgets_wrapper,
#Footer .widgets_wrapper {
  padding-top: var(--sv2-footer-pt);
  padding-bottom: var(--sv2-footer-pb);
}

#Footer.mfn-footer .widget_nav_menu ul,
#Footer.mfn-footer .widget_meta ul,
#Footer.mfn-footer .widget_pages ul,
#Footer.mfn-footer .widget_archive ul,
#Footer.mfn-footer .sv2-footer__nav {
  list-style: none;
  margin: 0;
  padding: 0;
  background: none;
}

#Footer.mfn-footer .wp-block-paragraph:empty,
#Footer.mfn-footer p:empty,
#Footer.mfn-footer .wp-block-group__inner-container:empty {
  display: none;
  margin: 0;
}

#Footer.mfn-footer .wp-block-group:not(:has(h4, .sv2-footer__contacts, .sv2-footer__partners, img, a, ul)) {
  display: none;
}

/* Footer CTA strip */
.sv2-footer .footer_action {
  background: rgba(108, 66, 27, 0.08);
  border-bottom: 1px solid var(--sv2-border);
}

.sv2-footer .footer_action .mcb-column-inner {
  padding: var(--sv2-space-lg) 0;
  text-align: center;
  color: var(--sv2-brown);
  font-size: 1rem;
  line-height: 1.6;
}

/* ==========================================================================
   Motion
   ========================================================================== */

@media (hover: hover) and (pointer: fine) {
  #back_to_top.sv2-back-to-top:hover {
    transform: translateY(-2px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .sv2-footer a,
  .sv2-footer__contact-link,
  .sv2-footer__contact-icon,
  .sv2-footer__social-link,
  #back_to_top.sv2-back-to-top {
    transition: none;
  }
}
