@charset "utf-8";
@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@800&display=swap");

/* Hero */
.hero {
  position: relative;
  padding-top: calc(
    var(--header-height) + clamp(0rem, calc(15 / 1920 * 100vw), 15rem)
  );
  overflow-x: clip;
  background: #fff;
  color: #fff;

  .hero-video-wrap {
    position: relative;
    z-index: 2;
    width: calc(100% - clamp(50rem, calc(76 / 1920 * 100vw), 76rem));
    height: calc(
      97dvh -
        calc(var(--header-height) + clamp(0rem, calc(15 / 1920 * 100vw), 15rem))
    );
    margin-left: clamp(50rem, calc(76 / 1920 * 100vw), 76rem);
    overflow: hidden;
    background: #000;
  }

  .hero-visual {
    position: absolute;
    inset: 0;
    z-index: 0;
    height: 100%;
    overflow: hidden;
    iframe {
      position: absolute;
      pointer-events: none;
      inset: 0;
      width: auto;
      border: 0;
      aspect-ratio: 16 / 9;
      -o-object-fit: cover;
         object-fit: cover;
      -o-object-position: center center;
         object-position: center center;
      top: 50%;
      transform: translateY(-50%);
      @media (width < 768px) {
            left: -60%;
                height: 100%;
      }
    }
    &::after {
      position: absolute;
      inset: 0;
      z-index: 1;
      pointer-events: none;
      content: "";
      background:
        linear-gradient(
          90deg,
          rgba(0, 0, 0, 0.42) 0%,
          rgba(0, 0, 0, 0.28) 24%,
          rgba(0, 0, 0, 0.12) 52%,
          rgba(0, 0, 0, 0) 78%
        ),
        linear-gradient(
          180deg,
          rgba(0, 0, 0, 0.08) 0%,
          rgba(0, 0, 0, 0) 35%,
          rgba(0, 0, 0, 0.1) 100%
        );
    }
  }

  .hero-video {
    display: block;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
    -o-object-position: center;
       object-position: center;
    pointer-events: none;
  }

  .hero-content {
    position: absolute;
    top: 43%;
    left: clamp(50rem, calc(124 / 1920 * 100vw), 124rem);
    z-index: 2;
    width: min(760rem, calc(100% - 260rem));
    transform: translateY(-48%);
    color: #fff;
  }

  .hero-eyebrow {
    margin-bottom: clamp(14rem, calc(26 / 1920 * 100vw), 26rem);
    font: 800 clamp(24rem, calc(32 / 1920 * 100vw), var(--font-size-32)) / 1.3
      var(--font-sans);
    letter-spacing: -0.04em;
    color: #fff;
  }

  .hero-title {
    font: 800 clamp(40rem, calc(54 / 1920 * 100vw), var(--font-size-54)) / 1.24
      var(--font-sans);
    color: #fff;
  }

  .hero-arrows {
    position: absolute;
    top: 77%;
    right: clamp(20rem, calc(76 / 1920 * 100vw), 76rem);
    z-index: 5;
    display: flex;
    align-items: center;
    transform: translateY(-50%);
  }

  .hero-arrow {
    position: relative;
    display: block;
    width: clamp(54rem, calc(100 / 1920 * 100vw), 100rem);
    aspect-ratio: 1;
    border: 0;
    background: rgba(0, 31, 63, 0.32);
    color: #fff;
    cursor: pointer;
    transition:
      background-color 0.28s ease,
      box-shadow 0.28s ease,
      scale 0.28s ease;

    &::before {
      position: absolute;
      inset: 0;
      width: clamp(16rem, calc(25 / 1920 * 100vw), 25rem);
      aspect-ratio: 1;
      margin: auto;
      border: solid currentColor;
      border-width: 0 3rem 3rem 0;
      content: "";
      transition: opacity 0.28s ease;
    }

    &:focus-visible {
      outline: 2rem solid rgba(255, 255, 255, 0.85);
      outline-offset: -6rem;
    }

    &:active {
      scale: 0.98;
    }

    @media (any-hover: hover) {
      &:hover {
        scale: 1.035;
        background: rgba(0, 31, 63, 0.48);
        box-shadow: 0 14rem 30rem rgba(0, 0, 0, 0.16);
      }

      &:hover::before {
        opacity: 0.86;
      }
    }
  }

  .hero-nav-prev {
    margin-top: clamp(0rem, calc(98 / 1920 * 100vw), 98rem);

    &::before {
      transform: rotate(135deg);
      translate: 4rem 0;
    }
  }

  .hero-nav-next {
    background: #dc4240;

    &::before {
      transform: rotate(-45deg);
      translate: -4rem 0;
    }

    @media (any-hover: hover) {
      &:hover {
        background: #c93634;
      }
    }
  }

  .hero-info {
    position: relative;
    z-index: 3;
    width: min(89.25vw, 1703rem);
    height: clamp(180rem, calc(296 / 1920 * 100vw), 296rem);
    margin-top: 0;
    overflow: hidden;
    border-bottom-right-radius: clamp(74rem, calc(150 / 1920 * 100vw), 150rem);
    background: #dc4240;
  }

  .hero-info-inner {
    position: relative;
    z-index: 2;
    display: grid;
    align-content: center;
    gap: clamp(18rem, calc(24 / 1920 * 100vw), 24rem);
    height: 100%;
    padding-inline: clamp(24rem, calc(200 / 1920 * 100vw), 200rem)
      clamp(32rem, calc(320 / 1920 * 100vw), 320rem);
    margin-top: clamp(0rem, calc(26 / 1920 * 100vw), 26rem);
  }

  .hero-info-row {
    display: flex;
    align-items: center;
    gap: clamp(32rem, calc(47 / 1920 * 100vw), 47rem);
    font-family: var(--font-sans);
    color: #fff;
  }

  .hero-info-label {
    display: inline-flex;
    align-items: center;
    gap: clamp(10rem, calc(16 / 1920 * 100vw), 16rem);
    min-width: clamp(96rem, calc(116 / 1920 * 100vw), 116rem);
    font-size: clamp(16rem, calc(25 / 1920 * 100vw), var(--font-size-25));
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -0.03em;
    color: #fff;

    svg {
      flex-shrink: 0;
      width: clamp(16rem, calc(24 / 1920 * 100vw), 24rem);
      height: auto;
    }
  }

  .hero-info-tel {
    font-size: clamp(20rem, calc(26 / 1920 * 100vw), var(--font-size-26));
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: -0.05em;
    color: #fff;
    transition: opacity 0.25s ease;

    &:focus-visible {
      outline: 2rem solid rgba(255, 255, 255, 0.8);
      outline-offset: 4rem;
    }

    @media (any-hover: hover) {
      &:hover {
        opacity: 0.78;
      }
    }
  }

  .hero-info-time {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0 clamp(24rem, calc(80 / 1920 * 100vw), 80rem);
    font-size: clamp(13rem, calc(16 / 1920 * 100vw), var(--font-size-16));
    font-weight: 400;
    line-height: 1.55;
    color: #fff;

    span + span {
      position: relative;

      &::before {
        position: absolute;
        top: 50%;
        left: clamp(-40rem, calc(-23 / 1920 * 100vw), -23rem);
        width: 1px;
        height: 12rem;
        background: rgba(255, 255, 255, 0.45);
        transform: translateY(-50%);
        content: "";
      }
    }

    b {
      margin-right: 9rem;
      font-weight: 900;
      color: #fff;
    }
  }

  .hero-info-watermark {
    position: absolute;
    right: clamp(24rem, calc(115 / 1920 * 100vw), 115rem);
    bottom: clamp(-32rem, calc(-32 / 1920 * 100vw), -22rem);
    z-index: 1;
    pointer-events: none;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;

    :is(img, svg) {
      display: block;
      width: clamp(100rem, calc(235 / 1920 * 100vw), 235rem);
      height: auto;
    }
  }

  @media (width < 768px) {
    padding-top: var(--header-height);
    overflow: hidden;

    .hero-video-wrap {
      width: calc(100% - clamp(20rem, calc(20 / 375 * 100vw), 24rem));
      height: clamp(440rem, calc(450 / 375 * 100vw), 520rem);
      margin-left: clamp(20rem, calc(20 / 375 * 100vw), 24rem);
    }

    .hero-content {
      top: auto;
      right: 24rem;
      bottom: 58rem;
      left: 24rem;
      width: auto;
      transform: none;
    }

    .hero-eyebrow {
      margin-bottom: 14rem;
      font-size: clamp(14rem, calc(15 / 375 * 100vw), 16rem);
    }

    .hero-title {
      font-size: clamp(26rem, calc(30 / 375 * 100vw), 34rem);
    }

    .hero-arrows {
      top: auto;
      right: 20rem;
      bottom: 24rem;
      transform: none;
    }

    .hero-arrow {
      width: clamp(46rem, calc(54 / 375 * 100vw), 54rem);
    }

    .hero-nav-prev {
      margin-top: 0;
    }

    .hero-info {
      width: calc(100% - 14rem);
      height: auto;
      min-height: clamp(142rem, calc(174 / 375 * 100vw), 180rem);
      border-bottom-right-radius: clamp(54rem, calc(74 / 375 * 100vw), 74rem);
    }

    .hero-info-inner {
      align-content: center;
      gap: clamp(12rem, calc(15 / 375 * 100vw), 18rem);
      min-height: inherit;
      padding: clamp(24rem, calc(29 / 375 * 100vw), 34rem)
        clamp(20rem, calc(32 / 375 * 100vw), 32rem)
        clamp(24rem, calc(29 / 375 * 100vw), 42rem)
        clamp(18rem, calc(20 / 375 * 100vw), 24rem);
      margin-top: 0;
    }

    .hero-info-row {
      display: grid;
      grid-template-columns: clamp(78rem, calc(88 / 375 * 100vw), 96rem) minmax(
          0,
          1fr
        );
      align-items: start;
      gap: clamp(12rem, calc(16 / 375 * 100vw), 20rem);
    }

    .hero-info-label {
      min-width: 0;
      gap: 7rem;
      font-size: clamp(14rem, calc(16 / 375 * 100vw), 17rem);

      svg {
        width: clamp(15rem, calc(18 / 375 * 100vw), 20rem);
      }
    }

    .hero-info-tel {
      font-size: clamp(17rem, calc(18 / 375 * 100vw), 20rem);
    }

    .hero-info-time {
      display: grid;
      gap: 2rem;
      padding-left: 0;
      font-size: clamp(13rem, calc(13 / 375 * 100vw), 14rem);
      line-height: 1.45;

      span + span::before {
        display: none;
      }

      b {
        margin-right: 6rem;
      }
    }

    .hero-info-watermark {
      right: 16rem;
      bottom: 16rem;

      :is(img, svg) {
        width: clamp(70rem, calc(92 / 375 * 100vw), 110rem);
      }
    }
  }
}

