/*
Theme Name: Sul Soldas
Theme URI: https://sulsoldaseabrasivos.com.br/
Author: Sul Soldas
Description: Tema institucional próprio da Sul Soldas e Abrasivos.
Version: 1.0.0
Text Domain: sulsoldas
*/

/* === 1. Tokens de design === */

:root {
  --ss-black: #0a0a0a;
  --ss-charcoal: #232323;
  --ss-steel: #6b6b6b;
  --ss-light: #e6e6e6;
  --ss-off-white: #f7f7f5;
  --ss-red: #e31b23;
  --ss-red-dark: #bd1219;
  --ss-blue: #002b5c;
  --ss-success: #1b7f3b;
}

/* === 2. Base === */

body {
  background: var(--ss-off-white);
  color: var(--ss-charcoal);
  font-family: "Montserrat", Arial, sans-serif;
}

/* === 3. Cabeçalho === */

.site-header {
  background: var(--ss-off-white);
  border-bottom: 1px solid var(--ss-light);
  position: relative;
  transition: box-shadow .25s ease;
  z-index: 1020;
}

.site-header .navbar {
  padding: 1rem 0;
  transition: padding .25s ease;
}

.site-brand img {
  display: block;
  height: auto;
  transition: width .25s ease;
  width: clamp(245px, 20vw, 390px);
}

.navbar-toggler {
  border: 1px solid var(--ss-red);
  border-radius: 0;
  padding: .45rem .55rem;
}

.navbar-toggler:hover,
.navbar-toggler:active {
  background-color: rgba(227, 27, 35, .08);
}

.navbar-toggler:focus {
  box-shadow: 0 0 0 .2rem rgba(227, 27, 35, .2);
}

.navbar-toggler-icon {
  background-image:
    linear-gradient(var(--ss-red), var(--ss-red)),
    linear-gradient(var(--ss-red), var(--ss-red)),
    linear-gradient(var(--ss-red), var(--ss-red));
  background-position: center 5px, center center, center calc(100% - 5px);
  background-repeat: no-repeat;
  background-size: 1.35rem 2px;
  display: block;
  height: 1.5rem;
  width: 1.5rem;
}

.site-nav .nav-link {
  color: var(--ss-black);
  font-size: .84rem;
  font-weight: 700;
  letter-spacing: .04em;
  padding: .75rem .85rem;
  position: relative;
  text-transform: uppercase;
  transition: padding .25s ease, color .2s ease;
}

@media (min-width: 992px) {
  .site-compact-nav {
    background: var(--ss-off-white);
    border-bottom: 1px solid var(--ss-light);
    left: 0;
    position: fixed;
    right: 0;
    top: 0;
    transform: translateY(-105%);
    transition: transform .25s ease, box-shadow .25s ease;
    z-index: 1030;
  }

  .site-compact-nav.is-visible {
    box-shadow: 0 5px 16px rgba(10, 10, 10, .12);
    transform: translateY(0);
  }

  .site-compact-nav .container { min-height: 70px; }

  .site-compact-nav__brand img {
    display: block;
    height: auto;
    width: clamp(185px, 15vw, 275px);
  }

  .site-compact-nav .site-nav .nav-link {
    padding-bottom: .5rem;
    padding-top: .5rem;
  }

  .site-compact-nav .btn-brand {
    padding: .6rem 1rem;
  }

  body.admin-bar .site-compact-nav { top: 32px; }
}

.site-nav .nav-link:hover,
.site-nav .nav-link:focus {
  color: var(--ss-red);
}

.site-nav .nav-link.active { color: var(--ss-black); }

.site-nav .nav-link.active::after {
  background: var(--ss-red);
  bottom: .42rem;
  content: "";
  height: 3px;
  left: .85rem;
  position: absolute;
  right: .85rem;
}

