:root {
  --ink: #17283e;
  --muted: #617587;
  --paper: #fffdf9;
  --surface: #ffffff;
  --line: #dce5ea;
  --green: #17283e;
  --green-2: #0d1a2a;
  --gold: #f3bd7b;
  --coral: #d84431;
  --blue: #1d8271;
  --shadow: 0 18px 45px rgba(23, 40, 62, 0.09);
}

* { box-sizing: border-box; }
body {
  margin: 0;
  color: var(--ink);
  background: linear-gradient(180deg, #fff 0%, var(--paper) 100%);
  font-family: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.5;
}
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 18px clamp(20px, 5vw, 64px);
  background: #17283e;
  border-bottom: 1px solid rgba(255,255,255,0.14);
  backdrop-filter: blur(16px);
  color: #fff;
}
.brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-weight: 850;
  letter-spacing: 0;
}
.brand-mark {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  color: var(--green);
  background: #fff;
  border-radius: 8px;
  font-weight: 900;
}
.header-search {
  flex: 1;
  max-width: 520px;
}
.header-search input {
  min-height: 40px;
  border: 0;
  border-radius: 999px;
  padding-inline: 18px;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.06);
}
.nav { display: flex; gap: 24px; color: rgba(255,255,255,.82); font-size: 14px; font-weight: 700; }
.nav a:hover { color: #fff; }

.hero {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(320px, 0.9fr);
  gap: clamp(28px, 6vw, 72px);
  align-items: center;
  min-height: 620px;
  padding: 58px clamp(20px, 5vw, 64px) 72px;
  overflow: hidden;
}
.hero h1 {
  max-width: 780px;
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(48px, 7vw, 96px);
  line-height: 0.94;
  letter-spacing: 0;
}
.hero p { max-width: 630px; color: var(--muted); font-size: 20px; }
.search-panel {
  display: flex;
  max-width: 620px;
  margin-top: 34px;
  padding: 8px;
  background: #fff;
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
}
.search-panel input {
  min-width: 0;
  flex: 1;
  border: 0;
  padding: 14px 16px;
  outline: 0;
}
.search-panel.compact {
  max-width: 720px;
  margin-top: 22px;
}
.button, .search-panel button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 11px 18px;
  color: #fff;
  background: var(--green);
  border: 1px solid var(--green);
  border-radius: 6px;
  font-weight: 800;
  cursor: pointer;
}
.button:hover, .search-panel button:hover { background: var(--green-2); }
.button.ghost {
  color: var(--green);
  background: transparent;
  border-color: var(--line);
}
.button.full, .full { width: 100%; }

.hero-visual {
  position: relative;
  min-height: 450px;
}
.deal-carousel {
  position: absolute;
  inset: 30px 0 0;
  display: grid;
  align-content: end;
  min-height: 420px;
  padding: 26px;
  color: #fff;
  background:
    radial-gradient(circle at 20% 15%, rgba(255,255,255,.24), transparent 28%),
    linear-gradient(135deg, #17283e, #1d8271 58%, #f3bd7b);
  border-radius: 10px;
  box-shadow: 0 28px 70px rgba(67, 16, 95, 0.28);
  overflow: hidden;
}
.deal-carousel::before {
  content: "";
  position: absolute;
  inset: 24px;
  border: 2px dashed rgba(255,255,255,.42);
  border-radius: 8px;
  pointer-events: none;
}
.carousel-track { position: relative; min-height: 260px; }
.carousel-slide {
  position: absolute;
  inset: auto 0 0;
  display: grid;
  gap: 10px;
  opacity: 0;
  transform: translateX(18px);
  transition: opacity .35s ease, transform .35s ease;
}
.carousel-slide.active {
  opacity: 1;
  transform: translateX(0);
}
.carousel-slide .offer-type {
  color: #fff;
  background: rgba(255,255,255,.18);
}
.carousel-slide h2 {
  max-width: 520px;
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(38px, 5vw, 62px);
  line-height: .95;
}
.carousel-slide p {
  margin: 0;
  color: rgba(255,255,255,.82);
  font-size: 19px;
  font-weight: 800;
}
.carousel-slide a {
  width: fit-content;
  margin-top: 12px;
  padding: 11px 16px;
  color: var(--green);
  background: #fff;
  border-radius: 6px;
  font-weight: 900;
}
.carousel-controls {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-top: 22px;
}
.carousel-controls button {
  width: 38px;
  height: 38px;
  color: #fff;
  background: rgba(255,255,255,.16);
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 999px;
  cursor: pointer;
  font-size: 24px;
  font-weight: 900;
}
.carousel-dots { display: flex; gap: 8px; }
.carousel-dots button {
  width: 9px;
  height: 9px;
  padding: 0;
  background: rgba(255,255,255,.42);
  border: 0;
}
.carousel-dots button.active { width: 28px; background: #fff; }

.section, .band, .page-head, .post, .store-hero, .store-layout {
  padding-inline: clamp(20px, 5vw, 64px);
}
.section, .band { padding-top: 60px; padding-bottom: 60px; }
.band { background: #edf3f6; }
.section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 24px;
}
.section-heading h2, .page-head h1, .store-layout h2, .faq-section h2 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  line-height: 1.05;
}
.section-heading h2 { font-size: clamp(28px, 4vw, 44px); }
.section-heading a { color: var(--green); font-weight: 800; }

.store-grid, .category-grid, .article-grid, .offer-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: 16px;
}
.store-card, .category-card, .article-card, .article-row, .offer-card {
  display: flex;
  gap: 14px;
  min-height: 116px;
  padding: 18px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(22, 32, 27, 0.04);
}
.store-card:hover, .category-card:hover, .article-card:hover, .offer-card:hover { border-color: var(--green); transform: translateY(-1px); }
.store-logo {
  display: grid;
  flex: 0 0 52px;
  width: 52px;
  height: 52px;
  place-items: center;
  color: #fff;
  background: var(--blue);
  border-radius: 8px;
  font-weight: 900;
  overflow: hidden;
}
.store-logo.large { width: 86px; height: 86px; font-size: 34px; }
.store-logo.small { width: 42px; height: 42px; flex-basis: 42px; }
.store-card-body { display: grid; gap: 6px; }
.store-card-body span, .category-card p, .article-card p, .article-row span { color: var(--muted); font-size: 14px; }
.offer-card {
  display: grid;
  position: relative;
  min-height: 270px;
  align-content: start;
  overflow: hidden;
}
.offer-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 7px;
  background: linear-gradient(90deg, var(--green), var(--coral), var(--gold));
}
.offer-store {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-weight: 900;
}
.offer-type {
  width: fit-content;
  margin-top: 18px;
  padding: 5px 8px;
  color: var(--green);
  background: #edf3f6;
  border-radius: 5px;
  font-size: 12px;
  font-weight: 900;
}
.offer-card h3 {
  margin: 12px 0 4px;
  font-size: 23px;
  line-height: 1.12;
}
.offer-card p {
  min-height: 42px;
  color: var(--muted);
}