/* Hero Social */
.hero-social {
  position: absolute;
  top: auto;
  bottom: clamp(178rem, calc(296 / 1920 * 100vw), 292rem);
  left: 0;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: clamp(50rem, calc(76 / 1920 * 100vw), 76rem);
  height: clamp(364rem, calc(400 / 1920 * 100vw), 400rem);
  padding-top: clamp(120rem, calc(150 / 1920 * 100vw), 150rem);
  background: #dc4240;
  color: #fff;
}

.hero-social-text {
  display: block;
  -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
  margin-right: 10px;
  font: 800 clamp(10rem, calc(11 / 1920 * 100vw), 11rem) / 1 var(--font-sans);
  letter-spacing: 0.14em;
  color: #fff;
  white-space: nowrap;
}

.hero-social-line {
  position: relative;
  display: block;
  width: 2px;
  height: clamp(92rem, calc(130 / 1920 * 100vw), 130rem);
  margin-top: clamp(19rem, calc(19 / 1920 * 100vw), 42rem);
  margin-right: 10px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.32);

  &::before {
    position: absolute;
    top: 0;
    left: 50%;
    width: 1px;
    height: clamp(28rem, calc(30 / 1920 * 100vw), 30rem);
    background: #fff;
    transform: translateX(-50%);
    -webkit-animation: heroScrollLineMove 1.5s ease-in-out infinite alternate;
            animation: heroScrollLineMove 1.5s ease-in-out infinite alternate;
    content: "";
  }
}

