/* Giftos Hero Refresh — deliberately scoped to the existing Giftos widgets. */
:root {
  --gfr-acid: #dfff00;
  --gfr-ink: #11110f;
  --gfr-pink: #f572d5;
  --gfr-cream: #f5f5ee;
}

.gfr-active .gf { --acid: var(--gfr-acid); --ink: var(--gfr-ink); }
.gfr-active .gf.gf-header,
.gfr-active .gf.gf-hero,
.gfr-active .gf.gf-categories { max-width: 1240px; margin-inline: auto; }
.gfr-active .gf a:focus-visible,
.gfr-active .gf button:focus-visible,
.gfr-active .gf input:focus-visible { outline: 3px solid #8b20a4; outline-offset: 4px; }

/* Black service bar: a compact three-part strip. */
.gfr-active .gf-notice {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--gfr-ink);
  color: #fff;
  padding: 12px 14px;
  gap: 0;
  font: 500 11px/1.25 Outfit, Poppins, Arial, sans-serif;
  letter-spacing: 0;
}
.gfr-active .gf-notice > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 0 27px;
  min-height: 24px;
  white-space: nowrap;
}
.gfr-active .gf-notice > span + span { border-left: 1px solid var(--gfr-acid); }
.gfr-active .gf-notice svg { color: var(--gfr-acid); flex: none; width: 22px; height: 22px; }
.gfr-active .gf-notice b { font-weight: 500; }

/* Lime navigation with an intentionally smaller logo. */
.gfr-active .gf-head {
  position: relative;
  z-index: 12;
  background: var(--gfr-acid);
  min-height: 84px;
  padding: 16px clamp(16px, 3.2vw, 34px);
  gap: clamp(15px, 2vw, 30px);
  align-items: center;
  font-family: Outfit, Poppins, sans-serif;
}
.gfr-active .gf-head .gf-logo {
  color: var(--gfr-ink);
  flex: none;
  font: italic 900 clamp(28px, 3vw, 37px)/1 Impact, 'Arial Narrow', sans-serif;
  letter-spacing: -1.8px;
  transform: skew(-8deg);
  white-space: nowrap;
  transition: transform .2s ease;
}
.gfr-active .gf-head .gf-logo:hover { transform: skew(-8deg) translateY(-2px); }
.gfr-main-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(11px, 1.55vw, 23px);
  flex: 1 1 auto;
  min-width: 0;
}
.gfr-main-nav a {
  font: 650 clamp(11px, 1.05vw, 13px)/1.3 Outfit, Poppins, Arial, sans-serif;
  white-space: nowrap;
  border-bottom: 2px solid transparent;
  padding: 8px 0;
  transition: border-color .2s ease;
}
.gfr-main-nav a:hover { border-color: #111; }
.gfr-main-nav a span { font-size: 15px; margin-left: 2px; }
.gfr-active .gf-head .gf-search.gfr-search {
  position: relative;
  flex: 0 0 39px;
  width: 39px;
  height: 42px;
  min-width: 39px;
  padding: 0;
  margin: 0;
  border: 0;
  border-radius: 999px;
  background: transparent;
}
.gfr-active .gf-head .gf-search.gfr-search button {
  display: grid;
  place-items: center;
  width: 39px;
  height: 42px;
  color: var(--gfr-ink);
  background: transparent;
  border: 0;
  border-radius: 999px;
  padding: 0;
}
.gfr-active .gf-head .gf-search.gfr-search button:hover { background: rgba(0,0,0,.09); }
.gfr-active .gf-head .gf-search.gfr-search input[name="s"] {
  position: absolute;
  z-index: 20;
  right: -8px;
  top: calc(100% + 11px);
  width: min(350px, calc(100vw - 34px));
  padding: 16px 20px;
  border: 2px solid var(--gfr-ink);
  border-radius: 13px;
  box-shadow: 5px 6px 0 var(--gfr-ink);
  background: #fff;
  display: none;
  font: 500 14px Outfit, Poppins, sans-serif;
}
.gfr-active .gf-head .gf-search.gfr-search.is-open input[name="s"] { display: block; }
.gfr-active .gf-head .gf-actions { gap: 10px; flex: none; align-items: center; }
.gfr-active .gf-head .gf-actions a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 37px;
  height: 38px;
  border-radius: 50%;
}
.gfr-active .gf-head .gf-actions a:hover { background: rgba(0,0,0,.09); }
.gfr-active .gf-head .gf-actions a span { display: none; }
.gfr-menu-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border: 2px solid var(--gfr-ink);
  border-radius: 10px;
  color: var(--gfr-ink);
  background: transparent;
  cursor: pointer;
}