@media (max-width: 991.98px) {
  .site-header {
    left: 0;
    position: fixed;
    right: 0;
  }

  .site-header .navbar {
    padding: .55rem 0;
  }

  #main-content {
    padding-top: var(--ss-header-h, 96px);
  }

  .site-brand img { width: 160px; }

  .site-nav {
    border-top: 1px solid var(--ss-light);
    margin-top: .8rem;
    padding-top: .65rem;
  }

  .navbar-collapse {
    max-height: calc(100vh - var(--ss-header-h, 96px));
    overflow-y: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  .site-header,
  .site-compact-nav,
  .site-header .navbar,
  .site-brand img,
  .site-nav .nav-link {
    transition: none;
  }
}

@media (max-width: 782px) {
  body.admin-bar .site-header { top: 46px; }
}

@media (min-width: 783px) and (max-width: 991.98px) {
  body.admin-bar .site-header { top: 32px; }
}

/* === 4. Botões === */

.btn-brand {
  background-color: var(--ss-red);
  border-color: var(--ss-red);
  color: #fff;
  border-radius: 0;
  font-size: .86rem;
  font-weight: 700;
  padding: .78rem 1.2rem;
}

.btn-brand:hover,
.btn-brand:focus,
.btn-brand:active {
  background-color: var(--ss-red-dark);
  border-color: var(--ss-red-dark);
  color: #fff;
}

/* === 5. Home === */

.home-hero {
  --ss-home-hero-min-height: clamp(34rem, 44vw, 43rem);
  --scm-banner-overlay: linear-gradient(100deg, rgba(10, 10, 10, .96) 0%, rgba(35, 35, 35, .9) 54%, rgba(0, 43, 92, .82) 100%);
  background-color: var(--ss-charcoal);
  background-image: var(--scm-banner-overlay), var(--scm-banner-image, none);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  color: #fff;
  min-height: var(--ss-home-hero-min-height);
}

.home-hero__slide {
  align-items: center;
  background-color: var(--ss-charcoal);
  background-image: var(--scm-banner-overlay, linear-gradient(100deg, rgba(10, 10, 10, .96) 0%, rgba(35, 35, 35, .9) 54%, rgba(0, 43, 92, .82) 100%)), var(--scm-banner-image, none);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  color: #fff;
  display: flex;
  min-height: var(--ss-home-hero-min-height);
}

.home-kicker {
  color: var(--ss-red);
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .14em;
}

.home-hero h1,
.home-hero__title {
  font-size: clamp(2.25rem, 5vw, 4.75rem);
  font-weight: 700;
  letter-spacing: -.04em;
  max-width: 850px;
}

.home-hero p {
  color: #e6e6e6;
  max-width: 620px;
}

.home-hero .btn {
  align-items: center;
  display: inline-flex;
  justify-content: center;
  line-height: 1.2;
  min-height: 2.9rem;
}

.home-about {
  background: var(--ss-light);
}

.home-about__inner {
  margin: 0 auto;
  max-width: 60rem;
}

.home-about__title {
  color: var(--ss-black);
  font-size: clamp(1.75rem, 3.2vw, 2.75rem);
  font-weight: 700;
  letter-spacing: -.02em;
  padding-top: 1.75rem;
  position: relative;
}

.home-about__title::before {
  background: var(--ss-red);
  content: "";
  height: 3px;
  left: 50%;
  position: absolute;
  top: 0;
  transform: translateX(-50%);
  width: 3rem;
}

.home-about__text {
  color: var(--ss-charcoal);
  font-size: 1.0625rem;
  line-height: 1.8;
  margin: 0 auto;
  max-width: 62ch;
}

.home-about__text strong {
  color: var(--ss-black);
  font-weight: 700;
}

.home-contact {
  background: #fff;
  border-top: 1px solid var(--ss-light);
}

.home-contact__title {
  color: var(--ss-black);
  font-size: clamp(1.5rem, 2.6vw, 2.25rem);
  font-weight: 700;
  letter-spacing: -.02em;
  padding-top: 1.5rem;
  position: relative;
}

