.uvi-footer {
  --uvi-purple: #4e1c88;
  --uvi-purple-dark: #3f126f;
  --uvi-gold: #d3a54b;
  --uvi-ink: #451b78;
  --uvi-paper: #f6f2eb;
  box-sizing: border-box;
  width: 100%;
  padding: 30px 18px 18px;
  overflow: hidden;
  color: var(--uvi-ink);
  font-family: Montserrat, Arial, sans-serif;
  background-color: #f3eee8;
  background-image: url("footer-background.jpg");
  background-repeat: no-repeat;
  background-position: center top;
  background-size: cover;
}

.uvi-footer *, .uvi-footer *::before, .uvi-footer *::after { box-sizing: border-box; }
.uvi-footer a,
.uvi-footer a:visited { color: var(--uvi-ink) !important; text-decoration: none !important; }
.uvi-footer__shell { width: min(1620px, 100%); margin: 0 auto; }

.uvi-footer__top {
  display: grid;
  grid-template-columns: minmax(300px, 460px) 1fr minmax(330px, 485px);
  gap: 38px;
  align-items: center;
  padding: 0 30px 16px;
}

.uvi-footer__rating-card,
.uvi-footer__cta-card {
  min-height: 156px;
  display: flex;
  align-items: center;
  gap: 28px;
  padding: 24px 38px;
  background: rgba(255,255,255,.9);
  border: 1px solid rgba(211,165,75,.55);
  border-radius: 15px;
  box-shadow: 0 3px 12px rgba(61,33,15,.07);
}

.uvi-footer__rating-card img { width: 78px; height: 78px; object-fit: contain; }
.uvi-footer__rating-copy { display: grid; gap: 7px; color: var(--uvi-ink) !important; font-family: Montserrat, Arial, sans-serif !important; font-size: 18px; font-style: normal !important; }
.uvi-footer__rating-copy strong { display: flex; align-items: center; gap: 12px; font-size: 31px; line-height: 1; }
.uvi-footer__rating-copy small { font-size: 14px; font-weight: 600; }
.uvi-footer__stars { color: var(--uvi-gold); font-size: 27px; letter-spacing: 1px; white-space: nowrap; }

.uvi-footer__brand { display: flex; flex-direction: column; align-items: center; text-align: center; }
.uvi-footer__brand img { width: 88px; height: 88px; object-fit: contain; margin-bottom: 2px; }
.uvi-footer__brand strong { font-family: Georgia, serif; font-size: clamp(34px, 3vw, 52px); letter-spacing: 2px; line-height: 1.1; }
.uvi-footer__brand span { position: relative; margin-top: 5px; font-family: Georgia, serif; font-size: 19px; }
.uvi-footer__brand span::before, .uvi-footer__brand span::after { content: ''; display: inline-block; width: 38px; height: 2px; margin: 0 13px 5px; background: var(--uvi-gold); }