/* Hero: typography is real text, while the retro TV is an optimised cutout. */
.gfr-active .gf.gf-hero .gf-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
  align-items: center;
  gap: 0;
  background: var(--gfr-acid);
  min-height: clamp(525px, 48vw, 655px);
  padding: 34px clamp(24px, 4.3vw, 58px) 38px;
}
.gfr-active .gf.gf-hero .gf-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background: radial-gradient(circle at 20% 85%, rgba(255,255,255,.4), transparent 28%),
              repeating-linear-gradient(124deg, transparent 0 18px, rgba(10,10,10,.018) 18px 19px);
  pointer-events: none;
}
.gfr-active .gf.gf-hero .gf-hero::after {
  height: 15px;
  display: block;
  background: #fff;
  clip-path: polygon(0 35%, 8% 10%, 19% 65%, 33% 15%, 47% 60%, 59% 15%, 75% 65%, 91% 20%, 100% 58%, 100% 100%, 0 100%);
}
.gfr-active .gf.gf-hero .gf-copy { align-self: center; z-index: 3; padding: 0 0 8px; }
.gfr-active .gf.gf-hero .gf-eyebrow {
  font: 800 10px/1.2 Outfit, Poppins, sans-serif;
  letter-spacing: .2em;
  margin: 0 0 20px 3px;
}
.gfr-active .gf.gf-hero .gf-copy h1 {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1px;
  width: max-content;
  max-width: 100%;
  margin: 0 0 23px;
  font: italic 900 clamp(56px, 6.65vw, 94px)/.89 Impact, 'Arial Narrow', sans-serif;
  letter-spacing: -.038em;
  transform: skew(-7deg) rotate(-2deg);
  transform-origin: 25% 50%;
  color: var(--gfr-ink);
  white-space: nowrap;
}
.gfr-active .gf.gf-hero .gf-copy h1 span { display: block; }
.gfr-active .gf.gf-hero .gf-copy h1 span:last-child { position: relative; }
.gfr-active .gf.gf-hero .gf-copy h1 span:last-child::after {
  content: '';
  position: absolute;
  left: 29%;
  right: 5%;
  height: 9px;
  bottom: -9px;
  background: var(--gfr-pink);
  transform: rotate(-3deg);
  clip-path: polygon(0 35%, 100% 0, 92% 45%, 9% 100%);
}
.gfr-active .gf.gf-hero .gf-copy > p:not(.gf-eyebrow) {
  max-width: 300px;
  margin: 27px 0 20px;
  font: 800 clamp(20px, 2.15vw, 28px)/1.08 Outfit, Poppins, sans-serif;
  letter-spacing: -.045em;
}
.gfr-active .gf.gf-hero .gf-button {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 15px 20px;
  border-radius: 12px;
  background: var(--gfr-ink);
  color: #fff;
  box-shadow: 4px 5px 0 rgba(0,0,0,.13);
  font: 800 14px/1.2 Outfit, Poppins, sans-serif;
  transition: transform .2s ease, box-shadow .2s ease;
}
.gfr-active .gf.gf-hero .gf-button:hover { transform: translateY(-3px); box-shadow: 5px 8px 0 rgba(0,0,0,.13); }
.gfr-copy-arrow {
  position: absolute;
  width: 140px;
  top: 30px;
  right: -6px;
  transform: rotate(-9deg);
  color: var(--gfr-ink);
  pointer-events: none;
}
.gfr-active .gf.gf-hero .gf-art {
  align-self: stretch;
  min-height: 450px;
  display: grid;
  place-items: center;
  position: relative;
  isolation: isolate;
  overflow: visible;
}
.gfr-active .gf.gf-hero .gf-art::before { display: none; }
.gfr-paper {
  position: absolute;
  inset: 12% -3% 5% 3%;
  z-index: -2;
  background: linear-gradient(25deg, #111 12%, #242424 51%, #101010 81%);
  transform: rotate(-5deg);
  clip-path: polygon(8% 4%, 27% 1%, 38% 9%, 54% 2%, 67% 9%, 86% 1%, 94% 15%, 100% 21%, 92% 35%, 99% 53%, 93% 75%, 100% 95%, 85% 93%, 70% 100%, 52% 93%, 30% 98%, 11% 91%, 2% 95%, 8% 69%, 0 57%, 7% 38%, 1% 20%);
  box-shadow: 0 16px 30px rgba(0,0,0,.2);
}
.gfr-paper::before {
  content: '';
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(158deg, rgba(255,255,255,.07) 0 1px, transparent 1px 13px),
              repeating-linear-gradient(20deg, transparent 0 23px, rgba(255,255,255,.06) 23px 24px);
  opacity: .36;
}
.gfr-burst {
  position: absolute;
  width: 55%;
  aspect-ratio: 1;
  top: -4%;
  right: -13%;
  background: #111;
  clip-path: polygon(50% 0, 58% 27%, 75% 9%, 75% 34%, 98% 22%, 83% 45%, 100% 52%, 79% 60%, 94% 81%, 69% 73%, 65% 100%, 50% 80%, 33% 100%, 32% 76%, 7% 85%, 21% 63%, 0 53%, 24% 45%, 9% 19%, 35% 33%);
  transform: rotate(7deg);
  z-index: -3;
}
.gfr-tv-wrap { position: relative; width: 113%; max-width: 740px; transform: translate(5%, 2%) rotate(1deg); z-index: 1; }
.gfr-tv-image { display: block; width: 100%; height: auto; filter: drop-shadow(12px 19px 10px rgba(0,0,0,.19)); }
.gfr-screen-display {
  position: absolute;
  left: 16.2%; top: 18.3%; width: 61%; height: 45.5%;
  display: grid; place-items: center;
  text-align: center; color: var(--gfr-ink);
  transform: rotate(-3deg) skew(-3deg);
  pointer-events: none;
}
.gfr-screen-display > div { grid-area: 1 / 1; }
.gfr-code { animation: gfr-show-code 8s linear infinite both; }
.gfr-code small {
  display: block;
  margin-bottom: .3em;
  font: 800 clamp(7px, .84vw, 12px)/1.2 Outfit, Poppins, sans-serif;
  letter-spacing: .24em;
}
.gfr-code strong { font: italic 900 clamp(26px, 3.25vw, 45px)/1 Impact, 'Arial Narrow', sans-serif; letter-spacing: -.015em; }
.gfr-brand { font: italic 900 clamp(45px, 5.4vw, 72px)/1 Impact, 'Arial Narrow', sans-serif; animation: gfr-show-brand 8s linear infinite both; }
@keyframes gfr-show-code { 0%,43% { opacity:1; filter:blur(0); } 49%,94% { opacity:0; filter:blur(3px); } 100% { opacity:1; } }
@keyframes gfr-show-brand { 0%,43% { opacity:0; filter:blur(3px); } 49%,94% { opacity:1; filter:blur(0); } 100% { opacity:0; } }
.gfr-crown, .gfr-heart, .gfr-smile { position: absolute; z-index: 3; display: grid; place-items: center; color: #111; user-select: none; }
.gfr-crown { top: 25%; left: 6%; width: 64px; height: 57px; background: var(--gfr-pink); font-size: 39px; transform: rotate(-14deg); clip-path: polygon(2% 0, 100% 5%, 94% 93%, 5% 100%); }
.gfr-heart { right: 0%; bottom: 12%; width: 115px; height: 70px; font: 900 70px/1 Arial, sans-serif; background: var(--gfr-pink); transform: rotate(-12deg); clip-path: polygon(0 15%, 100% 0, 97% 90%, 7% 100%); }
.gfr-smile { right: 15%; bottom: 24%; width: 48px; height: 48px; border: 4px solid #111; border-radius: 50%; background: var(--gfr-pink); font: 600 40px/1 Arial, sans-serif; transform: rotate(19deg); }
.gfr-bolt { position: absolute; z-index: 4; bottom: 18%; left: -1%; width: 72px; filter: drop-shadow(2px 3px 1px rgba(0,0,0,.3)); transform: rotate(10deg); }
.gfr-sparks { position: absolute; z-index: 3; right: -7%; bottom: 30%; width: 72px; transform: rotate(-12deg); }

/* Category cards: crisp icons, richer hover states and an accessible rail. */
.gfr-active .gf.gf-categories.gfr-category-rail {
  display: flex;
  gap: 9px;
  align-items: center;
  background: #fff;
  padding: 27px 16px 24px;
  overflow: hidden;
}
.gfr-active .gf.gf-categories .gf-categories {
  display: flex;
  gap: clamp(8px, 1.2vw, 16px);
  flex: 1;
  min-width: 0;
  padding: 6px 2px 13px;
  overflow-x: auto;
  scrollbar-width: none;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  overscroll-behavior-inline: contain;
}
.gfr-active .gf.gf-categories .gf-categories::-webkit-scrollbar { display: none; }
.gfr-active .gf.gf-categories .gf-categories a {
  flex: 0 0 clamp(104px, 9vw, 122px);
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  padding: 4px 3px 7px;
  scroll-snap-align: start;
  white-space: nowrap;
  text-align: center;
  font: 750 12px/1.2 Outfit, Poppins, sans-serif;
  color: #161616;
  transition: transform .2s ease;
}
.gfr-active .gf.gf-categories .gf-categories a:hover { transform: translateY(-3px); }
.gfr-active .gf.gf-categories .gf-categories a .gfr-category-icon {
  position: relative;
  width: 80px;
  height: 80px;
  display: grid;
  place-items: center;
  margin: 0;
  background: var(--gfr-cream);
  border: 2px solid #232323;
  border-radius: 24px;
  box-shadow: 4px 4px 0 #111;
  color: var(--gfr-ink);
  transform: rotate(-3deg);
  transition: background .22s ease, transform .22s ease, box-shadow .22s ease;
}
.gfr-active .gf.gf-categories .gf-categories a:nth-child(3n + 2) .gfr-category-icon { transform: rotate(3deg); background: #fff0f9; }
.gfr-active .gf.gf-categories .gf-categories a:nth-child(3n + 3) .gfr-category-icon { transform: rotate(-1deg); background: #f0f4dd; }
.gfr-active .gf.gf-categories .gf-categories a:hover .gfr-category-icon,
.gfr-active .gf.gf-categories .gf-categories a:focus-visible .gfr-category-icon {
  background: var(--gfr-acid);
  transform: rotate(0) scale(1.045);
  box-shadow: 6px 6px 0 #111;
}
.gfr-active .gf.gf-categories .gf-categories a .gfr-category-icon svg { width: 35px; height: 35px; }
.gfr-rail-arrow {
  flex: 0 0 35px;
  display: grid;
  place-items: center;
  width: 35px;
  height: 35px;
  border: 1.5px solid #111;
  border-radius: 50%;
  background: #fff;
  cursor: pointer;
  transition: background .2s ease;
}
.gfr-rail-arrow:hover { background: var(--gfr-acid); }
.gfr-rail-arrow:disabled { opacity: .23; cursor: default; }
.gfr-rail-arrow:disabled:hover { background: #fff; }

@media (max-width: 1120px) {
  .gfr-active .gf-head { gap: 10px; }
  .gfr-main-nav { gap: 10px; }
  .gfr-main-nav a { font-size: 11px; }
  .gfr-active .gf.gf-hero .gf-copy h1 { font-size: clamp(54px, 6.45vw, 76px); }
  .gfr-copy-arrow { width: 112px; right: -15px; }
  .gfr-code strong { font-size: clamp(26px, 3.2vw, 38px); }
  .gfr-brand { font-size: clamp(40px, 5.1vw, 63px); }
}

@media (max-width: 900px) {
  .gfr-active .gf-notice { justify-content: space-around; }
  .gfr-active .gf-notice > span { padding: 0 12px; font-size: 10px; }
  .gfr-active .gf-head { min-height: 76px; gap: 8px; }
  .gfr-menu-toggle { display: inline-flex; }
  .gfr-main-nav {
    position: absolute;
    left: 12px;
    right: 12px;
    top: calc(100% - 2px);
    z-index: 30;
    display: none;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 8px 16px;
    background: #fff;
    border: 2px solid #111;
    border-radius: 0 0 13px 13px;
    box-shadow: 5px 7px 0 #111;
  }
  .gfr-active .gf-head.gfr-nav-open .gfr-main-nav { display: flex; }
  .gfr-main-nav a { padding: 13px 8px; font-size: 14px; }
  .gfr-main-nav a + a { border-top: 1px solid #e9e9e9; }
  .gfr-active .gf-head .gf-search.gfr-search { margin-left: auto; }
  .gfr-active .gf.gf-hero .gf-hero { padding: 30px 28px; min-height: 510px; }
  .gfr-active .gf.gf-hero .gf-copy h1 { font-size: clamp(47px, 6vw, 67px); }
  .gfr-active .gf.gf-hero .gf-copy > p:not(.gf-eyebrow) { font-size: 21px; }
  .gfr-copy-arrow { display: none; }
  .gfr-active .gf.gf-hero .gf-art { min-height: 390px; }
  .gfr-crown { width: 49px; height: 48px; font-size: 30px; }
  .gfr-heart { width: 78px; height: 51px; font-size: 52px; }
  .gfr-smile { width: 36px; height: 36px; font-size: 28px; border-width: 3px; }
  .gfr-bolt { width: 51px; }
}

@media (max-width: 680px) {
  .gfr-active .gf-notice { padding: 10px; }
  .gfr-active .gf-notice > span:nth-child(n + 2) { display: none; }
  .gfr-active .gf-notice > span { font-size: 11px; }
  .gfr-active .gf-head { flex-wrap: nowrap; padding: 13px 15px; min-height: 70px; }
  .gfr-active .gf-head .gf-logo { font-size: 31px; }
  .gfr-active .gf-head .gf-search.gfr-search { order: initial; flex-basis: 35px; width: 35px; min-width: 35px; }
  .gfr-active .gf-head .gf-search.gfr-search button { width: 35px; }
  .gfr-active .gf-head .gf-actions { margin-left: 0; gap: 2px; }
  .gfr-active .gf-head .gf-actions a { width: 32px; }
  .gfr-active .gf-head .gf-actions a:first-child { display: none; }
  .gfr-menu-toggle { width: 38px; height: 38px; flex: 0 0 38px; }
  .gfr-active .gf.gf-hero .gf-hero {
    grid-template-columns: minmax(0, 1fr);
    min-height: 0;
    gap: 8px;
    padding: 39px 24px 18px;
  }
  .gfr-active .gf.gf-hero .gf-copy { padding: 0; }
  .gfr-active .gf.gf-hero .gf-eyebrow { font-size: 9px !important; margin-bottom: 18px; }
  .gfr-active .gf.gf-hero .gf-copy h1 { font-size: clamp(51px, 12vw, 78px); max-width: 100%; }
  .gfr-active .gf.gf-hero .gf-copy > p:not(.gf-eyebrow) { margin: 24px 0 18px; max-width: 315px; font-size: clamp(18px, 4.8vw, 24px); }
  .gfr-active .gf.gf-hero .gf-button { padding: 14px 17px; font-size: 13px; }
  .gfr-active .gf.gf-hero .gf-art { min-height: 0; width: 100%; max-width: 510px; aspect-ratio: 1.2; margin: 6px auto 0; }
  .gfr-tv-wrap { width: 110%; transform: translate(1%, 1%) rotate(1deg); }
  .gfr-burst { right: -8%; top: -5%; }
  .gfr-paper { inset: 10% 0 4% 2%; }
  .gfr-code small { font-size: clamp(7px, 1.7vw, 10px); }
  .gfr-code strong { font-size: clamp(26px, 6.5vw, 40px); }
  .gfr-brand { font-size: clamp(40px, 10vw, 67px); }
  .gfr-crown { left: 6%; top: 16%; }
  .gfr-bolt { bottom: 13%; left: 0; }
  .gfr-sparks { right: -1%; }
  .gfr-active .gf.gf-categories.gfr-category-rail { padding: 17px 4px 10px; gap: 0; }
  .gfr-active .gf.gf-categories .gf-categories { gap: 8px; padding: 6px 11px 18px; }
  .gfr-active .gf.gf-categories .gf-categories a { flex-basis: 100px; font-size: 11px; }
  .gfr-active .gf.gf-categories .gf-categories a .gfr-category-icon { width: 70px; height: 70px; border-radius: 20px; }
  .gfr-active .gf.gf-categories .gf-categories a .gfr-category-icon svg { width: 30px; height: 30px; }
  .gfr-rail-arrow { display: none; }
}

@media (max-width: 390px) {
  .gfr-active .gf-head { padding-inline: 11px; gap: 5px; }
  .gfr-active .gf-head .gf-logo { font-size: 28px; }
  .gfr-active .gf.gf-hero .gf-hero { padding-inline: 18px; }
  .gfr-active .gf.gf-hero .gf-copy h1 { font-size: clamp(45px, 11.5vw, 54px); }
  .gfr-active .gf.gf-hero .gf-art { aspect-ratio: 1.04; }
}

@media (prefers-reduced-motion: reduce) {
  .gfr-active .gf * { scroll-behavior: auto !important; transition: none !important; }
  .gfr-code { animation: none; opacity: 1; }
  .gfr-brand { animation: none; display: none; }
}

/* v1.1: The reference's white search header and exact traced wordmarks. */
.gfr-sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}
.gfr-active .gf-head {
  background: #fff;
  min-height: 98px;
  gap: clamp(14px, 2.3vw, 33px);
  padding: 18px clamp(18px, 2.8vw, 33px);
}
.gfr-active .gf-head .gf-logo { flex: 0 0 auto; transform: none; line-height: 0; }
.gfr-active .gf-head .gf-logo:hover { transform: translateY(-1px); }
.gfr-active .gf-head .gf-logo img {
  display: block;
  width: clamp(123px, 13vw, 160px);
  height: auto;
  max-width: none;
  max-height: none;
}
.gfr-active .gf-head .gf-search.gfr-search-wide {
  position: relative;
  flex: 1 1 auto;
  width: auto;
  min-width: 0;
  min-height: 58px;
  margin: 0;
  padding: 6px;
  border: 2px solid #151515;
  border-radius: 100px;
  background: #fbfbfb;
  display: flex;
  align-items: center;
}
.gfr-active .gf-head .gf-search.gfr-search-wide input[name="s"] {
  display: block;
  position: static;
  min-width: 0;
  width: 100%;
  padding: 10px clamp(11px, 2vw, 22px);
  border: 0;
  box-shadow: none;
  background: transparent;
  font: 450 15px Outfit, Poppins, Arial, sans-serif;
}
.gfr-active .gf-head .gf-search.gfr-search-wide button {
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  background: var(--gfr-acid);
  color: var(--gfr-ink);
  border-radius: 50%;
  padding: 0;
  transition: transform .15s ease;
}
.gfr-active .gf-head .gf-search.gfr-search-wide button:hover { transform: scale(1.06); }
.gfr-active .gf-head .gf-actions {
  margin: 0;
  flex: 0 0 auto;
  display: flex;
  gap: clamp(9px, 1.6vw, 23px);
  align-items: center;
}
.gfr-active .gf-head .gf-actions .gfr-action {
  position: relative;
  border: 0;
  background: transparent;
  padding: 3px 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 6px;
  width: auto;
  min-width: 54px;
  height: auto;
  border-radius: 0;
  color: #111;
  font: 500 11px/1.2 Outfit, Poppins, sans-serif;
  cursor: pointer;
}
.gfr-active .gf-head .gf-actions .gfr-action:hover { color: #8e2098; background: none; }
.gfr-active .gf-head .gf-actions .gfr-action span { display: block; }
.gfr-active .gf-head .gf-actions .gfr-action svg { display: block; stroke-width: 1.6; }
.gfr-cart-count {
  position: absolute;
  top: -5px;
  left: calc(50% + 5px);
  min-width: 20px;
  height: 20px;
  display: grid;
  place-items: center;
  padding: 0 4px;
  background: #ea5b6d;
  color: white;
  border-radius: 99px;
  font: 800 11px/1 Outfit, Poppins, sans-serif;
  font-style: normal;
}
.gfr-reminder-panel[hidden] { display: none !important; }
.gfr-reminder-panel {
  position: absolute;
  z-index: 50;
  top: calc(100% - 4px);
  right: 12px;
  width: min(350px, calc(100vw - 24px));
  padding: 21px;
  border: 2px solid #111;
  border-radius: 16px;
  background: white;
  color: #111;
  box-shadow: 6px 7px 0 #111;
  font-family: Outfit, Poppins, Arial, sans-serif;
}
.gfr-reminder-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 20px; }
.gfr-reminder-heading button { border: 0; background: none; cursor: pointer; padding: 4px; }
.gfr-reminder-panel p { color: #666; font-size: 11px; line-height: 1.5; margin: 6px 0 17px; }
.gfr-reminder-form { display: grid; gap: 10px; }
.gfr-reminder-form label { display: grid; gap: 5px; font-size: 12px; font-weight: 650; }
.gfr-reminder-form input { min-height: 42px; width: 100%; border: 1px solid #aaa; border-radius: 8px; padding: 9px; font: inherit; }
.gfr-reminder-form > button { min-height: 41px; border: 0; background: var(--gfr-acid); border-radius: 8px; font: 800 13px Outfit, Poppins, sans-serif; cursor: pointer; }
.gfr-reminder-list { margin: 14px 0 0; padding: 0; list-style: none; max-height: 180px; overflow: auto; }
.gfr-reminder-list li { display: flex; gap: 8px; align-items: center; justify-content: space-between; padding: 8px 0; border-bottom: 1px solid #ddd; font-size: 12px; }
.gfr-reminder-list li button { border: 0; color: #a02e40; background: none; cursor: pointer; font-size: 11px; }
.gfr-reminder-list li.gfr-reminder-empty { color: #777; }

/* Explicit independent columns prevent the title and television from colliding. */
.gfr-active .gf.gf-hero .gf-hero {
  display: block;
  min-height: 675px;
  padding: 45px clamp(28px, 4.4vw, 58px) 42px;
}
.gfr-active .gf.gf-hero .gf-copy { position: relative; width: 49%; z-index: 5; padding: 0; }
.gfr-active .gf.gf-hero .gf-copy h1 {
  display: block;
  position: relative;
  width: min(100%, 545px);
  max-width: 100%;
  margin: 12px 0 13px;
  line-height: 0;
  letter-spacing: normal;
  transform: none;
}
.gfr-active .gf.gf-hero .gf-copy h1 img.gfr-headline-image { display: block; width: 100%; height: auto; }
.gfr-active .gf.gf-hero .gf-copy h1 span:last-child::after { display: none; }
.gfr-active .gf.gf-hero .gf-copy > p:not(.gf-eyebrow) {
  max-width: 335px;
  font-size: clamp(23px, 2.25vw, 30px);
  letter-spacing: -.04em;
  margin: 0 0 23px;
}
.gfr-active .gf.gf-hero .gf-art {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 51%;
  max-width: none;
  min-height: 0;
  margin: 0;
  z-index: 2;
  display: grid;
  align-items: center;
  justify-items: center;
}
.gfr-active .gf.gf-hero .gfr-tv-wrap {
  width: 100%;
  max-width: 670px;
  transform: translate(0, 3%) rotate(1deg);
}
.gfr-brand img { display: block; width: clamp(120px, 17vw, 205px); height: auto; }
.gfr-code strong { font-size: clamp(24px, 2.9vw, 40px); }
.gfr-copy-arrow { right: -25px; top: 25px; }

/* All categories visible: desktop row, responsive multi-row grid, no scroll. */
.gfr-active .gf.gf-categories.gfr-category-rail { display: block; padding: 27px 14px 30px; overflow: visible; }
.gfr-active .gf.gf-categories .gf-categories {
  display: grid;
  grid-template-columns: repeat(10, minmax(0, 1fr));
  gap: 12px 4px;
  overflow: visible !important;
  padding: 4px 0;
  scroll-snap-type: none;
  width: 100%;
}
.gfr-active .gf.gf-categories .gf-categories a {
  min-width: 0;
  width: 100%;
  flex: none;
  padding: 4px 1px 9px;
  white-space: normal;
  font-size: 11px;
  line-height: 1.25;
  gap: 13px;
}
.gfr-active .gf.gf-categories .gf-categories a .gfr-category-icon,
.gfr-active .gf.gf-categories .gf-categories a:nth-child(n) .gfr-category-icon {
  width: 74px;
  height: 74px;
  max-width: 100%;
  border: 1px solid #e7e5de;
  border-radius: 50%;
  box-shadow: none;
  background: #f3f2ed;
  transform: none;
}
.gfr-active .gf.gf-categories .gf-categories a:hover .gfr-category-icon,
.gfr-active .gf.gf-categories .gf-categories a:focus-visible .gfr-category-icon { background: #eefca7; box-shadow: none; transform: translateY(-3px); }
.gfr-active .gf.gf-categories .gf-categories a .gfr-category-icon svg { display: block; width: 40px; height: 40px; }
.gfr-rail-arrow { display: none !important; }

@media (max-width: 1040px) {
  .gfr-active .gf.gf-hero .gf-hero { min-height: 615px; padding-inline: 30px; }
  .gfr-active .gf.gf-hero .gf-copy { width: 48%; }
  .gfr-active .gf.gf-hero .gf-art { width: 52%; }
  .gfr-active .gf.gf-hero .gf-copy > p:not(.gf-eyebrow) { font-size: 24px; }
  .gfr-active .gf.gf-categories .gf-categories { grid-template-columns: repeat(5, minmax(0, 1fr)); row-gap: 19px; }
}

@media (max-width: 750px) {
  .gfr-active .gf-head { gap: 10px; padding: 15px; }
  .gfr-active .gf-head .gf-logo img { width: 120px; }
  .gfr-active .gf-head .gf-actions { gap: 6px; }
  .gfr-active .gf-head .gf-actions .gfr-action { min-width: 49px; font-size: 10px; }
  .gfr-active .gf-head .gf-actions .gfr-action svg { width: 22px; height: 22px; }
  .gfr-active .gf-head .gf-search.gfr-search-wide { min-height: 51px; }
  .gfr-active .gf-head .gf-search.gfr-search-wide button { width: 39px; height: 39px; flex-basis: 39px; }
  .gfr-active .gf.gf-hero .gf-hero { min-height: 555px; }
  .gfr-active .gf.gf-hero .gf-copy h1 { width: 100%; }
  .gfr-active .gf.gf-hero .gf-copy > p:not(.gf-eyebrow) { font-size: 21px; max-width: 250px; }
}

@media (max-width: 620px) {
  .gfr-active .gf-head { flex-wrap: wrap; min-height: 0; gap: 12px 6px; }
  .gfr-active .gf-head .gf-logo img { width: 118px; }
  .gfr-active .gf-head .gf-actions { margin-left: auto; gap: 9px; }
  .gfr-active .gf-head .gf-actions .gfr-action { min-width: 47px; }
  .gfr-active .gf-head .gf-actions .gfr-action span { font-size: 9px; }
  .gfr-active .gf-head .gf-search.gfr-search-wide { order: 3; flex-basis: 100%; min-height: 49px; }
  .gfr-active .gf.gf-hero .gf-hero { min-height: 0; padding: 32px 23px 15px; }
  .gfr-active .gf.gf-hero .gf-copy { width: 100%; }
  .gfr-active .gf.gf-hero .gf-copy h1 { max-width: 470px; margin: 9px 0 10px; }
  .gfr-active .gf.gf-hero .gf-copy > p:not(.gf-eyebrow) { max-width: 270px; font-size: 22px; }
  .gfr-active .gf.gf-hero .gf-art { position: relative; width: 100%; aspect-ratio: 1.12; min-height: 0; margin: 10px auto 0; }
  .gfr-active .gf.gf-hero .gfr-tv-wrap { width: 98%; transform: translateY(0) rotate(1deg); }
  .gfr-brand img { width: clamp(105px, 39vw, 200px); }
  .gfr-code strong { font-size: clamp(23px, 6.4vw, 40px); }
  .gfr-active .gf.gf-categories .gf-categories { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px 5px; }
  .gfr-active .gf.gf-categories .gf-categories a .gfr-category-icon,
  .gfr-active .gf.gf-categories .gf-categories a:nth-child(n) .gfr-category-icon { width: 68px; height: 68px; }
}

/* v1.2: reference-scale benefit strip, collage artwork, emoji circles and CRT glitch. */
.gfr-active .gf-notice {
  min-height: 58px;
  gap: 0;
  padding: 12px 18px;
  font: 600 clamp(11px, 1.15vw, 14px)/1.25 Outfit, Poppins, sans-serif;
  letter-spacing: 0;
}
.gfr-active .gf-notice > span { min-height: 30px; gap: 12px; padding: 0 clamp(14px, 2.4vw, 34px); }
.gfr-active .gf-notice svg { width: 28px; height: 28px; stroke-width: 2.1; }
.gfr-active .gf-notice b { font-weight: 650; }
.gfr-active .gf.gf-hero .gfr-tv-wrap {
  width: 105%;
  max-width: 725px;
  transform: translate(-1%, 0) rotate(0);
}
.gfr-active .gf.gf-hero .gfr-tv-image { width: 100%; height: auto; filter: drop-shadow(0 16px 13px rgba(0,0,0,.13)); }
.gfr-active .gf.gf-hero .gfr-screen-display {
  left: 27%;
  top: 28.5%;
  width: 49%;
  height: 35%;
  transform: rotate(-3deg) skew(-2deg);
  overflow: hidden;
  isolation: isolate;
}
.gfr-active .gf.gf-hero .gfr-screen-display > .gfr-code,
.gfr-active .gf.gf-hero .gfr-screen-display > .gfr-brand {
  position: relative;
  z-index: 2;
  width: 100%;
  height: auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  margin: 0;
}
.gfr-active .gf.gf-hero .gfr-code small {
  display: block;
  margin: 0 0 4%;
  color: #111;
  font: 900 clamp(8px, 1vw, 13px)/1.2 Outfit, Poppins, Arial, sans-serif;
  letter-spacing: .22em;
}
.gfr-active .gf.gf-hero .gfr-coupon-wordmark { display: block; width: 94%; height: auto; }
.gfr-active .gf.gf-hero .gfr-brand img {
  display: block;
  width: 88%;
  max-width: none;
  height: auto;
}

/* Code -> green-black CRT interference -> brand -> interference, 3s per loop. */
.gfr-active .gf.gf-hero .gfr-code { animation: gfr-code-3 3s linear infinite both; }
.gfr-active .gf.gf-hero .gfr-brand { animation: gfr-brand-3 3s linear infinite both; }
.gfr-glitch {
  position: absolute !important;
  z-index: 5 !important;
  inset: -4%;
  width: 108% !important;
  height: 108% !important;
  background:
    repeating-linear-gradient(0deg, rgba(5,16,2,.87) 0 1px, rgba(158,246,5,.85) 1px 2px, rgba(18,35,0,.35) 2px 4px, transparent 4px 7px),
    repeating-linear-gradient(90deg, rgba(0,0,0,.25) 0 3px, transparent 3px 11px);
  mix-blend-mode: multiply;
  opacity: 0;
  pointer-events: none;
  animation: gfr-crt-noise 3s steps(2, end) infinite;
}
.gfr-glitch::after {
  content: '';
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(0deg, transparent 0 13px, #0d1b02 13px 16px, #b6ff16 16px 18px, transparent 18px 31px);
  opacity: .8;
}
@keyframes gfr-code-3 {
  0%, 37% { opacity: 1; transform: translateX(0) scale(1); filter: none; }
  42% { opacity: .45; transform: translateX(-2.5%); filter: contrast(2); }
  46%, 92% { opacity: 0; transform: translateX(2%); }
  96% { opacity: .2; transform: translateX(-2%); }
  100% { opacity: 1; transform: translateX(0); }
}
@keyframes gfr-brand-3 {
  0%, 43% { opacity: 0; transform: translateX(2%); }
  48%, 88% { opacity: 1; transform: translateX(0) scale(1); filter: none; }
  92% { opacity: .4; transform: translateX(3%); filter: contrast(2); }
  96%, 100% { opacity: 0; transform: translateX(-2%); }
}
@keyframes gfr-crt-noise {
  0%, 37%, 48%, 88%, 100% { opacity: 0; transform: translate(0, 0); }
  39% { opacity: .8; transform: translate(-2%, 2%); }
  41% { opacity: 1; transform: translate(2%, -3%); }
  43% { opacity: .75; transform: translate(-4%, 1%); }
  45% { opacity: .95; transform: translate(3%, 4%); }
  47% { opacity: .2; transform: translate(0, 0); }
  90% { opacity: .9; transform: translate(3%, -2%); }
  92% { opacity: 1; transform: translate(-2%, 3%); }
  94% { opacity: .8; transform: translate(4%, 1%); }
  96% { opacity: .15; transform: translate(0, 0); }
}

.gfr-active .gf.gf-categories .gf-categories a .gfr-category-icon img.gfr-emoji {
  display: block;
  width: 51px;
  height: 51px;
  max-width: 75%;
  max-height: 75%;
  object-fit: contain;
  image-rendering: auto;
}

@media (max-width: 700px) {
  .gfr-active .gf-notice {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    width: 100%;
    min-height: 71px;
    padding: 8px 4px;
    gap: 0;
  }
  .gfr-active .gf-notice > span,
  .gfr-active .gf-notice > span:nth-child(n+2) {
    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    padding: 0 6px;
    white-space: normal;
    text-align: center;
  }
  .gfr-active .gf-notice > span + span { border-left: 1px solid var(--gfr-acid); }
  .gfr-active .gf-notice svg { width: 22px; height: 22px; }
  .gfr-active .gf-notice b { font-size: clamp(8px, 1.8vw, 11px); line-height: 1.2; }
  .gfr-active .gf.gf-hero .gfr-tv-wrap { width: 104%; transform: translateX(-1%); }
  .gfr-active .gf.gf-hero .gfr-code small { font-size: clamp(7px, 1.75vw, 11px); }
  .gfr-active .gf.gf-categories .gf-categories a .gfr-category-icon img.gfr-emoji { width: 47px; height: 47px; }
}

@media (prefers-reduced-motion: reduce) {
  .gfr-active .gf.gf-hero .gfr-code { animation: none !important; opacity: 1; }
  .gfr-active .gf.gf-hero .gfr-brand { animation: none !important; display: none; }
  .gfr-glitch { display: none !important; }
}

/* v1.3: centered max-width composition, TV-bound CRT and plain FII lettering. */
:root { --gfr-content-max: 1200px; }
html.gfr-active { background: #f7f7f7; }
html.gfr-active .gf.gf-header,
html.gfr-active .gf.gf-categories,
html.gfr-active .gf.gf-hero,
html.gfr-active .gf.gf-products {
  width: 100%;
  max-width: var(--gfr-content-max);
  margin-inline: auto;
}
html.gfr-active .gf.gf-hero .gf-hero { width: 100%; max-width: 100%; }
html.gfr-active .gf.gf-header { background: #fff; }

/* The inner search field has no rectangular purple outline. The pill glows lime. */
html.gfr-active .gf-head .gf-search.gfr-search-wide {
  transition: border-color .16s ease, background-color .16s ease, box-shadow .16s ease;
}
html.gfr-active .gf-head .gf-search.gfr-search-wide:focus-within {
  border-color: #84be16;
  box-shadow: 0 0 0 3px rgba(223, 255, 0, .47), 0 0 0 1px #7aa917 inset;
  background: #fbfff1;
}
html.gfr-active .gf-head .gf-search.gfr-search-wide input[name="s"],
html.gfr-active .gf-head .gf-search.gfr-search-wide input[name="s"]:focus,
html.gfr-active .gf-head .gf-search.gfr-search-wide input[name="s"]:focus-visible {
  outline: none !important;
  border: none !important;
  box-shadow: none !important;
  background: transparent !important;
}

/* One original-style, high-resolution vector wordmark; FII has no bolts. */
html.gfr-active .gf.gf-hero .gfr-coupon-wordmark {
  display: block;
  width: 94%;
  max-width: none;
  height: auto;
}

/* Crop the switching signal to the TV glass instead of a square over its bezel. */
html.gfr-active .gf.gf-hero .gfr-screen-display {
  left: 28%;
  top: 28.5%;
  width: 45.3%;
  height: 36%;
  overflow: hidden;
  border-radius: 13% 13% 14% 14% / 16% 16% 17% 17%;
  clip-path: inset(1% 1% 1.5% 1% round 14% 14% 17% 17%);
  isolation: isolate;
}
html.gfr-active .gf.gf-hero .gfr-screen-display::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 7;
  pointer-events: none;
  background: repeating-linear-gradient(0deg, rgba(10,23,0,.15) 0 1px, transparent 1px 4px);
  mix-blend-mode: multiply;
}
html.gfr-active .gf.gf-hero .gfr-glitch {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  transform-origin: center;
  background: repeating-linear-gradient(0deg, rgba(5, 17, 2, .72) 0 1px, rgba(181,255,17,.60) 1px 2px, rgba(15,31,0,.16) 2px 4px, transparent 4px 8px);
  mix-blend-mode: multiply;
}
html.gfr-active .gf.gf-hero .gfr-glitch::after {
  inset: 0;
  background: repeating-linear-gradient(0deg, rgba(5, 22, 2, .9) 0 2px, transparent 2px 12px, rgba(205,255,0,.63) 12px 14px, transparent 14px 24px);
}

/* The crown sticker is baked into the TV artwork. Repaint only its shape above
   the glass interference so the CRT signal passes BEHIND the pink paper. */
html.gfr-active .gf.gf-hero .gfr-tv-sticker-layer {
  position: absolute;
  z-index: 10;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: fill;
  pointer-events: none;
  clip-path: polygon(22% 27.8%, 33.5% 24.6%, 35.7% 32.9%, 23.0% 37.1%, 22.3% 36.0%);
}

@media (max-width: 620px) {
  html.gfr-active .gf.gf-hero .gfr-coupon-wordmark { width: 96%; }
}

/* v1.4: arrow proportions from the original GIFTOS hero reference. */
@media (min-width: 901px) {
  html.gfr-active .gf.gf-hero .gfr-copy-arrow {
    width: 200px;
    height: auto;
    top: 0;
    right: 24px;
  }
}

/* v1.7: Only the header backdrop changes. The original logo, search and
   actions stay in their existing positions and retain their interactions. */
html.gfr-active .gf.gf-header { background-color: #fff; }
html.gfr-active .gf.gf-header .gf-head {
  background-color: #fff;
  background-image: url('header-torn-paper.webp');
  background-position: center;
  background-size: 110% 114%;
  background-repeat: no-repeat;
}