.two-column {
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
  gap: 42px;
}
.category-list { display: flex; flex-wrap: wrap; gap: 10px; }
.category-list a, .tag-row a {
  padding: 8px 12px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--green);
  font-size: 14px;
  font-weight: 800;
}
.article-list { display: grid; gap: 12px; }
.article-row { display: grid; min-height: auto; }

.page-head {
  padding-top: 58px;
  padding-bottom: 34px;
  background: linear-gradient(180deg, #edf3f6, var(--paper));
}
.page-head h1 { max-width: 900px; font-size: clamp(40px, 6vw, 72px); }
.page-head p { max-width: 720px; color: var(--muted); font-size: 18px; }

.store-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding-top: 52px;
  padding-bottom: 42px;
  background: #edf3f6;
}
.store-identity { display: flex; align-items: center; gap: 22px; }
.store-identity h1 { margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(38px, 5vw, 64px); line-height: 1; }
.store-identity p { max-width: 720px; color: var(--muted); }
.tag-row { display: flex; flex-wrap: wrap; gap: 8px; }
.store-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 28px;
  padding-top: 54px;
  padding-bottom: 54px;
}
.coupon-list { display: grid; gap: 16px; margin-top: 18px; }
.coupon-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  padding: 22px;
  background: #fff;
  border: 1px solid var(--line);
  border-left: 6px solid var(--gold);
  border-radius: 8px;
  box-shadow: var(--shadow);
}
.coupon-meta { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
.coupon-meta span {
  padding: 5px 8px;
  background: #edf3f6;
  color: var(--green);
  border-radius: 5px;
  font-size: 12px;
  font-weight: 900;
}
.coupon-card h3 { margin: 0 0 6px; font-size: 24px; }
.coupon-card p { color: var(--muted); margin: 0 0 8px; }
.coupon-card small { color: var(--muted); }
.coupon-action { display: grid; align-content: center; gap: 10px; min-width: 180px; }
.code-button {
  display: grid;
  gap: 4px;
  padding: 10px;
  color: var(--ink);
  background: #fff9df;
  border: 1px dashed var(--gold);
  border-radius: 6px;
  cursor: pointer;
}
.code-button span { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-weight: 900; }
.store-sidebar {
  align-self: start;
  padding: 22px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
}
.store-sidebar p { color: var(--muted); }
.faq-section details {
  padding: 18px 0;
  border-bottom: 1px solid var(--line);
}
.faq-section summary { cursor: pointer; font-weight: 850; }
.faq-section p { color: var(--muted); }

.category-card, .article-card { display: grid; }
.category-card strong, .article-card h2 { font-size: 22px; }
.article-card span { color: var(--green); font-weight: 900; font-size: 13px; }
.post { max-width: 900px; padding-top: 58px; padding-bottom: 40px; }
.post h1 { margin: 18px 0 12px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(42px, 6vw, 74px); line-height: 1; }
.post-excerpt { color: var(--muted); font-size: 19px; }
.post-content { font-size: 18px; }
.back-link { color: var(--green); font-weight: 800; }
.empty { color: var(--muted); }
.site-footer {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding: 32px clamp(20px, 5vw, 64px);
  color: var(--muted);
  border-top: 1px solid var(--line);
}

.auth-body {
  display: grid;
  min-height: 100vh;
  place-items: center;
  padding: 20px;
  background: linear-gradient(135deg, #edf3f6, #fff3eb);
}
.auth-card {
  width: min(100%, 430px);
  padding: 30px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: var(--shadow);
}
.auth-card h1 { margin: 28px 0 6px; }
.auth-card p { color: var(--muted); }
.stack-form { display: grid; gap: 14px; margin-top: 20px; }
.stack-form label, .admin-form label { display: grid; gap: 7px; font-weight: 800; }
input, select, textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
  padding: 11px 12px;
  color: var(--ink);
}
textarea { resize: vertical; }
.alert {
  margin: 0 0 16px;
  padding: 12px 14px;
  border-radius: 6px;
  font-weight: 800;
}
.alert.success { color: #0f4f40; background: #dff1ea; }
.alert.error { color: #922f20; background: #ffe2dc; }

.admin-body {
  display: grid;
  grid-template-columns: 250px minmax(0, 1fr);
  min-height: 100vh;
  background: #f6f7f4;
}
.admin-sidebar {
  position: sticky;
  top: 0;
  height: 100vh;
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding: 20px;
  background: #17283e;
  color: #fff;
}
.admin-brand .brand-mark { background: var(--gold); color: var(--ink); }
.admin-nav { display: grid; gap: 4px; }
.admin-nav a {
  padding: 10px 12px;
  color: rgba(255,255,255,.8);
  border-radius: 6px;
  font-weight: 800;
}
.admin-nav a:hover { color: #fff; background: rgba(255,255,255,.09); }
.language-switch {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  padding-top: 8px;
  border-top: 1px solid rgba(255,255,255,.14);
}
.language-switch span {
  grid-column: 1 / -1;
  color: rgba(255,255,255,.62);
  font-size: 12px;
  font-weight: 800;
}
.language-switch a {
  padding: 7px 10px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 6px;
  color: rgba(255,255,255,.82);
  text-align: center;
  font-size: 13px;
  font-weight: 800;
}
.language-switch a.active {
  color: var(--ink);
  background: #fff;
}
.admin-main { min-width: 0; padding: 24px; }
.admin-topbar {
  display: flex;
  justify-content: flex-end;
  color: var(--muted);
  margin-bottom: 18px;
}
.admin-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 20px;
}
.admin-heading h1 { margin: 0; font-size: 32px; }
.admin-heading p { margin: 6px 0 0; color: var(--muted); }
.metric-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 20px;
}
.metric, .admin-panel, .admin-form {
  padding: 20px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(22, 32, 27, 0.04);
}
.metric span { display: block; color: var(--muted); font-size: 13px; font-weight: 800; }
.metric strong { font-size: 34px; }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: 12px 10px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
th { color: var(--muted); font-size: 12px; text-transform: uppercase; }
.actions { display: flex; align-items: center; gap: 10px; }
.actions a { color: var(--green); font-weight: 800; }
.actions button {
  padding: 0;
  color: #b3402d;
  background: transparent;
  border: 0;
  cursor: pointer;
  font-weight: 800;
}
.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.form-grid .wide { grid-column: 1 / -1; }
.check-line {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 44px;
  color: var(--muted);
}
.check-line input { width: auto; }
.form-actions { display: flex; gap: 12px; margin-top: 20px; }

@media (max-width: 860px) {
  .site-header, .site-footer, .store-hero { align-items: flex-start; flex-direction: column; }
  .hero, .two-column, .store-layout, .admin-body { grid-template-columns: 1fr; }
  .hero { min-height: auto; padding-top: 38px; }
  .hero-visual { min-height: 310px; }
  .coupon-card { grid-template-columns: 1fr; }
  .coupon-action { min-width: 0; }
  .admin-sidebar { position: static; height: auto; }
  .metric-grid, .form-grid { grid-template-columns: 1fr; }
  .header-search { width: 100%; max-width: none; }
}

@media (max-width: 560px) {
  .nav { width: 100%; justify-content: space-between; gap: 12px; }
  .search-panel { display: grid; }
  .store-identity { align-items: flex-start; flex-direction: column; }
  .section, .band { padding-top: 42px; padding-bottom: 42px; }
  .deal-carousel { position: relative; inset: auto; min-height: 360px; }
}

/* Homepage redesign: retail editorial rhythm with flexible content rails. */
.site-promo {
  display: flex;
  justify-content: center;
  gap: 8px;
  padding: 8px 20px;
  color: #fff;
  background: #17283e;
  font-size: 12px;
  font-weight: 750;
  letter-spacing: .01em;
}
.site-promo a { text-decoration: underline; text-underline-offset: 3px; }
.site-header {
  position: sticky;
  padding: 13px clamp(20px, 5vw, 72px);
  color: #17283e;
  background: rgba(255,255,255,.96);
  border-bottom-color: #e2e8ee;
  box-shadow: 0 3px 14px rgba(19,36,57,.05);
  backdrop-filter: blur(12px);
}
.site-header .brand { font-family: Georgia, "Times New Roman", serif; font-size: 21px; color: #17283e; }
.site-header .brand-mark { width: 31px; height: 31px; color: #fff; background: #dc4734; border-radius: 50%; font-family: ui-sans-serif, sans-serif; }
.site-header .brand-text { gap: 8px; font-family: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 20px; font-weight: 900; letter-spacing: -.05em; }
.site-header .brand-text .brand-mark { color: #fff; background: #168e87; }
.brand-wordmark span:first-child { color: #0e5e63; }.brand-wordmark span:last-child { color: #e8901f; }
.site-header .header-search { max-width: 390px; }
.site-header .header-search input { min-height: 38px; color: #17283e; background: #f2f5f7; box-shadow: none; }
.site-header .nav { gap: clamp(15px, 2vw, 28px); color: #2c4056; font-size: 13px; }
.site-header .nav a:hover { color: #dc4734; }
.home-shell { width: min(1280px, calc(100% - 40px)); margin-inline: auto; }
.home-hero { overflow: hidden; color: #fff; background: #d84431; }
.hero-grid { display: grid; grid-template-columns: minmax(0, .93fr) minmax(420px, 1.07fr); gap: 60px; align-items: center; min-height: 518px; padding-block: 58px; }
.home-hero .hero-copy { padding: 0; }
.hero-kicker, .section-label > div > p, .seasonal-inner > p, .editorial-copy > p, .store-strip p { margin: 0 0 12px; font-size: 11px; font-weight: 900; letter-spacing: .13em; }
.hero-kicker { color: #ffe4d4; }
.home-hero h1 { max-width: 630px; margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(48px, 5.4vw, 78px); line-height: .93; letter-spacing: -.055em; }
.home-hero .hero-copy > p:not(.hero-kicker) { max-width: 495px; margin: 22px 0 0; color: #fff1e9; font-size: 18px; line-height: 1.55; }
.deal-search { display: flex; align-items: center; max-width: 560px; margin-top: 30px; padding: 5px; background: #fff; box-shadow: 0 16px 32px rgba(83,24,13,.2); }
.deal-search input { min-width: 0; flex: 1; padding: 13px 15px; color: #17283e; border: 0; outline: 0; font-size: 14px; }
.deal-search button, .dark-button { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 46px; padding: 10px 17px; color: #fff; background: #17283e; border: 0; font-weight: 850; cursor: pointer; }
.deal-search button span, .section-label a span, .trend-card a span, .seasonal-inner a span, .guide-grid b, .editorial-row b { font-size: 18px; line-height: 1; }
.hero-proof { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 20px; color: #ffe4d4; font-size: 12px; font-weight: 750; }
.hero-carousel { position: relative; min-height: 398px; }
.home-banner { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-end; min-height: 398px; padding: 40px; color: var(--banner-text, #fff); background-color: var(--banner-bg, #17283e); background-image: linear-gradient(90deg, color-mix(in srgb, var(--banner-bg, #17283e) 94%, transparent) 0%, color-mix(in srgb, var(--banner-bg, #17283e) 67%, transparent) 56%, transparent 100%), var(--banner-image, none); background-position: center; background-size: cover; border-radius: 3px; opacity: 0; transform: translateX(18px); transition: opacity .38s ease, transform .38s ease; pointer-events: none; }
.home-banner.active { opacity: 1; transform: translateX(0); pointer-events: auto; }
.home-banner > span { padding: 6px 8px; color: inherit; background: rgba(255,255,255,.18); font-size: 11px; font-weight: 900; letter-spacing: .1em; }
.home-banner h2 { max-width: 420px; margin: 19px 0 10px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(38px, 4vw, 59px); line-height: .94; letter-spacing: -.045em; }
.home-banner p { max-width: 350px; margin: 0; color: inherit; opacity: .88; font-size: 16px; }
.home-banner a { display: inline-flex; align-items: center; gap: 10px; margin-top: 25px; padding: 12px 15px; color: #17283e; background: #fff; font-size: 13px; font-weight: 900; }
.banner-controls { position: absolute; right: 22px; bottom: 20px; z-index: 2; display: flex; align-items: center; gap: 12px; }
.banner-controls > button { display: grid; width: 31px; height: 31px; place-items: center; color: #fff; background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.55); border-radius: 50%; cursor: pointer; }
.banner-controls svg { width: 17px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; }
.banner-dots { display: flex; gap: 6px; }
.banner-dots button { width: 7px; height: 7px; padding: 0; background: rgba(255,255,255,.52); border: 0; border-radius: 99px; cursor: pointer; }
.banner-dots button.active { width: 20px; background: #fff; }
.home-section { padding-block: 76px; }
.section-label { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 28px; }
.section-label > div > p { color: #dc4734; }
.section-label h2 { margin: 0; color: #17283e; font-family: Georgia, "Times New Roman", serif; font-size: clamp(31px, 3vw, 43px); line-height: 1; letter-spacing: -.035em; }
.section-label a { display: inline-flex; align-items: center; gap: 8px; color: #d84431; font-size: 13px; font-weight: 900; white-space: nowrap; }
.trending-section { padding-bottom: 65px; }
.trending-rail { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1px; background: #e2e8ee; border: 1px solid #e2e8ee; }
.trend-card { display: grid; min-height: 263px; padding: 22px; background: #fff; }
.trend-brand { display: flex; align-items: center; gap: 9px; color: #17283e; font-size: 13px; }
.trend-brand .store-logo { width: 32px; height: 32px; flex-basis: 32px; color: #17283e; background: #eaf1f5; border-radius: 50%; font-size: 12px; }
.trend-card .offer-type { margin-top: 24px; padding: 0; color: #d84431; background: none; border-radius: 0; font-size: 10px; letter-spacing: .08em; }
.trend-card h3 { margin: 8px 0; color: #17283e; font-family: Georgia, "Times New Roman", serif; font-size: 21px; line-height: 1.04; letter-spacing: -.03em; }
.trend-card a { align-self: end; display: inline-flex; align-items: center; gap: 6px; color: #17283e; font-size: 12px; font-weight: 900; }
.trend-card:hover { position: relative; z-index: 1; box-shadow: 0 12px 24px rgba(23,40,62,.13); }
.store-strip { padding-block: 38px; color: #17283e; background: #eef4f7; }
.store-strip p { color: #687a8b; }
.brand-tiles { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); border-top: 1px solid #d5e0e6; border-left: 1px solid #d5e0e6; }
.brand-tiles a { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 71px; padding: 8px; border-right: 1px solid #d5e0e6; border-bottom: 1px solid #d5e0e6; font-family: Georgia, "Times New Roman", serif; font-size: 15px; text-align: center; }
.brand-tiles span { display: grid; width: 23px; height: 23px; place-items: center; color: #fff; background: #17283e; border-radius: 50%; font-family: ui-sans-serif, sans-serif; font-size: 11px; font-weight: 900; }
.categories-home { padding-bottom: 84px; }
.category-rail { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 10px; }
.category-rail > a { display: grid; gap: 8px; justify-items: center; padding: 10px 4px; color: #17283e; text-align: center; }
.category-icon { display: grid; width: 66px; height: 66px; place-items: center; color: #17283e; background: #f3e6d8; border-radius: 50%; font-size: 31px; }
.category-icon.icon-2 { background: #e3eff5; }.category-icon.icon-3 { background: #f7e4e1; }.category-icon.icon-4 { background: #e5ebd9; }.category-icon.icon-5 { background: #e9e2f0; }.category-icon.icon-6 { background: #f7edd2; }
.category-rail strong { font-size: 13px; }.category-rail small { color: #718191; font-size: 11px; }
.editorial-deals { color: #17283e; background: #dbeaf1; }
.editorial-grid { display: grid; grid-template-columns: minmax(300px, .9fr) minmax(450px, 1.1fr); gap: 85px; padding-block: 82px; }
.editorial-copy { align-self: center; }.editorial-copy > p:first-child { color: #d84431; }.editorial-copy h2 { max-width: 420px; margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(41px, 4.4vw, 64px); line-height: .92; letter-spacing: -.05em; }.editorial-copy > p:not(:first-child) { max-width: 410px; color: #40576b; font-size: 16px; }
.dark-button { width: fit-content; margin-top: 19px; font-size: 13px; }.dark-button:hover { color: #fff; background: #d84431; }
.editorial-offers { background: #fff; box-shadow: 18px 18px 0 rgba(23,40,62,.1); }
.editorial-row { display: grid; grid-template-columns: 50px minmax(0, 1fr) auto; align-items: center; gap: 13px; min-height: 88px; padding: 16px 20px; border-bottom: 1px solid #e5ebef; }.editorial-row:last-child { border-bottom: 0; }.editorial-row > span { color: #d84431; font-family: Georgia, serif; font-size: 18px; }.editorial-row div { display: grid; gap: 3px; }.editorial-row strong { font-size: 15px; }.editorial-row small { color: #718191; font-size: 12px; }.editorial-row b { color: #d84431; }
.seasonal-banner { color: #fff; background: #17283e; }.seasonal-inner { display: grid; grid-template-columns: 145px minmax(0, 1fr) auto; align-items: center; gap: 42px; min-height: 190px; }.seasonal-inner > p { margin: 0; color: #f4c75d; }.seasonal-inner h2 { max-width: 660px; margin: 0; font-family: Georgia, serif; font-size: clamp(30px, 3vw, 45px); line-height: 1; letter-spacing: -.035em; }.seasonal-inner a { display: inline-flex; gap: 8px; align-items: center; padding-bottom: 5px; border-bottom: 1px solid #f4c75d; color: #fff; font-size: 13px; font-weight: 900; white-space: nowrap; }
.verified-section { padding-bottom: 80px; }.verified-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid #dce4ea; border-left: 1px solid #dce4ea; }.verified-list article { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 95px; padding: 18px 20px; border-right: 1px solid #dce4ea; border-bottom: 1px solid #dce4ea; }.verified-list article > div { display: flex; align-items: center; gap: 13px; }.verified-check { display: grid; width: 25px; height: 25px; flex: 0 0 25px; place-items: center; color: #fff; background: #1d8271; border-radius: 50%; font-size: 12px; font-weight: 900; }.verified-list strong, .verified-list small { display: block; }.verified-list strong { color: #17283e; font-size: 14px; }.verified-list small { margin-top: 3px; color: #718191; font-size: 11px; }.verified-list a { flex: 0 0 auto; color: #d84431; font-size: 12px; font-weight: 900; }
.guide-home { padding-top: 0; }.guide-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }.guide-grid a { display: grid; align-content: start; min-height: 243px; padding: 26px; color: #17283e; border-top: 4px solid #d84431; background: #f2f6f8; }.guide-grid a:nth-child(2) { background: #f6ebe3; border-color: #d59b52; }.guide-grid a:nth-child(3) { background: #e4eef0; border-color: #1d8271; }.guide-grid span { color: #d84431; font-size: 10px; font-weight: 900; letter-spacing: .11em; }.guide-grid h3 { margin: 19px 0 9px; font-family: Georgia, serif; font-size: 27px; line-height: 1; letter-spacing: -.03em; }.guide-grid p { margin: 0; color: #526a7d; font-size: 13px; line-height: 1.55; }.guide-grid b { align-self: end; margin-top: 18px; font-size: 12px; }
.trust-strip { padding-block: 31px; background: #f3f6f7; border-top: 1px solid #e0e8ec; }.trust-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }.trust-grid div { display: grid; gap: 3px; padding-left: 18px; border-left: 3px solid #d84431; }.trust-grid strong { color: #17283e; font-size: 13px; }.trust-grid span { color: #718191; font-size: 12px; }
.site-footer { padding: 38px clamp(20px, 5vw, 72px); color: #c5d0d8; background: #17283e; border: 0; font-size: 13px; }.site-footer a { color: #fff; }
.admin-image-preview { width: min(100%, 330px); max-height: 180px; object-fit: cover; border: 1px solid var(--line); border-radius: 5px; }

/* Public prelaunch state: establishes the service without exposing demo offer data. */
.prelaunch-panel { margin: 64px auto 88px; padding: 48px; border: 1px solid rgba(16, 38, 61, .14); border-radius: 28px; background: linear-gradient(135deg, #fff8ee, #edf6f5); }
.prelaunch-panel > p, .information-hero p { margin: 0 0 10px; color: #d84431; font-size: .78rem; font-weight: 800; letter-spacing: .12em; }
.prelaunch-panel h2 { max-width: 680px; margin: 0; color: #17283e; font-family: Georgia, serif; font-size: clamp(2rem, 4vw, 3.4rem); line-height: 1.02; }
.prelaunch-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 34px 0; }
.prelaunch-grid article { padding: 22px; border-radius: 18px; background: rgba(255, 255, 255, .84); }
.prelaunch-grid strong, .prelaunch-grid span { display: block; }.prelaunch-grid strong { margin-bottom: 8px; color: #17283e; font-size: 1.05rem; }.prelaunch-grid span { color: #617587; line-height: 1.55; }
.information-hero { padding: 92px 0 46px; color: #fff; background: linear-gradient(135deg, #10263d, #224d68); }.information-hero h1 { max-width: 760px; margin: 0; font-family: Georgia, serif; font-size: clamp(2.5rem, 5vw, 4.6rem); line-height: 1.02; }.information-body { max-width: 820px; padding-top: 64px; padding-bottom: 88px; }.information-body p { font-size: 1.12rem; line-height: 1.75; color: #33495a; }

@media (max-width: 1020px) {
  .hero-grid { grid-template-columns: 1fr 1fr; gap: 35px; }.brand-tiles { grid-template-columns: repeat(4, 1fr); }.category-rail { grid-template-columns: repeat(4, 1fr); row-gap: 24px; }.trending-rail { grid-template-columns: repeat(3, 1fr); }.trending-rail .trend-card:nth-child(n+4) { display: none; }.editorial-grid { gap: 45px; }
}
@media (max-width: 760px) {
  .prelaunch-panel { margin: 38px 18px 58px; padding: 30px; }.prelaunch-grid { grid-template-columns: 1fr; }.information-hero { padding: 68px 0 36px; }.information-body { padding-top: 38px; padding-bottom: 60px; }
  .site-header { gap: 13px; }.site-header .header-search { order: 3; flex-basis: 100%; }.site-header .nav { width: auto; margin-left: auto; gap: 12px; font-size: 11px; }.site-header .nav a:first-child { display: none; }.hero-grid { grid-template-columns: 1fr; gap: 31px; min-height: 0; padding-block: 46px; }.home-hero h1 { max-width: 540px; }.hero-carousel { min-height: 335px; }.home-banner { min-height: 335px; padding: 30px; }.home-banner h2 { font-size: 45px; }.trending-rail { grid-template-columns: repeat(2, 1fr); }.trending-rail .trend-card:nth-child(n+4) { display: grid; }.editorial-grid { grid-template-columns: 1fr; padding-block: 62px; }.seasonal-inner { grid-template-columns: 1fr; gap: 16px; padding-block: 42px; }.seasonal-inner > p { margin-bottom: 0; }.verified-list { grid-template-columns: 1fr; }.guide-grid { grid-template-columns: 1fr; }.guide-grid a { min-height: 190px; }.site-footer { flex-direction: column; }
}
@media (max-width: 480px) {
  .site-promo { font-size: 10px; }.site-header .brand { font-size: 18px; }.site-header .brand-mark { width: 26px; height: 26px; }.site-header .nav a:nth-child(2), .site-header .nav a:nth-child(3) { display: none; }.home-shell { width: min(100% - 32px, 1280px); }.home-hero h1 { font-size: 46px; }.home-hero .hero-copy > p:not(.hero-kicker) { font-size: 16px; }.deal-search { display: grid; }.deal-search button { width: 100%; }.hero-proof { gap: 10px; }.home-banner h2 { font-size: 39px; }.section-label { align-items: flex-start; flex-direction: column; }.section-label h2 { font-size: 34px; }.trending-rail { grid-template-columns: 1fr; }.trending-rail .trend-card:nth-child(n+4) { display: none; }.brand-tiles { grid-template-columns: repeat(2, 1fr); }.category-rail { grid-template-columns: repeat(2, 1fr); }.editorial-offers { box-shadow: 9px 9px 0 rgba(23,40,62,.1); }.editorial-row { grid-template-columns: 36px minmax(0, 1fr) auto; padding-inline: 14px; }.trust-grid { grid-template-columns: 1fr; gap: 15px; }
}

/* Interior page system: directory, merchant and editorial experiences. */
.interior-shell { width: min(1120px, calc(100% - 40px)); margin-inline: auto; }
.interior-hero { padding-block: 54px 58px; color: #17283e; background: #edf3f6; }
.directory-hero { background: linear-gradient(110deg, #eef4f7 0%, #fff9f6 100%); }
.category-hero { background: #f4eee9; }
.crumb { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 22px; color: #718191; font-size: 11px; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.crumb a:hover { color: #d84431; }.crumb span { color: #b6c1c9; }
.interior-title-row { display: flex; align-items: end; justify-content: space-between; gap: 30px; }.interior-title-row h1, .interior-hero h1 { max-width: 730px; margin: 0; font-family: Georgia, serif; font-size: clamp(42px, 5vw, 67px); line-height: .95; letter-spacing: -.05em; }.interior-title-row p, .interior-hero > .interior-shell > p:last-child { max-width: 630px; margin: 16px 0 0; color: #53697b; font-size: 17px; line-height: 1.55; }.directory-count { padding-bottom: 7px; color: #d84431; font-size: 13px; font-weight: 900; white-space: nowrap; }
.directory-search { display: flex; max-width: 720px; margin-top: 29px; padding: 5px; background: #fff; box-shadow: 0 16px 28px rgba(36,55,72,.08); }.directory-search input { flex: 1; min-width: 0; padding: 13px 16px; border: 0; outline: 0; }.directory-search button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-width: 128px; color: #fff; background: #17283e; border: 0; font-size: 13px; font-weight: 900; cursor: pointer; }
.directory-section { padding-block: 70px 84px; }.directory-intro { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 27px; }.directory-intro p { margin: 0 0 8px; color: #d84431; font-size: 10px; font-weight: 900; letter-spacing: .14em; }.directory-intro h2 { margin: 0; color: #17283e; font-family: Georgia, serif; font-size: clamp(29px, 3vw, 41px); line-height: 1; letter-spacing: -.035em; }
.store-directory { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid #dce5ea; border-left: 1px solid #dce5ea; }.directory-store { display: grid; grid-template-columns: 54px minmax(0, 1fr) auto; align-items: center; gap: 17px; min-height: 122px; padding: 21px; border-right: 1px solid #dce5ea; border-bottom: 1px solid #dce5ea; color: #17283e; background: #fff; transition: background .2s ease, transform .2s ease; }.directory-store:hover { position: relative; z-index: 1; background: #f4f8fa; box-shadow: 0 10px 24px rgba(23,40,62,.09); transform: translateY(-2px); }.directory-logo { display: grid; width: 54px; height: 54px; place-items: center; overflow: hidden; color: #fff; background: #17283e; border-radius: 50%; font-size: 18px; font-weight: 900; }.directory-logo img { width: 100%; height: 100%; object-fit: cover; }.directory-store-copy { display: grid; gap: 4px; min-width: 0; }.directory-store-copy strong { font-size: 16px; }.directory-store-copy > span { overflow: hidden; color: #617587; font-size: 12px; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }.directory-store-copy small { color: #d84431; font-size: 11px; font-weight: 850; }.directory-store > b { color: #d84431; font-size: 19px; }.directory-empty { margin-top: 26px; }
.category-directory { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: #dce5ea; border: 1px solid #dce5ea; }.directory-category { display: grid; align-content: start; min-height: 240px; padding: 25px; color: #17283e; background: #fff; transition: background .2s ease; }.directory-category:hover { background: #f7eee8; }.category-number { color: #d84431; font-family: Georgia, serif; font-size: 20px; }.directory-category strong { margin-top: 38px; font-family: Georgia, serif; font-size: 26px; line-height: 1; letter-spacing: -.03em; }.directory-category p { color: #617587; font-size: 13px; line-height: 1.55; }.directory-category small { align-self: end; display: flex; justify-content: space-between; color: #17283e; font-size: 12px; font-weight: 850; }.directory-category b { color: #d84431; font-size: 19px; }
.merchant-hero { padding-block: 38px 46px; color: #fff; background: #17283e; }.crumb-light { color: #aebfcb; }.crumb-light a:hover { color: #fff; }.merchant-hero-grid { display: flex; align-items: center; justify-content: space-between; gap: 30px; }.merchant-identity { display: flex; align-items: center; gap: 21px; }.merchant-logo { display: grid; width: 90px; height: 90px; flex: 0 0 90px; place-items: center; overflow: hidden; color: #17283e; background: #e7f0f4; border-radius: 50%; font-size: 34px; font-weight: 900; }.merchant-logo img { width: 100%; height: 100%; object-fit: cover; }.merchant-eyebrow { margin: 0 0 9px; color: #f3bd7b; font-size: 10px; font-weight: 900; letter-spacing: .12em; }.merchant-identity h1 { max-width: 670px; margin: 0; font-family: Georgia, serif; font-size: clamp(39px, 4.5vw, 60px); line-height: .94; letter-spacing: -.045em; }.merchant-identity h1 + p { max-width: 650px; margin: 13px 0 0; color: #c2d0d9; font-size: 15px; }.merchant-tags { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 14px; }.merchant-tags a { padding: 5px 9px; color: #17283e; background: #fff; border-radius: 20px; font-size: 11px; font-weight: 850; }.merchant-cta { display: inline-flex; align-items: center; justify-content: center; gap: 9px; padding: 14px 17px; color: #17283e; background: #f3bd7b; font-size: 12px; font-weight: 900; white-space: nowrap; }.merchant-cta:hover { background: #fff; }
.merchant-main { padding-block: 64px 76px; }.merchant-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 50px; }.merchant-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 20px; }.merchant-section-heading p { margin: 0 0 8px; color: #d84431; font-size: 10px; font-weight: 900; letter-spacing: .14em; }.merchant-section-heading h2, .merchant-aside h2 { margin: 0; color: #17283e; font-family: Georgia, serif; font-size: 38px; line-height: 1; letter-spacing: -.035em; }.merchant-section-heading > span { color: #718191; font-size: 12px; font-weight: 850; }.coupon-list { gap: 12px; margin-top: 0; }.merchant-offer { display: grid; grid-template-columns: minmax(0, 1fr) 166px; gap: 25px; padding: 25px; border: 1px solid #dce5ea; border-left: 5px solid #d84431; background: #fff; }.offer-meta { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 12px; }.offer-meta span { padding: 5px 7px; color: #17283e; background: #edf3f6; font-size: 10px; font-weight: 900; letter-spacing: .04em; }.offer-meta .meta-verified { color: #177263; background: #e4f2ee; }.merchant-offer h3 { margin: 0 0 7px; color: #17283e; font-family: Georgia, serif; font-size: 25px; line-height: 1.03; letter-spacing: -.028em; }.merchant-offer p { margin: 0 0 8px; color: #617587; font-size: 13px; line-height: 1.5; }.merchant-offer small { color: #8694a0; font-size: 11px; }.merchant-offer-action { display: grid; align-content: center; gap: 8px; }.merchant-code { display: grid; gap: 3px; padding: 9px 8px; color: #17283e; background: #fff6e8; border: 1px dashed #ddaa62; cursor: pointer; }.merchant-code span { font-family: ui-monospace, monospace; font-size: 13px; font-weight: 900; }.merchant-code strong { font-size: 11px; }.offer-go { display: flex; align-items: center; justify-content: center; gap: 7px; min-height: 43px; color: #fff; background: #17283e; font-size: 12px; font-weight: 900; }.offer-go:hover { background: #d84431; }.merchant-aside { align-self: start; padding: 25px; background: #edf3f6; }.merchant-aside h2 { font-size: 28px; }.merchant-aside h3 { margin: 24px 0 6px; color: #17283e; font-size: 12px; text-transform: uppercase; letter-spacing: .08em; }.merchant-aside p { margin: 10px 0 0; color: #5e7486; font-size: 13px; line-height: 1.55; }
.interior-faq { padding-block: 66px; background: #f4f6f7; }.interior-faq details { padding: 18px 0; border-bottom: 1px solid #d7e1e6; }.interior-faq summary { color: #17283e; cursor: pointer; font-size: 15px; font-weight: 850; }.interior-faq details p { max-width: 800px; color: #617587; font-size: 14px; line-height: 1.6; }
.editorial-hero { padding-block: 55px 64px 72px; color: #fff; background: #17283e; }.editorial-hero .crumb { color: #b8c8d2; }.editorial-kicker { margin: 41px 0 10px; color: #f3bd7b; font-size: 11px; font-weight: 900; letter-spacing: .14em; }.editorial-hero h1 { max-width: 820px; margin: 0; font-family: Georgia, serif; font-size: clamp(48px, 6vw, 80px); line-height: .92; letter-spacing: -.055em; }.editorial-hero .interior-shell > p:last-child { max-width: 610px; margin: 19px 0 0; color: #c5d3db; font-size: 17px; line-height: 1.55; }.editorial-list { padding-block: 70px 82px; }.guide-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: #dce5ea; border: 1px solid #dce5ea; }.guide-list-item { display: grid; align-content: start; min-height: 276px; padding: 28px; color: #17283e; background: #fff; }.guide-list-item.lead-guide { grid-column: 1 / -1; grid-template-columns: 170px minmax(0, 1fr) auto; align-items: end; min-height: 265px; color: #fff; background: #d84431; }.guide-list-item > span { color: #d84431; font-size: 10px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }.guide-list-item.lead-guide > span { color: #ffe1d6; }.guide-list-item h2 { max-width: 510px; margin: 24px 0 10px; font-family: Georgia, serif; font-size: 31px; line-height: 1; letter-spacing: -.035em; }.guide-list-item.lead-guide h2 { margin-top: 0; font-size: 45px; }.guide-list-item p { max-width: 500px; margin: 0; color: #637688; font-size: 13px; line-height: 1.55; }.guide-list-item.lead-guide p { color: #fff0eb; }.guide-list-item b { align-self: end; color: #d84431; font-size: 12px; }.guide-list-item.lead-guide b { color: #fff; white-space: nowrap; }.guide-list-item i { font-size: 18px; font-style: normal; }
.reading-shell { width: min(760px, calc(100% - 40px)); margin-inline: auto; }.reading-article { padding-block: 65px 78px; }.article-back { display: inline-block; color: #d84431; font-size: 12px; font-weight: 900; }.article-category { margin: 43px 0 13px; color: #d84431; font-size: 10px; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }.reading-article h1 { margin: 0; color: #17283e; font-family: Georgia, serif; font-size: clamp(45px, 6vw, 70px); line-height: .94; letter-spacing: -.055em; }.article-excerpt { max-width: 660px; margin: 22px 0 0; color: #586e80; font-size: 20px; line-height: 1.45; }.article-rule { width: 64px; height: 3px; margin: 37px 0; background: #d84431; }.article-content { color: #2d4154; font-size: 18px; line-height: 1.75; }.article-content p { margin: 0 0 22px; }

@media (max-width: 760px) {
  .interior-hero { padding-block: 42px; }.interior-title-row { align-items: flex-start; flex-direction: column; gap: 10px; }.directory-count { padding: 0; }.store-directory { grid-template-columns: 1fr; }.category-directory { grid-template-columns: repeat(2, 1fr); }.merchant-hero-grid { align-items: flex-start; flex-direction: column; }.merchant-layout { grid-template-columns: 1fr; gap: 35px; }.merchant-aside { order: 2; }.guide-list-item.lead-guide { grid-template-columns: 1fr; gap: 20px; }.guide-list-item.lead-guide h2 { font-size: 37px; }.editorial-hero { padding-block: 42px 55px; }
}
@media (max-width: 480px) {
  .interior-shell, .reading-shell { width: min(100% - 32px, 1120px); }.interior-title-row h1, .interior-hero h1 { font-size: 43px; }.directory-search { display: grid; }.directory-search button { min-height: 46px; }.directory-store { grid-template-columns: 47px minmax(0, 1fr) auto; gap: 12px; padding: 16px; min-height: 105px; }.directory-logo { width: 47px; height: 47px; }.directory-store-copy > span { white-space: normal; }.category-directory { grid-template-columns: 1fr; }.directory-category { min-height: 205px; }.directory-category strong { margin-top: 27px; }.merchant-identity { align-items: flex-start; }.merchant-logo { width: 65px; height: 65px; flex-basis: 65px; font-size: 25px; }.merchant-identity h1 { font-size: 39px; }.merchant-offer { grid-template-columns: 1fr; padding: 20px; }.merchant-offer-action { grid-template-columns: 1fr 1fr; }.merchant-offer-action .offer-go { min-height: auto; }.merchant-offer h3 { font-size: 23px; }.guide-list { grid-template-columns: 1fr; }.guide-list-item.lead-guide { grid-column: auto; }.guide-list-item.lead-guide h2 { font-size: 34px; }.editorial-hero h1 { font-size: 47px; }.article-excerpt { font-size: 18px; }.article-content { font-size: 17px; }
}

.error-page { display: grid; min-height: 58vh; place-items: center; padding-block: 80px; color: #fff; background: #17283e; }
.error-page .interior-shell { display: grid; justify-items: start; }
.error-page p { margin: 0 0 12px; color: #f3bd7b; font-family: Georgia, serif; font-size: 29px; }
.error-page h1 { max-width: 680px; margin: 0; font-family: Georgia, serif; font-size: clamp(48px, 7vw, 84px); line-height: .9; letter-spacing: -.055em; }
.error-page span { max-width: 460px; margin-top: 20px; color: #c5d3db; font-size: 16px; }
.error-page a { display: inline-flex; align-items: center; gap: 9px; margin-top: 29px; padding: 13px 16px; color: #17283e; background: #fff; font-size: 13px; font-weight: 900; }
.error-page b { color: #d84431; font-size: 18px; }

/* Search discovery: one shared, logo-led suggestion pattern for every public search field. */
[data-store-search] { position: relative; }
.search-suggestions { position: absolute; z-index: 40; top: calc(100% + 8px); left: 0; width: min(100%, 540px); overflow: hidden; background: #fff; border: 1px solid #dce5ea; box-shadow: 0 16px 38px rgba(23, 40, 62, .17); text-align: left; }
.header-search .search-suggestions { width: 100%; }.directory-search .search-suggestions { width: 100%; }.hero-suggestions { max-width: 560px; }
.suggestion-heading { margin: 0; padding: 12px 16px 6px; color: #d84431; font-size: 10px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.suggestion-item { display: grid; grid-template-columns: 30px minmax(0, 1fr) auto; align-items: center; gap: 10px; min-height: 54px; padding: 8px 16px; color: #17283e; }.suggestion-item:hover { background: #f3f7f9; }.suggestion-logo { display: grid; width: 30px; height: 30px; place-items: center; overflow: hidden; color: #fff; background: #17283e; border-radius: 50%; font-size: 11px; font-weight: 900; }.suggestion-logo img { width: 100%; height: 100%; object-fit: cover; }.suggestion-item > span:nth-child(2) { display: grid; gap: 2px; min-width: 0; }.suggestion-item strong { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }.suggestion-item small { overflow: hidden; color: #708393; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }.suggestion-item b { color: #d84431; font-size: 17px; }.suggestion-category .suggestion-logo { color: #17283e; background: #f3bd7b; border-radius: 5px; }

/* Coupon handoff: retains the offer page in a new tab while the opener visits the merchant. */
.trend-card .trend-action { align-self: end; display: inline-flex; align-items: center; gap: 6px; width: fit-content; padding: 0; color: #17283e; background: transparent; border: 0; font-size: 12px; font-weight: 900; cursor: pointer; }
.editorial-row { width: 100%; color: #17283e; background: #fff; border: 0; border-bottom: 1px solid #e5ebef; text-align: left; cursor: pointer; }.editorial-row:hover { background: #f8fbfc; }
.verified-action { flex: 0 0 auto; padding: 0; color: #d84431; background: transparent; border: 0; font-size: 12px; font-weight: 900; cursor: pointer; }
.coupon-handoff-modal { position: fixed; z-index: 100; inset: 0; display: grid; place-items: center; padding: 24px; background: rgba(10, 22, 36, .62); backdrop-filter: blur(8px); }
.offer-details { display: grid; gap: 5px; margin-top: 10px; }.offer-validity { color: #177263 !important; font-weight: 900; }.expired-offers { margin-top: 62px; padding-top: 48px; border-top: 1px solid #dce5ea; }.merchant-offer-expired { border-left-color: #aebcc6; background: #f7f9fa; }.merchant-offer-expired h3 { color: #586b7a; }.merchant-offer-expired p, .merchant-offer-expired small { color: #82919c; }.merchant-offer-expired .offer-meta span:first-child { color: #7a8791; background: #e8edf0; }.merchant-offer-expired .offer-validity { color: #7a8791 !important; }.expired-status { display: grid; align-self: center; min-height: 43px; place-items: center; color: #75848f; background: #e8edf0; font-size: 11px; font-weight: 900; text-align: center; }
.coupon-handoff-card { position: relative; width: min(100%, 510px); padding: 42px 42px 31px; color: #17283e; background: #fff; box-shadow: 0 28px 80px rgba(8, 17, 29, .32); text-align: center; animation: handoff-in .24s ease-out; }
.handoff-close { position: absolute; top: 14px; right: 17px; width: 34px; height: 34px; padding: 0; color: #17283e; background: transparent; border: 0; font-size: 29px; font-weight: 300; line-height: 1; cursor: pointer; }
.handoff-store-mark { display: grid; width: 64px; height: 64px; margin: 0 auto 13px; place-items: center; color: #fff; background: #17283e; border-radius: 50%; font-family: Georgia, serif; font-size: 26px; font-weight: 900; }
.handoff-store { margin: 0; color: #667b8c; font-size: 11px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.coupon-handoff-card h2 { max-width: 390px; margin: 13px auto 23px; font-family: Georgia, serif; font-size: clamp(29px, 4vw, 39px); line-height: .98; letter-spacing: -.035em; }
.handoff-code { display: flex; align-items: center; justify-content: space-between; max-width: 340px; margin: 0 auto; padding: 4px 4px 4px 16px; border: 1px solid #17283e; border-radius: 100px; }.handoff-code span { overflow: hidden; font-family: ui-monospace, monospace; font-size: 14px; font-weight: 900; text-overflow: ellipsis; white-space: nowrap; }.handoff-code strong { padding: 10px 13px; color: #fff; background: #d84431; border-radius: 100px; font-size: 11px; letter-spacing: .07em; text-transform: uppercase; }
.handoff-instruction { max-width: 350px; margin: 14px auto 0; color: #5e7486; font-size: 12px; line-height: 1.5; }.handoff-expiry { margin: 13px 0 0; color: #17283e; font-size: 12px; font-weight: 900; }.handoff-store-link { display: inline-flex; align-items: center; gap: 8px; margin-top: 25px; padding: 13px 17px; color: #fff; background: #17283e; font-size: 12px; font-weight: 900; }.handoff-store-link:hover { background: #d84431; }.handoff-store-link span { font-size: 18px; }.handoff-note { margin: 23px -42px -31px; padding: 13px 22px; color: #788b99; background: #eef3f5; font-size: 10px; }
@keyframes handoff-in { from { opacity: 0; transform: translateY(10px) scale(.98); } to { opacity: 1; transform: translateY(0) scale(1); } }
@media (max-width: 480px) { .coupon-handoff-modal { padding: 16px; }.coupon-handoff-card { padding: 38px 23px 25px; }.handoff-note { margin: 22px -23px -25px; }.handoff-code { max-width: 100%; } }