.uvi-footer__cta-icon { flex: 0 0 62px; width: 62px; height: 62px; display: grid; place-items: center; color: white; border-radius: 50%; background: linear-gradient(145deg, #e5c177, #c8902f); }
.uvi-footer__cta-icon svg { width: 32px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.uvi-footer__cta-card > div { flex: 1; }
.uvi-footer__cta-card strong { display: block; max-width: 270px; margin-bottom: 16px; font-size: 16px; line-height: 1.45; }
.uvi-footer__appointment { width: 100%; max-width: 265px; padding: 13px 20px; color: white; font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; border: 0; border-radius: 30px; background: linear-gradient(90deg, var(--uvi-purple-dark), #6a2ba0); transition: transform .2s, box-shadow .2s; }
.uvi-footer__appointment:hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(77,24,132,.22); }
.uvi-footer__appointment span { float: right; font-size: 20px; line-height: .8; }

.uvi-footer__main {
  position: relative;
  display: grid;
  grid-template-columns: 1.35fr .88fr 1.2fr .95fr 1.51fr;
  min-height: 405px;
  padding: 28px 30px 30px;
  border: 2px solid rgba(255,255,255,.9);
  border-radius: 38px 38px 0 0;
  background: rgba(247,243,237,.68);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.9);
}

.uvi-footer__column { min-width: 0; padding: 0 34px; border-right: 1px solid rgba(185,155,104,.28); }
.uvi-footer__column:first-child { padding-left: 0; }
.uvi-footer__column:last-child { padding-right: 0; border-right: 0; }
.uvi-footer h2,
.uvi-footer .uvi-footer__column h2 {
  display: flex !important;
  align-items: center !important;
  gap: 14px;
  margin: 0 0 22px !important;
  padding: 0 !important;
  color: var(--uvi-ink) !important;
  font-family: Montserrat, Arial, sans-serif !important;
  font-size: 18px !important;
  line-height: 1.2 !important;
  font-style: normal !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  text-transform: uppercase !important;
}
.uvi-footer h2 svg { flex: 0 0 31px; width: 31px; height: 31px; fill: none; stroke: var(--uvi-gold); stroke-width: 1.4; stroke-linejoin: round; }
.uvi-footer h2 span,
.uvi-footer .uvi-footer__column h2 span { color: var(--uvi-ink) !important; font-family: Montserrat, Arial, sans-serif !important; font-size: 18px !important; line-height: 1.2 !important; font-style: normal !important; font-weight: 800 !important; }

.uvi-footer__post-list { display: grid; gap: 17px; }
.uvi-footer__post-card { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 15px; min-height: 104px; padding: 10px; background: white; border-radius: 11px; box-shadow: 0 3px 8px rgba(45,28,13,.15); }
.uvi-footer__post-image { display: block; overflow: hidden; border-radius: 8px; background: #eee8df; }
.uvi-footer__post-image img { display: block; width: 100%; height: 84px; object-fit: cover; }
.uvi-footer__post-card > div { display: flex; flex-direction: column; justify-content: center; gap: 9px; min-width: 0; }
.uvi-footer__post-title { display: -webkit-box; overflow: hidden; color: var(--uvi-ink) !important; font-family: Montserrat, Arial, sans-serif !important; font-size: 14px !important; line-height: 1.3 !important; font-style: normal !important; font-weight: 500 !important; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
.uvi-footer__post-card time { font-size: 11px; }
.uvi-footer__outline-button { display: block; width: max-content; margin: 20px auto 0; padding: 8px 25px; border: 1px solid var(--uvi-purple); border-radius: 24px; font-size: 12px; }
.uvi-footer__outline-button span { margin-left: 8px; }

.uvi-footer__links { list-style: none; margin: 0; padding: 0; }
.uvi-footer__links li { margin: 0; padding: 0; }
.uvi-footer__links a { display: flex; justify-content: space-between; gap: 12px; padding: 5px 0; color: var(--uvi-ink) !important; font-family: Montserrat, Arial, sans-serif !important; font-size: 13px !important; line-height: 1.25 !important; font-style: normal !important; font-weight: 700 !important; text-transform: uppercase; }
.uvi-footer__links a:hover, .uvi-footer__contact a:hover { color: #7d47a6; }
.uvi-footer__links a span { font-size: 20px; line-height: .65; }

.uvi-footer__column:nth-child(4) { padding-left: 20px; padding-right: 26px; }
.uvi-footer__column:nth-child(4) h2 { margin-bottom: 34px !important; }
.uvi-footer__contact { display: grid; grid-template-columns: 29px 1fr; gap: 15px; align-items: start; margin-bottom: 26px; color: var(--uvi-ink) !important; font-family: Montserrat, Arial, sans-serif !important; font-size: 13px !important; line-height: 1.55 !important; font-style: normal !important; }
.uvi-footer__contact i { display: block; color: var(--uvi-purple); }
.uvi-footer__contact svg, .uvi-footer__instagram svg, .uvi-footer__hours svg { width: 28px; height: 28px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.uvi-footer .uvi-footer__contact a,
.uvi-footer .uvi-footer__contact a:visited { color: var(--uvi-ink) !important; overflow-wrap: anywhere; }
.uvi-footer__contact--phone { align-items: center; }
.uvi-footer__contact--phone a { font-weight: 800 !important; }
.uvi-footer__instagram { display: inline-flex; margin: -2px 0 0 0; color: var(--uvi-purple) !important; }
.uvi-footer__instagram svg { width: 31px; height: 31px; }
.uvi-footer__instagram svg .fill { fill: currentColor; stroke: none; }

.uvi-footer__map { height: 220px; overflow: hidden; border-radius: 10px; box-shadow: 0 3px 10px rgba(32,19,9,.2); background: #e8e3dc; }
.uvi-footer__map iframe { display: block; width: 100%; height: 100%; border: 0; }
.uvi-footer__hours { display: grid; grid-template-columns: 30px 1fr; gap: 14px; margin-top: 18px; }
.uvi-footer__hours i { color: var(--uvi-purple); }
.uvi-footer__hours strong { display: block; margin: 0 0 7px; font-size: 17px; }
.uvi-footer__hours span { display: block; font-size: 13px; line-height: 1.7; }

.uvi-footer__bottom { display: flex; justify-content: space-between; align-items: center; gap: 30px; min-height: 70px; padding: 18px 48px; color: white; border-radius: 0 0 35px 35px; background: linear-gradient(90deg, #4b1884, #351064 55%, #551889); font-size: 12px; }
.uvi-footer__bottom > div { display: flex; align-items: center; gap: 38px; }
.uvi-footer__bottom a,
.uvi-footer__bottom a:visited { padding-left: 38px; color: #fff !important; border-left: 1px solid rgba(255,255,255,.5); }

@media (max-width: 1250px) {
  .uvi-footer__top { grid-template-columns: 1fr 1fr; }
  .uvi-footer__brand { grid-column: 1 / -1; grid-row: 1; }
  .uvi-footer__main { grid-template-columns: 1.2fr .8fr 1fr; }
  .uvi-footer__column:nth-child(3) { border-right: 0; }
  .uvi-footer__column:nth-child(4), .uvi-footer__column:nth-child(5) { margin-top: 32px; padding-top: 28px; border-top: 1px solid rgba(185,155,104,.28); }
  .uvi-footer__column:nth-child(4) { grid-column: 1 / 2; padding-left: 0; }
  .uvi-footer__column:nth-child(5) { grid-column: 2 / 4; border-right: 0; }
}

@media (max-width: 767px) {
  .uvi-footer { padding: 20px 10px 12px; }
  .uvi-footer__top { grid-template-columns: 1fr; gap: 14px; padding: 0 0 16px; }
  .uvi-footer__brand { grid-column: auto; grid-row: auto; padding: 10px 0; }
  .uvi-footer__brand img { width: 66px; height: 66px; }
  .uvi-footer__brand strong { font-size: 36px; }
  .uvi-footer__brand span { font-size: 14px; }
  .uvi-footer__brand span::before, .uvi-footer__brand span::after { width: 18px; margin-inline: 7px; }
  .uvi-footer__rating-card, .uvi-footer__cta-card { min-height: 128px; padding: 20px; gap: 18px; }
  .uvi-footer__rating-card img { width: 62px; height: 62px; }
  .uvi-footer__rating-copy strong { font-size: 25px; }
  .uvi-footer__stars { font-size: 19px; }
  .uvi-footer__cta-icon { flex-basis: 54px; width: 54px; height: 54px; }
  .uvi-footer__main { display: block; padding: 25px 18px; border-radius: 25px 25px 0 0; }
  .uvi-footer__column, .uvi-footer__column:first-child, .uvi-footer__column:last-child,
  .uvi-footer__column:nth-child(4), .uvi-footer__column:nth-child(5) { margin: 0; padding: 24px 0; border: 0; border-bottom: 1px solid rgba(185,155,104,.32); }
  .uvi-footer__column:first-child { padding-top: 0; }
  .uvi-footer__column:last-child { padding-bottom: 0; border-bottom: 0; }
  .uvi-footer__post-card { grid-template-columns: 105px 1fr; }
  .uvi-footer__map { height: 220px; }
  .uvi-footer__bottom { display: grid; justify-content: center; text-align: center; padding: 22px 18px; border-radius: 0 0 25px 25px; }
  .uvi-footer__bottom > div { display: grid; gap: 10px; }
  .uvi-footer__bottom a { padding: 0; border: 0; }
}

