/* Coupon pop-up: RetailMeNot post-click layout, with the Hunt Me Links box where RetailMeNot shows cash back. */

.cm-overlay { position: fixed; inset: 0; z-index: 100; background: rgba(0,0,0,.6); display: none; align-items: flex-start; justify-content: center; padding: 20px 12px; overflow-y: auto; }
.cm-overlay.open { display: flex; }
.cm { position: relative; width: min(560px, 94vw); margin: auto; border-radius: 16px; overflow: hidden; background: #fff; color: #000; text-align: center; }
.cm, .cm :is(h2,h3,p,a,span,div,button,input,summary,b) { font-family: "Montserrat", "Segoe UI", Arial, sans-serif; }
.cm-body { position: relative; display: flex; flex-direction: column; align-items: center; padding: 40px 24px 0; }
.cm:focus { outline: none; }
.cm-close:focus { outline: none; }
.cm-close:focus-visible { outline: 2px solid #4b0082; border-radius: 50%; }
.cm-close { position: absolute; top: 10px; right: 14px; width: 36px; height: 36px; border: 0; background: none; cursor: pointer; color: #000; font: 300 36px/32px Arial, sans-serif; z-index: 5; }
.cm-logo { width: 112px; height: 112px; margin: 0 auto 20px; padding: 20px; border: 1px solid #e5e7eb; border-radius: 50%; overflow: hidden; background: #fff; display: flex; align-items: center; justify-content: center; }
.cm-logo img { width: 100%; height: auto; object-fit: contain; aspect-ratio: 1 / 1; }
.cm-title { max-width: 384px; margin: 0 0 8px; font-size: 20px; line-height: 1.35; font-weight: 700; }
.cm-cta { margin-top: 8px; width: 100%; display: flex; flex-direction: column; align-items: center; }
/* Code pill with the purple COPY button inside it. */
.cm-code { position: relative; width: 100%; max-width: 420px; min-width: 288px; margin: 0 auto 8px; }
.cm-code input { display: block; width: 100%; margin: 0; padding: 16px 128px 16px 24px; border: 1px solid #000; border-radius: 999px; background: #fff; font-size: 20px; font-weight: 700; letter-spacing: .02em; color: #000; outline: none;
  -webkit-mask-image: linear-gradient(to right, #000 55%, rgba(0,0,0,.25)); mask-image: linear-gradient(to right, #000 55%, rgba(0,0,0,.25)); }
.cm-code button { position: absolute; top: 4px; right: 4px; bottom: 4px; width: 112px; border: 0; border-radius: 999px; background: #4b0082; color: #fff; font-size: 18px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }
.cm-code button:hover { background: #33005a; }
.cm-shop { display: flex; align-items: center; justify-content: center; min-width: 288px; height: 56px; margin: 0 auto 12px; padding: 0 28px; border-radius: 999px; background: #4b0082; color: #fff; font-size: 20px; font-weight: 700; letter-spacing: .05em; text-decoration: none; }
.cm-shop:hover { background: #33005a; }
.cm-hint { margin: 0; font-size: 14px; font-weight: 500; }
.cm-hint a { color: #4b0082; }
.cm-hml { margin: 44px auto 0; padding: 14px 40px 18px; max-width: 420px; border-radius: 12px; background: #f3ecf9; display: flex; flex-direction: column; align-items: center; gap: 12px; }
.cm-hml h3 { margin: 0; font-size: 20px; line-height: 1.3; font-weight: 800; }
.cm-hml p { margin: 0; font-size: 14px; line-height: 1.5; color: #1f1f23; }
.cm-hml a { display: flex; justify-content: center; width: 240px; max-width: 100%; padding: 8px 24px; border: 1px solid #000; border-radius: 999px; background: #fff; color: #000; font-size: 15px; font-weight: 800; text-decoration: none; }
.cm-hml a:hover { background: #4b0082; border-color: #4b0082; color: #fff; }
.cm-how { margin: 20px 0 24px; }
.cm-how summary { list-style: none; cursor: pointer; font-size: 15px; font-weight: 500; text-decoration: underline; text-underline-offset: 2px; }
.cm-how summary::-webkit-details-marker { display: none; }
.cm-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 14px; }
.cm-steps b { display: grid; place-items: center; width: 32px; height: 32px; margin: 0 auto 6px; border-radius: 50%; background: #4b0082; color: #fff; font-size: 14px; }
.cm-steps span { display: block; font-size: 13px; font-weight: 600; line-height: 1.35; }
/* Grey footer: expiry + details. */
.cm-foot { width: calc(100% + 48px); margin: 8px -24px 0; padding: 28px 32px; background: #f3f4f6; text-align: left; }
.cm-foot summary { display: flex; justify-content: space-between; gap: 12px; list-style: none; cursor: pointer; font-size: 16px; font-weight: 600; }
.cm-foot summary::-webkit-details-marker { display: none; }
.cm-foot summary em { font-style: normal; text-decoration: underline; text-underline-offset: 2px; }
.cm-foot summary em::after { content: " +"; }
.cm-foot details[open] summary em::after { content: " \2013"; }
.cm-detail { margin-top: 14px; font-size: 14px; line-height: 1.55; }
.cm-detail p { margin: 0 0 8px; }
@media (max-width: 600px) {
  .cm-body { padding: 36px 16px 0; }
  .cm-logo { width: 96px; height: 96px; padding: 16px; }
  .cm-title { font-size: 18px; }
  .cm-code, .cm-shop { min-width: 0; width: 100%; }
  .cm-code input { font-size: 17px; padding-right: 112px; }
  .cm-code button { width: 96px; font-size: 15px; }
  .cm-hml { padding: 14px 18px 18px; }
  .cm-foot { width: calc(100% + 32px); margin: 8px -16px 0; padding: 22px 18px; }
}
