.fc-location-offer {
  box-sizing: border-box;
  padding: 76px max(4vw, calc((100vw - 1280px) / 2)) !important;
  background: #faf8f5;
  color: #302f2a;
}
.fc-location-offer *, .fc-location-offer *::before, .fc-location-offer *::after { box-sizing: border-box; }
.fc-location-offer__inner { max-width: 1280px; margin-inline: auto; }
.fc-location-offer__heading { max-width: 720px; margin: 0 auto 30px; text-align: center; }
.fc-location-offer__eyebrow { margin: 0 0 20px; font: 500 12px/1.4 'Outfit', Arial, sans-serif; letter-spacing: .16em; text-transform: uppercase; }
.fc-location-offer__heading h2, .fc-location-offer__dialog h2 { margin: 0 0 32px; font: 400 clamp(32px, 3.3vw, 48px)/1.15 'Wulkan Display', Georgia, serif; letter-spacing: -.035em; }
.fc-location-offer__heading h2 em, .fc-location-offer__dialog h2 em, .fc-location-offer__caption em { color: #302f2a; font-weight: 400; }
.fc-location-offer__intro { margin: 0; color: #68645e; font: 300 16px/1.4 'Outfit', Arial, sans-serif; letter-spacing: .04em; }
.fc-location-offer__cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 25px; }
.fc-location-offer__card { min-width: 0; text-align: center; }
.fc-location-offer__visual { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); background: #ead7cd; }
.fc-location-offer__image { display: block; grid-column: 1/-1; width: 100%; aspect-ratio: 1.48; object-fit: cover; }
.fc-location-offer__image--half, .fc-location-offer__image--second { grid-column: auto; aspect-ratio: .74; }
.fc-location-offer__image--second:first-child { grid-column: 1/-1; aspect-ratio: 1.48; }
.fc-location-offer__caption { display: flex; flex-direction: column; justify-content: center; gap: 12px; grid-column: 1/-1; min-height: 142px; padding: 18px 24px; background: #e9ccc8; text-align: left; }
.fc-location-offer__caption strong { font: 400 clamp(29px, 2.5vw, 36px)/1.05 'Wulkan Display', Georgia, serif; letter-spacing: -.035em; }
.fc-location-offer__caption span { font: 300 11px/1.4 'Outfit', Arial, sans-serif; letter-spacing: .16em; text-transform: uppercase; }
.fc-location-offer__card h3 { margin: 30px 0 24px; font: 400 28px/1.2 'Wulkan Display', Georgia, serif; letter-spacing: -.025em; }
.fc-location-offer__card > p { max-width: 345px; margin: 0 auto; color: #68645e; font: 300 16px/1.4 'Outfit', Arial, sans-serif; letter-spacing: .04em; }
.fc-location-offer__text-link { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 44px; margin: 18px 0 0; padding: 0; border: 0; background: none; color: #302f2a; font: 400 14px/1.4 'Outfit', Arial, sans-serif; text-decoration: none; cursor: pointer; }
.fc-location-offer__link-label { border-bottom: 1px solid currentColor; }
.fc-location-offer__text-link svg, .fc-location-offer__action svg { width: 20px; height: 20px; flex: none; }
.fc-location-offer__text-link:hover, .fc-location-offer__text-link:focus { color: #8c5158; }
.fc-location-offer__text-link:focus-visible, .fc-location-offer__action a:focus-visible { outline: 2px solid #302f2a; outline-offset: 4px; }
.fc-location-offer__action { margin: 35px 0 16px; text-align: center; }
.fc-location-offer__action a, .fc-location-offer__dialog-return { display: inline-flex; align-items: center; justify-content: center; gap: 22px; min-height: 58px; padding: 17px 28px; border: 0; border-radius: 50px; background: #f2b7be; color: #302f2a; font: 500 14px/1.4 'Outfit', Arial, sans-serif; letter-spacing: .035em; text-decoration: none; text-transform: uppercase; cursor: pointer; }
.fc-location-offer__action a:hover, .fc-location-offer__dialog-return:hover { background: #f5c6cb; color: #302f2a; text-decoration: none; }
.fc-location-offer__dialog { position: relative; width: min(560px, calc(100vw - 40px)); max-width: none; padding: 42px 40px 40px; border: 0; border-radius: 16px; background: #faf8f5; color: #302f2a; box-shadow: 0 16px 64px #0003; text-align: center; }
.fc-location-offer__dialog::backdrop { background: #302f2a99; backdrop-filter: blur(5px); }
.fc-location-offer__dialog .fc-location-offer__eyebrow { margin-bottom: 30px; }
.fc-location-offer__dialog h2 { margin-bottom: 28px; font-size: 32px; line-height: 1.08; }
.fc-location-offer__dialog > p:not(.fc-location-offer__eyebrow) { max-width: 440px; margin: 0 auto 16px; color: #68645e; font: 300 16px/1.5 'Outfit', Arial, sans-serif; }
.fc-location-offer__dialog form:last-child { margin-top: 28px; }
.fc-location-offer__close { position: absolute; top: 19px; right: 24px; padding: 0 4px; border: 0; background: none; color: #302f2a; font: 30px/1 Arial, sans-serif; cursor: pointer; }
@media (max-width: 900px) and (min-width: 761px) {
  .fc-location-offer__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 24px; }
  .fc-location-offer__card:nth-child(3) { grid-column: 1/-1; justify-self: center; width: calc((100% - 24px)/2); }
  .fc-location-offer__card h3 { font-size: 24px; }
}
@media (max-width: 760px) {
  .fc-location-offer { padding: 54px 23px !important; }
  .fc-location-offer__heading { margin-bottom: 30px; }
  .fc-location-offer__heading h2 { font-size: 32px; }
  .fc-location-offer__cards { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .fc-location-offer__image { aspect-ratio: 2.05; }
  .fc-location-offer__image--half, .fc-location-offer__image--second { aspect-ratio: 1.02; }
  .fc-location-offer__caption { padding: 18px 24px; }
  .fc-location-offer__caption strong { font-size: 32px; }
  .fc-location-offer__card h3 { margin: 30px 0 24px; font-size: 24px; }
  .fc-location-offer__action { margin: 35px 0 16px; }
  .fc-location-offer__dialog { padding: 38px 22px 30px; }
  .fc-location-offer__dialog h2 { font-size: 28px; }
}
@media (max-width: 380px) {
  .fc-location-offer { padding-inline: 18px !important; }
}