@-webkit-keyframes heroScrollLineMove {
  0% {
    transform: translate(-50%, 0);
  }

  100% {
    transform: translate(-50%, clamp(62rem, calc(100 / 1920 * 100vw), 100rem));
  }
}

@keyframes heroScrollLineMove {
  0% {
    transform: translate(-50%, 0);
  }

  100% {
    transform: translate(-50%, clamp(62rem, calc(100 / 1920 * 100vw), 100rem));
  }
}

@media (width < 768px) {
  .hero-social {
    display: none;
  }
}

/* Meal Guide */
.meal-guide {
  padding-block: 116rem 117rem;
  background: #fff;
  color: #111;

  .meal-guide-container {
    display: grid;
    grid-template-columns: minmax(0, 940rem) 440rem;
    grid-template-rows: auto auto;
    align-items: start;
    -moz-column-gap: 120rem;
         column-gap: 120rem;
    row-gap: 20rem;
  }

  .meal-guide-main {
    display: contents;
  }

  .meal-guide-header {
    grid-column: 1;
    grid-row: 1;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    min-width: 0;
    min-height: 69rem;
    padding-top: 20rem;
    margin-bottom: 0;
  }

  .meal-guide-title {
    font: 900 var(--font-size-43) / 1.15 var(--font-sans);
    letter-spacing: -0.065em;
    color: #050505;
  }

  .meal-guide-control,
  .meal-guide-nav {
    display: flex;
    align-items: center;
  }

  .meal-guide-control {
    flex-shrink: 0;
    gap: 37rem;
  }

  .meal-guide-nav {
    gap: 16rem;
    padding-top: 2rem;
  }

  .meal-guide-arrow {
    position: relative;
    display: block;
    width: 34rem;
    height: 24rem;
    border: 0;
    background: none;
    color: #111;
    cursor: pointer;
    transition:
      color 0.25s ease,
      opacity 0.25s ease,
      scale 0.25s ease;

    &::before,
    &::after {
      position: absolute;
      top: 50%;
      content: "";
      transition: transform 0.25s ease;
    }

    &::before {
      left: 50%;
      width: 28rem;
      height: 3rem;
      background: currentColor;
      transform: translate(-50%, -50%);
    }

    &::after {
      width: 15rem;
      aspect-ratio: 1;
      border: solid currentColor;
      border-width: 3rem 3rem 0 0;
    }

    &.swiper-button-disabled,
    &:disabled {
      color: #d8d8d8;
      cursor: default;
      pointer-events: none;
    }

    &:focus-visible {
      outline: 2rem solid rgba(220, 66, 64, 0.35);
      outline-offset: 5rem;
    }

    &:active {
      scale: 0.97;
    }

    @media (any-hover: hover) {
      &:not(.swiper-button-disabled):hover {
        color: #dc4240;
        scale: 1.04;
      }
    }
  }

  .meal-guide-prev::after {
    left: 4rem;
    transform: translateY(-50%) rotate(-135deg);
  }

  .meal-guide-next::after {
    right: 4rem;
    transform: translateY(-50%) rotate(45deg);
  }

  .meal-guide-more {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 112rem;
    height: 40rem;
    padding-inline: 22rem;
    border-radius: 999rem;
    background: #dc4240;
    font: 800 var(--font-size-16) / 1 var(--font-sans);
    letter-spacing: -0.03em;
    color: #fff;
    box-shadow: 0 0 0 rgba(220, 66, 64, 0);
    transition:
      background-color 0.28s ease,
      box-shadow 0.28s ease,
      transform 0.28s ease;

    &:focus-visible {
      outline: 2rem solid rgba(220, 66, 64, 0.35);
      outline-offset: 5rem;
    }

    &:active {
      transform: translateY(0);
    }

    @media (any-hover: hover) {
      &:hover {
        background: #c93634;
        box-shadow: 0 12rem 24rem rgba(220, 66, 64, 0.22);
        transform: translateY(-2rem);
      }
    }
  }

  .meal-guide-swiper {
    grid-column: 1;
    grid-row: 2;
    width: 100%;
    min-width: 0;
    overflow: hidden;
  }

  .meal-card-list {
    align-items: stretch;
  }

  .meal-card-item {
    height: auto;
  }

  .meal-card {
    display: block;
    height: 100%;
    color: inherit;

    &:focus-visible {
      outline: 2rem solid rgba(220, 66, 64, 0.35);
      outline-offset: 6rem;
    }

    @media (any-hover: hover) {
      &:hover {
        .meal-card-image {
          scale: 1.04;
        }

        .meal-card-title {
          color: #dc4240;
        }
      }
    }
  }

  .meal-card-figure {
    overflow: hidden;
    aspect-ratio: 300 / 210;
    background: #f1f1f1;
  }

  .meal-card-image {
    display: block;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
    -o-object-position: center;
       object-position: center;
    transition: scale 0.5s ease;
  }

  .meal-card-title {
    display: block;
    margin-top: 22rem;
    font: 800 var(--font-size-20) / 1.35 var(--font-sans);
    letter-spacing: -0.045em;
    color: #111;
    transition: color 0.25s ease;
  }

  .meal-card-date {
    display: block;
    margin-top: 7rem;
    font: 500 var(--font-size-14) / 1.4 var(--font-sans);
    color: #9a9a9a;
  }

  .medical-guide-card {
    grid-column: 2;
    grid-row: 1 / 3;
    display: grid;
    width: 440rem;
    overflow: hidden;
    aspect-ratio: 440 / 380;
    background: #263b4c;
    color: #fff;
    transition: box-shadow 0.34s ease;

    &:focus-visible {
      outline: 2rem solid rgba(220, 66, 64, 0.38);
      outline-offset: 7rem;
    }

    &:active {
      transform: translateY(-1rem);
    }

    @media (any-hover: hover) {
      &:hover {
        box-shadow: 0 20rem 40rem rgba(0, 0, 0, 0.14);

        .medical-guide-image {
          scale: 1.045;
        }

        .medical-guide-icon {
          translate: 5rem -5rem;
        }

        .medical-guide-title,
        .medical-guide-text {
          opacity: 0.92;
        }
      }
    }
  }

  .medical-guide-image,
  .medical-guide-icon,
  .medical-guide-content {
    grid-area: 1 / 1;
  }

  .medical-guide-image {
    display: block;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
    -o-object-position: center;
       object-position: center;
    transition: scale 0.55s ease;
  }

  .medical-guide-icon {
    z-index: 2;
    justify-self: end;
    align-self: start;
    display: block;
    width: 54rem;
    height: auto;
    margin-top: 34rem;
    margin-right: 34rem;
    transition: translate 0.34s ease;
  }

  .medical-guide-content {
    z-index: 2;
    justify-self: start;
    align-self: end;
    display: grid;
    gap: 18rem;
    margin-left: 41rem;
    margin-bottom: 44rem;
  }

  .medical-guide-title {
    font: 900 var(--font-size-43) / 1 var(--font-sans);
    letter-spacing: -0.065em;
    color: #fff;
    transition: opacity 0.3s ease;
  }

  .medical-guide-text {
    font: 500 var(--font-size-16) / 1.55 var(--font-sans);
    letter-spacing: -0.045em;
    color: rgba(255, 255, 255, 0.92);
    transition: opacity 0.3s ease;
  }

  @media (width < 1280px) {
    .meal-guide-container {
      grid-template-columns: minmax(0, 1fr) clamp(
          360rem,
          calc(420 / var(--container) * 100vw),
          420rem
        );
      -moz-column-gap: 70rem;
           column-gap: 70rem;
    }

    .meal-guide-header {
      min-height: 66rem;
    }

    .medical-guide-card {
      width: 100%;
      aspect-ratio: 440 / 380;
    }
  }

  @media (width < 1024px) {
    .meal-guide-container {
      grid-template-columns: 1fr;
      grid-template-rows: auto auto auto;
      row-gap: 36rem;
    }

    .meal-guide-header {
      grid-column: 1;
      grid-row: 1;
      min-height: auto;
      padding-top: 0;
    }

    .meal-guide-swiper {
      grid-column: 1;
      grid-row: 2;
    }

    .medical-guide-card {
      grid-column: 1;
      grid-row: 3;
    }
  }

  @media (width < 768px) {
    padding-block: 70rem 80rem;

    .meal-guide-container {
      row-gap: 34rem;
    }

    .meal-guide-header {
      gap: 18rem;
    }

    .meal-guide-title {
      font-size: 34rem;
    }

    .meal-guide-control {
      gap: 14rem;
    }

    .meal-guide-nav {
      gap: 12rem;
      padding-top: 0;
    }

    .meal-guide-arrow {
      width: 28rem;
      height: 22rem;
    }

    .meal-guide-more {
      min-width: 88rem;
      height: 34rem;
      padding-inline: 16rem;
      font-size: 14rem;
    }

    .meal-card-figure {
      aspect-ratio: 335 / 220;
    }

    .medical-guide-card {
      width: 100%;
      aspect-ratio: 335 / 292;
    }

    .medical-guide-icon {
      width: 44rem;
      margin-top: 24rem;
      margin-right: 24rem;
    }

    .medical-guide-content {
      gap: 12rem;
      margin-left: 32rem;
      margin-bottom: 34rem;
    }

    .medical-guide-title {
      font-size: 36rem;
    }

    .medical-guide-text {
      font-size: 14rem;
    }
  }
}

