/* Home page special offers. All lettering uses the existing page fonts. */
.design-frame > .hero + .special-offers { margin-top: 36px; }
.special-offers { position: relative; color: #806558; font-family: "Montserrat", Arial, sans-serif; }
.special-offers__inner { width: var(--section-container); max-width: calc(100% - var(--section-gutter)); margin: 0 auto; }
.special-offers__head { display: flex; justify-content: space-between; gap: 32px; margin-bottom: 38px; }
.special-offers h2 { color: #ed0028; width: fit-content; margin: 0 0 14px; padding-bottom: 4px; border-bottom: 1px solid #d9bcb0; font-size: 14px; font-weight: 700; line-height: 1.2; text-transform: uppercase; }
.special-offers__intro { margin: 0; font-size: 18px; line-height: 1.3; }
.special-offers__motto { position: relative; flex: 0 0 auto; margin: 10px 60px 0 80px; font-size: 20px; font-style: italic; line-height: 1.35; }
.special-offers__motto::before, .special-offers__motto::after { position: absolute; top: 17px; width: 74px; height: 17px; border-top: 1px solid #ead8cf; border-radius: 50%; content: ""; }
.special-offers__motto::before { right: calc(100% + 18px); }
.special-offers__motto::after { left: calc(100% + 18px); transform: rotate(-18deg); width: 50px; }
.special-offers__grid { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6%; }
.special-offers__grid::before { position: absolute; left: calc((min(1468px, 100vw - var(--section-gutter)) - 100vw) / 2); top: 44px; width: 100vw; height: 110px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1487 110' preserveAspectRatio='none'%3E%3Cpath d='M0 105C100 28 155 12 258 54S381 76 461 35S532 16 622 46S750 79 829 35S962 23 1038 46S1154 44 1233 17S1378 47 1487 79' fill='none' stroke='%23ead8cf' stroke-width='2.5'/%3E%3C/svg%3E") center / 100% 100% no-repeat; pointer-events: none; content: ""; }
.special-offer { position: relative; display: flex; flex-direction: column; min-width: 0; }
.special-offer__media { position: relative; width: 242px; max-width: calc(100% - 28px); aspect-ratio: 1; margin: 0 auto 22px; }
.special-offer__photo { display: block; width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }
.special-offer__number { position: absolute; top: 12px; left: -40px; color: #947b69; font-size: 34px; font-style: italic; font-weight: 400; line-height: 1.2; }
.special-offer__icon { position: absolute; left: -27px; bottom: 14px; width: 32.23%; height: auto; border-radius: 50%; box-shadow: 0 5px 12px #51331f14; }
.special-offer:nth-child(4) .special-offer__icon { left: -35px; bottom: 12px; }
.special-offer__copy { flex: 1; min-height: 136px; }
.special-offer h3 { margin: 0 0 10px; color: #210c07; font-size: 22px; font-weight: 600; line-height: 1.25; }
.special-offer__copy p { margin: 0; color: #535962; font-size: 17px; line-height: 1.38; }
.special-offer__copy ul { margin: 0; padding-left: 20px; color: #535962; font-size: 15px; line-height: 1.5; }
.special-offer__copy li { padding-left: 5px; }
.special-offer__copy li::marker { color: #94735e; }
.special-offer__price { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 54px; margin-top: 0; padding: 10px 18px; border-radius: 12px; background: #fceeed; white-space: nowrap; }
.special-offer__price strong { color: #ed0028; font-size: 26px; font-weight: 600; line-height: 1.2; }
.special-offer__price del { color: #806558; font-size: 19px; font-weight: 400; line-height: 1.2; }
.special-offer__more { display: flex; align-items: center; gap: 14px; margin-top: 14px; color: #715143; font-size: 15px; line-height: 1.2; text-decoration: none; }
.special-offer__rule { flex: 1; height: 1px; background: #ead8cf; }
.special-offer__arrow { display: grid; place-items: center; flex: 0 0 44px; height: 44px; border: 1px solid #ed0028; border-radius: 50%; color: #ed0028; font-size: 30px; line-height: 1; transition: color .2s, background .2s; }
.special-offer__more:hover, .special-offer__more:focus-visible { color: #715143; }
.special-offer__more:hover > span:first-child, .special-offer__more:focus-visible > span:first-child { text-decoration: underline; text-underline-offset: 3px; }
.special-offer__more:hover .special-offer__arrow, .special-offer__more:focus-visible .special-offer__arrow { color: white; background: #ed0028; }
.special-offer__more:focus-visible { outline: 2px solid #c90027; outline-offset: 5px; border-radius: 4px; }
.special-offer-modal__items { margin: 0 0 24px; padding-left: 22px; color: var(--body); font-size: 16px; line-height: 1.6; }
.special-offer-modal .special-offer__price { justify-content: flex-start; gap: 24px; }
.special-offer-modal__consult { display: block; margin-top: 24px; padding: 16px 20px; border-radius: 10px; background: var(--red); color: white; font-size: 15px; font-weight: 600; text-align: center; text-decoration: none; }
.special-offer-modal__consult:hover, .special-offer-modal__consult:focus-visible { background: var(--dark-red); color: white; }
@media (min-width: 1200px) and (max-width: 1399px) {
  .special-offers__grid { gap: 4%; }
  .special-offer h3 { font-size: 20px; }
  .special-offer__price { padding-inline: 12px; }
  .special-offer__price strong { font-size: 23px; }
  .special-offer__price del { font-size: 17px; }
}
@media (max-width: 1199px) {
  .design-frame > .hero + .special-offers { margin-top: 26px; }
  .special-offers__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 38px 48px; }
  .special-offers__grid::before { display: none; }
  .special-offers__motto { margin-right: 0; font-size: 17px; }
  .special-offers__motto::before, .special-offers__motto::after { display: none; }
  .special-offer__copy { min-height: 140px; }
  .special-offer__price { justify-content: flex-start; gap: 24px; }
}
@media (max-width: 767px) {
  .special-offers__head { gap: 20px; }
  .special-offers__intro { font-size: 16px; }
  .special-offers__motto { display: none; }
  .special-offers__grid { gap: 32px 28px; }
  .special-offer__media { max-width: calc(100% - 40px); }
  .special-offer__number { left: -30px; font-size: 28px; }
  .special-offer__icon, .special-offer:nth-child(4) .special-offer__icon { left: -20px; bottom: 9px; }
  .special-offer h3 { font-size: 18px; }
  .special-offer__copy p { font-size: 15px; }
  .special-offer__copy ul { font-size: 14px; }
  .special-offer__copy { min-height: 156px; }
  .special-offer__price { padding: 12px 10px; gap: 10px; justify-content: space-between; }
  .special-offer__price strong { font-size: 20px; }
  .special-offer__price del { font-size: 15px; }
}
@media (max-width: 575px) {
  .design-frame > .hero + .special-offers { margin-top: 24px; }
  .special-offers__head { margin-bottom: 30px; }
  .special-offers__grid { grid-template-columns: minmax(0, 1fr); gap: 34px; }
  .special-offer__media { margin-bottom: 20px; }
  .special-offer__number { left: -35px; font-size: 32px; }
  .special-offer__icon, .special-offer:nth-child(4) .special-offer__icon { left: -27px; bottom: 14px; }
  .special-offer__copy { min-height: 0; margin-bottom: 20px; }
  .special-offer h3 { font-size: 22px; }
  .special-offer__copy p { font-size: 16px; }
  .special-offer__copy ul { font-size: 15px; }
  .special-offer__price { padding: 12px 20px; }
  .special-offer__price strong { font-size: 26px; }
  .special-offer__price del { font-size: 19px; }
  .special-offer__more { margin-top: 12px; }
}

.design-frame > .special-offers ~ .clinic-services { margin-top: 72px; }
@media (max-width: 1199px) { .design-frame > .special-offers ~ .clinic-services { margin-top: 52px; } }
@media (max-width: 575px) { .design-frame > .special-offers ~ .clinic-services { margin-top: 36px; } }
.special-offer__copy h3 span { white-space: nowrap; }
@media (min-width: 1200px) { .special-offer:nth-child(2) h3 { max-width: 270px; } }

.special-offer__amount { white-space: nowrap; }
.special-offer__icon { left: -11.16%; bottom: 5.78%; }
.special-offer:nth-child(4) .special-offer__icon { left: -14.46%; bottom: 4.96%; }
@media (max-width: 899px) { .special-offers__inner { max-width: calc(100% - 32px); } }

/* Compact home offers: 38% lower desktop section, 2026-10-14. */
.special-offers .special-offers__head { gap: 24px; margin-bottom: 10px; }
.special-offers h2 { margin-bottom: 6px; padding-bottom: 2px; font-size: 12px; }
.special-offers .special-offers__intro { font-size: 14px; line-height: 1.3; }
.special-offers .special-offers__motto { margin-top: 4px; font-size: 16px; line-height: 1.3; }
.special-offers .special-offers__grid { row-gap: 22px; }
.special-offers .special-offers__grid::before { top: 22px; height: 64px; }
.special-offers .special-offer__media { width: 140px; max-width: calc(100% - 40px); margin-bottom: 8px; }
.special-offers .special-offer__number { top: 6px; left: -30px; font-size: 23px; }
.special-offers .special-offer__copy { min-height: 0; margin-bottom: 6px; }
.special-offers .special-offer h3 { margin-bottom: 6px; font-size: 18px; line-height: 1.2; }
.special-offers .special-offer__copy p { font-size: 14px; line-height: 1.35; }
.special-offers .special-offer__copy ul { padding-left: 16px; font-size: 13px; line-height: 1.35; }
.special-offers .special-offer__copy li { padding-left: 2px; }
.special-offers .special-offer__price { justify-content: space-between; gap: 8px; min-height: 36px; padding: 5px 12px; border-radius: 8px; }
.special-offers .special-offer__price strong { font-size: 20px; }
.special-offers .special-offer__price del { font-size: 14px; }
.special-offers .special-offer__more { gap: 10px; margin-top: 6px; font-size: 13px; }
.special-offers .special-offer__arrow { flex-basis: 28px; height: 28px; font-size: 22px; }
@media (max-width: 575px) {
  .special-offers .special-offer__copy { margin-bottom: 12px; }
  .special-offers .special-offer__more { min-height: 36px; }
  .special-offers .special-offer__arrow { flex-basis: 36px; height: 36px; }
}
.special-offers .special-offer__media { width: 140.65px; }
@media (min-width: 1200px) and (max-width: 1399px) {
  .special-offers .special-offer__media { width: 145.70px; }
}
@media (min-width: 768px) and (max-width: 1199px) {
  .special-offers .special-offer__media { width: clamp(156.27px, calc(214.27px - 5.664vw), 170.77px); }
}
@media (min-width: 576px) and (max-width: 767px) {
  .special-offers .special-offer__media { width: clamp(137.04px, calc(35.32px + 17.66vw), 170.77px); }
}
@media (max-width: 575px) {
  .special-offers .special-offer__media { width: clamp(130.61px, calc(152.81px - 5.69vw), 134.59px); }
}


/* Draw the arrow independently of font metrics, centred inside each circle. */
.special-offers .special-offer__arrow {
  position: relative;
  display: block;
  font-size: 0;
  line-height: 0;
}
.special-offers .special-offer__arrow::before {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 14px;
  height: 1px;
  background: currentColor;
  transform: translate(-50%, -50%);
  content: "";
}
.special-offers .special-offer__arrow::after {
  position: absolute;
  top: 50%;
  left: calc(50% + 2px);
  box-sizing: border-box;
  width: 7px;
  height: 7px;
  border-top: 1px solid currentColor;
  border-right: 1px solid currentColor;
  transform: translate(-50%, -50%) rotate(45deg);
  content: "";
}
