:root {
  color-scheme: light;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: #18252b;
  background: #f7f8fc;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  --ink: #18252b;
  --muted: #65747c;
  --accent: #d9f56f;
  --line: #e2e7ec;
  --surface: #ffffff;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; }
a { color: inherit; }
button, input, textarea { font: inherit; }
button { cursor: pointer; }
.site-header, .site-footer { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.site-header { max-width: 1200px; margin: auto; padding: 24px 32px; }
.brand { font-size: 1.35rem; font-weight: 850; letter-spacing: -0.08em; text-decoration: none; }
.brand span { color: #6d8b13; }
.site-header nav, .footer-links { display: flex; gap: 24px; }
.site-header nav a, .footer-links a { color: var(--muted); font-size: .9rem; text-decoration: none; }
.site-header nav a:hover, .footer-links a:hover { color: var(--ink); }
.hero { padding: 94px max(32px, calc((100vw - 1136px) / 2)) 100px; background: #17333a; color: white; }
.eyebrow { margin: 0 0 16px; color: #789020; font-size: .76rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.hero .eyebrow { color: var(--accent); }
.hero h1 { max-width: 720px; margin: 0; font-size: clamp(2.7rem, 7vw, 5.4rem); line-height: .99; letter-spacing: -.07em; }
.hero h1 span { color: var(--accent); }
.hero-copy { max-width: 570px; margin: 24px 0 30px; color: #d3dee0; font-size: 1.08rem; line-height: 1.7; }
.button { display: inline-flex; min-height: 46px; align-items: center; justify-content: center; gap: 10px; border: 1px solid transparent; border-radius: 999px; padding: 0 21px; font-weight: 750; text-decoration: none; transition: transform .15s ease, background .15s ease; }
.button:hover { transform: translateY(-1px); }
.button-light { background: var(--accent); color: var(--ink); }
.button-dark { background: var(--ink); color: white; }
.button-outline { border-color: #cfd7d9; background: white; color: var(--ink); }
.offers-section { max-width: 1200px; margin: auto; padding: 82px 32px 96px; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; }
h2 { margin: 0; font-size: clamp(1.7rem, 4vw, 2.45rem); letter-spacing: -.05em; }
.search { display: flex; width: min(100%, 330px); min-height: 48px; align-items: center; gap: 10px; border: 1px solid var(--line); border-radius: 999px; padding: 0 16px; background: white; }
.search-icon { color: var(--muted); font-size: 1.5rem; }
.search input { width: 100%; border: 0; outline: 0; background: transparent; }
.filters { display: flex; flex-wrap: wrap; gap: 9px; margin: 32px 0 20px; }
.filter-button { min-height: 39px; border: 1px solid var(--line); border-radius: 999px; padding: 0 16px; background: white; color: #4d5a60; font-size: .88rem; }
.filter-button.is-active { border-color: var(--ink); background: var(--ink); color: white; }
.results-count { min-height: 20px; color: var(--muted); font-size: .86rem; }
.merchant-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.merchant-card {
  display: flex;
  min-height: 290px;
  flex-direction: column;
  align-items: flex-start;
  border: 1px solid var(--line);
  border-radius: 20px;
  padding: 24px;
  background: var(--surface);
  transition: transform 0.22s cubic-bezier(0.16, 1, 0.3, 1),
              box-shadow 0.22s cubic-bezier(0.16, 1, 0.3, 1),
              border-color 0.2s ease;
}
.merchant-card:hover {
  transform: translateY(-3px);
  border-color: #cbd5e1;
  box-shadow: 0 14px 28px -6px rgba(24, 37, 43, 0.08),
              0 6px 14px -3px rgba(24, 37, 43, 0.04);
}
.merchant-card[hidden] { display: none; }
.merchant-mark { display: grid; width: 48px; height: 48px; place-items: center; border-radius: 14px; background: #eff5d8; color: #425b0b; font-size: .88rem; font-weight: 850; object-fit: contain; }
.merchant-card .eyebrow { margin: 22px 0 7px; font-size: .68rem; }
.merchant-card h3 { margin: 0 0 9px; font-size: 1.3rem; letter-spacing: -.04em; }
.merchant-card > p:not(.eyebrow) { margin: 0 0 18px; color: var(--muted); font-size: .9rem; line-height: 1.55; }
.card-logo-link { display: inline-flex; border-radius: 14px; }
.card-code { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 14px; color: var(--muted); font-size: .82rem; }
.card-code .copy-code, .offer-code .copy-code { min-height: 44px; padding: 0 13px; font-size: .8rem; }
.copy-status { color: #365b19; font-size: .78rem; }
.verified-badge { margin: auto 0 14px !important; color: #49670b !important; font-size: .76rem !important; font-weight: 750; }
.card-bottom { width: 100%; margin-top: auto; }
.card-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.card-actions .button { min-width: 0; padding: 0 10px; font-size: .82rem; }
.affiliate-disclosure { margin: 10px 0 0 !important; color: #59666b !important; font-size: .75rem !important; line-height: 1.45 !important; }
.card-title-link { text-decoration: none; }
.card-title-link:hover { text-decoration: underline; }
.empty-state { margin: 30px 0; color: var(--muted); }
.load-more { display: flex; margin: 32px auto 0; }
.load-more[hidden] { display: none; }
.submit-section { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; padding: 72px max(32px, calc((100vw - 1136px) / 2)); background: #eaf0e4; }
.submit-section > div > p:not(.eyebrow) { max-width: 450px; color: var(--muted); line-height: 1.7; }
.submit-form { display: grid; gap: 16px; }
.submit-form label { display: grid; gap: 8px; font-size: .88rem; font-weight: 700; }
.submit-form input, .submit-form textarea { width: 100%; border: 1px solid #d6ded2; border-radius: 12px; padding: 13px; background: white; }
.submit-form textarea { resize: vertical; }
.submit-form .button { justify-self: start; }
.form-note { margin: 0; color: var(--muted); font-size: .78rem; }
.form-status { margin: 0; border-left: 4px solid; border-radius: 8px; padding: 14px 16px; font-weight: 700; line-height: 1.5; scroll-margin-block: 24px; }
.form-status.is-success { border-color: #42691c; background: #f2f8e8; color: #294b12; }
.form-status.is-error { border-color: #a83a2c; background: #fff1ee; color: #7b251b; }
.form-status:focus { outline: 2px solid currentColor; outline-offset: 3px; }
.form-status[hidden] { display: none; }
.site-footer { flex-wrap: wrap; max-width: 1200px; margin: auto; padding: 40px 32px; }
.site-footer > p { max-width: 440px; margin: 0; color: var(--muted); font-size: .82rem; line-height: 1.55; }
.material-disclosure { border-left: 3px solid #789020; border-radius: 0 10px 10px 0; padding: 12px 16px; background: #f1f5e8; color: #35433b; font-size: .84rem; line-height: 1.6; }
.offers-section > .material-disclosure { margin: 0 0 28px; }
.site-footer > .material-disclosure { flex-basis: 100%; max-width: none; margin: 0; }
.site-footer small { width: 100%; color: var(--muted); }
.brand-footer { font-size: 1.15rem; }
.cookie-banner { position: fixed; z-index: 5; right: 20px; bottom: 20px; left: 20px; display: flex; max-width: 940px; align-items: center; justify-content: space-between; gap: 24px; margin: auto; border: 1px solid var(--line); border-radius: 20px; padding: 22px; background: white; box-shadow: 0 12px 50px #142b2b26; }
.cookie-banner[hidden] { display: none; }
.cookie-banner h2 { font-size: 1.15rem; letter-spacing: -.02em; }
.cookie-banner p { max-width: 520px; margin: 7px 0; color: var(--muted); font-size: .85rem; line-height: 1.5; }
.cookie-banner a { color: #49670b; font-size: .82rem; }
.cookie-actions { display: flex; flex-shrink: 0; flex-wrap: wrap; gap: 9px; }
.cookie-actions .button { min-height: 42px; padding: 0 15px; font-size: .82rem; }
.merchant-detail { max-width: 760px; min-height: 65vh; margin: auto; padding: 48px 24px 80px; }
.back-link { display: inline-block; margin-bottom: 22px; color: var(--muted); text-decoration: none; }
.detail-card { border: 1px solid var(--line); border-radius: 24px; padding: clamp(24px, 5vw, 48px); background: white; }
.detail-card h1 { margin: 8px 0 16px; font-size: clamp(2rem, 5vw, 3.2rem); letter-spacing: -.06em; }
.detail-benefit { color: var(--muted); font-size: 1.08rem; line-height: 1.7; }
.offer-breakdown { margin: 28px 0; }
.offer-breakdown h2 { margin-bottom: 14px; font-size: 1.45rem; }
.offer-breakdown dl { display: grid; margin: 0; border-top: 1px solid var(--line); }
.offer-breakdown dl > div { display: grid; grid-template-columns: minmax(145px, .7fr) 1.3fr; gap: 16px; border-bottom: 1px solid var(--line); padding: 13px 0; }
.offer-breakdown dt { font-weight: 750; }
.offer-breakdown dd { margin: 0; color: var(--muted); line-height: 1.55; }
.offer-code { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 25px 0 18px; }
.offer-code[hidden] { display: none; }
.about-merchant-section, .claim-steps-section, .eligibility-rules-section, .redemption-steps, .faq-section { margin-top: 36px; }
.about-merchant-section h2, .claim-steps-section h2, .eligibility-rules-section h2, .redemption-steps h2, .faq-section h2 { margin-bottom: 16px; font-size: 1.55rem; }
.about-merchant-section p { color: var(--muted); line-height: 1.75; font-size: 1.02rem; margin: 0; }
.claim-steps-list, .redemption-steps ol { display: grid; gap: 12px; padding-left: 24px; color: var(--text); line-height: 1.65; }
.claim-steps-list li { padding-left: 4px; }
.claim-steps-list li::marker { font-weight: 700; color: #435d18; }
.eligibility-rules-list { display: grid; gap: 10px; padding-left: 24px; color: var(--muted); line-height: 1.65; list-style-type: disc; }
.eligibility-rules-list li { padding-left: 4px; }
.redemption-steps > p { color: var(--muted); font-size: .86rem; line-height: 1.6; }
.faq-section details { border-top: 1px solid var(--line); padding: 16px 0; }
.faq-section details:last-child { border-bottom: 1px solid var(--line); }
.faq-section summary { cursor: pointer; font-weight: 750; }
.faq-section details p { color: var(--muted); line-height: 1.6; }
.merchant-terms, .updated-date { color: var(--muted); font-size: .86rem; line-height: 1.6; }
.detail-card .affiliate-disclosure { margin: 16px 0 !important; }
.legal-page { max-width: 820px; margin: auto; padding: 60px 28px 100px; }
.legal-page h1 { margin: 0 0 28px; font-size: clamp(2.5rem, 6vw, 4rem); letter-spacing: -.07em; }
.legal-page h2 { margin: 34px 0 12px; font-size: 1.35rem; }
.legal-page p { color: #4c5b61; line-height: 1.8; }
.legal-page a { color: #49670b; }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; clip-path: inset(50%); }

@media (max-width: 800px) {
  .merchant-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .submit-section { grid-template-columns: 1fr; gap: 30px; }
}
@media (max-width: 560px) {
  .site-header { padding: 20px; }
  .site-header nav { gap: 13px; }
  .site-header nav a { font-size: .82rem; }
  .hero { padding: 72px 24px; }
  .offers-section { padding: 60px 20px 72px; }
  .section-heading { align-items: stretch; flex-direction: column; }
  .search { width: 100%; }
  .merchant-grid { grid-template-columns: 1fr; }
  .submit-section { padding: 56px 24px; }
  .site-footer { padding: 32px 24px; }
  .offer-breakdown dl > div { grid-template-columns: 1fr; gap: 5px; }
  .cookie-banner { right: 10px; bottom: 10px; left: 10px; align-items: stretch; flex-direction: column; gap: 16px; padding: 18px; }
  .cookie-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .cookie-actions .button { padding: 0 9px; }
}


/* Option 1: Top-Right Segmented Vote Pill */
.card-header {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  width: 100% !important;
}

.card-header .card-logo-link,
.card-header .merchant-mark {
  flex-shrink: 0;
}

.card-header .vote-widget {
  margin-left: auto !important; /* Pushes to extreme right */
  display: inline-flex;
  align-items: center;
  background: #f8fafc;
  border: 1px solid var(--line);
  border-radius: 9999px;
  padding: 3px 8px;
  gap: 4px;
}

.vote-divider {
  color: #cbd5e1;
  font-size: 0.72rem;
  line-height: 1;
  user-select: none;
}

.btn-vote {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: transparent;
  border: none;
  padding: 2px 5px;
  font-size: 0.76rem;
  font-weight: 600;
  color: #64748b;
  cursor: pointer;
  border-radius: 9999px;
  transition: all 0.15s ease-in-out;
}

.btn-vote:hover:not(:disabled) {
  color: #0f172a;
}

.btn-vote-like:hover:not(:disabled) {
  color: #16a34a;
  background: #f0fdf4;
}

.btn-vote-dislike:hover:not(:disabled) {
  color: #dc2626;
  background: #fef2f2;
}

.btn-vote.is-voted-like {
  color: #15803d;
  background: #dcfce7;
  font-weight: 700;
}

.btn-vote.is-voted-dislike {
  color: #b91c1c;
  background: #fee2e2;
  font-weight: 700;
}

.btn-vote:disabled {
  cursor: default;
}

.btn-vote:disabled:not(.is-voted-like):not(.is-voted-dislike) {
  opacity: 0.45;
  cursor: not-allowed;
}

.vote-widget.is-daily-limit-reached {
  opacity: 0.75;
  cursor: not-allowed;
}

.vote-icon {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}

.detail-card .vote-widget {
  margin-left: auto !important;
}


/* Category Filter Counts & Mobile Carousel */
.filter-count {
  display: inline-block;
  padding: 1px 7px;
  margin-left: 5px;
  font-size: 0.72rem;
  font-weight: 700;
  border-radius: 9999px;
  background: #eef2f5;
  color: var(--muted);
  transition: background 0.15s ease, color 0.15s ease;
}
.filter-button.is-active .filter-count {
  background: rgba(255, 255, 255, 0.28);
  color: white;
}
@media (max-width: 768px) {
  .filters {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: 8px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    margin: 24px -16px 16px;
    padding-left: 16px;
    padding-right: 16px;
  }
  .filters::-webkit-scrollbar { display: none; }
  .filter-button { flex-shrink: 0; }
}

/* Copy Code Active Success State */
.copy-code.is-copied {
  background: #dcfce7 !important;
  border-color: #86efac !important;
  color: #15803d !important;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

/* Breadcrumbs on Merchant Detail Pages */
.breadcrumbs {
  margin: 0 0 16px;
  font-size: 0.84rem;
  color: var(--muted);
}
.breadcrumbs ol {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  list-style: none;
  padding: 0;
  margin: 0;
}
.breadcrumbs li a {
  color: var(--muted);
  text-decoration: none;
  transition: color 0.15s ease;
}
.breadcrumbs li a:hover {
  color: var(--ink);
  text-decoration: underline;
}
.breadcrumbs .separator {
  color: #cbd5e1;
  user-select: none;
  font-size: 0.78rem;
}
.breadcrumbs li[aria-current="page"] {
  color: var(--ink);
  font-weight: 600;
}

/* Sticky Mobile Conversion Bar */
.sticky-mobile-cta {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-top: 1px solid var(--line);
  padding: 10px 16px;
  z-index: 80;
  box-shadow: 0 -6px 20px rgba(0, 0, 0, 0.08);
  transform: translateY(100%);
  transition: transform 0.28s cubic-bezier(0.16, 1, 0.3, 1);
}
@media (max-width: 768px) {
  .sticky-mobile-cta.is-visible {
    display: block;
    transform: translateY(0);
  }
}
.sticky-mobile-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  max-width: 600px;
  margin: auto;
}
.sticky-mark {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  flex-shrink: 0;
}
.sticky-mobile-info {
  display: flex;
  flex-direction: column;
  min-width: 0;
  flex: 1;
}
.sticky-mobile-name {
  font-size: 0.88rem;
  font-weight: 750;
  color: var(--ink);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sticky-mobile-benefit {
  font-size: 0.74rem;
  color: var(--muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sticky-cta-btn {
  flex-shrink: 0;
  padding: 0 16px;
  min-height: 40px;
  font-size: 0.82rem;
}


/* CRO Audit: Hero Reward Pill */
.card-hero-reward {
  margin: 4px 0 10px;
}
.reward-pill {
  display: inline-flex;
  align-items: center;
  background: #f0fdf4;
  color: #15803d;
  border: 1px solid #bbf7d0;
  font-size: 0.95rem;
  font-weight: 850;
  letter-spacing: -0.02em;
  padding: 4px 10px;
  border-radius: 8px;
  line-height: 1.2;
}
.reward-pill-large {
  font-size: 1.2rem;
  padding: 6px 14px;
  border-radius: 10px;
}
.detail-hero-reward {
  margin: 10px 0 18px;
}

/* CRO Audit: WCAG 2.2 AA Hit Target Expansion (min 44x44px) */
.btn-vote {
  position: relative;
}
.btn-vote::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  min-width: 44px;
  min-height: 44px;
}

/* CRO Audit: Tabular Numbers (Zero Jitter) */
.like-count,
.dislike-count,
.filter-count,
.results-count {
  font-variant-numeric: tabular-nums;
}

/* CRO Audit: Clipboard Toast Notification HUD */
.clipboard-toast {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%) translateY(20px);
  background: #0f172a;
  color: white;
  padding: 12px 22px;
  border-radius: 9999px;
  font-size: 0.88rem;
  font-weight: 600;
  box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.25), 0 8px 10px -6px rgba(0, 0, 0, 0.2);
  z-index: 1000;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.22s ease, transform 0.22s cubic-bezier(0.16, 1, 0.3, 1);
  white-space: nowrap;
  max-width: 90vw;
  text-overflow: ellipsis;
  overflow: hidden;
}
.clipboard-toast.is-visible {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}


/* Editorial Guide Architecture Styles */
.guide-detail { max-width: 820px; margin: auto; padding: 20px 24px 80px; }
.guide-card { background: #fff; border: 1px solid var(--line); border-radius: 20px; padding: clamp(24px, 5vw, 48px); box-shadow: 0 4px 20px rgba(0,0,0,0.03); }
.guide-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 14px 0 28px; font-size: 0.92rem; color: var(--muted); border-bottom: 1px solid var(--line); padding-bottom: 18px; }
.guide-meta .meta-divider { color: var(--line); }
.guide-content { font-size: 1.05rem; line-height: 1.8; color: #2d3748; }
.guide-content h2 { margin: 36px 0 16px; font-size: 1.65rem; color: var(--text); letter-spacing: -0.02em; }
.guide-content h3 { margin: 28px 0 12px; font-size: 1.3rem; color: var(--text); letter-spacing: -0.01em; }
.guide-content p { margin: 16px 0; }
.guide-content ul, .guide-content ol { display: grid; gap: 10px; padding-left: 24px; margin: 16px 0; }
.guide-content li { line-height: 1.7; }
.guide-content blockquote { margin: 24px 0; padding: 16px 24px; border-left: 4px solid var(--brand, #435d18); background: #f7f9f0; border-radius: 0 12px 12px 0; font-style: italic; color: #435d18; }
.guide-content table { width: 100%; border-collapse: collapse; margin: 24px 0; font-size: 0.95rem; }
.guide-content th, .guide-content td { padding: 12px 16px; border: 1px solid var(--line); text-align: left; }
.guide-content th { background: #f8fafc; font-weight: 700; color: var(--text); }
.guide-content a { color: #435d18; text-decoration: underline; text-underline-offset: 3px; font-weight: 600; }
.guide-content a:hover { color: #2e430d; }
.guide-cta-box { display: flex; flex-direction: column; align-items: center; text-align: center; margin-top: 48px; padding: 32px 24px; background: #f3f7e6; border: 1px solid #d5e5b3; border-radius: 16px; }
.guide-cta-box h3 { margin: 0 0 8px; font-size: 1.35rem; color: #2d400e; }
.guide-cta-box p { margin: 0 0 20px; color: #4b5d2a; font-size: 0.98rem; max-width: 560px; }
.guide-cta-box .button { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; color: #fff; line-height: 1; }
.guide-cta-box .button:hover { text-decoration: none; color: #fff; }

/* Guides Index List Styles */
.guides-index-header { text-align: center; max-width: 680px; margin: 0 auto 40px; }
.guides-index-header h1 { font-size: clamp(2rem, 5vw, 3rem); margin: 0 0 12px; letter-spacing: -0.04em; }
.guides-index-header p { font-size: 1.15rem; color: var(--muted); margin: 0; }
.guides-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 24px; max-width: 1080px; margin: 0 auto 80px; padding: 0 24px; }
.guide-card-item { background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 28px; transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease; display: flex; flex-direction: column; }
.guide-card-item:hover { transform: translateY(-3px); box-shadow: 0 12px 28px rgba(0,0,0,0.06); border-color: #cbd5e1; }
.guide-card-item h2 { font-size: 1.35rem; margin: 10px 0 12px; line-height: 1.35; }
.guide-card-item h2 a { color: var(--text); text-decoration: none; }
.guide-card-item h2 a:hover { color: #435d18; }
.guide-card-item p { color: var(--muted); font-size: 0.96rem; line-height: 1.6; margin: 0 0 20px; flex-grow: 1; }
.guide-card-footer { display: flex; align-items: center; justify-content: space-between; font-size: 0.88rem; color: var(--muted); border-top: 1px solid var(--line); padding-top: 16px; }
.guide-card-footer a.read-guide-link { color: #435d18; font-weight: 700; text-decoration: none; }
.guide-card-footer a.read-guide-link:hover { text-decoration: underline; }

/* Merchant Offer Specifications Table */
.offer-specifications { margin: 36px 0; }
.offer-specifications table { width: 100%; border-collapse: collapse; margin: 16px 0; font-size: 0.95rem; }
.offer-specifications th, .offer-specifications td { padding: 12px 16px; border: 1px solid var(--line); text-align: left; }
.offer-specifications th { background: #f8fafc; font-weight: 700; color: var(--text); }
.offer-specifications caption { text-align: left; font-size: 0.85rem; color: var(--muted); margin-bottom: 8px; }

/* Guide FAQ and HowTo */
.guide-faq, .guide-howto { margin-top: 36px; }
.guide-faq h2, .guide-howto h2 { margin-bottom: 16px; font-size: 1.55rem; }
.guide-faq details { border-top: 1px solid var(--line); padding: 16px 0; }
.guide-faq details:last-child { border-bottom: 1px solid var(--line); }
.guide-faq summary { cursor: pointer; font-weight: 750; }
.guide-faq details p { color: var(--muted); line-height: 1.6; }
.guide-howto ol { display: grid; gap: 12px; padding-left: 24px; color: var(--text); line-height: 1.65; }
.guide-howto li::marker { font-weight: 700; color: #435d18; }

/* Code pool: "Did you get the bonus?" report control on merchant pages.
   Shows no counts or statuses; it only thanks the visitor and locks. */
.bonus-report { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 18px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; background: #f7f8fc; }
.bonus-report[hidden] { display: none; }
.bonus-report p { margin: 0; font-weight: 700; }
.bonus-report .button { min-height: 44px; }
.bonus-report-status { color: #365b19; font-size: .85rem; }