/* Location Guide */
.location-guide {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding-block: 100rem 250rem;
  background: #f5f5f5;
  border-top-left-radius: clamp(
    96rem,
    calc(172 / var(--container) * 100vw),
    172rem
  );
  color: #111;

  &::before,
  &::after {
    position: absolute;
    left: 0;
    bottom: 32rem;
    z-index: 0;
    width: -webkit-max-content;
    width: -moz-max-content;
    width: max-content;
    pointer-events: none;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
    font-family: "Poppins", var(--font-sans);
    font-size: 150rem;
    font-style: normal;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -0.035em;
    white-space: nowrap;
    color: rgba(0, 0, 0, 0.04);
    content: "KDD HOSPITAL · KDD HOSPITAL · KDD HOSPITAL · KDD HOSPITAL";
    -webkit-animation: locationMarquee 34s linear infinite;
            animation: locationMarquee 34s linear infinite;
    will-change: transform;
  }

  &::before {
    --marquee-start: 0%;
    --marquee-end: -100%;
  }

  &::after {
    --marquee-start: 100%;
    --marquee-end: 0%;
  }

  .location-guide-container {
    position: relative;
    z-index: 1;
  }

  .location-guide-header {
    margin-bottom: 45rem;
  }

  .location-guide-title {
    font: 900 var(--font-size-43) / 1.2 var(--font-sans);
    letter-spacing: -0.04em;
    color: #050505;

    span {
      color: #dc4240;
    }
  }

  .location-guide-address {
    margin-top: 14rem;
    font: 700 var(--font-size-18) / 1.45 var(--font-sans);
    letter-spacing: 0.06em;
    color: #222;
  }

  .location-guide-map {
    position: relative;
    width: 100%;
    height: 500rem;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 26rem 36rem rgba(0, 0, 0, 0.11);
    transition: box-shadow 0.34s ease;

    @media (any-hover: hover) {
      &:hover {
        box-shadow: 0 30rem 44rem rgba(0, 0, 0, 0.13);
      }
    }
  }

  .root_daum_roughmap {
    width: 100% !important;
    height: 100% !important;

    .wrap_map {
      width: 100% !important;
      height: 500rem !important;
    }

    .wrap_controllers,
    .wrap_btn_zoom,
    .cont {
      display: none !important;
    }
  }

  @media (width < 1280px) {
    padding-block: 90rem 180rem;

    &::before,
    &::after {
      bottom: 58rem;
      font-size: 126rem;
    }

    .location-guide-header {
      margin-bottom: 42rem;
    }

    .location-guide-map,
    .root_daum_roughmap .wrap_map {
      height: 440rem !important;
    }
  }

  @media (width < 768px) {
    padding-block: 70rem 120rem;
    border-top-left-radius: 78rem;

    &::before,
    &::after {
      bottom: 42rem;
      font-size: 62rem;
      letter-spacing: -0.035em;
      -webkit-animation-duration: 24s;
              animation-duration: 24s;
    }

    .location-guide-header {
      margin-bottom: 28rem;
    }

    .location-guide-title {
      font-size: 32rem;
    }

    .location-guide-address {
      margin-top: 14rem;
      font-size: 15rem;
      line-height: 1.55;
    }

    .location-guide-map,
    .root_daum_roughmap .wrap_map {
      height: 320rem !important;
    }
  }
}

@-webkit-keyframes locationMarquee {
  0% {
    transform: translateX(var(--marquee-start));
  }

  100% {
    transform: translateX(var(--marquee-end));
  }
}

@keyframes locationMarquee {
  0% {
    transform: translateX(var(--marquee-start));
  }

  100% {
    transform: translateX(var(--marquee-end));
  }
}

/* Reduced Motion */
@media (prefers-reduced-motion: reduce) {
  .hero-arrow,
  .hero-info-tel,
  .meal-guide-arrow,
  .meal-guide-more,
  .meal-card-image,
  .meal-card-title,
  .medical-guide-card,
  .medical-guide-image,
  .medical-guide-icon,
  .medical-guide-title,
  .medical-guide-text,
  .location-guide-map {
    transition: none;
  }

  .hero-social-line::before,
  .location-guide::before,
  .location-guide::after {
    -webkit-animation: none;
            animation: none;
  }

  .location-guide::before {
    left: 50%;
    transform: translateX(-50%);
  }

  .location-guide::after {
    display: none;
  }
}
