.front-coupon{--coupon-rep-position:center center;min-height:100vh;background:#fff}.front-coupon__header{position:sticky;top:52px;z-index:30;border-bottom:1px solid transparent;background:#fff}.front-coupon__title-row{display:flex;align-items:center;padding:14px 16px 10px}.front-coupon__title-row h1{margin:0;font-size:21px;font-weight:800;letter-spacing:-.4px}.front-coupon__back{display:flex;align-items:center;margin-left:-2px;margin-right:9px;color:#1a1a1a;text-decoration:none}.front-coupon__back .material-symbols-outlined{font-size:24px}.front-coupon__categories { box-sizing: border-box; display: flex; height: 36px; align-items: center; gap: 8px; overflow-x: auto; overflow-y: hidden; padding: 3px 16px; scroll-padding-inline: 16px; white-space: nowrap; }.front-coupon__category { display: inline-flex; box-sizing: border-box; height: 30px; flex: 0 0 auto; align-items: center; padding: 0 11px; border: 1px solid #e4e4e7; border-radius: 9px; background: #f7f7f8; color: #3a3a3a; font-size: 12px; font-weight: 700; line-height: 18px; text-decoration: none; white-space: nowrap; }.front-coupon__category--active { border-color: #e6007e; background: #e6007e; color: #fff; font-weight: 800; }.front-coupon__summary { display:flex; align-items:center; justify-content:flex-end; padding:10px 16px }.front-coupon__summary p{margin:0;color:#767676;font-size:13px}.front-coupon__summary strong{color:#1a1a1a;font-weight:700}.front-coupon__view-switch{display:flex;gap:2px;padding:3px;border-radius:20px;background:#f4f4f5}.front-coupon__view{display:flex;align-items:center;gap:4px;padding:6px 12px;border-radius:18px;color:#767676;font-size:12px;font-weight:700;text-decoration:none}.front-coupon__view--active{background:#fff;color:#e6007e}.front-coupon__view .material-symbols-outlined{font-size:16px}.front-coupon__grid{display:grid;grid-template-columns:1fr 1fr;gap:13px;padding:0 16px}.front-coupon-card{min-width:0;color:#1a1a1a;text-decoration:none}.front-coupon-card__image-wrap{position:relative;display:block;overflow:hidden;aspect-ratio:1/1;border-radius:14px;box-shadow:0 3px 10px rgb(0 0 0/10%)}.front-coupon-card__image{display:block;width:100%;height:100%;object-fit:cover;object-position:var(--coupon-rep-position)}.front-coupon-card__discount,.front-coupon-card__category{position:absolute;top:8px;padding:3px 7px;font-weight:800}.front-coupon-card__discount{right:8px;padding:4px 7px;border-radius:8px;background:#e6007e;color:#fff;font-size:11px}.front-coupon-card__category{left:8px;border-radius:7px;background:rgb(255 255 255/92%);color:#3a3a3a;font-size:10px;font-weight:700}.front-coupon-card__name{display:block;margin-top:8px;font-size:14px;font-weight:700;line-height:1.25}.front-coupon-card__type{display:flex;align-items:center;gap:4px;margin-top:5px;color:#e6007e;font-size:12px;font-weight:700}.front-coupon-card__type .material-symbols-outlined{font-size:14px}
.front-coupon-card{padding-bottom:14px;overflow:hidden;border:1px solid #ece8e5;border-radius:18px;background:#fff;box-shadow:0 9px 24px rgb(73 52 38/8%);transition:border-color var(--md-sys-motion-duration-medium) var(--md-sys-motion-easing-standard),box-shadow var(--md-sys-motion-duration-medium) var(--md-sys-motion-easing-standard),transform var(--md-sys-motion-duration-medium) var(--md-sys-motion-easing-standard)}
.front-coupon-card__image-wrap{border-radius:18px 18px 0 0;box-shadow:none}
.front-coupon-card__name{margin:11px 13px 0}
.front-coupon-card__type{margin:6px 13px 0}
@media (hover:hover) and (pointer:fine){.front-coupon-card:hover{border-color:rgb(230 0 126/24%);box-shadow:0 13px 28px rgb(73 52 38/13%);transform:translateY(-3px)}.front-coupon-card:hover img{transform:scale(1.035)}}
.front-coupon__category:focus-visible{outline:2px solid #1a1a1a;outline-offset:-2px}.front-coupon__category:active:not(.front-coupon__category--active){background:#e4e4e7;color:#1a1a1a}@media (hover:hover){.front-coupon__category:hover:not(.front-coupon__category--active){background:#ececef;color:#1a1a1a}}

.front-coupon-map{position:fixed;right:0;bottom:74px;left:0;top:213px;z-index:20;width:375px;max-width:100%;margin:0 auto;overflow:hidden;background:#f7f7f8}.front-coupon-map__canvas{position:absolute;inset:0;background:#f7f7f8}.front-coupon-map__status{position:absolute;z-index:3;top:42%;right:24px;left:24px;display:flex;align-items:center;justify-content:center;gap:8px;margin:0;padding:14px 16px;border:1px solid #ece8e5;border-radius:16px;background:rgb(255 255 255/96%);box-shadow:0 8px 24px rgb(73 52 38/10%);color:#5a5a5a;font-size:14px;font-weight:700;line-height:1.4;text-align:center}.front-coupon-map__status[hidden]{display:none}.front-coupon-map__status .material-symbols-outlined{flex:none;color:#e6007e;font-size:20px}.front-coupon-map--fallback .front-coupon-map__canvas{background:#f7f7f8}.front-coupon-map__naver-pin{display:flex;width:190px;flex-direction:column;align-items:center;color:#e6007e;cursor:pointer}.front-coupon-map__naver-label{max-width:150px;padding:5px 9px;overflow:hidden;border:1px solid rgb(230 0 126/18%);border-radius:999px;background:#fff;box-shadow:0 3px 10px rgb(0 0 0/20%);font-size:11px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.front-coupon-map__naver-pin .material-symbols-outlined{margin-top:-3px;color:#fff;font-size:30px;font-variation-settings:"FILL" 1;text-shadow:0 1px 3px rgb(0 0 0/25%)}.front-coupon-map__naver-pin.is-selected .front-coupon-map__naver-label{border-color:#e6007e;background:#e6007e;color:#fff}.front-coupon-map__naver-pin.is-selected .material-symbols-outlined{color:#e6007e}.front-coupon-map__rail{position:absolute;z-index:4;right:0;bottom:14px;left:0;display:flex;gap:11px;padding:4px 16px 6px;overflow-x:auto;overscroll-behavior-inline:contain;scroll-padding-inline:16px}.front-coupon-map-card{display:flex;flex:0 0 240px;gap:10px;padding:10px;border:1.5px solid #fff;border-radius:15px;background:#fff;color:#1a1a1a;text-decoration:none;box-shadow:0 4px 14px rgb(0 0 0/15%);scroll-snap-align:start;transition:border-color 100ms cubic-bezier(.2,0,0,1),box-shadow 100ms cubic-bezier(.2,0,0,1)}.front-coupon-map-card.is-selected{border-color:#e6007e;box-shadow:0 7px 20px rgb(92 24 63/18%)}.front-coupon-map-card__image-wrap{position:relative;flex:0 0 66px;overflow:hidden;aspect-ratio:1/1;border-radius:11px}.front-coupon-map-card__image{display:block;width:100%;height:100%;object-fit:cover;object-position:var(--coupon-rep-position)}.front-coupon-map-card__discount{position:absolute;top:4px;right:4px;padding:2px 5px;border-radius:6px;background:#e6007e;color:#fff;font-size:9.5px;font-weight:800}.front-coupon-map-card__body{flex:1;min-width:0}.front-coupon-map-card__name{display:block;overflow:hidden;font-size:13px;font-weight:700;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.front-coupon-map-card__area{display:flex;align-items:center;gap:3px;margin-top:4px;color:#767676;font-size:11px}.front-coupon-map-card__area .material-symbols-outlined{font-size:13px}
.front-coupon-map__canvas{width:100%;height:100%}

@media (prefers-reduced-motion:reduce){.front-coupon-map-card{transition:none}}

@media (min-width: 1024px) {
  .front-coupon {
    box-sizing: border-box;
    width: min(100%, 1200px);
    min-height: calc(100vh - 72px);
    margin: 0 auto;
    padding: 44px 32px 80px;
    background: #fff;
  }

  .front-coupon__header {
    position: relative;
    top: auto;
    z-index: 1;
    border-bottom: 0;
    background: transparent;
  }

  .front-coupon__title-row {
    box-sizing: border-box;
    gap: 18px;
    padding: 34px 40px;
  }

  .front-coupon__back {
    width: 48px;
    height: 48px;
    margin: 0;
    justify-content: center;
    border: 1px solid rgb(230 0 126 / 12%);
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 10px 24px rgb(230 0 126 / 10%);
    transition: transform var(--md-sys-motion-duration-short) var(--md-sys-motion-easing-standard), border-color var(--md-sys-motion-duration-short) var(--md-sys-motion-easing-standard), color var(--md-sys-motion-duration-short) var(--md-sys-motion-easing-standard);
  }

  .front-coupon__categories {
    height: auto;
    flex-wrap: wrap;
    gap: 10px;
    overflow: visible;
    padding: 26px 0 0;
    scroll-padding-inline: 0;
    white-space: normal;
  }

  .front-coupon__category {
    height: 38px;
    padding: 0 16px;
    border-radius: 999px;
    background: #fff;
    font-size: 14px;
    box-shadow: 0 8px 18px rgb(92 24 63 / 7%);
  }

  .front-coupon__category--active {
    border-color: #e6007e;
    background: #e6007e;
    color: #fff;
    box-shadow: 0 10px 22px rgb(230 0 126 / 18%);
  }


  .front-coupon__summary {
    justify-content: flex-start;
    padding: 20px 0 0;
  }

  .front-coupon__view-switch {
    margin-left: auto;
    border: 1px solid #f0e6ec;
    border-radius: 999px;
    background: #fff8fc;
  }

  .front-coupon__view {
    min-width: 92px;
    justify-content: center;
    padding: 9px 16px;
    border-radius: 999px;
    font-size: 14px;
  }

  .front-coupon__view--active {
    box-shadow: 0 8px 18px rgb(230 0 126 / 10%);
  }

  .front-coupon__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
    padding: 34px 0 0;
  }

  .front-coupon-card {
    border-radius: 22px;
    box-shadow: 0 14px 34px rgb(92 24 63 / 9%);
  }

  .front-coupon-card__image-wrap {
    aspect-ratio: 4 / 3;
    border-radius: 22px 22px 0 0;
  }

  .front-coupon-card__image {
    transition: transform var(--md-sys-motion-duration-medium) var(--md-sys-motion-easing-standard);
  }

  .front-coupon-card__discount {
    top: 12px;
    right: 12px;
    border-radius: 999px;
  }

  .front-coupon-card__name {
    margin: 14px 16px 0;
    font-size: 16px;
    line-height: 1.35;
  }

  .front-coupon-card__type {
    margin: 8px 16px 0;
    font-size: 13px;
  }

  .front-provider-source {
    box-sizing: border-box;
    width: min(100%, 620px);
    margin: 28px auto 0;
    border-radius: 20px;
  }

  .front-coupon-map {
    position: relative;
    inset: auto;
    width: 100%;
    max-width: none;
    height: 620px;
    margin: 34px 0 0;
    border: 1px solid #f0e6ec;
    border-radius: 32px;
    box-shadow: 0 20px 54px rgb(92 24 63 / 10%);
  }

  .front-coupon-map__rail {
    right: 24px;
    bottom: 24px;
    left: 24px;
    gap: 14px;
    padding: 4px 0 6px;
    scroll-padding-inline: 0;
  }

  .front-coupon-map-card {
    min-width: 0;
    flex: 0 0 min(360px, 82vw);
    border-radius: 18px;
  }

  .front-coupon__back:focus-visible,
  .front-coupon__category:focus-visible,
  .front-coupon__view:focus-visible,
  .front-coupon-card:focus-visible,
  .front-coupon-map-card:focus-visible {
    outline: 3px solid rgb(230 0 126 / 30%);
    outline-offset: 4px;
  }
}

@media (min-width: 1024px) and (hover: hover) and (pointer: fine) {
  .front-coupon__back:hover,
  .front-coupon__back:focus-visible {
    border-color: rgb(230 0 126 / 28%);
    color: #e6007e;
    transform: translateY(-1px);
  }

  .front-coupon__view:hover,
  .front-coupon__view:focus-visible,
  .front-coupon-map-card:hover,
  .front-coupon-map-card:focus-visible {
    color: #e6007e;
  }
}

@media (min-width: 1024px) and (prefers-reduced-motion: reduce) {
  .front-coupon__back,
  .front-coupon-card__image {
    transition: none;
  }

  .front-coupon__back:hover,
  .front-coupon__back:focus-visible {
    transform: none;
  }
}

.front-coupon-card__image--placeholder,.front-coupon-map-card__image--placeholder{display:grid;background:linear-gradient(135deg,#fff2f8,#f7f7f8);color:#e6007e;place-items:center}
.front-coupon-card__image--placeholder.material-symbols-outlined{font-size:42px}
.front-coupon-map-card__image--placeholder.material-symbols-outlined{font-size:28px}
.front-coupon-card__name{display:-webkit-box;min-height:2.5em;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.front-coupon-card__category-line{display:block;overflow:hidden;margin:6px 13px 0;color:#767676;font-size:11px;font-weight:700;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}
.front-coupon-card__validity{display:block;overflow:hidden;margin:8px 13px 0;color:#5f6368;font-size:11px;font-weight:700;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}
@media (min-width:1024px){.front-coupon-card__category-line,.front-coupon-card__validity{margin-right:16px;margin-left:16px}.front-coupon-card__name{min-height:2.7em}}
.front-coupon__empty{grid-column:1/-1;margin:20px 0;color:#767676;font-size:14px;font-weight:700;text-align:center}