.home-contact__title::before {
  background: var(--ss-red);
  content: "";
  height: 3px;
  left: 0;
  position: absolute;
  top: 0;
  width: 3rem;
}

.home-contact__text {
  color: var(--ss-charcoal);
  font-size: 1rem;
  line-height: 1.75;
  max-width: 34ch;
}

.home-contact__panel {
  background: var(--ss-off-white);
  border: 1px solid var(--ss-light);
  padding: clamp(1.25rem, 3vw, 2.5rem);
}

.home-contact__feedback {
  background: #fff;
  border-left: 3px solid var(--ss-charcoal);
  color: var(--ss-charcoal);
  font-size: .9rem;
  padding: .85rem 1rem;
}

.home-contact__feedback--erro {
  background: rgba(227, 27, 35, .07);
  border-left-color: var(--ss-red);
}

.home-contact__panel .form-control {
  background: #fff;
  border: 1px solid #9aa7b5;
  border-radius: 0;
  box-shadow: 0 1px 2px rgba(0, 43, 92, .06);
  color: var(--ss-charcoal);
  font-size: .95rem;
  padding: .8rem 1rem;
  transition: border-color .15s ease, box-shadow .15s ease;
}

.home-contact__panel .form-control::placeholder {
  color: var(--ss-steel);
}

.home-contact__panel .form-control:hover {
  border-color: var(--ss-blue);
}

.home-contact__panel .form-control:focus {
  border-color: var(--ss-red);
  box-shadow: 0 0 0 .2rem rgba(227, 27, 35, .15);
}

.home-contact__panel textarea.form-control {
  min-height: 9rem;
  resize: vertical;
}

.home-contact__panel .btn-brand {
  min-width: 10rem;
}

/* === 6. Páginas internas === */

.page-hero {
  background: linear-gradient(110deg, var(--ss-black) 0%, #111827 58%, var(--ss-blue) 100%);
  color: #fff;
}

.page-hero__title {
  color: #fff;
  font-size: clamp(2rem, 4vw, 3.25rem);
  font-weight: 700;
  letter-spacing: -.03em;
  padding-top: 1.5rem;
  position: relative;
}

.page-hero__title::before {
  background: var(--ss-red);
  content: "";
  height: 3px;
  left: 0;
  position: absolute;
  top: 0;
  width: 3rem;
}

.page-hero--centered .page-hero__title::before {
  left: 50%;
  transform: translateX(-50%);
}

.page-about {
  background: #fff;
}

.page-about__media {
  align-items: center;
  aspect-ratio: 4 / 3;
  background: var(--ss-light);
  border: 1px dashed var(--ss-steel);
  color: var(--ss-steel);
  display: flex;
  font-size: .78rem;
  font-weight: 700;
  justify-content: center;
  letter-spacing: .12em;
  min-height: 260px;
  padding: 1rem;
  text-align: center;
  text-transform: uppercase;
}

.page-about__media--image {
  background: var(--ss-black);
  border: 0;
  display: block;
  overflow: hidden;
  padding: 0;
}

.page-about__image {
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.page-about__caption {
  color: var(--ss-steel);
  font-size: .82rem;
  margin: .75rem 0 0;
}

.page-about__content h2 {
  color: var(--ss-blue);
  font-size: clamp(1.5rem, 2.6vw, 2.25rem);
  font-weight: 700;
  letter-spacing: -.02em;
  margin-bottom: 1.5rem;
}

.page-about__content > :first-child {
  margin-top: 0;
}

.page-about__content p {
  color: var(--ss-charcoal);
  font-size: 1rem;
  line-height: 1.8;
  margin-bottom: 1.25rem;
}

.page-about__content strong {
  color: var(--ss-black);
  font-weight: 700;
}

.page-about__content h3 {
  color: var(--ss-black);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .14em;
  margin-top: 2rem;
  text-transform: uppercase;
}

.page-about__content ul,
.page-about__content ol {
  display: grid;
  gap: .5rem;
  list-style: none;
  margin: 1rem 0 0;
  padding: 0;
}

.page-about__content li {
  border-left: 2px solid var(--ss-red);
  color: var(--ss-charcoal);
  font-weight: 600;
  padding-left: .75rem;
}

.page-about__content a {
  color: var(--ss-red);
  font-weight: 700;
  text-decoration-thickness: 2px;
  text-underline-offset: .18em;
}

.page-about__content a:hover,
.page-about__content a:focus {
  color: var(--ss-red-dark);
}

.page-about__content blockquote {
  border-left: 3px solid var(--ss-red);
  color: var(--ss-charcoal);
  font-size: 1.1rem;
  font-style: italic;
  margin: 1.75rem 0;
  padding: .25rem 0 .25rem 1.25rem;
}

.page-about__content .wp-block-button {
  margin-top: 1.75rem;
}

.page-about__content .wp-block-button__link {
  background: var(--ss-red);
  border-radius: 0;
  color: #fff;
  font-weight: 700;
  padding: .78rem 1.2rem;
  text-decoration: none;
}

.page-about__content .wp-block-button__link:hover,
.page-about__content .wp-block-button__link:focus {
  background: var(--ss-red-dark);
  color: #fff;
}

/* === 7. Catálogo de produtos === */

.products-hero { background: linear-gradient(110deg, var(--ss-black) 0%, #111827 58%, var(--ss-blue) 100%); color: #fff; }
.products-catalog { background: #fff; }

.products-hero__eyebrow {
  color: var(--ss-red);
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .13em;
  padding-top: 1.5rem;
  position: relative;
}

.products-hero__eyebrow::before {
  background: var(--ss-red);
  content: "";
  height: 3px;
  left: 50%;
  position: absolute;
  top: 0;
  transform: translateX(-50%);
  width: 3rem;
}

.products-hero__title {
  color: #fff;
  font-size: clamp(2.25rem, 4vw, 3.5rem);
  font-weight: 700;
  letter-spacing: -.03em;
}

.products-hero__intro {
  color: var(--ss-light);
  max-width: 660px;
}

.product-filter {
  align-items: center;
  display: flex;
  gap: .9rem;
  justify-content: center;
  max-width: 560px;
}

.product-catalog__toolbar {
  align-items: center;
  display: flex;
  gap: 2rem;
  justify-content: space-between;
}

.product-catalog__pdf {
  align-items: center;
  color: var(--ss-blue);
  display: inline-flex;
  flex: 0 0 auto;
  font-size: .83rem;
  gap: .7rem;
  line-height: 1.25;
  text-decoration: none;
}

.product-catalog__pdf svg { color: var(--ss-red); height: 2rem; width: 2rem; }
.product-catalog__pdf strong, .product-catalog__pdf small { display: block; }
.product-catalog__pdf strong { font-weight: 800; }
.product-catalog__pdf small { color: var(--ss-steel); margin-top: .15rem; }
.product-catalog__pdf:hover, .product-catalog__pdf:focus { color: var(--ss-red); text-decoration: underline; text-underline-offset: .25em; }

.product-filter__label {
  color: var(--ss-charcoal);
  flex: 0 0 auto;
  font-size: .9rem;
  font-weight: 700;
  margin: 0;
}

.product-filter .form-select {
  border-color: var(--ss-steel);
  border-radius: 0;
  color: var(--ss-charcoal);
  min-height: 48px;
  width: min(100%, 340px);
}

@media (max-width: 575.98px) {
  .product-catalog__toolbar { align-items: stretch; flex-direction: column; gap: 1.5rem; }
  .product-filter { align-items: stretch; flex-direction: column; gap: .5rem; max-width: 340px; }
  .product-filter .form-select { width: 100%; }
}

.product-filter .form-select:focus {
  border-color: var(--ss-red);
  box-shadow: 0 0 0 .2rem rgba(227, 27, 35, .15);
}

.product-card {
  background: #fff;
  border: 1px solid var(--ss-light);
  transition: border-color .2s ease, transform .2s ease;
}

.product-card:hover {
  border-color: var(--ss-red);
  transform: translateY(-3px);
}

.product-card__image {
  align-items: center;
  aspect-ratio: 1 / 1;
  background: var(--ss-off-white);
  display: flex;
  justify-content: center;
  overflow: hidden;
  padding: 1rem;
}

.product-card__img {
  height: 100%;
  object-fit: contain;
  transition: transform .25s ease;
  width: 100%;
}

.product-card:hover .product-card__img {
  transform: scale(1.04);
}

.product-card__body {
  min-height: 150px;
  padding: 1.25rem;
}

.product-card__title {
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.35;
  margin: 0 0 1.25rem;
}

.product-card__title a {
  color: var(--ss-blue);
  text-decoration: none;
}

.product-card__title a:hover,
.product-card__title a:focus {
  color: var(--ss-red);
}

.btn-outline-brand {
  background: transparent;
  border: 1px solid var(--ss-red);
  border-radius: 0;
  color: var(--ss-red);
  font-size: .8rem;
  font-weight: 700;
  padding: .55rem .85rem;
}

.btn-outline-brand:hover,
.btn-outline-brand:focus {
  background: var(--ss-red);
  color: #fff;
}

.products-pagination .page-numbers {
  display: flex;
  gap: .3rem;
  justify-content: center;
  list-style: none;
  margin: 0;
  padding: 0;
}

.products-pagination .page-numbers li {
  margin: 0;
}

.products-pagination .page-numbers a,
.products-pagination .page-numbers span {
  border: 1px solid var(--ss-light);
  color: var(--ss-charcoal);
  display: inline-block;
  min-width: 38px;
  padding: .5rem .65rem;
  text-align: center;
  text-decoration: none;
}

.products-pagination .page-numbers .current,
.products-pagination .page-numbers a:hover,
.products-pagination .page-numbers a:focus {
  background: var(--ss-red);
  border-color: var(--ss-red);
  color: #fff;
}

.products-pagination .page-numbers .dots {
  border-color: transparent;
}

.products-empty {
  background: var(--ss-off-white);
  border: 1px solid var(--ss-light);
  color: var(--ss-steel);
}

/* === 8. Produto individual === */

.product-detail {
  background: #fff;
}

.product-breadcrumb {
  color: var(--ss-steel);
  font-size: .85rem;
}

.product-breadcrumb a {
  color: var(--ss-charcoal);
  text-decoration: none;
}

.product-breadcrumb a:hover,
.product-breadcrumb a:focus {
  color: var(--ss-red);
}

.product-breadcrumb span + span,
.product-breadcrumb a + span {
  margin-left: .45rem;
}

.product-breadcrumb span:not(:last-child) {
  margin-right: .45rem;
}

.product-gallery__main {
  align-items: center;
  aspect-ratio: 1 / 1;
  background: var(--ss-off-white);
  border: 1px solid var(--ss-light);
  display: flex;
  justify-content: center;
  padding: 2rem;
}

.product-gallery__main-image {
  height: 100%;
  object-fit: contain;
  width: 100%;
}

.product-gallery__thumbs {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
}

.product-gallery__thumb {
  align-items: center;
  aspect-ratio: 1 / 1;
  background: #fff;
  border: 1px solid var(--ss-light);
  display: flex;
  justify-content: center;
  overflow: hidden;
  padding: .35rem;
  transition: border-color .2s ease;
  width: 82px;
}

.product-gallery__thumb:hover,
.product-gallery__thumb:focus,
.product-gallery__thumb.is-active {
  border-color: var(--ss-red);
}

.product-gallery__thumb img {
  height: 100%;
  object-fit: contain;
  width: 100%;
}

.product-detail__title,
.related-products__title {
  color: var(--ss-blue);
  font-size: clamp(2rem, 3.5vw, 3.25rem);
  font-weight: 700;
  letter-spacing: -.03em;
}

.product-detail__categories {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}

.product-detail__categories > span {
  color: var(--ss-steel);
  font-size: .85rem;
}

.product-detail__categories a {
  background: var(--ss-off-white);
  color: var(--ss-charcoal);
  font-size: .8rem;
  font-weight: 700;
  padding: .45rem .65rem;
  text-decoration: none;
}

.product-detail__categories a:hover,
.product-detail__categories a:focus {
  background: var(--ss-red);
  color: #fff;
}

.product-detail__summary {
  color: var(--ss-charcoal);
  line-height: 1.8;
}

.product-detail__summary p:last-child {
  margin-bottom: 0;
}

.related-products {
  background: var(--ss-off-white);
  border-top: 1px solid var(--ss-light);
}

.related-products__title {
  font-size: clamp(1.6rem, 2.5vw, 2.25rem);
}

@media (max-width: 575.98px) {
  .product-gallery__main {
    padding: 1.25rem;
  }

  .product-gallery__thumb {
    width: 66px;
  }
}

/* === 9. Rodapé === */

.site-footer {
  background: var(--ss-black);
  color: #fff;
}

.site-footer__main {
  padding: 4.5rem 0 4rem;
}

.site-footer__col + .site-footer__col {
  border-top: 1px solid rgba(230, 230, 230, .16);
  margin-top: 2.75rem;
  padding-top: 2.75rem;
}

.site-footer__brand {
  display: inline-block;
}

.site-footer__brand img {
  display: block;
  height: auto;
  width: clamp(200px, 22vw, 300px);
}

.site-footer__tagline {
  color: #cfcfcf;
  font-size: .95rem;
  line-height: 1.65;
  margin: 1.5rem 0 0;
  max-width: 34ch;
}

.site-footer__title {
  color: #9b9b9b;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .14em;
  margin: 0 0 .5rem;
  text-transform: uppercase;
}

.site-footer__nav-list,
.site-footer__contact-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.site-footer__nav-list a {
  align-items: center;
  color: var(--ss-light);
  display: inline-flex;
  font-size: .82rem;
  font-weight: 600;
  letter-spacing: .06em;
  min-height: 2.75rem;
  text-decoration: none;
  text-transform: uppercase;
  transition: color .15s ease;
}

.site-footer__nav-list a:hover,
.site-footer__nav-list a:focus {
  color: #fff;
  text-decoration: underline;
  text-decoration-color: var(--ss-red);
  text-decoration-thickness: 2px;
  text-underline-offset: .3em;
}

.site-footer__address {
  font-style: normal;
  margin: 0;
}

.site-footer__contact-list {
  display: grid;
  gap: 1rem;
}

.site-footer__contact-item {
  align-items: flex-start;
  color: #cfcfcf;
  display: flex;
  font-size: .95rem;
  gap: .75rem;
  line-height: 1.6;
}

.site-footer__icon {
  color: var(--ss-red);
  flex: 0 0 auto;
  margin-top: .2rem;
}

.site-footer__icon svg {
  display: block;
  height: 1.125rem;
  width: 1.125rem;
}

.site-footer__link {
  color: var(--ss-light);
  text-decoration: none;
  transition: color .15s ease, border-color .15s ease;
}

.site-footer__link:hover,
.site-footer__link:focus {
  color: #fff;
  text-decoration: underline;
  text-decoration-color: var(--ss-red);
  text-decoration-thickness: 2px;
  text-underline-offset: .3em;
}

.site-footer__social-list {
  display: flex;
  gap: .75rem;
  list-style: none;
  margin: 1.5rem 0 0;
  padding: 0;
}

.site-footer__social-link {
  align-items: center;
  border: 1px solid rgba(230, 230, 230, .24);
  color: var(--ss-light);
  display: inline-flex;
  height: 2.75rem;
  justify-content: center;
  text-decoration: none;
  transition: border-color .15s ease, color .15s ease;
  width: 2.75rem;
}

.site-footer__social-link:hover,
.site-footer__social-link:focus {
  border-color: var(--ss-red);
  color: #fff;
}

.site-footer__social-link svg {
  display: block;
  height: 1.125rem;
  width: 1.125rem;
}

.site-footer .site-footer__link:focus-visible,
.site-footer .site-footer__social-link:focus-visible {
  outline: 2px solid var(--ss-red);
  outline-offset: 2px;
}

.site-footer__bottom {
  background: var(--ss-charcoal);
  border-top: 1px solid rgba(230, 230, 230, .12);
  padding: 1.75rem 0;
}

.site-footer__copy,
.site-footer__claim {
  color: #cfcfcf;
  font-size: .82rem;
  line-height: 1.6;
}

.site-footer__claim {
  color: var(--ss-light);
  font-weight: 600;
  letter-spacing: .02em;
}

@media (min-width: 992px) {
  .site-footer__col + .site-footer__col {
    border-left: 1px solid rgba(230, 230, 230, .16);
    border-top: 0;
    margin-top: 0;
    padding-left: 3rem;
    padding-top: 0;
  }
}

@media (max-width: 991.98px) {
  .site-footer__main { padding: 3.5rem 0 3rem; }
}

/* Página de contato */
.contact-page-hero { background: linear-gradient(110deg, var(--ss-black) 0%, #111827 58%, var(--ss-blue) 100%); color: #fff; }
.contact-page-hero__eyebrow { color: var(--ss-red); font-size: .75rem; font-weight: 800; letter-spacing: .13em; padding-top: 1.5rem; position: relative; }
.contact-page-hero__eyebrow::before { background: var(--ss-red); content: ""; height: 3px; left: 50%; position: absolute; top: 0; transform: translateX(-50%); width: 3rem; }
.contact-page-hero__title { color: #fff; font-weight: 800; }
.contact-page__title, .contact-page__form-title { color: var(--ss-blue); font-weight: 800; }
.contact-page-hero__title { font-size: clamp(2.2rem, 4vw, 3.5rem); }
.contact-page-hero__intro { color: var(--ss-light); margin-inline: auto; max-width: 42rem; }
.contact-page__text { color: var(--ss-gray); line-height: 1.7; }

.contact-details { border-top: 1px solid var(--ss-light); list-style: none; margin: 0; padding: 0; }
.contact-details__item { align-items: flex-start; border-bottom: 1px solid var(--ss-light); display: flex; gap: 1rem; padding: 1.25rem 0; }
.contact-details__icon { color: var(--ss-red); flex: 0 0 auto; margin-top: .1rem; }
.contact-details__icon svg { display: block; height: 1.4rem; width: 1.4rem; }
.contact-details__label { color: var(--ss-gray); display: block; font-size: .72rem; font-weight: 800; letter-spacing: .1em; margin-bottom: .25rem; text-transform: uppercase; }
.contact-details__item a { color: var(--ss-black); line-height: 1.6; text-decoration: none; }
.contact-details__item a:hover, .contact-details__item a:focus { color: var(--ss-red); text-decoration: underline; }
.contact-details__item address { color: var(--ss-black); font-style: normal; line-height: 1.6; margin: 0; }

.contact-page__socials { padding-top: .25rem; }
.contact-page__social-link { align-items: center; background: var(--ss-black); color: #fff; display: inline-flex; font-size: .85rem; font-weight: 700; gap: .55rem; margin-right: .5rem; padding: .75rem 1rem; text-decoration: none; transition: background-color .15s ease; }
.contact-page__social-link:hover, .contact-page__social-link:focus { background: var(--ss-red); color: #fff; }
.contact-page__social-link svg { height: 1.1rem; width: 1.1rem; }
.contact-page__form-panel { height: 100%; }
.contact-page__form-title { font-size: 1.55rem; }

.contact-map__link { color: var(--ss-blue); font-size: .9rem; font-weight: 700; text-decoration-color: var(--ss-red); text-decoration-thickness: 2px; text-underline-offset: .3em; }
.contact-map__link:hover, .contact-map__link:focus { color: var(--ss-red); }
.contact-map { background: #eef2f6; padding-top: 3rem; }
.contact-map__frame { border: 1px solid var(--ss-light); height: min(28rem, 70vw); overflow: hidden; }
.contact-map__frame iframe { border: 0; display: block; height: 100%; width: 100%; }

@media (max-width: 575.98px) {
  .contact-page__social-link { margin-bottom: .5rem; }
  .contact-map__frame { height: 21rem; }
}

/* === 10. Modal de contato === */

.sulsoldas-contato-modal .modal-content {
  border: 0;
  border-radius: 0;
  box-shadow: 0 1.5rem 3rem rgba(10, 10, 10, .25);
}

.sulsoldas-contato-modal .modal-body {
  padding: clamp(1.75rem, 4vw, 2.5rem);
}

.sulsoldas-contato-modal__spinner {
  border-width: .25rem;
  color: var(--ss-red);
  height: 3rem;
  width: 3rem;
}

.sulsoldas-contato-modal__text {
  color: var(--ss-charcoal);
  font-size: 1.15rem;
  font-weight: 600;
  margin-top: 1.25rem;
}

.sulsoldas-contato-modal__message {
  color: var(--ss-charcoal);
  font-size: 1.1rem;
  line-height: 1.6;
}

.sulsoldas-contato-modal__result--sucesso .sulsoldas-contato-modal__message {
  color: var(--ss-success);
  font-weight: 700;
}

.sulsoldas-contato-modal__result--erro .sulsoldas-contato-modal__message {
  color: var(--ss-red-dark);
}

/* === 11. Carrossel da Home === */

.home-hero--carousel {
  min-height: 0;
  padding: 0;
}

.home-hero--carousel,
.home-hero-swiper,
.home-hero-swiper .swiper-wrapper {
  min-height: var(--ss-home-hero-min-height);
}

.home-hero-swiper {
  width: 100%;
}

.home-hero-swiper .swiper-pagination {
  bottom: .85rem;
}

.home-hero-swiper .swiper-pagination-bullet {
  background: #fff;
  opacity: .5;
}

.home-hero-swiper .swiper-pagination-bullet-active {
  background: var(--ss-red);
  opacity: 1;
}

.home-hero-swiper .swiper-button-prev,
.home-hero-swiper .swiper-button-next {
  background: transparent;
  border: 0;
  color: #fff;
  height: 2.75rem;
  margin-top: -1.375rem;
  width: 2.75rem;
}

.home-hero-swiper .swiper-button-prev::after,
.home-hero-swiper .swiper-button-next::after {
  font-size: 1.5rem;
  font-weight: 700;
}

.home-hero-swiper .swiper-button-prev:focus-visible,
.home-hero-swiper .swiper-button-next:focus-visible,
.home-hero-swiper .swiper-pagination-bullet:focus-visible {
  outline: 2px solid var(--ss-red);
  outline-offset: 2px;
}

@media (max-width: 767.98px) {
  .home-hero-swiper .swiper-button-prev,
  .home-hero-swiper .swiper-button-next {
    height: 2.25rem;
    margin-top: -1.125rem;
    width: 2.25rem;
  }

  .home-hero-swiper .swiper-button-prev::after,
  .home-hero-swiper .swiper-button-next::after {
    font-size: 1.15rem;
  }
}
